Установка и настройка репликации GlusterFS
Пример установки и настройки репликации GlusterFS с защитой SSL сертификатов.
Предисловие
GlusterFS на тестах показал очень низкую производительность. Был создан кластер из двух серверов и одним клиентом с гигабитным каналам. Rsync и обычный cp работал со скоростью 70.59kB/s. 200МБ копировался час. Вобщем производительность у гластера очень низкая.
Установка на Ubuntu
apt-get update
apt install software-properties-common
add-apt-repository ppa:gluster/glusterfs-6
apt-get install glusterfs-server
Установка на Centos 7
yum install centos-release-gluster -y
yum install glusterfs-server -y
systemctl enable glusterd.service
systemctl start glusterd.service
Проверка статуса запуска
systemctl status glusterd.service
Настройка безопасности
По умолчанию, к кластеру может подключиться любой. Чтобы этого не произошло, нужно включить SSL и создать сертификаты. Тогда к вашему кластеру могут подключиться только те сервера чьи сертификаты прописаны в glusterfs.ca.
Включите SSL настройки:
touch /var/lib/glusterd/secure-access
На каждом хосте, входящий в кластер glusterfs сделайте следующие настройки:
cd /etc/ssl/
openssl rand -out ~/.rnd
openssl genrsa -out glusterfs.key 2048
openssl req -new -x509 -key glusterfs.key -subj "/CN=`hostname`" -out glusterfs.pem
cat /etc/ssl/glusterfs.pem > glusterfs.ca
Файл glusterfs.ca должен содержать ключи со всех серверов содержимого файлов glusterfs.pem.
При желании можете сгенерировать dhparam:
openssl dhparam -out /etc/ssl/dhparam.pem 4096
После настроек перезапустите сервис:
systemctl restart glusterd.service
Настройка IPTables
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 24007:24008 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 49152:49190 -j ACCEPT
Создание кластера реплики
Предположим у вас два сервера с IP адресами 192.168.1.10 и 192.168.1.11. На них будет установлен gluster сервер с репликой. На каждом хосте в файле /etc/hosts пропишите хосты кластера.
192.168.1.10 srv1
192.168.1.11 srv2
На 0м сервере выполните команду. Это позволит подключить первый сервер к нулевому.
gluster peer probe srv2
Проверьте подключение пиров:
gluster peer status
После подключение серверов, создайте на двух серверах папки /data/volume1. Там будут хранится файлы кластера.
gluster volume create volume1 replica 3 arbiter 1 transport tcp srv1:/data/volume1 srv2:/data/volume1 srv1:/data/volume1_arbiter
Запустите volume
gluster volume start volume1
Настройте volume:
gluster volume set volume1 auth.allow '*'
gluster volume set volume1 nfs.disable on
gluster volume set volume1 server.ssl on
gluster volume set volume1 client.ssl on
gluster volume set volume1 network.ping-timeout 5
gluster volume set volume1 cluster.self-heal-daemon enable
gluster volume set volume1 transport.address-family inet
gluster volume set volume1 performance.readdir-ahead on
gluster volume set volume1 performance.client-io-threads on
В параметре auth.allow вы можете указать IP адреса клиентов через запятую, которые могут монтировать volume. Например: 192.168.1.15,192.168.1.50
На клиенте. Создайте папку.
mkdir /media/volume1
Подключитесь к кластеру с клиента:
mount.glusterfs -o backupvolfile-server=srv2 srv1:/volume1 /media/volume1
Если все прошло успешно, добавьте монтирование в /etc/fstab.
srv1:/volume1 /media/volume1 glusterfs defaults,_netdev,backupvolfile-server=srv2 0 0
Опция backupvolfile-server позволяет, если не доступен srv1, подключаться к srv2. Это работает только в момент первого подключения к кластеру. После подключения к кластеру, клиент узнает все IP адреса кластера, и уже работает с ними напрямую.
Информация
- Setting up GlusterFS with SSL/TLS
- High-Availability Storage with GlusterFS on CentOS 7 - Mirror across two storage servers
- Setting up GlusterFS Volumes
- Configure a High-Availability Storage with GlusterFS on Ubuntu 18.04 LTS
- Установка и настройка GlusterFS
- How to install GlusterFS with a replicated high availability storage volume on Ubuntu Linux 16.04 LTS
- How to enable TLS/SSL encryption with Glusterfs storage cluster on Linux
- GlusterFS performance tuning