TL;DR 摘要:将 md 扇区号转换为/dev/mdX
设备内的偏移量,以及如何使用xfs_db
. 扇区号来自sh->sector
in linux/drivers/md/raid5.c:handle_parity_checks5()
。
我不知道 MD 内部结构,所以我不知道如何处理printk
我添加的日志记录的输出。
组件设备的偏移(用于dd
或十六进制编辑器/查看器)也很有趣。
我想我应该在 Linux-raid 邮件列表上问这个问题。是仅限订阅者,还是可以不订阅就发帖?
我的桌面(没有 LVM)直接在 4 个磁盘的 MD RAID5 上安装了 xfs。最近的mismatch_cnt
清理检测到非零值(实际上是 8,因为 md 一次在 4kiB 页面上运行)。
这是 RAID5,而不是 RAID1/RAID10 ,其中mismatch_cnt
!= 0 在正常操作期间可能发生。(此 wiki 页面底部的其他链接可能对某些人有用。)
我可以只是盲目地repair
,但是除了失去选择重建方式的任何机会之外,我不知道要检查哪个文件可能损坏。 Frostschutz 对类似问题的回答是我找到的唯一建议,用于追踪文件系统中的差异。它既麻烦又缓慢,我宁愿使用更好的方法先将其缩小到几个文件。
奇怪的是,md 的检查功能没有报告发现错误的位置。 我加入了printk
在MD / raid5.c记录sh->sector
在if
该增量分支mddev->resync_mismatches
中handle_parity_checks5()
(小片在github上发布,最初基于4.5 RC4从kernel.org。)对于这个是确定用于一般用途,它可能会需要避免在修复中大量不匹配的日志(可能只在新值 …