2.6. ファイルシステムのバックアップ
ファイルシステムのサイズに関わらず問題が発生したときのために GFS2 ファイルシステムを定期的にバックアップするよう推奨しています。RAID、マルチパス、ミラーリング、スナップショット、その他の冗長形式などを備えているから安全だと思っている管理者も多くいますが絶対に安全ということはありません。
単一または一式のノードをバックアップするには、通常全ファイルシステムを順番に読み取る必要があるため、バックアップ作成で問題が生じる可能性があります。これを単一のノードから実行した場合には、そのノードは、クラスター内の他のノードがロックの要求を開始するまで、全情報をキャッシュに保持します。クラスターが稼働中にこのようなタイプのバックアッププログラムを実行すると、パフォーマンスに悪影響を及ぼします。
バックアップが完了した後にキャッシュを削除すると、他のノードがクラスターのロック/キャッシュのオーナーシップを再取得する時間が短縮されます。ただし、バックアッププロセスが開始する前に他のノードがキャッシュしていたデータのキャッシュが停止されることになるため、これでも理想的ではありません。以下のコマンドを実行すると、バックアップの完了後にキャッシュを削除することができます。
echo -n 3 > /proc/sys/vm/drop_caches
クラスター内の各ノードがそれぞれのファイルをバックアップした方がノード間でバックアップ作業が分割されるため時間が短縮されます。ノード固有のディレクトリーで
rsync
コマンドを使用するスクリプトを使うとこれを行うことができます。
GFS2 バックアップを作成する場合、SAN 上でハードウェアのスナップショットを作成し、そのスナップショットを別のシステムに渡してそのシステムでバックアップを作成するのが最適な方法になります。バックアップを作成するシステムはクラスター内のノードではないため、
-o lockproto=lock_nolock
を使ってそのシステムにスナップショットをマウントさせます。