Технологии, позволяющие повысить отказоустойчивость VPS

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

Наша стандартная технология создания VDS
Сейчас хостинг виртуальных серверов у нас выглядит следующим образом:

В стойках установлены одноюнитные серверы примерно такой конфигурации:
  • CPU — 2 x Intel® Xeon® CPU E5-2630 v2 @ 2.60GHz
  • Motherboard: Intel Corporation S2600JF
  • RAM: 64 Gb
  • DISK: 2 x HGST HDN724040ALE640/4000 GB, INTEL SSDSC2BP480G4 480 GB

Один из серверов является основным. На нем установлен VMmanager и к нему подключены узлы — дополнительные серверы.

Помимо VMmanager, на основном сервере располагаются клиентские виртуальные серверы.
Каждый сервер “смотрит” в мир своим сетевым интерфейсом. А для увеличения скорости миграции VDS между узлами, серверы связаны между собой отдельными интерфейсами.



Рис. 1. Текущая схема хостинга виртуальных серверов)

Все серверы работают независимо друг от друга, и, в случае проблем с производительностью на одном из серверов, все виртуальные серверы могут быть разнесены (функция “Миграция” в VMmanager) на соседние узлы, либо перенесены на вновь добавленный узел.

Ситуации, когда сервер выходит из строя (kernel panic, высыпавшиеся диски, умерший БП и т.д.), влекут за собой недоступность виртуальных машин клиентов. Разумеется, система мониторинга немедленно извещает ответственных специалистов о проблеме, они приступают к выяснению причин и устранению аварии. В 90% случаев работы по замене вышедших из строя комплектующих занимают не более часа, плюс требуется время на устранение последствий аварийного выключения сервера (синхронизация системы хранения, ошибки файловой системы и прочие...).

Все это конечно неприятно для нас и клиентов, но простая схема позволяет избежать лишних трат и держать цены на низком уровне.

Новый облачный VDS

Чтобы удовлетворить самых требовательных клиентов, для которых критически важен Uptime сервера, мы создали услугу с максимально высокой надежностью.

Итак, нам был нужен новый софт и оборудование.

Поскольку мы уже работаем с продуктами компании ISPsystem, логичным шагом было посмотреть на VMmanager-Cloud. Эта панель как раз создавалась для решения задачи отказоустойчивости, на данный момент она хорошо проработана и достигла определенной стабильности. Она нас устроила и альтернативы мы не рассматривали.

В качестве распределенной файловой системы безоговорочно был принят Ceph. Это бесплатный, свободно развивающийся продукт, гибкий и масштабируемый. Мы пробовали другие системы хранилищ, но Ceph — это единственный продукт, который полностью удовлетворил наши требования к хранилищу. Он казался сложным на первых порах, с какой-то попытки мы с ним окончательно разобрались. И не пожалели об этом.

Узлы нового кластера собраны на том же самом аппаратном обеспечении, что и рабочий кластер VMmanager, но с небольшими изменениями:
Мы перешли на мультиноды с резервированием по питанию.
Для коммутации между нодами кластера, вместо обычного гигабитного соединения, мы использовали Infiniband. Он позволяет поднять скорость соединения до 56Gb (IB карты Mellanox Technologies MT27500 Family ConnectX-3, коммутатор — Mellanox SX6012)

В качестве операционной системы для узлов кластера был выбран дистрибутив CentOS 7. Правда чтобы заставить работать все вышеперечисенное вместе, пришлось собирать свое ядро, пересобирать qemu и просить о некоторых доработках в VMmanager-Cloud.



(Рис. 2. Новая схема облачного хостинга виртуальных серверов)

Выгоды использования новой технологии

В итоге мы получили следующее:
  • еще более профессиональную услугу виртуальных серверов с высоким Uptime. Её стабильность не зависит от проблем с аппаратным обеспечением узлов кластера.
  • увеличение надежности хранения данных за счет распределенной файловой системы с хранением нескольких копий.
  • быструю миграцию виртуальных машин. Перенос работающей VPS с ноды на ноду происходит практически мгновенно без потери пакетов и пингов. В случае необходимости это быстро освобождает узел для обслуживания.
  • когда узел выходит из строя, виртуальные машины клиентов автоматически запускаются на других узлах. Для клиента это выглядит как внеплановая перезагрузка по питанию, время простоя равно времени перезагрузки ОС.


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

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

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

1 комментарий

vadikgo
SSD используется для записи журналов osd ceph или из них собран отдельный cache tier?

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