Моя установка
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 Перенимать? У меня есть tcpdump нового сервера (тот, который принимает общедоступный IP-адрес), который отправляет tcp RST моему клиенту после того, как клиент отправляет повторные передачи на сервер.
Есть идеи, в чем может быть проблема?
PS: я более чем счастлив предоставить вам дополнительную информацию (файл конфигурации ctdb, конфигурация брандмауэра, pcap, что угодно;)), но это достаточно долго ....