8.2. 在高可用性集群中配置 Samba
要在 Pacemaker 集群中配置 Samba 服务,请在集群的所有节点上配置该服务。
先决条件
- 使用 GFS2 文件系统配置的双节点红帽高可用性集群,如在 为高可用性集群中的 Samba 服务配置一个 GFS2 文件系统 中所述。
-
在 GFS2 文件系统上创建的用于 Samba 共享的公共目录。在本例中,目录为
/srv/samba/share1
。 - 可用于访问此集群导出的 Samba 共享的公共虚拟 IP 地址。
步骤
在集群的两个节点上,配置 Samba 服务,并建立共享定义:
安装 Samba 和 ctdb 软件包。
# dnf -y install samba ctdb cifs-utils samba-winbind
确保
ctdb
、smb
、nmb
和winbind
服务没有运行,且不会在引导时启动。# systemctl disable --now ctdb smb nmb winbind
在
/etc/samba/smb.conf
文件中,配置 Samba 服务,并建立共享定义,如下例具有一个共享的独立服务器所示:[global] netbios name = linuxserver workgroup = WORKGROUP security = user clustering = yes [share1] path = /srv/samba/share1 read only = no
验证
/etc/samba/smb.conf
文件。# testparm
在集群的两个节点上配置 CTDB:
创建
/etc/ctdb/nodes
文件并添加集群节点的 IP 地址,如示例节点文件中所示。192.0.2.11 192.0.2.12
创建
/etc/ctdb/public_addresses
文件,并将集群公共接口的 IP 地址和网络设备名称添加到该文件中。在public_addresses
文件中分配 IP 地址时,请确保这些地址没有被使用,并且这些地址可从预期的客户端路由。/etc/ctdb/public_addresses
文件的每个条目中的第二个字段是集群机器上用于相应公共地址的接口。在这个public_addresses
示例文件中,接口enp1s0
用于所有公共地址。192.0.2.201/24 enp1s0 192.0.2.202/24 enp1s0
集群的公共接口是客户端用于从其网络访问 Samba 的公共接口。出于负载均衡目的,将集群的每个公共 IP 地址的 A 记录添加到您的 DNS 区域。这些记录的每一个都必须解析为同样的主机名。客户端使用主机名访问 Samba ,DNS 将客户端分发到集群的不同节点。
如果您正在运行
firewalld
服务,启用ctdb
和samba
服务所需的端口。# firewall-cmd --add-service=ctdb --add-service=samba --permanent # firewall-cmd --reload
对集群的一个节点更新 SELinux 上下文:
更新 GFS2 共享的 SELinux 上下文。
[root@z1 ~]# semanage fcontext -at ctdbd_var_run_t -s system_u "/mnt/ctdb(/.)?" [root@z1 ~]# restorecon -Rv /mnt/ctdb
更新 Samba 中共享的目录的 SELinux 上下文。
[root@z1 ~]# semanage fcontext -at samba_share_t -s system_u "/srv/samba/share1(/.)?" [root@z1 ~]# restorecon -Rv /srv/samba/share1
其他资源
- 有关将 Samba 配置为独立服务器的详情,请参考 配置和使用网络文件服务 中的 使用 Samba 作为服务器 章节。
- 在 BIND 主服务器上建立转发区域。