Когда виртуализацию изучают всерьёз — например, на лабораторных в вузе — первый «взрослый» вопрос всегда один: что произойдёт с виртуальными машинами, если упадёт сервер? Именно это спросили преподаватели кафедры защищённых систем связи СПбГУТ им. Бонч-Бруевича на нашей рабочей встрече: распространяется ли отказоустойчивость на пользовательские ВМ, а не только на сам центр управления. Вопрос точный — и ответ на него отличает зрелую платформу от набора скриптов поверх гипервизора.
Что такое отказоустойчивый кластер
Отказоустойчивый кластер (High Availability, HA) — это группа серверов-узлов, объединённых так, что выход из строя одного из них не останавливает работу виртуальных машин. ВМ с упавшего узла автоматически перезапускаются на оставшихся живых хостах, а пользователи в худшем случае замечают короткую паузу вместо многочасового простоя.
Ключевое слово здесь — *автоматически*. Отказоустойчивость измеряется не наличием резервного сервера, а тем, насколько быстро и без участия человека система переживает аварию. И вот здесь у разных платформ всё устроено по-разному.
«Серый кардинал»: служба, которая держит ВМ живыми
В платформе Inscale за живучесть отвечает отдельная служба — High Availability Cluster Controller. Мы в команде в шутку называем её «серым кардиналом»: она не на виду, но именно она принимает решения в момент аварии.
Принципиальный момент: контроллер работает на уровне гипервизора, а не в слое управления. Поэтому отказоустойчивость распространяется на обычные пользовательские ВМ, а не только на управляющую машину. Даже если центральный орган управления временно недоступен, виртуалки продолжают запускаться и обслуживаться — потому что за это отвечает независимая служба ближе к «железу».
Split-Brain: самый коварный сценарий
Худший случай в кластере — это не падение узла, а Split-Brain: ситуация, когда хосты теряют сетевую связь друг с другом, но при этом все живы и подключены к общей системе хранения. Без правильной обработки два узла могут одновременно решить, что они «главные», и запустить одну и ту же ВМ дважды — с гарантированным повреждением данных на общей хранилке.
HA Cluster Controller в Inscale рассчитан именно на этот сценарий: он срабатывает корректно даже при Split-Brain, не допуская двойного запуска и конфликта за общий диск. Для учебной среды это отличная иллюстрация того, почему отказоустойчивость — это про дисциплину принятия решений, а не про дублирование серверов.
Отказоустойчивость и катастрофоустойчивость — не одно и то же
Важно не путать два уровня защиты:
- Отказоустойчивость (HA) — защита внутри одной площадки: упал узел — ВМ переехали на соседний. Это то, что обеспечивает HA Cluster Controller.
- Катастрофоустойчивость (DR) — защита от потери всей площадки: репликация на резервный ЦОД в другом городе.
Зрелая платформа закрывает оба уровня. О том, из каких компонентов вообще складывается такая платформа, мы подробно рассказали в разборе российской системы виртуализации, а про ядро, на котором всё это работает, — в статье про российский гипервизор на базе KVM.
Почему это важно для бизнеса и для учёбы
Для бизнеса отказоустойчивый кластер — это прямая экономия: час простоя критичного сервиса часто стоит дороже, чем вся лицензия на платформу за год. Для вуза — это лучший учебный полигон: студенту полезно своими руками «убить» узел и увидеть, как ВМ сами переезжают, как обрабатывается Split-Brain и как кластер пересобирает кворум.
Именно поэтому мы бесплатно даём вузам платформу для практики: отказоустойчивость нельзя понять по слайдам — её нужно ломать и чинить руками.
Если вы выбираете платформу виртуализации и для вас критичен непрерывный сервис — напишите нам: покажем на демо-стенде, как ведёт себя HA-кластер при отказе узла.