
以LAXCUS分布式操作系统集群中的管理节点为例,LAXCUS中无论是主域集群还是子域集群,都只能有一个Master管理节点来负责所属集群的管理工作,它在自己集群里的地位是独一无二的,是保证整个集群正常运行的关键。同时,为保证集群不会因为Master节点故障造成集群的管理混乱,通常还有一至数个Monitor管理节点做为备份存在着,它们将监视Master节点运行。
在我们的测试环境,有1个Master节点和2个Monitor节点。为检查管理节点容错能力,我们进行了这样的试验:
使用Linux kill命令杀掉一个Master节点进程,在第5秒钟的时候,其中一个Monitor节点感知到Master节点发生了故障,并且立即启动故障协商机制,询问另一个Monitor节点,它对Master节点的判断,双方很快共同确认了Master节点发生了故障。然后,它们按照自己的网络地址排序,选择数字最大的那个Monitor节点,成为新的Master节点。新Master节点立即将自己从Monitor状态转入Master状态,并且通知原来所有下属节点(包括另一个Monitor节点),让它们重新注册到新Master节点下面,同时将故障的Master节点和切换过程通知给Watch节点。整个容错处理在数秒内完成。