« | »

2015.02.27

サーバー不幸の連鎖その3(歯切れの悪い完了)

WordPressのプラグインのお陰でMySQLのDBの修復も完了し、仮想サーバーやVMWare含めたシステム全体を再起動すると新たな問題が発生していました。

 

今度はこれまで無事に動いていたWEBサーバーも動作しなくなっています。

厳密には、旧サイトは普通に動いていますが、このblogを格納している新しいWEBサーバーがエラーを出しています。

何度かサーバーを再起動して傾向を探ろうとしますが、

 

Apacheから“503 Service Unavailable”エラーで落ちる場合と

WordPressから“データベース接続確立のエラー”のエラーで落ちる場合

 

この二種類あるようです。

どちらも起動したてのサーバーでは考えにくいエラーです。

特にApacheのエラーはサーバーリソースが枯渇した場合に出るエラーで、安定稼働していたApache設定ファイルには何も手を加えずシステム再起動して出るような類のものではありません。

旧サイトは正しくつながっているので、少なくともリバースプロキシのApacheは正しく動作しているようです。

 

そして起動時のログを追いかけながら、何度か再起動を繰り返しているとおかしな傾向が見えてきました。 サーバーの起動にかなり時間が掛かっているということに・・・

 

システム全体の再起動では、親サーバーが起動した後スクリプトでVMWareをバックグラウンドで起動し順次仮想サーバーを起動していきます。 同時実行するとサーバーの起動順序がバラバラになるので一つ一つの仮想サーバーの動作が確定してから次の起動に移ります。

よって複数のサーバーで起動の時間がかかっていると全体の起動完了が非常に時間が掛かることになります。

それぞれの起動を追いかけて行くと、途中で引っかかっているシーケンスを発見しました。

 

netfsサービス…NFSです。

 

本来ならばVMWare内の仮想ネットワークでのNFS接続なのでそんなに接続に時間がかかるとは思えません。

しかし、確実にNFSでつまづいているようです。

再起動してログイン画面が出、システムにログインし、dfコマンドでマウント状況を確認するとログインした段階ではまだNFSマウントされていません。

数分経過してからdfで確認するとNFSマウントされているので、どうやらバックグラウンドモードで再接続を試みているようです。

ただWEBサーバー / MySQLサーバー / sambaサーバーこれらはNFSマウントされた先のデータを利用していますので、こんなに遅くマウントされることは想定していません。 どうやらこれがエラーの諸悪の根源のようです。

 

対策としてはNFSクライアント設定でnfsvers等CentOS同士だから・・・と、デフォルト解釈で任せていた部分を明示的に設定。

出来ればサーバー起動前にNFSマウントを保証したいのでバックグラウンド接続はやめてフォアグラウンド接続の設定にしたかったのですが、それだと今回のような場合ハングアップ同様の状態となりかねず、もっと深刻な問題になりそうなので一旦見送り。 さらにsambaについてはsambaの設定(smb.conf)において接続先IPアドレスだけでなくネットワークインターフェース名(eth1等)を明示的に設定。

 

これら設定を行ってシステムを再起動…安定接続できるようになりました。

 

何れのサーバーもクライアントからの接続とNFS接続を分離し、仮想とはいえDUAL LAN構成としていたのでここに問題があったのかもしれません。

・・・ここで「かもしれません」と歯切れの悪い記載になっているのは、本当にそうなのか…と、設定を元に戻して再起動すると今度は何事もなかったように起動して来て不具合の再現性が無くなってしまったためで、本当にこの設定が決定打なのか…じつははっきりと言い切れないのです。

 

ただ接続設定が明示的ではなかったのは事実で、その設定自体がなにか悪影響するわけではないと思います。

なので今回はこの設定のまま運用を再開することにしたのですが、やはり内心は不安です。

 

暫く様子をみて、また何かあるようであれば追いかけてみたいと思います。(こういう体験はできれば勘弁願いたいですが…)

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">