Реклама | Adv
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
Сообщения форума
Реклама | Adv
image
Как всё начиналось?

Первоначально вся игровая и сопутствующая информация (например, ваши посты на форуме и наши материалы на этом портале) хранилась, обрабатывалась и распространялась на мощностях всего одного кластера серверов. Кластер серверов — это группа связанных между собой компьютеров, действующих как единый ресурс. Изначально первый кластер World of Tanks находился в Мюнхене, а в 2011 году его перевезли в Россию.

Тогда игроки были очень рады, потому что пинг сразу уменьшился и стало «всё хорошо». Но так как кластер был один, а серверы нужно было перезапускать несколько раз в неделю, то во время их простоя ни один танкист не мог войти в игру.

Чтобы никто не грустил, к версии 0.7.0 серверы были переведены на мультикластерную технологию. Изменения в структуре взаимодействия отдельных частей кластера привели к его разделению на центр и периферию. Функциональное разделение такое: центр — это база, где хранятся все данные пользователей, а периферия — все остальные серверы, где, собственно, и играют пользователи. На момент написания статьи все игры обслуживаются на девяти перифериях. Все играют на периферии, в центре никто не играет, но именно центр обслуживает периферию. Если центр не будет работать — пользователи не смогут зайти в игру, но смогут продолжить играть, если уже зашли.

image

Где находятся игровые серверы?

Специализированное здание для размещения серверного оборудования называется дата-центром, и чем дата-центр ближе к пользователям, тем лучше.

Поэтому серверы компании Wargaming географически рассредоточены по всем игровым регионам. Три дата-центра находятся в Москве. В одном из них размещено оборудование сразу для трёх игр: World оf Tanks, World of Warplanes и World of Warships. На двух других московских площадках суммарно находится четыре периферии, а в Новосибирске и Красноярске обслуживаются серверы RU4 и RU8. В Европе — три дата-центра: в Амстердаме, Франкфурте и Люксембурге. Американские серверы есть на западном и восточном побережьях, существуют также корейский и сингапурский кластеры для обслуживания Азиатского региона. Китайским кластером оперируют партнёры.

Серверная структура очень гибкая и позволяет быстро вносить изменения. С точки зрения системных администраторов абсолютно всё равно, какой материал стоит на серверах: «танки» ли, «самолёты» или «корабли». 

image

Сколько компьютеров надо, чтобы играли все?

Когда World of Tanks размещалась всего на одном кластере, максимально допустимой нагрузкой для него был онлайн в 250–270 тысяч пользователей. В этом кластере было порядка ста серверов, которые функционировали как единое целое. Предел нагрузки упирался как в физическую базу, так и во внешние каналы провайдера. Когда онлайн находятся 250 тысяч игроков, нагрузка на каналы связи — порядка 6–7 Гбит/с трафика (то есть стандартный фильм в 1,4 ГБ пролетает по ним каждые 2 секунды).

Сегодня, за счёт увеличения числа периферий, проекты не ограничены ничем и проблемы решаются по мере поступления. Один физический сервер рассчитан на 2,5–3 тысячи пользователей и пиковый трафик порядка 60–70 Мбит/с. Обычный кластер объединяет от 50 до 80 серверов, некоторые периферии позволяют оперативно добавлять к ним серверы, но обычно серверные стойки в дата-центрах и так использованы по максимуму.

image

Как пользователи получают обновления игры?

Специально обученные люди — билд-инженеры — готовят патчи для каждого обновления игры. Патч — файл с информацией, которая заменит какую-либо часть игровой программы и внесёт актуальные обновления в игровой процесс конкретного пользователя. Чтобы пользователи могли скачать патч, его заливают на CDN (ContentDeliveryNetwork«сеть доставки контента») и раздающие сервера компании. Если размер патча больше 30 МБ, то с целью увеличения эффективности и скорости раздачи для него создаётся торрент-файл, который тоже будет ждать запроса пользователя на CDN.

Когда пользователь запускает игру, лончер обращается к серверу обновлений и получает ссылку на патч или его торрент-файл в зависимости от того, включена ли настройка «Разрешать использовать торрент» в лончере.

image

Как пользователи попадают в игру?

Пользователь может попадать на любой сервер из любого региона. Если пользователь авторизовался на RU-кластере, он может попасть на любую из периферий. По умолчанию в настройках клиента прописан автоматический выбор периферии, и при авторизации игрока его запрос проходит через сложный алгоритм, который не только отталкивается от пинга пользователя, но и оценивает общую загруженность серверов. Если сервер X в России загружен больше, чем сервер Y, то пользователь попадёт на сервер Y. А вообще система может его и в Амстердам или Новосибирск отправить. Но пользователь и сам может выбрать сервер.

image

Где ангар, а где война, и что происходит, когда игрок нажимает кнопку «В бой!»?

Есть серверы, которые обслуживают пользователей: например, на них идут игровые процессы, процессы нахождения в Ангаре или процессы логина. Есть те, которые не обслуживают пользователей, а работают с системной информацией.

Например, когда пользователь запускает лончер, он попадает в процесс логина. Запрос на авторизацию по внутренним каналам отправляется в единый центр авторизации, который подтверждает, что пароль пользователя верный и его можно пускать в игру. После авторизации пользователь попадает в Ангар, а управление его данными передаётся другому процессу.

Это значит, что фактически при сбое на сервере игрок может не заметить ошибки и спокойно доиграть свою сессию. Например, при большой нагрузке на периферию — онлайн больше ста тысяч человек — кластер может сломаться, и понадобится его перезапуск. Но если из процесса выпадет только один физический сервер, то в остальном кластер останется в рабочем состоянии, за счёт чего пользователь и продолжит игру.

Самая большая неприятность может произойти, если из строя выйдет тот самый сервер, на котором игрок был авторизован. Тогда при попытке входа в игру пользователь получит сообщение о том, что он подключён на другой периферии. 

Проблему решает только перезапуск периферии, так как у базы данных остаётся метка о том, что пользователь остался на периферии, а на периферии — что пользователь находится на таком-то игровом процессе, который находится на сервере, который сломался. Пока эта метка не снимется, игрок не сможет никуда войти, но хитрость в том, что это сделано на пользу и во благо пользователей.

Технически возможно «пускать» пользователей и на другие периферии, когда аккаунт завис, но тогда двухчасовой прогресс на «зависшей» периферии будет потерян, так как аккаунт каждые два часа должен сохраняться в базу. Так что в таком случае лучше подождать, чем лишиться Медали героев Расейняя, которую только что получил.

Для обеспечения надёжной и бесперебойной работы сетевого и серверного оборудования широко применятся резервирование и дублирование. Например, продублированные жёсткие диски становятся логически одним: если выйдет из строя один диск из двух — данные останутся доступны серверу, и всё будет работать. Каждый сервер имеет по четыре сетевые карточки, объединённые в пары: одна — для общения между серверами внутри кластера, одна — для общения с игроками. Серверы в новых дата-центрах оснащены двумя блоками питания, подключёнными к разным вводам питания в дата-центр, которые, согласно требованиям, подводятся с разных сторон здания и от разных поставщиков энергии (где это возможно). Каналы для подключения серверов к интернету берутся от независимых поставщиков и должны подводиться к дата-центру по независимым физическим путям. Ещё два-три года назад не заметить технический сбой было нельзя, но сейчас может случиться, что произошедшую поломку вообще не заметит ни один из игроков. 

Реклама | Adv