y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

恐怖!ディスクエラー

運用を開始した仮想サーバ上のLinuxで、恐怖体験。
Webサーバとかはちゃんと動作している(・・ように見える)のだが、
ログ解析・統計に使っているwebalizerのグラフが更新されていない
「おや?」
VNCで接続し、コマンド"/usr/bin/webalizer -Q"で更新・・・されない
ん?ファイルが壊れとるね。webalizer.histとかwebalizer.currentとか
次にアクセスログを見てみる。
「ログが書かれていない」
おかしいな、再起動してみよう
「うわ、ロックファイルがどうのこうのってエラーが出まくる」
ブート開始
「がーん、ブートしない」
かなり焦る
手動でfsckコマンドを発行しなさいとか、adminパスワードを入れて、修復作業してよ
なんていう恐ろしいメッセージが。

この段階では、最悪のシナリオが頭に浮かび、かなり震える。
恐る恐る、fsckと打ち込んでみると、
ファイルシステムが壊れているから、直しちゃう?」みたいなメッセージが出る。
もう、祈るような気持ちでy、y、y、yと修復を進めていく。
「直ったよん」なんていう感じでプロンプトが戻ってきたので、すかさずreboot
めでたくグラフィカルログインまで来て、正常に動作
今度はログも書かれているし、サーバアプリも動いている。
もう、壊れちゃったのか、webalizerの更新が出来ない。
webalizer関連の作業ファイル一式をコピーしておいて、削除。
webalizer -Qでグラフを再生成。
めでたく通った・・が、過去データが消えちまったぃ。おう。
あぁ、理由は分かってるさ兄弟。
アクセスログaccess.log)しか処理できないんだよな、兄弟。
過去ログをリネームするかwebalizer.confを書き換えて、順に食わせながら、処理すればいいのかい?

それにしても、リブート後のログにも、「ディスクに不良ブロックがあって、I/Oエラーだよん」みたいのが出てる。
大丈夫かい、これ。
やばい感じだよな。

■お勉強用参考URL
ファイルシステムを強制的にチェックするには
OSS Message Pedia attempt to access beyond end of device
fsckコマンド
HOME / システム管理 / ファイルシステムを検査する(fsckコマンド)
fsck ファイルシステムの矛盾の検出・修復
HOME / Linux コマンド 一覧 / fsck ファイルシステムのチェック、修復する
HOME / Linux コマンド 一覧 / e2fsck ファイルシステムのチェック、修復をする
debian 化(4)fsck で止まらないようにする
Linux 備忘録 : Ext3 のジャーナルファイルの再作成の方法
写真 「$ ls -i」コマンドや「$ df -i 」コマンドでi-node番号や総数を確認できる
UNIXのinode番号

■後日談
結局、ファイルシステムの強制チェックで、物理的な破損をチェックして、そのiノード番号から、findでどのファイルかを特定しようとした。該当ファイルが無いということで、OSがディレクトリやファイルとして何か書き込んでいるわけではないことが分かった。あれから1週間経過したが、サーバは元気に動いている。
I/Oエラーが出ているのは、今のところブート時だけなので、EXT3ファイルシステムのジャーナルをロードしている時に、「エラーだよん」と言っているだけなのかと、勝手に解釈。(危険な解釈だけど)
もし今度同じエラーでサーバが止まるようなことがあったら、その時は、
EXT2ファイルシステムにしてみて様子を見る
・エラーが出ているディスクを、別の仮想HDDにコピーしてマウント
・・の2点を試してみようと思う。