第 6 章 在红帽高可用性集群中配置主动/被动模式的 NFS 服务器
红帽高可用性附加组件为在使用共享存储的 Red Hat Enterprise Linux High Availability Add-On 集群上运行高可用的主动/被动 NFS 服务器提供支持。在以下示例中,您要配置一个双节点集群,其中客户端通过浮动 IP 地址访问 NFS 文件系统。NFS 服务器运行在集群的两个节点之一上。如果运行 NFS 服务器的节点出现问题,则 NFS 服务器会在集群的第二个节点上再次启动,以实现服务中断的最小化。
这个用例需要您的系统包括以下组件:
- 一个双节点 Red Hat High Availability 集群,为每个节点配置了电源隔离功能。我们建议使用专用网络,但这不是必须的。此流程使用 使用 Pacemaker 创建红帽高可用性集群 中提供的集群示例。
- NFS 服务器需要的一个公共虚拟 IP 地址。
- 集群中节点的共享存储,使用 iSCSI、光纤或其他共享网络块设备。
在现有双节点 Red Hat Enterprise Linux High Availability 集群中配置高可用性的主动/被动 NFS 服务器需要执行以下步骤:
- 在共享存储上的 LVM 逻辑卷中为集群中的节点配置文件系统。
- 在 LVM 逻辑卷的共享存储中配置 NFS 共享。
- 创建集群资源。
- 测试您配置的 NFS 服务器。
6.1. 在 Pacemaker 集群中使用 XFS 文件系统配置一个 LVM 卷
使用以下流程在集群节点之间共享的存储上创建一个 LVM 逻辑卷。
LVM 卷以及集群节点使用的对应分区和设备必须只能连接到集群节点。
下面的流程创建了一个 LVM 逻辑卷,然后在该卷上创建一个 XFS 文件系统,以便在 Pacemaker 集群中使用。在这个示例中,使用共享分区 /dev/sdb1
来存储从中创建 LVM 逻辑卷的 LVM 物理卷。
流程
在集群的两个节点上,执行以下步骤将 LVM 系统 ID 的值设置为系统的
uname
标识符值。LVM 系统 ID 将用于确保只有集群可以激活卷组。将
/etc/lvm/lvm.conf
配置文件中的system_id_source
配置选项设置为uname
。# Configuration option global/system_id_source. system_id_source = "uname"
验证节点上的 LVM 系统 ID 是否与节点的
uname
匹配。# lvm systemid system ID: z1.example.com # uname -n z1.example.com
创建 LVM 卷并在该卷上创建一个 XFS 文件系统。由于
/dev/sdb1
分区是共享的存储,因此您仅在一个节点上执行这一部分的步骤。注意如果您的 LVM 卷组包含一个或多个远程块存储上的物理卷,如 iSCSI 目标,红帽建议您确保服务在 Pacemaker 启动之前启动。有关为 Pacemaker 集群使用的远程物理卷配置启动顺序的详情,请参考 为不由 Pacemaker 管理的资源依赖项配置启动顺序。
在分区
/dev/sdb1
上创建一个 LVM 物理卷。[root@z1 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
注意如果您的 LVM 卷组包含一个或多个远程块存储上的物理卷,如 iSCSI 目标,红帽建议您确保服务在 Pacemaker 启动之前启动。有关为 Pacemaker 集群使用的远程物理卷配置启动顺序的详情,请参考 为不由 Pacemaker 管理的资源依赖项配置启动顺序。
创建由物理卷
/dev/sdb1
组成的卷组my_vg
。对于 RHEL 8.5 及之后的版本,指定
--setautoactivation n
标志来确保集群中由 Pacemaker 管理的卷组在启动时不会自动激活。如果您要为正在创建的 LVM 卷使用现有卷组,您可以使用vgchange --setautoactivation n
命令为卷组重置此标记。[root@z1 ~]# vgcreate --setautoactivation n my_vg /dev/sdb1 Volume group "my_vg" successfully created
对于 RHEL 8.4 及更早版本,使用以下命令创建卷组:
[root@z1 ~]# vgcreate my_vg /dev/sdb1 Volume group "my_vg" successfully created
有关确保集群中 Pacemaker 管理的卷组不会在启动 RHEL 8.4 及更早版本时自动激活的信息,请参阅 确保卷组在多个集群节点上不被激活。
确认新卷组带有您要运行的节点的系统 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
使用卷组
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 ...
在逻辑卷
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 ...
(RHEL 8.5 及更高版本)如果您通过在
lvm.conf
文件中设置use_devicesfile = 1
来启用设备文件的使用,请将共享设备添加到集群中第二个节点上的设备文件中。默认情况下,不启用设备文件的使用。[root@z2 ~]# lvmdevices --adddev /dev/sdb1