Настройка кластера Proxmox VE: различия между версиями

Материал из support.qbpro.ru
Строка 114: Строка 114:
Также мы можем задать приоритеты для серверов, если отдаем каким-то из них предпочтение.
Также мы можем задать приоритеты для серверов, если отдаем каким-то из них предпочтение.
<br>
<br>
Нажимаем '''OK''' — группа должна появиться в общем списке.
Нажимаем '''OK''' — группа должна появиться в общем списке.<br>
* Настраиваем отказоустойчивость для виртуальной машины
Переходим в '''Датацентр''' - '''HA'''. Кликаем по кнопке '''Добавить''':<br>
[[Файл:Hapve15.jpg]]<br>
<br>
В открывшемся окне выбираем виртуальную машину и группу:<br>
[[Файл:Hapve16.jpg]]<br>
<br>
... и нажимаем '''Добавить'''.


==Проверка==
==Проверка==

Версия от 00:50, 22 февраля 2024

В данной инструкции мы сначала соберем кластер Proxmox для управления всеми хостами виртуализации из единой консоли, а затем — кластер высокой доступности (HA или отказоустойчивый). В нашем примере мы будем работать с 3 серверами — pve1, pve2 и pve3.

Подготовка узлов для настройки кластера

Серверы должны иметь возможность обращения друг к другу по их серверным именам. В продуктивной среде лучше всего для этого создать соответствующие записи в DNS. В тестовой можно отредактировать файлы hosts. В Proxmox это можно сделать в консоли управления — устанавливаем курсор на сервере - переходим в Система - Hosts - добавляем все серверы, которые будут включены в состав кластера:

Pre1.jpg

  • в данном примере у нас в hosts занесены наши два сервера Proxmox, из которых мы будем собирать кластер.

Работа с кластером

Построение кластерной системы выполняется в 2 этапа — сначала мы создаем кластер на любой из нод, затем присоединяем к данному кластеру остальные узлы.

Создание кластера

Переходим в панель управления Proxmox на любой их нод кластера. Устанавливаем курсов на Датацентр - кликаем по Кластер - Создать кластер:

Pre2.jpg

Для создания кластера нам нужно задать его имя и, желательно, выбрать IP-адрес интерфейса, на котором узел кластера будет работать:

Pre3.jpg

  • ... кликаем Создать — процесс не должен занять много времени. В итоге, мы должны увидеть «TASK OK»:


Pre4.jpg

Присоединение нод

На первой ноде, где создали кластер, в том же окне станет активна кнопка Данные присоединения — кликаем по ней:

Pre5.jpg

В открывшемся окне копируем данные присоединения:

Pre6.jpg

Теперь переходим в панель управления нодой, которую хотим присоединить к кластеру. Переходим в Датацентр - Кластер - кликаем по Присоединить к кластеру:

Pre7.jpg

В поле «Данные» вставляем данные присоединения, которые мы скопировали с первой ноды — поля «Адрес сервера» и «Отпечаток заполняться автоматически». Заполняем пароль пользователя root первой ноды и кликаем Присоединение:

Pre8.jpg

Присоединение также не должно занять много времени. Ждем несколько минут для завершения репликации всех настроек.
Кластер готов к работе — при подключении к любой из нод мы будем подключаться к кластеру:

Pre9.jpg

Готово. Данный кластер можно использовать для централизованного управления хостами Proxmox.

  • Посмотреть статус работы кластера можно командой в SSH:
pvecm status

Настройка кластера

Настроим автоматический перезапуск виртуальных машин на рабочих нодах, если выйдет из строя сервер.

Для настройки отказоустойчивости (High Availability или HA) нам нужно:
Минимум 3 ноды в кластере. Сам кластер может состоять из двух нод и более, но для точного определения живых/не живых узлов нужно большинство голосов (кворумов), то есть на стороне рабочих нод должно быть больше одного голоса. Это необходимо для того, чтобы избежать ситуации 2-я активными узлами, когда связь между серверами прерывается и каждый из них считает себя единственным рабочим и начинает запускать у себя все виртуальные машины. Именно по этой причине HA требует 3 узла и выше.
Общее хранилище для виртуальных машин. Все ноды кластера должны быть подключены к общей системе хранения данных — это может быть СХД, подключенная по FC или iSCSI, NFS или распределенное хранилище Ceph или GlusterFS.

Подготовка

Процесс добавления 3-о узла аналогичен процессу, описанному выше — на одной из нод, уже работающей в кластере,
мы копируем данные присоединения; в панели управления третьего сервера переходим к настройке кластера и присоединяем узел.

Настройка общего хранилища

Подробное описание процесса настройки самого хранилища выходит за рамки данной инструкции.
В данном примере мы разберем пример и использованием СХД, подключенное по iSCSI.
Если наша СХД настроена на проверку инициаторов, на каждой ноде смотрим командой:

cat /etc/iscsi/initiatorname.iscsi

... IQN инициаторов. Пример ответа:

...
InitiatorName=iqn.1993-08.org.debian:01:4640b8a1c6f
  • где iqn.1993-08.org.debian:01:4640b8a1c6f — IQN, который нужно добавить в настройках СХД.

После настройки СХД, в панели управления Proxmox переходим в Датацентр - Хранилище.
Кликаем Добавить и выбираем тип (в нашем случае, iSCSI):
Hapve10.jpg

В открывшемся окне указываем настройки для подключения к хранилке:
Hapve11.jpg

  • где ID — произвольный идентификатор для удобства;

Portal — адрес, по которому iSCSI отдает диски;
Target — идентификатор таргета, по которому СХД отдает нужный нам LUN.

Нажимаем добавить, немного ждем — на всех хостах кластера должно появиться хранилище с указанным идентификатором. Чтобы использовать его для хранения виртуальных машин, еще раз добавляем хранилище, только выбираем LVM:
Hapve12.jpg

Задаем настройки для тома LVM:
Hapve12.jpg

  • где было настроено:

ID — произвольный идентификатор. Будет служить как имя хранилища.
Основное хранилище — выбираем добавленное устройство iSCSI.
Основное том — выбираем LUN, который анонсируется таргетом.
Группа томов — указываем название для группы томов. В данном примере указано таким же, как ID.
Общедоступно — ставим галочку, чтобы устройство было доступно для всех нод нашего кластера.
Нажимаем Добавить — мы должны увидеть новое устройство для хранения виртуальных машин.

Для продолжения настройки отказоустойчивого кластера создаем виртуальную машину на общем хранилище.ID

Настройка отказоустойчивости

  • Создание группы

Для начала, определяется с необходимостью групп. Они нужны в случае, если у нас в кластере много серверов,
но мы хотим перемещать виртуальную машину между определенными нодами. Если нам нужны группы,
переходим в Датацентр - HA - Группы. Кликаем по кнопке Создать:
Hapve13.jpg

Вносим настройки для группы и выбираем галочками участников группы:
Hapve14.jpg

  • где:

ID — название для группы. restricted — определяет жесткое требование перемещения виртуальной машины внутри группы.
Если в составе группы не окажется рабочих серверов, то виртуальная машина будет выключена.
nofailback — в случае восстановления ноды, виртуальная машина не будет на нее возвращена, если галочка установлена.
Также мы можем задать приоритеты для серверов, если отдаем каким-то из них предпочтение.
Нажимаем OK — группа должна появиться в общем списке.

  • Настраиваем отказоустойчивость для виртуальной машины

Переходим в Датацентр - HA. Кликаем по кнопке Добавить:
Hapve15.jpg

В открывшемся окне выбираем виртуальную машину и группу:
Hapve16.jpg

... и нажимаем Добавить.

Проверка

Ручное перемещение виртуальной машины между узлами

Настройка репликации

ZFS

Настройка репликации

Удаление нод

Удаление кластера

Рассмотрим процесс удаления нод из кластера и самого кластера. Данные действия не могут быть выполнены из веб-консоли
— все операции делаем в командной строке.
Подключаемся по SSH к одной из нод кластера. Смотрим все узлы, которые присоединены к нему:

pvecm nodes

Мы получим список нод — удалим все, кроме локальной, например:

pvecm delnode pve2
pvecm delnode pve3
  • в данном примере мы удалили ноды pve2 и pve3.

Необходимо подождать, минут 5, чтобы прошла репликация между нодами. После останавливаем следующие службы:

systemctl stop pvestatd pvedaemon pve-cluster corosync

Подключаемся к базе sqlite для кластера PVE:

sqlite3 /var/lib/pve-cluster/config.db

Удаляем из таблицы tree все записи, поле name в которых равно corosync.conf:

> DELETE FROM tree WHERE name = 'corosync.conf';

Отключаемся от базы:

> .quit

Удаляем файл блокировки:

rm -f /var/lib/pve-cluster/.pmxcfs.lockfile

Удаляем файлы, имеющие отношение к настройке кластера:

rm /etc/pve/corosync.conf
rm /etc/corosync/*
rm /var/lib/corosync/*

Запускаем ранее погашенные службы:

systemctl start pvestatd pvedaemon pve-cluster corosync

Кластер удален.