人大金仓 KES 高可用共享集群部署遇到文件系统损坏,该如何解决?
消息来源:baojiabao.com 作者: 发布时间:2024-05-20
数据库工程师在部署 KingbaseES 高可用共享集群过程时,有时候会遇到文件损坏,系统无法启动的问题。
作为金仓数据库工程师的我在最近一次客户现场支持过程中,也遇到了同样的问题,经过多轮排查,结合丰富的产品手册,我最终找到了快速解决问题的路径。在这里我将经验分享出来,以便更多金仓数据库使用者查看。
该客户此前购买的国际巨头 Oracle 的数据库产品,现需要替换为金仓数据库产品。根据现场需要,我前往项目所在地帮助客户部署金仓 KingbaseES 高可用共享集群。
第一步:配置时钟同步
时钟同步可以采用 ntpd 同步,也可通过
timesyncd;
采用 timesyncd,需要修改
/etc/ systemd / timesyncd.conf,配置时钟同步客户端,通过 timedatectl 管理;
查看命令如下:
timedatectl show-timesync;
第二步:配置共享磁盘
由于 KingbaseES 高可用共享集群使用多节点共享磁盘,因此需要采用 DAS、NAS、SAN 等存储。本次采用 FC 磁盘阵列作为共享磁盘,FC 磁盘整阵列就是光纤磁盘阵列;
共享磁盘客户端制作多路径绑定,可以提高磁盘的可用性,有效防止磁盘故障、网络故障导致的数据丢失或损坏;
首先在配置安装 multipathd 时,修改 /etc/ multipath.conf (具体配置参见其他文章,不是本文重点),systemctl restart multipathd 启动;
在 FC 磁盘整列服务端划分磁盘,在磁盘客户端(也就是数据库服务端),执行 rescan-scsi-bus.sh 后,在主机群可以找到新创建的盘;
这时候进行多路径聚合 multipath-v2;
查看多路径绑定 multipath-ll 。
第三步:配置 udev 规则,固定磁盘名
01)udevadm info --query=all --name=/dev/dm-0
02)vim /etc/udev/rule.d/60-scsi.rules
03)ENV{ID_SERAIL}=="...",ENV{DM_WWN}=="..."RUN+="/bin/sh -c 'mknod /dev/chmpatha b $major $minor; chmod 0644 /dev/chmpatha; rm -f /dev/block/$major:$minor; ln -s /dev/chmpatha /dev/block/$major:$ninor'"
第四步:业务系统测试
安装完成后,需要进行简单功能测试和可用性测试,以便将问题尽早解决掉。首先我和技服进行了 down 机、断掉业务网和管理网、制造进程僵死等故障测试。
问题来了。在进行断网的测试中,发现数据库一直在不停地切换节点。查看日志,发现是文件系统损坏导致的数据库无法启动。
采用 fsck 的方法进行修复,
fsck -a /dev/mapper/mpatha
但是未能修复!客户表明 2 天内必须解决。
再次梳理日志,KingbaseES 集群组件在报文件系统异常前,没有任何异常日志。在 KingbaseES 文件系统异常前,仅有 kenel 相关日志。根据一般经验,怀疑可能是双挂导致的磁盘损坏。
第五步:问题排查
继续分析集群各节点的挂载记录,发现一些 mpatha 磁盘在系统重启后,在另一节点莫名其妙的挂载上了,目前推断可能是双挂导致的文件系统损坏,但是无法继续敲定重启为何导致双挂?
没有办法,只有将磁盘重新格式化,继续进行复现测试,终于抓住了问题,在异常重启后的机器上出现一条挂载记录:
/dev/mappper/mpatha 1007G 146M 956G 1%/media/root/9g0oc559-2d0a-4e88-a1e7-1b1badc9a7
实际上磁盘在另外节点正在被数据库管理进程使用,显然是双挂,那么这条挂载记录怎么来的?
重新思考操作的每一步骤,最终发现了问题的根本原因:
第六步:问题根因
没错,是操作系统的自动挂载导致的双挂问题。
于是我们将 "自动挂载" 选项去掉,同时为了保险起见,将数据库服务端所在节点的图形界面关掉,在图形模式下使用如下命令可以切换到纯命令行模式:
systemctl isolate multi-user.target
如果需要每次重启都进入纯命令行模式,可以使用如下命令:
systemctl set-default multi-user.target
彻夜鏖战,终于解决了文件系统损坏的问题,让系统恢复了正常,获得客户高度认可,我内心还是很高兴的。
小结
如果服务器均部署在国产图形化 Linux 操作系统,在图形化界面,会默认设置自动挂载。在自动挂载时数据库实例盘双挂,会导致文件系统损坏。之后,将服务器"自动挂载"取消,同时使用命令"systemctl set-default multi-user.target"设置默认为命令界面,防止误操作。这样就能快速恢复系统正常运行。
2022-05-08 08:45:38相关文章
- 美国法院裁定阿里须为Squishmallows玩具侵权案答辩
2023-12-28 19:59:34
- 小米汽车传员工3700人 雷军称小米汽车不可能卖9万9
2023-12-28 19:41:57
- 国家新闻出版署:认真研究《网络游戏管理办法(草桉徵求意见稿)》关切 实行前进一步完善
2023-12-28 19:14:56
- 天猫新规可以无条件申请“仅退款”了?淘宝天猫又离狗多多零元购近了一步
2023-12-28 18:57:55
- 印度以打击金融犯罪为由逮捕了两名 vivo 高管
2023-12-26 16:49:01
- 在国外微信收不到国内信息?微信和WeChat将被拆分
2023-12-15 10:40:15
- 苹果iPhone15 系列手机发布最新消息 预计上市发布时间9月
2023-08-06 23:21:02
- 华为将发布鸿蒙HarmonyOS4操作系统 功能五大升级支持设备清单
2023-08-06 23:17:37
- 整治自媒体网红账号 400万粉丝网红发布擦边视频被无限期封禁
2023-07-12 09:56:09
- 网传微信文件传输助手是真人是真的吗?微信官方回应
2023-06-27 15:53:32
- 电信移动送手机成了“信用购”?你上了运营商的贷款套路了吗?
2023-06-12 17:18:55
- 中国电信广东地区崩了无信号 客服回应已在核实处理
2023-06-08 15:39:04
- 消息称小米新能源汽车价格表正讨论定价区间:双版本不同配置,高配或超 35 万元
2023-03-06 12:56:03
- 华为因制裁被传或分拆剥离手机业务? 内部人士回应:可能性不大.
2023-03-05 23:26:41
- OPPO正式发布安第斯智能云,让终端更智能
2023-02-24 16:02:27
- 华为与OPPO签订全球专利交叉许可协议 包括5G蜂窝通信专利
2023-02-24 16:02:26
- 老蛙将推MINI镜头新品:目前未知具体规格 官宣将于12月20日发布
2023-02-24 16:02:26
- 首发全新35mm定制光学系统 努比亚Z50性能同样强悍
2023-02-24 16:02:25
- Redmi K60屏幕细节曝光:全系标配2K护眼柔性直屏+5000mAh大容量电池
2023-02-24 16:02:25
- OPPO Find N2今天发 合金金属折叠屏更轻了
2023-02-24 16:02:24