LVMスナップショットを理解する

LVMスナップショットを理解する

lvm tutoで「cow」への言及を見ましたが、スナップショットボリュームがオーバーレイや他の小FSのように動作すると考え続けたので、混乱していましたが、元のボリュームの内容を変更した後は。それ。

  1. もしそうなら、実際には、スナップショットボリュームは、元のファイルが変更された後でもボリューム上のファイルの元のコピーを保持しますか?私がこれを理解するのは正しいですか?

  2. btrfsスナップショットもこのように機能できますか?

  3. つまり、私は変更に興味があり、変更されたファイルや増分バックアップなど、元のボリュームに適用されたその他の変更をインポートしたいと思います。これを行うより良い方法はありますか?

答え1

btrfs はファイルシステムであり、ファイルで動作しますが、LVM はブロックレベルで動作し、ディスクブロックで動作するため、LVM を btrfs と実際に比較することはできません。 LVMボリュームは通常ファイルシステムを含みますが、LVM自体はファイルについて何も知りません。

LVM はブロックレベルで書き込み中にコピーを実行します。スナップショットが作成された後にボリューム内の特定のブロックが最初に上書きされると、そのブロックの前の内容が最初にスナップショットにコピーされます。 LVMは、データが何であるかわからず、気にしません。方法:ファイルの一部なのか、空き領域なのか、内部のファイルシステム構造なのかなどです。これはボリュームの特定の位置にあるバイトブロックにすぎません。

これは、スナップショットが作成されたときに、LVMボリューム全体の元のコンテンツをスナップショットが維持することを意味します。ボリュームにファイルシステムが含まれている場合(通常の場合)、スナップショットには過去に存在していたファイルシステムのコピーが含まれます。ファイルシステムの履歴コピーをマウントし、ファイルの以前のバージョンにアクセスできます。これは、ファイルシステムの「現在の」コピーを持つ基本ボリュームとは完全に独立しています。

ボリュームとスナップショットの間のファイルの違いを見つけるには、両方のファイルシステムをマウントし、他のツールを使用して両方のファイルセットを比較する必要があります。 LVMはファイルについて何も知らないため、スナップショットに保存されている履歴ブロックデータにどのファイルが含まれているかを知ることはできません。

関連情報