数据库适配-Tpops不支持qdfs文件系统
背景(对案例中的事件发生背景进行客观描述,其中包括但不限于时间、地点、人物、项目背景,不需要介绍太多细节)
问题描述
通过Tpops下发实例,提示服务器错误,然后查了wiki和相关的文档都没有说明是什么造成的。
报错:DBS.200005 服务器错误,wiki上只提到是开发者自定义的错误代码。
过程与结果(针对问题展开分析,描述所采取的相应措施和具体实施过程,应逻辑清晰)
问题分析:
通过上面的报错无法判断是什么原因,在wiki上面也没相关的报错。
求助oncall,
1. 定位问题,根据traceid找后端日志报错。打开浏览器,点击F12,打开chrome控制台,点击网络页签。
2. 点击对应请求详情->标头->响应头->X-TRACE-ID 获取到请求traceId
3. 获取到X-TRACE-ID,直接登录Tpops后台,查看实例日志。/data/cloud/logs/GaussDB-instancemanager/gaussdb/gaussdb.error.log
4. 后台日志报错提示:get pvs info failed\not a block device,从报错里面可以很明显的判断出,tpops校验磁盘时出现了问题,无法识别客户提供的磁盘。因为本次就是为了让客户自研的qdfs文件系统和我们tpops适配,所以正常情况下需要提需求来做适配,但是因为其他原因就需要先适配,需要想办法,后面拉研发看,定位是那个脚本导致,通过修改脚本的方式跳过这个校验,后续有问题继续修改代码来做适配。
1. 通过错误查询脚本;find /dbs -type f -exec zgrep -H 'get pvs info failed' {} +
2. Oncall给出脚本路径;
df -BG | grep -w %s | awk '{print $2}'" % disk_name
df -BG | grep -w /dev/qdisk/N64b8eC1:/dev/qdisk/N8aa5dC1 | awk '{print $2}' --if分支不会报错
lsblk {} -dbn /dev/qdisk/N64b8eC1:/dev/qdisk/N8aa5dC1 --else分支会报错
注意:
A.修改数据节点的脚步即可,tpops不需要修改;
B.修改之后无法生效,需要在数据节点执行以下命令才行。
ps -ef |grep dbm
kill -9 进程号,kill之后会自动拉起。
管理/技术根因
根因就是目前咱们的Tpops还没有和一些客户自研的文件存储设备适配,无法识别一些特殊的挂盘方式,需要后续完善,兼容识别各种类型的存储。
经验与教训
1. 积累了通过X-TRACE-ID的方式,进行故障定位的经验;
2. 学习了通过后台查看Tpops管控的健康情况;
3. 了解了如何求助,问题上升。
- 点赞
- 收藏
- 关注作者
评论(0)