XFSは、システムクラッシュ時に数秒の高速な復旧を実現します。XFSファイルシステムとAWS EBSスナップショットを使った一貫性のあるバックアップの作成方法を考察してみます。
XFS FreezeとEBSスナップショットの使用
xfs_freezeは、XFSファイルシステムへのアクセスを一時停止または再開し、一貫性を維持するために使用されます。ファイルシステムがサスペンドされると、すべてのデータがディスクにフラッシュされ、その上ではIOが許可されないため、このファイルシステムを使用するアプリケーションが一時停止したり、ハングアップしたり、最終的には失敗する可能性があります。EBSスナップショットを使用してバックアップを実行する場合、スナップショットを取得する直前にファイルシステムをフリーズし、スナップショットの開始直後にフリーズを解除することができます。EBSスナップショットはポイントインタイムで一貫しているため、EBSスナップショットの作成中にファイルシステムのIOが継続していても、スナップショットの内容には影響しません。「xfs_freeze -f -f」フラグは、指定したXFSファイルシステムをフリーズし、新たな変更ができないようにするために使用します。フリーズコマンドが適用されると、ファイルシステムで進行中のトランザクションはすべて完了することができます。新しい書き込みシステムコールは停止され、ファイルシステムを変更できるその他のコールも停止されます。すべてのデータ、メタデータ、およびログ情報がディスクに書き込まれます。 フリーズしたファイルシステムに書き込もうとするプロセスは,ファイルシステムのフリーズが解除されるまで待機します。 xfs_freeze -u ファイルシステムのフリーズを解除し,IOの再開を許可するには,-uフラグを使用します。フリーズによってブロックされていたファイルシステムの変更は、ブロックが解除され、完了することができます。
N2WS Backup & Recoveryでのxfs_freezeの使用について
N2WS Backup & Recovery は、EC2クラウド向けのエンタープライズクラスのバックアップ&リカバリーソリューションです。N2WS Backup & Recoveryは、AWS EBSスナップショットを使用してバックアップを実行し、アプリケーションやファイルシステムの静止を実行するバックアップスクリプトをサポートしています。バックアップポリシーに対してバックアップスクリプトを有効にすると、スナップショットを取得する直前に起動される「before」スクリプト、EBSスナップショットの開始直後に起動される「after」スクリプト、スナップショットの完了後に起動される「complete」スクリプトの3つのスクリプトが提供されます。3つのスクリプトをすべて使用することも、一部を使用することもできます。スクリプトが必要ない場合は、何もしない空のスクリプトを用意することができます。
ファイルシステムの一貫性の確認
最後に、バックアップ後、XFSファイルシステムのバックアップが一貫していることを確認したい場合があります。そのためには、ボリュームまたはインスタンス全体をリカバリし、デバイスがアンマウントされた状態でxfs_checkコマンドを実行します。
XFS (eXtents File System )はUnix/Linux系64ビットのジャーナリング・ファイルシステムであり、ファイルシステムの整合性が保証されている。ファイルシステムサイズは最大で8EiBであるが、通常ホストオペレーティング・システムの仕様によりそれよりも少ない容量に制限される。たとえば32ビット Linuxにおいては、最大16TiB