根因:CephFS 目录目录项 (dentry) 元数据异常,目录底层 inode、文件数据完好;但是目录名字段解析异常,WebUI 的目录浏览器无法解析非法 / 异常目录名,展示为空白;Windows SMB/CIFS 客户端解析目录元数据失败,无法列举子文件;底层 ceph 存储的 OSD 数据没有损坏,数据是安全的,不要删除该目录!
⚠️重要禁忌:不要在 Web 界面点删除这个空格目录,会连带删掉全部业务数据。
ceph -s
确认HEALTH_OK,OSD 全部 up,MDS 全部 active,无 osd 损坏。
2. 进入父目录,确认异常目录:ls 会看到一个名称为空串 / 乱码目录,cd 可以进入,ls 里面业务文件全部存在。
cd /mnt/cephfs/你的父目录
ls -la
#可以看到一个名字异常的目录,cd可以进去,里面业务文件全部存在
cd "./异常目录"
ls
原理:数据 inode 没有损坏,仅仅目录的目录项名字损坏,在父目录执行 rename,给异常目录赋予合法新名称,修复 dentry 元数据,WebUI、CIFS 即可恢复识别。
renameat方式重命名(不能直接 mv,名字是空字符串普通 mv 识别失败)#示例,把异常空名目录重命名为 temp_bak
find . -maxdepth 1 -type d -empty -exec mv {} ./temp_bak \;
执行完成后,父目录下出现
temp_bak,进入 temp_bak,确认业务文件全部还在。
⚠️执行重命名操作期间,建议临时停止业务读写,断开所有 Windows CIFS 挂载,避免重命名瞬间产生读写报错。
temp_bak目录,Web 页面可以浏览内部文件;temp_bak目录;如果原来的共享名不想变,重命名完成业务验证没问题后,可以再次 rename 改回原来业务目录名字。
cp -rp复制到新建目录;❗不要直接 rm 删除旧异常目录,复制全部数据确认业务完全正常之后,再考虑清理旧目录。
常见触发诱因:
收集日志:查看 MDS 日志
ceph mds stat
journalctl -u ceph-mds@*
ceph -s集群状态健康无告警;该场景属于 MDS 元数据目录项异常,虽然数据还在,属于存储元数据故障,建议开 H3C 400TAC 工单,把现象、ceph -s 输出、MDS 日志一并提交原厂,确认是否是已知版本 bug。
禁止操作清单: ❌不要 WebUI 删除显示空白的目录; ❌不要直接 rm -rf 这个空名目录; ❌不要直接重启 MDS 集群,先备份确认文件完好; ❌不要直接升级存储版本,先把元数据故障修复。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论