【银河麒麟高级服务器操作系统-实例】集群存储文件系统异常,本地复现+详细分析+解决建议

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

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

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

文档中心:https://documentkylinos.cn


服务器环境以及配置

【机型】物理机 TG225 B1

|----------|-------------------------|
| 处理器: | HUAWEI Kunpeng 920 5220 |
| 内存: | 512G |
| 整机类型/架构: | ARM |
| BIOS版本: | Huawei Corp.5.19 |

【内核版本】

4.19.90-23.42.v2101.ky10.aarch64

【OS镜像版本】

银河麒麟高级服务器操作系统 Kylin-Server-10-SP1-Release-Build20-20210518-arm64

【第三方软件】

阿里云(k8s集群)+华为csi组件访问k8s集群存储

现象描述

pod飘逸后挂载失败,通过"blkid -o udev /dev/dm-35命令和lsblk命令查看不到文件系统属性, 手动mount 挂载时,提示指定文件系统类型,mount -t ext4 后可正常挂载和访问。k8s集群是使用CSI插件自动挂载文件系统,无法指定-t 文件系统类型,还需查明具体什么原因导致的,如何解决。mount挂载报错和csi插件日志报错,如图1:

图 1

现象分析

日志分析

通过查看messages日志,问题设备在首次绑定到KPVERW07主机,组成多路径设备mpathbb,如图 2所示。

图 2

在k8s日志中首次出现mount失败的情况,如图 3所示,由此可以判断,磁盘出现多个文件系统的情况可能发生在10:20:04-10:20:08之间或者更早。由于无早日志,无法判断问题发生的具体时间。

图 3

分析e2image收集的问题磁盘的元数据信息。通过命令dumpe2fs -i pvc.img查看文件元数据信息,分析后发现,存在组的可用块数量与可用块数位图无法对应的情况,如图 4中显示23513个可用块与块位图显示可用区域为0-32767(32768个)无法对应。同样可用inode数量与可用inode数位图也无法对应,从图 5可以看出可用inode位图最大为8192,但是其中存在大量不可用的inode号,远小于图 5中的8181个可用inode。怀疑此时磁盘上的ext4的元数据已经损坏。通过debugfs查看ext4的文件系统日志,但日志信息也已经损坏,无法查看,如图 6所示。

图 4

图 5

图 6

本地复现

将多路径设备,绑定到两台机器上,在两台机器上同时对该磁盘分别初始化ext4和xfs文件系统,偶现文件系统异常,和当前问题现象一致。如图7所示:

图 7

分析结果

综上所述,该问题应该是多个客户端或程序同时对同一个多路径设备进行操作,导致同一时间写入多个文件系统。

解决方案

1、使用mount -t指定文件系统的方式挂载问题磁盘,并将数据备份。

2、使用mkfs重新初始化新的文件系统。

3、重新挂载,并将备份数据恢复。

后续计划与建议

1、建议排查"阿里云(k8s集群)+华为csi组件访问k8s集群存储"应用使用场景(包括业务系统的指令操作),是否存在mkfs文件系统操作,以及是否存在多客户端同时对多路径设备mkfs操作的情况。

2、转储的元数据信息存在错误,怀疑盘上的ext4文件系统已损坏,建议不要再进行写入操作,及时备份重要文件并重新初始化文件系统。

相关推荐
宁zz15 小时前
乌班图安装jenkins
运维·jenkins
无名之逆16 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
大丈夫立于天地间16 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
cg501716 小时前
Spring Boot 的配置文件
java·linux·spring boot
暮云星影16 小时前
三、FFmpeg学习笔记
linux·ffmpeg
rainFFrain16 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon16 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
mingqian_chu17 小时前
ubuntu中使用安卓模拟器
android·linux·ubuntu
xujiangyan_17 小时前
nginx的反向代理和负载均衡
服务器·网络·nginx