3.5. 配置集群资源
本节提供了为这个用例配置集群资源的步骤。
注意
建议您使用 pcs resource create 创建集群资源时,请立即执行 pcs status 命令验证资源是否正在运行。请注意,如果您还没有如所述为集群配置隔离设备 第 1.3 节 “隔离配置”,默认情况下资源不会启动。
如果发现您配置的资源没有运行,您可以运行 pcs resource debug-start resource 命令来测试资源配置。这会在集群控制之外启动服务。当配置的资源再次运行时,运行 pcs resource cleanup resource 使集群了解更新。有关 pcs resource debug-start 命令的详情请参考 高可用性附加组件参考手册。
以下步骤配置系统资源。为确保这些资源在同一节点上运行,它们都配置为资源组
nfsgroup
的一部分。资源将以您添加到组的顺序启动,并按照添加到组中的相反顺序停止。仅从集群的一个节点运行此步骤。
- 以下命令创建名为
my_lvm
的 LVM 资源。这个命令指定exclusive=true
参数以确保只有集群可以激活 LVM 逻辑卷。由于资源组nfsgroup
尚不存在,这个命令会创建资源组。[root@z1 ~]#
pcs resource create my_lvm LVM volgrpname=my_vg
\exclusive=true --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): 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
资源。注意您可以使用options=options
参数指定挂载选项作为Filesystem
资源资源配置的一部分。运行 pcs resource describe Filesystem 命令获取完整配置选项。以下命令将名为nfsshare
的 ext4Filesystem
资源配置为nfsgroup
资源组的一部分。这个文件系统使用您在中创建的 LVM 卷组和 ext4 文件系统, 第 3.2 节 “使用 ext4 文件系统配置 LVM 卷” 并将挂载到您创建的/nfsshare
目录中 第 3.3 节 “NFS 共享设置”。[root@z1 ~]#
pcs resource create nfsshare Filesystem
\device=/dev/my_vg/my_lv directory=/nfsshare
\fstype=ext4 --group nfsgroup
检查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): Started z1.example.com nfsshare (ocf::heartbeat:Filesystem): Started z1.example.com ... - 创建资源组
nfsgroup
的名为nfs-daemon
的nfsserver
资源。注意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 客户端也可以访问这些导出。[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 地址资源。您指定的浮动 IP 地址需要反向 DNS 查找,或者必须在集群中所有节点上的
/etc/hosts
中指定。这个资源是资源组nfsgroup
的一部分。在本示例部署中,我们使用 192.168.122.200 作为浮动 IP 地址。[root@z1 ~]#
pcs resource create nfs_ip IPaddr2
\ip=192.168.122.200 cidr_netmask=24 --group nfsgroup
- 在完成整个 NFS 部署后,添加用于发送 NFSv3 重启通知的
nfsnotify
资源。这个资源是资源组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): 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
...