模拟与读取错误故障块设备?
-
18-09-2019 - |
题
我正在寻找测试我的针对产生当读取某些块的I / O读取错误故障块的装置应用更简单的方法。试图用一个物理硬盘驱动器与已知的坏块是一种痛苦,我想找到一个软件解决方案,如果存在的话。
我没有找到它允许创建的接口 Linux磁盘故障模拟驱动那可以被配置为当被读出的块的一定范围,以产生错误,但它是为2.4 Linux内核和2.6尚未更新。
什么是完美的将是一个losetup和循环驱动器还允许您配置它返回尝试从一组给定块的读取时读取错误。
解决方案
这不是你正在寻找一个回环设备,而是设备映射。
使用 dmsetup
来创建由支持的装置“错误”的目标。这将在/dev/mapper/<name>
显示。
第7页的设备映射器演示(PDF)有什么你要找的:
dmsetup create bad_disk << EOF
0 8 linear /dev/sdb1 0
8 1 error
9 204791 linear /dev/sdb1 9
EOF
或者离开了sdb1
部分和把“差错”靶作为用于块0的设备。 - (代替sdb1
)8,使纯误差磁盘
其他提示
这似乎是Linux的内置的故障注入功能是使用一个不错的主意。
博客: http://blog.wpkg.org/2007 / 11/08 /使用故障注入/ 结果 参考: https://www.kernel.org/doc/Documentation /fault-injection/fault-injection.txt
块设备是使用 NBD 以发挥最简单的方法
下载从用户级来源 GIT中://github.com/yoe/nbd.git 和修改nbd-server.c
你希望它失败,或者在一个可控随机模式,或基本上任何你想要的失败哪个地区在上读取或写入失败。
不隶属于 StackOverflow