Libvirt fencing
作为在带有 KVM/libvirt 的 Red Hat Enterprise Linux 主机上运行的虚拟机的集群节点需要在虚拟机管理程序上配置和运行的软件防护设备 fence-virtd。
多播模式下的虚拟机防护通过向 libvirt 防护多播组发送使用共享密钥签名的防护请求来工作。
这意味着实际的节点虚拟机可以运行在不同的管理程序机器上,只要所有管理程序都为同一个多播组配置了 fence-virtd,并使用相同的共享密钥。
要在运行虚拟机的管理程序上设置fence-virtd 软件fence 设备,需要执行以下步骤:
- 在虚拟机管理程序上,安装 fence-virtd、fence-virtd-libvirt 和 fence-virtd-multicast 包。
这些软件包分别提供了虚拟机防护守护进程、libvirt 集成和多播侦听器。
# yµm -y install fence-virtd fence-virtd-libvirt fence-virtdmulticast
- 在管理程序上,创建一个名为 /etc/cluster/fence_xvm.key 的共享密钥。
目标目录/etc/cluster 需要手动创建。
# mkdir -p /etc/cluster # dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=lk count=4
- 在管理程序上,配置fence_virtd 守护进程。
默认值可用于大多数选项,但请确保选择 libvirt 后端和多播侦听器。
# fence_virtd -c
- 在虚拟机管理程序上启用并启动fence_virtd 守护进程。
# systemctl enable fence_virtd # systemctl start fence_virtd
- 复制共享密钥/etc/cluster/fence_xvm。
所有集群节点的键,保持名称和路径与管理程序上的相同。
总结
使用 APC 电源开关测试围列时,插入一盏灯进行测试而不是实际的集群节点会很有帮助。
如果控制电源按预期工作,这将使其可见。
直接调用 fencing 代理来测试 fencing 将验证实际的 fencing 设备本身是否正常工作,但不会验证集群中是否正确配置了 fencing。
fencing设备配置概览
防护是每个操作集群的必要条件。
为集群设置防护的第一步是设置执行实际防护的硬件或者软件设备。
Red Hat Enterprise Linux High Availability Add-on 提供了多种 fencing 代理以用于不同的 fence 设备。
pcs stonith 列表提供了所有已安装的防护代理的列表:
# pcs stonith list fence_apc - Fence agent for APC over telnet/ssh fence_apc_snmp - Fence agent for APC over SNMP fence_bladecenter - Fence agent for IBM Bladecenter ...
根据使用的围列设备和围列代理,需要不同的参数。
参数由防护代理传递给防护设备。
只有在传递了所需的参数集时,才会建立防护代理和防护设备之间的通信,并且群集节点的防护才能成功。
系统中为每个运送的围列代理提供了一个手册页;手册页描述了可以传递给 fencing 设备的参数。
还可以通过执行命令 pcs stonith describe [FENCINGAGENT] 找到特定防护代理的可能和必需参数列表。
# pcs stonith describe fence_rhevm
测试fencing设备
防护对于可操作的集群至关重要。
集群管理员必须彻底测试防护设置。
可以通过从命令行调用防护代理来测试防护设备设置。
所有防护代理都驻留在 /usr/sbin/fence_* 中。
防护代理通常采用 -h 选项来显示所有可用选项,或者可以使用 pcs stonith describe fence_agent 来调查可能的选项。
测试防护所需的选项因代理而异。
虚拟机防护
Red Hat High Availability Add-On 为不同的虚拟机管理程序提供了许多不同的防护代理。
除了fence_virt(libvirt 的fencing 代理)之外,它们需要相同类型的参数:
- 管理程序的 IP 或者主机名。
- 访问管理程序的用户名和密码。
- 每个节点的虚拟机名称。
栅列设备配置示例
不同的防护设备需要不同的硬件和软件配置。
需要设置和配置硬件。
需要配置的软件和各种配置参数需要记录下来,以便以后与 fencing 代理一起使用。
APC网络电源开关围列
配置电源防护的一种方法是使用 APC 网络电源开关。
硬件设置包括集群节点与 APC 网络电源开关的电源布线。
使用 APC 网络电源开关进行防护需要防护代理登录电源开关以控制特定节点的电源插座。
要使用 APC 围列设备设置围列,重要的是至少记录以下开关设置,以便以后与围列代理一起使用:
- APC防护设备的IP地址。
- 访问 APC 围列设备的用户名和密码。
- 如果设备可以通过 SSH 或者 telnet 访问。
- 每个集群节点的插头 ID 必须是已知的。
管理硬件围列
管理硬件,例如 ILO、DRAC 或者 IPMI 硬件,可以关闭、打开和重启系统。
集群管理员至少需要配置以下参数,才能将管理卡用作防护设备:
- 管理设备的IP地址。
- 访问管理围列设备的用户名和密码。
- 哪些机器由管理围列设备处理。
SCSI fencing
SCSI 防护(fencing)不需要任何专用于防护的物理硬件。
集群管理员需要知道哪些设备必须通过 SCSI 保留阻止集群节点访问。