Skip to main content

Создание отказоустойчивого кластера VMmanager 6 KVM на AlmaLinux 8

Требования

Подробные требования для создания кластера описаны в официальной вики ISP Systems.

Хочется дополнить, что Вам потребуется минимум 1 виртуальная машина или физический сервер для сервера управления на котором будет развёрнута сама система VMManager 6 и с которой будет происходить всё управление кластером.

Так же потребуется минимум 3 сервера под Узлы кластера (Server Node) и 1 дисковое хранилище данных, например SAN.

Описание конфигурации

В моем случае конфигурация кластера выглядит следующим образом:

  1. ВМ с VMManager 6 (управление)
  2. 3x Узла (server node)
  3. SAN хранилище

Между собой это все соединено через 10 Гбит/с коммутатор. Использоваться будет KVM виртуализация. Хранилище будет работать по iSCSI.

Общая настройка серверов

На ВМ и Узлы (Node) была установлена операционная система AlmaLinux 8.

Обновление пакетов:

sudo su
yum -y update

На сетевых интерфейсах необходимо настроить статические IP-адреса, сделать это можно через графическую утилиту nmtui:

nmtui

Включение и настройка Firewall, обязательное требование разработчиков.

Разрешите входящие подключения на следующие порты:

  1. 22/tcp — сервис SSH
  2. 179/tcp, 4789/udp — виртуальные сети (VxLAN)
  3. 5900-6900/tcp — QEMU VNC. Если доступ к VNC осуществляется только через сервер с VMmanager, диапазон портов должен быть открыт для сети, объединяющей узлы кластера
  4. 16514/tcp — сервис управления виртуальными машинами libvirt
  5. 49152-49261/tcp — сервисы миграции libvirt

Включаем Firewall и добавляем его в автозагрузку:

systemctl start firewalld
systemctl enable firewalld

Добавляем правила для необходимых нам портов:

firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --zone=public --add-port=16514/tcp --permanent
firewall-cmd --zone=public --add-port=5900-6900/tcp --permanent
firewall-cmd --zone=public --add-port=49152-49261/tcp --permanent

Перечитать добавленные правила, чтобы они вступили в силу:

firewall-cmd --reload

Установка редактора nano (по желанию)

yum -y install nano

Для того, чтобы VMmanager мог подключить сетевое LVM-хранилище к узлам кластера, установите на всех узлах ПО LVM2

dnf -y install lvm2

Установка VMManager 6 на ВМ

Внимание!
Данная часть статьи про установку VMM 6 на ВМ не актуальна, процесс установки был изменён разработчиками ПО!
Ключ лицензии теперь вводится после установки в мастере настройки, в web-интерфейсе.

Загрузка скрипта установки и разрешение его выполнения:

curl -O https://download.ispsystem.com/6/installer/vm/vm
chmod +x vm

Перед началом установки рекомендуется предварительно отключить SElinux вручную. В нашем случае SElinux не был предварительно отключен, поэтому скрипт установки был запущен дважды. Первый запуск скрипта установки отключает SElinux.

./vm install -l ключ_лицензии

Команда установки так же содержит в себе ключ лицензии (токен). После выполнения установки необходимо будет перезагрузить сервер.

После перезагрузки нужно запустить повторно скрипт для продолжения установки.

./vm install -l ключ_лицензии

По окончанию установки Вы получите первичную ссылку с токеном на VMManager 6 для создания аккаунта Администратора.

Пример:

https://server_ip/auth/setup?token=12345678901234567890

Если VMmanager установлен на сервер, но первый пользователь не создан, вы можете получить уникальную ссылку для перехода в веб-интерфейс следующим способом:

Подключитесь по SSH к серверу с установленным VMManager 6 и выполните команду установки через systemd-сервис vm:

./vm install -l ключ_лицензии

Настройка сетевого LVM хранилища

Настройка сетевого LVM хранилища на Узлах кластера (Server Node).

Установка iSCSI

dnf update
dnf -y install iscsi-initiator-utils

Настройка iSCSI инициатора

InitiatorName=iqn.date.reverse.domain:server_name

Узел 1 (Node 1)

nano /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2022-01.com.example:server-node-01

Узел 2 (Node 2)

nano /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2022-01.com.example:server-node-02

Узел 3 (Node 3)

nano /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2022-01.com.example:server-node-03

Проверка доступности iSCSI на сервере хранилища SAN, выполняется так же на всех Server Node.

iscsiadm -m discovery -t sendtargets -p ip_san_server

В ответ на данную команду Вы получите IQN который необходимо будет использовать для подключения
Подключение хранилища к Узлам кластера (Server Node).

iscsiadm -m node -l -T iqn.2002-10.com.server:raid.uid751868.401

Проверка подключения хранилищ на Узлах кластера (Server Node).

iscsiadm -m session

Посмотреть список дисков и томов

lsblk

 

 

Добавление нового тома блочного устройства

  1. Создаем дополнительный том на блочном устройстве.
  2. Подключаемся по SSH на узел кластера.
  3. Обновляем информацию о подключённом блочном устройстве.
    iscsiadm -m node -R
  4. Проверяем наличие нового дополнительного раздела sdx.
    lsblk

 

Настройка кластера в VMManager 6

  1. Переходим в web-интерфейс VMManager 6
  2. Создаем кластер
  3. Добавляем узлы
  4. Добавляем сетевое хранилище
  5. Назначаем основной диск для хранения ВМ

Резервное копирование виртуальных машин

Официальная реализация резервного копирования

Ссылка на официальную документацию.

Неофициальная реализация резервного копирования

Нам был не удобен данный метод, по ряду причин, но основная причина это необходимость в дополнительных ресурсах на Узлах кластера (Sever Node). Так как узел кластера делает бекап сначала на самого себя и только потом отправляет бекап в хранилище.

При такой схеме если Ваша ВМ в SAN хранилище весит более 1ТБ, то и на узлах у Вас должно быть доступно свободного места не меньше 1ТБ для работы бекапа.

Мы решили реализовать резервное копирование через подключение шары к каталогам /vm/ и /image/.

Суть способа в том, что мы подменяем локальные каталоги на Узлах (Node) файловой шарой куда будут складываться и храниться наши резервные копии. Для гипервизора это будет обычный локальный метод резервного копирования, без подключения дополнительного хранилища.

Данный метод не тестировался инженерами ISP Systems, поэтому официально не заявлен.

Данные действия Вы будете делать на свой страх и риск!

Подключение сетевой шары к каталогам:

mount -t cifs -o username=user,password=pa$$w0rd //IP-address/backups/vm /vm/
mount -t cifs -o username=user,password=pa$$w0rd //IP-address/backups/image /image/

Добавление подключенной шары в автозагрузку, для этого необходимо отредактировать файл fstab:

nano /etc/fstab

Добавьте в него следующее:

//IP-address/backups/vm /vm/ cifs username=user,password=pa$$w0rd
//IP-address/backups/image /image/ cifs username=user,password=pa$$w0rd

Сохраните файл.

Всё готово, локальные каталоги подменены шарой, теперь можно выполнять обычное локальное резервное копирование. Резервные копии будут сразу складываться на файловом сервере для хранения резервных копий.