4. Supermicro服务器集群架构设计
在业务连续性体系中,双机热备只是最上层的一种可用性形态,真正决定切换能否成功、切换后数据是否一致的,是底层集群架构。基于 Supermicro 硬件规划集群时,需要同时回答三个问题:两台服务器之间靠什么判断对方“还活着”,共享数据放在哪里、由谁仲裁访问,以及故障发生后业务地址如何被接管。这三者分别对应心跳网络、共享存储与虚拟服务地址,缺一不可。
一、双机热备的两种基本形态
Supermicro 双机热备通常落地为两种模式。第一种是主备(Active-Standby):同一时刻只有主节点对外提供服务,备节点通过心跳监测主节点状态,主节点失效后备节点接管虚拟 IP 与存储资源。第二种是双活(Active-Active):两台节点同时承载不同业务或分担负载,任一节点故障时其资源迁移到对端。主备模式实现简单、脑裂风险低,适合数据库、ERP 等强一致性场景;双活模式资源利用率高,但对共享存储的并发访问和锁机制要求更高。
无论哪种模式,集群软件(如 Pacemaker + Corosync、Windows Server 故障转移集群)都需要一个“仲裁者”来避免两台节点都认为自己是主节点。两节点集群最常见的仲裁方式是仲裁盘(Quorum Disk / Tie-breaker),它通常是一块小容量共享 LUN,只有能抢占到仲裁盘的节点才有资格成为主节点。
二、心跳网络的规划要点
心跳网络是集群的“神经系统”,负责传递节点存活、资源状态和锁信息。规划时建议遵循以下原则:
- 物理独立:心跳链路应使用独立网卡和独立交换机,不与业务网络、存储网络混用,避免业务流量拥塞导致心跳超时误判。
- 冗余链路:至少两条心跳链路,可直连(交叉线)加交换机各一条,或两台交换机各一条,防止单点故障。
- 低延迟:心跳对带宽要求不高(通常 1GbE 足够),但对延迟和丢包敏感,建议启用巨帧并关闭不必要的协议。
- 独立网段:心跳使用独立私有网段,例如 192.168.100.0/24,避免与业务网段路由冲突。
以 Supermicro 2U 双路服务器为例,可规划:板载 2×1GbE 用于心跳(eth0/eth1),外加 AOC 双口 10GbE 网卡用于业务与存储。心跳地址示例:node1 为 192.168.100.11/24,node2 为 192.168.100.12/24,两条链路分别走不同交换机。
三、集群共享存储的选型与连接
共享存储是双机热备的数据基础。常见方案有三类:
| 方案 | 典型 Supermicro 配置 | 适用场景 |
|---|---|---|
| iSCSI SAN | 双口 10GbE + 外部 iSCSI 阵列 | 通用、成本适中、易扩展 |
| FC SAN | FC HBA + 光纤交换机 | 高吞吐、低延迟核心库 |
| SAS JBOD | SAS HBA + 双端口 JBOD | 小规模、低延迟直连 |
无论哪种方案,都必须保证双路径冗余:每台节点通过两条独立路径访问同一 LUN,配合 MPIO(多路径 I/O)实现路径故障自动切换。共享 LUN 上通常划分三类卷:仲裁卷(约 1GB)、数据卷、日志卷。文件系统需选用支持集群并发的类型,如 GFS2、OCFS2,或由集群软件管理的卷组。
四、整体架构与故障切换路径
下面用一张架构图把上述要素串起来:两台 Supermicro 节点通过双心跳链路互联,同时经双路径接入共享存储,业务侧通过虚拟 IP 对外提供服务。图中标注了正常状态与故障切换后的资源流向。
五、关键参数与切换判据
架构搭好后,还需要用参数把“什么时候切换”定义清楚。以下是示例配置中常用的参数,实际值需根据业务容忍度调整:
# Corosync 心跳示例(/etc/corosync/corosync.conf 片段)
totem {
token: 3000 # 心跳超时 3s
token_retransmits_before_loss_const: 10
consensus: 6000 # 共识超时 6s
join: 60
}
quorum {
provider: corosync_votequorum
two_node: 1
expected_votes: 2
wait_for_all: 1
}
判断切换是否成功的依据包括:虚拟 IP 是否漂移到备节点、共享卷是否被正确挂载、业务端口是否恢复监听、应用日志是否出现正常启动记录。建议在正式上线前做一次计划内切换演练,记录实际 RTO,并与目标值对比。
总结来看,基于 Supermicro 硬件的集群架构设计,核心是把“心跳、存储、虚拟地址”三条链路分别做冗余,再用仲裁机制约束主备角色。硬件选型上,双口 10GbE 网卡、独立 1GbE 心跳网卡、双路径 HBA 是常见且性价比较高的组合。架构确定后,后续的集群软件安装、资源组配置和切换测试才有稳定的基础。