Пример установки и настройки репликации GlusterFS с защитой SSL сертификатов.
Предисловие
GlusterFS на тестах показал очень низкую производительность. Был создан кластер из двух серверов и одним клиентом с гигабитным каналам. Rsync и обычный cp работал со скоростью 70.59kB/s. 200МБ копировался час. Вобщем производительность у гластера очень низкая.
Установка на Ubuntu
_x000D_apt-get update_x000D_apt install software-properties-common_x000D_add-apt-repository ppa:gluster/glusterfs-6_x000D_apt-get install glusterfs-serverУстановка на Centos 7
_x000D_yum install centos-release-gluster -y_x000D_yum install glusterfs-server -y_x000D_systemctl enable glusterd.service_x000D_systemctl start glusterd.serviceПроверка статуса запуска
_x000D_systemctl status glusterd.serviceНастройка безопасности
По умолчанию, к кластеру может подключиться любой. Чтобы этого не произошло, нужно включить SSL и создать сертификаты. Тогда к вашему кластеру могут подключиться только те сервера чьи сертификаты прописаны в glusterfs.ca .
Включите SSL настройки:
_x000D_touch /var/lib/glusterd/secure-accessНа каждом хосте, входящий в кластер glusterfs сделайте следующие настройки:
_x000D_cd /etc/ssl/_x000D_openssl rand -out ~/.rnd_x000D_openssl genrsa -out glusterfs.key 2048_x000D_openssl req -new -x509 -key glusterfs.key -subj "/CN=`hostname`" -out glusterfs.pem_x000D_cat /etc/ssl/glusterfs.pem > glusterfs.caФайл glusterfs.ca должен содержать ключи со всех серверов содержимого файлов glusterfs.pem .
При желании можете сгенерировать dhparam:
_x000D_openssl dhparam -out /etc/ssl/dhparam.pem 4096После настроек перезапустите сервис:
_x000D_systemctl restart glusterd.serviceНастройка IPTables
_x000D_iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 24007:24008 -j ACCEPT_x000D_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 пропишите хосты кластера.
_x000D_192.168.1.10 srv1_x000D_192.168.1.11 srv2На 0м сервере выполните команду. Это позволит подключить первый сервер к нулевому.
_x000D_gluster peer probe srv2Проверьте подключение пиров:
_x000D_gluster peer statusПосле подключение серверов, создайте на двух серверах папки /data/volume1 . Там будут хранится файлы кластера.
_x000D_gluster volume create volume1 replica 3 arbiter 1 transport tcp srv1:/data/volume1 srv2:/data/volume1 srv1:/data/volume1_arbiterЗапустите volume
_x000D_gluster volume start volume1Настройте volume:
_x000D_gluster volume set volume1 auth.allow '*'_x000D_gluster volume set volume1 nfs.disable on_x000D_gluster volume set volume1 server.ssl on_x000D_gluster volume set volume1 client.ssl on_x000D_gluster volume set volume1 network.ping-timeout 5_x000D_gluster volume set volume1 cluster.self-heal-daemon enable_x000D_gluster volume set volume1 transport.address-family inet_x000D_gluster volume set volume1 performance.readdir-ahead on_x000D_gluster volume set volume1 performance.client-io-threads on_x000D_В параметре auth.allow вы можете указать IP адреса клиентов через запятую, которые могут монтировать volume. Например: 192.168.1.15,192.168.1.50
На клиенте. Создайте папку.
_x000D_mkdir /media/volume1Подключитесь к кластеру с клиента:
_x000D_mount.glusterfs -o backupvolfile-server=srv2 srv1:/volume1 /media/volume1Если все прошло успешно, добавьте монтирование в /etc/fstab .
_x000D_srv1:/volume1 /media/volume1 glusterfs defaults,_netdev,backupvolfile-server=srv2 0 0Опция backupvolfile-server позволяет, если не доступен srv1, подключаться к srv2. Это работает только в момент первого подключения к кластеру. После подключения к кластеру, клиент узнает все IP адреса кластера, и уже работает с ними напрямую.