第 8 章 在红帽高可用性集群中配置主动/主动 Samba 服务器


红帽高可用性附加组件为在主动/主动集群配置中配置 Samba 提供支持。在以下示例中,您要在双节点 RHEL 集群上配置一个主动/主动 Samba 服务器。

有关 Samba 的支持政策的详情,请参考红帽客户门户网站上的 RHEL 高可用性的支持策略 - ctdb 通用策略RHEL 弹性存储的支持策略 - 通过其他协议导出 gfs2 内容

要在主动/主动集群中配置 Samba:

  1. 配置 GFS2 文件系统及其关联的集群资源。
  2. 在集群节点上配置 Samba。
  3. 配置 Samba 集群资源。
  4. 测试您配置的 Samba 服务器。

8.1. 为高可用性集群中的 Samba 服务配置 GFS2 文件系统

在 Pacemaker 集群中配置主动/主动 Samba 服务前,请为集群配置 GFS2 文件系统。

先决条件

  • 为每个节点配置了隔离功能的双节点红帽高可用性集群
  • 每个集群节点可用的共享存储
  • 每个集群节点的 AppStream 渠道和弹性存储渠道的订阅

有关创建 Pacemaker 集群并为集群配置隔离的详情,请参考 使用 Pacemaker 创建红帽高可用性集群

步骤

  1. 在集群的两个节点上都执行以下初始设置步骤。

    1. 为与您的系统架构对应的弹性存储启用存储库。例如,要为 x86_64 系统启用弹性存储存储库,请输入以下 subscription-manager 命令:

      # subscription-manager repos --enable=rhel-9-for-x86_64-resilientstorage-rpms

      弹性存储存储库是高可用性存储库的超集。如果启用了弹性存储存储库,则不需要启用高可用性存储库。

    2. 安装 lvm2-lockdgfs2-utilsdlm 软件包。

      # yum install lvm2-lockd gfs2-utils dlm
    3. /etc/lvm/lvm.conf 文件中的 use_lvmlockd 配置选项设为 use_lvmlockd=1

      ...
      
      use_lvmlockd = 1
      
      ...
  2. 在集群中的一个节点上,将全局 Pacemaker 参数 no-quorum-policy 设为 freeze

    注意

    默认情况下,将 no-quorum-policy 的值设置为 stop,表示一旦仲裁丢失,剩余分区上的所有资源都会立即停止。通常,这个默认行为是最安全、最优的选项,但与大多数资源不同,GFS2 要求使用 quorum 才可以正常工作。当使用 GFS2 挂载的应用程序和 GFS2 挂载都丢失时,就无法正确停止 GFS2 挂载。任何在没有 quorum 的情况下停止这些资源的尝试都会失败,并最终会在每次 quorum 都丢失时保护整个集群。

    要解决这个问题,请在使用 GFS2 时将 no-quorum-policy 设置为 freeze。这意味着,当 quorum 丢失时,剩余的分区将不会进行任何操作,直到 quorum 功能被恢复。

    [root@z1 ~]# pcs property set no-quorum-policy=freeze
  3. 设置 dlm 资源。这是在集群中配置 GFS2 文件系统所需的依赖软件包。这个示例创建 dlm 资源作为名为 locking 的资源组的一部分。如果您之前没有为集群配置隔离,则此步骤会失败,pcs status 命令显示资源失败信息。

    [root@z1 ~]# pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fence
  4. 克隆 locking 资源组,以便资源组可以在集群的两个节点上都活跃。

    [root@z1 ~]# pcs resource clone locking interleave=true
  5. 建立 lvmlockd 资源,来作为 locking 资源组的一部分。

    [root@z1 ~]# pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
  6. 在共享设备 /dev/vdb 上创建物理卷和共享卷组。这个示例创建共享卷组 csmb_vg

    [root@z1 ~]# pvcreate /dev/vdb
    [root@z1 ~]# vgcreate -Ay --shared csmb_vg /dev/vdb
    Volume group "csmb_vg" successfully created
    VG csmb_vg starting dlm lockspace
    Starting locking.  Waiting until locks are ready
  7. 在集群中的第二个节点上:
  8. 如果设备文件的使用是通过 lvm.conf 文件中的 use_devicesfile = 1 参数启用的,请将共享设备添加到集群中第二个节点上的设备文件中。此功能默认为启用。

    [root@z2 ~]# lvmdevices --adddev /dev/vdb
    1. 为共享卷组启动锁管理器。

      [root@z2 ~]# vgchange --lockstart csmb_vg
        VG csmb_vg starting dlm lockspace
        Starting locking.  Waiting until locks are ready...
  9. 在集群中的一个节点上,创建一个逻辑卷并使用 GFS2 文件系统格式化卷,该文件系统将被 CTDB 专门用于内部锁定。即使部署导出多个共享,集群中只需要一个这样的文件系统。

    当使用 mkfs.gfs2 命令的 -t 选项指定锁表名称时,请确保您指定的 clustername:filesystemname 的第一个组件与集群名称匹配。在本例中,集群名称为 my_cluster

    [root@z1 ~]# lvcreate -L1G -n ctdb_lv csmb_vg
    [root@z1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t my_cluster:ctdb /dev/csmb_vg/ctdb_lv
  10. 为每个通过 Samba 共享的 GFS2 文件系统创建一个逻辑卷,并使用 GFS2 文件系统格式化卷。这个示例创建了一个 GFS2 文件系统和 Samba 共享,但您可以创建多个文件系统和共享。

    [root@z1 ~]# lvcreate -L50G -n csmb_lv1 csmb_vg
    [root@z1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t my_cluster:csmb1 /dev/csmb_vg/csmb_lv1
  11. 建立 LVM_Activate 资源,以确保所需的共享卷被激活。这个示例创建 LVM_Activate 资源,来作为资源组 shared_vg 的一部分,然后克隆该资源组,使其在集群中的所有节点上运行。

    将资源创建为禁用,以便它们在已配置的必要的顺序约束前不自动启动。

    [root@z1 ~]# pcs resource create --disabled --group shared_vg ctdb_lv ocf:heartbeat:LVM-activate lvname=ctdb_lv vgname=csmb_vg activation_mode=shared vg_access_mode=lvmlockd
    [root@z1 ~]# pcs resource create --disabled --group shared_vg csmb_lv1 ocf:heartbeat:LVM-activate lvname=csmb_lv1 vgname=csmb_vg activation_mode=shared vg_access_mode=lvmlockd
    [root@z1 ~]# pcs resource clone shared_vg interleave=true
  12. 配置排序约束,以在 shared_vg 资源组的成员之前启动 locking 资源组的所有成员。

    [root@z1 ~]# pcs constraint order start locking-clone then shared_vg-clone
    Adding locking-clone shared_vg-clone (kind: Mandatory) (Options: first-action=start then-action=start)
  13. 启用 LVM-activate 资源。

    [root@z1 ~]# pcs resource enable ctdb_lv csmb_lv1
  14. 在集群的一个节点上,执行以下步骤来创建您需要的 Filesystem 资源。

    1. 使用之前在 LVM 卷上配置的 GFS2 文件系统将 Filesystem 资源创建为克隆的资源。这将配置 Pacemaker ,以挂载和管理文件系统。

      注意

      您不应该将文件系统添加到 /etc/fstab 文件,因为它将作为 Pacemaker 集群资源进行管理。您可以使用 options=options 将挂载选项指定为资源配置的一部分。运行 pcs resource describe Filesystem 命令显示完整的配置选项。

      [root@z1 ~]# pcs resource create ctdb_fs Filesystem device="/dev/csmb_vg/ctdb_lv" directory="/mnt/ctdb" fstype="gfs2" op monitor interval=10s on-fail=fence clone interleave=true
      [root@z1 ~]# pcs resource create csmb_fs1 Filesystem device="/dev/csmb_vg/csmb_lv1" directory="/srv/samba/share1" fstype="gfs2" op monitor interval=10s on-fail=fence clone interleave=true
    2. 配置排序约束,以确保 Pacemaker 在共享卷组 shared_vg 启动后挂载文件系统。

      [root@z1 ~]# pcs constraint order start shared_vg-clone then ctdb_fs-clone
      Adding shared_vg-clone ctdb_fs-clone (kind: Mandatory) (Options: first-action=start then-action=start)
      [root@z1 ~]# pcs constraint order start shared_vg-clone then csmb_fs1-clone
      Adding shared_vg-clone csmb_fs1-clone (kind: Mandatory) (Options: first-action=start then-action=start)
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.