两台主机都抢着当主?群晖高可用集群脑裂识别与收场

引言

Synology High Availability 集群正常运行时,只应有一台主机作为主服务器,备用服务器靠 Heartbeat 连接和集群连接两条链路持续检测对方。如果这两条判定链路同时故障,两台服务器都可能尝试承担主服务器角色——这就是 split-brain(脑裂):发往集群 IP 的连接会被重新导向其中一台,两台机器上各自写入的数据从此不再一致。这篇按官方帮助把脑裂的成因、期间的业务状态、差异核对与两种收场方式讲清楚。

什么场景用它最值

一是心跳链路单点:Heartbeat 与主集群连接走了同一台交换机或同一段线缆,设备故障时两条链路一起断,脑裂风险最高。二是机房整理后接错口:拔插网线后接口角色(集群还是 Heartbeat)接反,判定链路形同虚设。三是异地布线跨楼层:链路距离长、中间环节多,更需要按这篇做一次预防性梳理——不确定接口角色时,直接到「Synology High Availability > 网络」里核对。

操作步骤

  1. 先把判定链路摸清再谈预防。为什么:官方说明可以设置多个路径将主机连接到数据网络实现冗余,但若 Heartbeat 连接和主集群连接都发生故障,两台服务器就可能同时抢当主服务器——多路径冗余针对的是数据网络,不是判定链路的保险;两条判定链路分开走不同物理路径,才是脑裂预防的第一性原则。拿不准每个网络接口分配的角色,就去「Synology High Availability > 网络」检查。

  2. 认清脑裂期间的业务状态,别急着拔线重启。为什么:官方明确——两台服务器上的服务和集群 IP 地址在脑裂解决之前无法使用,这是系统防止双写的保护性行为,不是又一层新故障。此时 File Station 会处于只读模式,但仍可下载或查看文件;着急取的文件先从这里拿,不要对着机器做无计划的断电。

  3. 打开 Split-brain 选项卡读差异清单。为什么:发生脑裂后,左侧面板会出现名为 Split-brain 的新选项卡,其中列出三类关键信息:两台服务器上共享文件夹中文件之间的差异、各服务器成为主服务器的时间、上次 iSCSI Target 连接信息。这三项是后面决定「保哪台」的全部依据——文件越多,列出差异所需时间越长,耐心等它跑完。

  4. 动手解决前确认两台主机都已开机。为什么:官方注意事项——解决错误时须确认两台主机都已开机,然后再选择新的主服务器。关着的主机上的数据无法参与比对,事后开机还可能把旧状态带回集群,等于把脑裂再演一遍。

  5. 进入「集群」选项卡,单击「管理」按钮,在两个收场选项里做选择。为什么:这里能关闭集群或解决脑裂错误,解决方式官方只给了两种,各有明确的代价,见下一步。

  6. 选「在集群中保留两台服务器」要接受备侧更改丢失。为什么:此选项是选其中一台主机作为新的主服务器,系统会在两台服务器重新启动之后,把新主服务器上的数据和设置同步到新的备用服务器——官方直接警告:脑裂期间对备用服务器进行的更改会丢失。差异清单显示备侧有重要新增文件时,先把它们从只读的 File Station 下载出来再操作。

  7. 选「在集群中保留一台服务器」适合差异大、要干净收场的情况。为什么:此选项选定一台主机作为新主服务器,同时移除另一台;系统重启主机后,新主服务器仍处于集群中,被移除的主机会保留其数据并恢复为独立状态——代价是下次添加备用服务器时需要执行完整数据同步。两侧数据差异太大、比对成本高时,宁可保留一台、走完整同步,也不带着不一致的状态继续跑。

  8. 收场后立即复盘链路。为什么:脑裂解决只处理了结果,成因在线路上。把 Heartbeat 与集群连接分到不同交换机、不同线槽,接口角色标注进机柜图,下次维护才不会重演。

三条边界先知道

  • 脑裂期间服务整体不可用是设计使然:集群 IP 与两台服务器上的服务在解决前都不可用,高可用买的是「判定清晰」,不是「永远在线」。
  • 保留两台必然丢一侧更改:同步方向是新主到新备,脑裂期间备用服务器上的更改不在同步范围内。
  • 差异清单耗时与文件量正相关:共享文件夹里的文件越多,列出差异所需时间越长,大容量集群要预留核对窗口。

结语

脑裂不是高可用的失灵,而是它在两条心跳都断时被迫做的止损。链路分置、差异核对、两案择一,这三步走稳,收场才有据可依。贵州诚鑫致达科技在做企业双机集群交付时,会把接口角色表、脑裂处置决策树写进运维手册,让突发之夜照单执行即可。