Развёртывание и первичная настройка KeyVRM¶
Разверните KeyVRM, подключите сервис к инфраструктурным компонентам KeyStack и выполните первичную настройку через Портал администратора.
В конфигурации региона KeyVRM включён по умолчанию. Для использования сервиса убедитесь, что он развёрнут, подключён к Порталу администратора, а глобальная конфигурация и параметры хост-агрегатов настроены.
Дальнейшее управление событиями, рекомендациями и автоматическими действиями описано в разделе Управление KeyVRM.
Включение KeyVRM¶
Включение сервисов региона задаётся в репозитории региона.
Для включения и развёртывания KeyVRM выполните следующие действия:
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона project_k / deployments / <имя региона>.
Откройте файл
globals.d/REGION.yml.Убедитесь, что в файле указан параметр:
enable_keyvrm: "yes"
Сохраните изменения.
Создайте новый пайплайн: .
В открывшемся окне добавьте переменную
KOLLA_ARGSсо значением-t loadbalancer,haproxy,keyvrm,patroni,temporal,etcd.Запустите пайплайн, нажав кнопку New pipeline.
В созданном пайплайне запустите задачу deploy.
Дождитесь завершения выполнения задачи.
Зависимые сервисы, необходимые для работы KeyVRM, разворачиваются вместе с KeyVRM.
Не используйте KeyVRM одновременно с другими механизмами автоматической эвакуации ВМ и балансировки нагрузки в одном регионе.
Конфигурация развёртывания¶
Конфигурация развёртывания определяет, где и как запущен KeyVRM и как сервис подключается к внешним системам. В промышленном контуре эта конфигурация задаётся через Kolla-Ansible и применяется при развёртывании региона.
К конфигурации развёртывания относятся:
включение контейнеров KeyVRM API и worker;
параметры образов и миграций базы данных;
подключение к PostgreSQL;
подключение к Temporal;
параметры авторизации OpenStack Keystone, Nova, Cinder и Placement;
подключение к VictoriaMetrics через Prometheus-совместимый API;
подключение к Redis Sentinel;
подключение к Alertmanager;
параметры TLS/mTLS;
параметры BMC, IPMI, Redfish и Ceph для фенсинга;
параметры портов, проверок состояния, секретов, сертификатов и журналирования.
KeyVRM не собирает метрики самостоятельно: сервис читает уже собранные метрики из VictoriaMetrics через Prometheus-совместимый API.
Kolla-Ansible формирует конфигурацию KeyVRM на Control-узлах. Расположение конфигурации зависит от операционной системы:
Конфигурация находится в каталогах:
/etc/kolla/keyvrm-server;/etc/kolla/keyvrm-worker.
Конфигурация находится в каталогах:
/opt/kolla/keyvrm-server;/opt/kolla/keyvrm-worker.
В этих каталогах находятся базовая сервисная конфигурация, секреты и сертификаты KeyVRM. Параметры, которые могут изменяться при эксплуатации региона, настраиваются через Портал администратора.
Подключение KeyVRM к мультирегиональному Порталу администратора¶
Для работы через Портал администратора укажите адрес KeyVRM в конфигурации мультирегионального Портала администратора:
keyvrm_endpoint=https://<VIP-адрес KeyVRM>:<порт KeyVRM>
После применения конфигурации KeyVRM должен быть доступен в разделе Портала администратора.
Проверка перед первичной настройкой¶
Перед первичной настройкой убедитесь, что сервис развёрнут в регионе, подключён к Порталу администратора и доступен в интерфейсе.
В разделе должны быть доступны:
статус сервиса;
сводка по зонам доступности, хост-агрегатам, активным процессам, проблемным агрегатам и агрегатам в
NOOP;список зон доступности и хост-агрегатов, которые KeyVRM может обрабатывать;
кнопка Глобальная конфигурация.
Обзор KeyVRM в Портале администратора¶
Проверьте, что в регионе созданы хост-агрегаты и в них добавлены вычислительные узлы:
Откройте Портал администратора.
Перейдите в раздел .
Проверьте, что в нужных хост-агрегатах есть гипервизоры.
Вернитесь в раздел .
Проверьте, что нужные зоны доступности и хост-агрегаты отображаются на странице KeyVRM.
Хост-агрегаты региона¶
Если список хост-агрегатов в разделе пустой, их настройка через Портал администратора недоступна. Проверьте, что KeyVRM получает данные из OpenStack и что в регионе есть хост-агрегаты, доступные для обработки.
Первичная настройка KeyVRM¶
Первичная настройка KeyVRM включает два этапа:
настройку глобальной конфигурации сервиса;
настройку режимов и параметров хост-агрегатов.
Глобальная конфигурация определяет общие параметры работы KeyVRM. Конфигурация хост-агрегата определяет, как сервис обрабатывает конкретный агрегат: выполняет HA-логику, LB-логику, обе логики последовательно или не выполняет автоматические действия в режиме NOOP.
Глобальная конфигурация¶
Глобальная конфигурация применяется ко всему сервису KeyVRM. Она задаёт включение обработки региона, период работы MasterWorkflow, общие фильтры, настройки HA, LB и Executor.
Глобальная конфигурация создаётся при запуске KeyVRM и содержит значения по умолчанию. Перед изменением параметров учитывайте, что глобальная конфигурация влияет на работу HA, LB и Executor во всех хост-агрегатах.
Настройка глобальной конфигурации¶
Для настройки глобальной конфигурации выполните следующие действия:
Откройте Портал администратора.
Перейдите в раздел .
Нажмите кнопку Глобальная конфигурация.
На вкладке Общие настройки проверьте состояние KeyVRM и период запуска.
При необходимости измените список фильтров Nova, которые KeyVRM учитывает при выборе целевых гипервизоров.
На вкладке Настройки HA (High Availability) проверьте параметры эвакуации, фенсинга и интерфейсы для проверки отказа.
На вкладке Настройки LB (Load Balancer) проверьте metadata-ключ, который запрещает миграцию ВМ.
На вкладке Настройки Executor проверьте параметры повторных попыток, повторяющихся ошибок и тайм-аут ручной рекомендации.
Нажмите кнопку Сохранить.
Общие настройки¶
В общих настройках задаются:
KeyVRM включён — включает или выключает обработку региона. Если параметр выключен, KeyVRM не запускает обработку хост-агрегатов;
Период запуска, с — задаёт период запуска
MasterWorkflow. Для LB дополнительно используется период запуска в конфигурации хост-агрегата;Фильтры Nova — задают фильтры, которые KeyVRM учитывает при выборе целевых гипервизоров для эвакуации и живой миграции ВМ. Если поле пустое, фильтры не применяются.
Общие настройки глобальной конфигурации KeyVRM¶
Фильтры Nova
Чтобы использовать фильтр, добавьте его в поле Фильтры Nova и выполните указанную в таблице настройку. Все фильтры применяются при выборе целевых гипервизоров в режимах HA и LB.
Фильтр |
Описание |
|---|---|
|
Учитывает размещение ВМ из одной группы серверов с политикой |
|
Исключает гипервизор, если на нём уже находится другая ВМ из той же группы серверов с политикой |
|
Проверяет административное состояние службы вычислительного узла и наличие ошибок.
Гипервизор проходит фильтр, если |
|
Сопоставляет дополнительные характеристики флейвора с возможностями гипервизора.
Задайте дополнительные характеристики флейвора в формате |
|
Сопоставляет дополнительные характеристики флейвора с метаданными хост-агрегата.
При несовпадении значений гипервизор исключается.
Если параметр отсутствует и у флейвора, и у хост-агрегата, фильтр не ограничивает выбор.
Задайте у флейвора характеристику |
|
Проверяет, разрешено ли размещение ВМ проекта в хост-агрегате.
Если ключ |
|
Сопоставляет свойства образа |
Настройки HA¶
В настройках HA задаётся поведение KeyVRM при обработке отказавших или небезопасных гипервизоров.
К настройкам HA относятся:
Сохранять ephemeral-диск (HA) — передаёт в Nova флаг сохранения ephemeral-диска при эвакуации ВМ;
Ключ порядка эвакуации (HA) — задаёт имя metadata-ключа, по которому KeyVRM определяет приоритет эвакуации ВМ. ВМ с меньшим значением обрабатываются раньше;
Ключ отключения эвакуации (HA) — задаёт имя metadata-ключа, по которому KeyVRM исключает ВМ из автоматической эвакуации;
Таймаут сброса состояния ВМ (HA), с — устаревший параметр, который не влияет на обработку HA в текущей версии;
Fence: интерфейсы (HA) — задаёт интерфейсы, по которым KeyVRM выполняет проверку при принятии решения о фенсинге и эвакуации;
Fence Ceph (HA) — включает или выключает Ceph fencing;
Fence BMC (HA) — включает или выключает BMC fencing через IPMI или Redfish;
Fence Nova (HA) — включает или выключает Nova fencing;
Bond-интерфейсы (HA) — задаёт имена bond-интерфейсов, состояние которых KeyVRM учитывает при проверке отказа;
Режим power-fence (HA) — задаёт действие BMC-фенсинга:
poweroff,shutdownилиdelayed_poweron;Таймаут power-check (HA), с — задаёт тайм-аут проверки результата действия BMC-фенсинга. Установите значение параметра исходя из фактического времени полного отключения питания оборудования.
Настройки HA глобальной конфигурации KeyVRM¶
Перед созданием рекомендаций по эвакуации HA выполняет фенсинг. В зависимости от глобальной конфигурации KeyVRM может использовать следующие механизмы:
Ceph-фенсинг добавляет IP гипервизора в Ceph blacklist.
BMC-фенсинг выполняет действие через IPMI или Redfish и проверяет результат в течение тайм-аута
power_check_timeout.Nova-фенсинг переводит nova-compute service в состояние
disabled/fencedи при необходимости выставляет forced down.
Если в конфигурации не включён ни один механизм фенсинга, HA-событие завершается ошибкой, а KeyVRM не создаёт рекомендации по эвакуации.
Настройки LB¶
В глобальных настройках LB задаётся metadata-ключ, который запрещает миграцию ВМ.
Если у ВМ заданы метаданные по указанному ключу, KeyVRM преобразует их во внутренний признак no_migr и не создаёт для такой ВМ рекомендации по живой миграции.
Настройки LB глобальной конфигурации KeyVRM¶
Настройки Executor¶
В настройках Executor задаётся поведение сервиса при выполнении рекомендаций.
К настройкам Executor относятся:
Макс. повторений — ограничивает количество повторных попыток выполнения рекомендации;
Макс. одинаковых ошибок — ограничивает количество повторений одной и той же ошибки при выполнении рекомендации;
Таймаут ручной рекомендации, мин — задаёт время, в течение которого рекомендация в ручном режиме ожидает подтверждения оператора.
Настройки Executor глобальной конфигурации KeyVRM¶
Если рекомендация создана в статусе manual_action и оператор не подтвердил выполнение до истечения тайм-аута, рекомендация отменяется.
Конфигурация хост-агрегата¶
Конфигурация хост-агрегата задаёт режим работы KeyVRM и параметры HA/LB для конкретного хост-агрегата.
Новый хост-агрегат создаётся в KeyVRM с включённым NOOP. Перед началом обработки агрегата выберите режим работы, проверьте параметры выбранного режима и только после этого выключите NOOP.
Настройка хост-агрегата¶
Для настройки хост-агрегата выполните следующие действия:
Откройте Портал администратора.
Перейдите в раздел .
В таблице зон доступности выберите нужную зону.
В строке хост-агрегата откройте меню действий и выберите Редактирование конфигурации.
На вкладке Общие настройки выберите режим обработки в поле Маркер:
HA— для автоматической эвакуации ВМ;LB— для балансировки нагрузки;HA+LB— для последовательного выполнения HA- и LB-логики.
Если для агрегата нужно выполнять HA, на вкладке Настройки HA (High Availability) задайте резервы CPU и RAM.
Если для агрегата нужно выполнять LB, на вкладке Настройки LB (Load Balancer) задайте веса CPU, RAM и сетевой нагрузки, пороги нагрузки, режим автоматического запуска рекомендаций и период запуска LB.
Проверьте параметры выбранного режима.
Если для агрегата нужно запустить автоматическую обработку, выключите Режим NOOP на вкладке Общие настройки.
Если для агрегата не нужно выполнять автоматические действия, оставьте Режим NOOP включённым и укажите причину в поле Причина NOOP.
Нажмите кнопку Изменить.
Общие настройки¶
В общих настройках хост-агрегата задаются:
Маркер — режим обработки хост-агрегата:
HA,LBилиHA+LB;Режим NOOP — безопасный режим, в котором KeyVRM не создаёт HA- и LB-рекомендации для хост-агрегата;
Причина NOOP — комментарий, почему для хост-агрегата включён
NOOP.
Общие настройки хост-агрегата KeyVRM¶
Выключайте Режим NOOP только после проверки параметров хост-агрегата.
Настройки HA¶
В настройках HA хост-агрегата задаётся доля CPU и RAM, которую KeyVRM резервирует для обеспечения отказоустойчивости. Резерв рассчитывается по суммарным ресурсам всех гипервизоров хост-агрегата, включая гипервизоры, автоматически переведённые в режим обслуживания, но без гипервизоров, переведённых в режим обслуживания вручную.
Резервирование CPU (HA) — доля суммарных ресурсов CPU хост-агрегата, которая должна оставаться свободной;
Резервирование RAM (HA) — доля суммарных ресурсов RAM хост-агрегата, которая должна оставаться свободной.
Настройки HA хост-агрегата KeyVRM¶
Значения резервирования задаются в диапазоне от 0 до 1. Значение 0 означает, что дополнительный резерв не задаётся.
Например, если хост-агрегат содержит 10 гипервизоров, каждый из которых предоставляет по 10 единиц CPU и RAM, суммарные ресурсы агрегата составляют 100 единиц CPU и 100 единиц RAM. При значении резервирования 0.2 KeyVRM должен сохранять свободными 20 единиц CPU и 20 единиц RAM в пределах хост-агрегата — по 2 единицы каждого ресурса на гипервизор.
При выборе целевого гипервизора KeyVRM учитывает установленный резерв при расчёте доступных ресурсов и проверяет, достаточно ли их для размещения ВМ. При эвакуации сервис стремится разместить максимально возможное количество ВМ с учётом приоритета эвакуации и потребления ресурсов.
Настройки LB¶
В настройках LB хост-агрегата задаются параметры расчёта нагрузки и выполнения рекомендаций по живой миграции:
Множитель CPU (LB) — вес CPU в расчёте синтетической нагрузки;
Множитель RAM (LB) — вес RAM в расчёте синтетической нагрузки;
Множитель сети (LB) — вес сетевой нагрузки в расчёте синтетической нагрузки;
Автозапуск рекомендаций (LB) — определяет, выполняет ли KeyVRM LB-рекомендации автоматически;
Порог перегрузки гипервизора, % — значение, выше которого исходный гипервизор считается перегруженным;
Предельная нагрузка таргет-гипервизора, % — максимальная нагрузка целевого гипервизора после виртуального переноса ВМ;
Период запуска, с — период запуска LB-логики для хост-агрегата.
Настройки LB хост-агрегата KeyVRM¶
LB использует синтетическую оценку нагрузки syn_score:
Сумма lb_cpu_weight, lb_ram_weight и lb_network_weight не должна превышать 1.0.
Если нужно учитывать только один тип нагрузки, задайте для него вес 1 и оставьте остальные веса равными 0. Если нужно учитывать несколько типов нагрузки, распределите веса между ними так, чтобы сумма не превышала 1.0.
Гипервизор считается перегруженным, если его syn_score больше lb_threshold_overload.
Если KeyVRM должен определять перегрузку по полной загрузке любой из учитываемых метрик, задайте порог с учётом метрики с наименьшим весом. Например, при весах CPU 0.4, RAM 0.4 и сети 0.2 полностью загруженная сеть добавляет к syn_score не более 20. Чтобы KeyVRM определил перегрузку только по сетевой метрике, значение lb_threshold_overload должно быть меньше 20.
Целевой гипервизор должен оставаться ниже lb_threshold_limit после виртуального переноса ВМ. Для промышленного контура задавайте lb_threshold_limit равным lb_threshold_overload или ниже него.
Период запуска LB задаётся отдельно от общего периода запуска KeyVRM. Не задавайте период LB меньше 120 секунд. Значение по умолчанию — 300 секунд.
Проверка после настройки¶
После настройки проверьте страницу KeyVRM:
статус сервиса — Активен;
нужный хост-агрегат отображается в списке;
для хост-агрегата задан режим обработки;
агрегат не находится в
NOOP, если для него должны выполняться автоматические действия;количество проблемных агрегатов не увеличилось.
Если после настройки KeyVRM не создаёт события или рекомендации, перейдите к разделу Диагностика.
Дальнейшая эксплуатация KeyVRM¶
Управление рекомендациями, временное отключение автоматических действий и диагностика KeyVRM описаны в разделе Управление KeyVRM.