Перейти к содержанию

▍Кластер Proxmox

Вводная часть

ip hostname role
192.168.0.121 test-pve1.home.lab нода кластера Proxmox + нода Ceph
192.168.0.122 test-pve2.home.lab нода кластера Proxmox + нода Ceph
192.168.0.123 test-pve3.home.lab нода кластера Proxmox + нода Ceph

Установим Proxmox 8.1.3 на все три наших ноды. После не хитрой установки, нода перезагрузится и выведет на начальном экране авторизации IP адрес веб интерфейса:

Install Proxmox node

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

Настройка первой ноды

Заходим по указанному адресу, в нашем случае это https://192.168.0.121:8006 , делаем исключение для этого сайта, т.к. сертификат самоподписанный:

Err CERT

и попадаем на страницу авторизации Proxmox, вводим логин root и пароль, который задавали ранее при установке:

Proxmox login root

Сразу же отключим два enterprise репозитория, т.к. для их работы требуется платная подписка, для этого перейдём в раздел Repositories:

Proxmox disable enterprise repo

Теперь добавим бесплатный pve репозиторий:

Proxmox add free repo

Всё, теперь идём создавать наш кластер, переходим в одноимённый раздел:

Proxmox create Cluster

Придумываем имя кластера и создаем его: Proxmox create Cluster

Если TASK OK, то всё прошло корректно, закрываем окно: Proxmox create Cluster

Теперь две оставшихся ноды мы будем уже добавлять в наш класте, для этого нужно скопировать информацию для подключения: Proxmox create Cluster

Настройка второй и третьей ноды

По аналогии с первой ноды переходим в веб интерфейсы https://192.168.0.122:8006/ и https://192.168.0.123:8006/ и выполняем всё тоже самое, что и для первой ноды (отключение платных репозиториев, добавление бесплатного), но в разделе Claster нажимаем на кнопку Join Cluster, вставляем хэш с настройками, вводим пароль и подключаемся: Proxmox join Cluster

Если вы видите такую страницу, то всё хорошо, страницу можно закрыть: Proxmox join Cluster

Теперь если вернуться на первую ноду, то мы должны увидеть что второй узел подключен: Proxmox join Cluster

На третьей ноде делаем всё тоже, что и на второй, и по итогу мы должны наблюдать такой результат:

Proxmox join Cluster

Готово! Все ноды в кластере.

Настройка HA

Чтобы кластер был высокодоступным и отказоустойчивым необходимо создать HA группу и добавить в него все наши ноды:

Proxmox HA Group

Настройка Ceph

Кластер готов, теперь чтобы миграция виртуальных серверов между нодами происходила быстро, настроим распределённое хранилище. Для этого переходим в раздел и устанавливаем пакет Ceph:

Proxmox Ceph

В выпадающем списке выбираем No-Subscription: Proxmox Ceph

Подверждаем установку пакетов, нажав на Y: Proxmox Ceph

Всё ок, пакеты установились, переходим далее: Proxmox Ceph

Выбираем сети, аналогично как на скриншоте: Proxmox Ceph

Готово, первый узел настроен, теперь все эти действия производим на оставшихся двух нодах: Proxmox Ceph

Теперь необходимо на всех трёх нодах создать OSD.

Примечание

OSD своего рода строительные блоки кластера хранения данных в Ceph. Оно сохраняет фактические данные на физических накопителях всех узлов кластера в виде объектов. Основную часть работы внутри кластера Ceph осуществляют демоны Ceph OSD.

При создании OSD необходимо выбрать диск: Proxmox Ceph OSD

Когда процесс закончиться обновите страницу, должен появиться наш первый OSD: Proxmox Ceph OSD

Теже действия производим на втором и третьем узлах, по итогу должно получиться так: Proxmox Ceph OSD

Для повышения отказоустойчивости добавим ещё два монитора и два менеджера: Proxmox Ceph Monitor

Proxmox Ceph Monitor

По итогу должно получиться так: Proxmox Ceph Monitor

И если перейти в раздел Датацентра нашего кластера, то тоже увидим, что всё ок: Proxmox Ceph Monitor

Чтобы примонтировать наш Ceph к какому-нибудь серверу нужно создать MDS

ℹ️ Примечание

Ceph MDS является сокращением для сервера метаданных ион требуется только для файловой системы Ceph (CephFS) и других методов хранения блоков. Хранение на основе объектов не требует служб MDS. Ceph MDS работает как демон, который позволяет клиентам монтировать файловую систему POSIX любого размера. MDS не предоставляет клиенту напрямую никаких данных; предоставление данных осуществляется OSD.

Proxmox Ceph MDS

Аналогично добавим второй и третий узел: Proxmox Ceph MDS

И создадим саму ФС: Proxmox Ceph MDS

Подключение Ceph к виртуальным серверам

Узнаём ключ, выполнив следующую команду, на первой ноде:

root@test-pve1:~# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
        key = AQBjepFlxenQLxAA/ky1avT62O3c9XRppdWKOA==
        caps mds = "allow *"
        caps mgr = "allow *"
        caps mon = "allow *"
        caps osd = "allow *"

Монитруем:

sudo mount -t ceph 192.168.0.121,192.168.0.122,192.168.0.123:/  /cephfs -o name=admin,secret=AQBjepFlxenQLxAA/ky1avT62O3c9XRppdWKOA==

Или редактируем файл /etc/fstab:

sudo nano /etc/fstab
192.168.0.121,192.168.0.122,192.168.0.123:/    /cephfs    ceph    name=admin,secret=AQBjepFlxenQLxAA/ky1avT62O3c9XRppdWKOA==,noatime,acl,mds_namespace=cephfs,_netdev    0    0

Обновляем настройки и монтируем:

sudo systemctl daemon-reload
sudo mount -a

┌─( [email protected] ) - ( 48 files,  ) - ( ~ )
└─> df | grep ceph
192.168.0.121,192.168.0.122,192.168.0.123:/   95G     0   95G   0% /cephfs

Удаляем надоедливое предупреждение:

Proxmox disable no valid subscription

Выполнив следующую команду в консоле первой ноды:

sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
К началу