fsckがかかりフェールオーバに時間を要することがある。
そのためいつfsckをさせるか検討しておく必要がある。
◆ fsckの動作基礎知識
(1) デバイスがmountされた状態でサーバがダウンすればfsckは必ず実行される。
(2) 正常なshutdownシーケンスが走った場合は、fsckが動作するかどうかは設定による。
(1)時のfsckは仕様がない。
しかしながら、サービスの提供が最優先時に(2)のfsckは不要であろう。
そこで今回は(2)の対応を検討する。
(1)のfsck必須時のfsck高速化の検討はここでしている。
◆ ファイルシステムをチェックする最大マウント回数の変更
・ 現在設定しているマウント回数の確認
# tune2fs -l $デバイス名 | fgrep 'Maximum mount count'
Maximum mount count: XX
tune2fsコマンドで確認できる項目はスーパーブロックに保存される。
ファイル管理されていると思ってさがしてしまったことがあるorz
・ 最大マウント回数(0回、つまりしない)の変更
# tune2fs -c 0 $デバイス名
Setting maximal mount count to -1
マウントしたままで設定変更可能かつ有効になる。
コマンド実行後に即設定は反映される。
・ 変更後の設定確認
# tune2fs -l $デバイス名 | fgrep 'Maximum mount count'
Maximum mount count: -1 ←こうなっていればよい
◆ ファイルシステムをチェックするインターバルの変更
・ 現在設定しているインターバルの確認
# tune2fs -l $デバイス名 | fgrep 'Check interval'
Check interval: XX s
マウントされた状態でインターバルの期間を迎えた場合は、
/var/log/messagesに警告が出るだけでfsckは実施されない。
ただし、デバイスがumountされ、mountされるタイミングでは実施される。
・ インターバル(0秒、つまりしない)の変更
# tune2fs -i 0 $デバイス名
Setting interval between checks to 0 seconds
マウントしたままで設定変更可能かつ有効になる。
コマンド実行後に即設定は反映される。
・ 変更後設定確認
# tune2fs -l $デバイス名 | fgrep 'Check interval'
Check interval: 0 ←こうなっていればよい
その他、コマンドもメモ。
◆ システム起動時のマウント前のfsckを強制
-Fオプションを付けてshutdownコマンドを実行する。
# shutdown -F -r now