第 6 章 在红帽高可用性集群中配置主动/被动模式的 NFS 服务器

红帽高可用性附加组件为在使用共享存储的 Red Hat Enterprise Linux 高可用性附加组件集群上运行高可用的主动/被动 NFS 服务器提供了支持。在以下示例中,您要配置一个双节点集群,其中客户端通过浮动 IP 地址访问 NFS 文件系统。NFS 服务器运行在集群中两个节点中的一个上。如果运行 NFS 服务器的节点出现问题,则 NFS 服务器会在集群的第二个节点上再次启动,以实现服务中断的最小化。

这个用例需要您的系统包括以下组件:

  • 一个双节点 Red Hat High Availability 集群,为每个节点配置了电源隔离功能。我们建议使用专用网络,但这不是必须的。此流程使用了创建带有 Pacemaker 的 Red Hat High-Availability 集群中提供的集群示例。
  • NFS 服务器需要的一个公共虚拟 IP 地址。
  • 集群中节点的共享存储,使用 iSCSI、光纤或其他共享网络块设备。

在现有双节点 Red Hat Enterprise Linux High Availability 集群中配置高可用性的主动/被动 NFS 服务器需要执行以下步骤:

  1. 在共享存储的 LVM 逻辑卷中为集群中的节点配置文件系统。
  2. 在 LVM 逻辑卷的共享存储中配置 NFS 共享。
  3. 创建集群资源。
  4. 测试您配置的 NFS 服务器。

6.1. 在 Pacemaker 集群中配置具有 XFS 文件系统的 LVM 卷

使用以下流程在集群的节点之间共享的存储上创建一个 LVM 逻辑卷。

注意

LVM 卷以及集群节点使用的对应分区和设备必须只能连接到集群节点。

下面的流程创建了一个 LVM 逻辑卷,然后在那个卷上创建了一个 XFS 文件系统,以便在 Pacemaker 集群中使用。在这个示例中,使用共享分区 /dev/sdb1 来存储创建 LVM 逻辑卷的 LVM 物理卷。

步骤

  1. 在集群的两个节点中,执行以下步骤将 LVM 系统 ID 的值设置为系统的 uname 标识符值。LVM 系统 ID 将用于确保只有集群可以激活卷组。

    1. /etc/lvm/lvm.conf 配置文件中的 system_id_source 配置选项设置为 uname

      # Configuration option global/system_id_source.
      system_id_source = "uname"
    2. 验证节点上的 LVM 系统 ID 是否与节点的 uname 匹配。

      # lvm systemid
        system ID: z1.example.com
      # uname -n
        z1.example.com
  2. 创建 LVM 卷,并在那个卷上创建一个 XFS 文件系统。由于 /dev/sdb1 分区是共享的存储,因此您只在一个节点中执行这个操作过程。

    注意

    如果您的 LVM 卷组包含一个或多个位于远程块存储(如 iSCSI 目标)上的物理卷,则红帽建议您确保服务在 Pacemaker 启动之前启动。有关为 Pacemaker 集群使用的远程物理卷配置启动顺序的详情,请参考 为不由 Pacemaker 管理的资源依赖项配置启动顺序

    1. 在分区 /dev/sdb1 上创建一个 LVM 物理卷。

      [root@z1 ~]# pvcreate /dev/sdb1
        Physical volume "/dev/sdb1" successfully created
      注意

      如果您的 LVM 卷组包含一个或多个位于远程块存储(如 iSCSI 目标)上的物理卷,则红帽建议您确保服务在 Pacemaker 启动之前启动。有关为 Pacemaker 集群使用的远程物理卷配置启动顺序的详情,请参考 为不由 Pacemaker 管理的资源依赖项配置启动顺序

    2. 创建由物理卷 /dev/sdb1 组成的卷组 my_vg

      指定 --setautoactivation n 标志,以确保集群中 Pacemaker 管理的卷组在启动时不会自动激活。如果您要为要创建的 LVM 卷使用现有卷组,您可以使用 vgchange --setautoactivation n 命令为卷组重置此标记。

      [root@z1 ~]# vgcreate --setautoactivation n my_vg /dev/sdb1
        Volume group "my_vg" successfully created
    3. 确认新卷组带有您要运行的节点的系统 ID,并从这个节点中创建卷组。

      [root@z1 ~]# vgs -o+systemid
        VG    #PV #LV #SN Attr   VSize  VFree  System ID
        my_vg   1   0   0 wz--n- <1.82t <1.82t z1.example.com
    4. 使用卷组 my_vg 创建逻辑卷。

      [root@z1 ~]# lvcreate -L450 -n my_lv my_vg
        Rounding up size to full physical extent 452.00 MiB
        Logical volume "my_lv" created

      您可以使用 lvs 命令显示逻辑卷。

      [root@z1 ~]# lvs
        LV      VG      Attr      LSize   Pool Origin Data%  Move Log Copy%  Convert
        my_lv   my_vg   -wi-a---- 452.00m
        ...
    5. 在逻辑卷 my_lv 上创建 XFS 文件系统。

      [root@z1 ~]# mkfs.xfs /dev/my_vg/my_lv
      meta-data=/dev/my_vg/my_lv       isize=512    agcount=4, agsize=28928 blks
               =                       sectsz=512   attr=2, projid32bit=1
      ...
  3. 如果设备文件的使用是通过 lvm.conf 文件中的 use_devicesfile = 1 参数启用的,请将共享设备添加到集群中第二个节点上的设备文件中。此功能默认为启用。

    [root@z2 ~]# lvmdevices --adddev /dev/sdb1