Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Для того, чтобы обеспечить репликацию данных между серверами кластера, необходимо настроить glusterfs-server версии 3.11.

Настройка gluster-сервера

В качестве примера приведена система ECSS-10, работающая в кластере, со следующими настройками:

...

  1. Установите gluster-сервер и пакет attr на оба хоста:

    Без форматирования
    sudo aptitude -y install glusterfs-server attr


  2. Для добавления сервера в пул файловых хранилищ выполните команду на ecss1:

    Без форматирования
    sudo gluster peer probe 192.168.118.224

    После этого на ecss2 при выполнении команды sudo gluster peer status должна появиться информация о ecss1:

    Без форматирования
    Number of Peers: 1
    
    Hostname: 192.168.118.222
    Uuid: 569c4730-a3a7-4d29-a132-b1bcdad792d8
    State: Peer in Cluster (Connected)


  3. Для создания кластера на ecss1 выполните команду:

    Без форматирования
    sudo gluster volume create ecss_volume replica 2 transport tcp 192.168.118.222:/var/lib/ecss/glusterfs 192.168.118.224:/var/lib/ecss/glusterfs force


  4. Запустите созданный кластер, для этого на ecss1 выполните команду:

    Без форматирования
    sudo gluster volume start ecss_volume


  5. Для проверки статуса кластера на ecss1 выполните команду:

    Без форматирования
    sudo gluster volume info

    Необходимо обратить внимание на поля "Status" и "Bricks" - они должны иметь следующий вид:

    Без форматирования
    Volume Name: ecss_volume
    Type: Replicate
    Volume ID: 60774e49-d2f1-4b06-bb4a-3f39ccf1ea73
    Status: Started
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: 192.168.118.222:/restfs
    Brick2: 192.168.118.224:/restfs


  6. Чтобы смонтировать glusterfs раздел, выполните на обоих хостах ecss1 и ecss2 следующие действия:
    • Создайте новый systemd unit.

      Без форматирования
      /etc/systemd/system/ecss-glusterfs-mount.service

      и добавьте туда следующие параметры:

      Без форматирования
      [Unit]
      Description=mount glusterfs
      After=network.target
      Requires=network.target
      
      [Service]
      RemainAfterExit=no
      Type=forking
      RestartSec=10s
      Restart=always
      ExecStart=/sbin/mount.glusterfs localhost:/ecss_volume /var/lib/ecss/restfs -o fetch-attempts=10
      ExecStop=/bin/umount /var/lib/ecss/restfs
      
      [Install]
      WantedBy=multi-user.target


    • Добавить unit в автозагрузку.

      Unit можно добавить в автозагрузку следующей командой:

      Без форматирования
      sudo systemctl enable ecss-glusterfs-mount.service


    • Перезагрузить хост:

      Без форматирования
      sudo reboot

      Если хост не может быть перезагружен, то можно выполнить следующие команды:

      Без форматирования
      sudo systemctl daemon-reload sudo systemctl restart ecss-glusterfs-mount.service

      После монтирования на обоих хостах выполните команду:

      Без форматирования
      df -h

      При просмотре информации должен появиться подмонтированный раздел:

      Без форматирования
      /dev/sda10                     19G  6,5G   11G  38% /var/lib/mysql
      /dev/sda8                     4,5G  213M  4,1G   5% /var/log
      /dev/sda5                      37G   48M   35G   1% /var/lib/ecss/ecss-media-server/records
      /dev/sda6                      19G   44M   18G   1% /var/lib/ecss/cdr
      /dev/sda7                      19G   44M   18G   1% /var/lib/ecss/statistics
      /dev/sda9                      19G  7,6G  9,7G  44% /var/log/ecss
      localhost:/ecss_volume   46G   59M   44G   1% /var/lib/ecss/restfs*


Запуск RestFS в режиме кластера

Для запуска RestFS в режиме кластера достаточно, чтобы пакет ecss-restfs был установлен и запущен на обеих нодах. Команда для запуска сервиса ecss-restfs. 

Без форматирования
sudo systemctl start ecss-restfs.service

Запуск RestFS в случае недоступности других участников кластера

В применяемой концепции glusterfs все сервера равнозначны. Однако раздел volume не активируется при отсутствии кворума. Это защитный механизм, который характерен для всех распределенных fault-tollerant систем и призван защитить систему от split-brain.
Такая ситуация может возникнуть когда загружается только один из серверов, а второй при этом выключен или недоступен. На первом сервере volume не будет автоматически активирован до появления второго сервера для исключения расхождения данных.

...