Версия для печати
Понедельник, 02 Май 2022 04:23

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

Автор
Оцените материал
(8 голосов)

Данная статья подойдёт для новичков, которые хотят потренироваться в настройке кластера 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

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

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

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

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

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

После установки появится привычная линуксовая консоль. Установочный образ 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/ 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нужен пакет с названием 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Yoomoney:
4100118091867315

BTC:
bc1qzw9vam8mv6derwscxl0vrnd6m9t2rpjg273mna

ETH / BNB BSC / Polygon MATIC:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

Tron:
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

USDT/USDC в сетях ETH/BSC/Polygon:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

USDT в сети TRX (Tron):
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

LTC:
LRMZaFCSyCT6FUF62WEX1BokWV7v2dh2zo

Doge:
DTEnGLZRps9XaWNtAhchJWSeD4uTNDRxg7

XMR:
4A6uP1WxEc7HktToZFyiJuK6YmjdL8bSn2aY653qPwABhT4Y56iFuedgHcmpvLwWE55u8qkjGc715ZJs761FqedA8gkgznr

TON:
UQAdSPiWIDx2Q1VIeezkUV3s4sNlZM90w2ohSO6bD2-okwgY

Прочитано 2137 раз Последнее изменение Воскресенье, 15 Январь 2023 00:10
Николай