我正在寻找测试我的针对产生当读取某些块的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,使纯误差磁盘

请参阅也设备映射从“RHEL 5附录 逻辑卷管理器管理”。

其他提示

块设备是使用 NBD 以发挥最简单的方法

下载从用户级来源 GIT中://github.com/yoe/nbd.git 和修改nbd-server.c你希望它失败,或者在一个可控随机模式,或基本上任何你想要的失败哪个地区在上读取或写入失败。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top