我最近在我的 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 命令没有按我预期的那样工作。
无论如何 - 第二个问题,更普遍的是:有没有办法按照这些方式做一些事情来进行故障注入测试:
这似乎是可行的,但我对 linux 工具没有足够详细的知识,这些知识可以让我在设备级别将块标记为坏块,而实际上它不是坏块...
对此有何想法?或者,如果有更优雅的方法来解决这个问题,我也很高兴听到......