コピーオンライトのないLVMスナップショットLVMを試し、NFSサーバー上のデータを管理するためにLVMをどのように使用できるかを試してきました。スナップショットについて読んだことはすべてありますが、スナップショットが実際にどのように機能するかについてはまだわかりません。元のデータへの単なるポインタの集まりである場合、スナップショットにスペースを割り当てる必要があるのはなぜですか?オリジン上のファイルを変更すると、コピーオンライトによるスナップショットの変更もトリガーされる場合、スナップショットのポイントは何ですか?スナップショットはオリジナルの「静的な」時点であると考えられました。commit、static、non-changeing、特定の時点でのデータへのポインターなど)原点への変更について)。ROまたはRWスナップショットが含まれますか?更新:私はいくつかのテストパーティションを試してきましたが、もう少し理解しています。スナップショットには含まれません。「スナップショットに割り当てられた」増加のこの割合を示します。10MBのテストファイルと1GBのテストパーティションを使用すると、この割合がデータに対してどのように動作するかを正確に確認できますが、なぜそうする必要があるのですか?新しいデータが元のスナップショットではなく、元のスナップショットに表示されるのはなぜですか?ブロックは、古いデータがハードリンクのように振る舞うと思います。スナップショットはそれを指し、新しいブロックはそれらの隣に作成されるため、原点は新しいブロックと修正されたブロックを指します。1スナップショットのコストは、ゼロバイトにすることはできません。ソースボリュームでブロックが変更され、スナップショットがある場合、変更前に元のブロックのコピーを作成する必要があります-スナップショットからアクセスできるように、元のデータがsomehwere使用可能でなければなりません。それがスナップショットのサイズ(および一部のメタデータ)です:ソースで変更されたブロックの元のコピー。「アカウンティングトリック」である可能性があることに注意してください。実装は、ディスク上の元のブロックを上書きせず、新しいデータを別の場所に保存し、ソースブロックリスト(または追跡に使用するもの)を更新することを選択できます)。この場合、スナップショットは定義に従って「静的」です。ソースブロックが変更されるたびに、割り当てられたブロックの総数は増え続けます。このスペースの使用量は、スナップショットに対して(に)考慮される必要があります。2このトピックを調べました。OPのように、混乱の中心は「ファイルを考える」ことであり、LVMは物理エクステント。通常、LVMはHDDとファイルシステムの間に配置されます。これらの3つの層のそれぞれには、「同じサイズのバイトチャンク」という概念に対する独自の用語があります。4K)200MBの大きなループデバイス、論理ボリューム(testlv)に100MB、スナップショットLV(snaplv)に60MBを作成しました。LVは、それぞれが4MB相当のファイルシステムブロックを表す25の物理エクステントで構成されると考えることができます。スナップショットLVは最初にこれらのPEも参照しますが、この時点では独自の15個のPEを使用しません。ユーザーがいずれかの論理ボリュームのファイルシステムに書き込むたびに、ファイルシステムは1つ以上のブロックの内容を変更します。これらはもちろんLVM物理エクステントに保存されます。PEの内容を更新します明らかに、snaplvからPEを変更することはほぼ同じです。更新されるのはsnaplvのPEのコピーであるという点で最終ステップのみが異なります。