Advanced
Тема интерфейса

Создание распределенного хранилища GlusterFS

Эта статья полезна?

В этом разделе описано, как использовать распределенный диск EVS для двух виртуальных машин ECS и настроить кластерную файловую систему GlusterFS.

GlusterFS — это распределенная, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев. Когда изменения вносятся в диск на одном сервере, они автоматически реплицируются в режиме реального времени на диск в другом сервере.

../_images/schm__evs-gfs-dedicated.svg

Перед началом работы

Создайте две виртуальные машины ECS с двумя дисками и двумя сетевыми интерфейсами. В этом примере используется операционная система Ubuntu 22.04, а виртуальные машины называются «ecs-gfs-replica1» и «ecs-gfs-replica2».

Настройка и установка GlusterFS

  1. Чтобы виртуальные машины отвечали DNS-именам, на каждой из них:

    1. Откройте файл hosts для редактирования. Для этого можно использовать редактор nano:

      nano /etc/hosts
    2. Закомментируйте локальный адрес 127.0.0.1 или укажите внутренние IP-адреса виртуальных машин ECS с их именами хостов, например:

      192.168.10.11 ecs-gfs-replica1
      192.168.10.12 ecs-gfs-replica2
    3. Чтобы сохранить изменения в файле hosts, нажмите control + O и затем Enter.

    4. Чтобы выйти из редактора nano, нажмите control + X.

  2. Чтобы разметить основной раздел на диске с данными, на каждой виртуальной машине выполните команду:

    fdisk /dev/vdb

    Запустится утилита fdisk, где будет предложено выбрать настройки для нового раздела диска:

    1. Чтобы начать создание нового раздела, нажмите n и затем Enter.

    2. Чтобы выбрать настройки по умолчанию для параметров Partition type, Partition number, First sector, Last sector, нажимайте Enter.

    3. Чтобы изменения применились, нажмите w и затем Enter.

  3. Создайте файловую систему ext4 на новом разделе на каждой виртуальной машине ECS:

    mkfs.ext4 /dev/vdb1
  4. Создайте каталог и смонтируйте в него файловую систему на каждой виртуальной машине ECS:

    mkdir /mnt/gfs
    mount /dev/vdb1 /mnt/gfs
  5. Установите необходимые для работы GlusterFS пакеты и запустите сервер. Выполните эти команды на каждой виртуальной машине ECS:

    apt-get update
    apt-get install glusterfs-server
    systemctl enable glusterd.service
    systemctl start glusterd.service
  6. Подключите виртуальные машины к кластеру GlusterFS на виртуальной машине «ecs-gfs-replica1»:

    gluster peer probe ecs-gfs-replica2
  7. Проверьте статус кластера:

    gluster peer status

    Команда должна вернуть результат Number of Peers: 1.

  8. Создайте общий логический диск. Выполните команду на виртуальной машине «ecs-gfs-replica1»:

    gluster volume create gfs-volume replica 2 ecs-gfs-replica1:/mnt/gfs/brick ecs-gfs-replica2:/mnt/gfs/brick force
  9. Запустите общий логический диск, который создали. Выполните команду на виртуальной машине «ecs-gfs-replica1»:

    gluster volume start gfs-volume
  10. Создайте каталог, который должен находиться на том же томе и реплицироваться на обоих серверах. Примонтируйте его к логическому диску.

    1. Выполните команду на виртуальной машине «ecs-gfs-replica1»:

      mkdir /mnt/gfs/files/
      mount.glusterfs ecs-gfs-replica1:/gfs-volume /mnt/gfs/files/
    2. Повторите эту команду на виртуальной машине «ecs-gfs-replica2»:

      mkdir /mnt/gfs/files/
      mount.glusterfs ecs-gfs-replica2:/gfs-volume /mnt/gfs/files/
  11. Чтобы убедиться, что репликация работает:

    1. На виртуальной машине «ecs-gfs-replica1» создайте файл в реплицируемом каталоге, например:

      cd /mnt/gfs/files/
      touch replicated-file.txt
    2. Перейдите в этот же каталог на виртуальной машине «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