8.2 节点级别屏障

在 中,实现屏障的是 STONITH。它提供节点级别屏障。High Availability Extension 包括 stonith 命令行工具,一个能远程关闭群集中节点的可扩展界面。有关可用选项的概述,请运行 stonith --help 或参见 stonith 的手册页了解更多信息。

8.2.1 STONITH 设备

要使用节点级别屏障,首先需要有屏障设备。要获取 High Availability Extension 支持的 STONITH 设备的列表,请以 root 在任何节点上运行以下命令:

stonith -L

STONITH 设备可分为以下类别:

电源分配单元 (PDU)

电源分发单元是管理关键网络、服务器和数据中心设备的电源容量和功能的基本元素。它可以提供对已连接设备的远程负载监视和独立电源出口控制,以实现远程电源循环。

不间断电源 (UPS)

通过在公共用电不可用时从独立源供电,不间断电源为已连接设备提供紧急电源。

刀片电源控制设备

如果是在刀片组上运行群集,则刀片外壳中的电源控制设备就是提供屏障的唯一候选。当然,此设备必须能够管理单个刀片计算机。

无人值守设备

无人值守设备(IBM RSA、HP iLO、Dell DRAC)正变得越来越通用,将来甚至可能成为现成计算机的标准设备。然而,它们相比 UPS 设备有一点不足,因为它们与主机(群集节点)共享一个电源。如果节点没有电源,则设想为控制节点的设备就等于没用。在那种情况下,CRM 屏障节点的尝试将是徒劳,而此情况将一直继续,因为所有其他资源操作将等待屏障/STONITH 操作成功完成。

测试设备

测试设备仅用于测试目的。它们通常对硬件更加友好。一旦群集进入生产阶段,它们必须替换为真实的屏障设备。

对 STONITH 设备的选择主要取决于您的预算和所用硬件的种类。

8.2.2 STONITH 实现

的 STONITH 实现由两个组件组成:

stonithd

stonithd 是一个守护程序,可以由本地进程或通过网络访问。它接受与屏障操作相应的命令:重设置、关闭电源和打开电源。它还可以检查屏障设备的状态。

stonithd 守护程序在 CRM HA 群集中的每个节点上运行。在 DC 节点上运行的 stonithd 实例从 CRM 接收屏障请求。它会对请求作出响应,其他 stonithd 程序将执行所需的屏障操作。

STONITH 插件

对于每个受支持的屏障设备,都有一个能够控制此设备的 STONITH 插件。STONITH 插件是屏障设备的界面。所有 STONITH 插件都位于每个节点上的 /usr/lib/stonith/plugins 中。所有 STONITH 插件看上去都与 stonithd 一样,但显著区别在于反映了屏障设备的性质。

某些插件支持多个设备。ipmilan(或 external/ipmi)就是一个典型的示例,它实施 IPMI 协议并可以控制任何支持此协议的设备。