service:glusterfs
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:glusterfs [17.12.2021 17:25] – [Установка] viacheslav | service:glusterfs [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== GlusterFS ====== | ||
+ | Распределённая отказоустойчивая файловая система. Нужно как минимум 3 ноды (5,7,9 и т. д.). Под ФС нужен отдельный диск (sdb) | ||
+ | {{: | ||
+ | |||
+ | https:// | ||
+ | |||
+ | <code bash> | ||
+ | gluster help # справка | ||
+ | gluster volume get volume1 all # вывести все настройки тома | ||
+ | ls / | ||
+ | </ | ||
+ | ===== Установка ===== | ||
+ | <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:/ | ||
+ | gluster volume start volume1 | ||
+ | # инфо | ||
+ | gluster volume list | ||
+ | gluster volume info | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | # На клиенте | ||
+ | apt install glusterfs-client # nfs-common | ||
+ | mkdir / | ||
+ | # можно указывать любую ноду, например, | ||
+ | mount -t glusterfs srv-gluster1: | ||
+ | </ | ||
+ | |||
+ | ===== Квоты ===== | ||
+ | Задаются для тома в целом (/) и на уровне отдельных папок. | ||
+ | <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 bash> | ||
+ | # Добавить кирпич на другой ноде | ||
+ | gluster volume add-brick volume1 srv-gluster2:/ | ||
+ | # Если том распределённый, | ||
+ | gluster volume rebalance volume1 start | ||
+ | # Статус прогресса балансировки | ||
+ | gluster volume rebalance volume1 start | ||
+ | |||
+ | # Убрать данные с кирпича | ||
+ | gluster volume remove-brick volume1 srv-gluster2:/ | ||
+ | # Удалить кирпич | ||
+ | gluster volume remove-brick volume1 srv-gluster2:/ | ||
+ | </ | ||
+ | |||
+ | ===== Ограничение доступа ===== | ||
+ | <code bash> | ||
+ | gluster volume get volume1 auth.allow # кому разрешено | ||
+ | gluster volume get volume1 auth.reject # кому запрещено | ||
+ | gluster volume set volume1 auth.restrict 192.168.1.10, | ||
+ | gluster volume reset volume1 auth.reject # сбросить auth.reject в настройки по умолчанию | ||
+ | </ | ||
+ | |||
+ | ===== Удаление ===== | ||
+ | Размонтировать на клиенте, | ||
+ | <code bash> | ||
+ | gluster volume stop volume1 | ||
+ | gluster volume delete volume1 | ||
+ | # Данные на / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Доступ по SMB ===== | ||
+ | Для отказоустойчивости SMB используется сервис CTDB (Cluster Trivial Database). Рекомендуемая настройка для прода: | ||
+ | * Сеть SMB, к которой подключаются клиенты, | ||
+ | * Сети SMB и Gluster нужно посадить на разные сетевые интерфейсы. | ||
+ | * Интерфейсы должны быть одинаковыми по пропускной способности. | ||
+ | |||
+ | Тестовый вариант | ||
+ | <code bash> | ||
+ | # Создать отдельный том для lock-файла | ||
+ | mkdir / | ||
+ | # Создать том | ||
+ | gluster volume create ctdb replica 3 gluster{1..3}:/ | ||
+ | # Прописать имя тома в конфиг. файлах | ||
+ | sed -i '/ | ||
+ | sed -i '/ | ||
+ | # Включить кластеризацию в конфиге самбы | ||
+ | sed -i '/ | ||
+ | |||
+ | vi / | ||
+ | [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 " | ||
+ | # Создать файл с публичным виртуальным адресом (для клиентского доступа) на каждой ноде. Можно прописать несколько адресов. | ||
+ | echo " | ||
+ | # Запустить ctdb | ||
+ | systemctl start ctdb | ||
+ | |||
+ | # Инфо | ||
+ | ctdb status # состояние кластера | ||
+ | ctdb ip # виртуальный адрес | ||
+ | </ | ||
+ | |||
+ | <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/ | ||
+ | </ | ||
+ | |||
+ | https:// | ||
+ | https:// | ||
+ | https:// |