【银河麒麟高级服务器操作系统实际案例分享】数据库资源重启现象分析及处理全过程

更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛

https://forum.kylinos.cn


了解更多银河麒麟操作系统全新产品,请点击访问

麒麟软件产品专区:https://product.kylinos.cn

开发者专区:https://developer.kylinos.cn

文档中心:https://document.kylinos.cn


服务器环境以及配置

|----------|----------------------------------|
| 处理器: | Hygon C86 7285 32-core Processor |
| 整机类型/架构: | x86_64 |

【内核版本】

4.19.90-23.6

【OS镜像版本】

银河麒麟高级服务器操作系统 Kylin-Server-V10-SP3-General-Release-2303-x86_64

【HA版本】

银河麒麟高可用 Kylin-HA-10-SP2-Release-Build10-20211124-x86_64-2021-11-25

【第三方软件】

现象描述

集群中pgsql资源重新启动。

现象分析

心跳连接及vip资源monitor超时

分析日志信息,在Nov 11 13:28:22时集群心跳发现无法连接的问题,之后立即恢复:

20秒之后,集群vip1_sims资源monitor超时:

vip1_sims的monitor超时时间设置是20秒,所以在心跳出现问题的时间vip1资源正好执行监控操作并无法按时返回数据,说明此时系统的网络或者负载可能会有问题,导致HA集群无法及时获取数据。

脚本监控函数分析

vip1_sims资源使用的是IPaddr2脚本实现,该脚本在执行monitor的时候,主要判断和执行方式如下:

  1. 判断函数执行所需要的系统命令ip是否存在
  2. 通过uname命令判断当前系统是否为Linux系统
  3. 识别当前配置的ip地址的family和scope,将给定的netmask转换成对应的数字
  4. 判断是否给定的了网卡参数,如果给定,则通过ip命令 ip -o -f inet route list match ip/netmask scope link |grep "dev nic"命令查找并确认网络信息;
  5. 判断是否能够正确找到nic和netmask;
  6. 使用命令ip -o -f inet addr show |grep ip,判断当前ip是否存在;
  7. 通过/usr/libexec/heartbeat/findif命令获取当前环境变量中的nic netmask brdcast等信息;
  8. 通过ip link show nic命令判断是否为infiniband
  9. 判断是否配置了nic参数
  10. 根据配置的ip和netmask,使用ip -o -f inet addr show命令判断ip和nic是否存在;

如果不存在则monitor返回错误信息;如果存在则monitor返回正常。

如果在设置的超时时间内monitor没有任何返回值,则会报超时time out错误。

组资源先后关系

下图是资源配置中组资源中资源先后关系:

HA组资源是有顺序和依赖要求的,即启动的时候从第一个资源到最后一个资源顺序启动,停止的时候从最后一个资源到第一个资源顺序停止。如果有资源出现问题,则此资源后面的资源是无法启动的。所以当vip1_sims资源监控出现问题要求资源restart的时候,该资源后面的所有资源也要求随之重启,所以导致数据库资源pg_sims资源重启。

小结

如上,由于问题时间的vip1_sims资源出现monitor超时故障,导致组内该资源之后的所有资源必须随之尝试重新启动,所以导致数据库资源pg_sims重启。

vip1_sims出现monitor超时故障的原因,由于日志方面无法获取相关内容,所以猜测可能与当时即时的网络条件或者负载有关系,暂时无法确定原因。进一步的分析可以部署更细粒度的监控脚本获取系统及网络情况。

后续建议方案

  1. 通过分析集群心跳配置发现, 心跳网络和业务网络共用。如果业务负载较高,会影响集群心跳,建议分开。同时建议将HA集群的token设置为6000,降低集群心跳的敏感度。
  2. 由于当前的日志无法判断超时原因,建议给需要监控的资源增加trace_ra配置,监控记录脚本执行过程,方便排查问题原因。由于每次执行会产生一个文件, 需要定期清理,防止占用过多的空间。
  3. 如果vip资源和数据库资源不存在强依赖关系,建议可以将vip资源放在组的最后面,以减少其对其他资源的影响。
相关推荐
Tassel_YUE6 分钟前
Zabbix+Deepseek实现AI告警分析(非本地部署大模型版)
运维·数据库·人工智能·zabbix·运维开发·deepseek
大学生毕业题目7 分钟前
毕业项目推荐:基于yolov8/yolov5/yolo11的田间杂草检测识别系统(python+卷积神经网络)
开发语言·人工智能·python·yolo·cnn·pyqt·田间杂草
ThisIsClark7 分钟前
【玩转正则表达式】将正则表达式中的分组(group)与替换进行结合使用
数据库·mysql·正则表达式
m0_748250741 小时前
2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)
数据库·mysql
Anchenry1 小时前
【Python爬虫】爬取公共交通路网数据
开发语言·爬虫·python
Allen Bright1 小时前
【Java基础-51.6】Java中的BufferedReader:高效读取文本数据
java·开发语言
chian-ocean1 小时前
从零开始:Linux环境下如何制作静态库与动态库
linux·运维·服务器
梦幻通灵1 小时前
Java中lombok的@Data注解【布尔类型】字段定义方式
java·开发语言
给我一个卤鸡爪和卤鸡头2 小时前
5c/c++内存管理
c语言·开发语言·c++
茨球是只猫2 小时前
第一个 C++ 程序
开发语言·c++