Найти тему
Типичный Админ

Настройка кластера Proxmox 7.1 в домашних условиях

Данная статья подойдёт для новичков, которые хотят потренироваться в настройке кластера Proxmox 7.1. Итак, имеется:

- Тестовый комп1 "железный" на AMD FX 8350.

- Тестовый комп2 "железный" на Intel Xeon E5-2620 v3.

- Тестовый комп3 "виртуальный".

- Тестовый комп4 "железный" с расшаренным диском по протоколу iSCSI.

- Всё это соединено через обычный пассивный коммутатор.

Забегая вперёд, сразу хочется отметить, что кластер Proxmox может состоять из серверов с разными процессорами от разных производителей. В то время как у Hyper-V и VMware такой фишки нету — там в кластере должны быть сервера с одинаковыми процессорами, либо, на худой конец, с процессорами одной и той же серии, например Intel Xeon E5-2620 v3 и Intel Xeon E5-2678 v3.

Установка Proxmox очень простая. Скачиваю установочный образ с оф.сайта:

https://www.proxmox.com/en/downloads/category/iso-images-pve

И начинаю с него установку. На первом шаге предлагается выбрать диск для установки системы:

Потом выбирается часовой пояс:

-2

Потом устанавливается пароль суперадминистратора и его контактный электронный адрес:

-3

Дальше надо придумать имя хоста Proxmox и задать IP-адрес:

-4

Ну и всё, далее остаётся лишь нажать «Install»:

-5

После установки появится привычная линуксовая консоль. Установочный образ Proxmox представляет из себя обычный Linux Debian с уже всеми предустановленными пакетами Proxmox. А значит к этой машине можно подключиться по SSH и делать всё, что можно в обычном Linux Debian.

У Proxmox есть репозитории для владельцев платной подписки и есть репозитории бесплатные. По умолчанию в системе активен репозиторий платной подписки. Его я отключу и пропишу репозиторий бесплатный. Для этого редактирую файл /etc/apt/sources.list.d/pve-enterprise.list. Комментирую имеющуюся там строчку:

# deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise

И добавляю строчку:

deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription

Тут стоит обратить внимание на параметр bullseye – это версия ОС Debian. Более ранние дистрибутивы Proxmox работают на более ранних версиях Debian. А значит вместо bullseye (Debian 11) может быть, например, buster (Debian 10), stretch (Debian 9) и т.д.

Итак, после правки репозитория, делаю команды:

apt update
apt upgrade

для установки последних обновлений. А заодно ставлю Midnight Commander:

apt install mc

Затем перезагружаю сервер. И таким же образом я ставлю ОС на остальные два сервера. Всего получилось три хоста (ноды) с Proxmox: два «железных» и один виртуальный. Дело в том, что для организации кластера Proxmox с функцией HA (High availability) требуется минимум три хоста (ноды). Кластер не существует без кворума. Кворум – это, по сути, ноды, включенные в кластер, и у которых есть право голоса. Суть голосования в том, что, если происходит падение одной из нод по причине отказа или сбоя, остальные решают, по принципу большинства, продолжать работать кластеру или нет. Если в кластере 3 машины и одна уходит в сбой, то остальные две имеют 2 голоса из 3-х, и это большинство – кластер продолжает работать. А если в кластере 2 машины, то при отказе половины кластер перестает работать.

Хосты с Proxmox я обозвал так:

(виртуальный) prox1.local.typical-admin.ru, имеет IP-адрес 192.168.0.201
(железный)
prox2.local.typical-admin.ru, имеет IP-адрес 192.168.0.202
(железный)
prox3.local.typical-admin.ru, имеет IP-адрес 192.168.0.203

На каждой из этих машин в файл /etc/hosts добавляю записи:

192.168.0.201 prox1.local.typical-admin.ru prox1
192.168.0.202 prox2.local.typical-admin.ru prox2
192.168.0.203 prox3.local.typical-admin.ru prox3

но этого можно и не делать, если есть локальный DNS-сервер, либо Active Directory.

Захожу на какой-нибудь из хостов, пусть на prox1:

https://192.168.0.201:8006/

И там перехожу в меню Датацентр → Кластер и жму кнопку Создать кластер:

-6

Задаю название кластера и жму «Создать»:

-7

Дожидаюсь завершения задачи создания кластера:

-8

Теперь надо присоединить к кластеру остальные два сервера. Находясь всё в том же меню, жму кнопку «Данные присоединения»:

-9

Получаю окно со специальным кодом:

-10

Копирую этот код и захожу на машину prox2. Там также перехожу в меню Датацентр → Кластер и жму на Присоединить к кластеру:

-11

Там откроется окно, в которое надо вставить код присоединения к кластеру, а также вбить пароль администратора от prox1. При этом, IP-адрес и отпечаток встанут сами:

-12

Жму синюю кнопку присоединения. И на этом моменте админка подвиснет, но это, похоже, нормально, т.к. перезапускаются службы Proxmox:

-13

Зато в админке на prox1 я вижу, что узел prox2 присоединился к кластеру. Теперь им можно управлять из админки prox1:

-14

Но и админка на prox2 никуда не делась, там достаточно обновить страницу в браузере, и в админке на prox2 будет всё доступно точь-в-точь как на prox1. Аналогичным образом присоединяю и хост prox3 и получаю все три хоста в одном кластере:

-15

Теперь надо подключить iSCSI диск к этому кластеру. На любом из хостов захожу в меню Датацентр → Хранилище, жму Добавить и там выбираю iSCSI:

-16

В открывшемся окне придумываю название хранилища, вбиваю IP-адрес диска iSCSI, а в поле target просто жму на треугольник и система сама видит доступный lun на iSCSI диске:

-17

Жму «Добавить». Диск появился на всех узлах:

-18

Теперь надо создать логический том (LVM) на этом диске. Находясь в том же меню, жму «Добавить» и выбираю LVM:

-19

В открывшемся окне придумываю название тома, основное хранилище выбираю iSCSI, основной том задаю lun на iSCSI диске (его можно выбрать, нажав на треугольник), придумываю название группы томов и обязательно ставлю галку «Общедоступно»:

-20

Жму «Добавить». Логический топ появился и стал доступен на всех узлах. Однако на prox2 и prox3 его статус помечен как «неизвестно»:

-21

На prox1 со статусом всё в порядке. Этот логический том я как раз и создавал в админке prox1. Почему на остальных узлах статус «неизвестно» – я не знаю. Но лечится это перезагрузкой узлов prox2 и prox3. После чего статус тома на iSCSI диске доступен на всех узлах:

-22

Что ж, теперь надо создать виртуальную машину. Перехожу на хост prox3 или prox2 (на один из «железных») и там создам виртуальную машину с Windows 7. Точнее восстановлю её из своего образа, который ранее создал через AOMEI Backupper. Сам процесс восстановления образа опущу. Приведу лишь настройки виртуальной машины:

-23
-24
-25
-26
-27
-28
-29

После развёртывания образа вижу, что в системе отсутствуют драйверы для виртуальных устройств Balloon, vioscsi и т.д.

-30

Нужен пакет с названием Windows VirtIO Drivers. Но свежие версии этого пакета уже не поддерживают Windows 7. Мне нужен более старый пакет Windows VirtIO Drivers версии 0.1.164, в нём поддержка Windows 7 есть. Скачиваю образ:

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.164-2/virtio-win-0.1.164.iso

Загружаю его на локальный диск prox2:

-31

И потом вставляю его в CD-привод виртуальной машины:

-32

На виртуальной Windows 7 устанавливаю все драйвера через диспетчер устройств. Затем ставлю гостевого агента. Его установщик лежит тут:

-33

Перезагружаю виртуальную машину.

Теперь создам группу отказоустойчивости и добавлю в неё эту виртуальную машину. Иду в меню Датацентр → HA → Группы и жму Создать:

-34

В открывшемся окне задаю имя группы, включаю в неё узлы prox2 и prox3 (которые у меня «железные»). Также ставлю галки restricted и nofailback:

-35

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

Теперь поднимаюсь чуть выше, а именно Датацентр → HA и жму Добавить:

-36

В открывшемся окне выбираю id своей Windows 7 (либо можно выбрать из списка, нажав на треугольник), выбираю только что созданную группу ha1 и, по желанию, указываю максимальное количество перезапусков и перемещений виртуальной машины:

-37

Жму «Добавить». Виртуальная машина добавилась в список отказоустойчивости:

-38

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

-39

Выбираю узел prox3 и жму «Миграция»:

-40

Запустилось задание миграции. Виртуальная машина, при этом, продолжает работать:

-41

После завершения задания миграции виртуальная машина уже отображается на хосте prox3:

-42

Напомню, что prox2 у меня на процессоре Intel, а prox3 – на процессоре AMD. И запущенная виртуальная машина мигрирует с одного на другой. На Hyper-V и VMware такой возможности нет.

Что ж, теперь пробую выдернуть шнур из сервера prox3. В панели управления сразу вижу, что хост prox3 стал недоступен:

-43

А виртуальная машина, примерно через минуту-две, запустилась на хосте prox2:

-44

Отказоустойчивость работает. На этом статью можно завершать.

Донаты принимаются на кошельки:

Yoomoney:
4100118091867315

Карта Т-Банк (бывший Тиньков):
2200 7017 2612 2077

Карта Альфа-Банк:
2200 1539 1357 2013

#proxmox #сluster #Кластер #настройка #установка