小编ljw*_*ker的帖子

带有坏块或其他不可恢复错误的 mdadm 故障注入测试

我最近在我的 RAID 阵列中丢失了一个驱动器(并且收到了一封来自系统的电子邮件警告我这件事,这非常好),经过一些驱动器洗牌并换入新驱动器后,我一切都安然无恙。但是一路上,我发现了这个线程,这让我开始思考如何在不实际发生的情况下实际测试磁盘错误和其他坏事。当我运行建议的 tar 命令时:

tar c /my/raid/device/mount/point > /dev/null
Run Code Online (Sandbox Code Playgroud)

它在几秒钟内完成,这显然不足以让系统实际读取所有文件(远远超过 TiB) - 所以我想我的第一个问题是为什么这可能不起作用。如果我做这样的事情:

find . -type f | xargs md5sum
Run Code Online (Sandbox Code Playgroud)

该命令运行得很好,需要很长时间才能完成……但它也会加载 CPU 来完成所有求和。这可能会也可能不会比“tar”更快或更容易 - 我更好奇为什么 tar 命令没有按我预期的那样工作。

无论如何 - 第二个问题,更普遍的是:有没有办法按照这些方式做一些事情来进行故障注入测试:

  1. 查找(或创建)一个我不关心的文件...
  2. 确定磁盘上的一个块用于存储此特定文件...
  3. 伪造软件/操作系统认为这个块是“坏的”(我假设通过以某种方式标记它,这是我的知识耗尽的地方)
  4. 运行我的测试脚本和/或错误检查例程
  5. 确认阵列既报告错误又执行任何其他必要的纠正措施......
  6. 再次将该块/扇区标记为“好”,以便系统/操作系统正常使用它。

这似乎是可行的,但我对 linux 工具没有足够详细的知识,这些知识可以让我在设备级别将块标记为坏块,而实际上它不是坏块...

对此有何想法?或者,如果有更优雅的方法来解决这个问题,我也很高兴听到......

raid hard-drive mdadm fault-tolerance

2
推荐指数
1
解决办法
905
查看次数

标签 统计

fault-tolerance ×1

hard-drive ×1

mdadm ×1

raid ×1