第 2 章 Pacemaker 入门


要熟悉您用来创建 Pacemaker 集群的工具和进程,您可以执行以下流程。这些内容适用于想了解集群软件以及如何管理它,而不需要配置集群的用户。

注意

这些步骤并不会创建受支持的红帽集群。受支持的红帽集群至少需要两个节点并配置隔离设备。有关红帽对 RHEL 高可用性集群的支持政策、要求和限制的详情,请参考 RHEL 高可用性集群的支持政策

2.1. 学习使用 Pacemaker

通过这个过程,您将了解如何使用 Pacemaker 设置集群、如何显示集群状态以及如何配置集群服务。这个示例创建了一个 Apache HTTP 服务器作为集群资源,并显示了集群在资源失败时如何响应。

在本例中:

  • 节点为 z1.example.com
  • 浮动 IP 地址为 192.168.122.120。

先决条件

  • 运行 RHEL 8 的单个节点
  • 与节点静态分配的一个 IP 地址在同一网络上的浮动 IP 地址
  • 运行的节点的名称位于 /etc/hosts 文件中

流程

  1. 从 High Availability 频道安装红帽高可用性附加组件软件包,并启动并启用 pcsd 服务。

    # yum install pcs pacemaker fence-agents-all
    ...
    # systemctl start pcsd.service
    # systemctl enable pcsd.service
    Copy to Clipboard Toggle word wrap

    如果您正在运行 firewalld 守护进程,启用红帽高可用性附加组件所需的端口。

    # firewall-cmd --permanent --add-service=high-availability
    # firewall-cmd --reload
    Copy to Clipboard Toggle word wrap
  2. 在群集的每个节点上设置用户 hacluster 的密码,并为您要运行 pcs 命令的节点上群集中的每个节点验证用户 hacluster。本例只使用一个节点,您要从这个节点中运行命令。把这一步包括在这个步骤的原因是,它是配置一个被支持的红帽高可用性多节点集群的一个必要步骤。

    # passwd hacluster
    ...
    # pcs host auth z1.example.com
    Copy to Clipboard Toggle word wrap
  3. 创建名为 my_cluster 且具有一个成员的群集,并检查群集的状态。这个命令会创建并启动集群。

    # pcs cluster setup my_cluster --start z1.example.com
    ...
    # pcs cluster status
    Cluster Status:
     Stack: corosync
     Current DC: z1.example.com (version 2.0.0-10.el8-b67d8d0de9) - partition with quorum
     Last updated: Thu Oct 11 16:11:18 2018
     Last change: Thu Oct 11 16:11:00 2018 by hacluster via crmd on z1.example.com
     1 node configured
     0 resources configured
    
    PCSD Status:
      z1.example.com: Online
    Copy to Clipboard Toggle word wrap
  4. 红帽高可用性集群要求为集群配置隔离功能。在 Red Hat High Availability Cluster 中的红帽知识库解决方案隔离 中描述了此要求的原因。然而,在本简介中,它只显示如何使用基本 Pacemaker 命令,通过将启用了 stonith-enabled 集群选项设置为 false 来禁用隔离。

    警告

    对生产环境集群而言,stonith-enabled=false 的使用完全不合适。它通知集群,假设出现故障的节点已被安全隔离。

    # pcs property set stonith-enabled=false
    Copy to Clipboard Toggle word wrap
  5. 在您的系统中配置网页浏览器并创建一个网页来显示简单文本信息。如果您正在运行 firewalld 守护进程,请启用 httpd 所需的端口。

    注意

    不要使用 systemctl enable 启用任何由集群管理的在系统引导时启动的服务。

    # yum install -y httpd wget
    ...
    # firewall-cmd --permanent --add-service=http
    # firewall-cmd --reload
    
    # cat <<-END >/var/www/html/index.html
    <html>
    <body>My Test Site - $(hostname)</body>
    </html>
    END
    Copy to Clipboard Toggle word wrap

    要让 Apache 资源代理获得 Apache 状态,在现有配置中添加以下内容来启用状态服务器 URL。

    # cat <<-END > /etc/httpd/conf.d/status.conf
    <Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
    </Location>
    END
    Copy to Clipboard Toggle word wrap
  6. 创建 IPaddr2apache 资源,供群集管理。IPaddr2 资源是一个浮动 IP 地址,它不能是已经与物理节点关联的浮动 IP 地址。如果没有指定 IPaddr2 资源的 NIC 设备,浮动 IP 必须位于与静态分配的 IP 地址相同的网络中。

    您可以使用 pcs resource list 命令显示所有可用资源类型的列表。您可以使用 pcs resource describe resourcetype 命令显示您可以为指定资源类型设置的参数。例如,以下命令显示您可以为 apache 类型的资源设置的参数:

    # pcs resource describe apache
    ...
    Copy to Clipboard Toggle word wrap

    在本例中,IP 地址资源和 apache 资源都配置为名为 apachegroup 的组的一部分,这样可确保资源在配置正常工作的多节点群集时在同一节点上运行。

    # pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=192.168.122.120 --group apachegroup
    
    # pcs resource create WebSite ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" --group apachegroup
    
    # pcs status
    Cluster name: my_cluster
    Stack: corosync
    Current DC: z1.example.com (version 2.0.0-10.el8-b67d8d0de9) - partition with quorum
    Last updated: Fri Oct 12 09:54:33 2018
    Last change: Fri Oct 12 09:54:30 2018 by root via cibadmin on z1.example.com
    
    1 node configured
    2 resources configured
    
    Online: [ z1.example.com ]
    
    Full list of resources:
    
    Resource Group: apachegroup
        ClusterIP  (ocf::heartbeat:IPaddr2):       Started z1.example.com
        WebSite    (ocf::heartbeat:apache):        Started z1.example.com
    
    PCSD Status:
      z1.example.com: Online
    ...
    Copy to Clipboard Toggle word wrap

    配置集群资源后,您可以使用 pcs resource config 命令显示为该资源配置的选项。

    # pcs resource config WebSite
    Resource: WebSite (class=ocf provider=heartbeat type=apache)
     Attributes: configfile=/etc/httpd/conf/httpd.conf statusurl=http://localhost/server-status
     Operations: start interval=0s timeout=40s (WebSite-start-interval-0s)
                 stop interval=0s timeout=60s (WebSite-stop-interval-0s)
                 monitor interval=1min (WebSite-monitor-interval-1min)
    Copy to Clipboard Toggle word wrap
  7. 将浏览器指向使用您配置的浮动 IP 地址创建的网站。这个命令会显示您定义的文本信息。
  8. 停止 apache web 服务并检查集群的状态。使用 killall -9 模拟应用程序级别的崩溃。

    # killall -9 httpd
    Copy to Clipboard Toggle word wrap

    检查集群状态。您应该看到停止 web 服务会导致操作失败,但集群软件会重启该服务,您应该仍然可以访问网站。

    # pcs status
    Cluster name: my_cluster
    ...
    Current DC: z1.example.com (version 1.1.13-10.el7-44eb2dd) - partition with quorum
    1 node and 2 resources configured
    
    Online: [ z1.example.com ]
    
    Full list of resources:
    
    Resource Group: apachegroup
        ClusterIP  (ocf::heartbeat:IPaddr2):       Started z1.example.com
        WebSite    (ocf::heartbeat:apache):        Started z1.example.com
    
    Failed Resource Actions:
    * WebSite_monitor_60000 on z1.example.com 'not running' (7): call=13, status=complete, exitreason='none',
        last-rc-change='Thu Oct 11 23:45:50 2016', queued=0ms, exec=0ms
    
    PCSD Status:
        z1.example.com: Online
    Copy to Clipboard Toggle word wrap

    您可以在服务启动并再次运行后,清除失败的资源中的失败状态。当您查看集群状态时,失败的操作通知将不再出现。

    # pcs resource cleanup WebSite
    Copy to Clipboard Toggle word wrap
  9. 当您完成查看集群和集群状态后,停止节点上的集群服务。即使为此简介仅在一个节点上启动服务,但包含 --all 参数,因为它将停止实际多节点群集上所有节点上的群集服务。

    # pcs cluster stop --all
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat