Настройка кластера Proxmox VE: различия между версиями
Vix (обсуждение | вклад) |
Vix (обсуждение | вклад) |
||
Строка 81: | Строка 81: | ||
=Удаление нод= | =Удаление нод= | ||
=Удаление кластера= | =Удаление кластера= | ||
Рассмотрим процесс удаления нод из кластера и самого кластера. Данные действия не могут быть выполнены из веб-консоли — все операции делаем в командной строке.<br> | |||
Подключаемся по 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 | |||
Кластер удален. | |||
<hr> | <hr> | ||
* [https://www.dmosk.ru/miniinstruktions.php?mini=proxmoxve-cluster#cluster '''Источник'''] | * [https://www.dmosk.ru/miniinstruktions.php?mini=proxmoxve-cluster#cluster '''Источник'''] |
Версия от 00:30, 22 февраля 2024
В данной инструкции мы сначала соберем кластер Proxmox для управления всеми хостами виртуализации из единой консоли, а затем — кластер высокой доступности (HA или отказоустойчивый). В нашем примере мы будем работать с 3 серверами — pve1, pve2 и pve3.
Подготовка узлов для настройки кластера
Серверы должны иметь возможность обращения друг к другу по их серверным именам. В продуктивной среде лучше всего для этого создать соответствующие записи в DNS. В тестовой можно отредактировать файлы hosts. В Proxmox это можно сделать в консоли управления — устанавливаем курсор на сервере - переходим в Система - Hosts - добавляем все серверы, которые будут включены в состав кластера:
- в данном примере у нас в hosts занесены наши два сервера Proxmox, из которых мы будем собирать кластер.
Работа с кластером
Построение кластерной системы выполняется в 2 этапа — сначала мы создаем кластер на любой из нод, затем присоединяем к данному кластеру остальные узлы.
Создание кластера
Переходим в панель управления Proxmox на любой их нод кластера. Устанавливаем курсов на Датацентр - кликаем по Кластер - Создать кластер:
Для создания кластера нам нужно задать его имя и, желательно, выбрать IP-адрес интерфейса, на котором узел кластера будет работать:
- ... кликаем Создать — процесс не должен занять много времени. В итоге, мы должны увидеть «TASK OK»:
Присоединение нод
На первой ноде, где создали кластер, в том же окне станет активна кнопка Данные присоединения — кликаем по ней:
В открывшемся окне копируем данные присоединения:
Теперь переходим в панель управления нодой, которую хотим присоединить к кластеру. Переходим в Датацентр - Кластер - кликаем по Присоединить к кластеру:
В поле «Данные» вставляем данные присоединения, которые мы скопировали с первой ноды — поля «Адрес сервера» и «Отпечаток заполняться автоматически». Заполняем пароль пользователя root первой ноды и кликаем Присоединение:
Присоединение также не должно занять много времени. Ждем несколько минут для завершения репликации всех настроек.
Кластер готов к работе — при подключении к любой из нод мы будем подключаться к кластеру:
Готово. Данный кластер можно использовать для централизованного управления хостами 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):
Настройка отказоустойчивости
Проверка
Ручное перемещение виртуальной машины между узлами
Настройка репликации
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
Кластер удален.