网络问题导致金仓数据库备机无法加入集群的排查与解决

在金仓数据库集群的运维过程中,集群故障处理是一项极具挑战性的工作。近期,我们遇到了一个因网络问题导致备机无法加入集群的典型案例,本文将详细复盘整个问题的排查过程、分析故障原因,并给出切实可行的解决方案,希望能为大家在处理类似问题时提供参考。
问题描述
在一次集群故障处理中,出现了备机 db 节点持续重启,无法加入集群的异常情况。原本的主机发生故障后,恢复成了备机节点,但此后该节点陷入了每分钟不断启动、停止的循环,始终无法成功加入集群,严重影响了数据库集群的正常运行和数据的高可用性。
分析过程
面对备节点不断重启的现象,我们首先从数据库日志入手进行观察。通过深入分析日志信息发现,备库节点判断自己没有按照期望连接到主数据,而造成没有连接上主数据库的原因,是期望的备数据库 IP 地址并没有出现在主数据库列表内。进一步查看现场人员执行的操作命令结果,发现主数据库的列表显示的备库 IP 为 Cluster 组件的 VIP 。
经过对网络原理的深入研究,我们了解到操作系统的默认路由会根据不同子网的 metric 优先级来排序(各 OS 不一致),以此决定在归属多个 IP 连接服务器端时,服务器端获得的 source IP 。而此次问题中,获取 IP 异常正是导致备机无法加入集群的关键因素。
为了进一步确认网络 IP 问题,我们执行 ip addr 命令进行检查。结果显示,集群 VIP 和主备数据库的网络地址均不一致,其中 VIP 为 / 24,主数据库为 / 16,备数据库为 / 15。这个发现为我们定位问题的根本原因提供了重要线索。
根本原因
综合上述分析,我们得出导致备机无法加入集群的根本原因主要有以下两点:
主备数据库 IP 问题:主数据库的网络地址为 / 16,备数据库的网络地址为 / 15,两者不在同一个网络地址内,这使得备机在尝试连接主机时,因网络地址不匹配而无法建立有效连接。
现场配置问题:现场配置的 VIP 子网掩码为 / 24,与主备数据库的子网掩码不一致。在金仓数据库集群的配置中,VIP 的子网掩码必须和数据库一致,例如 / 16,否则会导致网络通信异常,影响备机加入集群。
解决方案
针对上述问题的根本原因,我们制定了以下具体的解决方案:
统一子网 IP:确保测试和实际生产环境的子网 IP 必须一致,例如均设置在 / 16 的子网掩码内。这样可以保证主备数据库以及 VIP 在同一个网络环境中,避免因网络地址不匹配导致的通信问题。
调整现场配置:将现场配置的子网掩码保持和主备数据库相同,例如修改为 / 16。在调整配置时,需要严格按照金仓数据库的官方文档和操作规范进行操作,确保配置的准确性。
重新部署:在完成上述子网 IP 和现场配置的调整后,按照金仓数据库集群的部署流程重新进行部署。在重新部署过程中,要仔细检查每一个步骤,确保各项配置正确无误。部署完成后,对集群进行全面的测试,验证备机是否能够成功加入集群,以及集群的各项功能是否正常运行。
通过以上对网络问题导致金仓数据库备机无法加入集群的问题分析和解决方案的实施,我们成功解决了此次故障。在今后的金仓数据库集群运维工作中,我们要更加注重网络配置的准确性和一致性,定期对集群进行巡检和维护,及时发现并解决潜在的问题,确保数据库集群的稳定运行和数据的安全可靠。
评论