Show Table of Contents
8.4. pacemaker_remote 服务
pacemaker_remote 服务允许将没有在 corosync 中运行的节点整合到该集群,并让该集群如管理真正集群节点一样管理这些资源。就是说 Pacemaker 集群现在可以管理虚拟环境(KVM/LXC)以及处于虚拟环境中的资源,而无需该虚拟环境真的在 pacemaker 或 corosync 中运行。
使用以下术语描述
pacemaker_remote 服务。
- 集群节点 - 运行高可用服务(
pacemaker和corosync)的节点。 - 远程节点 — 运行
pacemaker_remote远程整合至集群而无需成为corosync集群成员。 - 容器 — 包含额外资源的 Pacemaker 资源。例如:包含 webserver 资源的 KVM 虚拟机资源。
- 容器远程节点 — 运行
pacemaker_remote服务的虚拟机远程节点。这论述了具体远程节点使用案例,其中使用集群管理的虚拟机资源可作为远程节点由集群启动,并整合至该集群中。 - pacemaker_remote — 可在 Pacemaker 集群环境及独立(非集群)环境中,由虚拟机节点(KVM 和 LXC)执行远程应用程序管理的服务守护进程。这个服务是 Pacemaker 本地资源管理守护进程(LRMD)的高级版本,可远程管理和监控虚拟机 LSB、OCF、upstart 及 systemd 资源。还可允许
pcs在远程节点中工作。 - LXC — 由
libvirt-lxcLinux 容器驱动程序定义的 Linux 容器。
运行
pacemaker_remote 服务的 Pacemaker 集群有以下特征。
- 运行
pacemaker_remote服务的虚拟远程节点(只需要在虚拟机端执行很少的配置)。 - 集群栈(
pacemaker和corosync),在集群节点中运行,启动虚拟机并立即连接到pacemaker_remote服务,允许虚拟机整合至集群中。
虚拟机远程节点和集群节点之间的主要不同是远程节点不在集成栈中运行。这意味着远程节点不计入仲裁。另一方面,这也意味着远程节点没有与集群栈相关的伸缩性限制。除仲裁限制外,就资源管理而言,远程节点行为与集群节点一致。该集群完全有能力管理和监控每个远程节点中的资源。可根据远程节点构建限制,使其处于待命模式,或执行在任何集群节点中执行的操作。在集群状态输出状态中出现的远程节点与集群节点执行同样的操作。
8.4.1. 容器远程节点资源选项
将虚拟机或 LXC 资源配置为远程节点后,可创建管理虚拟机的
VirtualDomain 资源。请使用命令查看可为 VirtualDomain 资源设定的选项描述。
# pcs resource describe VirtualDomain
除
VirtualDomain 资源选项外,还可配置元数据选项,以便将该资源作为远程节点启用,并定义连接参数。有关元数据选项的详情,请查看 表 8.3 “将 KVM/LXC 资源配置为远程节点的元数据选项”。
表 8.3. 将 KVM/LXC 资源配置为远程节点的元数据选项
| 项 | 默认值 | 描述 |
|---|---|---|
remote-node
|
<none>
|
这个资源定义的远程节点名称。这可同时将该资源作为远程节点启用,并定义识别该远程节点的特定名称。如果没有设定其他参数,还会将这个值假设为在端口 3121 进行连接的主机名。警告:这个值不能与任何资源或节点 ID 重叠。
|
remote-port
|
3121
|
配置自定义端口以便虚拟机连接到
pacemaker_remote。
|
remote-addr
|
作为主机名使用的
remote-node 值
|
远程节点名称不是该虚拟机的主机名时要连接到的 IP 地址或主机名
|
remote-connect-timeout
|
60s
|
等待处理虚拟机连接超时前所等待的时间
|
以下命令创建名为
vm-guest1 的 VirtualDomain 资源,即可使用 remote-node meta 属性运行资源的远程节点。
# pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest18.4.2. 主机及虚拟机认证
集群节点及远程节点之间的认证和加密是通过使用 PSK 加密/认证的 TLS 在 TCP 端口 3121 进行。这就是说集群节点和远程节点必须共享同一私钥。默认情况下该密钥位于集群节点和远程节点的
/etc/pacemaker/authkey 中。
8.4.3. 更改默认 pacemaker_remote 选项
如果需要更改 Pacemaker 或
pacemaker_remote 的默认端口或 authkey 位置,可设定一个环境变量,用来影响这两个守护进程。可通过将其放在 /etc/sysconfig/pacemaker 文件中(如下所示)启用这些环境变量。
#==#==# Pacemaker Remote # Use a custom directory for finding the authkey. PCMK_authkey_location=/etc/pacemaker/authkey # # Specify a custom port for Pacemaker Remote connections PCMK_remote_port=3121
8.4.4. 配置概述:KVM 远程节点
本小节提供了用来在虚拟机中启动 Pacemaker 的步骤,以及使用
libvirt 和 KVM 虚拟机将该机器作为远程节点整合的高级概述。
- 安装虚拟化软件,并在集群节点中启用
libvirtd后,请在每个集群节点和虚拟机的/etc/pacemaker/authkey中放一个authkey。这样就可保证远程通讯和认证。使用以下命令创建authkey。#
dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1 - 在每台虚拟机中安装
pacemaker_remote软件包,启动pacemaker_remote服务,并将其设定为启动时运行,并在防火墙中为 TCP 端口 3121 开一个通道。#
yum install pacemaker-remote resource-agents#systemctl start pacemaker_remote.service#systemctl enable pacemaker_remote.service#firewall-cmd --add-port 3121/tcp --permanent - 为每台虚拟机分配一个静态网络地址和独特的主机名。
- 要创建
VirtualDoman资源代理以便管理虚拟机,Pacemaker 要求将该虚拟机的 xml 配置文件转储为一个磁盘中的一个文件。例如:如果创建名为guest1的虚拟机,使用以下命令将 xml 转储至主机的一个文件中。#
virsh dumpxml guest1 > /virtual_machines/guest1.xml - 创建
VirtualDoman资源,配置VirtualDoman资源元数据选项,以便说明该虚拟机是可运行资源的远程节点。在下面的示例中,元数据属性remote-node=guest1告知 pacemaker 这个资源是使用主机名guest1的远程节点,可整合至集群中。该集群会在主机名guest1的虚拟机启动后,尝试连接器其pacemaker_remote服务。#
pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="vm-guest1.xml" meta remote-node=guest1 - 创建
VirtualDoman资源后,可象对待集群中的其他节点一样对待该远程节点。例如:可创建资源并为在该远程节点中运行的资源生成资源限制。#
pcs resource create webserver apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s#pcs constraint webserver prefers guest1将该远程节点整合至集群中后,可在远程节点中执行pcs命令,就好象该远程节点正在运行 Pacemaker。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.