KingbaseES V8R3 集群运维案例 -- 专用机环境网关失败分析案例

案例说明:
现有一生产环境,出现了集群无法访问的故障,需要分析集群down原因,后分析发现是因为网关地址连通故障,导致集群down,无法对外提供访问。KingbaseES V8R3集群通过节点和网关的连通性,判断节点之间网络状态;如果所有节点都无法和网关连通,集群将判断出现网络故障;早期版本默认将关闭整个集群,不再提供对外访问服务

适用版本:
KingbaseES V8R3

KingbaseES V8R3集群网关检测工作机制:
1、KingbaseCluster下watchdog进程在固定间隔时间,通过ping 网关地址监控链路的连通性,如果连通网关地址失败,则修改cluster status,比如将“master”修改为“lost”,并卸载主节点的Cluster VIP。
2、在部署完成cluster后,会通过crond定时(每隔1分钟)运行network_rewind.sh脚本,在脚本通过函数checktrustip(),检测网关地址的连通性,如果网关地址无法连通,ping 3次后失败,则关闭kingbaseES数据库实例,清除DB VIP。
3、在部署完成cluster后,会通过crond定时(每隔1分钟)运行restartcluster.sh脚本,在脚本中通过函数 pingtrustip(),监控网关地址连通性,如果网关地址无法连通,ping 3次后失败,默认等待10s后,关闭cluster服务进程。
4、网关地址恢复正常后,restartcluster.sh进程会重新启动cluster服务进程,但是数据库进程仍然需要人工介入,手工启动。

案例信息:

一、案例分析过程

1、主备库连接网关失败

主库“2022-04-06 15:57:23”秒,cluster.log记录主库连接网关失败。

备库“2022-04-06 15:57:32”秒,cluster.log记录主库连接网关失败。

2、主备库尝试连接网关
=注:主备库按照参数HEALTH_CHECK_MAX_RETRIES,HEALTH_CHECK_RETRY_DELAY配置的阈值进行网关连接尝试。=

3、2022-04-06 15:57:44 主库多次连接网关失败,主库数据库服务被shutdown,触发主备切换。

4、2022-04-06 15:57:44 发生主备切换时,备库仍然也不能ping通网关,导致备库的数据库服务也被shutdown,切换失败。

5、最终结果是,因为主备库都和网关无法正常通讯,主备库数据库服务都是shutdown;但后面网关可以ping 通时,kingbasecluster服务被重启,但是数据库服务需要人工参与启动。

二、总结
1、KingbaseCluster的节点通过测试和网关地址的连通性来判断集群的运行环境及节点的状态。
2、如果网关ip出现故障,导致集群所有的节点无法连通网关地址时,集群为了保护后台数据库数据的一致性将会关闭集群,包括后台数据库服务。
3、在网关恢复正常后,将重启集群的管理服务(kingbasecluster),但是后台数据库服务需要人工判断后手工启动。
4、为了确保集群的稳定,可以配置多个网关地址,降低因为网关故障而导致集群停止服务的因素。
5、在新的版本中,提升了网关故障的处理能力,可以参阅官网文档《支持网关故障》章节。

三、生产环境配置建议
对于生产环境,为保证网络连通的稳定性,可以配置以下参数,设置多个网关地址,一般网关地址为节点对外连通的路由ip或内网vlan的ip及同网段中服务器的固定ip等。

[kingbase@node101 bin]$ cat ../etc/HAmodule.conf |grep -i gateway
#the trust server of the cluster,which can be an IP of different segmen.example:KB_GATEWAY_IP="192.168.29.1,192.168.28.1"
KB_GATEWAY_IP="192.168.1.1,192.168.1.254"

[kingbase@node101 bin]$ cd ../../kingbasecluster/etc
[kingbase@node101 etc]$ cat kingbasecluster.conf|grep -i trust
trusted_servers='192.168.1.1,192.168.1.254'     # trusted server list which are used
posted @ 2022-05-06 14:04  KINGBASE研究院  阅读(146)  评论(0编辑  收藏  举报