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 中的随机字节替换为随机值。probability 是一个介于 0 和 1000000000 之间的整数,表示 0% 到 100% 的损坏概率。
- random_write_corrupt <probability>
在 <down interval> 期间,将写 bio 中的随机字节替换为随机值。probability 是一个介于 0 和 1000000000 之间的整数,表示 0% 到 100% 的损坏概率。
示例
将读 bio 的第 32 个字节替换为值 1
corrupt_bio_byte 32 r 1 0
将 REQ_META (=32) bio 的第 224 个字节替换为值 0
corrupt_bio_byte 224 w 0 32