Скандалы интриги расследования. Псто про сервера

топ 100 блогов world_of_ru12.02.2015


       Как всё начиналось?  

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оставить комментарий



Архив записей в блогах:
В этом году в Японии появились учебные пособия по иероглифам для младшей школы, которые названы первыми в своем роде и самыми веселыми. А все потому, что они все на тему какашки. Именно она может сделать скучный и сложный процесс запоминания иероглифов увлекательным для детей от 6 до 12 ...
Валентина Матвиенко, бывший губернатор Петербурга и депутат Заксобрания, а ныне глава Совета Федерации считает, что необходимо запретить операторам связи торговать сим-картами через посредников. Такая мера, по мнению политика, поможет предотвратить новые теракты (смертник Акбаржон ...
Вот уже несколько лет безуспешно пытается вернуться на родину двукратная олимпийская чемпионка и двукратная чемпионка мира по спортивной гимнастике Мария Филатова. В начале 90-ых, оставшись без работы, она уехала на Запад, где сохранила ...
Сегодня под дождем со снегом (я совершенно задубел) движение греческих "зайцев" открыло шлагбаумы на дороге Афины-Салоники в Афиднес. Тысячи автомобилистов проехали бесплатно, возвращаясь с трехдневных выходных. Активисты ...
"Укрзализныця" направила письмо в РЖД с просьбой прекратить продажу билетов на все поезда, следующие по территории страны. Прощай, "Знатокиада"? Для самолетов я зарабатываю пока ...