dm-flakey

此目标与线性目标相同,只是它会定期表现出不可靠的行为。 发现它在模拟故障设备以进行测试时很有用。

从加载表的时间开始,设备可用 <up interval> 秒,然后表现出不可靠的行为 <down interval> 秒,然后此循环重复。

此外,请考虑将此目标与dm-delay目标结合使用,dm-delay目标可以延迟读取和写入,和/或将它们发送到不同的底层设备。

表参数

<dev path> <offset> <up interval> <down interval> \
  [<num_features> [<feature arguments>]]

强制参数

<dev path>

底层块设备的完整路径名,或“主设备号:次设备号”设备号。

<offset>

设备内的起始扇区。

<up interval>

设备可用的秒数。

<down interval>

设备返回错误的秒数。

可选功能参数

如果不存在功能参数,则在不可靠期间,所有I/O都会返回错误。

error_reads

所有读取 I/O 都失败并发出错误信号。写入 I/O 被正确处理。

drop_writes

所有写入 I/O 都会被静默忽略。读取 I/O 被正确处理。

error_writes

所有写入 I/O 都失败并发出错误信号。读取 I/O 被正确处理。

corrupt_bio_byte <Nth_byte> <direction> <value> <flags>

在 <down interval> 期间,将每个匹配的bio的数据的第<Nth_byte>个字节替换为 <value>。

<Nth_byte>

要替换的字节的偏移量。计数从 1 开始,以替换第一个字节。

<direction>

“r”表示损坏读取,或“w”表示损坏写入。“w”与drop_writes不兼容。

<value>

要写入的值(从 0 到 255)。

<flags>

仅当 bio->bi_opf 设置了所有选定标志时才执行替换。

random_read_corrupt <probability>

在 <down interval> 期间,将读取 bio 中的随机字节替换为随机值。概率是介于 0 和 1000000000 之间的整数,表示 0% 到 100% 的损坏概率。

random_write_corrupt <probability>

在 <down interval> 期间,将写入 bio 中的随机字节替换为随机值。概率是介于 0 和 1000000000 之间的整数,表示 0% 到 100% 的损坏概率。

示例

将READ bio的第32个字节替换为值1

corrupt_bio_byte 32 r 1 0

将REQ_META (=32) bio的第224个字节替换为值0

corrupt_bio_byte 224 w 0 32