3.12. GFS2 withdraw 機能

GFS2 の withdraw 機能は、GFS2 ファイルシステムのデータ整合性機能であり、ハードウエアまたはカーネルソフトウェアの不具合によるファイルシステムの損傷を防ぎします。指定したクラスターノードで GFS2 ファイルシステムを使用している場合に、GFS2 カーネルが非整合性を検出すると、マウント解除して再マウントするまでそのノードで利用できなくなります (または問題を検出したマシンが再起動します)。マウントしたその他の GFS2 ファイルシステムは、そのノードで完全に機能し続けます。GFS2 の無効機能は、ノードをフェンスする原因となるカーネルパニックよりも厄介なものではありません。
以下は、GFS2 を無効にする可能性のある非整合の種類です。
  • inode 整合性エラー
  • リソースグループの整合性エラー
  • ジャーナル整合性エラー
  • マジックナンバーのメタデータの整合性エラー
  • メタデータ型の整合性エラー
GFS2 を無効にさせる可能性のある非整合の例としては、ファイルの inode に対する誤ったブロック数があります。GFS2 がファイルを削除すると、そのファイルが参照しているデータとメタデータブロックはすべて体系的に削除されます。削除が完了すると、inode のブロック数が確認されます。ブロック数が 1 ではない場合 (つまり、残っているのはディスクの inode 自体であることを意味します)、inode のブロック数は、実際にファイルに使用されているブロックと一致しなかったため、ファイルシステムの整合性が取れていないと示されます。
多くの場合、問題はハードウェアの不具合 (メモリー、マザーモード、HBA、ディスクドライブ、ケーブルの故障) が原因である可能性があります。また、カーネルのバグ (別のカーネルモジュールが GFS2 のメモリーを誤って上書きする) や、実際のファイルシステムの損傷 (GFS2 バグにより発生する) により発生した可能性もあります。
ほとんどの場合、GFS2 の不整合は、クラスターノードを再起動すると解決します。クラスターノードを再起動する前に、Pacemaker からシステムの「クローン」システムを無効にします。これにより、そのノードでのみファイルシステムのマウントが解除されます。
# pcs resource disable --wait=100 mydata_fs_clone
# /sbin/reboot

警告

umountmount コマンドを使用してファイルシステムのマウントを解除して再マウントしないでください。pcs コマンドを使用してください。このコマンドを使用しないと、ファイルシステムサービスが消えたことを Pacemaker が検出し、ノードを隔離します。
無効にした整合性の問題によりシステムがハングアップする可能性があるため、ファイルシステムのサービスを停止できなくなる可能性があります。
再マウントしても問題が解決しない場合は、ファイルシステムを停止して、クラスター内の全ノードからファイルシステムのマウントを削除し、以下の手順に従ってサービスを再起動する前に、fsck.gfs2 コマンドでファイルシステムのチェックを実行します。
  1. 影響を受けるノードを再起動します。
  2. Pacemaker で非クローンのファイルシステムサービスを無効にして、クラスター内のすべてのノードからファイルシステムのマウントを解除します。
    # pcs resource disable --wait=100 mydata_fs
  3. クラスターの 1 つのノードから、ファイルシステムデバイスで fsck.gfs2 コマンドを実行して、ファイルシステムの損傷を確認して修復します。
    # fsck.gfs2 -y /dev/vg_mydata/mydata > /tmp/fsck.out
  4. ファイルシステムサービスを再度有効にして、すべてのノードで GFS2 ファイルシステムを再マウントします。
    # pcs resource enable --wait=100 mydata_fs
ファイルシステムサービスで -o errors=panic オプションを指定したファイルシステムをマウントすると、GFS2 の無効機能をオーバーライドできます。
# pcs resource update mydata_fs “options=noatime,errors=panic”
このオプションが指定されている場合、通常はシステムを無効にするようなエラーが発生すると、代わりにカーネルパニックが発生します。これによりノードの通信が停止し、ノードがフェンスされます。これは特に、長期間人による監視や介入がないクラスターに役に立ちます、
内部的には、GFS2 の無効機能は、ロッキングプロトコルを切断することで機能し、それ以降のすべてのファイルシステム操作で I/O エラーが発生するようにします。その結果、GFS2 の無効化が発生すると、デバイスマッパーデバイスから多数の I/O エラーがシステムログに報告されるのが普通です。