В этом разделе описано, как использовать распределенный диск EVS для двух виртуальных машин ECS и настроить кластерную файловую систему GlusterFS.
GlusterFS — это распределенная, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев. Когда изменения вносятся в диск на одном сервере, они автоматически реплицируются в режиме реального времени на диск в другом сервере.
Перед началом работы
Создайте две виртуальные машины ECS с двумя дисками и двумя сетевыми интерфейсами. В этом примере используется операционная система Ubuntu 22.04, а виртуальные машины называются «ecs-gfs-replica1» и «ecs-gfs-replica2».
Настройка и установка GlusterFS
Подключитесь к виртуальным машинам ECS, которые создали.
Чтобы виртуальные машины отвечали DNS-именам, на каждой из них:
Откройте файл hosts для редактирования. Для этого можно использовать редактор nano:
nano /etc/hostsЗакомментируйте локальный адрес 127.0.0.1 или укажите внутренние IP-адреса виртуальных машин ECS с их именами хостов, например:
192.168.10.11 ecs-gfs-replica1192.168.10.12 ecs-gfs-replica2Чтобы сохранить изменения в файле hosts, нажмите control + O и затем Enter.
Чтобы выйти из редактора nano, нажмите control + X.
Чтобы разметить основной раздел на диске с данными, на каждой виртуальной машине выполните команду:
fdisk /dev/vdbЗапустится утилита fdisk, где будет предложено выбрать настройки для нового раздела диска:
Чтобы начать создание нового раздела, нажмите n и затем Enter.
Чтобы выбрать настройки по умолчанию для параметров Partition type, Partition number, First sector, Last sector, нажимайте Enter.
Чтобы изменения применились, нажмите w и затем Enter.
Создайте файловую систему ext4 на новом разделе на каждой виртуальной машине ECS:
mkfs.ext4 /dev/vdb1Создайте каталог и смонтируйте в него файловую систему на каждой виртуальной машине ECS:
mkdir /mnt/gfsmount /dev/vdb1 /mnt/gfsУстановите необходимые для работы GlusterFS пакеты и запустите сервер. Выполните эти команды на каждой виртуальной машине ECS:
apt-get updateapt-get install glusterfs-serversystemctl enable glusterd.servicesystemctl start glusterd.serviceПодключите виртуальные машины к кластеру GlusterFS на виртуальной машине «ecs-gfs-replica1»:
gluster peer probe ecs-gfs-replica2Проверьте статус кластера:
gluster peer statusКоманда должна вернуть результат Number of Peers: 1.
Создайте общий логический диск. Выполните команду на виртуальной машине «ecs-gfs-replica1»:
gluster volume create gfs-volume replica 2 ecs-gfs-replica1:/mnt/gfs/brick ecs-gfs-replica2:/mnt/gfs/brick forceЗапустите общий логический диск, который создали. Выполните команду на виртуальной машине «ecs-gfs-replica1»:
gluster volume start gfs-volumeСоздайте каталог, который должен находиться на том же томе и реплицироваться на обоих серверах. Примонтируйте его к логическому диску.
Выполните команду на виртуальной машине «ecs-gfs-replica1»:
mkdir /mnt/gfs/files/mount.glusterfs ecs-gfs-replica1:/gfs-volume /mnt/gfs/files/Повторите эту команду на виртуальной машине «ecs-gfs-replica2»:
mkdir /mnt/gfs/files/mount.glusterfs ecs-gfs-replica2:/gfs-volume /mnt/gfs/files/
Чтобы убедиться, что репликация работает:
На виртуальной машине «ecs-gfs-replica1» создайте файл в реплицируемом каталоге, например:
cd /mnt/gfs/files/touch replicated-file.txtПерейдите в этот же каталог на виртуальной машине «ecs-gfs-replica2» и проверьте его содержимое:
cd /mnt/gfs/files/lsВ каталоге на виртуальной машине «ecs-gfs-replica2» должен появиться файл replicated-file.txt, который вы создавали на виртуальной машине «ecs-gfs-replica1».
Подсказка
Чтобы диск монтировался при каждой загрузке виртуальной машины, внесите изменение в файл fstab на каждой виртуальной машине ECS:
nano /etc/fstabНа виртуальной машине «ecs-gfs-replica1» добавьте строку:
ecs-gfs-replica1:/gfs-volume /mnt/gfs/files glusterfs defaults,_netdev 0 0На виртуальной машине «ecs-gfs-replica2» добавьте строку:
ecs-gfs-replica2:/gfs-volume /mnt/gfs/files glusterfs defaults,_netdev 0 0
- Перед началом работы
- Настройка и установка GlusterFS