(57)【特許請求の範囲】
【請求項１】
ハードウェア及びソフトウェアを含む機能要素から構成されるコンピュータシステムの障害解析装置であって、
前記機能要素に関する情報と、前記機能要素間のリンクであって、障害時における前記機能要素間の異常動作の伝播方向を示す情報とを含むシステムトポロジ情報を記憶するシステムトポロジ情報記憶部と、
異常動作を発現した前記機能要素である異常機能要素に係る異常検知情報を取得する異常検知情報取得部と、
前記異常検知情報が示す異常機能要素および前記システムトポロジ情報が示す機能要素間の異常動作の伝播方向に対する整合性に基づいて、障害の原因と予想される前記機能要素である障害原因機能要素を特定する障害原因特定部と、
を具備する障害解析装置。
【請求項２】
前記障害原因特定部は、
前記異常機能要素が複数である場合、前記複数の異常機能要素のなかから一の異常機能要素を順次選択し、前記選択した異常機能要素から他の異常機能要素への異常動作の伝播方向が前記システムトポロジ情報内の前記伝播方向と整合するとき、前記選択した異常機能要素を前記障害原因機能要素として特定する請求項１に記載の障害解析装置。
【請求項３】
前記障害解析装置は、前記システムトポロジ情報を参照し、前記複数の異常機能要素と、前記各異常機能要素間のリンクとからなる障害トポロジ情報を生成する障害トポロジ情報生成部を更に備え、
前記障害原因特定部は、
前記選択した異常機能要素から他の異常機能要素への異常動作の伝播方向が前記障害トポロジ情報内の前記伝播方向と整合するときは、前記選択した異常機能要素を前記障害原因機能要素として特定する請求項２に記載の障害解析装置。
【請求項４】
前記障害解析装置は、
前記コンピュータシステムを構成する各装置に含まれるレイヤ毎に、前記レイヤに属する前記機能要素と、当該レイヤ内における前記各機能要素間のリンクとからなる基本トポロジ情報を記憶する基本トポロジ情報記憶部と、
前記コンピュータシステムの構成を示す情報と、前記基本トポロジ情報とを参照し、前記システムトポロジ情報を生成するシステムトポロジ情報生成部と
を更に備える請求項１から３のいずれか一項に記載の障害解析装置。
【請求項５】
前記システムトポロジ情報生成部は、
複数の異常機能要素を参照し、前記システムトポロジ情報のリンクの一部を一旦封鎖して木構造になるように更新する請求項４に記載の障害解析装置。
【請求項６】
コンピュータ読み出し可能な記録媒体に格納され、ハードウェア及びソフトウェアを含む機能要素から構成されるコンピュータシステムにおいて障害解析を行うコンピュータプログラムであって、
前記機能要素に関する情報と、前記機能要素間のリンクであって、障害時における前記機能要素間の異常動作の伝播方向を示す情報とを含むシステムトポロジ情報を生成し、
異常動作を発現した前記機能要素である異常機能要素に係る異常検知情報を取得し、
前記異常検知情報が示す異常機能要素および前記システムトポロジ情報が示す機能要素間の異常動作の伝播方向に対する整合性に基づいて、障害の原因と予想される前記機能要素である障害原因機能要素を特定する、
を実行する命令語を具備するコンピュータプログラム。
【請求項７】
ハードウェア及びソフトウェアを含む機能要素から構成されるコンピュータシステムにおける障害解析方法であって、
前記機能要素に関する情報と、前記機能要素間のリンクであって、障害時における前記機能要素間の異常動作の伝播方向を示す情報とを含むシステムトポロジ情報を生成するステップと、
異常動作を発現した前記機能要素である異常機能要素に係る異常検知情報を取得するステップと、
前記異常検知情報が示す異常機能要素および前記システムトポロジ情報が示す機能要素間の異常動作の伝播方向に対する整合性に基づいて、障害の原因と予想される前記機能要素である障害原因機能要素を特定するステップと、
を具備する障害解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおける障害解析装置に関する。特に、コンピュータシステムの障害時の障害原因を特定する障害解析装置に関する。
本願は、２００８年８月４日に、日本に出願された特願２００８−２０１２７２号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
現在、コンピュータシステムの多くは、ハードウェアおよびソフトウェアから構成されている。また、ハードウェアおよびソフトウェアのそれぞれも、個々の機能を実現する要素（以下、「機能要素」という）から構成されている。つまり、ソフトウェアを含む各装置は、ハードウェアからソフトウェアに至るマルチレイヤを成す。各レイヤに属する機能要素が互いに連携しあい、一装置としての機能を実現している（マルチレイヤである装置をソフトウェアも含めて「マルチレイヤ装置」という）。また、複数のマルチレイヤ装置から構成されたシステム（以下、「マルチレイヤシステム」という）も普及している。【０００３】
図１０は、マルチレイヤシステムの一例であるクライアントサーバシステム型のマルチレイヤシステム１を説明するための図である。マルチレイヤシステム１は、図１０に示すように、サーバ１０、クライアント２０、スイッチ３０から構成されている。サーバ１０、クライアント２０およびスイッチ３０は、何れもマルチレイヤ装置の一例である。【０００４】
サーバ１０は、コンピュータハードウェア１００、オペレーティングシステム１１０、サーバアプリケーション１２０から構成される。つまり、サーバ１０は、コンピュータハードウェア１００によって実現されるハードウェアレイヤ、オペレーティングシステム１１０によって実現されるオペレーションレイヤ、および、サーバアプリケーション１２０によって実現されるアプリケーションレイヤの３つのレイヤから成る。【０００５】
クライアント２０は、コンピュータハードウェア２００、オペレーティングシステム２１０、クライアントアプリケーション２２０から構成される。つまり、クライアント２０は、コンピュータハードウェア２００によって実現されるハードウェアレイヤ、オペレーティングシステム２１０によって実現されるオペレーションレイヤ、および、クライアントアプリケーション２２０によって実現されるアプリケーションレイヤの３つのレイヤから成る。【０００６】
スイッチ３０は、スイッチハードウェア３００、オペレーティングシステム３１０、スイッチアプリケーション３２０から構成される。つまり、スイッチ３０は、スイッチハードウェア３００によって実現されるハードウェアレイヤ、オペレーティングシステム３１０によって実現されるオペレーションレイヤ、および、スイッチアプリケーション３２０によって実現されるアプリケーションレイヤの３つのレイヤから成る。【０００７】
サーバ１０のコンピュータハードウェア１００は、ネットワークカード１０１、ＨＤＤ１０２、ＣＰＵ１０３、メインメモリ１０４および障害監視部１０９から構成される。ネットワークカード１０１、ＨＤＤ１０２、ＣＰＵ１０３およびメインメモリ１０４は、サーバ１０のコンピュータハードウェア１００に属する機能要素である。なお、障害監視部１０９は、ネットワークカード１０１、ＨＤＤ１０２、ＣＰＵ１０３、メインメモリ１０４を監視し、これらの機能要素の障害を検知すると、障害通知（異常検知情報）を障害解析装置４０（図１１、詳細後述）に送信する。【０００８】
サーバ１０のオペレーティングシステム１１０は、ネットワークドライバ１１１、ＨＤＤドライバ１１２、ネットワークプロトコル１１３、メモリ管理部１１４および障害監視部１１９から構成される。ネットワークドライバ１１１、ＨＤＤドライバ１１２、ネットワークプロトコル１１３およびメモリ管理部１１４は、サーバ１０のオペレーティングシステム１１０に属する機能要素である。なお、障害監視部１１９は、ネットワークドライバ１１１、ＨＤＤドライバ１１２、ネットワークプロトコル１１３、メモリ管理部１１４を監視し、これらの機能要素の障害を検知すると、障害通知を障害解析装置４０に送信する。また、ネットワークプロトコル１１３は、ＴＣＰ／ＩＰなどを実行する実行部（ＴＣＰ／ＩＰを実装したプログラム）またはその制御部（制御プログラム）である。ネットワークプロトコル２１３（後述）も同様である。【０００９】
サーバ１０のサーバアプリケーション１２０は、アプリケーション実行部１２１および障害監視部１２９から構成される。アプリケーション実行部１２１は、サーバ１０のサーバアプリケーション１２０に属する機能要素である。なお、障害監視部１２９は、アプリケーション実行部１２１を監視し、障害を検知すると、障害通知を障害解析装置４０に送信する。【００１０】
クライアント２０のコンピュータハードウェア２００は、ネットワークカード２０１、ＨＤＤ２０２、ＣＰＵ２０３、メインメモリ２０４および障害監視部２０９から構成される。ネットワークカード２０１、ＨＤＤ２０２、ＣＰＵ２０３およびメインメモリ２０４は、クライアント２０のコンピュータハードウェア２００に属する機能要素である。なお、障害監視部２０９は、ネットワークカード２０１、ＨＤＤ２０２、ＣＰＵ２０３、メインメモリ２０４を監視し、これらの機能要素の障害を検知すると、障害通知を障害解析装置４０に送信する。【００１１】
クライアント２０のオペレーティングシステム２１０は、ネットワークドライバ２１１、ＨＤＤドライバ２１２、ネットワークプロトコル２１３、メモリ管理部２１４および障害監視部２１９から構成される。ネットワークドライバ２１１、ＨＤＤドライバ２１２、ネットワークプロトコル２１３およびメモリ管理部２１４は、クライアント２０のオペレーティングシステム２１０に属する機能要素である。なお、障害監視部２１９は、ネットワークドライバ２１１、ＨＤＤドライバ２１２、ネットワークプロトコル２１３、メモリ管理部２１４を監視し、これらの機能要素の障害を検知すると、障害通知を障害解析装置４０に送信する。【００１２】
クライアント２０のクライアントアプリケーション２２０は、アプリケーション実行部２２１および障害監視部２２９から構成される。アプリケーション実行部２２１は、クライアント２０のサーバアプリケーション２２０に属する機能要素である。なお、障害監視部２２９は、アプリケーション実行部２２１を監視し、障害を検知すると、障害通知を障害解析装置４０に送信する。【００１３】
スイッチ３０のスイッチハードウェア３００は、ネットワークインターフェイス（ＮＷＩ／Ｆ）３０１〜３０３、スイッチファブリック３０４、ＣＰＵ３０５、メモリ３０６および障害監視部３０９から構成される。ネットワークインターフェイス３０１〜３０３、スイッチファブリック３０４、ＣＰＵ３０５およびメモリ３０６は、スイッチ３０のスイッチハードウェア３００に属する機能要素である。なお、障害監視部３０９は、ネットワークインターフェイス３０１〜３０３、スイッチファブリック３０４、ＣＰＵ３０５、メモリ３０６を監視し、これらの機能要素の障害を検知すると、障害通知を障害解析装置４０に送信する。【００１４】
スイッチ３０のスイッチ３０のオペレーティングシステム３１０は、スイッチドライバ３１１、メモリ管理部３１２および障害監視部３１９から構成される。スイッチドライバ３１１およびメモリ管理部３１２は、スイッチ３０のスイッチ３０のオペレーティングシステム３１０に属する機能要素である。なお、障害監視部３１９は、スイッチドライバ３１１、メモリ管理部３１２を監視し、これらの機能要素の障害を検知すると、障害通知を障害解析装置４０に送信する。【００１５】
スイッチ３０のスイッチアプリケーション３２０は、ルーティングプロトコル３２１および障害監視部３２９から構成される。ルーティングプロトコル３２１は、スイッチ３０のスイッチアプリケーション３２０に属する機能要素である。なお、障害監視部３２９は、ルーティングプロトコル３２１を監視し、障害を検知すると、障害通知を障害解析装置４０に送信する。また、ルーティングプロトコル３２１は、ＲＩＰ２などを実行する実行部（ＲＩＰ２を実装したプログラム）またはその制御部（制御プログラム）である。【００１６】
ケーブル２は、サーバ１０のネットワークカード１０１とスイッチ３０のネットワークインターフェイス３０１とを接続する。ケーブル３は、クライアント２０のネットワークカード２０１とスイッチ３０のネットワークインターフェイス３０３とを接続する。また、スイッチ３０のネットワークインターフェイス３０２に接続されたケーブル４の先には、システム構成管理装置６０が接続されている。なお、システム構成管理装置６０は、マルチレイヤシステム１のシステム構成変更管理を行う。従って、例えば、ケーブル４は、システム構成管理装置６０からのシステム設定情報などの情報の送受信に使用される。【００１７】
以上のように、マルチレイヤシステム１では、サーバ１０、クライアント２０、スイッチ３０内の各々レイヤに属する各機能要素が連携して動作している。また、マルチレイヤシステム１のある機能要素で障害が発生した際、障害は関連している機能要素に波及し、各障害監視部から各障害通知が障害解析装置４０に送信される。【００１８】
図１１は、従来の解析装置の一例である障害解析装置４０を説明するための図である。図１２は、障害解析装置４０内の障害解析テーブル４０３に記憶された情報の一例を示す図である。障害解析装置４０は、障害収集部４０１、検索部４０２、障害解析テーブル４０３、および、障害通知部４０４を備える。障害収集部４０１は、マルチレイヤシステム１から障害通知を収集する。障害解析テーブル４０３は、図１２に示すように、複数の障害通知元1、２、３・・・、Ｎと、その複数の障害通知元に対応する想定される障害特定箇所１、障害特定箇所２のエントリで構成される。例えば、テーブルＮｏ．１は、ネットワークインターフェイス３０１とネットワークカード１０１から障害通知を受信した場合、想定される障害箇所はケーブル２かスイッチハードウェア３００である旨を示している。検索部４０２は、収集した障害通知から障害解析テーブル４０３を参照して、障害箇所予測検索を行う。障害通知部４０４は、障害通知、および、検索部４０２によって検索された障害原因機能要素（障害の発生元である機能要素）を示す障害箇所予測特定情報を運用者に通知する。つまり、障害解析装置４０では、運用者が、過去の経験に基づいて障害解析テーブル４０３を予め設定（複数障害の要素に対し障害箇所の予測結果を予め入力）しておくことによって、障害が発生した際、障害解析テーブル４０３の情報を利用して障害箇所を提示している。【００１９】
従来の障害解析の方法は、運用者が障害通知を確認して自身の経験等を元に障害箇所を特定するという方法や、上述の障害解析装置４０のように、障害箇所を特定する作業の効率化を図るために、運用者が複数の障害イベントと対応する障害特定箇所を予め定義しておくという方法である。【００２０】
図１３は、従来の解析装置の一例である障害解析装置４０の動作の一例を示すフローチャートである。図１４は、障害解析装置４０による障害箇所の通知後の運用者による作業を示すフローチャートである。図１３に示すフローチャートは、システム運用段階から障害発生、障害箇所特定に至るまでのフローである。【００２１】
まず、障害解析装置４０を稼動させるために、運用者によるシステムに合わせた障害監視装置４０の障害解析テーブル４０３の設定を行う。つまり、運用者の入力に基づいて障害解析装置４０の障害解析テーブル４０３を生成する（ステップＳ１０１）。これにより、障害解析装置４０は、運用状態に入る。【００２２】
障害解析装置４０の運用状態において、システム構成管理装置６０によってシステム変更が行われた場合には、再度、ステップＳ１０１に戻って障害解析テーブル４０３の設定を行う。【００２３】
障害解析装置４０の運用状態において、マルチレイヤシステム１に障害が発生すると、機能要素間で障害が波及し、マルチレイヤシステム１上の各障害監視にて複数の障害が検出される。これにより、複数の障害通知がスイッチ３０から障害解析装置４０に送信される。つまり、障害収集部４０１は、スイッチ３０から複数の障害通知を収集（受信）する（ステップＳ１０２）。【００２４】
検索部４０２は、障害通知と障害解析テーブル４０３とを参照して障害箇所を特定する（ステップＳ１０４）。障害解析装置の障害通知部４０４は、障害通知および障害箇所予測特定情報を運用者に通知する（ステップＳ１０６）。【００２５】
障害解析装置４０の障害通知部４０４は、障害通知および障害箇所予測特定情報を運用者に提示する。運用者は、図１４に示すように、障害箇所予測特定情報によって通知された障害箇所が真（適切）である場合、当該障害箇所を復旧する（作業１）。しかしながら、障害箇所予測特定情報によって通知された障害箇所が真でない場合、運用者は全ての障害通知に関して障害箇所の確認を行なう（作業２）。運用者は、まず、ハードウェア、ソフトウェア、各レイヤ内での調査（作業３）によって障害特定作業を行う（作業４）。【００２６】
作業４段階で特定した障害箇所が真である場合、運用者は、当該障害箇所を復旧する（作業５）。しかしながら、作業４段階で特定した障害箇所が真でない場合、運用者は、レイヤ間の関係を考慮した調査（作業６）を行い、また、調査レイヤを変更して再度別のレイヤでの調査（作業３）を行う。このように、運用者はレイヤ内の調査、レイヤ間の調査を繰り返ししながら、障害被疑を絞っていき、障害箇所を特定する（作業４）。【００２７】
なお、特許文献１には、複数のマルチレイヤの装置から構成されるシステム上の故障影響範囲を推定する装置が記載されている。また、特許文献２には、システム障害が発生した際に、システム障害の影響範囲を解析する解析技術が記載されている。
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開２０００−０６９００３号公報
【特許文献２】特開２００５−２５８５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２９】
まず、運用者が障害通知を確認して自身の経験等を元に障害箇所を特定するという方法の場合、人間の知識を基礎としているため限界がある。例えば、過去の障害と類似の障害にしか対応できないという問題がある。また、監視対象のマルチレイヤシステムが拡大化、複雑化した場合には、障害箇所の特定は困難になると予想される。【００３０】
また、上述の障害解析装置４０のように、運用者が複数の障害イベントと対応する障害特定箇所を予め定義しておくという方法の場合、運用者は、障害イベントと障害特定箇所との関係を予め洗い出して定義しておく必要がある。しかし、知識上の問題などから、運用者による当該洗い出しには限界がある。従って、結果的に、障害解析装置４０のような従来の障害解析装置は、運用者が想定（定義）した範囲の障害にしか対応できないという問題がある。また、障害イベントと障害特定箇所との関係の洗い出し業務や定義作業（登録作業）も面倒である。システムの構成が変更されたときにも、再度、洗い出し業務や定義作業を要する場合があって面倒である。【００３１】
本発明は、広い範囲内の障害に対応することができる障害解析装置を提供することを目的とする。また、運用者の負担が小さい障害解析装置を提供することを目的とする。
【課題を解決するための手段】
【００３２】
上記問題を解決するために、例えば、以下のような手段が提供される。
第１の手段は障害解析装置であって、システムのトポロジを表す情報であって、システムを構成する各装置に属するハードウェアおよびソフトウェアに関する機能要素と、各機能要素間のリンクとからなるシステムトポロジ情報を記憶するシステムトポロジ情報記憶部と、異常動作を発現した機能要素である異常機能要素に係る異常検知情報を取得する異常検知情報取得部と、異常検知情報取得部によって取得された異常検知情報と、システムトポロジ情報記憶部に記憶されているシステムトポロジ情報とに基づいて、システム障害の原因と予想される機能要素である障害原因機能要素を特定する障害原因特定部とを備え、システムトポロジ情報内のリンクは、障害時における機能要素間の異常動作の伝播方向を示す情報を有し、障害原因特定部は、異常検知情報取得部が複数の異常機能要素に係る異常検知情報を取得した場合に、複数の異常機能要素のなかから一の異常機能要素を順次選択し、選択している一の異常機能要素から選択していない他の異常機能要素への方向がシステムトポロジ情報内の伝播方向と整合するか否かを判断し、整合すると判断したときは、選択している一の異常機能要素を障害原因機能要素として特定する。【００３３】
第２の手段は上記障害解析装置であって、システムトポロジ情報は、機能要素が所属する装置およびレイヤに関する情報を含まない。【００３４】
第３の手段は上記障害解析装置であって、異常検知情報取得部が複数の異常機能要素に係る異常検知情報を取得した場合に、システムトポロジ情報を参照し、システムトポロジ情報の一部分であって、複数の異常機能要素と、各異常機能要素間のリンクとからなる障害トポロジ情報を生成する障害トポロジ情報生成部を更に備え、障害原因特定部は、異常検知情報取得部が複数の異常機能要素に係る異常検知情報を取得した場合に、複数の異常機能要素のなかから一の異常機能要素を順次選択し、選択している一の異常機能要素から選択していない他の異常機能要素への方向が障害トポロジ情報内の伝播方向と整合するか否かを判断し、整合すると判断したときは、選択している一の異常機能要素を障害原因機能要素として特定する。【００３５】
第４の手段は上記障害解析装置であって、システムを構成する各装置に含まれるレイヤ毎に、レイヤに属する機能要素と、当該レイヤ内における各機能要素間のリンクとからなる基本トポロジ情報を記憶する基本トポロジ情報記憶部と、システムの構成を示す情報と、基本トポロジ情報記憶部に記憶されている基本トポロジ情報とを参照し、システムトポロジ情報を生成するシステムトポロジ情報生成部とを更に備える。【００３６】
第５の手段は上記障害解析装置であって、システムトポロジ情報生成部は、複数の異常機能要素を参照してシステムトポロジ情報記憶部に記憶されているシステムトポロジ情報を木構造となるように更新する。
【発明の効果】
【００３７】
上記手段によれば、障害イベントと障害特定箇所との関係の定義に基づいて障害箇所を特定するものではない。上記手段においては、システム全体をサポートしたシステムトポロジ情報（異常動作の伝播方向という概念）に基づいて障害箇所を特定する。このため、非常に広い範囲内の障害に対応することができる。また、障害イベントと障害特定箇所との関係の洗い出し業務や定義作業も不要であるから、運用者の負担も小さい。
【図面の簡単な説明】
【００３８】
【図１】障害解析装置のブロック図である。
【図２】基本トポロジ情報記憶部に記憶される情報の一例を示す図である。
【図３】コンピュータハードウェアの基本トポロジ情報のグラフである。
【図４】スイッチハードウェアの基本トポロジ情報のグラフである。
【図５】システムトポロジ情報の一部のグラフである。
【図６Ａ】障害トポロジ情報の生成過程を説明する図である。
【図６Ｂ】障害トポロジ情報の生成過程を説明する図である。
【図６Ｃ】障害トポロジ情報の生成過程を説明する図である。
【図７Ａ】障害予測アルゴリズム処理部のアルゴリズムを説明する図である。
【図７Ｂ】障害予測アルゴリズム処理部のアルゴリズムを説明する図である。
【図７Ｃ】障害予測アルゴリズム処理部のアルゴリズムを説明する図である。
【図７Ｄ】障害予測アルゴリズム処理部のアルゴリズムを説明する図である。
【図７Ｅ】障害予測アルゴリズム処理部のアルゴリズムを説明する図である。
【図８】障害解析装置の動作の一例を示すフローチャートである。
【図９】障害解析装置のブロック図である。
【図１０】マルチレイヤシステムの一例であるクライアントサーバシステム型のマルチレイヤシステム１を説明するための図である。
【図１１】従来の解析装置の一例である障害解析装置を説明するための図である。
【図１２】従来の解析装置の一例である障害解析装置内の障害解析テーブルに記憶された情報の一例を示す図である。
【図１３】従来の解析装置の一例である障害解析装置の動作の一例を示すフローチャートである。
【図１４】従来の解析装置の一例である障害解析装置を用いた場合の障害箇所の通知後の運用者による作業を示すフローチャートである。
【発明を実施するための形態】
【００３９】
図１は、一実施形態における障害解析装置５０のブロック図である。図２は、基本トポロジ情報記憶部５０５に記憶される情報の一例を示す。障害解析装置５０は、システム全体の情報である、当該システムを構成する各装置に属するハードウェアからソフトウェアに至る全レイヤの機能要素と、各機能要素間のリンクとからなるシステムモデル（システムトポロジ情報）を主に参照して、システム障害の原因と予想される機能要素（障害原因機能要素）を特定する。
【００４０】
具体的には、障害解析装置５０は、図１に示すように、障害収集部５０１（本発明の異常検知情報取得部に相当する）、障害通知部５０４、基本トポロジ情報記憶部５０５、システムトポロジ情報記憶部５０６、障害トポロジ情報記憶部５０７、システムトポロジ管理部５０８、システムトポロジ情報生成部５０９、障害トポロジ情報生成部５１０、および、障害予測アルゴリズム処理部５１１（本発明の障害原因特定部に相当する）を備える。なお、以下の説明において、障害解析装置５０は、図１０に示すマルチレイヤシステム１の障害を解析するものとする。
【００４１】
障害収集部５０１は、従来の障害解析装置４０の障害収集部４０１に相当する。つまり、障害収集部５０１は、マルチレイヤシステム１から障害通知を収集する。
【００４２】
基本トポロジ情報記憶部５０５は、マルチレイヤシステム１を構成する各装置（サーバ１０、クライアント２０、スイッチ３０）に属する各レイヤの機能要素と、各レイヤの各機能要素間のリンクとからなる基本トポロジ情報を記憶する。具体的には、基本トポロジ情報記憶部５０５は、例えば、図２に示す基本トポロジ情報を記憶する。テーブルで表される基本トポロジ情報は、各装置の各レイヤとトポロジ情報を１対１に対応付けて管理する。例えば、テーブルＮＯ．１は、コンピュータハードウェア１００に対応付けたトポロジ情報がエントリされている。また、テーブルＮＯ．２は、スイッチハードウェア３００に対応付けたトポロジ情報がエントリされている。図２に示すトポロジ情報内の「＜＞」は、リンクを示す。例えば、テーブルＮＯ．１のトポロジ情報（コンピュータハードウェア１００に対応するトポロジ情報）においては、例えば、メインメモリ１０４が、ＣＰＵ１０３およびオペレーティングシステムメモリ管理とリンクしている旨を示している。また、ＨＤＤ１０２については、ＣＰＵ１０３およびオペレーティングシステムとリンクしている旨を示している。また、各リンクは、障害時における機能要素内の異常動作の伝播方向（障害の波及方向）を示す情報を有する。
【００４３】
基本トポロジ情報の定義について更に説明する。各機能要素を定義する場合には、当該機能要素が障害を監視・検出する対象として十分な大きさのハードウェアやソフトウェア、あるいは機能の集まりである必要がある。また、異常動作の伝播方向（障害の波及方向）については、機能要素の大きさ、属するレイヤを区別せず各リンクに定義（設定）する。例えば、システムレベルでは、機器構成要素を機能要素、接続関係をリンクと定義する。ハードウェアレベルでは、ハードウェアモジュールブロックや障害検出レジスタを機能要素、ハードウェアモジュールブロックと障害検出レジスタ間の関係をリンクと定義する。ソフトウェアレベルでは、関数と障害検出変数を機能要素、関数と障害検出変数の関係をリンクと定義する。これによって、基本トポロジ情報を結合して容易にシステムトポロジ情報を生成することができるようになる。また基本トポロジ情報は、ハードウェア並びにソフトウェアの設計情報から機能要素とリンクの関係を精密に抽出すればするほど、精度が高くなる。しかし、設計情報が解らない場合、判明している物理的な接続状態および動作関係などから基本トポロジ情報を定義してもよい。
【００４４】
システムトポロジ管理部５０８は、システム構成管理装置６０からシステム構成情報を受け取る。具体的には、システムトポロジ管理部５０８は、運用中のマルチレイヤシステム１の構成に変更があった場合に、システム構成管理装置６０からシステム構成情報を受け取る。なお、運用者は、従来同様、システム構成管理装置６０を使用し、システム構成の変更、管理を行う。また、システムトポロジ管理部５０８は、取得したシステム構成情報を保持していてもよい。
【００４５】
システムトポロジ情報生成部５０９は、マルチレイヤシステム１のシステム構成と、基本トポロジ情報記憶部５０５に記憶されている基本トポロジ情報とを参照し、システム全体のトポロジ情報であって、各機能要素が所属する装置およびレイヤに関する情報を保持しないシステムトポロジ情報を生成する。システムトポロジ情報の各リンクは、障害時における機能要素内の異常動作の伝播方向を示す情報を有する。システムトポロジ情報生成部５０９は、生成したシステムトポロジ情報をシステムトポロジ情報記憶部５０６に記憶する。
【００４６】
また、システムトポロジ情報生成部５０９は、障害収集部５０１が複数の異常機能要素に係る障害通知を受け取った場合に、システムトポロジ情報を木構造となるように更新してもよい。なお、システムトポロジ情報が木構造である場合、障害予測アルゴリズム処理部５１１の処理（後述）が高速化する。
【００４７】
以下、システムトポロジ情報の生成過程を説明する。図３は、コンピュータハードウェア１００の基本トポロジ情報のグラフである。図４は、スイッチハードウェア３００の基本トポロジ情報のグラフである。図５は、システムトポロジ情報の一部のグラフである。なお、図３、図４、図５のグラフは、機能要素をノード、他のノードとの関係性を矢印のリンクによって示している。また、リンクの矢印方向は、異常動作の伝播方向である。以下、図１０に示すマルチレイヤシステム１の一部である、コンピュータハードウェア１００とスイッチハードウェア３００に関係する部分のシステムトポロジ情報を生成する動作の流れを説明する。
【００４８】
システムトポロジ情報生成部５０９は、システムトポロジ管理部５０８から運用中のシステム構成の情報を入手し、ハードウェア資源や、ソフトウェア資源、アプリケーション資源等、システムを構成する機能要素に分解し、基本トポロジ情報記憶部５０５のテーブルＮＯ．１のトポロジ情報に基づいて、図３に示すコンピュータハードウェア１００の基本トポロジ情報のグラフを得る。また、基本トポロジ情報記憶部５０５のテーブルＮＯ．２のトポロジ情報に基づいて、図４に示すスイッチハードウェア３００の基本トポロジ情報のグラフを得る。
【００４９】
次に、システムトポロジ情報生成部５０９は、得られたコンピュータハードウェア１００とスイッチハードウェア３００の基本トポロジ情報を、接続可能なリンク間によって接続（結合）する。具体的には、システムトポロジ情報生成部５０９は、ネットワークカード１０１に係るノードであるＶ１０１と、ネットワークインターフェイス３０１に係るノードであるＶ３０１とを、ケーブル２に係るノードであるＶ２によって接続し、図５に示すシステムトポロジ情報を生成する。なお、図５に示すシステムトポロジ情報は、各機能要素の所属元である装置およびレイヤに関する情報を有しない（例えば、Ｖ１０１の所属元である、装置（サーバ１０）およびレイヤ（コンピュータハードウェア１００）に関する情報を有しない）。なお、システムトポロジ情報生成部５０９は、ネットワークカード１０１（Ｖ１０１）とネットワークインターフェイス３０１（Ｖ３０１）とが接続可能である旨の情報は、システムトポロジ管理部５０８から取得する上述のシステム構成の情報に含まれている。システムトポロジ情報生成部５０９は、同様の方法によって、図１０に示すマルチレイヤシステム１全体のシステムトポロジ情報を生成する。
【００５０】
障害トポロジ情報生成部５１０は、障害収集部５０１が複数の異常機能要素（異常動作を発現した機能要素）に係る障害通知を取得した場合に、システムトポロジ情報を参照し、当該複数の異常機能要素と、当該各異常機能要素間のリンクとからなる障害トポロジ情報（システムトポロジ情報の一部分であるトポロジ情報）を生成する。障害トポロジ情報の各リンクは、障害時における機能要素内の異常動作の伝播方向（障害の波及方向）を示す情報を有する。障害トポロジ情報生成部５１０は、生成した障害トポロジ情報を障害トポロジ情報記憶部５０７に記憶する。
【００５１】
以下、障害トポロジ情報の生成過程を説明する。図６は、障害トポロジ情報の生成過程を説明する図である。なお、図６に示す機能要素「Ｖａ」「Ｖｂ」「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」「Ｖｇ」は、障害トポロジ情報の生成過程を説明する為のものであって、図１０に示すマルチレイヤシステム１の機能要素と対応していない。次の図７に示す機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」についても同様である。
【００５２】
障害トポロジ情報生成部５１０は、障害収集部５０１が異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」に係る障害通知を取得した場合、障害収集部５０１から異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」に係る障害通知を取得する。障害収集部５０１から異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」に係る障害通知を取得した障害トポロジ情報生成部５１０は、システムトポロジ情報記憶部５０６に記憶されている図６Ａに示すシステムトポロジ情報に含まれる機能要素「Ｖａ」「Ｖｂ」「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」「Ｖｇ」のなかから、図６Ｂに示す、異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」のみを抽出する。そして、障害トポロジ情報生成部５１０は、異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」と当該異常機能要素間のリンクとからなる、図６Ｃに示す、異常トポロジ情報を生成する。なお、障害トポロジ情報生成部５１０が生成する障害トポロジ情報は、障害の波及を示すシステムモデルと考えることができる。
【００５３】
障害予測アルゴリズム処理部５１１は、障害収集部５０１が複数の異常機能要素に係る障害通知を取得した場合に、当該複数の異常機能要素のなかから一の異常機能要素を順次選択し、選択している一の異常機能要素から選択していない他の異常機能要素への方向が障害トポロジ情報内の伝播方向と整合するか否かを判断し、整合すると判断したときは、選択している一の異常機能要素を障害原因機能要素（システム障害の原因と予想される機能要素）として特定する。
【００５４】
以下、具体例を用いて説明する。図７Ａ〜Ｅは、障害予測アルゴリズム処理部５１１のアルゴリズムを説明する図である。障害予測アルゴリズム処理部５１１は、障害収集部５０１が異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」に係る障害通知を取得した場合に、異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｅ」「Ｖｆ」のなかから、例えば、異常機能要素「Ｖｄ」を選択する。
【００５５】
障害予測アルゴリズム処理部５１１は、図７Ｃに示すように、選択している異常機能要素「Ｖｄ」から異常機能要素「Ｖｆ」へのリンク方向（伝播方向）は、図７Ａに示す障害トポロジのリンク方向と整合すると判断する。しかし、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｄ」から異常機能要素「Ｖｃ」へのリンク方向、および、異常機能要素「Ｖｄ」から異常機能要素「Ｖｅ」へのリンク方向が、図７Ａに示す障害トポロジのリンク方向と整合しないと判断する。よって、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｄ」を障害原因機能要素として特定しない。なお、図７Ａに示す障害トポロジ情報は、上述のように、障害トポロジ情報生成部５１０によって生成されたものである。
【００５６】
次に、障害予測アルゴリズム処理部５１１は、例えば、異常機能要素「Ｖｆ」を選択する。障害予測アルゴリズム処理部５１１は、図７Ｄに示すように、選択している異常機能要素「Ｖｆ」から異常機能要素「Ｖｄ」へのリンク方向、異常機能要素「Ｖｄ」から異常機能要素「Ｖｃ」へのリンク方向、および、異常機能要素「Ｖｄ」から異常機能要素「Ｖｅ」へのリンク方向が、図７Ａに示す障害トポロジのリンク方向と整合しないと判断する。よって、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｆ」を障害原因機能要素として特定しない。
【００５７】
次に、障害予測アルゴリズム処理部５１１は、例えば、異常機能要素「Ｖｅ」を選択する。障害予測アルゴリズム処理部５１１は、図７Ｅに示すように、選択している異常機能要素「Ｖｅ」から異常機能要素「Ｖｄ」へのリンク方向、および、異常機能要素「Ｖｄ」から異常機能要素「Ｖｆ」へのリンク方向は、図７Ａに示す障害トポロジのリンク方向と整合すると判断する。しかし、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｅ」から異常機能要素「Ｖｃ」へのリンク方向が、図７Ａに示す障害トポロジのリンク方向と整合しないと判断する。よって、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｅ」を障害原因機能要素として特定しない。
【００５８】
次に、障害予測アルゴリズム処理部５１１は、最後に、異常機能要素「Ｖｃ」を選択する。障害予測アルゴリズム処理部５１１は、図７Ｂに示すように、選択している異常機能要素「Ｖｃ」から異常機能要素「Ｖｄ」へのリンク方向、異常機能要素「Ｖｃ」から異常機能要素「Ｖｅ」へのリンク方向、および、異常機能要素「Ｖｄ」から異常機能要素「Ｖｆ」へのリンク方向の何れもが、図７Ａに示す障害トポロジのリンク方向と整合すると判断する。よって、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｃ」を障害原因機能要素として特定する。
【００５９】
つまり、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｃ」が障害原因機能要素であると仮定した場合にのみ、障害トポロジ情報内の伝播方向と整合する。このため、障害予測アルゴリズム処理部５１１は、異常機能要素「Ｖｃ」が障害原因機能要素であると判断する。なお、システムトポロジ情報が木構造（つまり障害トポロジ情報も木構造）である場合、アルゴリズム処理部５１１による処理が高速化する。木構造であれば、リンクの総数が少ないため、上述の整合を判断する回数が少ないからである。
【００６０】
障害通知部５０４は、障害通知、および、障害予測アルゴリズム処理部５１１によって特定された障害原因機能要素を示す障害箇所予測特定情報を運用者に通知する。
【００６１】
以下、障害解析装置５０の動作を説明する。図８は、本発明の実施形態による障害解析装置５０の動作の一例を示すフローチャートである。図８に示すフローチャートは、システム運用段階において障害が発生した場合に、この障害箇所の特定を行う処理を表すフローである。
【００６２】
障害解析装置５０の運用状態において、マルチレイヤシステム１に障害が発生すると、機能要素間で障害が波及し、マルチレイヤシステム１上の各障害監視部にて複数の障害が検出される。これにより、複数の異常機能要素に係る障害通知が障害解析装置５０に送信される。つまり、障害収集部５０１は、複数の異常機能要素に係る障害通知を収集（受信）する（ステップＳ２０２）。なお、障害解析装置５０の運用状態において、システムトポロジ情報記憶部５０６には、マルチレイヤシステム１の最新のシステムトポロジ情報が記憶されている（運用中のマルチレイヤシステム１の構成に変更があった場合には、システムトポロジ管理部５０８がシステム構成情報を取得し、システムトポロジ情報生成部５０９が最新のシステムトポロジ情報を再生成し、システムトポロジ情報記憶部５０６に記憶する）。
【００６３】
障害トポロジ情報生成部５１０は、障害通知とシステムトポロジ情報記憶部５０６に記憶されているシステムトポロジ情報とを参照し、障害トポロジ情報を生成する（ステップＳ２０３）。障害トポロジ情報生成部５１０は、生成した障害トポロジ情報を障害トポロジ情報記憶部５０７に記憶する。
【００６４】
障害予測アルゴリズム処理部５１１は、複数の異常機能要素のなかから一の異常機能要素を順次選択し、選択している一の異常機能要素から選択していない他の異常機能要素への障害の伝播方向が障害トポロジ情報内の伝播方向と整合するか否かを判断する。障害予測アルゴリズム処理部５１１は、伝播方向が整合すると判断したときは、選択している一の異常機能要素を障害原因機能要素として特定する（ステップＳ２０４）。
【００６５】
また、システムトポロジ情報生成部５０９は、必要な場合、システムトポロジ情報を木構造になるように更新する（ステップＳ２０５）。例えば、図６Ａに示すシステムトポロジ情報の機能要素「Ｖｃ」から機能要素「Ｖｄ」に至る２つのリンク（直接、機能要素「Ｖｄ」に至るリンク、機能要素「Ｖｅ」を経由して機能要素「Ｖｄ」に至るリンク）の一方を一旦封鎖する（リンクがないものとみなす）。例えば、障害収集部５０１が異常機能要素「Ｖｃ」「Ｖｄ」「Ｖｆ」を示す障害通知を取得した場合、システムトポロジ情報生成部５０９は、機能要素「Ｖｃ」から機能要素「Ｖｅ」に至るリンクを一旦封鎖する。異常機能要素「Ｖｃ」から異常機能要素「Ｖｅ」に異常動作が伝播していないからである。
【００６６】
なお、システムトポロジ情報生成部５０９は、リンクに係数（図３から図５のリンクに付した数値（何れの係数も「１０」で、以下、「リンクコスト」という。）を付して、システムトポロジ情報を木構造になるように更新してもよい。例えば、システムトポロジ情報生成部５０９は、一旦封鎖すべきリンクに対し高いリンクコストを付してもよい。これによって、網（ネットワーク）構成であったシステムトポロジ情報から木構造であるシステムトポロジ情報を簡便に生成することができる。また、木構造であるシステムトポロジ情報の木の構成を簡便に更新することができる。
【００６７】
障害解析装置の障害通知部５０３は、障害通知、障害箇所予測特定情報を運用者に通知する（ステップＳ２０６）。
【００６８】
以上、本発明の実施形態による障害解析装置５０によれば、システム全体をサポートしたシステムトポロジ情報（異常動作の伝播方向という概念）に基づいて障害箇所を特定する。このため、非常に広い範囲内の障害に対応することができる。また、障害イベントと障害特定箇所との関係の洗い出し業務や定義作業も不要であるから、運用者の負担も小さい。
【００６９】
また、システムの構成が変更した場合であっても、システムトポロジ管理部５０８がシステム構成情報を取得し、システムトポロジ情報生成部５０９が最新のシステムトポロジ情報を再生成する。このため、運用者に負担がかからない。
【００７０】
なお、従来の障害解析装置４０を使用した場合、特定された障害箇所が適切でないという事態、障害箇所が特定されないという事態が生じた場合には、図１４に示すように、運用者は非常に面倒な作業を強いられる。しかし、障害解析装置５０を使用した場合には、万が一、特定された障害箇所が適切でないという事態、障害箇所が特定されないという事態が生じた場合であっても、運用者に掛かる負担は少ない。運用者は、機能要素が所属する装置およびレイヤに関する情報を保持しないトポロジ情報（システムトポロジ情報、障害トポロジ情報）、つまり、各機能要素の所属元である装置およびレイヤに関する情報を有しないシステムトポロジ情報（システムトポロジ情報、障害トポロジ情報）を活用することができるからである。
【００７１】
なお、一実施形態として、障害収集部５０１、障害通知部５０４、基本トポロジ情報記憶部５０５、システムトポロジ情報記憶部５０６、障害トポロジ情報記憶部５０７、システムトポロジ管理部５０８、システムトポロジ情報生成部５０９、障害トポロジ情報生成部５１０、および、障害予測アルゴリズム処理部５１１を備える図１に示す障害解析装置５０を説明した。この他の実施形態として、図９に示す障害解析装置５１で代用してもよい。図９は、本発明の他の実施形態による障害解析装置５１のブロック図である。
【００７２】
障害解析装置５１は、図９に示すように、障害収集部５０１、障害通知部５０４、基本トポロジ情報記憶部５０５、システムトポロジ情報記憶部５０６、システムトポロジ管理部５０８、システムトポロジ情報生成部５０９、および、障害予測アルゴリズム処理部５１１を備える（図１と同一符号は同一部材である）。つまり、図９に示す障害解析装置５１は、図１に示す障害解析装置５０が備えている障害トポロジ情報記憶部５０７および障害トポロジ情報生成部５１０を備えない。
【００７３】
従って、障害解析装置５１の障害予測アルゴリズム処理部５１１は、障害収集部５０１が複数の異常機能要素に係る障害通知を取得した場合に、当該複数の異常機能要素のなかから一の異常機能要素を順次選択する。障害予測アルゴリズム処理部５１１は、選択している一の異常機能要素から選択していない他の異常機能要素への方向がシステムトポロジ情報内の伝播方向と整合するか否かを判断する。障害予測アルゴリズム処理部５１１は、伝播方向が整合すると判断したときは、選択している一の異常機能要素を障害原因機能要素として特定する。つまり、障害予測アルゴリズム処理部５１１は、障害トポロジ情報を生成せずに、直接、システムトポロジ情報から障害原因機能要素を特定する。
【００７４】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００７５】
上記の実施形態に示される構成により、コンピュータシステムにおける広い範囲内の障害に対応することができる障害解析装置を提供することができる。
【符号の説明】
【００７６】
１  マルチレイヤシステム
１０  サーバ
２０  クライアント
３０  スイッチ
４０  従来の障害解析装置
５０  障害解析装置
５１  障害解析装置
６０  システム構成管理装置
１００  コンピュータハードウェア
１０１  ネットワークカード
１０２  ＨＤＤ
１０３  ＣＰＵ
１０４  メインメモリ
１０９  障害監視部
１１０  オペレーティングシステム
１１１  ネットワークドライバ
１１２  ＨＤＤドライバ
１１３  ネットワークプロトコル
１１４  メモリ管理部
１１９  障害監視部
１２０  サーバアプリケーション
１２１  アプリケーション実行部
１２９  障害監視部
２００  コンピュータハードウェア
２０１  ネットワークカード
２０２  ＨＤＤ
２０３  ＣＰＵ
２０４  メインメモリ
２０９  障害監視部
２１０  オペレーティングシステム
２１１  ネットワークドライバ
２１２  ＨＤＤドライバ
２１３  ネットワークプロトコル
２１４  メモリ管理部
２１９  障害監視部
２２０  クライアントアプリケーション
２２１  アプリケーション実行部
２２９  障害監視部
３００  スイッチハードウェア
３０１  ネットワークインターフェイス（ＮＷＩ／Ｆ）
３０２  ネットワークインターフェイス（ＮＷＩ／Ｆ）
３０３  ネットワークインターフェイス（ＮＷＩ／Ｆ）
３０４  スイッチファブリック
３０５  ＣＰＵ
３０６  メモリ
３０９  障害監視部
３１０  オペレーティングシステム
３１１  スイッチドライバ
３１２  メモリ管理部
３１９  障害監視部
３２０  スイッチアプリケーション
３２１  ルーティングプロトコル
３２９  障害監視部
４０１  障害収集部
４０２  検索部
４０３  障害解析テーブル
４０４  障害通知部
５０１  障害収集部
５０４  障害通知部
５０５  基本トポロジ情報記憶部
５０６  システムトポロジ情報記憶部
５０７  障害トポロジ情報記憶部
５０８  システムトポロジ管理部
５０９  システムトポロジ情報生成部
５１０  障害トポロジ情報生成部
５１１  障害アルゴリズム処理部
【図１】
0005423677.tif 000002
【図２】
0005423677.tif 000003
【図３】
0005423677.tif 000004
【図４】
0005423677.tif 000005
【図５】
0005423677.tif 000006
【図６Ａ】
0005423677.tif 000007
【図６Ｂ】
0005423677.tif 000008
【図６Ｃ】
0005423677.tif 000009
【図７Ａ】
0005423677.tif 000010
【図７Ｂ】
0005423677.tif 000011
【図７Ｃ】
0005423677.tif 000012
【図７Ｄ】
0005423677.tif 000013
【図７Ｅ】
0005423677.tif 000014
【図８】
0005423677.tif 000015
【図９】
0005423677.tif 000016
【図１０】
0005423677.tif 000017
【図１１】
0005423677.tif 000018
【図１２】
0005423677.tif 000019
【図１３】
0005423677.tif 000020
【図１４】
0005423677.tif 000021