fsfreezeとlvmスナップショットの違い

fsfreezeとlvmスナップショットの違い

fsfreeze私は最近VMwareを使用して仮想マシンのスナップショットを撮り、静的を使用して一貫したディスク状態を取得するというニュースを聞いて非常に興味を持っています。私のすべてのファイルシステムはLVMボリュームで、man fsfreeze次のように言及されています。

デバイスマッパー デバイスに fsfreeze は必要ありません。デバイスマッパー(およびLVM)は、スナップショットが要求されるとデバイスのファイルシステムを自動的に固定します。詳細は、dmsetup(8) のマニュアルページを参照してください。

fsfreezeしかし、スナップショットサイズを見積もる必要がある複雑なLVMツールよりも使いやすくなることがわかりました。

質問

  • 違いはありますか?
  • LVMボリュームでこのコマンドを引き続き使用できますか?それとも物理LVMボリュームですか?
  • それとも強制的にこのコマンドを使用する必要がありますかlvm

賞金に関する追加質問

mysql/oracle/postgrSQL DBのバックアップに使用される場合、fsfreezeまたはlvmスナップショットを使用してスナップショットの一貫性を確保できますか?

追加情報

ここに示す例は簡単ですが、すべての概念を理解する必要があります。
VMWareは、仮想マシンのスナップショットを非常に迅速に(5秒未満)撮影し、スナップショットの前後にスクリプトを実行して仮想マシンの状態を安定させ、一貫した仮想マシンのスナップショットを取得できます。 lvmスナップショットを読み取り専用でマウントできるかどうかには興味がなく、ディスクサイズなどによって制限されるため、そうしたくありません。私が望むのは、fsfreezeファイルシステムと仮想マシンのスナップショットを撮ってロックを解除することです。
この場合、fsfreeze代わりにlvm snapshotを使用できますか? (より複雑でディスクスペースに関連しています。

答え1

からman fsfreeze

-f, --freeze

This option requests the specified a filesystem to be frozen from new 
modifications. When this is selected, all ongoing transactions in the filesystem 
are allowed to complete, new write system calls are halted, other calls which 
modify the filesystem are halted, and all dirty data, metadata, and log information 
are written to disk. Any process attempting to write to the frozen filesystem will 
block waiting for the filesystem to be unfrozen.

バックアップの場合、マウントされたファイルシステムでランダムに変更し、バックアップ中にI / Oを停止するのは作業の一部です。これは、ファイルシステムが非常に小さいまたは非常に高速なバックアップデバイスがないと、バックアップ期間中にファイルシステム全体を凍結できないためです。

それでfsfreeze、おそらくあなたがしたいことをするだけでは十分ではありません。一方、LVMスナップショットは作業に不可欠です。 「バックアップの作成」には数秒しかかからず、次のように実際にそのバックアップ(スナップショット)を一部の遅いバックアップデバイスにコピーするのに時間がかかることがあります。 LVM は次のタスクを実行します。スナップショットは、この長いバックアッププロセス中に変更されたファイルシステムブロックを管理します。唯一必要なfsfreeze部分はスナップショット生成部分ですが、その部分はすでにLVM自体で透明に処理されているため、全体的に注意すべき部分はLVMスナップショットだけです。

パフォーマンスに優れたRDBMS(たとえば、Oracleなど)の場合、同様のファイルシステム固定機能またはブロックデバイススナップショット機能を使用したバックアップは十分に一貫性があると見なされます。ただし、すべてのデータベースファイルが同時に固定/スナップショットされていることを確認する必要があります。複数のファイルシステム/LVMボリュームが影響を受ける場合は、RDBMSの支援が必要になる場合があります。たとえば、OracleはBACKUP MODEFreezeに似ていますfsfreezeが、データベースレベルで機能を実装する機能を提供します。

答え2

@Laszloが指摘したように、停止はバックアッププロセスの一部にすぎません。まず、ファイルシステムを停止して、ディスクに書き込まれるすべてのバッファリングされた情報を強制的にフラッシュします。ファイルシステムが固定されると、バックアッププロセス中にファイルシステムのデータは変更されません。ファイルシステムを停止した後、tar、dd、dump、またはその他の手段を使用してバックアップを続行できます(私はバックアップソリューションの専門家ではありません)。また、ファイルシステムを凍結するのではなく、バックアップする前に読み取り専用で再マウントします(可能な場合)。

LVMスナップショットを作成するときに、デバイスマッパーがそれを処理するためにファイルシステムを固定する必要はありません。スナップショットを作成することはそれほど難しくありません。 /dev/mapper/centos-root LVM 論理ボリュームの 2 GB スナップショットを作成するコマンドは次のとおりです。

lvcreate -L 2G -n root-snapshot -s /dev/mapper/centos-root

スナップショットから復元するコマンドは次のとおりです。

lvconvert --merge /dev/mapper/centos-root-snapshot

スナップショットを元のボリュームに再びマージするときに元のボリュームがアクティブの場合、次の再起動時にマージが発生します。マージ後、スナップショットはもう存在しません。

今、いくつかの単語を警告します。ファイルシステムのLVMスナップショットコピーは、ファイルシステムの物理メディアバックアップではなく仮想コピーです。 LVMスナップショットは元のボリュームの変更されていないデータに依存するため、バックアッププロセスを置き換えることはできません。

LVMスナップショットはCOW(記録中にコピー)ポリシーを使用します。作成した初期スナップショットには、実際のデータinodeへのハードリンクのみが含まれています。データが変更されていない限り、スナップショットにはデータ自体ではなく、inodeポインタのみが含まれます。スナップショットが指すファイルまたはディレクトリを変更するたびに、LVMはデータ、スナップショットが参照する古いコピー、アクティブシステムが参照する新しいコピーを自動的に複製します。

(スナップショットの代わりに)LVM論理ボリュームのバックアップを作成する場合ここで実装するいくつかの方法を確認してください。

さらに、LVMスナップショットがいっぱいになると、元のボリュームの変更を追跡できなくなるため、スナップショットは無効になります。したがって、スナップショットのサイズを定期的に監視し、スナップショットボリュームのサイズを大きくする必要があります(スナップショットは完全にサイズ変更可能)。あるいは、スナップショットボリュームが必要以上に大きいと判断した場合は、サイズを小さくすることもできます。スペースを確保してください。

答え3

fsを凍結する必要がありますか? ESXiのLinuxストップスナップショットの問題について聞いたことがありません。また、vm-toolsを使用すると、fsfreezeではなくLinux VMを適切に停止できると聞きました。しかし、私の考えは非常に短い一時停止に近いと思います。仕事。

私自身は、ESXiで実行されている静的ライブLinux VMでスナップショットの問題を経験する必要はありません。私たちはEMC(3parを強制的に使用)を使用しており、ESXi5では両方ともスナップショットが期待していたものとは異なります(当時のマシンの良いイメージ)、チームや顧客からの提案は聞こえませんでした。心配すべきでしょうか?あなたはすべきですか?

関連情報