CSS in RAC
June 21st, 2009
从整体架构上来说,Oracle RAC分为几大部分
- OCR&Voting disk
- CRS stack
- CRS resources
而CSS是CRS stack中的一部分,极重要的一部分,是整个RAC所有节点维系一致性的纽带。
CSS Daemon主要由Group Management(GM)和Node Monitor(NM)组成。
- GM:管理instance and communicate with LMON
- NM:时刻监控集群中各个节点的生存状态。通过network heartbeat 和disk heartbeat来确保各节点alive. 例如,解决split-brain,network/process failure.
NM和GM都有一个Master node。而且选择方法也不尽相同,就现有资料及log来说,
- NM:master被称为RM(reconfig manager),the lowest node number.
- GM:1. oldest node 2. the node not the RM(也许出于平衡的考虑)
总之,就master node来说,是不一定一样的。这在多节点cluster里体现的可能更为明显些。
当有节点离开/加入cluster,CSS Daemon会进行reconfig。整体的一个流程如下:
- NM初始化,RM会给各节点发送同步信息,其他节点response with ACK.
- vote阶段,RM会发给各节点一个写vote的信息。其他节点反馈一个带有vote信息的ACK(包括node标识,状态及GM lister endpoint)
- split检查,RM会利用vote信息来判断cluster中是否发生了脑裂的症状。
- evict阶段,RM会根据split检查结果发送给失败节点evict信息,失败节点会返回ACK(等待MISSCOUNT),并reboot自己。
- NM 更新阶段,RM会发送一个带有cluster成员和节点信息的信息给所有节点,所有节点返回ACK确认,然后都发送一个reconfig event事件(NMEVENT_RECONFIG)给各自GM
- 确定GM master
- GM master广播成员变化信息,update新group的各节点新的通讯方式(endpoint),并完成锁同步。
11.2的RAC在集群方面变化很大,至于CSS internal的改变,还需要再仔细研究,也欢迎大家讨论。
-END-