Я хочу поделиться своим DocumentRoot /var/www/html/ между двумя веб серверами Apache. Оба моих веб-сервера стоят за балансировщиком распределения нагрузки прокси сервера Nginx. Как настроить и установить GlusterFS ( «распределенное хранилище»), которая является масштабируемой сетевой файловой системой на сервер?
GlusterFS является сетевой файловой системой распределенного хранения с свободным и открытым исходным кодом. Сеть распределенных файловых систем хранения очень популярна среди веб-сайтов для интеренет торговли с свысокой нагрузкой, облачных вычислений, потоковых медиа-услуг, (сети доставки контента) CDN и многое другое.
Облако или физический сервер будет единственной точкой отказа. Например /var/www/html/ может быть точкой отказа? Мы используем два веб-сервера Apache. Тем не менее, как обечпечитьт, чтобы /var/www/html/ синхронизируются на обоих серверах Apache? Вы не хотите, чтобы данные и страницы для клиентов с разных серверов отличались. Чтобы сохранить /var/www/html/ в синхронизации вам нужен кластерная система хранения. Даже если один узел выходит из строя другой продолжает работать. Более того, когда вышедший из строя узел подключается обратно, он должен синхронизировать отсутствующие файлы с другого сервера в /var/www/html/.
Как настроить репликацию в GlusterFS для обеспечения высокой доступности хранения?
Первоначальная настройка /etc/host файла:
nano /etc/hosts
Установить правильный IP-адрес в соответствии с картинкой или согласно вашей установки:
Закройте и сохраните файл. Проверьте:
ping -c2 gl1
ping -c2 gl2
Настройка IPTables для трафика между gl1 и gl2
Введите следующие на gl1 , чтобы разрешить весь трафик от узла gl2:
ufw allow proto any from 192.168.1.12 to 192.168.1.11
Введите следующие на gfs02 , чтобы разрешить весь трафик от узла gfs01:
ufw allow proto any from 192.168.1.11 to 192.168.1.12
Установка GlusterFS
Введите следующую команду apt-get command/apt command команду на обоих gfs01 и gfs02 серверах:
apt install glusterfs-server
Настройка и форматирование диска на каждом сервере
Вам необходимо ввести следующие команды на обоих серверах gfs01 (будьте осторожны с именами устройств в то время как создаете блоки разделов устройства):
Вам необходимо ввести следующие команды на обоих серверах gfs02:
fdisk /dev/vdb
mkfs.ext4 /dev/vdb1
mkdir -p /nodirectwritedata/ brick2
echo '/dev/vdb1 /nodirectwritedata/ brick2 ext4 defaults 1 2' >> /etc/fstab
mount -a
df -H
mkdir /nodirectwritedata/brick2/gvol0
Не редактируйте и не записывайте файлы непосредственно в /nodirectwritedata/brick1/ или /nodirectwritedata/brick2/ на каждом сервере. Прямая запись испортит ваш массив.
Убедитесь в том, что служба GlusterFS запущена
Введите следующие команды:
systemctl enable glusterd.service
Настройка trusted pool
От gfs01 сервере:
gluster peer probe gfs01
peer probe: success. Host gfs01 port 24007 already in peer list
Настройка раздела GlusterFS
НА gfs01 (или gfs02) :
gluster volume create gvol0 replica 2
gfs01:/nodirectwritedata/brick1/gvol0
gfs02:/nodirectwritedata/brick2/gvol0
Пример результата:
Пример результата:
volume start: gvol0: success
Монтирование клиентов
Теперь наш кластер запущен и работает. Это время, наши клиенты могут устанавливать такие совместно используемые stoage. Вы можете иметь 1,2,3,4 или столько, сколько вы хотите клиент в соответствии с вашими сетевыми ресурсами. Вы можете настроить gfs01 и gfs02, как и сам клиент тоже.
Монтирование на gfs01 / gfs02 узел
Введите следующую команду:
Сохраните и закройте файл. Установите его:
Монирование на другом сервере с именем www1
apt install glusterfs-client
mkdir -p /mnt/www/
192.168.2.11 gfs01
192.168.2.12 gfs02
Сохраните и закройте файл. Обновите /etc/fstab файл для монтирования общего хранилища:
Обновление /etc/fstab:
Cd /mnt/www/ и создать некоторые файлы на www1 или gfs02:
Вы должны увидеть файлы на обоих gfs02, gfs01 и www1.
Примечание о настройке network.ping.timeout
И, наконец выполните следующую команду на обоих gfs02 и gfs01 для установки таймаута сети до 5 секунд от дефолта 42:
Проверим
Вам нужно отредактировать httpd.conf и установить DocumentRoot, указав каталог /mnt/www/
Настройка шифрования GlusterFS
Если все узлы находятся в приватной сети, то это еще ничего, но если вы собираетесь применять GlusterFS через сеть, то желательно включить шифрование и аутентификацию по RSA ключу. По умолчанию никакая аутентификация не используется. Сначала создаем серитфикаты на каждом узле:
cd /etc/ssl/ openssl genrsa -out glusterfs.key 2048 openssl req -new -x509 -key glusterfs.key -subj "/CN=gluster1" -out glusterfs.pem
Скопируйте ключ gluster.key на другой сервер и создайте там на основе него сертификат, вместо gluster0 используйте имя своего хоста:
cd /etc/ssl/ openssl req -new -x509 -key glusterfs.key -subj "/CN=gluster2" -out glusterfs.pem
Объедините содержимое обоих файлов pem и файле .ca и разместите его на всех серверах в папке /etc/ssl:
cat /etc/ssl/glusterfs.pem gluster2.pem > glusterfs.ca
Включите поддержку шифрования и перезапустите сервер:
touch /var/lib/glusterd/secure-access systemctl restart glusterd
Включите ssl на всех серверах и клиентах:
gluster volume set gv0 auth.ssl-allow '*' gluster volume set gv0 server.ssl on
Теперь перезапустите группу томов:
gluster vol stop gv0 gluster vol start gv0
Проверить работает ли ssl сейчас вы можете посмотрев лог файл:
grep -i ssl /var/log/glusterfs/gv0.log
Добавить комментарий