Когда виртуализацию изучают всерьёз — например, на лабораторных в вузе — первый «взрослый» вопрос всегда один: что произойдёт с виртуальными машинами, если упадёт сервер? Именно это спросили преподаватели кафедры защищённых систем связи СПбГУТ им. Бонч-Бруевича на нашей рабочей встрече: распространяется ли отказоустойчивость на пользовательские ВМ, а не только на сам центр управления. Вопрос точный — и ответ на него отличает зрелую платформу от набора скриптов поверх гипервизора.

Что такое отказоустойчивый кластер

Отказоустойчивый кластер (High Availability, HA) — это группа серверов-узлов, объединённых так, что выход из строя одного из них не останавливает работу виртуальных машин. ВМ с упавшего узла автоматически перезапускаются на оставшихся живых хостах, а пользователи в худшем случае замечают короткую паузу вместо многочасового простоя.

Ключевое слово здесь — *автоматически*. Отказоустойчивость измеряется не наличием резервного сервера, а тем, насколько быстро и без участия человека система переживает аварию. И вот здесь у разных платформ всё устроено по-разному.

«Серый кардинал»: служба, которая держит ВМ живыми

В платформе Inscale за живучесть отвечает отдельная служба — High Availability Cluster Controller. Мы в команде в шутку называем её «серым кардиналом»: она не на виду, но именно она принимает решения в момент аварии.

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

Принципиальный момент: контроллер работает на уровне гипервизора, а не в слое управления. Поэтому отказоустойчивость распространяется на обычные пользовательские ВМ, а не только на управляющую машину. Даже если центральный орган управления временно недоступен, виртуалки продолжают запускаться и обслуживаться — потому что за это отвечает независимая служба ближе к «железу».

Split-Brain: самый коварный сценарий

Худший случай в кластере — это не падение узла, а Split-Brain: ситуация, когда хосты теряют сетевую связь друг с другом, но при этом все живы и подключены к общей системе хранения. Без правильной обработки два узла могут одновременно решить, что они «главные», и запустить одну и ту же ВМ дважды — с гарантированным повреждением данных на общей хранилке.

HA Cluster Controller в Inscale рассчитан именно на этот сценарий: он срабатывает корректно даже при Split-Brain, не допуская двойного запуска и конфликта за общий диск. Для учебной среды это отличная иллюстрация того, почему отказоустойчивость — это про дисциплину принятия решений, а не про дублирование серверов.

Как восстанавливается сам слой управления

Отдельный вопрос — что происходит с центром управления после аварии. В Inscale восстановление держится на архитектуре Event Storing (хранение событий): состояние системы пересобирается из журнала событий, поэтому узлы синхронизируются и автоматически восстанавливают кворум — без ручной сборки развалившихся баз данных.

Это снимает классическую боль администратора: после аварии не нужно вручную «склеивать» рассинхронизированные базы и поднимать управление по инструкции на 30 страниц. Кластер пересобирает себя сам.

Подробно про архитектуру кластера целиком — гиперконвергенцию и отказоустойчивость класса N (на уровне кластера управления) — в статье «Кластер виртуализации и гиперконвергенция».

Отказоустойчивость и катастрофоустойчивость — не одно и то же

Важно не путать два уровня защиты:

  • Отказоустойчивость (HA) — защита внутри одной площадки: упал узел — ВМ переехали на соседний. Это то, что обеспечивает HA Cluster Controller.
  • Катастрофоустойчивость (DR) — защита от потери всей площадки: репликация на резервный ЦОД в другом городе.

Зрелая платформа закрывает оба уровня. О том, из каких компонентов вообще складывается такая платформа, мы подробно рассказали в разборе российской системы виртуализации, а про ядро, на котором всё это работает, — в статье про российский гипервизор на базе KVM.

Почему это важно для бизнеса и для учёбы

Для бизнеса отказоустойчивый кластер — это прямая экономия: час простоя критичного сервиса часто стоит дороже, чем вся лицензия на платформу за год. Для вуза — это лучший учебный полигон: студенту полезно своими руками «убить» узел и увидеть, как ВМ сами переезжают, как обрабатывается Split-Brain и как кластер пересобирает кворум.

Именно поэтому мы бесплатно даём вузам платформу для практики: отказоустойчивость нельзя понять по слайдам — её нужно ломать и чинить руками.

Если вы выбираете платформу виртуализации и для вас критичен непрерывный сервис — напишите нам: покажем на демо-стенде, как ведёт себя HA-кластер при отказе узла.