6.4. 为集群中的 NFS 服务器配置资源和资源组
使用以下流程为集群中的 NFS 服务器配置集群资源。
如果您还没有为集群配置隔离设备,默认情况下资源不会启动。
如果您发现您配置的资源没有运行,您可以运行 pcs resource debug-start 资源
命令来测试资源配置。这会在集群控制之外启动服务。在配置的资源再次运行时,运行 pcs resource cleanup 资源
以使集群了解这些更新。
流程
以下步骤配置系统资源。为确保这些资源在同一节点上运行,它们已配置为资源组 nfsgroup
的一部分。资源将以您添加到组的顺序启动,并按照添加到组中的相反顺序停止。仅从集群的一个节点运行此步骤。
创建名为
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
检查集群的状态,以验证资源是否在运行。
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
为集群配置
Filesystem
资源。以下命令配置一个名为
nfsshare
的 XFSFilesystem
资源配置,来作为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
命令以查看完整配置选项。验证
my_lvm
和nfsshare
资源正在运行。[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
的nfsserver
资源,作为资源组nfsgroup
的一部分。注意nfsserver
资源允许您指定nfs_shared_infodir
参数,这是 NFS 服务器用于存储与 NFS 相关的有状态信息的目录。建议将此属性设置为您在这个导出集合中创建的
Filesystem 资源
的子目录。这样可确保 NFS 服务器将其有状态的信息存储在需要重新定位资源组时可供另一个节点使用的设备中。在这个示例中;-
/nfsshare
是由Filesystem
资源管理的共享存储目录 -
/nfsshare/exports/export1
和/nfsshare/exports/export2
是导出目录 -
/nfsshare/nfsinfo
是nfsserver
资源的共享信息目录
[root@z1 ~]# pcs resource create nfs-daemon nfsserver nfs_shared_infodir=/nfsshare/nfsinfo nfs_no_notify=true --group nfsgroup [root@z1 ~]# pcs status ...
-
添加
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
添加 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
添加
nfsnotify
资源,以便在整个 NFS 部署初始化后发送 NFSv3 重启通知。此资源是nfsgroup
资源组的一部分。注意为了正确处理 NFS 通知,浮动 IP 地址必须具有与其关联的主机名,在 NFS 服务器和 NFS 客户端中都一致。
[root@z1 ~]# pcs resource create nfs-notify nfsnotify source_host=192.168.122.200 --group nfsgroup
在创建资源和资源限制后,您可以检查集群的状态。请注意,所有资源都在同一个节点上运行。
[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 ...