в debian

Установка и настройка GlusterFS-server 3.5.2 в ОС Debian


GlusterFS — простая в настройке и использовании распределенная файловая система, работающая поверх основной файловой системы. Давайте разберемся с установкой и GlusterFS-server в ОС Debian Wheezy!

Прежде всего, хочу объяснить, почему был выбран GlusterFS-server версии 3.5.2 — далеко не самой свежей на момент написания статьи. В моем случае, на нескольких серверах под управлением ОС Debian Wheezy уже был настроен и успешно использовался GlusterFS-server версии 3.2.7, но при необходимости добавления новых узлов в кластер возникли сложности. Как выяснилось, для расширения кластера нужен GlusterFS-server версии не ниже 3.3, а в репозитории wheezy-backports как раз нашлась версия 3.5.2.

Считаем, что все хосты будущего кластера доступны друг для друга, в firewall открыты TCP порты 111, 24007-24050 и созданы все необходимы каталоги/точки монтирования.

Примечание. В нашем примере GlusterFS настраивается как replicated volume на 5 машинах с локальными ip-адресами 192.168.0.1, 192.168.0.3, 192.168.0.7, 192.168.0.13 и 192.168.0.14

Устанавливаем GlusterFS-server на всех серверах:

aptitude install -t wheezy-backports glusterfs-server

Сразу после установки проверим состояние кластера:

gluster peer status
Number of Peers: 0

Подключаемся на любой хост из нашего списка (например, 192.168.0.1) и создаем кластер:

gluster peer probe 192.168.0.3
peer probe: success.
gluster peer probe 192.168.0.7
peer probe: failed: 192.168.0.7 is already part of another cluster
gluster peer probe 192.168.0.13
peer probe: success.
gluster peer probe 192.168.0.14
peer probe: success.

Добавлять в список хостов кластера «самого себя» не нужно:

gluster peer probe 192.168.0.1
peer probe: success. Probe on localhost not needed

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

gluster peer probe 192.168.0.3
peer probe: success. Host 192.168.0.3 port 24007 already in peer list

Как вы наверняка заметили, что-то пошло не так при добавлении узла с ip-адресом 192.168.0.7. Проверяем состояние нашего кластера:

gluster peer status
Number of Peers: 4

Hostname: 192.168.0.7
Uuid: 1b138a89-64dc-4a5e-8095-8892abaaf0e5
State: Accepted peer request (Connected)

Hostname: 192.168.0.3
Uuid: b9789ef4-1f26-4320-a7ba-0902c3434d76
State: Peer in Cluster (Connected)

Hostname: 192.168.0.13
Uuid: c8618f71-fdb3-4f28-8266-9eebca69e4e2
State: Peer in Cluster (Connected)

Hostname: 192.168.0.14
Uuid: 92876551-847a-4a9d-9a86-07c23b3e91f0
State: Peer in Cluster (Connected)

Мы не можем создать кластер, так как один из его узлов находится в состоянии Accepted peer request. В моем случае всему виной старые конфиги GlusterFS-server 3.2.7, поэтому делаем так:

gluster peer detach 192.168.0.7
peer detach: success
gluster peer probe 192.168.0.7
peer probe: success.

Теперь состояние узлов соответствует нашим ожиданиям:

gluster peer status
Number of Peers: 4

Hostname: 192.168.0.13
Uuid: c8618f71-fdb3-4f28-8266-9eebca69e4e2
State: Peer in Cluster (Connected)

Hostname: 192.168.0.3
Uuid: b9789ef4-1f26-4320-a7ba-0902c3434d76
State: Peer in Cluster (Connected)

Hostname: 192.168.0.14
Uuid: 92876551-847a-4a9d-9a86-07c23b3e91f0
State: Peer in Cluster (Connected)

Hostname: 192.168.0.7
Uuid: 5837f180-6b00-403c-83ff-e993ef7bf4ef
State: Peer in Cluster (Connected)

Можно сделать аналогичные проверки со всех хостов кластера. Теперь создадим реплицируемый том (volume):

gluster volume create www replica 5 transport tcp 192.168.0.1:/var/www/testsite 192.168.0.7:/var/www/testsite 192.168.0.3:/var/www/testsite 192.168.0.13:/var/www/testsite 192.168.0.14:/var/www/testsite
volume create: www: success: please start the volume to access data

Запускаем созданный том:

gluster volume start www
volume start: www: success

После чего проверим статус нашего тома:

gluster volume status
Status of volume: www
Gluster process                     Port    Online  Pid
------------------------------------------------------------------------------
Brick 192.168.0.1:/var/www/testsite         49152   Y   29660
Brick 192.168.0.7:/var/www/testsite         49152   Y   13559
Brick 192.168.0.3:/var/www/testsite         49153   Y   7743
Brick 192.168.0.13:/var/www/testsite            49152   Y   28423
Brick 192.168.0.14:/var/www/testsite            49152   Y   21147
NFS Server on localhost                 2049    Y   29674
Self-heal Daemon on localhost               N/A Y   29679
NFS Server on 192.168.0.14              2049    Y   21161
Self-heal Daemon on 192.168.0.14            N/A Y   21167
NFS Server on 192.168.0.13              2049    Y   28437
Self-heal Daemon on 192.168.0.13            N/A Y   28442
NFS Server on 192.168.0.3               2049    Y   7761
Self-heal Daemon on 192.168.0.3             N/A Y   7766
NFS Server on 192.168.0.7               2049    Y   13631
Self-heal Daemon on 192.168.0.7             N/A Y   13642

Task Status of Volume www
------------------------------------------------------------------------------
There are no active volume tasks

Интересующую информацию о реплицируемом томе можно еще посмотреть так:

gluster volume info

Volume Name: www
Type: Replicate
Volume ID: 782e8fd8-0a72-4966-9590-77c244bce3b6
Status: Started
Number of Bricks: 1 x 5 = 5
Transport-type: tcp
Bricks:
Brick1: 192.168.0.1:/var/www/testsite
Brick2: 192.168.0.7:/var/www/testsite
Brick3: 192.168.0.3:/var/www/testsite
Brick4: 192.168.0.13:/var/www/testsite
Brick5: 192.168.0.14:/var/www/testsite

Добавляем в /etc/fstab на первом узле (192.168.0.1) следующую строку:

...
localhost:/www    /var/www/svnup             glusterfs rw,nosuid,nodev,exec,nouser,async,_netdev  0 0
...

Монтируем:

mount /var/www/svnup

Теперь можно ‘заливать’ данные в каталог /var/www/svnup на первом узле кластера и они будут легко и просто реплицироваться на все 5 хостов к каталог /var/www/testsite. Это очень удобно, например, для распределения web-контента на бэкэндах.

Добавить комментарий

  1. Добрый день.
    Спасибо за Ваши труды в написании этой статьи. Всё оказалось просто и тесты прошли успешно, но хотело бы прочить продолжение о добавлении серверов в кластер и масштабируемости системы. Спасибо.