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

使用以下流程为集群中的 NFS 服务器配置集群资源。

注意

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

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

步骤

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

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

    警告

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

    [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-activate):   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 的 XFS Filesystem 资源配置为 nfsgroup 资源组的一部分。这个文件系统使用您在 配置具有 XFS 文件系统的 LVM 卷 中创建的 LVM 卷组和 XFS 文件系统,并将挂载到您在 配置 NFS 共享 中创建的 /nfsshare 目录上。

    [root@z1 ~]# pcs resource create nfsshare Filesystem device=/dev/my_vg/my_lv directory=/nfsshare fstype=xfs --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-activate):   Started z1.example.com
         nfsshare   (ocf::heartbeat:Filesystem):    Started z1.example.com
    ...
  5. 创建名为 nfs-daemonnfsserver 资源,作为资源组 nfsgroup 的一部分。

    注意

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

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

    • /nfsshare 是由 Filesystem 资源管理的 shared-storage 目录
    • /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-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
    ...