对于集群的节点驱逐问题来说,我们可以通过集群心跳机制分为三大类:
1. 网络问题导致网络心跳超时发生的节点驱逐
2. 存储设备或链路问题导致磁盘心跳超时发生的节点驱逐
3. 服务器资源不足/CSSD进程故障导致本地心跳超时发生的节点驱逐
本文主要在上述三个心跳机制的方向下,简述几种常见的节点驱逐现象及成因,示例部分情况下的日志信息及排查方法,如有疏漏感谢指出。
一般为集群软件重启(11.2及以上版本),操作系统重启(10g及11.1版本)。
集群的网络心跳由各节点的CSSD进程集群通过私网(Privat IP)网卡通信实现,网络心跳的timeout时间基于misscount参数,默认为30s,也就是说集群节点间cssd进程失联超过30s就会发生网络心跳超时导致的节点驱逐。对于我们常见的2节点集群,节点驱逐的规则一般为节点编号较小的节点保留,也就是说一般情况下的网络心跳超时存活的都是节点编号为1的节点。而在12.2版本出现了基于权重的节点驱逐特性,可以根据用户配置的权重或资源保证特定节点的存活。2节点及以上的更多节点的集群则是以节点数量作为优先存活标准。总的来说判断优先级为:节点数量>节点权重(12.2版本以上)>节点编号。
排查日志一般为cssd进程日志以及集群alert日志
cssd进程日志: