Product SiteDocumentation Site

Глава 40. Высокая доступность PVE

40.1. Как работает высокая доступность в PVE
40.2. Требования для настройки HA
40.3. Настройка высокой доступности
40.3.1. Создание ресурса
40.3.2. Правила
40.4. Отключение HA для обслуживания кластера
40.4.1. Отключение и повторное включение HA
40.4.2. Процесс отключения
40.4.3. Узлы в офлайн-режиме во время отключения
40.4.4. Взаимодействие с режимом обслуживания (Maintenance Mode)
40.5. Планировщик ресурсов кластера (CRS)
40.5.1. Режим планирования CRS
40.5.2. Точки планирования CRS
40.5.3. Автоматический балансировщик нагрузки CRS
Функция высокой доступности (High Availability, HA) в PVE позволяет кластеру автоматически перемещать или мигрировать ВМ с отказавшего узла на работоспособный узел без вмешательства пользователя.
Ресурс HA может работать только на узлах, где доступны все его зависимости. По умолчанию HA Manager рассматривает все узлы кластера как подходящие для размещения ресурса. Чтобы сохранить такое поведение, виртуальная машина или контейнер должны:
  • использовать параметры конфигурации, совместимые со всеми узлами кластера;
  • использовать только общее хранилище, доступное с каждого узла кластера;
  • использовать сетевые интерфейсы, настроенные на всех узлах кластера;
  • использовать только устройства с пробросом (passthrough), доступные на всех узлах кластера.
Если какая-либо зависимость доступна только на части узлов кластера, необходимо ограничить размещение ресурса высокой доступности этим подмножеством узлов с помощью правила строгой привязки узлов (см. Правила привязки к узлам (Node Affinity)). После этого HA Manager будет выполнять размещение, восстановление и миграцию ресурса только среди узлов, указанных в правиле.

Примечание

HA в PVE управляет только узлами и виртуальными машинами внутри кластера PVE. Эта функциональность не заменяет избыточность на уровне хранилища. Общие хранилища сторонних производителей могут иметь собственную HA-систему. Таким образом, для построения реально отказоустойчивой среды необходимо настроить как HA в PVE, так и избыточность на уровне хранилища.
Вычислительные узлы PVE могут иметь собственные уровни аппаратной избыточности, например, RAID-массивы, резервные источники питания, объединённые сетевые интерфейсы. HA не дублирует эти механизмы, а дополняет их на уровне оркестрации ВМ, обеспечивая сохранение работоспособности сервисов при отказе узла.

40.1. Как работает высокая доступность в PVE

PVE предоставляет программный стек ha-manager, который автоматически обнаруживает сбои и выполняет автоматический переход на резервный ресурс. Основной объект, управляемый ha-manager, называется ресурсом (service). Ресурс однозначно идентифицируется идентификатором сервиса (SID), состоящим из типа ресурса и идентификатора, специфичного для данного типа:
  • vm: 100 (ресурс типа ВМ с идентификатором 100);
  • ct: 109 (контейнер с идентификатором 109).
Для обеспечения высокой доступности на каждом узле работают два демона:
  • pve-ha-lrm — локальный менеджер ресурсов (Local Resource Manager, LRM). Он управляет службами, работающими на локальном узле. LRM считывает требуемые состояния служб из текущего статусного файла менеджера и выполняет соответствующие команды;
  • pve-ha-crm — кластерный менеджер ресурсов (Cluster Resource Manager, CRM). Он принимает решения на уровне кластера: отправляет команды LRM, обрабатывает результаты и переносит ресурсы на другие узлы при сбоях. CRM также выполняет fencing узлов.
При недоступности узла (например, сетевой разрыв или зависание) HA-менеджер:
  1. Ожидает 60 секунд, чтобы исключить временные сбои.
  2. Выполняет ограждение (fencing) отказавшего узла — блокирует узел, чтобы предотвратить одновременную работу ВМ на нескольких узлах («split-brain»).
  3. Перемещает ВМ и контейнеры на другой доступный узел в группе HA.

Примечание

Даже если узел продолжает работать, но потерял связь с кластером, HA считает его отказавшим и мигрирует ресурсы.
После восстановления узла HA не возвращает ВМ на исходный узел автоматически. Это должно выполняться вручную:
  1. Отключить HA для нужной ВМ.
  2. Переместить ВМ на исходный узел.
  3. Включить HA для этой ВМ.

Примечание

ВМ может быть перемещена вручную только если HA отключён для данной ВМ.