логин:        пароль:    
 курс на 19/12/2022: 200 кр. за 1 екр. (+0.00%)
Текущий бонус опыта: +50%, бонус благородства: нет бонуса
 
 
Обозрение текущих технических рабочих процессов | 24/11/11 13:25 
[center]Имеется на данный момент:[/center] 1) Большое количество мощных серверов - всё оборудование являлось лучшим в своём классе на момент покупки в 2007 году. По факту на момент приобретения серверов требовалось минимум 8 жестких дисков, максимум процессоров и максимум возможной памяти. На тот момент единственная модель в мире, которая удовлетворяла данным требованиям, была Tyan VX50. 2) Центральное хранилище - отказоустойчивый кластер. Это пара серверов, данные на которых зеркалируются в реальном времени. В случае отказа любого из этих серверов данные доступны автоматически. [center]Проблемы:[/center] 1) По мере работы серверов городов выяснилось, что самым слабым звеном является материнская плата этих серверов, которая чем дальше, тем чаще выходила из строя. Но альтернативы этим серверам на тот момент просто не было, не существовало в мире других моделей. В любой структуре крупного проекта как combats всегда, так или иначе, присутствует какое-либо хранилище данных. В данном случае каждые 15 минут данные по игрокам складываются на центральное хранилище. Кроме того, раз в день делаются резервные копии на центральное хранилище с данными по всем игрокам с каждого города за весь день. В случае сбоя любого из серверов/городов, происходит следующее: а) Поднимается резервный сервер, подключается на место дефектного б) Сервер контактирует с центральным хранилищем, и т.к. была резкая остановка (сбой), то многие файлы оказываются битыми. Как результат - происходит автоматическое возвращение данных с центрального хранилища. 2) В центральном хранилище используется система Lustre, она прекрасно работала больше года, но по мере увеличения данных начались проблемы. Связаны они, как это выяснилось, с версией 1.8.5. Как результат, 3 дня назад было принято решение апгрейда до версии 2.1. Чтобы иметь возможность возврата назад, если что-то пойдет не так, было принято решение отключить 2 сервер кластера, и сделать апгрейд первого сервера. Решили подождать сутки-двое, посмотреть на стабильность центрального хранилища и если всё ОК, то апгрейдить и 2 сервер кластера. Это было сделано 2 дня назад. Проблема в том, что именно на 2 сервере кластера (пассивном) находился скрипт ночного резервирования данных, и поскольку 2 сервер был отключен, ночное резервирование данных не было сделано за последние 2 дня. Когда город Abandoned Plains израсходовал все ресурсы (полностью израсходована память и своп), сервер потерял контакт с центральным хранилищем и открытые файлы на этом хранилище оказались битыми. Именно в этот момент и выяснилось, что бэкапы именно этого города имеются только 2-дневной давности... Игроки это заметили как откат 2-дневной давности, и нам (тех. команде) ничего не остается кроме как принести свои извинения. Это человеческая ошибка, бесспорно, и уже приняты меры чтобы не зависеть больше от отключения одного из серверов кластера и подобная ситуация не повторилась. Вылезло это только сейчас, поскольку центральное хранилище работало как часы несколько лет без единого аппаратного сбоя, и сервера не перегружались и не отключались. [center]Теперь по планам на будущее и работах, которые ведутся в настоящий момент:[/center] 1) Идет глобальное обновление оборудования - все эти сервера с нестабильными материнскими платами меняются на новые мощнейшие сервера (Как пример каждый из серверов имеет по 4 х 12ядерных процессоров AMD, 128GB RAM, самые быстрые диски которые существуют для данного класса) 2) После апгрейда центрального кластера до версии 2.1 Lustre должны исчезнуть аппаратные сбои и потеря центрального хранилища на городах. 3) Снята зависимость цепной реакции (в случае аппаратного сбоя одного из городов это моментально сказывалось на остальных городах) 4) Весь проект переходит на центральное отказоустойчивое хранилище с внедрением виртуализации - это даст преимущества на случай если все-таки даже на новом железе произойдет какой-либо сбой, можно будет поднять город в течение секунд на соседнем сервере, данный процесс будет полностью автоматизирован. 5) Будет включена глобальная система балансировки нагрузки - в зависимости от того где именно меньше нагрузка (сервера в виртуальной структуре) город может плавно переехать на тот сервер, делается это в течение 10-15 секунд без какой-либо остановки или недоступности. 6) Внедрение де-централизованной системы хранения данных. В случае сбоя одного из серверов все данные будут доступны на всех городах. 7) За счет виртуализации и перехода на мощное новое оборудование уменьшится нагрузка на города, что в свою очередь даст возможность уйти от периодически возникающих "Bad Gateway" или "Internal Server Error". Также за счет де-централизованной системы хранилища данных исчезнет зависимость от центрального хранилища. Когда все планы по миграции и модернизации будут внедрены в жизнь (в планах закончить это всё до лета 2012 года, т.к. каждый из элементов требует тестирования и аккуратного внедрения - оно занимает время), Combats будет значительно более шустрым и отказоустойчивым. Все лаги и технические ошибки, которые имеют место быть сейчас, должны исчезнуть.
Поделиться новостью
Всего комментариев: 51 Страниц: 3
  1 2 3 следующие >>  последние >>  
  [24.11.2011 13:39]
Хорошо :) Надеюсь, что все это не останется только "на бумаге" и не принесет новых бяк )

  [24.11.2011 13:41]
Постараемся :)

  [24.11.2011 13:45]
А чтиво интересное... Успехов в начинаниях :)

  [24.11.2011 13:46]
вот это правильно. предупредили)

  [24.11.2011 13:46]
Ура, было бы здорово : )

  [24.11.2011 13:49]
Окей.

  [24.11.2011 13:52]
спасибо за полное объяснение всей ситуации...теперь на любые глюки будет намного проще относиться, зная что над ними работают (апгрейд в процессе)

  [24.11.2011 13:59]
спасибо. всегда бы так доходчиво объясняли.

  [24.11.2011 14:05]
мда расходов у вас немало : (

  [24.11.2011 14:10]
спасибо

  [24.11.2011 14:13]
Интересно было прочитать. А можно подробнее по 6)Внедрение де-централизованной системы хранения данных. Как это будет функционировать? Как я понимаю, на данный момент СХД combats построена так, что данные по персонажу пишутся на сервер города в котором он находится и на центральное хранилище происходит бекап. А в будущем информация по персонажу будет записываться на все игровые сервера?
[24.11.11 14:30] Да, будет записываться на все игровые сервера, по аналогу как в Mongo

  [24.11.2011 14:15]
Как пример каждый из серверов имеет по 4 х 12ядерных процессоров AMD, 128GB RAM *віпучил глаза* :) по сабжу - спасибо, что пояснили.. приятно!

  [24.11.2011 14:27]
плакал, пока читал:)...вот чего нам всем не хватало:)

  [24.11.2011 14:28]
будет ли проект комбатс ворлд?

  [24.11.2011 14:30]
Молодцы. Удачи :)

  [24.11.2011 14:41]
Молодцы! Успехов в нелёгком деле!

  [24.11.2011 14:47]
а можно пару технических вопросов: Данные о польщзователях хранятся в файловом виде или в SQL базе данных? В люом случае а надо ли иметь диски на каждом сервере может имеет смысл хорошую СХД с быстрым кэшем. Опять же отпадет проблема скрипты бэкапирования на сервере держать. Все современные СХД умеют делать удаленную репликацию. Держать вторую СХД с недорогими медленными дисками. На нее реплицировать данные средствами самой СХД. При желании с нее можно и на ленточную библиотеку писать. P.S. AMD 16ядерники недавено в продакшн пустили.
[24.11.11 14:59] Детально обсуждать не могу, вопросы конфиденциальности и безопасности.

  [24.11.2011 14:49]
Спасибо за свет в конце туннеля. Вопрос: почему откатило неравномерно, кого на 2 суток, а меня в пределах получаса?

  [24.11.2011 14:53]
Приятно когда вводят в курс. Всегда бы так. Спасибо.

  [24.11.2011 14:59]
Чисто не тенический вопрос, но инересно- допустим перса откатитли не на 2 дня назад а на 5 дней - при том исчез его шмот купленный за долго до глюко/отката и он откатился голый. Что технически вам легче исплнить чтоб занимало максимально короткое время? 1)Одеть его по новой как он был самим и пустить опять на просторы БК ? 2)Искать его в базе данных по всем скриптам сохранилок каким то задним числом и достовать оттуда? Чисто если вять временной фактор? что легче исполнить?

Всего комментариев: 51 Страниц: 3
  1 2 3 следующие >>  последние >>  
Комментирование закрыто для гостей и пользователей с нулевым уровнем
 
 © 2010–2024 «combats.com»