Введение

Эта статья содержит пошаговую инструкцию по созданию кластера Proxmox с высокой доступностью (HA), настройке общего хранилища и репликации, а также решению часто возникающих проблем.

 

1. 🛠 Подготовка нод кластера

Для начала убедитесь, что выполнены следующие требования:

  • ✅ Установлен Proxmox VE версии 7.x или 8.x на каждом сервере.
  • ✅ Все узлы имеют статические IP-адреса.
  • ✅ Между узлами настроено подключение по SSH (используется порт 22).

Шаг 1: Настройка DNS / hosts

На каждой ноде откройте файл /etc/hosts:

nano /etc/hosts

И добавьте соответствующие записи:

192.168.1.101 pve1
192.168.1.102 pve2
192.168.1.103 pve3

Шаг 2: Проверка связи

Проверьте доступность узлов командой ping:

ping pve2
ping pve3

2. ⚙️ Создание кластера

На первом узле (pve1) создайте новый кластер через веб-интерфейс:

  1. Войдите в веб-интерфейс Proxmox.
  2. Перейдите в раздел «Датацентр» → «Кластер» → «Создать кластер».
  3. Укажите имя кластера (например, proxmox-cluster) и выберите сетевой интерфейс (обычно vmbr0).

Затем присоедините остальные узлы (pve2, pve3):

  1. Скопируйте «Данные присоединения» с узла pve1 (в интерфейсе есть кнопка для копирования).
  2. На узлах pve2 и pve3 перейдите в «Датацентр» → «Кластер» → «Присоединить к кластеру».
  3. Вставьте скопированные данные и введите пароль root от узла pve1.

Проверка состояния кластера:

pvecm status

✅ В выводе должно быть три узла с состоянием Online.


 

3. 🛡Настройка отказоустойчивости (HA)

Для работы с HA требуются:

  • 3+ узла (необходим кворум),
  • Общее хранилище (iSCSI, NFS или Ceph).

Шаг 1: Добавление хранилища

Рассмотрим пример добавления хранилища iSCSI:

  1. Перейдите в раздел «Датацентр» → «Хранилище» → «Добавить».
  2. Выберите тип хранилища «iSCSI» и укажите параметры вашего СХД (IP-адрес, target, LUN).

Шаг 2: Создание HA-группы

Создайте группу для управления высокодоступными виртуальными машинами (ВМ):

  1. Перейдите в «Датацентр» → «HA» → «Группы» → «Создать».
  2. Назначьте группе идентификатор (например, ha-group1), добавьте узлы (pve1, pve2, pve3) и установите приоритет для каждого узла (высокий приоритет для pve1).

Шаг 3: Добавление ВМ в HA

Добавьте виртуальные машины в группу HA:

  1. Перейдите в «Датацентр» → «HA» → «Добавить».
  2. Выберите ВМ и назначьте ей группу ha-group1.

Проведите тест отказа:

systemctl poweroff  # На узле pve1

Через несколько минут ВМ должна перезапуститься на другом узле (например, pve2 или pve3).


4. 🔄 Репликация (для локальных хранилищ)

Настроим репликацию данных на основе ZFS:

  1. Создайте пул ZFS: zpool create -f zfs-replica /dev/sdb
  2. Добавьте созданный пул в веб-интерфейсе:
    • Перейдите в «Датацентр» → «Хранилище» → «ZFS» → «Добавить пул».
  3. Настройте репликацию для выбранной ВМ:
    • Выберите ВМ → «Репликация» → «Создать».
    • Укажите целевую ноду (например, pve2) и расписание (например, каждую минуту: */15 * * * *).
    Для принудительного запуска репликации: qm replicate 100 pve2 --force # где 100 — ID ВМ

 

5. ⚠️ Решение частых проблем

Проблема: «No quorum»

Это означает, что узел не видит достаточное количество участников кластера для продолжения работы. Попробуйте временное решение:

pvecm expect 1  # Если остался один узел
pvecm status     # Проверка статуса

Проблема: ВМ не мигрирует после сбоя

Выполните команду на работающем узле:

ha-manager set 100 --state started  # где 100 — ID ВМ

Проверьте журналы событий:

journalctl -u pve-ha-lrm

6. 🗑️ Удаление кластера

Чтобы удалить кластер, выполните следующие шаги:

  1. Удалите все узлы, кроме первого: pvecm delnode pve2 pvecm delnode pve3
  2. Остановите сервисы кластера: systemctl stop pve-cluster corosync
  3. Удалите конфигурационные файлы: rm -rf /etc/pve/corosync.conf /var/lib/corosync/*

Заключение

После выполнения всех шагов вы получите отказоустойчивый кластер Proxmox с автоматической миграцией ВМ и репликацией данных между узлами. Для повышения надежности рекомендуется использовать Ceph вместо iSCSI.

Если возникнут вопросы, оставляйте комментарии ниже! 👇😊

От root

Добавить комментарий

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