▍Кластер 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 адрес веб интерфейса:
Настройка кластера¶
Настройка первой ноды¶
Заходим по указанному адресу, в нашем случае это https://192.168.0.121:8006 , делаем исключение для этого сайта, т.к. сертификат самоподписанный:
и попадаем на страницу авторизации Proxmox, вводим логин root и пароль, который задавали ранее при установке:
Сразу же отключим два enterprise репозитория, т.к. для их работы требуется платная подписка, для этого перейдём в раздел Repositories:
Теперь добавим бесплатный pve репозиторий:
Всё, теперь идём создавать наш кластер, переходим в одноимённый раздел:
Придумываем имя кластера и создаем его:
Если TASK OK, то всё прошло корректно, закрываем окно:
Теперь две оставшихся ноды мы будем уже добавлять в наш класте, для этого нужно скопировать информацию для подключения:
Настройка второй и третьей ноды¶
По аналогии с первой ноды переходим в веб интерфейсы https://192.168.0.122:8006/ и https://192.168.0.123:8006/ и выполняем всё тоже самое, что и для первой ноды (отключение платных репозиториев, добавление бесплатного), но в разделе Claster нажимаем на кнопку Join Cluster, вставляем хэш с настройками, вводим пароль и подключаемся:
Если вы видите такую страницу, то всё хорошо, страницу можно закрыть:
Теперь если вернуться на первую ноду, то мы должны увидеть что второй узел подключен:
На третьей ноде делаем всё тоже, что и на второй, и по итогу мы должны наблюдать такой результат:
Готово! Все ноды в кластере.
Настройка HA¶
Чтобы кластер был высокодоступным и отказоустойчивым необходимо создать HA
группу и добавить в него все наши ноды:
Настройка Ceph¶
Кластер готов, теперь чтобы миграция виртуальных серверов между нодами происходила быстро, настроим распределённое хранилище. Для этого переходим в раздел и устанавливаем пакет Ceph:
В выпадающем списке выбираем No-Subscription:
Подверждаем установку пакетов, нажав на Y:
Всё ок, пакеты установились, переходим далее:
Выбираем сети, аналогично как на скриншоте:
Готово, первый узел настроен, теперь все эти действия производим на оставшихся двух нодах:
Теперь необходимо на всех трёх нодах создать OSD.
Примечание
OSD своего рода строительные блоки кластера хранения данных в Ceph. Оно сохраняет фактические данные на физических накопителях всех узлов кластера в виде объектов. Основную часть работы внутри кластера Ceph осуществляют демоны Ceph OSD.
При создании OSD необходимо выбрать диск:
Когда процесс закончиться обновите страницу, должен появиться наш первый OSD:
Теже действия производим на втором и третьем узлах, по итогу должно получиться так:
Для повышения отказоустойчивости добавим ещё два монитора и два менеджера:
По итогу должно получиться так:
И если перейти в раздел Датацентра нашего кластера, то тоже увидим, что всё ок:
Чтобы примонтировать наш Ceph к какому-нибудь серверу нужно создать MDS
ℹ️ Примечание
Ceph MDS является сокращением для сервера метаданных ион требуется только для файловой системы Ceph (CephFS) и других методов хранения блоков. Хранение на основе объектов не требует служб MDS. Ceph MDS работает как демон, который позволяет клиентам монтировать файловую систему POSIX любого размера. MDS не предоставляет клиенту напрямую никаких данных; предоставление данных осуществляется OSD.
Аналогично добавим второй и третий узел:
Подключение 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:
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
Удаляем надоедливое предупреждение:
Выполнив следующую команду в консоле первой ноды: