Red Hat Training

A Red Hat training course is available for RHEL 8

5.4. 创建资源和资源组

使用以下流程为集群创建资源。为确保这些资源在同一节点上运行,它们已配置为资源组 apachegroup 的一部分。要创建的资源如下,按其启动顺序列出。

  1. 一个名为 my_lvm 的使用您在 配置一个带有 XFS 文件系统的 LVM 卷 时创建的 LVM-activate 资源。
  2. 一个名为 my_fs 的使用您在 配置一个带有 XFS 文件系统的 LVM 卷 时创建的文件系统设备 /dev/my_vg/my_lvFilesystem 资源。
  3. IPaddr2 资源,它是 apachegroup 资源组的浮动 IP 地址。IP 地址不能是一个已经与物理节点关联的 IP 地址。如果没有指定 IPaddr2 资源的 NIC 设备,浮动 IP 必须与节点静态分配的 IP 地址之一位于同一个网络中,否则无法正确检测到分配浮动 IP 地址的 NIC 设备。
  4. 名为 Websiteapache 资源使用您在 配置 Apache HTTP 服务器 中定义的 index.html 文件和 Apache 配置。

以下步骤创建资源组 apachegroup 以及该组包含的资源:资源将以您添加到组的顺序启动,并按照添加到组中的相反顺序停止。仅从集群的一个节点运行此步骤。

流程

  1. 以下命令创建 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 disablepcs resource enable 命令手动停止并启动单个资源。

  2. 以下命令为配置创建剩余的资源,将它们添加到现有的资源组 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
  3. 创建资源和包含这些资源的资源组后,您可以检查集群的状态。请注意,所有四个资源都在同一个节点上运行。

    [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

    请注意,如果您还没有为集群配置隔离设备,默认情况下资源不会启动。

  4. 集群启动并运行后,您可以将浏览器指向定义为 IP addr2 资源的 IP 地址,以查看示例显示,包括简单单词"Hello"。

    Hello

    如果您发现您配置的资源没有运行,您可以运行 pcs resource debug-start 资源 命令来测试资源配置。

  5. 当您使用 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