Создание общего диска GlusterFS
В этом разделе описано, как использовать общий диск EVS для двух виртуальных машин ECS и настроить кластерную файловую систему GlusterFS.
Общие диски EVS — блочные устройства хранения, которые поддерживают одновременные операции чтения/записи и могут быть могут быть подключены максимум к 16 серверам. Такие диски используются для кластерных приложений для обеспечения высокой доступности.
Подробнее — Описание общих дисков EVS.
GlusterFS — распределенная, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев.
Создание общего диска
Создайте две виртуальные машины ECS. В этом примере используется операционная система Ubuntu 22.04, а виртуальные машины называются «ecs-gfs-shared1» и «ecs-gfs-shared2».
Создайте диск EVS. При создании выберите в области Аdvanced settings параметры Share и SCSI.
Подключите общий диск EVS к обеим виртуальным машинам ECS.
Настройка общего диска
Измените конфигурацию в /etc/hosts на каждой виртуальной машине ECS, чтобы они отвечали по DNS-именам.
Закомментируйте запись 127.0.0.1 или используйте имена отличные от системных:
nano /etc/hosts192.168.10.11 ecs-gfs-shared1 ecs-gfs-shared1192.168.10.12 ecs-gfs-shared2 ecs-gfs-shared2Установите необходимые пакеты для настройки кластера и GlusterFS. Выполните эти команды на каждой виртуальной машине ECS:
apt-get updateapt-get install pcs pacemakerapt-get install dlm-controldapt-get install gfs2-utilsЧтобы задать пароль пользователю «hacluster» для аутентификации виртуальных машин в кластере, выполните команду на каждой виртуальной машине:
passwd haclusterВключите сервис pcs и аутентифицируйте виртуальные машины в кластере. Выполните эти команды на каждой виртуальной машине ECS:
systemctl enable pcsdsystemctl start pcsdpcs host auth ecs-gfs-shared1 ecs-gfs-shared2ПримечаниеПакет pcs (pacemaker/corosync configuration system) — утилита для управления, настройки и мониторинга кластера. Пакетом pcs можно управлять как через командную строку, так и через веб-интерфейс.
Посмотреть статус кластера можно с помощью команды systemctl status pcsd.
Чтобы сконфигурировать и включить кластер, выполните команды на одной из виртуальных машин ECS:
pcs cluster setup hacluster ecs-gfs-shared1 ecs-gfs-shared2 --forcepcs cluster enable --allpcs cluster start --allЧтобы настроить STONITH, выполните команды на каждой виртуальной машине ECS.
На виртуальной машине «ecs-gfs-shared1»:
pcs stonith create ecs-gfs-shared1 fence_scsi \pcmk_host_list="ecs-gfs-shared1 ecs-gfs-shared2" \devices=/dev/sda \meta provides=unfencingpcs property set no-quorum-policy=freezeНа виртуальной машине «ecs-gfs-shared2»:
pcs stonith create ecs-gfs-shared2 fence_scsi \pcmk_host_list="ecs-gfs-shared1 ecs-gfs-shared2" \devices=/dev/sda \meta provides=unfencingpcs property set no-quorum-policy=freeze
ПримечаниеSTONITH («Shoot The Other Node In The Head» или «Shoot The Offending Node In The Head»), иногда называемый STOMITH («Shoot The Other Member/Machine In The Head») — процесс исключения ноды (fencing) из работы с кластерным хранилищем.
STONITH изолирует вышедшие из строя узлы путем сброса или выключения отказавшего узла.
Настройте менеджер ресурсов кластера и группу. Выполните эти команды на одной из виртуальных машин ECS:
crm configure.primitive dlm ocf:pacemaker:controld \op monitor interval="60" timeout="60"group g-storage dlmclone cl-storage g-storage \meta interleave=true target-role=StartedcommitquitСконфигурируйте файловую систему GlusterFS и DLM. Выполните эту команду на каждой виртуальной машине ECS:
mkfs.gfs -t hacluster:mygfs -p lock_dlm -j 2 /dev/sdaЧтобы смонтировать GlusterFS в каталог, выполните команды на каждой ВМ ECS.
mkdir /mnt/gfsmount /dev/sda /mnt/gfs/
Чтобы диск монтировался после каждой загрузки виртуальной машины автоматически, внесите изменение в fstab.
На виртуальной машине ECS «ecs-gfs-shared1»:
nano /etc/fstab/dev/sda /mnt/gfs defaults,_netdev 0 0На виртуальной машине ECS «ecs-gfs-shared2»:
nano /etc/fstab/dev/sda /mnt/gfs defaults,_netdev 0 0
- Создание общего диска
- Настройка общего диска