Расширение тома Hosted-engine до Replica 3

Для расширения тома hosted-engine на GlusterFS дополнительными бриками до Replica 3, выполните следующие шаги:

Создание дополнительных записей имен серверов

На каждый из дополнительных серверов будущего кластера и на ВМ engine добавить в файлы /etc/hosts записи следующего вида:

192.168.120.10    glusternode1    glusternode1.localdomain
192.168.120.11    glusternode2    glusternode2.localdomain
192.168.120.12    glusternode3    glusternode3.localdomain
  • glusternode1-3 имя нод SDS (второе имя для серверов и их ip-адреса на выделенных под SDS интерфейсах).

  • Опционально можно прописать все имена на DNS-сервере.

Создание бэкапа Engine:

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

engine-backup --scope=all --mode=backup --file=backup_03.06.22 --log=backup_03.06.22_log
  • Путь по умолчанию к создаваемому бэкапу - /var/lib/ovirt-engine-backup/ovirt-engine-backup-YmdHMS.backup

Создание бриков на хостах:

Разметка дискового пространства:

Допустим, что под новый брик мы хотим выделить 120 ГБ.

Для размещения используем рейд-массив дисков, представленный в виде устройства /dev/sdX.

На каждом из серверов создадим logical volume:

pvcreate /dev/sdxY
vgcreate datavg /dev/sdxY
lvcreate -L 120G -n datastore_lv datavg
mkfs.xfs /dev/mapper/datavg-datastore_lv
mkdir -p /data/gluster/datastore 
  • datavg – имя новой вольюм группы;

  • datastore_lv – имя вольюма в составе вольюм группы datavg.

  • /data/gluster/datastore - точка монтирования

После того, как созданы том и файловая система, следующий шаг – создать запись в /etc/fstab:

/dev/mapper/datavg-datastore_lv /data/gluster/datastore xfs defaults 0 0

Монтируем том:

mount /dev/mapper/datavg-datastore_lv /data/gluster/datastore

На каждом из дополнительных серверов создать директории под брики и запустить службы sds:

mkdir /data/gluster/datastore/brick1 
systemctl start glusterd && systemctl enable glusterd

Открываем требуемые порты на каждом сервере:

firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent 
firewall-cmd --zone=public --add-port=24009/tcp --permanent 
firewall-cmd --zone=public --add-port=111/tcp --permanent 
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent 
firewall-cmd --zone=public --add-port=965/tcp --permanent 
firewall-cmd --zone=public --add-port=2049/tcp --permanent 
firewall-cmd --zone=public --add-port=38465-38469/tcp --permanent 
firewall-cmd --zone=public --add-port=631/tcp --permanent 
firewall-cmd --zone=public --add-port=111/udp --permanent 
firewall-cmd --zone=public --add-port=963/udp --permanent 
firewall-cmd --zone=public --add-port=49152-49251/tcp --permanent 
firewall-cmd --zone=public --add-service=nfs --permanent 
firewall-cmd --zone=public --add-service=samba --permanent 
firewall-cmd --zone=public --add-service=samba-client --permanent 
firewall-cmd –reload

Добавим хосты в зону видимости друг друга, на хосте с hosted-engine выполняем команду (повторяем для всех дополнительных хостов):

gluster peer probe glusternode2

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

gluster peer status

Данная команда может быть выполнена также и на добавляемом хосте, соединение будет установлено в двустороннем порядке.

Инициализация хранилища Replica 3:

На хосте с Engine добавляем дополнительный брик к тому hosted-engine командой:

gluster volume add-brick hosted-engine replica 2 имя_сервера_2:/data/gluster/datastore/brick1

Аналогично добавляем еще один брик:

gluster volume add-brick hosted-engine replica 3 имя_сервера_3:/data/gluster/datastore/brick1

Либо одной длинной командой:

gluster volume add-brick hosted-engine replica 3 имя_сервера_2:/data/gluster/datastore/brick1 имя_сервера_3:/data/gluster/datastore/brick1

Проверяем статус тома:

gluster volume status
gluster volume info

Добавление backup-volfile-servers в mount point

Добавим опцию backup-volfile-servers в mount point, для этого переключаемcя в режим в global maintenance:

hosted-engine --set-maintenance --mode=global

Выключаем виртуальную машину с HE:

hosted-engine --vm-shutdown

Добавляем строку в файл /etc/ovirt-hosted-engine/hosted-engine.conf:

mnt_options = backup-volfile-servers=glusternode2:glusternode3 [имена серверов]

Дополнительно выполняем команды:

hosted-engine --set-shared-config mnt_options backup-volfile-servers=virt2 --type=he_local
hosted-engine --set-shared-config mnt_options backup-volfile-servers=virt2 --type=he_shared

где:

[he_local] – задает значение в локальном экземпляре файла /etc/ovirt-hosted-engine/hosted-engine.conf на локальном хосте, чтобы только этот хост использовал новые значения. Чтобы включить новое значение, перезапустите службы ovirt-ha-agent и ovirt-ha-broker.

[he_shared] - задает значение в файле /etc/ovirt-hosted-engine/hosted-engine.conf в shared storage, чтобы все хосты, развернутые после изменения конфигурации, использовали эти значения. Чтобы включить новое значение на хосте, повторно разверните этот хост.

Проверим что параметр добавился корректно (на уровне веб-интерфейса данный параметр может не отобразится):

hosted-engine --get-shared-config mnt_options --type=he_local
hosted-engine --get-shared-config mnt_options --type=he_shared

Если эта опция применена, то при сбое первого сервера volfile серверы, указанные в опции backup-volfile-servers, используются в качестве серверов volfile для монтирования клиента до тех пор, пока монтирование не завершится успешно.

Перезагружаем хост с hosted-engine командой reboot;

После перезапуска убедимся, что виртуальная машина стартовала (ожидание может быть длительным):

hosted-engine --vm-status
hosted-engine --vm-start

Выводим HE из режима global maintenance:

hosted-engine --set-maintenance --mode=none

Добавление хостов

Включаем Enable Gluster Service в дефолтном кластере дефолтного датацентра:

Даём хостам беспарольный доступ по SSH (выполняется на каждом хосте):

ssh-keygen
ssh-copy-id root@glusternode2

Добавляем хост, для этого в Engine переходим в раздел Compute -> Hosts, нажимаем New и указываем данные добавляемого хоста:

  • Name - имя хоста

  • Hostname - FQDN хоста

  • В разделе Authentication выбираем SSH Public Key и копируем содержимое поля правее в файл /root/.ssh/authorized_keys добавляемого хоста.

Last updated