KeyVRM — управление отказоустойчивостью и балансировкой нагрузки

KeyVRM (KeyStack Virtual Resource Manager) — сервис управления отказоустойчивостью и балансировкой нагрузки виртуальных машин в регионе KeyStack.

KeyVRM работает на уровне хост-агрегатов и объединяет два сценария:

  • эвакуацию ВМ с отказавших или небезопасных гипервизоров;

  • балансировку нагрузки между гипервизорами через рекомендации по живой миграции.

Важно

Не используйте KeyVRM одновременно с другими механизмами автоматической эвакуации ВМ и балансировки нагрузки в одном регионе.

Режимы работы KeyVRM

Для каждого хост-агрегата режим обработки задаётся параметром marker:

Режим

Описание

HA

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

LB

Анализирует метрики нагрузки гипервизоров и ВМ, находит перегруженные узлы, подбирает целевые гипервизоры и формирует рекомендации по живой миграции.

HA+LB

Сначала запускает 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.

  • Перед включением автоматических действий убедитесь, что в регионе не используются другие механизмы автоматической эвакуации ВМ и балансировки нагрузки.