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