Linuxでは、サーバ起動時にディスク(ファイルシステム)のFSCKを実行、その後ディスク(デバイス)をマウントして起動プロセスへ移っていくようになっています。
FSCKの実行時間は、ディスク(デバイス)の容量に依存するため、ディスク(デバイス)容量が大きい(1TB等)場合は留意する必要があります。
サーバ起動時間がFSCKの実行有無で大幅に変わることが想定されます。
そのため、サーバの起動に時間がかかっている場合は、FSCKの実行有無が影響している可能性があります。
FSCKが実行される契機は、以下です。
1.ディスク(デバイス)のマウント回数
2.ディスク(デバイス)へFSCKを実行してから経過した時間
設定情報内容は、以下のコマンドで確認できます。
tune2fs△-l△[デバイス名]
※例 tune2fs△-l△/dev/sda1
tune2fs で表示した結果で以下がFSCKに関連があります。
Mount count: 10 ←ディスク(デバイス)がマウントされた回数
Maximum mount count: 30 ←Monut countがこの値になるとFSCKが実行される
Last checked: Sun Jan 01 09:00:00 2017 ←前回FSCKが実行された日時
Check interval: 15552000 (6 months) ←前回から次回のFSCKが実行されるまでの間隔(秒)
上記の場合、次回のFSCKが実行されるタイミングは以下になります。
1.ディスクがあと20回マウントされた場合
※Maximum mount count(30) - Mount count(10)
2.2017年6月30日9時
※Last checked(2017年1月1日9時) + Check interval(6ヶ月:15552000秒)
※ただし、1のマウント回数によりFSCKが先に実行された場合は、その日時から6ヶ月(15552000秒)後に変更されます。
FSCKの実行設定は、tune2fs で変更できます。
オプション -c … Maximum mount count を変更 (0 または -1 を設定すると、FSCKが実行されなくなります)
オプション -i … Check interval を変更 (0 を設定すると、FSCKが実行されなくなります)
複数のディスク(デバイス)をマウントしている場合は、ディスク(デバイス)毎にFSCKが実行されるタイミングを変え、全てのディスクが一斉にFSCKが実行されないようにして、サーバの起動にかかる時間を工夫(コントロール)した方がよいと思います。
マウント回数(Maximum mount count)か間隔(Check interval)のどちらかだけを設定するとコントロールし易いと思います。
ご指摘、ご質問などはコメントへお願いします。
0 件のコメント:
コメントを投稿