【Linux】dfコマンドの結果が帰って来ないんだが
ちょっと前の話だけども、Linuxサーバを管理していて
ある日突然 df -hのコマンドが帰ってこなくなった。
最初はメインのDiskがぶっ壊れたのかと思ってかなり焦りましたが
/var/logとか見えてるし、大丈夫そう。
(てかログインできているならroot領域生きてんだろ。ってのは今気づいた)
サーバは生きてるけどコマンドが帰ってこないから容量とかも見れないし、
不安になりましたがリブートすることなく解決できました。
って話
とりあえず現状確認
ログとか見てみますか。
問題があったときはlogが助けてくれるはず!
と思っていろんなログ見てみましたけど、エラーは?
「一切なーい。」
アプリも落ちてないし、サーバ自体には一切影響が発生していない。
ただdf -hの結果が帰ってこない、ls -l / の結果も帰ってこない。
てことはマウント関連が怪しいなぁとふと気づきました。
原因
犯人はNFSでした
さて、マウントポイントの状態確認したいけどどうしよう。
雑魚エンジニアなのでマウントポイントの確認はいつもdfコマンド使ってました。 でも今帰ってこないから、どうしようかなぁと思い考えてたら 初歩の初歩mountコマンドじゃん。
というわけで
$ mount
オプション無しで打てば現在のマウントを出力できますと。
ん?こいつNFSマウントしてることが判明。
そして対象のサーバーにpingが届きませんと。
はい。犯人逮捕です。
対応方法
対象領域をunmountしちゃいます
はいはい、犯人もわかったしnfsでマウントしているマウントポイントを外せば解決でしょう。
$ unmount umount /hoge: デバイスがビジーです。
はい、エラったー。
でも対向先もpingが届かないところを見ると、落とされてるっぽいし
処理も走ってないから強制でアンマウントしちゃいます。
$ unmount -f umount /hoge: デバイスがビジーです。
え?-fオプションつけてもビジーってどゆこと?やっぱりリブート必要?
とか思ってたらdf -h とかls -l /が帰ってくるようになり、復旧しました。
さいごに
とりあえずDiskがぶっ壊れてなくて一安心です。
NFSで見せている領域があるサーバは落とす前にアンマウントするか、
サービス落としてから停止させましょうってことで、また一つ学びましたとさ。
おしまい。