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 SANFC HBA + 光纤交换机高吞吐、低延迟核心库
SAS JBODSAS HBA + 双端口 JBOD小规模、低延迟直连

无论哪种方案,都必须保证双路径冗余:每台节点通过两条独立路径访问同一 LUN,配合 MPIO(多路径 I/O)实现路径故障自动切换。共享 LUN 上通常划分三类卷:仲裁卷(约 1GB)、数据卷、日志卷。文件系统需选用支持集群并发的类型,如 GFS2、OCFS2,或由集群软件管理的卷组。

四、整体架构与故障切换路径

下面用一张架构图把上述要素串起来:两台 Supermicro 节点通过双心跳链路互联,同时经双路径接入共享存储,业务侧通过虚拟 IP 对外提供服务。图中标注了正常状态与故障切换后的资源流向。

业务客户端 虚拟 IP / 服务地址 192.168.10.100 Supermicro 节点 1(主) 业务网卡 10GbE ×2 心跳网卡 1GbE ×2 存储 HBA / iSCSI 双路径 状态:Active Supermicro 节点 2(备) 业务网卡 10GbE ×2 心跳网卡 1GbE ×2 存储 HBA / iSCSI 双路径 状态:Standby 心跳链路 1(交换机 A) 心跳链路 2(交换机 B) 集群共享存储(双路径) 仲裁卷 1 GB 数据卷 GFS2 / OCFS2 日志卷 独立 LUN 路径 A 路径 B 故障切换:节点1 失效 → 心跳超时 → 节点2 抢占仲裁卷 → 接管虚拟 IP 与数据卷 → 业务恢复 切换目标:RTO ≤ 60s,RPO = 0(共享存储保证数据一致)

五、关键参数与切换判据

架构搭好后,还需要用参数把“什么时候切换”定义清楚。以下是示例配置中常用的参数,实际值需根据业务容忍度调整:

# 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,并与目标值对比。

规划阶段建议先画一张“资源依赖图”:虚拟 IP 依赖业务网卡,业务进程依赖数据卷,数据卷依赖存储路径,仲裁卷决定谁有资格启动资源。依赖关系清晰后,切换顺序和排障方向都会变得明确。
两节点集群若只配一条心跳链路,一旦该链路中断,两端都可能认为对方失效而同时抢占共享卷,造成数据损坏。务必配置至少两条独立心跳路径,并启用仲裁盘。

总结来看,基于 Supermicro 硬件的集群架构设计,核心是把“心跳、存储、虚拟地址”三条链路分别做冗余,再用仲裁机制约束主备角色。硬件选型上,双口 10GbE 网卡、独立 1GbE 心跳网卡、双路径 HBA 是常见且性价比较高的组合。架构确定后,后续的集群软件安装、资源组配置和切换测试才有稳定的基础。