(57)【特許請求の範囲】
【請求項１】
通信回線を介して、他の装置に通信可能に接続された計算装置が備える通信制御装置であって、
前記計算装置は、さらに、
前記通信回線に接続される通信インターフェイスと、
複数の仮想計算機および、前記複数の仮想計算機の間を通信可能に接続する通信部を実現するための手段と、を備え、
前記通信制御装置は、
前記通信インターフェイスおよび前記通信部を介して、疎通確認要求をブロードキャスト送信する要求送信部と、
前記通信インターフェイスまたは前記通信部を介して受信される、前記疎通確認要求に対する応答の内容に基づいて、前記通信インターフェイスの異常の有無を判定する状態判定部とを含み、
前記状態判定部は、前記受信された応答の送信元の識別情報に、前記複数の仮想計算機の各々の識別情報とは異なる識別情報が含まれるか否かに基づき、前記通信回線および前記通信インターフェイスの異常の有無を判定するよう構成されている、通信制御装置。
【請求項２】
前記状態判定部は、さらに、
前記受信された応答のうち、前記複数の仮想計算機の識別情報を有する応答を除外し、除外後の受信応答の有無から、前記通信インターフェイスの異常の有無を判定するように構成される、請求項１に記載の通信制御装置。
【請求項３】
前記状態判定部は、さらに、
前記除外後の受信応答が有れば、前記通信インターフェイスは異常なしと判定するように構成されている、請求項２に記載の通信制御装置。
【請求項４】
前記状態判定部は、
前記除外後の受信応答が無ければ、前記通信インターフェイスは異常であると判定するように構成されている、請求項２または３に記載の通信制御装置。
【請求項５】
前記通信制御装置は、
前記複数の仮想計算機の各々に割当られた各識別情報を記憶する情報記憶部をさらに含み、
前記計算装置により実現される仮想計算機の変更があったときは、前記情報記憶部の内容は、当該変更の内容に基づき書換えられる、請求項１から４のいずれか１項に記載の通信制御装置。
【請求項６】
前記要求送信部は、
前記通信回線から予め定められた期間にわたり信号受信できない状態が発生した場合に、前記通信インターフェイスおよび前記通信部を介して、前記疎通確認要求をブロードキャスト送信する、請求項１から５のいずれか１項に記載の通信制御装置。
【請求項７】
計算装置であって、
通信回線を介して、他の装置との通信を制御するための通信制御装置と、
前記通信回線に接続される通信インターフェイスと、
複数の仮想計算機および、前記複数の仮想計算機の間を通信可能に接続する通信部を実現するための手段と、を備え、
前記通信制御装置は、
前記通信インターフェイスおよび前記通信部を介して、疎通確認要求をブロードキャスト送信する要求送信部と、
前記通信インターフェイスまたは前記通信部を介して受信される、前記疎通確認要求に対する応答の内容に基づいて、前記通信インターフェイスの異常の有無を判定する状態判定部とを含み、
前記状態判定部は、前記受信された応答の送信元の識別情報に、前記複数の仮想計算機の各々の識別情報とは異なる識別情報が全て含まれるか否かに基づき、前記通信回線および前記通信インターフェイスの異常の有無を判定するよう構成されている、計算装置。
【請求項８】
前記要求送信部は、
前記通信回線から予め定められた期間にわたり信号受信できない状態が発生した場合に、前記通信インターフェイスおよび前記通信部を介して、前記疎通確認要求をブロードキャスト送信する、請求項７に記載の計算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算装置が備える通信制御装置に関し、特に、通信制御装置が有する異常判定の技術に関する。
【背景技術】
【０００２】
従来のネットワークを介して分散配置された計算機システムでは、各計算装置が相互にネットワークで接続されている。各計算機からネットワークの状態および計算機の稼動状態を監視および把握するために、ＩＣＭＰ（Internet Control Message Protocol）を用いたパケット、つまりｐｉｎｇ（Packet Internet Groper）プログラムが用いられていた。
【０００３】
また最近のシステムでは仮想計算機の環境の適用も進み、計算装置から稼働する仮想計算機の状態を監視する手法としての特許文献１（段落００１８、００２４、図２、図３等）と特許文献２（段落００１３、図４等）には、上述の技術が開示されている。また、従来は、計算装置間で通信が可能であることに基づき、通信経路が健全であるとの判断もなされていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２２１１７５号公報
【特許文献２】特開２０１０−１９８４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通信回線を介して接続された計算装置同士が、正常に通信ができない場合において、自己の計算装置の側に発生した故障（異常）が原因であるのか、または通信相手である他の計算装置側に発生した故障（異常）が原因であるのかを特定したいとの要望があった。
【０００６】
しかし、特許文献１または２等に開示されたネットワーク障害検知方法は、対象とする計算装置に対してｐｉｎｇリクエストを送信して、そのｐｉｎｇリクエスト応答を監視するだけのものであった。したがって、計算装置の稼動状態を把握することはできるが、自計算装置側の故障状態であるかどうかを明示的に特定することはできなかった。
【０００７】
この発明は、上述の課題を解決するためになされたもので、その目的は、通信回線を介して、他の装置に通信可能に接続された計算装置の通信インターフェイスについて、故障であるか等、その状態を特定することのできる計算装置の通信制御装置を提供することである。
【課題を解決するための手段】
【０００８】
この発明のある局面に従う、計算装置が備える通信制御装置は、計算装置の通信インターフェイスおよび仮想計算機間の通信部を介して、疎通確認要求をブロードキャスト送信する要求送信部と、通信インターフェイスの状態を判定する状態判定部と、を含む。状態判定部は、疎通確認要求に対する応答であって送信元の識別情報を有する応答を、通信インターフェイスまたは通信部を介して受信し、受信した応答の識別情報に、複数の仮想計算機の識別情報とは異なる識別情報が含まれるか否かに基づき、通信インターフェイスの状態を判定する。
【発明の効果】
【０００９】
本発明によれば、計算装置の通信制御装置は、疎通確認要求に対する応答に、仮想計算機の識別情報とは異なる識別情報を有する応答が含まれるか否かに基づき、通信インターフェイスの異常の有無を判定することで、当該通信インターフェイスが故障しているか否かを知ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１の計算装置システムの構成図である。
【図２】実施の形態に係る計算装置のハードウェア構成図である。
【図３】実施の形態１に係る計算装置の判定定義を示す図である。
【図４】実施の形態１に係る計算装置による処理を表すフローチャートである。
【図５】実施の形態１に係る通信のパケット例を示す図である。
【図６】実施の形態１に係る故障部位判定のフローチャートである。
【図７】実施の形態２に係る計算装置システムの構成図である。
【図８】実施の形態２に係る処理を表すフローチャートである。
【図９】実施の形態２に係る動作を模式的に説明する図である。
【図１０】実施の形態の効果を説明するために参照する計算装置システム構成図である。
【図１１】実施の形態の効果を説明するための通信シーケンス図である。
【図１２】実施の形態の効果を説明するための通信シーケンス図である。
【図１３】実施の形態の効果を説明するために参照する他の計算装置システム構成図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について、図面を参照しながら詳細に、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１２】
各実施の形態に係る計算装置システムは、ネットワークを介して接続された複数の計算装置が分散配置された計算装置システムであって、ネットワークに関する故障箇所を検出する機能を有する。
【００１３】
本実施の形態では、ソフトウェアは、プログラムまたはデータを含む。また、計算装置は、物理計算機と、仮想計算機を含む。本実施の形態では、物理計算機を、計算装置ともいう。すなわち、計算装置は、ＣＰＵ（Central Processing Unit）およびソフトウェアを格納するためのメモリデバイス（ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスク等）、クロック出力のための発振器等の各種ハードウェアから構成された計算機である。また、計算装置のメモリデバイスにはＯＳ（Operating System）と、各種プログラムが格納される。ＣＰＵは、ＯＳを実行し、ＯＳの制御のもとで各種プログラムを起動して実行する。当該計算装置の構成は周知であるので、詳細な説明は繰り返さない。
【００１４】
仮想計算機は、計算装置のＯＳ制御のもとで実行される各種プログラムおよびデータを含んで構成される。仮想計算機の各種プログラムには、仮想計算機のためのＯＳも含まれて、仮想計算機の各種プログラムは、当該仮想計算機のＯＳのもとで起動および実行が制御される。計算装置が当該各種プログラムを実行することにより、計算装置において仮想計算機が実現される。
【００１５】
また、後述する故障部位判定部によって自端故障または他端故障が判定される。自端故障とは、当該故障部位判定部を備えた計算装置（自計算装置ともいう）のＬＡＮ（Local Area Network）との接続にかかる通信インターフェイス（自計算装置の物理ＮＩＣ（後述する）の状態が異常であることを示す。また、他端故障とは、自計算装置の通信相手となる相手計算装置側のＬＡＮとの接続にかかる通信インターフェイス（相手計算装置の物理ＮＩＣ）の状態が異常である、またはＬＡＮに異常があることを示す。
【００１６】
[実施の形態１]
実施の形態１に係る例えば電力系統監視システムに適用される計算機システム１は、計算装置Ａ１００、計算装置Ｂ１１０、および計算装置Ａ１００と計算装置Ｂ１１０とを接続するためのネットワークを備える。ネットワークは、ＬＡＮ−Ａ１０１とＬＡＮ−Ｂ１０２（以下、ＬＡＮ−Ａ１０１とＬＡＮ−Ｂ１０２をＬＡＮと総称する場合がある）とによって２重化されている。なお、ＬＡＮは有線または無線のいずれであってもよく、また、ネットワークの種類はＬＡＮに限定されない。なお、ＬＡＮに接続される装置としては、計算装置に限定されず、ＬＡＮを介して通信可能な装置全般を適用することができる。実施の形態１では、説明を簡単にするために、ＬＡＮには計算装置のみが接続されていると想定する。
【００１７】
図１では、電力系統で測定される各種データ（電流、電圧等）はＬＡＮ−Ａ１０１およびＬＡＮ−Ｂ１０２を介して伝送されて計算装置Ａ１００または物理計算機Ｂ１１０によりデータ処理されるが、ここでは、その詳細な説明は繰り返さない。
【００１８】
計算装置Ａ１００は、仮想計算機Ａ２００および仮想計算機Ｂ３００、ならびに仮想計算機間または仮想計算機とＬＡＮ間の通信を切替えるためのソフトウェアスイッチである仮想ＳＷ（switchの略）−Ａ２０３および仮想ＳＷ（switchの略）−Ｂ３０３を備える。計算装置Ａ１００は、さらに、ＬＡＮと通信するための通信インターフェイスに相当するハードウェアである物理ＮＩＣ（Network Interface Card）−Ａ１０３および物理ＮＩＣ−Ｂ１０４、および後述する計算機判定定義を取得する計算機判定定義取得部５０２を備える。
【００１９】
仮想計算機Ａ２００は、仮想計算機Ａ２００内のプログラムの起動および実行を制御するＣＵ（Control Unit）−Ａ２１０、後述する計算機判定定義５００、故障状態検出部４００、故障部位判定部４０１、同一計算装置内の他の仮想計算機Ｂ２００との通信を制御するための仮想ＮＩＣ−Ａ２０１および仮想ＮＩＣ−Ｂ２０２、ならびに応答処理を実施する応答部６０４を備える。故障状態検出部４００は、後述する疎通確認要求を送信する要求送信部４００ａ、および疎通確認要求に対する応答に基づき通信インターフェイスの異常の有無を判定する状態判定部４００ｂを含む。
【００２０】
同様に、仮想計算機Ｂ３００は、仮想計算機Ｂ３００内のプログラムの起動および実行を制御するＣＵ（Control Unit）−Ｂ３１０、後述する計算機判定定義５０１、故障状態検出部４０２、故障部位判定部４０３、同一計算装置内の他の仮想計算機Ａ２００との間の通信を制御するための仮想ＮＩＣ−Ａ３０１，仮想ＮＩＣ−Ｂ３０２、および応答処理を実施する応答部６０５を備える。故障状態検出部４０２は、後述する疎通確認要求を送信する要求送信部４０２ａ、および疎通確認要求に対する応答に基づき通信インターフェイスの異常の有無を判定する状態判定部４０２ｂを含む。仮想計算機Ａ２００とＢ３００の各部は、計算装置Ａ１００の予め定められた記憶領域（図２で後述する）に格納されたプログラムにより実現される。
【００２１】
また、計算装置Ｂ１１０は、ＬＡＮと通信するためのハードウェアである通信インターフェイスに相当する物理ＮＩＣ−Ａ１０５，物理ＮＩＣ−Ｂ１０６を備えるとともに、予め定められた記憶領域（図２で後述する）に格納された各種プログラムを備える。各種プログラムには、計算装置Ｂ１１０内のプログラムの起動および実行を制御するＣＵ（Control Unit）４１０、故障状態検出部４０４、故障部位判定部４０５、後述する計算機判定定義５０３を取得するための計算機判定定義取得部５０４、および応答処理を実施する応答部６０６の各機能を実現するためのプログラムが含まれる。故障状態検出部４０４は、後述する疎通確認要求を送信する要求送信部４０４ａ、および疎通確認要求に対する応答に基づき通信インターフェイスの異常の有無を判定する状態判定部４０４ｂを含む。なお、計算装置Ｂ１１０は、仮想計算機を備えない構成としたが、１つ以上の仮想計算機を備えるとしてもよい。
【００２２】
ここでは、故障状態検出部４００、故障部位判定部４０１および計算機判定定義５００は、計算装置Ａ１００の通信を制御するための通信制御装置１０Ａを構成する。同様に、故障状態検出部４０２、故障部位判定部４０３および計算機判定定義５０１も、計算装置Ａ１００の通信を制御するための通信制御装置１０Ｂを構成する。同様に、故障状態検出部４０４、故障部位判定部４０５および計算機判定定義５０３は、計算装置Ｂ１１０の通信を制御するための通信制御装置１０Ｃを構成する。
【００２３】
計算装置Ａ１００と計算装置Ｂ１１０は、以下の実施の形態１では、計算装置Ａと計算装置Ｂとそれぞれ称する場合がある。また、仮想計算機Ａ２００と仮想計算機Ｂ３００は、仮想計算機ＡとＢとそれぞれ称する場合がある。また、ＣＵ−Ａ２１０およびＣＵ−Ｂ３１０は、ＣＵと総称する場合がある。
【００２４】
図１では、電力系統のフェールセーフの観点からＬＡＮ、計算装置および仮想計算機は２重化されているが、これに限定されず３重化以上に多重化されてもよい。
【００２５】
図１では、計算装置Ａおよび計算装置Ｂは電源ＯＮされると起動する。計算装置が起動すると、計算装置Ａにおいて仮想計算機Ａ，Ｂも起動する。計算装置Ａと計算装置Ｂとは、通信インターフェイスに相当する物理ＮＩＣ−Ａ１０３，物理ＮＩＣ−Ａ１０５によってＬＡＮ−Ａ１０１を介して通信することができ、また、通信インターフェイスに相当する物理ＮＩＣ−Ｂ１０４，物理ＮＩＣ−Ｂ１０６によってＬＡＮ−Ｂ１０２を介して通信することができる。また、仮想計算機Ａと仮想計算機Ｂとは、ソフトウェアである通信部（仮想ＳＷ−Ａ２０３および仮想ＳＷ−Ｂ３０３、ならび仮想ＮＩＣ−Ａ２０１、仮想ＮＩＣ−Ｂ２０２、仮想ＮＩＣ−Ａ３０１および仮想ＮＩＣ−Ｂ３０２）を介して相互に通信することができる。
【００２６】
図１では、仮想計算機Ａが計算装置Ｂと通信をする場合、ＬＡＮ−Ａ１０１を経由する際には仮想ＳＷ−Ａ２０３を介して行う。具体的には、仮想計算機Ａからのデータは、仮想ＮＩＣ−Ａ２０１→仮想ＳＷ−Ａ２０３→物理ＮＩＣ−Ａ１０３→ＬＡＮ−Ａ１０１→物理ＮＩＣ−Ａ１０５の経路を経て送信される。計算装置Ｂからのデータは、この経路を逆に流れて送信される。ＬＡＮ−Ｂ１０２を経由する際には仮想ＳＷ−Ｂ３０３を介して行う。具体的には、仮想計算機Ａからのデータは、仮想ＮＩＣ−Ｂ２０２→仮想ＳＷ−Ｂ３０３→物理ＮＩＣ−Ｂ１０４→ＬＡＮ−Ｂ１０２→物理ＮＩＣ−Ｂ１０６の経路を経て送信される。計算装置Ｂからのデータは、この経路を逆に流れて送信される。
【００２７】
実施の形態に係る計算装置は、図２に示すハードウェア構成を有する。具体的には、ハードウェアのＣＰＵ９０、ハードディスク２５、ＲＯＭ、ＲＡＭ等の揮発性または不揮発性の記憶媒体であるメモリ３０、物理ＮＩＣ−ＡまたはＢに相当する通信Ｉ／Ｆ（Interface）４０、操作者の指示等の各種入力を受けるキーボードおよびマウス等からなる操作部５０、および各種情報を表示するためのディスプレイ等の表示部６０を含む。計算装置は、さらに、タイマ７０、着脱可能に装着されるＣＤ−ＲＯＭ(compact disk read only memory)等からなる記録媒体８１をアクセスしてデータの読み書きを行うメモリＩ／Ｆ（Interface）８０を含む。各ハードウェアは、相互にデータバスによって接続されている。ハードディスク２５、メモリ３０および記録媒体８１等は、仮想計算機のプログラムおよびデータを含むソフトウェアを格納するための記憶領域に相当し、また計算装置のプログラムおよびデータを含むソフトウェアを格納するための記憶領域に相当する。
【００２８】
計算装置Ａは図２のハードウェア資源を有し、仮想計算機Ａと仮想計算機Ｂと上述の通信部のプログラムは、このハードウェア資源を共用しながら実行される。なお、計算装置Ａは、実現する各仮想計算機について個別にハードウェア資源を備えてもよい。
【００２９】
このように、計算装置ＡのＣＰＵ９０、ハードディスク２５およびメモリ３０等のハードウェア資源は、仮想計算機ＡとＢおよび仮想計算機ＡとＢの間を通信可能に接続する上述した通信部を実現するための手段に相当する。
【００３０】
図３は、実施の形態１に係る計算機判定定義５００、５０１および５０３を示す。これらは、計算装置Ａが実現する仮想計算機Ａ２００およびＢ３００に割当られた識別情報を記憶する情報記憶部に相当する。この情報記憶部は、図２のメモリ３０等の記憶領域に設けられる。
【００３１】
本実施の形態では、これら計算機判定定義は同様の構成を有するので、図３では、代表して計算機判定定義５００を説明する。計算機判定定義５００は、計算機システム１内の各計算装置に対応して、当該計算装置および仮想計算機を、計算機システム１において一意に識別するために各計算機に割当られた識別情報を示す。つまり、計算機判定定義５００は、計算装置Ａについては仮想計算機Ａに対応した識別情報であるホスト情報（計算機名称と、ＬＡＮ−Ａ１０１を介して通信するための定義データＡ-ＤＡと、ＬＡＮ−Ｂ１０２を介して通信するための定義データＡ−ＤＢとを含む）と、仮想計算機Ｂに対応した識別情報であるホスト情報（計算機名称と、ＬＡＮ−Ａ１０１を介して通信するための定義データＢ-ＤＡと、ＬＡＮ−Ｂ１０２を介して通信するための定義データＢ−ＤＢとを含む）とを有する。
【００３２】
定義データＡ−ＤＡは、仮想計算機ＡがＬＡＮ−Ａ１０１を介して通信する際に参照するデータであって、仮想計算機ＡのＬＡＮ−Ａ１０１におけるＩＰ（Internet Protocol）アドレス、およびＮＩＣ構成情報を含む。ＩＰアドレスは、仮想計算機Ａを実現する計算装置ＡのＩＰアドレスと仮想計算機ＡのＩＰアドレスとを含む。ＮＩＣ構成情報は、当該仮想計算機ＡがＬＡＮ−Ａ１０１を介して通信するための物理ＮＩＣの識別子（ポート番号、アドレス等）を示す。
【００３３】
定義データＡ−ＤＢは、対応する仮想計算機ＡがＬＡＮ−Ｂ１０２を介して通信する際に参照するデータであって、定義データＡ−ＤＡと同様に、仮想計算機のＬＡＮ−Ｂ１０２におけるＩＰアドレス、およびＮＩＣ構成情報を含む。
【００３４】
計算機判定定義５００は、また、仮想計算機Ｂに対応しての識別情報であるホスト情報（計算機名称と、ＬＡＮ−Ａ１０１を介して通信するための定義データＢ-ＤＡと、ＬＡＮ−Ｂ１０２を介して通信するための定義データＢ−ＤＢとを含む）を有する。このホスト情報も仮想計算機Ａのホスト情報と同様である。つまり、定義データＢ−ＤＡおよび定義データＢ−ＤＢそれぞれのＩＰアドレスは、仮想計算機Ｂを実現する計算装置ＡのＩＰアドレスと仮想計算機ＢのＩＰアドレスとを含む。
【００３５】
計算機判定定義５００は、さらに、計算装置Ｂに対応してホスト情報（計算機名称と、ＬＡＮ−Ａ１０１を介して通信するための定義データＢＡと、ＬＡＮ−Ｂ１０２を介して通信するための定義データＢＢを含む）を有する。定義データＢＡは、当該計算装置ＢのＬＡＮ−Ａ１０１におけるＩＰアドレス、およびＮＩＣ構成情報を含み、同様に、定義データＢＢは、計算装置ＢのＬＡＮ−Ｂ１０２におけるＩＰアドレス、およびＮＩＣ構成情報を含む。計算装置Ｂでは、仮想計算機が実現されないために、これらＩＰアドレスは、計算装置Ｂに割当られたＩＰアドレスを示す。
【００３６】
図４には、実施の形態に係る計算機判定定義取得部による処理のフローチャートが示される。このフローチャートに従うプログラムは、予め計算装置の記憶領域に格納されており、計算装置が電源ＯＮされて起動されると、ＣＰＵ９０は図４のプログラムを実行し計算機判定定義を生成する。ここでは、計算装置Ａの計算機判定定義取得部５０２による計算機判定定義５００と５０１の生成を例示する。
【００３７】
図４を参照して、計算装置Ａの起動時に、ＣＰＵ９０の計算機判定定義取得部５０２は、メモリ３０に予め登録された計算機情報に基づき、計算装置Ａにより仮想計算機が実現されるか否かを判定する（ステップＳ２１）。
【００３８】
計算機判定定義取得部５０２は、仮想計算機が実現されると判定したときは（ステップＳ２１で“仮想計算機あり”）、システムコマンドを用いて全仮想計算機のホスト情報を取得する（ステップＳ２２）。なお、ホスト情報は、計算装置Ａの予め定められた記憶領域に格納されている。
【００３９】
計算機判定定義取得部５０２は、取得したホスト情報を計算機判定定義５００と５０１に設定して（ステップＳ２３）、処理を終了する。これにより、図３の計算機判定定義５００と５０１が取得される。
【００４０】
計算装置Ａでは仮想計算機が実現されるため、ステップＳ２４以降の処理は実施されないが、計算装置Ｂでは仮想計算機が実現されないために、ステップＳ２４以降の処理が実施される。具体的には、計算装置Ｂの起動時に、ＣＰＵ９０の計算機判定定義取得部５０４は、メモリ３０に予め登録された計算機情報に基づき、計算装置Ｂ上に仮想計算機が実現されるか否かを判定する（ステップＳ２１）。
【００４１】
計算機判定定義取得部５０４は、仮想計算機が実現されないと判定し（ステップＳ２１で“仮想計算機なし”）、システムコマンドを用いて計算装置Ｂのホスト情報を取得する（ステップＳ２４）。なお、ホスト情報は、計算装置Ｂの予め定められた記憶領域に格納されている。
【００４２】
計算機判定定義取得部５０４は、取得したホスト情報を計算機判定定義５０３に設定し（ステップＳ２５）、処理を終了する。これにより、図３の計算機判定定義５０３が取得される。
【００４３】
実施の形態１では、上記の計算機情報およびホスト情報は、計算機システム１の計算装置または仮想計算機の構成が変更（追加、削除等）されるごとに、当該変更後の構成を示すように書換えられる。また、計算機が稼働中は図４の処理は定期的に繰返し実行されて、計算機判定義を、最新情報を示すように変更することができる。
【００４４】
図５には、実施の形態１に係る通信のパケット例が示される。図５では、ＩＣＭＰ（Internet Control Message Protocol）のプロトコルに従うパケットを示し、パケットは、当該パケットに格納されたデータの種類を示すデータタイプＴＹ、当該通信パケットのあて先情報および送信元情報を格納するヘッダ部ＨＥ、および送受信するべきデータを格納するためのデータ部ＤＢを含む。ヘッダ部ＨＥには、パケットが経由する仮想ＮＩＣおよび物理ＮＩＣの識別子（ポート番号、アドレス等）も含まれる。仮想ＳＷ−Ａ２０３または仮想ＳＷ−Ｂ３０３は、受信パケットのヘッダ部ＨＥのデータから、当該パケットの送出先を決定して振り分けることができる。
【００４５】
図５では、エコー要求パケットＰ１０（以下、要求パケットＰ１０ともいう）とエコー応答パケットＰ２０（以下、応答パケットＰ２０ともいう）が示される。要求パケットＰ１０のデータタイプＴＹは通信の疎通確認要求、すなわち通信可否（疎通）を問い合わせるエコー要求を示し、応答パケットＰ２０のデータタイプＴＹはエコー要求に対するエコー応答を示す。応答パケットＰ２０は、要求パケットＰ１０を受信した場合に生成されて、受信した要求パケットＰ１０のデータ部ＤＢの内容はそのままデータ部にコピーされ、データタイプＴＹには“エコー応答”がセットされることで応答パケットＰ２０が生成される。応答パケットＰ２０のヘッダ部のあて先情報および送信元情報には、受信した要求パケットＰ１０の送信元情報およびあて先情報がそれぞれセットされる。これらパケットは、本実施の形態では、送信側と受信側とで同期をとらずに（非同期に）伝送される。
【００４６】
次に、ネットワーク障害が発生した場合における故障部位の判定処理について説明する。図６は、実施の形態１に係る故障部位判定のフローチャート図である。このフローチャートに従うプログラムは、予め各計算機の記憶領域に格納されている。図６を参照して、本実施の形態に係る仮想計算機Ａにおいて故障部位判定部４０１のプログラムが実行されることにより故障部位判定が実施される場合を説明する。
【００４７】
まず、仮想計算機Ａでは、仮想ＮＩＣ−Ａ２０１または仮想ＮＩＣ−Ｂ２０２の受信信号から、予め定められた期間にわたりＬＡＮから信号受信できていない等の問題が発生しているか否かを判定する。このＬＡＮ判定処理を説明する。
【００４８】
まず、本実施の形態では、各計算装置の物理ＮＩＣ−ＡはＬＡＮ−Ａ１０１に接続され、また物理ＮＩＣ−ＢはＬＡＮ−Ｂ１０２に接続されている。各物理ＮＩＣは、自己を一意に識別するための異なるＮＩＣアドレス（ＭＡＣアドレス等）が割り当てられており、ＬＡＮから受信したデータ（パケットを含む）に自己のＮＩＣアドレスを付加して計算機内部に送信する。したがって、計算装置のＣＰＵ９０または仮想計算機のＣＵは、受信データを解析し、付加されたＮＩＣアドレスを取得し、取得したＮＩＣアドレスから、いずれのＬＡＮからデータを受信したかを検出することができる。例えば、計算装置または仮想計算機は予め定められた記憶領域に、ＮＩＣアドレスと接続ＬＡＮの種類（ＬＡＮ−Ａ、ＬＡＮ−Ｂ）とを対応付けた対応付け情報を予め記憶する。そして、上述の解析により取得したＮＩＣアドレスに基づき対応付け情報を検索することにより、受信データを伝送したＬＡＮを識別することができる。したがって、この識別結果から、予め定められた期間にわたりデータを受信できていない等の問題が発生しているＬＡＮを判定することができる。
【００４９】
上述のＬＡＮ判定処理により、問題が発生しているＬＡＮを検出すると、図６の故障部位判定処理が開始される。
【００５０】
まず、故障状態検出部４００の要求送信部４００ａは、問題発生のＬＡＮがＬＡＮ−Ａ１０１かＬＡＮ−Ｂ１０２かを判別する。そして、この判別したＬＡＮをチェック対象ＬＡＮとして設定されたエコー要求の要求パケットＰ１０を生成して送信する。この要求パケットＰ１０の送信元情報は、仮想計算機Ａ２００のＩＰアドレスを示し、あて先情報はブロードキャスト情報を示す。生成された要求パケットＰ１０は各計算機へ送信される（ステップＳ３１）。なお、各計算機のＩＰアドレスは、記憶領域（ハードディスク２５、メモリ３０および記録媒体８１等）に予め格納されている。
【００５１】
例えば、ＬＡＮ−Ａ１０１に問題発生を検出したとすると、要求送信部４００ａからの要求パケットＰ１０は、チェック対象であるＬＡＮ−Ａ１０１に送出されるように、仮想ＮＩＣ−Ａ２０１→仮想ＳＷ−Ａ２０３→物理ＮＩＣ−Ａ１０３を経由してＬＡＮ−Ａ１０１に送出される。また、計算装置Ａ内の他の仮想計算機Ｂにも送信されるように、仮想ＮＩＣ−Ｂ２０２→仮想ＳＷ−Ｂ３０３→仮想ＮＩＣ−Ｂ３０２を経由して仮想計算機Ｂに送信される。
【００５２】
送信された要求パケットＰ１０は、ネットワーク障害が発生していない計算機によって受信される。要求パケットＰ１０を受信した計算機では、応答部が要求パケットＰ１０からエコー応答の応答パケットＰ２０を生成する。この応答パケットＰ２０の送信元情報には、送信元となる計算機のＩＰアドレスがセットされる。
【００５３】
生成された応答パケットＰ２０は仮想計算機Ａ宛てに送信される。具体的には、計算装置Ｂからの応答パケットＰ２０は、物理ＮＩＣ−Ａ１０５→ＬＡＮ−Ａ１０１→物理ＮＩＣ−Ａ１０３→仮想ＳＷ−Ａ２０３→仮想ＮＩＣ−Ａ２０１を経由して仮想計算機Ａに送信される。また、仮想計算機Ｂからの応答パケットＰ２０は、仮想ＮＩＣ−Ａ３０１→仮想ＳＷ−Ａ２０３→仮想ＮＩＣ−Ａ２０１を経由して仮想計算機Ａに送信される。
【００５４】
エコー要求送信元である仮想計算機Ａにおいては、故障部位判定部４０１の状態判定部４００ｂは、受信した応答パケットＰ２０の内容に基づき、通信インターフェイスである物理ＮＩＣの状態（故障の有無（異常、正常）等）を検出する。具体的には、状態判定部４００ｂは、他の計算装置（計算装置Ｂ）または他の仮想計算機（仮想計算機Ｂ）から受信した応答パケットＰ２０の内容に基づき、物理ＮＩＣの状態（故障の有無（異常、正常）等）を判定する。この状態判定部４００ｂによる判定処理を説明する。
【００５５】
まず、状態判定部４００ｂは、応答パケットＰ２０を受信できるか監視する（ステップＳ３１）。監視結果に基づき、応答パケットＰ２０を受信したか否かを判定する（ステップＳ３２）。状態判定部４００ｂは、応答パケットＰ２０を受信していないと判定すると（ステップＳ３２で“エコー要求に対してエコー応答がない”）、故障部位判定部４０１は自端故障、すなわち自己の計算装置Ａに接続されたＬＡＮ−Ａ１０１および通信インターフェイスの物理ＮＩＣ−Ａ１０３が故障していると判定し、判定結果を出力する（ステップＳ３３）。例えば、表示部６０に「ＬＡＮ−Ａ１０１および物理ＮＩＣ−Ａ１０３等のネットワークインターフェイス部分が故障」の旨を出力する。
【００５６】
状態判定部４００ｂは、応答パケットＰ２０を受信したと判定すると（ステップＳ３２で“エコー要求に対してエコー応答があり”）、受信応答パケットＰ２０のうちから、計算装置Ａ上の仮想計算機からの応答パケットＰ２０を除外する（ステップＳ３４）。これは仮想計算機Ｂからのエコー応答を除外するために実施される。つまり、計算装置Ａの物理ＮＩＣ−Ａ１０３が故障していても、仮想ＳＷ−Ａ２０３は健全に動作する。よって仮想計算機Ｂからのエコー応答が仮想ＮＩＣ−Ａ３０１→仮想ＳＷ−Ａ２０３経由で受信された場合には、ＬＡＮ−Ａ１０１を経由して応答パケットＰ２０を受信したと誤判定されてしまうためである。
【００５７】
そこで、状態判定部４００ｂは、計算機判定定義５００を参照して、計算装置Ａにおける仮想計算機からの応答を除外する。具体的には、状態判定部４００ｂは、計算機判定定義５００を検索し、計算機判定定義５００から計算装置Ａ上の各仮想計算機のＩＰアドレスを読出す。そして、受信した各応答パケットＰ２０の送信元情報が示すＩＰアドレスと、読出された仮想計算機グループのＩＰアドレスとを比較する。状態判定部４００ｂは、比較の結果、読出された仮想計算機グループのＩＰアドレスと一致したＩＰアドレスを有した応答パケットＰ２０を破棄（受信応答パケットＰ２０のうちから、ＩＰアドレスが一致した応答パケットＰ２０を除外）する。
【００５８】
ステップＳ３４では、受信した応答パケットＰ２０のうちから、計算装置Ａにおける各仮想計算機からの応答パケットＰ２０が全て除外されたことにより、仮想計算機ＡおよびＢのＩＰアドレスとは異なるＩＰアドレスを、送信元情報として有した応答パケットＰ２０のみを残すことができる。
【００５９】
状態判定部４００ｂは、残った応答パケットＰ２０の内容に基づき他計算装置からのエコー応答のあり、なしを判定する（ステップＳ３５）。
【００６０】
具体的には、状態判定部４００ｂは、残った各応答パケットＰ２０の送信元情報が示すＩＰアドレスと、計算機判定定義５００から読出した他の各計算装置のＩＰアドレス（計算装置上の仮想計算機のＩＰアドレスは除いたもの）を比較する。状態判定部４００ｂは、比較の結果に基づき、計算機判定定義５００に格納された他の全ての計算装置それぞれのＩＰアドレスについて、当該ＩＰアドレスを送信元情報として有した応答パケットＰ２０を全て揃って受信できているか否かを判定する。全て受信できていると判定される場合は（ステップＳ３５で“他の計算装置全てから応答あり”）、状態判定部４００ｂは、故障部位なしと判定する。判定の結果は表示部６０に出力される（ステップＳ４０）。例えば、「ＬＡＮ−Ａ１０１および物理ＮＩＣ−Ａ１０３等のネットワークインターフェイス部分は正常」の旨が出力される。
【００６１】
一方、状態判定部４００ｂは、他計算装置からのエコー応答を全て揃って受信できていないと判定すると（ステップＳ３５で“応答がない計算装置があり”）、他計算装置から受信したエコー応答の応答パケットＰ２０の件数をカウントして（ステップＳ３６）、カウント数をチェックする（ステップＳ３７）。その結果に基づき、状態判定部４００ｂは“１件以上のエコー応答あり”と判定すると、すなわちＬＡＮ−Ａ１０１に接続された他の計算装置側の故障である他端故障と判定する。判定の結果は表示部６０に出力される（ステップＳ３９）。例えば、「ＬＡＮ−Ａ１０１に接続された他の計算装置のネットワークインターフェイス部分の故障あり」の旨が出力される。
【００６２】
一方、状態判定部４００ｂは、１件もエコー応答の応答パケットＰ２０を受信していないと判定すると（ステップＳ３７で“１件もエコー応答なし”）、自端故障と判定する。その判定の結果は表示部６０に出力される（ステップＳ３８）。この出力情報は、例えばステップＳ３３と同様である。
【００６３】
図６の処理は、仮想計算機Ａを例示して説明したが、仮想計算機Ｂ、または計算装置Ｂにおいても、ＬＡＮ判定処理により、問題が発生しているＬＡＮの種類を検出した場合には、仮想計算機Ｂの故障部位判定部４０３または計算装置Ｂの故障部位判定部４０５による、図６の処理が開始される。
【００６４】
処理では、上述したように、エコー要求の要求パケットＰ１０またはエコー応答の応答パケットＰ２０の転送が非同期に実施されることで、送信側と受信側のタイミングの一致（同期）をとる必要はない。それにより、計算装置、仮想計算機および通信回線（ＬＡＮ）にかかる負荷上昇を抑制しつつ、故障部位を特定し、その特定した情報を出力することができる。
【００６５】
なお、実施の形態１では、仮想計算機が、通信制御装置１０Ａおよび１０Ｃを備える構成を説明したが、これに限定されない。つまり、通信制御装置１０Ａおよび１０Ｃは、計算装置Ａ内に備えられる構成であれば、仮想計算機外に備えられる構成であってもよい。
【００６６】
[実施の形態２]
次に、各計算装置が、ＬＡＮに接続された通信装置と通信できるか否かにより、故障を検出する場合を説明する。
【００６７】
図７を参照して、実施の形態２に係る電力系統監視システムに適用される計算機システム１Ａは、計算装置Ｃ１００Ａ（以下、計算装置１００Ａと称する）、ならびに計算装置１００Ａと通信するルータＡ１１１およびルータＢ１２２を備える。これらはＬＡＮを介して通信する。本実施の形態２でも、実施の形態１と同様に、通信回線（ＬＡＮ）は、ＬＡＮ−Ａ１０１とＬＡＮ−Ｂ１０２とによって２重化されて構成される。ここでは、計算装置１００ＡとＬＡＮを介して通信する通信装置として、通信中継装置であるルータＡ１１１およびルータＢ１１２の２台を例示したが、通信装置の種類はルータに限定されず、また台数も２台に限定されない。図７において、図１と同一要素には同一符号を付し重複する説明は繰返えさない。
【００６８】
また、図７の計算機システム１Ａは、ＬＡＮ−Ａ１０１にルータＡ１１１が接続されて、ＬＡＮ−Ｂ１０２にルータＢ１２２が接続される。計算装置１００Ａは、実施の形態１の計算装置Ａとは異なり、前述した仮想計算機Ａ２００および仮想計算機Ｂ３００に追加して、仮想計算機Ｃ６００および仮想計算機Ｄ７００を備える。また、仮想ＳＷ−Ａ２０３および仮想ＳＷ−Ｂ３０３に代替して仮想ＳＷ−Ａ２０３１および仮想ＳＷ−Ｂ３０３１をそれぞれ備える。さらに、仮想ＮＩＣ制御部−Ａ８００および仮想ＮＩＣ制御部−Ｂ９００を備える。仮想ＮＩＣ制御部−Ａ８００および仮想ＮＩＣ制御部−Ｂ９００は、後述するように、疎通確認要求をＬＡＮを介してルータＡ１１１，Ｂ１２２宛に送信する要求送信部８００ａおよび９００ａをそれぞれ備える。
【００６９】
仮想ＮＩＣ制御部−Ａ８００および仮想ＮＩＣ制御部−Ｂ９００は、計算装置１００Ａの通信を制御する通信制御装置に相当する。
【００７０】
仮想計算機Ｃ６００は、ＣＵ（Control Unit）−Ｃ６１０、仮想ＮＩＣ−Ａ６０１、仮想ＮＩＣ−Ｂ６０２、および故障部位判定部６０３を備える。仮想計算機Ｄ７００は、ＣＵ（Control Unit）−Ｃ７１０、仮想ＮＩＣ−Ａ７０１、仮想ＮＩＣ−Ｂ７０２、および故障部位判定部７０３を備える。仮想計算機Ｃ６００および仮想計算機Ｄ７００の各部は、仮想計算機Ａ２００または仮想計算機Ｂ３００の対応する部分と同様の機能を有し、ここでは説明を繰返さない。
【００７１】
図７では、計算装置１００Ａは、仮想計算機Ａ２００、Ｂ３００、Ｃ６００およびＤ７００の間を通信可能に接続するとともに、これら仮想計算機と通信インターフェイス（物理ＮＩＣ−Ａ１０３および物理ＮＩＣ−Ｂ１０４）とを通信可能に接続する通信部（仮想ＳＷ−Ａ２０３１および仮想ＳＷ−２０３２、ならびに仮想ＮＩＣ−Ａ２０１、仮想ＮＩＣ−Ｂ２０２、仮想ＮＩＣ−Ａ３０１、仮想ＮＩＣ−Ｂ３０２、仮想ＮＩＣ−Ａ６０１、仮想ＮＩＣ−Ｂ６０２、仮想ＮＩＣ−Ａ７０１および仮想ＮＩＣ−Ｂ７０２）を備える。通信部は、ソフトウェアに相当する。
【００７２】
各仮想計算機がＬＡＮ−Ａ１０１を介して通信する場合、各仮想計算機からのデータは、自己の仮想ＮＩＣ−Ａ（または仮想ＮＩＣ−Ｂ）→仮想ＳＷ−Ａ２０３１→物理ＮＩＣ−Ａ１０３の経路を経てＬＡＮ−Ａ１０１に送信される。ＬＡＮ−Ａ１０１からのデータは、この経路を逆に流れて各仮想計算機に送信される。同様に、ＬＡＮ−Ｂ１０２を介して通信する場合、各仮想計算機からのデータは、自己の仮想ＮＩＣ−Ａ（仮想ＮＩＣ−Ｂ）→仮想ＳＷ−Ｂ３０３１→物理ＮＩＣ−Ｂ１０４の経路を経てＬＡＮ−Ｂ１０２に送信される。ＬＡＮ−Ｂ１０２からのデータは、この経路を逆に流れて各仮想計算機に送信される。
【００７３】
本実施の形態の計算装置１００Ａは、図２と同様のハードウェア資源を有する。図７の仮想計算機Ａ２００、Ｂ３００、Ｃ６００およびＤ７００、ならびに上述の通信部のプログラムは、計算装置１００Ａのハードウェア資源を共用しながら実行される。なお、計算装置１００Ａは、実現する各仮想計算機について個別にハードウェア資源を備えてもよい。
【００７４】
このように、計算装置１００ＡのＣＰＵ９０、ハードディスク２５およびメモリ３０等（図２参照）のハードウェア資源は、仮想計算機Ａ２００、Ｂ３００、Ｃ６００およびＤ７００、ならびに各仮想計算機の間を通信可能に接続する上述した通信部を実現するための手段に相当する。
【００７５】
仮想ＮＩＣ制御部−Ａ８００は、物理ＮＩＣ−Ａ１０３と通信することにより物理ＮＩＣ−Ａ１０３の動作を監視するとともに、各仮想計算機の仮想ＮＩＣ−Ａ２０１、３０１、６０１および７０１を制御（すなわち、プログラム実行を制御）する。一方、仮想ＮＩＣ制御部−Ｂ９００は、物理ＮＩＣ−Ｂ１０４と通信することにより物理ＮＩＣ−Ｂ１０４の動作を監視するとともに、各仮想計算機の仮想ＮＩＣ−Ｂ２０２、３０２、６０２および７０２を制御（すなわち、プログラム実行を制御）する。
【００７６】
次に、図８のフローチャートに従い、図９の模式図を参照して動作について説明する。このフローチャートに従うプログラムは、予め計算装置１００Ａの記憶領域に格納されている。まず、計算装置１００Ａが起動すると、仮想ＮＩＣ制御部−Ａ８００および仮想ＮＩＣ制御部−Ｂ９００が起動して図８のプログラムを実行開始する。
【００７７】
まず、仮想ＮＩＣ制御部−Ａ８００および仮想ＮＩＣ制御部−Ｂ９００は、物理ＮＩＣ―Ａ１０３および物理ＮＩＣ−Ｂ１０４をそれぞれ監視対象として状態監視を開始する。監視では、仮想ＮＩＣ制御部Ａ８００および仮想ＮＩＣ制御部Ｂ９００の要求送信部８００ａおよび９００ａそれぞれは、疎通確認要求であるｐｉｎｇリクエストを生成する。そして、要求送信部８００ａおよび９００ａは、この疎通確認要求をＬＡＮ−Ａ１０１およびＬＡＮ−Ｂ１０２に接続されたルータＡ１１１とルータＢ１２２宛に、物理ＮＩＣ−Ａ１０３および物理ＮＩＣ−Ｂ１０４それぞれを介して送信する（ステップＳ５１）。その後、仮想ＮＩＣ制御部Ａ８００およびＢ９００は、ｐｉｎｇリクエスト応答を監視する。ｐｉｎｇリクエストは、通信回線の疎通を確認するための要求パケットに相当し、図５のパケットと同様の構成を有する。なお、ｐｉｎｇリクエストのあて先情報および送信元情報となるルータＡ１１１とルータＢ１２２のアドレス、および計算装置１００Ａのアドレスは、予め計算装置１００Ａの記憶領域に格納されている。
【００７８】
仮想ＮＩＣ制御部Ａ８００およびＢ９００は、物理ＮＩＣ−Ａ１０３および物理ＮＩＣ−Ｂ１０４をそれぞれ監視することにより、物理ＮＩＣ−Ａ１０３または物理ＮＩＣ−Ｂ１０４が、ｐｉｎｇリクエストを送信されてから予め定められた時間内にｐｉｎｇリクエスト応答を受信する否かを判定する（ステップＳ５２）。すなわち、仮想ＮＩＣ制御部Ａ８００は、物理ＮＩＣ−Ａ１０３が、ルータＡ１１１のアドレスを示す送信元情報を有したパケットを受信するか否かを判定する。また、仮想ＮＩＣ制御部Ｂ９００は、物理ＮＩＣ−Ｂ１０４が、ルータＢ１１２のアドレスを示す送信元情報を有したパケットを受信するか否かを判定する。
【００７９】
ここで、物理ＮＩＣ−Ａ１０３が故障した場合（図９の“故障”を参照）は、仮想ＮＩＣ制御部Ａ８００は、ＬＡＮ−Ａ１０１に接続されたルータＡ１１１からのｐｉｎｇリクエスト応答を受信しないと判定する（ステップＳ５２でＮＯ）。この時、計算装置１００Ａ内の仮想計算機同士は、物理ＮＩＣ−Ａ１０３が故障したとしても、仮想ＳＷ−Ａ２０３１および仮想ＳＷ−Ｂ３０３１を含む通信部を介して相互に通信をすることが可能である。
【００８０】
そこで、仮想ＮＩＣ制御部Ａ８００は監視対象の物理ＮＩＣ−Ａ１０３の故障を検出した場合（すなわち、ステップＳ５２でＮＯ）は、各仮想計算機の仮想ＮＩＣ−Ａ２０１、３０１、６０１および７０１をシステムコールによりダウン（動作状態→非動作状態に切替える）させて（図９の“連動させる”を参照）、これにより、物理ＮＩＣと仮想ＮＩＣの状態を連動させる。そして、故障およびダウン状態に関する情報が表示部６０に表示される（ステップＳ５３）。表示情報としては、例えば“ＬＡＮ−Ａ１０１の通信インターフェイスは故障し、関連する仮想ＮＩＣ−Ａを停止した”とのメッセージを含む。ここでは、動作状態とは、仮想ＮＩＣ−Ａ２０１、３０１、６０１および７０１を含む通信部のプログラムが実行状態または実行可能状態であることを示す。非動作状態とは、当該プログラムが、実行停止状態にあることを示す。
【００８１】
なお、その後も、図８の処理が実行されて、要求送信部８００ａはｐｉｎｇリクエストを送信する。仮想ＮＩＣ制御部Ａ８００は、ＬＡＮ−Ａ１０１に接続されたルータＡ１１１からのｐｉｎｇリクエスト応答が、物理ＮＩＣ−Ａ１０３によって受信されるか否かを判定する。受信したと判定されたときに（ステップＳ５２でＹＥＳ）、上述の非動作状態に設定されている場合には、システムコールにより、非動作状態の仮想ＮＩＣ−Ａ２０１、３０１、６０１および７０１を元の動作状態に切替え（復帰させ）て、物理ＮＩＣと仮想ＮＩＣの動作を連動させる（ステップＳ５４）。
【００８２】
上述は、仮想ＮＩＣ制御部Ａ８００が物理ＮＩＣ−Ａ１０３の故障を検出した場合の物理ＮＩＣと仮想ＮＩＣの連動処理である。この図８の処理は、仮想ＮＩＣ制御部Ｂ９００が物理ＮＩＣ−Ｂ１０４の故障を検出した場合に、物理ＮＩＣ−Ｂ１０４と仮想ＮＩＣ−Ｂ２０２、３０２、６０２および７０２を連動させる場合も、同様に実施することができる。
【００８３】
実施の形態２によれば、計算装置１００Ａにおいて、物理ＮＩＣを介してＬＡＮとの通信が不可能な場合には、仮想ＮＩＣ制御部Ａ８００，Ｂ９００は、仮想計算機間の通信も不可能となるように、仮想ＮＩＣをダウンさせる。このとき、各仮想計算機の故障部位判定部は仮想ＮＩＣのダウンによって計算装置１００Ａ内の仮想計算機間との通信異常（通信不可）を判定し、この判定の結果に基づき、自端故障を判定することができる。
【００８４】
（変形例）
上述の各実施の形態では、計算装置に備えられる計算機として、ソフトウェアにより実現される複数の仮想計算機を示したが、これに代替して、ハードウェアによる複数のプロセッサ（マルチコア（Multiple Core））を実装するとしてもよい。このようなマルチコア構成であっても、実施の形態１と２で説明したネットワーク障害検知および判定の方法を適用することができる。
【００８５】
また、多重化された計算機の１つを待機系とし、他の１つを運用系として、運用系の計算機において自端故障が検出されたときは、待機系を運用系として起動させる。このように運用系に切替えられた計算機によって電力系統の監視を継続させることができる。
【００８６】
上述の実施の形態では、ＣＰＵ９０を備える情報処理装置である図２のコンピュータに、各実施の形態のフローチャートを用いて説明したネットワーク障害検知および判定のための処理方法をプロセッサに、実行させるためのプログラムが示される。
【００８７】
具体的には、情報処理装置は、通信回線に接続される通信インターフェイスと、当該情報処理装置により実現される複数の仮想計算機と、複数の仮想計算機の間を通信可能に接続する通信部とを備える。上述の処理方法は、通信回線を介して、他の装置との通信を制御するステップを備える。通信を制御するステップは、通信インターフェイスおよび通信部を介して、疎通確認要求をブロードキャスト送信するステップと、通信インターフェイスまたは通信部を介して受信される、疎通確認要求に対する応答の内容に基づいて、通信インターフェイスの異常の有無を判定するステップとを含む。
【００８８】
判定するステップでは、受信された応答の送信元の識別情報に、複数の仮想計算機の各々の識別情報とは異なる識別情報が全て含まれるか否かに基づき、通信インターフェイスの異常の有無が判定される。
【００８９】
また、本実施の形態では、このプログラムは非一時的に記録した機械読取可能な記録媒体に格納したプログラム製品として提供される。記録媒体としては、記録媒体８１のＣＤ−ＲＯＭ、メモリカードなどのコンピュータ読取り可能な記録媒体を含む。プログラムは、図３のハードディスク２５等に記録させて提供することもできる。また、ＬＡＮ等のネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００９０】
提供されるプログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【００９１】
[実施の形態の効果]
実施の形態の効果を、計算装置のみが配置されて且つ２重化されたＬＡＮを備えた図１０の計算機システムを用いて、図１１の通信シーケンス図を参照して説明する。
【００９２】
図１０の計算機システム２Ａは、計算装置Ａ１０００、計算装置Ｂ１１００、および計算装置Ｃ１２００を、２重化されたＬＡＮ（ＬＡＮ−Ａ１０１０およびＬＡＮ−Ｂ１０２０）を介して接続する。計算装置Ａ１０００は、ＣＵ（Control Unit）−Ａ４１００、故障状態検出部４０００、故障部位判定部４０１０、ＬＡＮ−Ａ１０１０に接続された物理ＮＩＣ−Ａ１０３０、およびＬＡＮ−Ｂ１０２０に接続された物理ＮＩＣ−Ｂ１０４０を備える。同様に、計算装置Ｂ１１００は、ＣＵ（Control Unit）−Ｂ４３００、故障状態検出部４０２０、故障部位判定部４０３０、ＬＡＮ−Ａ１０１０に接続された物理ＮＩＣ−Ａ１０５０、およびＬＡＮ−Ｂ１０２０に接続された物理ＮＩＣ−Ｂ１０６０を備える。同様に、計算装置Ｃ１２００は、ＣＵ（Control Unit）−Ｃ４２００、故障状態検出部４０４０、故障部位判定部４０５０、ＬＡＮ−Ａ１０１０に接続された物理ＮＩＣ−Ａ１０７０、およびＬＡＮ−Ｂ１０２０に接続された物理ＮＩＣ−Ｂ１０８０を備える。
【００９３】
図１０では、ネットワークの健全性（各部が正常に動作していること）を確認するための信号であるハートビートを用いる。具体的には、故障状態検出部４０００、４０２０および４０４０からｔ１秒周期で全計算装置に対して、送信元に自己のアドレスを有したハートビートをブロードキャスト送信する（図１１のステップＳ７１参照）。また、計算装置Ａ１０００、計算装置Ｂ１１００、および計算装置Ｃ１２００は、他計算装置からのハートビートを受信した際に、最後にハートビートを受信した時点から、ｔ２秒間ハートビートを受信しなかった場合は、当該通信ルート（ＬＡＮまたは物理ＮＩＣ）を異常と判定する（図１１のステップＳ７２）。
【００９４】
各計算装置がハートビートの受信タイムアウトによってＬＡＮまたは物理ＮＩＣの異常を検出すると、故障部位判定部４０１０、４０３０および４０５０は自端故障であるか、他端故障であるかを判定する。判定処理としては他計算装置からのハートビートを全く受信していない場合は自端故障と判定する。また他計算装置からのハートビートを１つでも受信している場合は他端故障と判定する。
【００９５】
各計算装置は非同期にハートビートを送信するため、多重化されたＬＡＮ１０１０，１０２０を介してハートビートが受信タイムアウトとなった時点では、他計算装置との通信がタイムアウトとなるか（自端故障か）否かは判断することができない。この点を図１２の通信シーケンスを参照して説明する。
【００９６】
図１２を参照して、計算装置Ａ１０００、計算装置Ｂ１１００、および計算装置Ｃ１２００の３台のうち、計算装置Ａ１０００の自端故障（ステップＳ８１）が発生したとする。この場合に、計算装置Ａ１０００と計算装置Ｂ１１００との通信において受信タイムアウトが検出（ステップＳ８２）されたときには、故障部位が誤って判定されてしまう。つまり、計算装置Ｃ１２００が受信タイムアウト前なので、計算装置Ｂ１１００の他端故障と誤判定されてしまう（ステップＳ８３）。
【００９７】
したがって、計算装置Ａ１０００の自端故障（ステップＳ８４）が発生した場合に誤判定を回避するには、つまり、ある計算装置との通信において受信タイムアウトが判定されてから、他の計算装置との通信においてタイムアウトが生じるか否かを判定するには受信タイムアウト時間（ｔ２）＋ハートビート送信周期１回分の時間（ｔ１）が必要となる（ステップＳ８５）。
【００９８】
図９〜図１２の障害検知・判定方法を、仮想計算機を備える環境（図１のように仮想計算機Ａおよび仮想計算機Ｂと計算装置Ｂが存在）に適用した場合を、図１３の計算機システム３Ａを参照して説明する。計算機システム３Ａは、図１の計算装置Ａ１００に代替して計算装置Ａ３１００を備える点で、図１の計算機システム１とは相違する。他の構成は、図１と同様である。
【００９９】
計算装置Ａ３１００は、図１の仮想計算機Ａ２００と仮想計算機Ｂ３００に代替して、仮想計算機Ａ３２００と仮想計算機Ｂ３３００を含むが、他の構成は計算装置Ａ１００と同様である。仮想計算機Ａ３２００は、図１の仮想計算機Ａ２００の故障状態検出部４００および故障部位判定部４０１に代替して、ハートビートを用いた故障状態検出部２４００および故障部位判定部２４０１を含むが、他の構成は図１と同様である。また、仮想計算機Ｂ３３００は、図１の仮想計算機Ｂ３００の故障状態検出部４０２および故障部位判定部４０３に代替して、ハートビートを用いた故障状態検出部３４０２および故障部位判定部３４０３を含むが、他の構成は図１と同様である。図１３では、図１と同様の部分は説明を繰返さない。
【０１００】
図１３を参照して、計算装置Ａ３１００の自端故障(物理ＮＩＣ−Ａ１０３の故障)が発生したとする。この時、仮想計算機Ａ３２００と計算装置Ｂ３３００の間では物理ＮＩＣ−Ａ１０３が故障している為、ハートビートのやり取りができなくなる（ステップＳ９１）。ここで、物理ＮＩＣ−Ａ１０３が故障していても、仮想計算機Ａ３２００と仮想計算機Ｂ３３００との間は、仮想ＳＷ−Ａ２０３を介して通信が可能な状態である（ステップＳ９２）。したがって、仮想計算機Ａ３２００は故障状態検出部２４００から送出したハートビートに対して、仮想計算機Ｂ３３００からの応答を、仮想ＳＷ−Ａ２０３を経由して受信することができる。このように、計算装置Ａ３１００は自端故障（物理ＮＩＣ−Ａ１０３が故障）が発生しているにもかかわらず、他計算装置からのハートビートを受信している状態となる。そのため、図９〜図１２で説明した判定基準では、故障部位判定部２４０１は、他端故障と誤判定してしまう問題がある。
【０１０１】
これに対して、上述の実施の形態１では、複数台の計算装置および仮想計算機が混在して配置されたシステムにおいて、システムの構成に合わせて計算機判定定義５００，５０１，５０３が生成される。そして、エコー要求の要求パケットＰ１０を送信した場合に受信するエコー応答の応答パケットＰ２０と、計算機判定定義５００，５０１，５０３の情報とを用いた図６の処理により、ＬＡＮに異常が発生したことを検出し、部位（自端故障または他端故障）を判定することができる。したがって、図９〜図１２に示すような、受信タイムアウト時間またはハートビート周期等とは独立して（依存せずに）故障部位を判定することができる。
【０１０２】
また、故障判定する際には、受信応答パケットＰ２０のうちから、同一の計算装置に備えられた仮想計算機からの応答パケットＰ２０が、計算機判定定義を用いて除外される。その結果、残った応答パケットＰ２０の内容から、どの部位に問題が発生しているか（自端故障か他端故障）を判定することができる。
【０１０３】
実施の形態２の計算機システム１Ａでは、ＬＡＮに異常が発生した場合および異常から復帰した場合に、当該ＬＡＮに接続された物理ＮＩＣと、当該物理ＮＩＣに関連付けられた仮想ＮＩＣは、連動してダウン（動作状態→非動作状態に切替え）およびアップ（非動作状態→動作状態（復帰））させられる。これにより、計算装置は、ダウンさせられた仮想ＮＩＣの情報から、どの部位（ＬＡＮ−Ａ１０１またはＬＡＮーＢ１０２のいずれ側）の故障かを判定することが可能となる。
【０１０４】
このように本発明の実施の形態によれば、仮想計算機を実現する計算装置（例えば、計算装置Ａ１００）と仮想計算機を実現しない計算装置（例えば、計算装置Ｂ１１０）とを備えるシステム、または、計算装置として仮想計算機を実現する複数の計算装置のみを備えるシステム（すなわち、仮想計算機を実現しない計算装置を備えないシステム）のいずれであっても、故障箇所を誤判定することなく特定することができる。
【０１０５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０６】
１，１Ａ，２Ａ，３Ａ  計算機システム、６０  表示部、１００  計算装置Ａ、１１０  計算装置Ｂ、１１１  ルータＡ、１１２  ルータＢ、４００，４０２  故障状態検出部、４０１，４０３  故障部位判定部、５００，５０１，５０３  計算機判定定義、５０２，５０４  計算機判定定義取得部、６０４，６０５，６０６  応答部、２００  仮想計算機Ａ、３００  仮想計算機Ｂ、Ｐ１０  エコー要求パケット、Ｐ２０  エコー応答パケット。
【図１】
0006278868.tif 000002
【図２】
0006278868.tif 000003
【図３】
0006278868.tif 000004
【図４】
0006278868.tif 000005
【図５】
0006278868.tif 000006
【図６】
0006278868.tif 000007
【図７】
0006278868.tif 000008
【図８】
0006278868.tif 000009
【図９】
0006278868.tif 000010
【図１０】
0006278868.tif 000011
【図１１】
0006278868.tif 000012
【図１２】
0006278868.tif 000013
【図１３】
0006278868.tif 000014