5.3. 创建资源和资源组
使用以下流程为集群创建资源。为确保这些资源在同一节点上运行,它们都配置为资源组 apachegroup
的一部分。要创建的资源如下,按其启动顺序列出。
-
名为
my_lvm
的LVM-activate
资源使用您在 配置具有 XFS 文件系统的 LVM 卷 时创建的 LVM 卷组。 -
名为
my_fs
的Filesystem
资源,它使用您在 配置具有 XFS 文件系统的 LVM 卷 时创建的文件系统设备/dev/my_vg/my_lv
。 -
IPaddr2
资源,它是apachegroup
资源组的浮动 IP 地址。IP 地址不能是一个已经与物理节点关联的 IP 地址。如果没有指定IPaddr2
资源的 NIC 设备,浮动 IP 必须与节点静态分配的 IP 地址之一位于同一个网络中,否则无法正确检测到分配浮动 IP 地址的 NIC 设备。 -
名为
website
的apache
资源,它使用index.html
文件和您在配置 Apache HTTP 服务器中定义的 Apache 配置。
以下流程创建资源组 apachegroup
以及组包含的资源。资源将以您添加到组的顺序启动,并按照添加到组中的相反顺序停止。仅从集群的一个节点运行此步骤。
步骤
以下命令创建
LVM-activate
资源my_lvm
。由于资源组apachegroup
尚不存在,这个命令会创建资源组。注意不要配置多于一个的在主动/被动 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 apachegroup
当您创建资源时,会自动启动该资源。您可以使用以下命令确认资源已创建并启动。
# pcs resource status Resource Group: apachegroup my_lvm (ocf::heartbeat:LVM-activate): Started
您可以使用
pcs resource disable
和pcs resource enable
命令手动停止和启动单独的资源。以下命令为配置创建剩余的资源,将它们添加到现有资源组
apachegroup
中。[root@z1 ~]# pcs resource create my_fs Filesystem device="/dev/my_vg/my_lv" directory="/var/www" fstype="xfs" --group apachegroup [root@z1 ~]# pcs resource create VirtualIP IPaddr2 ip=198.51.100.3 cidr_netmask=24 --group apachegroup [root@z1 ~]# pcs resource create Website apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group apachegroup
创建资源和包含这些资源的资源组后,您可以检查集群的状态。请注意,所有四个资源都在同一个节点上运行。
[root@z1 ~]# pcs status Cluster name: my_cluster Last updated: Wed Jul 31 16:38:51 2013 Last change: Wed Jul 31 16:42:14 2013 via crm_attribute on z1.example.com Stack: corosync Current DC: z2.example.com (2) - partition with quorum Version: 1.1.10-5.el7-9abe687 2 Nodes configured 6 Resources configured Online: [ z1.example.com z2.example.com ] Full list of resources: myapc (stonith:fence_apc_snmp): Started z1.example.com Resource Group: apachegroup my_lvm (ocf::heartbeat:LVM-activate): Started z1.example.com my_fs (ocf::heartbeat:Filesystem): Started z1.example.com VirtualIP (ocf::heartbeat:IPaddr2): Started z1.example.com Website (ocf::heartbeat:apache): Started z1.example.com
请注意,如果您还没有为集群配置隔离设备,默认情况下资源不会启动。
当集群启动并运行后,您可以将浏览器指向定义为
IPaddr2
资源,查看示例显示,包括一个简单的单词 "Hello"。Hello
如果发现您配置的资源没有运行,您可以运行
pcs resource debug-start resource
命令来测试资源配置。当您使用
apache
资源代理来管理 Apache 时,它不会使用systemd
。因此,您必须编辑 Apache 提供的logrotate
脚本,使其不使用systemctl
重新加载 Apache。在集群中的每个节点上删除
/etc/logrotate.d/httpd
文件中的以下行:/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
使用以下三行替换您删除的行,将
/var/run/httpd-website.pid
指定为 PID 文件路径,其中 website 是 Apache 资源的名称。在本例中,Apache 资源名称是Website
。/usr/bin/test -f /var/run/httpd-Website.pid >/dev/null 2>/dev/null && /usr/bin/ps -q $(/usr/bin/cat /var/run/httpd-Website.pid) >/dev/null 2>/dev/null && /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -c "PidFile /var/run/httpd-Website.pid" -k graceful > /dev/null 2>/dev/null || true