3.10. GFS2 ファイルシステムの修復
ファイルシステムがマウントされている状態でノードに障害が発生すると、ファイルシステムのジャーナリングにより迅速な復元が可能になります。ただし、ストレージデバイスの電源が切れたり、物理的に切断されていたりすると、ファイルシステムの破損が発生することがあります。(ジャーナリングは、ストレージサブシステムの障害からの復旧には使用できません。) そのような破損が発生した場合は、fsck.gfs2 コマンドを使用して、GFS2 ファイルシステムを復旧できます。
重要
fsck.gfs2 コマンドは、すべてのノードからアンマウントされた ファイルシステム上でのみ実行する必要があります。ファイルシステムが Pacemaker クラスターリソースとして管理されている場合は、ファイルシステムリソースを無効にしてファイルシステムのマウントを解除できます。ファイルシステムリソースは、fsck.gfs2 コマンドの実行後に再び有効にします。pcs resource disable の
--wait
オプションで timeout 値を指定すると、値が秒単位で示されます。
# pcs resource disable --wait=timeoutvalue resource_id [fsck.gfs2] # pcs resource enable resource_id
fsck.gfs2 コマンドが GFS2 ファイルシステム上でブート時に実行されないようにするには、クラスターで GFS2 ファイルシステムリソースを作成するときに
options
引数の run_fsck
パラメーターを設定します。"run_fsck=no"
と指定すると、fsck コマンドが実行されません。
注記
以前に GFS ファイルシステムで gfs_fsck コマンドを使用した経験がある場合は、fsck.gfs2 コマンドが以下の点で gfs_fsck の以前の一部のリリースと異なることに注意してください。
- fsck.gfs2 コマンドの実行中に Ctrl+C を押すと処理が中断され、コマンドを中止するかどうか、現在の残りのパスを省略するかどうか、または処理を続行するかどうかを尋ねるプロンプトが表示されます。
-v
フラグを使用して、詳細のレベルを増やすことができます。2 番目の-v
フラグを追加すると、レベルが再度増加します。-q
フラグを使用して、詳細のレベルを減らすことができます。2 番目の-q
フラグを追加すると、再びレベルが減ります。-n
オプションは、ファイルシステムを読み取り専用として開き、すべてのクエリーにno
と回答します。このオプションでは、fsck.gfs2 コマンドを実際に有効にせずに使用してエラーを見つけることができます。
その他のコマンドオプションについては
gfs2.fsck
の man ページを参照してください。
fsck.gfs2 コマンドの実行には、オペレーティングシステムとカーネルに使用するメモリー以上のシステムメモリーが必要です。GFS2 ファイルシステム自体の各メモリーブロックには約 5 ビットまたは 5/8 バイトの追加メモリーが必要になります。このため、ファイルシステムで fsck.gfs2 を実行するために必要なメモリーのバイト数を判断するには、ファイルシステムに含まれているブロック数に 5/8 を乗算します。
たとえば、1 ブロックサイズが 4K の 16TB の GFS2 ファイルシステムで fsck.gfs2 コマンドを実行するのに必要なメモリー容量を概算する場合は、最初に 16TB を 4K で割ってファイルシステムに含まれるメモリーのブロック数を計算します。
17592186044416 / 4096 = 4294967296
このファイルシステムに含まれているブロック数は 4294967296 なので、この値に 5/8 を乗算して、必要なメモリーのバイト数を求めます。
4294967296 * 5/8 = 2684354560
fsck.gfs2 コマンドを実行するには、 このファイルシステムに約 2.6 GB の空きメモリーが必要になります。ブロックサイズが 1K の場合は fsck.gfs2 コマンドの実行に 4 倍のメモリーまたは 11 GB の空きメモリーが必要になります。
用途
fsck.gfs2 -y BlockDevice
-y
-y
フラグにより、すべての質問の回答がyes
となります。-y
フラグを指定すると、fsck.gfs2 コマンドは、変更を行う前に回答を求めるプロンプトを出しません。BlockDevice
- GFS2 ファイルシステムを置くブロックデバイスを指定します。
例
この例では、ブロックデバイス
/dev/testvol/testlv
に存在する GFS2 ファイルシステムが修復されます。修復するすべての質問に、自動的に yes
と答えます。
# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete