Высокодоступные (HA) кластеры Proxmox: что нужно и что не нужно делать

Одна из самых мощных возможностей кластера виртуализации — встроенная поддержка высокой доступности (High Availability, HA). Функции HA обеспечивают отказоустойчивость виртуальных машин (ВМ) в случае выхода из строя хоста. В Proxmox эти функции встроены в кластерные возможности, однако есть нюансы, которые важно учитывать. Рассмотрим рекомендации и ошибки при работе с HA в Proxmox.

Что такое Proxmox HA?

Proxmox HA — это кластерная функция, позволяющая запускать ВМ на нескольких хостах с общим хранилищем. Если один из узлов кластера выходит из строя, ВМ, настроенные на HA, автоматически перезапускаются на работоспособном хосте.
Кроме того, это позволяет выполнять плановое обслуживание узлов без прерывания работы сервисов, устраняя необходимость в специальных окнах обслуживания.

Пример для домашней лаборатории
Даже в домашней среде можно обеспечить бесперебойную работу критических сервисов, таких как Home Assistant, медиасерверы или Git-серверы. Например, если в кластере Proxmox работают три мини-ПК, при выходе одного из них ВМ автоматически перезапустятся на оставшихся узлах.

Планирование кластера Proxmox HA

Перед развертыванием кластера учитывайте следующие требования:

  • Минимум три узла — для поддержания кворума и предотвращения split-brain (разделения кластера). Двухузловой кластер возможен с внешним устройством кворума, но три узла — рекомендованный вариант.
  • Общее хранилище — NFS, iSCSI или Ceph, чтобы все узлы имели доступ к одним и тем же данным ВМ.
  • Стабильная сеть — сервис corosync, отвечающий за связь между узлами, требует надежной сети с низкой задержкой. Потери пакетов могут привести к выводу узлов из кластера.
  • Синхронизация времени — все узлы должны использовать единый источник времени (NTP или chrony). Расхождения во времени могут нарушить работу HA и механизма fencing.

Что нужно делать в кластере Proxmox HA

Организация ВМ в группы HA и настройка приоритетов

Группа HA — это набор ВМ или контейнеров с общими требованиями к отказоустойчивости. Группировка позволяет:

  • Управлять порядком запуска (например, СУБД перед приложениями).
  • Настроить антиаффинити (запрет запуска копий сервисов на одном хосте).
  • Указать приоритеты восстановления.

Совет:
Создайте группы (например, critical-core для важных сервисов, low-priority для тестовых ВМ). В интерфейсе (Datacenter → HA → Groups) задайте параметры Max Relocate и Order.

Настройка fencing (изоляции узлов)

Fencing предотвращает конфликты при доступе к данным, изолируя отказавшие узлы. Без него возможен split-brain и повреждение данных.

Шаги настройки:

  1. Установите агенты fencing:

    apt update && apt install fence-agents

    (Доступны агенты для IPMI, APC и других устройств.)

  2. Добавьте устройство через GUI (Datacenter → HA → Fencing) или API:

    pvesh create /nodes//fence —device agent=fence_ipmilan,lanplus=1,ipaddr=10.0.0.30,login=admin,passwd=secret,power_wait=10

  3. Проверьте режим fencing в /etc/pve/datacenter.cfg (watchdog, hardware или both).

  4. Протестируйте:

    pvesh create /nodes//fence

    и проверьте логи (/var/log/syslog или journalctl -u pve-ha-lrm).

Мониторинг

HA не заменяет мониторинг. Отслеживайте:

  • Состояние corosync (задержки, потери пакетов).
  • Производительность хранилища (IOPS, задержки).
  • Ресурсы хостов (CPU, RAM, сеть).

Способы реализации:

  • Встроенные уведомления Proxmox (email/Slack).
  • Prometheus + Grafana для сбора метрик.

Плановые тесты отказоустойчивости

Регулярно проверяйте работу HA:

  1. В отведенное окно отключите узел или имитируйте сбой.
  2. Убедитесь, что ВМ перезапускаются на других хостах.
  3. Проверьте логи (/var/log/pve-ha-manager.log).

Обновление ПО кластера

Разные версии Proxmox или corosync могут нарушить работу HA.

  • Обновляйте все узлы в одном окне обслуживания.
  • Используйте apt list --installed pve-cluster corosync для контроля версий.
  • Применяйте поэтапное обновление (по одному узлу).

Чего не стоит делать в кластере Proxmox HA

Ненадежная сеть для corosync

Избегайте:

  • Wi-Fi или Powerline.
  • Один сетевой кабель (используйте bonding).
  • Разные скорости в bond (например, 1 Гбит/с и 2.5 Гбит/с).

Рекомендация: Два проводных соединения с одинаковой скоростью.

Игнорирование нагрузки на хранилище

При миграции или перезапуске ВМ растет нагрузка на хранилище. Признаки проблем:

  • Зависание миграции.
  • Ошибки Timeout waiting for migration.

Протестируйте хранилище утилитой fio (задержка должна быть <10 мс).

Отключение узлов без корректировки кворума

Потеря кворума (например, 2 из 3 узлов) остановит кластер.

  • Для планового обслуживания используйте:

    pvecm expected 2

  • В двухузловом кластере настройте QDevice для кворума.

Перегрузка хостов

Если хосты работают на 90-100% ресурсов, они не смогут принять ВМ с отказавшего узла.

  • Ограничьте число перемещаемых ВМ (Max Relocate).
  • Держите запас ресурсов (~30%).
  • Отслеживайте нагрузку в Resources → Summary.

Просмотр ресурсов в Proxmox

Пропуск анализа логов

После сбоев проверяйте:

  • /var/log/pve-ha-manager.log — предупреждения о split-brain.
  • /var/log/syslog — ошибки миграции.

Итог

Proxmox HA обеспечивает отказоустойчивость ВМ, но требует правильной настройки и мониторинга. Следуя рекомендациям, вы минимизируете риски и повысите надежность кластера.

Предыдущая Статья

Запускай свой домашний лабораторный стенд с помощью инфраструктуры как код, как босс.

Следующая Статья

5 убийственных проектов на основе ИИ, которые можно попробовать за выходные

Написать комментарий

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *