GlusterFS. Centos 7. Установка и настройка: различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| Строка 204: | Строка 204: | ||
<code>mount -t glusterfs gfs03:/gfs_volume01 /mnt/gfs_volume01</code> | <code>mount -t glusterfs gfs03:/gfs_volume01 /mnt/gfs_volume01</code> | ||
Автомонтирование | === Автомонтирование === | ||
<code>nano /etc/fstab</code> | <code>nano /etc/fstab</code> | ||
Версия 21:13, 25 марта 2022
Ссылки
https://ivirt-it.ru/glusterfs-create-volumes/
http://sysadm.pp.ua/linux/glusterfs-setup.html
Описание
Для создания кластера будем использовать 3 машины Сentos 7
Соответствие "IP - hostname" пропишем либо в /etc/hosts на каждой машине, либо на DNS сервере, на который смотрят машины.
Все машины кластера, а также КЛИЕНТ, НА КОТОРОМ БУДЕМ МОНТИРОВАТЬ "VOLUME" должны видеть все машины кластера по HOSTNAME !
192.168.199.111 - gfs01
192.168.199.112 - gfs02
192.168.199.113 - gfs03
Настройка
На всех машинах
Установка утилит и включение сервисов
systemctl enable firewalld
systemctl start firewalld
yum install epel-release -y
yum install yum-priorities yum-utils -y
yum install centos-release-gluster -y
yum install glusterfs-server -y
systemctl start glusterd
systemctl enable glusterd
firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent
firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=24007-24009/tcp --add-port=49152-49251/tcp --permanent
firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
firewall-cmd --zone=public --add-port=24009/tcp --permanent
firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent
firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp --permanent
firewall-cmd --reload
Команды для формирования доверенного пула хранения с соседними хостами
gluster peer probe gfs01
gluster peer probe gfs02
gluster peer probe gfs03
Проверяем
gluster peer status
Number of Peers: 2 Hostname: gfs02 Uuid: 247b073e-1bb2-4784-b3d5-a39a915f3d17 State: Peer in Cluster (Connected) Hostname: gfs03 Uuid: 3befd565-5cff-48d4-9b8e-f1956119e0b4 State: Peer in Cluster (Connected)
gluster pool list
UUID Hostname State 247b073e-1bb2-4784-b3d5-a39a915f3d17 gfs02 Connected 3befd565-5cff-48d4-9b8e-f1956119e0b4 gfs03 Connected bc6f57b3-ddb9-4511-b9da-3202950eb43c localhost Connected
Создаём брики (сущности, обслуживающие свои отдельные директории или диски)
Вариант 1. Локальная директория хранения данных
mkdir -p /mnt/gfs_data01
Вариант 2. LVM-Thin - отдельный примонтированный раздел (sdb)
fdisk /dev/sdb
n, Enter, Enter, Enter, Enter, w
pvcreate /dev/sdb1
vgcreate vg01 /dev/sdb1
lvcreate -l 100%FREE -T vg01/lv01
ИЛИ
lvcreate -L 20G -T vg01/lv01
mkfs.ext4 /dev/mapper/vg01-lv01
mkdir /mnt/gfs_data01
mount /dev/mapper/vg01-lv01 /mnt/gfs_data01/
echo "/dev/mapper/vg01-lv01 /mnt/gfs_data01 ext4 defaults 0 0" >> /etc/fstab
Не нужно использовать корень монтирования для хранения данных брика glusterfs
Создаем для этого директорию data в корне примонтированного диска
mkdir /mnt/gfs_data01/data
На любой одной машине
Вариант 1. Replicated. Репликация
Создаем Distributed Replicated VOLUME
(ОТКАЗОУСТОЙЧИВЫЙ)
Все ФС бриков в кластере (3) реплицируются
На клиенте объем примонтированной ФС будет N, где N - объем брика на каждой машине кластера
gluster volume create gfs_volume01 replica 3 gfs01:/mnt/gfs_data01/data gfs02:/mnt/gfs_data01/data gfs03:/mnt/gfs_data01/data force
Запускаем VOLUME
gluster volume start gfs_volume01
Проверяем статус
gluster volume status gfs_volume01
Остановить volume
gluster volume stop gfs_volume02
Удалить volume
gluster volume delete gfs_volume02
Настраиваем отказоустойчивость
network.ping-timeout - устанавливаем период опроса в 5 секунд, вместо 42 по умолчанию.
cluster.quorum-type(нет|auto|fixed) - Если установлено значение fixed, этот параметр разрешает запись в файл, только если количество активных блоков в этом наборе реплик (к которому принадлежит файл) больше или равно количеству, указанному в параметре quorum-count.
cluster.quorum-count - количество блоков, которые должны быть активны в наборе реплик, чтобы разрешить запись.
performance.quick-read(on|off) - включение быстрого чтения для транслятора пула.
gluster volume set gfs_volume01 network.ping-timeout 5
gluster volume set gfs_volume01 cluster.quorum-type fixed
gluster volume set gfs_volume01 cluster.quorum-count 1
gluster volume set gfs_volume01 performance.quick-read on
Вариант 2. Distributed
При данной настройке данные будут распределяться в случайном порядке между каждой папкой, которая входит в volume
(УВЕЛИЧЕНИЕ ОБЪЕМА ЗА СЧЕТ СУММИРОВАНИЯ ФС БРИКОВ)
Создаем Distributed VOLUME (НЕОТКАЗОУСТОЙЧИВЫЙ - ПОВЫШАЕМ ОБЩИЙ ОБЪЕМ)
Все ФС бриков в кластере (3) складываются
На клиенте объем примонтированной ФС будет N*3, где N - объем брика на каждой машине кластера, 3 - кол-во бриков в кластере
gluster volume create gfs_volume01 gfs01:/mnt/gfs_data01 gfs02:/mnt/gfs_data01 gfs03:/mnt/gfs_data01 force
Запускаем VOLUME
gluster volume start gfs_volume01
Проверяем статус
gluster volume status gfs_volume01
Остановить volume
gluster volume stop gfs_volume02
Удалить volume
gluster volume delete gfs_volume02
Монтируем пулы сами к себе
НЕОБЯЗАТЕЛЬНО - ПРОСТО ДЛЯ ПРОВЕРКИ ИСПОЛЬЗОВАНИЯ МАШИН КЛАСТЕРА В КАЧЕСТВЕ КЛИЕНТОВ GLUSTERFS
На каждой машине вводить соответствующую ей команду
On gfs01
mkdir /mnt/gfs_volume01
mount -t glusterfs gfs01:/gfs_volume01 /mnt/gfs_volume01
On gfs02
mkdir /mnt/gfs_volume01
mount -t glusterfs gfs02:/gfs_volume01 /mnt/gfs_volume01
On gfs03
mkdir /mnt/gfs_volume01
mount -t glusterfs gfs03:/gfs_volume01 /mnt/gfs_volume01
Автомонтирование
nano /etc/fstab
On gfs01
gfs01:/gfs_volume01 /mnt/gfs_volume01 glusterfs defaults,_netdev 0 0
On gfs02
gfs02:/gfs_volume01 /mnt/gfs_volume01 glusterfs defaults,_netdev 0 0
On gfs03
gfs03:/gfs_volume01 /mnt/gfs_volume01 glusterfs defaults,_netdev 0 0
Кладем в /mnt/gfs_volume01 файл
Проверяем что на всех машинах по этому пути файл синхронизируется
Монтируем gfs-volume на другой машине
Все машины gfs-кластера должны быть видны по hostname, поэтому на клиенте либо правим соответствие в /etc/hosts, либо прописываем соответствие имен ip-адресам на dns-сервере
Centos 7
yum install glusterfs-fuse
Debian 10
apt install glusterfs-client
Монтируем
mkdir /mnt/gfs_volume01
mount -t glusterfs gfs01:/gfs_volume01 /mnt/gfs_volume01
Проверяем
df -h
При ошибках смотрим логи
cat /var/log/glusterfs/opt-tmp.log