我正在尝试使用 gluster 设置 HA 存储。与 Samba 共享它,以便我可以在 Windows 客户端上访问它。CTDB 用于与客户端的 HA 连接,OpenLDAP 用于用户身份验证。这是一个虚拟测试设置,我们可能想在公司使用它。所有虚拟机都可以相互 ping 通。我使用的是 CentOS 7。
- Gluster 节点 1:192.168.2.210
- Gluster 节点 2:192.168.2.211
- LDAP 服务器:192.168.2.95
- Windows 客户端:192.168.2.100(Windows 10)
我已使 gluster 卷正常运行(分布式复制)。我无法使 CTDB 故障转移和 samba/openldap 身份验证正常运行。ctdb 配置文件、public_addresses 和 nodes 文件位于我的 gluster 卷上,并链接(符号)到 /etc/sysconfig/ctdb、/etc/ctdb/public_addresses 和 /etc/ctdb/nodes。
/etc/sysconfig/ctdb > /gluster/lock/ctdb
CTDB_RECOVERY_LOCK=/gluster/lock/.CTDB-lockfile
CTDB_NODES=/etc/ctdb/nodes
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
公共地址 > /gluster/lock/public_addresses
192.168.2.215/24 ens33
/etc/ctdb/节点 > /gluster/lock/节点
192.168.2.210
192.168.2.211
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
security = user
passdb backend = tdbsam
idmap backend = tdb2
clustering = yes
[gluster-data]
vfs object = glusterfs
glusterfs:volume = data
glusterfs:logfile = /var/log/samba/glusterfs-data.%M.log
glusterfs:loglevel = 7
path = /gluster/share
read only = no
create mask = 0770
guest ok = yes
browseable = yes
writeable = yes
因此,首先我的 CTDB 以相反的方式工作。当两个节点都在线时,我只能 ping 浮动 IP 地址。'ctdb status' 表示两个节点都正常,而 'ctdb ip' 显示浮动 IP 地址。当我尝试在 Windows 客户端上访问卷时,我不断收到错误:“指定的网络密码不正确”。我确实在两个节点上运行了 smbpasswd -a 'testuser'。甚至 root 也无法进行身份验证。所以我想我可以尝试使用 OpenLDAP 进行用户身份验证。我将 samba 设置更改为:
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
security = user
passdb backend = ldapsam:ldap://192.168.2.95
idmap backend = ldap:ldap://192.168.2.95
ldap suffix = dc=domain,dc=com
ldap admin dn = cn=ldapadm,dc=domain,dc=com
clustering = yes
[gluster-data]
vfs object = glusterfs
glusterfs:volume = data
glusterfs:logfile = /var/log/samba/glusterfs-data.%M.log
glusterfs:loglevel = 7
path = /gluster/share
read only = no
create mask = 0770
valid users = @Users
force group = Users
guest ok = yes
browseable = yes
writeable = yes
使用这些设置,我甚至无法 ping 浮动 CTDB IP 地址,并且 ctdb 状态显示节点不健康。我还运行了 smbpasswd -W 'ldapadm password'。使用 CentOS 客户端,我可以登录到 OpenLDAP 用户。
我对这一切还很陌生,英语不是我的母语,所以如果有任何错误,请原谅。如果我没有提供所有需要的信息,我希望有人能帮助我并提供更多信息。