dm-era¶
簡介¶
dm-era 是一個行為類似於線性目標的 Target。此外,它會跟蹤在使用者定義的時間段(稱為“紀元”)內寫入了哪些塊。每個紀元 Target 例項都將當前紀元維護為一個單調遞增的 32 位計數器。
用例包括為備份軟體跟蹤已更改的塊,以及在回滾供應商快照後部分失效快取內容以恢復快取一致性。
建構函式¶
era <metadata dev> <origin dev> <block size>
元資料裝置
用於儲存持久元資料的快速裝置
原始裝置
用於儲存可能更改的資料塊的裝置
塊大小
原始資料裝置的塊大小,即 Target 跟蹤的粒度
訊息¶
所有 dm 訊息都不帶任何引數。
檢查點¶
可能移動到一個新的紀元。您不應該假定紀元已遞增。傳送此訊息後,您應該透過狀態行檢查當前紀元。
take_metadata_snap¶
建立元資料的克隆,以允許使用者空間程序讀取它。
drop_metadata_snap¶
刪除元資料快照。
狀態¶
<元資料塊大小> <已用元資料塊數>/<元資料塊總數> <當前紀元> <持有的元資料根 | ‘-‘>
元資料塊大小 |
每個元資料塊的固定扇區塊大小 |
已用元資料塊數 |
已使用的元資料塊數量 |
元資料塊總數 |
元資料塊總數量 |
當前紀元 |
當前紀元 |
持有的元資料根 |
元資料根的位置(以塊為單位),該元資料根已被‘持有’以供使用者空間讀取訪問。‘-’ 表示沒有持有的根。 |
詳細用例¶
在開發此 Target 時,回滾供應商快照時使快取失效的場景是主要用例。
建立供應商快照¶
向 era Target 傳送檢查點訊息
記錄其狀態行中的當前紀元
建立供應商快照(紀元和快照現在應永久關聯)。
回滾到供應商快照¶
快取進入直通模式(參見:dm-cache 在快取中的文件)
回滾供應商儲存
建立元資料快照
透過檢查每個塊的紀元來確定自快照建立以來哪些塊已被寫入
在快取軟體中使這些塊失效
快取返回回寫/直寫模式
記憶體使用¶
該 Target 使用位集來記錄當前紀元中的寫入。它還準備了一個備用位集,以便切換到新紀元。除此之外,它使用少量 4k 塊來更新元資料。
(4 * nr_blocks) bytes + buffers
彈性¶
在對先前未寫入的塊執行寫入操作之前,元資料會在磁碟上更新。因此,dm-era 不會受到電源故障等硬崩潰的影響。
使用者空間工具¶
使用者空間工具可在命名越來越不佳的 thin-provisioning-tools 專案中找到