总结
与共享交互时 ctdb + samba 集群中的一个节点发生故障会中断共享连接。
我的设置
3 个节点运行 ceph + cephfs
其中 2 个节点运行 CTDB 和 Samba 1 个客户端(不是 3 个服务器之一)
这是一个实验室设置,因此每个服务器只有一个网卡=节点,一个子网以及所有 Ceph 组件和 Samba 都在同一台服务器上。我知道,这不是可行的方法。
问题
我想使用 ctdb 在 Ceph 上托管集群 Samba 文件共享。我按照 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 接管?我有新服务器 (接管公网 IP 的服务器) 的 tcpdump,在客户端向服务器发送重传后,该服务器向我的客户端发送了 tcp RST。
知道吗,问题可能出在哪里?
附言:我非常乐意为您提供更多信息(ctdb 配置文件、防火墙配置、pcap 等等;)),但是这已经足够长了……
编辑:
还在虚拟化环境和 Windows 10 客户端上测试了 GlusterFS 作为存储后端。需要kernel share modes = No
,使用 gluster vfs。