KeyVRM — управление отказоустойчивостью и балансировкой нагрузки¶
KeyVRM (KeyStack Virtual Resource Manager) — сервис управления отказоустойчивостью и балансировкой нагрузки виртуальных машин в регионе KeyStack.
KeyVRM работает на уровне хост-агрегатов и объединяет два сценария:
эвакуацию ВМ с отказавших или небезопасных гипервизоров;
балансировку нагрузки между гипервизорами через рекомендации по живой миграции.
Важно
Не используйте KeyVRM одновременно с другими механизмами автоматической эвакуации ВМ и балансировки нагрузки в одном регионе.
Режимы работы KeyVRM¶
Для каждого хост-агрегата режим обработки задаётся параметром marker:
Режим |
Описание |
|---|---|
|
Анализирует состояние вычислительных узлов, выполняет фенсинг отказавших или небезопасных гипервизоров и формирует рекомендации по эвакуации ВМ. |
|
Анализирует метрики нагрузки гипервизоров и ВМ, находит перегруженные узлы, подбирает целевые гипервизоры и формирует рекомендации по живой миграции. |
|
Сначала запускает HA-логику. Если созданы рекомендации по эвакуации, LB-логика в текущем цикле не запускается. Если рекомендаций нет, KeyVRM при необходимости запускает LB-логику. |
Если для хост-агрегата не задан marker или включён параметр no_op_mode, KeyVRM работает в режиме NOOP: агрегат отображается в сервисе, но HA- и LB-рекомендации для него не создаются.
Для новых хост-агрегатов параметр no_op_mode включён по умолчанию. Перед включением автоматических действий администратор должен проверить конфигурацию агрегата и выбрать режим обработки.
Как работает KeyVRM¶
KeyVRM работает циклически. Во время цикла сервис собирает данные о состоянии региона, синхронизирует список хост-агрегатов, выбирает режим обработки для каждого хост-агрегата и при необходимости создаёт события, рекомендации и операции.
KeyVRM получает сведения о состоянии региона из OpenStack, метрики нагрузки — из VictoriaMetrics через Prometheus-совместимый API, а heartbeat гипервизоров — из Redis Sentinel. Для выполнения рекомендаций сервис обращается к Nova, Cinder, Neutron и Placement, а для фенсинга может использовать BMC, IPMI, Redfish, Ceph и Nova.
Основные сущности¶
Работа KeyVRM строится вокруг следующих сущностей:
event— один запуск HA-, LB- или HA+LB-логики для конкретного хост-агрегата;recommendation— одно предложенное действие над ВМ: эвакуация для HA или живая миграция для LB;operation— запись о фактическом исполнении рекомендации;конфигурация хост-агрегата — набор параметров обработки конкретного хост-агрегата, включая
markerсо значениемHA,LBилиHA+LBи параметрno_op_mode.
Управление KeyVRM¶
Администратор управляет KeyVRM через Портал администратора и API сервиса.
Основные действия администратора:
включение и выключение обработки региона;
выбор режима
HA,LBилиHA+LBдля хост-агрегата;временное отключение автоматических действий через
NOOP;настройка параметров HA и LB для хост-агрегата;
просмотр зон доступности, хост-агрегатов, событий, рекомендаций и операций;
запуск рекомендаций, для которых требуется ручное подтверждение.
В зависимости от конфигурации LB-рекомендации могут выполняться автоматически или ожидать подтверждения администратора.
Развёртывание и первичная настройка KeyVRM описаны в разделе Развёртывание и первичная настройка KeyVRM, дальнейшее управление сервисом — в разделе Управление KeyVRM.
Особенности применения¶
При работе с KeyVRM учитывайте следующие особенности:
KeyVRM работает на уровне хост-агрегата.
Для балансировки нагрузки должен быть доступен подходящий целевой гипервизор.
На время обслуживания или обновления рекомендуется переводить затронутый хост-агрегат в режим
NOOP.Перед включением автоматических действий убедитесь, что в регионе не используются другие механизмы автоматической эвакуации ВМ и балансировки нагрузки.