fnOS 存储空间无法挂载故障报告
系统版本:X86
设备环境:物理机、局域网
BUG现象:
系统版本:
存储池信息:
- 数据盘:2 × 4TB
- RAID1(md127)
- 文件系统:Btrfs
- 原配置:开启 SSD 只读缓存
- 缓存盘:NVMe(md2p1)
⸻
故障经过
存储池开启的是SSD 只读缓存。
缓存盘出现异常后,飞牛后台提示缓存盘故障,因此在后台执行了删除 SSD 缓存操作。
删除完成后,存储空间变成未挂载。
点击”挂载”提示内部错误。
⸻
已确认情况
RAID 状态正常
cat /proc/mdstat
结果:
md127 : active raid1
[UU]
两块 4TB 硬盘全部在线,没有降级。
⸻
LVM 状态
最开始执行:
pvs
提示:
Inconsistent metadata found
PV /dev/md2p1 was missing
has unused reappeared PV /dev/md2p1
之后执行:
vgck --updatemetadata trim_aae24e1e_1728_4d15_a8ea_1aafe0347249
再次执行:
vgck trim_aae24e1e_1728_4d15_a8ea_1aafe0347249
已经无任何报错。
LV 当前状态:
Type: linear
Physical volume:
/dev/md127
缓存层已经不存在。
⸻
Btrfs 故障
执行:
mount -t btrfs /dev/mapper/trim_aae24e1e_1728_4d15_a8ea_1aafe0347249-0 /mnt/test
提示:
can't read superblock
⸻
执行:
btrfs check --readonly
输出:
parent transid verify failed
ERROR: root [4 0] level 2 does not match 1
Couldn't setup device tree
ERROR: cannot open file system
⸻
执行:
btrfs rescue zero-log
提示:
Couldn't setup device tree
⸻
执行:
btrfs check --repair
提示:
Couldn't setup device tree
ERROR: cannot open file system
没有真正进入 repair。
⸻
执行:
btrfs-find-root
输出:
Found tree root
gen 7727
历史 Root:
gen 7726
gen 7718
gen 7714
说明历史 Tree Root 存在。
⸻
dmesg
内核日志:
level verify failed on logical 32440320
wanted 1 found 2
failed to read root (objectid=4)
open_ctree failed: -5
⸻
已尝试
已经尝试:
- mount
- mount -o ro
- mount -o usebackuproot
- mount -o rescue=all
- btrfs rescue zero-log
- btrfs rescue super-recover
- btrfs check –readonly
- btrfs check –repair
- btrfs restore
- btrfs-find-root
- vgck –updatemetadata
均无法恢复挂载。
⸻
当前判断
目前:
- RAID 正常
- LVM 已恢复一致
- LV 为 linear,仅使用 md127
- Btrfs Tree Root(objectid=4)无法读取
- 删除 SSD 只读缓存后开始出现该问题
怀疑缓存移除过程中导致 Btrfs 元数据损坏,希望官方协助恢复文件系统或提供修复方案。
⸻
需要官方协助
希望协助:
- 恢复该 Btrfs 文件系统。
- 如果需要使用内部工具恢复历史 Tree Root(例如 gen7726),希望提供指导。
- 数据可接受丢失最近几天,只希望整个存储池恢复挂载。
联系方式:(18626235118)微信同号 务必联系 谢谢