Инструкция по установке и настройке кластера серверов на ОС для организации распределённой файловой системы GlusterFS и объединение её в единое файловое хранилище.
Для этого нам потребуется:
- 2 сервера
- по одному дополнительному жёсткому диску на каждый сервер, где будут храниться данные
- 1 машина (желательно тоже серверная) для монтирования томов сервера
на всех машинах:
Устанавливаем GlusterFS
# pkg install glusterfs
Затем открываем файл /etc/rc.conf
# vi /etc/rc.conf
и прописываем сюда такую строчку:
glusterd_enable="YES"
Если в сети нет DNS-серверов, чтобы прописать туда хосты машин, то открываем файл /etc/hosts
# vi /etc/hosts
и прописываем в него:
192.168.1.51 glusterfs-srv1.local glusterfs-srv1 192.168.1.52 glusterfs-srv2.local glusterfs-srv2 192.168.1.50 glusterfs-client.local glusterfs-client
на серверных машинах:
Запускаем службу glusterd
# service glusterd start
Затем ищем жёсткие диски в /dev
# ls /dev
в списке должны появиться устройства типа ada1.
Теперь создаём таблицу разделов на жёстком диске
# gpart create -s gpt /dev/ada1
увидим сообщение:
ada1 created
Создаём раздел на диске
# gpart add -t freebsd-ufs /dev/ada1
появится сообщение:
ada1p1 added
Форматируем созданный раздел в UFS
# newfs -U /dev/ada1p1
После этого в каталоге /mnt создадим каталог data и подключим к нему созданный раздел
# mkdir /mnt/data # mount /dev/ada1p1 /mnt/data
Далее открываем файл /etc/fstab
# vi /etc/fstab
и в самом конце пропишем такую строчку:
/dev/ada1p1 /mnt/data ufs rw 1 1
Затем на 1-ом сервере соберём кластер
# gluster peer probe glusterfs-srv2.local
Также можно сделать и со второго
# gluster peer probe glusterfs-srv1.local
Проверяем
# gluster pool list
Теперь на обоих серверах создадим каталог /mnt/data/dv
# mkdir /mnt/data/dv
Дальше на 1-ом или 2-ом сервере создаём том dv-data типа Distributed Volume
# gluster volume create dv-data transport tcp glusterfs-srv1.local:/mnt/data/dv glusterfs-srv2.local:/mnt/data/dv force
должно появиться сообщение об успешном создании тома:
volume create: dv-data: success: please start the volume to access data
Затем стартуем том
# gluster volume start dv-data
и увидим сообщение об успешном запуске тома в работу:
volume start: dv-data: success
Проверим, как работает том
# gluster volume status
на клиентской машине:
В каталоге /mnt создаём каталог data, а в каталоге /mnt/data создадим ещё один каталог dv-data
# mkdir /mnt/data /mnt/data/dv-data
Затем открываем файл /boot/loader.conf
# vi /boot/loader.conf
и пропишем в нём строчку:
fuse_load="YES"
После этого открываем файл /etc/fstab
# vi /etc/fstab
и в нём пропишем точку монтирования тома
glusterfs-srv1.local:/dv-data /mnt/data/dv-data fusefs rw,acl,transport=tcp,_netdev,mountprog=/usr/local/sbin/mount_glusterfs,late 0 0
Теперь смонтируем всё
# mount -a
или просто перезагрузим машину
# shutdown -r now
Работу с остальными типами распределения данных (Replicated Volume, Striped Volume, Distributed Striped Volume, Distributed Replicated Volume), с томами и разделами можно почитать в предыдущей статье: https://dondub.com/2021/03/razvyortyvanie-glusterfs-na-linux/. Там всё аналогично.
P.S.: для настройки клиента использован этот материал: https://superuser.com/questions/1321239/glusterfs-on-freebsd-11-1-mount-issue