Red Hat Training

A Red Hat training course is available for RHEL 8

8.2. 在高可用性集群中配置 Samba

要在 Pacemaker 集群中配置 Samba 服务,请在集群中的所有节点上配置该服务。

先决条件

  • 配置具有 GFS2 文件系统的双节点红帽高可用性集群,如 在高可用性集群中为 Samba 服务配置 GFS2 文件系统 中所述。
  • 在 GFS2 文件系统上创建的一个公共目录用于 Samba 共享。在本例中,目录为 /srv/samba/share1
  • 用于访问此集群导出的 Samba 共享的公共虚拟 IP 地址。

流程

  1. 在集群的两个节点上,配置 Samba 服务,并设置共享定义:

    1. 安装 Samba 和 ctdb 软件包。

      # dnf -y install samba ctdb cifs-utils samba-winbind
    2. 确保 ctdbsmbnmbwinbind 服务没有运行,且不会在引导时启动。

      # systemctl disable --now ctdb smb nmb winbind
    3. /etc/samba/smb.conf 文件中,配置 Samba 服务并设置共享定义,如下面具有一个共享的独立服务器的示例:

      [global]
          netbios name = linuxserver
          workgroup = WORKGROUP
          security = user
          clustering = yes
      [share1]
          path = /srv/samba/share1
          read only = no
    4. 验证 /etc/samba/smb.conf 文件。

      # testparm
  2. 在集群的两个节点上配置 CTDB:

    1. 创建 /etc/ctdb/nodes 文件,并添加集群节点的 IP 地址,如示例节点文件中所示。

      192.0.2.11
      192.0.2.12
    2. 创建 /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 将客户端分发到集群的不同节点上。

    3. 如果您正在运行 firewalld 服务,请启用 ctdbsamba 服务所需的端口。

      # firewall-cmd --add-service=ctdb --add-service=samba --permanent
      # firewall-cmd --reload
  3. 在集群的一个节点上,更新 SELinux 上下文:

    1. 更新 GFS2 共享上的 SELinux 上下文。

      [root@z1 ~]# semanage fcontext -at ctdbd_var_run_t -s system_u "/mnt/ctdb(/.)?"
      [root@z1 ~]# restorecon -Rv /mnt/ctdb
    2. 更新 Samba 共享的目录上的 SELinux 上下文。

      [root@z1 ~]# semanage fcontext -at samba_share_t -s system_u "/srv/samba/share1(/.)?"
      [root@z1 ~]# restorecon -Rv /srv/samba/share1

其它资源