Red Hat Training

A Red Hat training course is available for RHEL 8

6.4. 为集群中的 NFS 服务器配置资源和资源组

此流程为集群中的 NFS 服务器配置集群资源。

注意

如果您还没有为集群配置隔离设备,默认情况下资源不会启动。

如果您发现您配置的资源没有运行,您可以运行 pcs resource debug-start 资源 命令来测试资源配置。这会在集群控制之外启动服务。在配置的资源再次运行时,运行 pcs resource cleanup 资源 以使集群了解这些更新。

流程

以下步骤配置系统资源。为确保这些资源在同一节点上运行,它们已配置为资源组 nfsgroup 的一部分。资源将以您添加到组的顺序启动,并按照添加到组中的相反顺序停止。仅从集群的一个节点运行此步骤。

  1. 创建名为 my_lvm 的 LVM 激活资源。由于 nfsgroup 资源组尚不存在,这个命令会创建资源组。

    警告

    不要配置多个在主动/被动 HA 配置中使用相同 LVM 卷组的 LVM 激活资源,因为这可能导致数据崩溃。另外,不要在主动/被动 HA 配置中将 LVM 激活的资源配置为 克隆资源。

    [root@z1 ~]# pcs resource create my_lvm ocf:heartbeat:LVM-activate vgname=my_vg vg_access_mode=system_id --group nfsgroup
  2. 检查集群的状态,以验证资源是否在运行。

    root@z1 ~]#  pcs status
    Cluster name: my_cluster
    Last updated: Thu Jan  8 11:13:17 2015
    Last change: Thu Jan  8 11:13:08 2015
    Stack: corosync
    Current DC: z2.example.com (2) - partition with quorum
    Version: 1.1.12-a14efad
    2 Nodes configured
    3 Resources configured
    
    Online: [ z1.example.com z2.example.com ]
    
    Full list of resources:
     myapc  (stonith:fence_apc_snmp):       Started z1.example.com
     Resource Group: nfsgroup
         my_lvm     (ocf::heartbeat:LVM):   Started z1.example.com
    
    PCSD Status:
      z1.example.com: Online
      z2.example.com: Online
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled
  3. 为集群配置 Filesystem 资源。

    以下命令将名为 nfsshare 的 ext4 Filesystem 资源配置为 nfsgroup 资源组 的一部分。这个文件系统使用您在 配置带有 ext4 文件系统的 LVM 卷时创建的 LVM 卷组和 ext4 文件系统,并将挂载到您在 配置 NFS 共享 中创建的 /nfsshare 目录。

    [root@z1 ~]# pcs resource create nfsshare Filesystem \
    device=/dev/my_vg/my_lv directory=/nfsshare \
    fstype=ext4 --group nfsgroup

    您可以使用 options =options 参数指定挂载选项作为 Filesystem 资源的资源配置的一部分。运行 pcs resource describe Filesystem 命令以查看完整配置选项。

  4. 验证 my_lvmnfsshare 资源正在运行。

    [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):   Started z1.example.com
         nfsshare   (ocf::heartbeat:Filesystem):    Started z1.example.com
    ...
  5. 创建名为 nfs -daemon 的 nfs server 资源,作为 nfsgroup 资源组 的一部分。

    注意

    nfsserver 资源允许您指定 nfs_shared_infodir 参数,这是 NFS 服务器用于存储与 NFS 相关的有状态信息的目录。

    建议将此属性设置为您在这个导出集合中创建的 Filesystem 资源 的子目录。这样可确保 NFS 服务器将其有状态的信息存储在需要重新定位资源组时可供另一个节点使用的设备中。在这个示例中;

    • /nfsshare 是由 Filesystem 资源管理的共享存储目录
    • /nfsshare/exports/export1/nfsshare/exports/export2 是导出目录
    • /nfsshare/nfsinfonfsserver 资源的共享信息目录
    [root@z1 ~]# pcs resource create nfs-daemon nfsserver \
    nfs_shared_infodir=/nfsshare/nfsinfo nfs_no_notify=true \
    --group nfsgroup
    
    [root@z1 ~]# pcs status
    ...
  6. 添加 exportfs 资源以导出 /nfsshare/exports 目录。这些资源是 nfsgroup 资源组的一部分。这为 NFSv4 客户端构建了一个虚拟目录。NFSv3 客户端也可以访问这些导出。

    注意

    只有在您想要为 NFSv4 客户端创建虚拟目录时才需要 fsid=0 选项。如需更多信息,请参阅如何在 NFS 服务器的 /etc/exports 文件中配置 fsid 选项?

    [root@z1 ~]# pcs resource create nfs-root exportfs \
    clientspec=192.168.122.0/255.255.255.0 \
    options=rw,sync,no_root_squash \
    directory=/nfsshare/exports \
    fsid=0 --group nfsgroup
    
    [root@z1 ~]# # pcs resource create nfs-export1 exportfs \
    clientspec=192.168.122.0/255.255.255.0 \
    options=rw,sync,no_root_squash directory=/nfsshare/exports/export1 \
    fsid=1 --group nfsgroup
    
    [root@z1 ~]# # pcs resource create nfs-export2 exportfs \
    clientspec=192.168.122.0/255.255.255.0 \
    options=rw,sync,no_root_squash directory=/nfsshare/exports/export2 \
    fsid=2 --group nfsgroup
  7. 添加 NFS 客户端用来访问 NFS 共享的浮动 IP 地址资源。此资源是 nfsgroup 资源组的一部分。在本示例部署中,我们使用 192.168.122.200 作为浮动 IP 地址。

    [root@z1 ~]# pcs resource create nfs_ip IPaddr2 \
    ip=192.168.122.200 cidr_netmask=24 --group nfsgroup
  8. 添加 nfsnotify 资源,以便在整个 NFS 部署初始化后发送 NFSv3 重启通知。此资源是 nfsgroup 资源组的一部分。

    注意

    为了正确处理 NFS 通知,浮动 IP 地址必须具有与其关联的主机名,在 NFS 服务器和 NFS 客户端中都一致。

    [root@z1 ~]# pcs resource create nfs-notify nfsnotify \
    source_host=192.168.122.200 --group nfsgroup
  9. 在创建资源和资源限制后,您可以检查集群的状态。请注意,所有资源都在同一个节点上运行。

    [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):   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
    ...