Инструменты пользователя

Инструменты сайта


service:glusterfs

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:glusterfs [17.12.2021 17:25] – [Установка] viacheslavservice:glusterfs [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== GlusterFS ======
 +Распределённая отказоустойчивая файловая система. Нужно как минимум 3 ноды (5,7,9 и т. д.). Под ФС нужен отдельный диск (sdb)
  
 +{{:service:pasted:20211216-131642.png}}
 +
 +https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/
 +
 +<code bash>
 +gluster help # справка
 +gluster volume get volume1 all # вывести все настройки тома
 +ls /var/log/glusterfs # логи
 +</code>
 +===== Установка =====
 +<code bash>
 +apt update && apt install glusterfs-server # nfs-common samba
 +systemctl start glusterd && systemctl enable glusterd
 +# с первого сервера ввести в пул второй (или наоборот, неважно)
 +gluster peer probe srv-gluster2
 +# проверка статуса
 +gluster peer status
 +
 +# Создать том. Ноды нужно как минимум 3 и размещать том не на системном диске (добавить force для создания на системном диске)
 +mkdir -p /glusterfs
 +# Если не указать параметр replica, то получится Distributed volume
 +gluster volume create volume1 replica 2 srv-gluster1:/glusterfs/vol1-brick1 srv-gluster2:/glusterfs/vol1-brick1 # force
 +gluster volume start volume1
 +# инфо
 +gluster volume list
 +gluster volume info
 +</code>
 +
 +<code bash>
 +# На клиенте
 +apt install glusterfs-client # nfs-common
 +mkdir /mnt/volume1
 +# можно указывать любую ноду, например, srv-gluster2:volume1
 +mount -t glusterfs srv-gluster1:volume1
 +</code>
 +
 +===== Квоты =====
 +Задаются для тома в целом (/) и на уровне отдельных папок.
 +<code bash>
 +gluster volume quota volume1 enable
 +gluster volume quota volume1 limit-usage / 20GB # hard limit, soft limit - 80% by default
 +gluster volume quota volume1 list # список квот
 +</code>
 +
 +===== Расширение / сжатие тома =====
 +<code bash>
 +# Добавить кирпич на другой ноде
 +gluster volume add-brick volume1 srv-gluster2:/glusterfs/vol1-brick1
 +# Если том распределённый, то после расширения надо бы перераспределить данные
 +gluster volume rebalance volume1 start
 +# Статус прогресса балансировки
 +gluster volume rebalance volume1 start
 +
 +# Убрать данные с кирпича
 +gluster volume remove-brick volume1 srv-gluster2:/glusterfs/vol1-brick1 start
 +# Удалить кирпич
 +gluster volume remove-brick volume1 srv-gluster2:/glusterfs/vol1-brick1 commit
 +</code>
 +
 +===== Ограничение доступа =====
 +<code bash>
 +gluster volume get volume1 auth.allow # кому разрешено
 +gluster volume get volume1 auth.reject # кому запрещено
 +gluster volume set volume1 auth.restrict 192.168.1.10,172.16.20.5,10.2.4.*,comp3,comp5
 +gluster volume reset volume1 auth.reject # сбросить auth.reject в настройки по умолчанию
 +</code>
 +
 +===== Удаление =====
 +Размонтировать на клиенте, потом на сервере
 +<code bash>
 +gluster volume stop volume1
 +gluster volume delete volume1
 +# Данные на /glusterfs/vol1-brick1 останутся
 +</code>
 +
 +
 +===== Доступ по SMB =====
 +Для отказоустойчивости SMB используется сервис CTDB (Cluster Trivial Database). Рекомендуемая настройка для прода:
 +  * Сеть SMB, к которой подключаются клиенты, и внутренняя сеть Gluster должны быть разными, иначе будут проблемы с производительностью.
 +  * Сети SMB и Gluster нужно посадить на разные сетевые интерфейсы.
 +  * Интерфейсы должны быть одинаковыми по пропускной способности.
 +
 +Тестовый вариант
 +<code bash>
 +# Создать отдельный том для lock-файла
 +mkdir /gluster/ctdb # На каждой ноде
 +# Создать том
 +gluster volume create ctdb replica 3 gluster{1..3}:/gluster/ctdb # force (на одной ноде)
 +# Прописать имя тома в конфиг. файлах
 +sed -i '/META="all"/c META="ctdb"' /var/lib/glusterd/hooks/1/start/post/S29CTDBsetup.sh
 +sed -i '/META="all"/c META="ctdb"' /var/lib/glusterd/hooks/1/stop/pre/S29CTDB-teardown.sh
 +# Включить кластеризацию в конфиге самбы
 +sed -i '/\[global\]/a clustering=yes' /etc/samba/smb.conf # На каждой ноде
 +
 +vi /etc/samba/smb.conf
 +[global]
 +clustering = yes
 +idmap backend = tdb2
 +kernel share modes = no
 +kernel oplocks = no
 +map archive = no
 +map hidden = no
 +map read only = no
 +map system = no
 +store dos attributes = yes
 +
 +# Прописать ноды, участвующие в кластере (реальные IP)
 +printf "192.168.1.11\n192.168.1.12\n192.168.1.13\n" > /etc/ctdb/nodes # На каждой ноде
 +# Создать файл с публичным виртуальным адресом (для клиентского доступа) на каждой ноде. Можно прописать несколько адресов.
 +echo "192.168.1.20/24 eth0" > /etc/ctdb/public_addresses
 +# Запустить ctdb
 +systemctl start ctdb
 +
 +# Инфо
 +ctdb status # состояние кластера
 +ctdb ip # виртуальный адрес
 +</code>
 +
 +<code bash>
 +# For Samba-4.8.5-104 or later - To export gluster volume as SMB share via Samba,
 +# one of the following volume options, user.cifs or user.smb is required.
 +gluster volume set VOLNAME user.smb enable
 +# These commands will enable optimized options for Samba-CTDB setup
 +gluster volume set VOLNAME group samba
 +gluster volume set VOLNAME storage.batch-fsync-delay-usec 0
 +gluster volume set VOLNAME client.event-threads 4
 +gluster volume set VOLNAME server.event-threads 4
 +# Uncomment CTDB_SAMBA_SKIP_SHARE_CHECK=yes to disable checking of the shares by ctdb.
 +sed -i 's/# CTDB_SAMBA_SKIP/CTDB_SAMBA_SKIP/' /etc/ctdb/script.options
 +</code>
 +
 +https://docs.gluster.org/en/latest/Administrator-Guide/Accessing-Gluster-from-Windows/\\
 +https://wiki.samba.org/index.php/CTDB_and_Clustered_Samba\\
 +https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.5/html/administration_guide/sect-smb

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki