LVMスナップショットとファイルシステムスナップショット


32

私の知る限り、LVMはボリュームのスナップショットを取ることを可能にします。スナップショットをサポートする多くのファイルシステム(ZFS、Btrfs、reiserfsなど)もあります。

ただし、LVMスナップショットとファイルシステムスナップショットの違いを理解したことはありません。LVMでスナップショットを取得できる場合、なぜ誰かがそれをファイルシステムに実装するのに時間をかけるのですか?

編集:いくつかの状況でそれらのいずれかが好まれていますか?どうして?

回答:


25

これらのスナップショットのほとんどは、コピーオンライトスナップショットであり、めったに更新されないシステムでは非常に高速で非常に安価です(ストレージに関して)。LVMスナップショットはCOWスナップショットであり、ZFS / BTRFSにはスナップショット用のCOWモードがあり、reiserfsにはネイティブにスナップショットがありません。NovellのNSSファイルシステムもWindows NTFSボリュームのシャドウコピーボリュームと同様にCOWです。

コピーオンライトスナップショットは、ターゲットボリュームのメタデータのコピーをスナップショットプールに取り込みます。次に、使用しているCOWのモードに応じて、新しいデータを書き込む前に、スナップショットプールへの新しい書き込みによって上書きされるデータをコピーします。

ZFSおよび(最終的にはまだない場合)BTRFSにはフルスナップショット機能があり、個別のメディアにスナップするのに役立ちます。これは、リムーバブルメディアを使用するスニーカーネットバックアップシステムに非常に便利です。ZFSは、彼らが使用するZFSの能力を活用し、けれども「スナップショット」これを呼び出さないzfs sendzfs recv、リモート・ホスト(またはローカル配列)にネットワーク経由でボリュームおよびスナップショットをコピーします。

プロセスをクリーンに処理するためにファイルシステム自体をよりよく信頼できるため、LVMのものよりもファイルシステムレベルのスナップショット機能の方が好きです。ただし、ファイルシステムを直接サポートしていないため、ほとんどの場合、LVMは正常に機能します。

COWスナップショットは、短時間のリカバリニーズのために非常に高速にポイントインタイムバックアップを行う必要がある場合に適しています。毎日、または毎日4倍を行うなど、1週間保管してください。これは、ユーザーが誤って削除したファイルを回復する必要がある場合、またはシステム全体を更新前の構成にロールバックする必要がある場合に便利です。また、一部のバックアップシステムでは完全に静止したファイルシステムとして使用できるため、スナップショットボリュームから取得たバックアップでは、開いているファイルが邪魔になることを心配する必要はありません。覚えておくべき重要なことは、スナップショットボリュームがプライマリボリュームと同じストレージにあるため、アレイに障害が発生した場合に何も提供しないことです。

FULLスナップショットは、何らかのリムーバブルメディアまたはリモートメディアに保存される場合に適しています。ネットワークストレージを使用している場合、ターゲットはプライマリストレージがホストされているものとは異なるiSCSIまたはファイバーチャネルアレイである可能性があります。これにより、ある種の障害に対するアレイ外保護が提供されます。3TB ESATAドライブなどのリムーバブルメディアを使用する場合は、単純なディスクへのバックアップシステムとしても使用できます。これらのスナップショットは、COW兄弟とは異なるハードウェア上にあるため、災害対策に役立ちます。


フルvs COWスナップショット。

「スナップショット」という用語は、長年にわたって少し変わってきました。今年は、「ブロック再配置を使用した元のデータのコピーオンライトコピー」を意味すると確信しています。この定義により、上記の「フル」スナップショットは実際にはスナップショットではなく、複製です。一部のストレージベンダーは、過去に「スナップショット」のさまざまな定義を使用して、実行するさまざまなブロックレベルの操作を説明してきました。紛らわしいのは、複製プロセスの一部としてスナップショットを使用するシステムです。


«ファイルシステムレベルのスナップショットは、LVMを使用してスナップショットプロセス中に一貫性を保つ方法をファイルシステムが知っているという単純な事実のため、LVMを介したスナップショットよりも好ましいです»。それをチェックアウト:serverfault.com/questions/300961/...
poige

1
«ZFSおよび(最終的にはまだない場合)BTRFSにはフルスナップショット機能があります»—「フル」スナップショットの意味を説明する必要があります。私の知る限り、ZFSを使用したスナップショットには「COW /フル」の選択肢はありません。すべてのスナップショットはCOWですが、それでもファイルシステムまたはボリューム全体として別のメディアに後で保存できます。
jlliagre

5

LVMには事前計画が必要です。抽象化の別のレイヤーでもあり、必要なときにめったに利用できないため、使用しません。ただし、LVMを使用せずに(Linuxで)ファイルシステムレベルでクローンを作成するオプションは他にもあります。これを行うには、R1Softのホットコピーを利用できます。これはカーネルモジュールですが、この機能をオンザフライで追加できます。


3

非常に明確な問題:LVMのスナップショットは、 FSVMがペイロードされているFS について「何も知らない」ため、一貫したFS jue を持つことは保証されません。

編集(コメントを参照):— FSがをサポートしていない場合はtrue .freeze_fs、そうでない場合はFSが適切に処理する必要があります。


2
偽; LVMは、スナップショットを作成する前にファイルシステムを同期させてそれ自体を同期させます。
ウォンブル

1
@womble:の後syncでも、スナップショットは既にマウントされているファイルシステムの完全な複製です。したがって、マウントすると、「クリーンにアンマウントされていない」と表示され(アンマウントされていないため)、一貫性を保つ前に修正アクションを実行する必要があります。もちろん、それは通常、単なるジャーナルの再生であり、の後はsync空の再生になります。データ損失の危険はありません。
ハビエル

1
@ womble、1)同期とLVMのスナップショット処理の間に新しいI / O要求のウィンドウがあるため、同期は十分はありません。一種のブロッキングが必要です。2)XFSには「フリーズ」(xfs_freeze is intended to be used with volume managers and hardware RAID devices that support the creation of snapshots.)と呼ばれる特別な機能があります。スナップショットには特別なことですが、LVM-2はそれを知っており、すでに使用していますか?3)ユーザースペース(sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2)またはカーネルソースのどこで教えてください。LVMがFSをprodsすることを正しく伝えていることを証明できます。同期します。
poige

9
さて、宿題をして、質問の3番目の部分に答えることができます。実際、LVMはカーネルのfreeze_bdev()を使用していますlock a filesystem and force it into a consistent state。したがって、少なくとも「一貫性のあるFSが保証されない」と言うのは間違っていたと言えます。これは、FS実装内のfreeze_fs 'method'のサポートの問題だからです-一部のFSは確かにサポートしています(EXT3、Reiser3、XFS)いくつかはそうではありません(たとえば、EXT2)。また、2番目の質問に答えます。XFSのフリーズはLVMで自動的に処理される可能性が非常に高いです。
-poige

1

他の答えを補完するものとして。FSスナップショットでは、すべてのスナップショットにわたる圧縮や重複排除などのFS機能を活用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.