【お詫び】本日もサーバが停止しました(UNIXに詳しい方、助けてください!)
本日も午前10時50分ころから午後6時30分ころまで
ネットワーク異常のため、完全にアクセスできなくなりました。
連日の障害発生に
皆様には大変なご迷惑をおかけしておりますことを
深くお詫び申し上げます。
---
困ったことに…
このネットワーク停止の原因が
まったくつかめておりません。
現象を書いておきます。
技術的な話です。
現在のサーバ構成は
下図のとおり(「予定」と書いてありますが、この構成で稼動しています。)
サーバ用PCは、Windows7(ホストOSとして)。
仮想化はOracle VirtualBoxの4.1.14を使用して
FreeBSD8.3を導入しています(ゲストOSとして)。
ここでは仮に
ルータを192.168.1.1
ホストOSを192.168.1.hhh
ゲストOSを192.168.1.ggg
というIPで書いていきます。
ネットワークの停止は
負荷の高い/低いにかかわらず発生します。
このサーバの負荷の高い時間帯は
朝5時台と夕方の5時〜7時の時間帯。
本日サーバが停止したのは午前10時50分ころ。
CPU使用率やメモリ使用率、Load Averageをみても
停止前に異常な値を示す様子は見受けられません。
異常は競走馬データの最新データ取得プログラムのログに残っています。
failed to open stream: Permission denied in ...
ネットワークへのアクセスが「Permission denied(アクセス拒否)」になります。
同様に、ntpサーバへのアクセスが
同じPermission deniedになり、サーバ本体のコンソールに出力されます。
こうなると、
ほかの端末からのTelnet接続がまったく不可能となり
当然のことながら、Webでのアクセスも不能になります。
先ほどちょっと試してみたんですが
ping 192.168.1.ggg(自分へのping)がすべて
PING 192.168.1.ggg (192.168.1.ggg): 56 data bytes
^C
--- 192.168.1.ggg ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss
となるんですが、これをルータ(192.168.1.1)へのpingにすると…
PING 192.168.1.1 (192.168.1.1): 56 data bytes
Permission Denied
となって停止します。
当然のことながら、127.0.0.1へのpingはとおります。
そのほか、192.168.1.gggへのtracerouteでも
192.168.1.1へのPermission Deniedが発生します。
192.168.1.hhhへのアクセスについては試していませんが
まあ間違いなくルータを介するので、同じ症状になるんでしょう。
この結果だけを見ると「ルータがおかしいのかな?」とも思いますが
ホストOS(Win7)上で動いているプログラムは正常に動いているし、
ネットワークが途切れたような形跡もありません。
VirtualBoxのネットワークアダプタに異常があるんでしょうか…?
このブログネタをご覧いただいている方で、お詳しい方がいらっしゃいましたら
ぜひともお助けいただきたいと思います。
---
一応、暫定的な対策を。
先ほども書きましたが
正常時には
ping -c 1 192.168.1.ggg
PING 192.168.1.ggg (192.168.1.ggg): 56 data bytes
64 bytes from 192.168.1.ggg: icmp_seq=0 ttl=64 time=0.286 ms
--- 192.168.1.ggg ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.286/0.286/0.286/0.000 ms
となって、
echo $?の結果が0となります。
これが
ネットワークの障害が発生すると
pingがとおらなくなり(packet lostで)、
ping -c 1 192.168.1.gggの結果の$?が1(もしくは2?)になります。
1分ごとにpingを打って
その$?で0以外の場合は強制的にサーバを再起動するようなシェルを組みました。
いつ異常が発生するのかがわかっていません。
異常の発生を食い止める手立てがありません。
なので、いつ異常が発生しても
速やかに再起動して、正常にアクセスできるように復旧させる対策を
今回は講じております。
ちょっとこれで
しばらく様子を見たいと思います。
これでも異常が頻発するようなら
VirtualBoxのアップグレードや、サーバ自体(ゲストOS)のアップグレード(64ビット化してメモリを増やす)
などの対策を考えたいと思います。
-----
今日は予告していた内容を変更して
ブログを書いていきました。
明日のブログは特別何もなければ、
また競馬ネタを書きたいと思っています。
ネットワーク異常のため、完全にアクセスできなくなりました。
連日の障害発生に
皆様には大変なご迷惑をおかけしておりますことを
深くお詫び申し上げます。
---
困ったことに…
このネットワーク停止の原因が
まったくつかめておりません。
現象を書いておきます。
技術的な話です。
現在のサーバ構成は
下図のとおり(「予定」と書いてありますが、この構成で稼動しています。)
サーバ用PCは、Windows7(ホストOSとして)。
仮想化はOracle VirtualBoxの4.1.14を使用して
FreeBSD8.3を導入しています(ゲストOSとして)。
ここでは仮に
ルータを192.168.1.1
ホストOSを192.168.1.hhh
ゲストOSを192.168.1.ggg
というIPで書いていきます。
ネットワークの停止は
負荷の高い/低いにかかわらず発生します。
このサーバの負荷の高い時間帯は
朝5時台と夕方の5時〜7時の時間帯。
本日サーバが停止したのは午前10時50分ころ。
CPU使用率やメモリ使用率、Load Averageをみても
停止前に異常な値を示す様子は見受けられません。
異常は競走馬データの最新データ取得プログラムのログに残っています。
failed to open stream: Permission denied in ...
ネットワークへのアクセスが「Permission denied(アクセス拒否)」になります。
同様に、ntpサーバへのアクセスが
同じPermission deniedになり、サーバ本体のコンソールに出力されます。
こうなると、
ほかの端末からのTelnet接続がまったく不可能となり
当然のことながら、Webでのアクセスも不能になります。
先ほどちょっと試してみたんですが
ping 192.168.1.ggg(自分へのping)がすべて
PING 192.168.1.ggg (192.168.1.ggg): 56 data bytes
^C
--- 192.168.1.ggg ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss
となるんですが、これをルータ(192.168.1.1)へのpingにすると…
PING 192.168.1.1 (192.168.1.1): 56 data bytes
Permission Denied
となって停止します。
当然のことながら、127.0.0.1へのpingはとおります。
そのほか、192.168.1.gggへのtracerouteでも
192.168.1.1へのPermission Deniedが発生します。
192.168.1.hhhへのアクセスについては試していませんが
まあ間違いなくルータを介するので、同じ症状になるんでしょう。
この結果だけを見ると「ルータがおかしいのかな?」とも思いますが
ホストOS(Win7)上で動いているプログラムは正常に動いているし、
ネットワークが途切れたような形跡もありません。
VirtualBoxのネットワークアダプタに異常があるんでしょうか…?
このブログネタをご覧いただいている方で、お詳しい方がいらっしゃいましたら
ぜひともお助けいただきたいと思います。
---
一応、暫定的な対策を。
先ほども書きましたが
正常時には
ping -c 1 192.168.1.ggg
PING 192.168.1.ggg (192.168.1.ggg): 56 data bytes
64 bytes from 192.168.1.ggg: icmp_seq=0 ttl=64 time=0.286 ms
--- 192.168.1.ggg ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.286/0.286/0.286/0.000 ms
となって、
echo $?の結果が0となります。
これが
ネットワークの障害が発生すると
pingがとおらなくなり(packet lostで)、
ping -c 1 192.168.1.gggの結果の$?が1(もしくは2?)になります。
1分ごとにpingを打って
その$?で0以外の場合は強制的にサーバを再起動するようなシェルを組みました。
いつ異常が発生するのかがわかっていません。
異常の発生を食い止める手立てがありません。
なので、いつ異常が発生しても
速やかに再起動して、正常にアクセスできるように復旧させる対策を
今回は講じております。
ちょっとこれで
しばらく様子を見たいと思います。
これでも異常が頻発するようなら
VirtualBoxのアップグレードや、サーバ自体(ゲストOS)のアップグレード(64ビット化してメモリを増やす)
などの対策を考えたいと思います。
-----
今日は予告していた内容を変更して
ブログを書いていきました。
明日のブログは特別何もなければ、
また競馬ネタを書きたいと思っています。
このネタへのコメント:
コメントはありません。