実環境で使っているCentOS 5.xで、昨日から急にNFSでサーバ上のUSB-HDDをマウントできなくなってしまいました。
同じ物理マシンで物理的にHDDを繋ぎかえて構築している実験環境のCentOS 6.xではNFSで同じUSB-HDDをマウントできていることから、サーバ側の問題ではなく、CentOS 5.xのクライアント側の問題であることがわかりました。
・・・でも、原因が全くつかめない!!
まず、起動時にNFSファイルシステムマウントでタイムアウトしてしまいます。この段階で疑うのは、起動時の各種サービス(デーモン)の読込順に問題が発生している可能性です。
しかし、もしそうであるならば、各種サービスが起動した後、すなわちCentOS 5.xにログインした後ならば手動でNFSをマウントできるはずです。ですが、このときはログイン後に手動でマウントしようとしてもやはりタイムアウトしてしまい、マウントできないんです(タイムアウトってゆーか、全く応答がない状態がずっと続いてしまう)。
Google先生に訊いてまわって、次に疑うのはどうもNFSのバージョン、つまりNFSサーバとNFSクライアントとのバージョンの整合性がとれていないのでは?ということになりました。
しかし、クライアントもサーバも同じCentOS 5.x。yum updateするタイミングもさほど違わないので、これも空振りになりそうだな・・・と思いつつ、サーバのNFSのバージョンを確認しようとSSHでサーバにログインしようとしたそのとき!!
原因が判明しました。
原因は、(なぜそうなったかは不明なままなのですが)クライアントのIPアドレス。
ところで、メインで作業しているこの環境はIPアドレスを固定にして使っています。
で、SSHでサーバにログインすると、端末上に前回のログイン情報が表示されるのですが、ここに表示されたIPアドレスは見覚えのないものだったんです。平たく言えば、私がこのメインマシンに固定で割り振ったIPアドレスとは異なるIPアドレスが表示されていたんです。
表示されていたのはプライベートIPアドレスだったので、外部から(不正に)接続されているわけではなかったのですが、いずれにしても私が手動で割り振ったことのないIPアドレスから接続されたことになっているではありませんか!
ちなみに「私が」前回SSHでサーバにログインしたのは、NFSでマウントができなくなった昨日、それもこのメインで作業しているCentOS 5.xから。
ところが前回のログイン情報の日付に関してはまさにその時刻が表示されています。
あれあれ・・・??
そこで「そんなはずはない」と思いつつ、ローカルでifconfigしてみたところ、現在のCentOS 5.xのIPアドレスは、確かにその見覚えのないIPアドレスになってました・・・orz
よくよく確認していってみると、なぜかIPアドレスがDHCPで割り振られる設定に書き換わっていました。
特に何かをいじったわけではないのになぜ急にDHCPで割り振られるようになってしまったのかは全く分からないのですが、以前の固定IPアドレスを割り当て直したところ、NFSでのマウントは全く問題なく行えました。
これでおそらく次回は起動時からきちんとマウントできるようになっていることでしょう。
思わぬところでエラーが発見できてヨカッタ・・・のか、それともこれもまた本厄の影響なのか・・・(~_~;;