Установка и настройка GlusterFS-server 3.5.2 в ОС Debian
Oct 24, 2016 22:41 · 684 words · 4 minute read
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-контента на бэкэндах.