#一定期間でOS起動時にfsckが実行される
Linuxでは一定期間ファイルシステムのチェックを行っていないと、起動時にチェックを行う機能がありますが、これを忘れたまま再起動を行うと数分のダウンのはずが、予測していなかった大幅なダウンタイムとなってしまう場合もあると思います。
※AmazonLinuxなどデフォルトで無効となっているディストリビューションもあります。
ec2の場合は、起動時にfsckが走ると、ネットワークサービスが起動していないのでStatus Checksがpassedにならず、
Get System Logを確認すると
root has gone xxx days without being checked, check forced.
のような出力で止まっている(チェック中)ことが確認できると思います。
こうなってしまえばもう待つしかありません。
#fsckの自動起動を停止
もちろん定期的にfsckをしなくていいというわけではありませんのが、
予期せぬfsckを防ぐためには、以下の2つの方法があります。
##fstabで起動時のチェックを無効化
第6フィールドの数値を「0」に変更します。
vi /etc/fstab
-------
LABEL=root / ext3 defaults 1 1
↓修正↓
LABEL=root / ext3 defaults 1 0
-------
##tune2fsでチェック期間を無期限に
tune2fs -i 0 /dev/sda1
tune2fs -l /dev/xvde1 | grep -i interval
--------
Check interval: 0 (<none>)
--------
※マウント回数でfsckが実行される設定もあるので、その場合は以下で無効に設定できます
tune2fs -c 0 /dev/xvde1
#(おまけ)スペックの違いによるfsckからの起動時間
fsckの実行時間は環境によると思いますので、参考まで。
それぞれ1回しか試していません。
環境はCentOS5/ディスク30GB(IOPSのインスタンスはは起動時に100GBに変更)です。
インスタンスサイズ | ディスク | 起動までの時間 |
---|---|---|
m1.small(1core/1.7GB) | Magnetic | 48分 |
m1.small(1core/1.7GB) | プロビジョンド iops(3000) | 48分 |
c3.8xlarge(32core/60GB) | Magnetic | 48分 |
IOが高速だとfsckも早くなると予想したのですが、意外な結果が...