
dm thin を使用すると、スナップショット自体とは別にメタデータを保存できるようになったと理解しています。
同じ I/O オーバーヘッドが発生しないメタデータのみのスナップショットを作成できるかどうか知っている人はいませんか? どのブロックが変更されたかには興味がありますが、古いブロックの内容には興味がありません。
この質問の主な動機は、lvmsync(https://github.com/mpalmer/lvmsync) - ただし、大きなオーバーヘッドは発生しません。
ドキュメントにはこれを実現する方法に関する情報が少し不足していますが、私の考えでは、/dev/null または同様のものに基づいて、書き込み時に暗黙的に破棄される薄いプールを作成することです。
答え1
のデバイス マッパーに相当するのは、/dev/null
ゼロ ターゲット ( dmsetup create --table '0 <nsectors> zero' myzeroes
) です。これをシン プールのデータ デバイスとして使用し、元のボリューム (外部オリジンとして) のスナップショットを作成して、どのような変更が行われたかを追跡できると思います。これらはすべて LVM の外部で実行されます。DM の完全な柔軟性が必要な一方で、LVM は一般的なユース ケースをより便利かつ安全に実行できます。
協力を得てシンプロビジョニング.txt:
dmsetup create --table "0 $nsectors zero" myzeroes
dmsetup create pool \
--table "0 $nsectors thin-pool $metadata_dev /dev/mapper/myzeroes \
$data_block_size $low_water_mark"
thinnum=0
dmsetup message /dev/mapper/pool 0 "create_thin $thinnum"
origsectors=$(blockdev --getsz /dev/myorigin)
dmsetup create snap \
--table "0 $origsectors thin /dev/mapper/pool $thinnum /dev/myorigin"