脑裂(split brain):描述的是私有网络心跳出现故障的时候,而每个节点都正常运行,这时侯每个节点都认为其他的节点宕机了,自己应该获得集群的控制权,这种状况就是脑裂。

为了帮助解决脑裂的问题,引入了voting disk ,voting disk oracle 建议至少3个以上,那么脑裂是怎么发生的?voting disk是怎么仲裁的?

rac正常情况下,没秒钟都是监听各个节点间的心跳信息,若某个节点在miscount秒内没有被接收到心跳信息,就会形成了两个或多个子集群,,这样的状况就是脑裂,如果发生了脑裂,决定子集群存活的因素(voting disk正常的时候)是:

1、拥有节点最多的子集群存活

2、如果两个子集群节点相等,那么节点级别低将别踢出

如: xxxx2, is smaller than cohort of 1 nodes led by node 1

当节点别踢出集群以后,为了保证被踢出的节点不能访问共享存储的数据,io fencing来解决这个问题,oracle rac会重启被踢出集群的节点,来保证共享存储的数据。

voting disk是为了解决私有网络通信故障的,所以每个节点必须要对voting disk进行通信,具体就是向voting disk写入心跳信息,由css读取这个块的信息来确定节点的状态,如果有多个voting disk,存活的节点必须可以访问(N/2+1)个以上

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐