5.4. 创建资源和资源组
使用以下流程为集群创建资源。为确保这些资源在同一节点上运行,它们已配置为资源组 apachegroup
的一部分。要创建的资源如下,按其启动顺序列出。
-
一个名为
my_lvm
的使用您在 配置一个带有 XFS 文件系统的 LVM 卷 时创建的LVM-activate
资源。 -
一个名为
my_fs
的使用您在 配置一个带有 XFS 文件系统的 LVM 卷 时创建的文件系统设备/dev/my_vg/my_lv
的Filesystem
资源。 -
IPaddr2
资源,它是apachegroup
资源组的浮动 IP 地址。IP 地址不能是一个已经与物理节点关联的 IP 地址。如果没有指定IPaddr2
资源的 NIC 设备,浮动 IP 必须与节点静态分配的 IP 地址之一位于同一个网络中,否则无法正确检测到分配浮动 IP 地址的 NIC 设备。 -
名为
Website
的apache
资源使用您在 配置 Apache HTTP 服务器 中定义的index.html
文件和 Apache 配置。
以下步骤创建资源组 apachegroup
以及该组包含的资源:资源将以您添加到组的顺序启动,并按照添加到组中的相反顺序停止。仅从集群的一个节点运行此步骤。
流程
以下命令创建
LVM-activate
资源my_lvm
。由于资源组apachegroup
尚不存在,此命令会创建资源组。注意不要配置多个在主动/被动 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 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
请注意,如果您还没有为集群配置隔离设备,默认情况下资源不会启动。
集群启动并运行后,您可以将浏览器指向定义为 IP
addr2 资源的 IP 地址
,以查看示例显示,包括简单单词"Hello"。Hello
如果您发现您配置的资源没有运行,您可以运行
pcs resource debug-start 资源
命令来测试资源配置。当您使用
apache
资源代理来管理 Apache 时,它不使用systemd
。因此,您必须编辑 Apache 提供的logrotate
脚本,使其不使用systemctl
重新加载 Apache。删除群集中每个节点的
/etc/logrotate.d/httpd
文件中的以下行:/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
对于 RHEL 8.6 及之后的版本,将您删除的行替换为以下三个行,将
/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
对于 RHEL 8.5 及更早版本,将您删除的行替换为以下三行:
/usr/bin/test -f /run/httpd.pid >/dev/null 2>/dev/null && /usr/bin/ps -q $(/usr/bin/cat /run/httpd.pid) >/dev/null 2>/dev/null && /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -c "PidFile /run/httpd.pid" -k graceful > /dev/null 2>/dev/null || true