知识卡片
虚拟化环境的故障切换与仲裁机制
内容
当一台物理服务器故障时,高可用集群会把其上运行的虚拟机在其他健康的物理服务器上重新启动, 以恢复业务运行,这个过程依赖一套仲裁机制来准确判断”故障”是否真的发生。仲裁的必要性在于: 如果只凭单个节点的判断就触发故障切换,网络抖动等假阳性会导致误判,把明明正常的服务器上的 虚拟机也重新拉起,造成同一虚拟机在两个物理节点同时运行、抢占同一份IP和存储资源的”脑裂” 问题。因此在极限情况下,仲裁机制本身不能失败——它必须比它要监控的对象更可靠,这是所有 “故障检测者”类组件共有的设计难点:检测故障的机制自己也可能故障,所以往往需要引入第三方 仲裁节点或多数投票机制,而不是让任意两个节点互相监督。
参考来源
《数据中心系统工程及应用》第9章《虚拟化数据中心》