Product SiteDocumentation Site

40.3. Настройка высокой доступности

Стек HA полностью интегрирован в API PVE и доступен:
  • через веб-интерфейс PVE (раздел Центр обработки данныхHA);
  • через командную строку (ha-manager);
  • через автоматизированные скрипты (через API).
Меню HA. Статус настройки HA
В разделе Статус отображается текущее состояние HA:
  • наличие кворума;
  • активность главного узла. В примере главный узел pve01 группы HA активен и последний временной штамп жизнеспособности (heartbeat timestamp) проверен;
  • состояние всех узлов и их локальных менеджеров ресурсов (LRM), включая состояние heartbeat;
  • состояние механизма изоляции (fencing) и сторожевых таймеров (watchdog).
В строке fencing отображается текущее состояние сторожевого таймера CRM. Каждая строка lrm дополнительно показывает состояние собственного watchdog локального менеджера ресурсов.
Состояния watchdog:
  • armed (активен) — CRM активно управляет сервисами и удерживает открытым свой сторожевой таймер. Каждый LRM также удерживает собственный watchdog, пока владеет блокировкой агента. При потере кворума или сбое соответствующего демона watchdog инициирует перезагрузку узла, чтобы обеспечить безопасное переключение сервисов на другой узел;
  • standby (ожидание) — стек HA готов к работе но активный CRM отсутствует. Такое состояние может наблюдаться, например, при отсутствии ресурсов HA или сразу после запуска кластера до выбора главного узла. Watchdog CRM в этом состоянии не активен. После назначения активного CRM состояние автоматически изменяется на armed;
  • disarming (отключение) — была выполнена команда disarm-ha. CRM замораживает сервисы или прекращает их отслеживание в зависимости от выбранного режима ресурсов и ожидает освобождения watchdog всеми LRM. На этом этапе watchdog CRM остается активным, а LRM постепенно освобождают свои сторожевые таймеры;
  • disarmed (отключен) — все watchdog в кластере освобождены. Автоматическая изоляция (fencing), восстановление и переключение сервисов при сбоях не выполняются.
Примеры команд ha-manager:
  • Просмотр статуса:
    # ha-manager status
    quorum OK
    master pve01 (active, Mon Jul  6 15:14:51 2026)
    fencing armed (CRM watchdog active)
    lrm pve01 (active, watchdog active, Mon Jul  6 15:14:54 2026)
    lrm pve02 (idle, watchdog standby, Mon Jul  6 15:14:53 2026)
    lrm pve03 (active, watchdog active, Mon Jul  6 15:14:53 2026)
    service ct:102 (pve01, started)
    service ct:103 (pve03, stopped)
    
  • Просмотр конфигурации ресурсов:
    # ha-manager config
    ct:102
    	state started
    
    ct:103
    	state stopped
    
    vm:104
    	state started
    
  • Онлайн-миграция (с сохранением состояния):
    # ha-manager migrate vm:104 pve02
    

    Примечание

    При онлайн-миграции вся используемая память переносится по сети, поэтому иногда быстрее остановить ВМ и перезапустить её на новом узле.
  • Перемещение с остановкой и перезапуском:
    # ha-manager relocate vm:104 pve02
    
  • Удаление ресурса из HA:
    # ha-manager remove ct:103
    

    Примечание

    Эта команда не запускает и не останавливает ресурс.
Возможные состояния служб:
  • stopped — служба остановлена (подтверждено LRM). Если LRM обнаружит, что служба в этом состоянии фактически работает, он остановит её снова;
  • request_stop — службу необходимо остановить. CRM ожидает подтверждения от LRM;
  • stopping — ожидание обработки запроса на остановку. CRM ещё не получил подтверждение;
  • started — служба активна, и LRM должен запускать её как можно скорее, если она ещё не работает. Если служба аварийно завершилась и LRM фиксирует, что она не работает, LRM перезапускает её;
  • starting — ожидание запуска службы. CRM ещё не получил подтверждение от LRM;
  • fence — ожидание fencing узла, так как узел службы находится вне кворумной части кластера. После успешного ограждения служба переводится в состояние recovery;
  • recovery — ожидание восстановления службы. HA-менеджер ищет новый узел, на котором можно запустить службу. Поиск зависит от доступных и кворумных узлов, а также от правил affinity (если заданы). Когда подходящий узел найден, служба переносится туда и сначала получает состояние stopped. Если служба должна быть запущена — узел её запускает;
  • freeze — состояние «заморозки»: служба не изменяется. Используется во время перезагрузки узла или перезапуска демона LRM;
  • ignored — служба временно игнорируется HA-менеджером. Полезно, если требуется полный ручной контроль без удаления службы из конфигурации HA;
  • migrate — онлайн-миграция службы на другой узел;
  • error — служба отключена из-за ошибок LRM. Требуется ручное вмешательство;
  • queued — служба недавно добавлена, и CRM ещё не видел её;
  • disabled — служба остановлена и помечена как disabled.
Все конфигурационные файлы HA хранятся в /etc/pve/ha/ и автоматически синхронизируются между узлами кластера.

40.3.1. Создание ресурса

Для создания ресурса необходимо в подменю Ресурсы нажать кнопку Добавить.
Создания ресурса
Параметры ресурса:
  • VM — идентификатор ВМ или контейнера;
  • Макс. перезапусков — количество попыток запуска ВМ/контейнера на новом узле после перемещения;
  • Макс. перемещений — количество попыток перемещения ВМ/контейнера на новый узел;
  • Failback — автоматически возвращать ресурс на узел с наивысшим приоритетом, если он снова доступен;
  • Статус запроса:
    • started — поддерживать ВМ в запущенном состоянии;
    • stopped — не запускать, но перемещать при сбое;
    • ignored — игнорировать HA для этого ресурса;
    • disabled — остановить и не перемещать (используется для выхода из ошибки).
Пример создания ресурса в командной строке:
# ha-manager add ct:108 --state started --max_relocate 2
Список ресурсов, управляемых ha-manager, хранится в файле /etc/pve/ha/resources.cfg в формате:
<тип>: <имя>
       <свойство> <значение>
…

Таблица 40.1. Дополнительные свойства

Свойство
Описание
auto-rebalance: <логическое значение> (по умолчанию = 1)
Ресурс может быть перенесен в процессе автоматической перебалансировки
comment: <строка>
Описание ресурса
failback: <логическое значение> (по умолчанию = 1)
Автоматически возвращать ресурс на узел с наивысшим приоритетом в соответствии с правилами привязки узлов, если в сеть подключается узел с более высоким приоритетом, чем текущий узел
group: <строка>
Идентификатор группы высокой доступности (HA)
max_relocate: <целое число> (0 — N) (по умолчанию = 1)
Максимальное количество попыток перераспределения службы при сбое запуска службы
max_restart: <целое число> (0 — N) (по умолчанию = 1)
Максимальное количество попыток перезапуска службы на узле после сбоя запуска
state: <disabled | enabled | ignore | started | stopped> (по умолчанию = started)
Запрошенное состояние ресурса (enabled — псевдоним для started)
Пример конфигурации (/etc/pve/ha/resources.cfg):
ct: 103
	state stopped

vm: 104
	state started

ct: 102
	max_relocate 2
	state started

Примечание

Если параметры не указаны, используются значения по умолчанию.