最近 ニュースがリリースされました Linuxカーネルの作成者、 「LinusTorvalds」がコアブランチに受け入れられました (どのバージョン5.4が形成されるかに基づいて) dm-cloneモジュールの実装 新しいコントローラーの実装で Device-Mapperに基づいています。
この新しい提案 Linuxカーネルの場合 既存のブロックデバイスのクローンを作成できます。 このモジュールでは、ローカルコピーベースを作成できます クローン作成プロセス中に書き込むことができる読み取り専用ブロックデバイス上。
Linuxカーネル用に提案されたモジュールの典型的なアプリケーションとして 「Dm-clone」とは、読み取り専用モードおよびI / O処理でのリモートファイルデバイスのネットワーククローニングを指します。 遅延が長く、遅延を最小限に抑えて要求の記録と処理をサポートする高速ローカルデバイスへ。
それと クローンデバイスをマウントしてすぐに使用を開始する機能を提供します 作成後、データ転送プロセスが終了するのを待たずに。
一方、情報のコピーはバックグラウンドで続行されます、新しいデバイスにアクセスするときに生成される入力/出力と並行して。
dm-cloneの主な使用例は、潜在的にリモートのレイテンシーで読み取り専用のファイルタイプのロックデバイスを書き込み可能なプライマリタイプのデバイスにクローンすることです。
例えば dm-cloneを使用して、接続されたストレージバックアップを復元できます SSDまたはNVMeに基づくローカルストレージ上のNBD、ファイバーチャネル、iSCSI、AoEなどのプロトコルを介して利用可能なネットワークに接続します。
dm-cloneコードは、サイズがブロックサイズ(デフォルトでは4K)と一致する小さなランダム書き込み用に最適化されています。
クローン作成プロセス中、読み取り要求はクローン化されたデバイスからのデータの直接要求につながり、まだ同期されていない領域に影響を与える書き込み要求は、要求されたブロックの予定外のロードが完了するまで遅延されます(記録関連ブロックのロード操作は即座に開始されます)。
「破棄」操作によって削除されたブロックは、コピープロセスから除外されます(マウント後、ユーザーは「fstrim / mnt / cloned-fs」を実行して、FSで使用されていないブロックのコピーを回避できます)。
情報 ロードされたブロックの変更とデータについて それらは別のローカルメタデータテーブルに保存されます。
クローン作成が完了すると、ユーザーは、クローン作成の開始以降に行われたすべての変更を反映した、ソースデバイスの完全な作業コピーを受け取ります。
データを新しいデバイスに直接反映する行のテーブルに置き換えることで、同期後にクローンメタデータを含むテーブルを削除できます。
UnionfsおよびOverlayFSベースのソリューションとの主な違いは、dm-cloneは、このデバイスで使用されるファイルシステムに関係なく、ブロックデバイスレベルで機能し、ソースデバイスの完全なコピーを形成し、追加のレイヤーを課さないことです。変更が追跡される場所。
dm-mirrorとは異なり、dm-cloneモジュールは元々、書き込み操作を変換せずに、読み取り専用モードの元のセクションでのみ機能するように設計されていました。
dm-snapshotでは、完全なコピーは作成されず、バックグラウンドコピーはサポートされていません。 dm-cacheでは、完全なコピーは作成されず、書き込み操作が転送され、作業はキャッシュヒットに削減されます。 最も近い機能はdm-thinです。
dm-cloneは、dm-kcopydを使用して、ソースデバイスの一部をターゲットデバイスにコピーします。 デフォルトでは、リージョンのサイズと同じサイズのコピー要求が発行されます。
`hydration_batch_size <#regions>`メッセージを使用して、これらのコピー要求のサイズを調整できます。 水和バッチサイズを大きくすると、dm-cloneが隣接する領域をグループ化しようとするため、これらの多くの領域からデータをバッチコピーします。