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