Samba/CTDB: различия между версиями
(Новая страница: «== Описание == В этой статье рассмотрим построение масштабируемого кластера файлового сервиса Samba. Для обеспечения высокой доступности мы будет использовать сетевую файловую систему, которая будет доступна одновременно всем серверам в кластере. В каче...») |
Нет описания правки |
||
Строка 23: | Строка 23: | ||
=== Установка необходимого ПО === | === Установка необходимого ПО === | ||
На все ноды сервиса samba нужно установить один набор ПО. | |||
# apt-get update | # apt-get update | ||
Строка 43: | Строка 45: | ||
то, вероятно, у вас стоит несколько пакетов с smbd, к примеру пакет <tt>samba-dc</tt>, который нам сейчас не нужен и должен быть удален. | то, вероятно, у вас стоит несколько пакетов с smbd, к примеру пакет <tt>samba-dc</tt>, который нам сейчас не нужен и должен быть удален. | ||
Кластерную файловую систему примонтировать в {{path|/mnt/gluster/}}, проще всего это сделать через {{path|/etc/fstab}} | |||
gluster1,gluster2,gluster3:/gfs-volume /mnt/gluster/ glusterfs defaults,_netdev 0 0 | |||
=== Настройка службы ctdb === | |||
* в файле {{path|/etc/ctdb/nodes}} перечисляются IP адреса всех нод кластера | |||
192.168.160.151 | |||
192.168.160.152 | |||
* в файле {{path|/etc/ctdb/public_addresses}} указываем адрес по которому будет взаимодействие с клиентами. | |||
192.168.160.180/24 ens19 | |||
* в файле {{path|/etc/ctdb/ctdb.conf}} указать recovery lock на сетевой ФС | |||
[cluster] | |||
recovery lock=/mnt/gluster/ctdb.lock | |||
* включить поддержку скриптов для управления необходимыми службами. CTDB сам будет запускать и управлять ими. | |||
# for i in 00.ctdb 10.interface 50.samba; do ctdb event script enable legacy $i; done | |||
и проверить, что они включились (наличие * у имени) | |||
[root@samba1 ~]# ctdb event script list legacy | |||
* 00.ctdb | |||
01.reclock | |||
05.system | |||
06.nfs | |||
* 10.interface | |||
11.natgw | |||
11.routing | |||
13.per_ip_routing | |||
20.multipathd | |||
31.clamd | |||
40.vsftpd | |||
41.httpd | |||
48.netbios | |||
49.winbind | |||
* 50.samba | |||
60.nfs | |||
70.iscsi | |||
91.lvs | |||
==== Настройка samba ===== | |||
* Выключить возможность запуска smb через systemd | |||
systemctl disable --now smb | |||
* создать конфигурационный файл samba | |||
т.к. все ноды должны иметь одинаковый конфигурационный файл, то лучше всего хранить его настройки в registry. | |||
Для этого достаточно создать минимальный {{path|/etc/samba/smb.conf}} с содержимым | |||
[global] | |||
clustering = yes | |||
include = registry |
Версия от 10:32, 21 января 2025
Описание
В этой статье рассмотрим построение масштабируемого кластера файлового сервиса Samba. Для обеспечения высокой доступности мы будет использовать сетевую файловую систему, которая будет доступна одновременно всем серверам в кластере. В качестве кластерной файловой системы будем использовать GlusterFS. Для механизма блокировок Samba использует TBD (trivial data base), нам понадобится его кластерная реализация CTDB. CTDB будет управлять переносом IP-адреса и запуском сервиса Samba (и winbind если речь идет о доменной конфигурации).
Конфигурация (без доменной поддержки)
Общий вид можно представить схемой
Кластер GlusterFS
Построение кластера GlusterFS не рассматривается в данной статье. Немного устаревшие, но в целом верные шаги, возможно посмотреть в отдельном документе GlusterFS
- gluster1 - 192.168.160.11/24
- gluster2 - 192.168.160.12/24
- gluster3 - 192.168.160.13/24
Кластер Samba
- samba1 - первая нода сервиса smb - 192.168.160.151/24
- samba2 - первая нода сервиса smb - 192.168.160.152/24
- 192.168.160.180/24 - виртуальный IP по которому будет отвечать один из узлов
Установка необходимого ПО
На все ноды сервиса samba нужно установить один набор ПО.
# apt-get update # apt-get install samba-ctdb glusterfs9-client
Важно! Убедитесь, что у вас активна samba с поддержкой кластеризации. Результат должен быть таким
[root@samba1 ~]# smbd -b | grep -A 1 -i cluster CLUSTER_SUPPORT COMPILER_SUPPORTS_LL -- Cluster support features: CLUSTER_SUPPORT CTDB_SOCKET: /var/run/ctdb/ctdbd.socket
если у вас результат такой
Cluster support features: NONE
то, вероятно, у вас стоит несколько пакетов с smbd, к примеру пакет samba-dc, который нам сейчас не нужен и должен быть удален.
Кластерную файловую систему примонтировать в /mnt/gluster/, проще всего это сделать через /etc/fstab
gluster1,gluster2,gluster3:/gfs-volume /mnt/gluster/ glusterfs defaults,_netdev 0 0
Настройка службы ctdb
- в файле /etc/ctdb/nodes перечисляются IP адреса всех нод кластера
192.168.160.151 192.168.160.152
- в файле /etc/ctdb/public_addresses указываем адрес по которому будет взаимодействие с клиентами.
192.168.160.180/24 ens19
- в файле /etc/ctdb/ctdb.conf указать recovery lock на сетевой ФС
[cluster] recovery lock=/mnt/gluster/ctdb.lock
- включить поддержку скриптов для управления необходимыми службами. CTDB сам будет запускать и управлять ими.
# for i in 00.ctdb 10.interface 50.samba; do ctdb event script enable legacy $i; done
и проверить, что они включились (наличие * у имени)
[root@samba1 ~]# ctdb event script list legacy * 00.ctdb 01.reclock 05.system 06.nfs * 10.interface 11.natgw 11.routing 13.per_ip_routing 20.multipathd 31.clamd 40.vsftpd 41.httpd 48.netbios 49.winbind * 50.samba 60.nfs 70.iscsi 91.lvs
Настройка samba =
- Выключить возможность запуска smb через systemd
systemctl disable --now smb
- создать конфигурационный файл samba
т.к. все ноды должны иметь одинаковый конфигурационный файл, то лучше всего хранить его настройки в registry. Для этого достаточно создать минимальный /etc/samba/smb.conf с содержимым
[global] clustering = yes include = registry