4.3. 创建资源和资源组
使用以下流程为集群创建资源。为确保这些资源在同一节点上运行,它们都配置为资源组 apachegroup 的一部分。要创建的资源如下,按其启动顺序列出。
-
名为
my_lvm的LVM-activate资源使用您 在Pacemaker 集群中配置具有 XFS 文件系统的 LVM 卷 时创建的 LVM 卷组。 -
名为
my_fs的Filesystem资源,它使用您 在 Pacemaker 集群中配置具有 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资源配置为克隆资源。pcs resource create my_lvm ocf:heartbeat:LVM-activate vgname=my_vg vg_access_mode=system_id --group apachegroup
[root@z1 ~]# pcs resource create my_lvm ocf:heartbeat:LVM-activate vgname=my_vg vg_access_mode=system_id --group apachegroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当您创建资源时,会自动启动该资源。您可以使用以下命令确认资源已创建并启动。
pcs resource status
# pcs resource status Resource Group: apachegroup my_lvm (ocf::heartbeat:LVM-activate): StartedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
pcs resource disable和pcs resource enable命令手动停止和启动单独的资源。以下命令为配置创建剩余的资源,将它们添加到现有资源组
apachegroup中。pcs resource create my_fs Filesystem device="/dev/my_vg/my_lv" directory="/var/www" fstype="xfs" --group apachegroup pcs resource create VirtualIP IPaddr2 ip=198.51.100.3 cidr_netmask=24 --group apachegroup pcs resource create Website apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group 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 apachegroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建资源和包含这些资源的资源组后,您可以检查集群的状态。请注意,所有四个资源都在同一个节点上运行。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,如果您还没有为集群配置隔离设备,默认情况下资源不会启动。
当集群启动并运行后,您可以将浏览器指向定义为
IPaddr2资源,查看示例显示,包括一个简单的单词 "Hello"。Hello
HelloCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果发现配置的资源没有运行,则您可以运行
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
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下三行替换您删除的行,将
/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
/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 || trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow