6.4. 测试 NFS 资源配置

您可以按照以下步骤在高可用性集群中验证您的 NFS 资源配置。您应该可以使用 NFSv3 或 NFSv4 挂载导出的文件系统。

6.4.1. 测试 NFS 导出

  1. 如果您在集群节点上运行 firewalld 守护进程,请确保在所有节点上都启用了 NFS 访问所需的端口。
  2. 在与部署位于同一个网络中的、位于集群以外的一个节点中,通过挂载 NFS 共享来确定 NFS 共享。在本例中,我们使用 192.168.122.0/24 网络。

    # showmount -e 192.168.122.200
    Export list for 192.168.122.200:
    /nfsshare/exports/export1 192.168.122.0/255.255.255.0
    /nfsshare/exports         192.168.122.0/255.255.255.0
    /nfsshare/exports/export2 192.168.122.0/255.255.255.0
  3. 要验证您可以用 NFSv4 挂载 NFS 共享,将 NFS 共享挂载到客户端节点的目录中。挂载后,请确定导出目录的内容是可见的。测试后卸载共享。

    # mkdir nfsshare
    # mount -o "vers=4" 192.168.122.200:export1 nfsshare
    # ls nfsshare
    clientdatafile1
    # umount nfsshare
  4. 确定您可以用 NFSv3 挂载 NFS 共享。挂载后,验证测试文件 clientdatafile1 可见。和 NFSv4 不同,因为 NFSv3 不使用虚拟文件系统,所以您必须挂载一个特定的导出。测试后卸载共享。

    # mkdir nfsshare
    # mount -o "vers=3" 192.168.122.200:/nfsshare/exports/export2 nfsshare
    # ls nfsshare
    clientdatafile2
    # umount nfsshare

6.4.2. 测试故障转移

  1. 在集群外的节点上挂载 NFS 共享,并验证访问您在配置 NFS 共享中创建的 clientdatafile1 文件。

    # mkdir nfsshare
    # mount -o "vers=4" 192.168.122.200:export1 nfsshare
    # ls nfsshare
    clientdatafile1
  2. 在集群的一个节点中,确定集群中的哪个节点正在运行 nfsgroup。在本例中,nfsgroupz1.example.com 上运行。

    [root@z1 ~]# pcs status
    ...
    Full list of resources:
     myapc  (stonith:fence_apc_snmp):       Started z1.example.com
     Resource Group: nfsgroup
         my_lvm     (ocf::heartbeat:LVM-activate):   Started z1.example.com
         nfsshare   (ocf::heartbeat:Filesystem):    Started z1.example.com
         nfs-daemon (ocf::heartbeat:nfsserver):     Started z1.example.com
         nfs-root   (ocf::heartbeat:exportfs):      Started z1.example.com
         nfs-export1        (ocf::heartbeat:exportfs):      Started z1.example.com
         nfs-export2        (ocf::heartbeat:exportfs):      Started z1.example.com
         nfs_ip     (ocf::heartbeat:IPaddr2):       Started  z1.example.com
         nfs-notify (ocf::heartbeat:nfsnotify):     Started z1.example.com
    ...
  3. 在集群的一个节点中,将运行 nfsgroup 的节点设置为待机模式。

    [root@z1 ~]# pcs node standby z1.example.com
  4. 验证 nfsgroup 是否在其他集群节点上成功启动。

    [root@z1 ~]# pcs status
    ...
    Full list of resources:
     Resource Group: nfsgroup
         my_lvm     (ocf::heartbeat:LVM-activate):   Started z2.example.com
         nfsshare   (ocf::heartbeat:Filesystem):    Started z2.example.com
         nfs-daemon (ocf::heartbeat:nfsserver):     Started z2.example.com
         nfs-root   (ocf::heartbeat:exportfs):      Started z2.example.com
         nfs-export1        (ocf::heartbeat:exportfs):      Started z2.example.com
         nfs-export2        (ocf::heartbeat:exportfs):      Started z2.example.com
         nfs_ip     (ocf::heartbeat:IPaddr2):       Started  z2.example.com
         nfs-notify (ocf::heartbeat:nfsnotify):     Started z2.example.com
    ...
  5. 在您挂载了 NFS 共享的集群之外的节点中,确认这个外部节点仍然可以访问 NFS 挂载中的测试文件。

    # ls nfsshare
    clientdatafile1

    在故障转移的过程中,服务可能会在短暂时间内不可用,但可以在没有用户干预的情况下恢复。默认情况下,使用 NFSv4 的客户端可能最多需要 90 秒恢复该挂载。这个 90 秒代表服务器启动时观察到的 NFSv4 文件租期的宽限期。NFSv3 客户端应该在几秒钟内就可以恢复对该挂载的访问。

  6. 从集群中的一个节点中,将最初运行 nfsgroup 的节点从待机模式中删除。

    注意

    standby 模式中删除节点不会自动导致资源恢复到该节点。这将依赖于 resource-stickiness 的值。有关 resource-stickiness 元属性的详情,请参考 配置资源以首选其当前节点

    [root@z1 ~]# pcs node unstandby z1.example.com