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 主服务器上设置一个转发区域。