如何让Linux软件RAID1检测光盘损坏?
这是噩梦般的日子之一:在
Linux SW-RAID1上运行的虚拟化服务器运行的VM在看似随机的代码块中展示随机段错误.
在调试时,我发现文件在每次运行时都会给出不同的md5sums.深入挖掘我发现:构成RAID1镜像的原始磁盘分区包含2位差异和大约1位差异.一个光盘上有9个扇区完全为空,另一个光盘上有数据填充. 显然,Linux从镜像集的不确定选择的光盘中返回一个扇区.因此,有时相同的扇区返回OK,有时会损坏返回. docs说:
谢谢.那会帮我睡觉. : – / 有没有办法让Linux至少通过使用扇区校验和或类似的东西来检测这种损坏?这会在RAID5设置中被检测到吗?这是我希望我使用ZFS还是btrfs(一旦没有超级管理员功能就可以使用)的那一刻? 编辑:I am not alone. 解决方法
您可以强制检查(例如)md0
echo "check" > /sys/block/md0/md/sync_action 您可以使用检查测试的状态 cat /sys/block/md0/md/sync_action 当它返回检查检查正在运行,一旦它返回空闲你就可以做 cat /sys/block/$dev/md/mismatch_cnt 查看不匹配计数是否为零.无论如何,许多发行版都会自动执行此检查,例如每周为您运行,就像大多数工业硬件RAID在后台持续运行一样(它们通常称之为“RAID擦除”),而阵列则处于空闲状态.请注意,根据fedora的自动检查文件中的注释,内核中的RAID1写入是无缓冲的,因此即使对于健康的阵列,如果安装了阵列,则不匹配计数也可能为非零. 因此,在VM停机时通过执行此检查来停止阵列,如果可能的话,可能是个好主意. 我补充说,当他们这样说时我同意这些文件
RAID应该防止设备完全失效;防止存储设备元素中的增量随机故障是错误检查和块重新映射的工作,这可能最好在控制器本身中完成.我很高兴文档警告人们RAID的局限性,特别是如果它是在片状设备上实现的话.我发现对驱动器进行频繁的smartctl运行状况检查可以帮助我保持在驱动器之上,驱动器开始显示导致不同步镜像的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |