GlusterFS. Centos 7. Установка и настройка: различия между версиями
Cless (обсуждение | вклад) (Новая страница: «Категория:GlusterFS __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__») |
Cless (обсуждение | вклад) |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
[[Категория:GlusterFS]] | [[Категория:GlusterFS]] | ||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | ||
== Ссылки == | |||
[https://bogachev.biz/2019/11/05/nastraivaem-raspredelyonnuyu-faylovuyu-sistemu-glusterfs-na-centos-7/https://ivirt-it.ru/glusterfs-create-volumes/http://sysadm.pp.ua/linux/glusterfs-setup.html https://bogachev.biz/2019/11/05/nastraivaem-raspredelyonnuyu-faylovuyu-sistemu-glusterfs-na-centos-7/] | |||
[https://bogachev.biz/2019/11/05/nastraivaem-raspredelyonnuyu-faylovuyu-sistemu-glusterfs-na-centos-7/https://ivirt-it.ru/glusterfs-create-volumes/http://sysadm.pp.ua/linux/glusterfs-setup.html https://ivirt-it.ru/glusterfs-create-volumes/] | |||
[https://bogachev.biz/2019/11/05/nastraivaem-raspredelyonnuyu-faylovuyu-sistemu-glusterfs-na-centos-7/https://ivirt-it.ru/glusterfs-create-volumes/http://sysadm.pp.ua/linux/glusterfs-setup.html 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 | |||
== Настройка == | |||
=== На всех машинах === | |||
Установка утилит и включение сервисов | |||
<code>systemctl enable firewalld</code> | |||
<code>systemctl start firewalld</code> | |||
<code>yum install epel-release -y</code> | |||
<code>yum install yum-priorities yum-utils -y</code> | |||
<code>yum install centos-release-gluster -y</code> | |||
<code>yum install glusterfs-server -y</code> | |||
<code>systemctl start glusterd</code> | |||
<code>systemctl enable glusterd</code> | |||
<code>firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent</code> | |||
<code>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</code> | |||
<code>firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent</code> | |||
<code>firewall-cmd --zone=public --add-port=24009/tcp --permanent</code> | |||
<code>firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent</code> | |||
<code>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</code> | |||
<code>firewall-cmd --reload</code> | |||
Команды для формирования доверенного пула хранения с соседними хостами | |||
<code>gluster peer probe gfs01</code> | |||
<code>gluster peer probe gfs02</code> | |||
<code>gluster peer probe gfs03</code> | |||
Проверяем | |||
<code>gluster peer status</code> | |||
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) | |||
<code>gluster pool list</code> | |||
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. Локальная директория хранения данных ==== | |||
<code>mkdir -p /mnt/gfs_data01</code> | |||
==== Вариант 2. LVM-Thin - отдельный примонтированный раздел ('''sdb''') ==== | |||
<code>fdisk /dev/sdb</code> | |||
<code> n, Enter, Enter, Enter, Enter, w</code> | |||
<code>pvcreate /dev/sdb1</code> | |||
<code>vgcreate vg01 /dev/sdb1</code> | |||
<code>lvcreate -l 100%FREE -T vg01/lv01</code> | |||
ИЛИ | |||
<code>lvcreate -L 20G -T vg01/lv01</code> | |||
<code>mkfs.ext4 /dev/mapper/vg01-lv01</code> | |||
<code>mkdir /mnt/gfs_data01</code> | |||
<code>mount /dev/mapper/vg01-lv01 /mnt/gfs_data01/</code> | |||
<code>echo "/dev/mapper/vg01-lv01 /mnt/gfs_data01 ext4 defaults 0 0" >> /etc/fstab</code> | |||
Не нужно использовать корень монтирования для хранения данных брика '''glusterfs''' | |||
Создаем для этого директорию '''data''' в корне примонтированного диска | |||
<code>mkdir /mnt/gfs_data01/data</code> | |||
=== На любой одной машине === | |||
==== Вариант 1. Replicated. Репликация ==== | |||
<blockquote>Создаем '''Replicated VOLUME''' | |||
('''ОТКАЗОУСТОЙЧИВЫЙ''') | |||
Все ФС бриков в кластере ('''3''') реплицируются | |||
На клиенте объем примонтированной ФС будет '''N''', где '''N''' - объем брика на каждой машине кластера</blockquote><code>gluster volume create gfs_volume01 replica 3 gfs01:/mnt/gfs_data01/data gfs02:/mnt/gfs_data01/data gfs03:/mnt/gfs_data01/data force</code> | |||
Запускаем VOLUME | |||
gluster volume start gfs_volume01 | |||
Проверяем статус | |||
<code>gluster volume status gfs_volume01</code> | |||
Остановить volume | |||
<code>gluster volume stop gfs_volume02</code> | |||
Удалить volume | |||
<code>gluster volume delete gfs_volume02</code> | |||
Настраиваем отказоустойчивость | |||
'''''network.ping-timeout''''' - устанавливаем период опроса в 5 секунд, вместо 42 по умолчанию. | |||
'''''cluster.quorum-type(нет|auto|fixed)''''' - Если установлено значение fixed, этот параметр разрешает запись в файл, только если количество активных блоков в этом наборе реплик (к которому принадлежит файл) больше или равно количеству, указанному в параметре quorum-count. | |||
'''''cluster.quorum-count''''' - количество блоков, которые должны быть активны в наборе реплик, чтобы разрешить запись. | |||
'''''performance.quick-read(on|off)''''' - включение быстрого чтения для транслятора пула. | |||
<code>gluster volume set gfs_volume01 network.ping-timeout 5</code> | |||
<code>gluster volume set gfs_volume01 cluster.quorum-type fixed</code> | |||
<code>gluster volume set gfs_volume01 cluster.quorum-count 1</code> | |||
<code>gluster volume set gfs_volume01 performance.quick-read on</code> | |||
==== Вариант 2. Distributed ==== | |||
<blockquote>При данной настройке данные будут распределяться в случайном порядке между каждой папкой, которая входит в volume | |||
('''УВЕЛИЧЕНИЕ ОБЪЕМА ЗА СЧЕТ СУММИРОВАНИЯ ФС БРИКОВ''') | |||
Создаем Distributed VOLUME ('''НЕОТКАЗОУСТОЙЧИВЫЙ - ПОВЫШАЕМ ОБЩИЙ ОБЪЕМ''') | |||
Все ФС бриков в кластере (3) складываются</blockquote>На клиенте объем примонтированной ФС будет N*3, где '''N''' - объем брика на каждой машине кластера, 3 - кол-во бриков в кластере | |||
<code>gluster volume create gfs_volume01 gfs01:/mnt/gfs_data01 gfs02:/mnt/gfs_data01 gfs03:/mnt/gfs_data01 force</code> | |||
Запускаем VOLUME | |||
<code>gluster volume start gfs_volume01</code> | |||
Проверяем статус | |||
<code>gluster volume status gfs_volume01</code> | |||
Остановить volume | |||
<code>gluster volume stop gfs_volume02</code> | |||
Удалить volume | |||
<code>gluster volume delete gfs_volume02</code> | |||
=== Монтируем пулы сами к себе === | |||
<blockquote>Необязательно - просто для проверки использования машин кластера в качестве клиентов GlusterFS</blockquote>На каждой машине вводить соответствующую ей команду | |||
==== On gfs01 ==== | |||
<code>mkdir /mnt/gfs_volume01</code> | |||
<code>mount -t glusterfs gfs01:/gfs_volume01 /mnt/gfs_volume01</code> | |||
==== On gfs02 ==== | |||
<code>mkdir /mnt/gfs_volume01</code> | |||
<code>mount -t glusterfs gfs02:/gfs_volume01 /mnt/gfs_volume01</code> | |||
==== On gfs03 ==== | |||
<code>mkdir /mnt/gfs_volume01</code> | |||
<code>mount -t glusterfs gfs03:/gfs_volume01 /mnt/gfs_volume01</code> | |||
=== Автомонтирование === | |||
<code>nano /etc/fstab</code> | |||
==== On gfs01 ==== | |||
<code>gfs01:/gfs_volume01 /mnt/gfs_volume01 glusterfs defaults,_netdev 0 0</code> | |||
==== On gfs02 ==== | |||
<code>gfs02:/gfs_volume01 /mnt/gfs_volume01 glusterfs defaults,_netdev 0 0</code> | |||
==== On gfs03 ==== | |||
<code>gfs03:/gfs_volume01 /mnt/gfs_volume01 glusterfs defaults,_netdev 0 0</code> | |||
Кладем в '''/mnt/gfs_volume01''' файл | |||
Проверяем что на всех машинах по этому пути файл синхронизируется | |||
=== Монтируем gfs-volume на другой машине === | |||
<blockquote>Все машины gfs-кластера должны быть видны по hostname, поэтому на клиенте либо правим соответствие в /etc/hosts, либо прописываем соответствие имен ip-адресам на dns-сервере</blockquote> | |||
==== Centos 7 ==== | |||
<code>yum install glusterfs-fuse</code> | |||
==== Debian 10 ==== | |||
<code>apt install glusterfs-client</code> | |||
Монтируем | |||
<code>mkdir /mnt/gfs_volume01</code> | |||
<code>mount -t glusterfs gfs01:/gfs_volume01 /mnt/gfs_volume01</code> | |||
Проверяем | |||
<code>df -h</code> | |||
При ошибках смотрим логи | |||
<code>cat /var/log/glusterfs/opt-tmp.log</code> | |||
Текущая версия на 21:06, 5 сентября 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. Репликация
Создаем 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