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