Отказ узла в кластере ctdb + samba при взаимодействии с разделяемым ресурсом прерываний связь.
3 узла под управлением ceph + cephfs
2 из этих узлов под управлением CTDB и Samba
1 клиент (не один из 3 серверов)
Это лабораторная установка, поэтому только один nic на сервер = узел, одна подсеть, а также все компоненты Ceph плюс Samba на тех же серверах. Я понимаю, что это не выход.
Я хочу разместить кластерный файловый ресурс Samba поверх Ceph с помощью ctdb. Я следил за документацией CTDB ( https://wiki.samba.org/index.php/CTDB_and_Clustered_Samba#Configuring_Clusters_with_CTDB ) и частями этого: https://wiki.samba.org/index. php / Samba_CTDB_GPFS_Cluster_HowTo . Кластер работает, и общий ресурс доступен, доступен для чтения и записи на обоих узлах, мой файл smb.conf выглядит следующим образом:
[global]
netbios name = CEPHFS
workgroup = SIMPLE
clustering = yes
idmap config * : backend = autorid
idmap config * : range = 1000000-1999999
log file = /var/log/samba/smb.log
# Set files creation permissions
create mask = 664
force create mode = 664
# Set directory creation mask
directory mask = 2775
force directory mode = 2775
[public]
comment = public share
path = /mnt/mycephfs/testshare
public = yes
writeable = yes
only guest = yes
ea support = yes
CTDB управляет Samba и сообщает обоим узлам как ОК.
Но когда я читаю или записываю на один из узлов через общедоступный IP-адрес и позволяю ему выйти из строя (перезапуск ctdb), чтение или запись завершаются ошибкой. Вторая попытка записи завершается успешно (публичный IP-адрес успешно занят другим хостом).
Но CTDB должен иметь возможность сделать это согласно https://ctdb.samba.org/ -> IP Takeover? У меня есть tcpdump нового сервера (тот взяв на себя общедоступный IP-адрес), отправив tcp RST моему клиенту после того, как клиент отправил повторные передачи на сервер.
Есть идеи, в чем может быть проблема?
PS: Я более чем счастлив предоставить вам дополнительную информацию (файл конфигурации ctdb, конфигурация брандмауэра, pcap, что угодно;)), но этого достаточно .. ..
Также протестировано с GlusterFS в качестве серверной части хранилища в виртуализированной среде и на клиенте Windows 10. Требуется режим общего доступа ядра = Нет
, с использованием gluster vfs.
Проблема в том, что версия Samba еще не поддерживает постоянные дескрипторы , следующий репозиторий поддерживает ее, но не готов к созданию стабильной версии в официальном репозитории Samba. См. YouTube для полного объяснения этой реализации.
Устойчивые дескрипторы поддерживаются Samba, поэтому сбои сети на узле будут устранены, но сбои, когда CTDB выполняет подмену IP, потребуют SMB клиент для переподключения. Приложение / программа Windows должна управлять ошибкой, перехватывать ее и повторять попытку, например xcopy в Windows имеет флаг / Z (см. параметры ), который восстанавливает соединение при захвате IP-адреса на новый узел .