Железо под капотом MMO: почему лагают сервера и зачем админам энтерпрайз-СХД

Каждый геймер сталкивался с ситуацией, когда во время массовой осады замка в Lineage 2 или глобального замеса в Rust сервер начинает безбожно лагать, персонажей откидывает назад (rubberbanding), а урон проходит с задержкой в несколько секунд. В чате моментально начинаются проклятия в адрес разработчиков и жалобы на «слабые сервера». Ирония в том, что процессоры и оперативная память на таких машинах обычно загружены едва ли на половину. Настоящим бутылочным горлышком, убивающим производительность любого крупного многопользовательского проекта, является дисковая подсистема. Когда пять тысяч игроков одновременно передвигаются, используют скиллы, подбирают лут и торгуют, база данных игры должна записывать каждое это действие на диск в реальном времени. Обычные SSD в таких условиях умирают от перегрузки очереди команд. Именно поэтому топовые фришарды и официальные издатели используют гибридные системы хранения данных корпоративного класса, способные переваривать сотни тысяч операций ввода-вывода. Одним из свежих примеров такого железа является пятое поколение массивов от японского вендора. Если вы планируете запуск собственного масштабного проекта и ищете фундамент для базы данных, технические спецификации и конфигурации можно изучить подробнее на сайте поставщика, а мы разберем, какие технологии спасают геймеров от десинхронов и откатов.
Проблема IOPS и базы данных
Сердце любой MMO — это реляционная база данных (обычно MySQL или PostgreSQL). Она хранит координаты каждого игрока, состояние его инвентаря, уровень здоровья и статус квестов. В одиночных играх весь этот массив висит в оперативной памяти вашего ПК, но на сервере с высоким онлайном любое падение питания без записи на диск приведет к вайпу или откату прогресса, что вызовет бунт комьюнити. Поэтому транзакции пишутся постоянно. Нагрузка носит характер агрессивного случайного чтения и записи крошечных блоков данных (Random IOPS).
Архитектура Fujitsu ETERNUS DX100 S5 решает эту проблему за счет мощных многоядерных контроллеров и огромного объема защищенного кэша. Контроллер перехватывает миллионы мелких запросов от игрового сервера, агрегирует их в памяти и сбрасывает на диски оптимальными крупными блоками. Это снижает задержку (latency) до долей миллисекунды. Для игрока на экране это выглядит как мгновенный отклик: нажал кнопку — скилл сработал сразу, подобрал эпический меч — он тут же оказался в инвентаре, даже если вокруг еще тысяча человек делают то же самое.
Аппаратная отказоустойчивость против вайпов
Второй страшный сон любого игрока — это коррапт (повреждение) базы данных. Если администратор арендует дешевый выделенный сервер с обычными дисками в RAID-массиве, выход из строя одного накопителя в момент высокой нагрузки может привести к потере части данных. Начинаются многочасовые технические работы, поднятие старых бэкапов и выплаты компенсаций недовольным донатерам.
Энтерпрайз-СХД работает по иному принципу. Вся аппаратная часть внутри нее продублирована. Там стоят два независимых контроллера, дублированные блоки питания и резервные пути передачи данных. Если прямо во время вечернего прайм-тайма внутри массива физически сгорит жесткий диск или выйдет из строя модуль памяти, игроки этого даже не заметят. Сервер не упадет, база данных не повредится. Система автоматически переключится на резервные компоненты и продолжит обрабатывать запросы, пока дежурный инженер в дата-центре будет производить горячую замену сгоревшей детали.

Умный тиринг: как сэкономить бюджет проекта
Содержание мощного сервера стоит огромных денег, которые отбиваются за счет внутриигрового магазина. Покупать СХД, полностью забитую дорогими NVMe-накопителями, нерентабельно для большинства фришардов. Однако игровые данные неравноценны. «Горячие» данные — это текущие координаты игроков онлайн, их здоровье и мана. «Холодные» данные — это логи чата за прошлый месяц, инвентарь давно заброшенных персонажей и старые логи транзакций.
Технология Automated Storage Tiering, встроенная в рассматриваемый массив, позволяет обойти ограничения бюджета. Система сама в реальном времени анализирует, к каким файлам игровой движок обращается чаще всего. Весь активный онлайн и базы данных текущих локаций автоматически переносятся на сверхбыстрые флеш-накопители. А логи и спящие аккаунты плавно мигрируют на медленные и дешевые магнитные диски высокой емкости. В итоге администратор получает топовую производительность без задержек для активных игроков, но не переплачивает за хранение мертвого груза.
Мгновенные бэкапы без остановки серверов
Любой крупный апдейт, установка новых хроник или слияние серверов требует создания полной резервной копии базы. На слабом железе дамп базы весом в пару сотен гигабайт заставляет полностью отключать игровой сервер на час и более, что злит аудиторию. В архитектуре продвинутых СХД используются аппаратные снапшоты (снимки файловой системы). Контроллер замораживает состояние дисков на долю секунды, создает точку восстановления и продолжает работу. Игроки ловят микрофриз на половину секунды, а у админа уже есть гарантированно целая копия всей игры, к которой можно откатиться, если после обновления сломается экономика или найдут дюп.
Заключение
Когда вы в следующий раз зайдете на стабильно работающий сервер с высоким онлайном, где нет задержек при открытии инвентаря и отбрасываний персонажа при беге, знайте — дело не только в хорошем коде. Вся магия плавной игры держится на мощных корпоративных системах хранения данных. Переход серверного железа на такие архитектуры позволяет разработчикам создавать все более масштабные бесшовные миры, не боясь, что диски сгорят под натиском тысяч разъяренных геймеров.
