2 系统要求和建议 #
下面的小节介绍 SUSE® Linux Enterprise High Availability 的系统要求和先决条件。此外,还提供了有关群集设置的建议。
2.1 硬件要求 #
以下列表指出了基于 SUSE® Linux Enterprise High Availability 的群集的硬件要求。这些要求表示最低硬件配置。根据群集的用途,可能会需要其他硬件。
- 服务器
安装了第 2.2 节 “软件需求”中指定的软件的 1 到 32 台 Linux 服务器。
服务器可以是裸机,也可以是虚拟机。两台服务器不需要使用相同的硬件(内存、磁盘空间等),但它们的体系结构必须相同。不支持跨平台群集。
使用
pacemaker_remote
可扩展群集使之突破 32 个节点的限制,包含更多的 Linux 服务器。- 通讯通道
每个群集节点至少有两个 TCP/IP 通讯媒体。网络设备必须支持您要用于群集通讯的通讯方式:多播或单播。通讯媒体应支持 100 Mbit/s 或更高的数据传送速度。对于支持的群集设置,要求有两个或更多冗余通讯路径。这可通过以下方式实现:
网络设备绑定(首选)
Corosync 中的另一个通讯通道
有关细节,请分别参见第 16 章 “网络设备绑定”和过程 4.3 “定义冗余通讯通道”。
- 节点屏蔽/STONITH
为了避免发生“节点分裂”情况,群集需要有节点屏蔽机制。在节点分裂情况下,群集节点会因硬件或软件故障或者网络连接中断而分割成两个或更多互不相识的组。而屏蔽机制会隔离存在问题的节点(通常的做法是重置该节点或关闭其电源)。这也称为 STONITH(“Shoot the other node in the head”,关闭其他节点)。节点屏蔽机制可以是物理设备(电源开关),也可以是 SBD(按磁盘 STONITH)等机制再结合检查包。使用 SBD 需要有共享存储。
除非使用了 SBD,否则 High Availability 群集中的每个节点都必须至少有一个 STONITH 设备。强烈建议每个节点上有多个 STONITH 设备。
重要:不支持无 STONITH 的配置您必须为群集配置节点屏蔽机制。
全局群集选项
stonith-enabled
和startup-fencing
必须设置为true
。如果您更改这些选项,将会失去支持。
2.2 软件需求 #
所有节点上至少需要安装以下模块和扩展:
Basesystem Module 15 SP6
Server Applications Module 15 SP6
SUSE Linux Enterprise High Availability 15 SP6
根据您在安装期间选择的系统角色,默认会安装以下软件集:
- HA 节点系统角色
High Availability (
sles_ha
)增强型基础系统 (
enhanced_base
)- HA GEO 节点系统角色
Geo Clustering for High Availability (
ha_geo
)增强型基础系统 (
enhanced_base
)
通过这些系统角色安装只能完成极简安装。如有必要,您可能需要手动添加更多软件包。
对于原先指派了另一个系统角色的计算机,您需要手动安装 sles_ha
或 ha_geo
软件集及所需的任何其他软件包。
2.3 存储要求 #
有些服务需要使用共享存储。如果使用外部 NFS 共享,必须能够从所有群集节点通过冗余通讯路径可靠地访问该共享。
为确保数据的高可用性,我们建议您为群集设置共享磁盘系统(存储区域网络,简称 SAN)。如果使用共享磁盘子系统,请确保符合以下要求:
根据制造商的说明正确设置共享磁盘系统并且共享磁盘系统可正确运行。
共享磁盘系统中包含的磁盘应配置为使用镜像或 RAID,来为共享磁盘系统增加容错性。
如果准备对共享磁盘系统访问使用 iSCSI,则请确保正确配置了 iSCSI 启动器和目标。
使用 DRBD* 实施在两台计算机间分发数据的镜像 RAID 系统时,请确保只访问 DRBD 提供的设备,切勿访问备份设备。要利用冗余,可以使用群集剩余组件中所用的相同 NIC。
如果使用 SBD 作为 STONITH 机制,则共享存储还需要满足其他要求。有关详细信息,请参见 第 13.3 节 “要求和限制”。
2.4 其他要求和建议 #
为了实现受支持且有用的高可用性设置,请考虑以下建议:
- 群集节点数
对于包含两个以上节点的群集,强烈建议使用奇数数目的群集节点,以便具有仲裁。有关仲裁的详细信息,请参见第 5.2 节 “仲裁判定”。一个常规群集最多只能包含 32 个节点。借助
pacemaker_remote
服务,可以将 High Availability 群集进行扩展,使其包含超出此限制的额外节点。请参见《Pacemaker 远程快速入门》获取更多细节。- 时间同步
群集节点必须同步到群集外的 NTP 服务器。自 SUSE Linux Enterprise High Availability 15 起,采用 chrony 作为 NTP 的默认实现方式。有关详细信息,请参见 Administration Guide for SUSE Linux Enterprise Server 15 SP6。
如果节点未同步,或者即使节点已同步但配置了不同的时区,群集也可能无法正常工作。此外,日志文件和群集报告在不进行同步的情况下也很难进行分析。如果使用引导脚本,而 NTP 尚未配置,则系统会提出警告。
- 网络接口卡 (NIC) 名称
必须在所有节点上都相同。
- 主机名和 IP 地址
使用静态 IP 地址。
只支持主 IP 地址。
在
/etc/hosts
文件中列出所有群集节点,包括各自的完全限定主机名和简短主机名。群集成员必须能够按名称找到彼此。如果名称不可用,则将无法进行群集内部通讯。有关 Pacemaker 如何获取节点名称的细节,请参见 https://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-node-name.html。
- SSH
所有群集节点都必须能通过 SSH 相互访问。
crm report
(用于查错)等工具和 Hawk2 的 要求节点之间通过无口令 SSH 方式来访问,否则它们只能从当前节点收集数据。如果使用引导脚本设置群集,系统会自动创建并复制 SSH 密钥。如果使用 YaST 群集模块设置群集,您必须自行配置 SSH 密钥。
注意:合规要求默认情况下,群集以
root
用户身份执行操作。如果无口令root
SSH 访问方式不符合法规要求,您可以将群集设置为具有sudo
特权的用户。此用户可以运行群集操作,包括crm report
。此外,如果无法将 SSH 密钥直接存储在节点上,可以改为通过 SSH 代理转发使用本地 SSH 密钥(如第 5.5.1 节 “登录”中所述)。
如果安全策略更为严格,您可以按第 D.1 节 “为非 root 用户配置受限的
sudo
权限”中所述,设置一个只拥有受限sudo
权限的非 root 用户来专门执行crm report
。对于
,目前还没有其他方式可替代无口令登录。