如何解决RAC环境下的脑裂问题_Voting Disk表决磁盘与仲裁机制
表决磁盘是集群仲裁核心,通过多数派投票决定节点存留;2节点集群须配≥3个物理副本防平局,且需硬件fencing保障IO隔离,I/O路径延迟超500ms即可致Quorum丢失。脑裂发生时,表决磁盘(Voting Disk)到底起什么作用?表决磁盘不是“存储数据的地方”,而是集群判断“谁该活下来”的投票箱。当私网心跳中断(比如 misscount 超时),节点间无法确认彼此是否还活着,这时每个节点就去读 voting disk 上的最新投票记录——它不保存状态,只保存“最近一次成功写入的子集群身份”。只要一个节点能正常访问多数 voting disk(即满足 quorum),它就认为自己属于“合法子集群”;否则,就被判定为孤立节点,触发驱逐。2节点集群必须配奇数个 Voting Disk(至少3个),否则无法打破平局——否则一断私网,两边都觉得自己是“多数”,谁都杀不死谁Voting Disk 必须放在 ASM 磁盘组中,且该磁盘组不能启用 ASM 的 disk_repair_time 延迟剔除逻辑,否则磁盘临时不可用会被误判为永久故障不要把 Voting Disk 和 OCR 放在同一个 LUN 或同一块物理盘上——单点故障会同时摧毁仲裁+配置,直接导致整个集群不可恢复为什么加了 Quorum Device 还是脑裂了?Quorum Device(比如 NFS 共享文件或第三方仲裁服务)本质是“第 N+1 票”,但它只解决“票数平局”问题,不解决“票被抢走”或“票写失败”的问题。常见失效场景是:NFS 服务器响应延迟 > disktimeout(默认 200s),导致所有节点都写不进新投票,于是各自按旧记录判断,回到无仲裁状态。检查 crsctl get css disktimeout 和实际 Quorum Device 的 RTT(尤其跨机房 NFS),RTT 必须稳定 disktimeoutQuorum Device 文件权限必须为 grid:oinstall 且 644,否则 CSS 进程无法写入(日志里会出现 CLSGPNP_ERR 类错误但不报具体原因)Oracle 12.2+ 支持基于权重的驱逐,但 Quorum Device 本身不参与权重计算——权重只影响实例层重连决策,不影响 Voting Disk 投票结果两节点集群最容易踩的三个配置坑两节点是最容易出脑裂的拓扑,不是因为简单,而是因为容错边界太窄。很多“看似正常”的配置,在私网抖动瞬间就会触发非预期驱逐。 MacsMind 电商AI超级智能客服
