まず、本発明の概要について説明する。
本発明は、発生する障害を予防又は発生した障害を復旧する機能を備えるコンピュータシステムにおいて、コンピュータシステムのリソース量や負荷等を示すモニタ値と、人、他のコンピュータ及び他のプログラム等からの入出力操作及び設定変更等によってシステムで発生するイベントとの相関の履歴を用いて、現在のコンピュータシステムの稼動状態を判定する。そして、障害の予防及び障害の復旧のための処理を選択し、他の予定されているイベントと選択された予防処理及び復旧処理によるコンピュータシステムへの影響を判定し、処理の実行順序や実行される処理を選択する制御方法に関する。
本発明の代表的な実施形態では、障害の予防及び復旧の対象となる複数のコンピュータを備え、これらのコンピュータを接続するネットワークからなるコンピュータシステムから稼動状況等の情報を収集する手段と、収集した情報及び収集した情報を統計処理して得られる統計値の相互の相関関係を示す相関情報を記憶する手段と、記憶された相関情報を参照して障害を検出し、障害原因を解析し、障害を予防し、及び障害復旧処理の候補を生成し、さらに、予防処理及び復旧処理による障害の回避及び障害回復の効果と他への影響を推定して、効果が高く他への影響が少ない予防処理及び復旧処理の選択的な実行を可能とする障害予防・復旧制御方法、コンピュータシステム及び障害予防・復旧プログラムを提供する。
以下、本発明による障害予防・復旧制御方法について、いくつかの具体例に分けて説明する。
本発明の第1の実施に形態に示す障害予防・復旧制御方法(第1の方法)は、以下の部分から構成される障害予防・復旧制御部によって実現される。
まず、障害予防及び障害復旧の制御対象システムの状態や特性を解析し記録するために、稼動状態を示すモニタ値や発生したイベント及び実行された処理に関する情報を収集し、統計処理によって統計値を計算する情報収集・統計処理部を備える。また、収集した情報や統計値の間の相関関係を解析し、相関情報として記憶する相関情報記憶部を備える。また、相関情報記憶部に記憶された情報を入出力する相関情報更新部及び相関情報抽出部を備える。相関情報としては、例えば、2つのモニタ値X、YがX=aYの関係にあること、イベントCの発生は統計値DがD>0の時であること、及び、処理Eの実行後に統計値Fが減少すること等の情報が記録される。
さらに、障害検出及び障害原因の解析、及びそれらに対応した予防処理及び復旧処理の候補を生成するために、情報収集・統計処理部から得られる現在のシステムの状態を示すモニタ値等の情報と、相関情報記憶部から得られる相関情報とを使って、現在のシステムの状態がこれまでのシステムの稼動状態と比べて異常であるかを検出する異常検出・原因解析・予防・復旧処理候補生成部を備える。異常検出・原因解析・予防・復旧処理候補生成部は、異常箇所を解析する。また、異常検出・原因解析・予防・復旧処理候補生成部は、相関情報から、異常検出時に原因に応じた対策を生成する。異常検出の例として、相関情報では2つのモニタ値X、YがX=Yの関係にあるが、最新のモニタ値ではX>>Yとなった場合に、X又はYの少なくとも一つに異常が現れたと検出することがある。また、処理候補は複数あってもよい。
さらに、異常検出・原因解析・予防・復旧処理候補生成部によって生成された予防・復旧処理候補に対して、相関情報を使ってその処理を実行した際の効果と影響を評価する処理効果・影響評価部を備える。また、生成された処理を命令する処理命令部を備える。また、処理効果・影響評価部及び処理命令部を制御する評価・命令制御部を備える。相関情報には、処理実行後のモニタ値や統計値等の変化が含まれており、これらの変化がその処理で解消しようとしている異常と合致していれば効果があると評価でき、異常を悪化させたり、他の正常値を変化させたりする場合には影響があると評価する。
処理効果・影響評価部はこれらの評価によって、一定の基準を満たす処理を実行候補として処理命令部に送る。処理命令部は、実行候補の中から効果が高く、影響の低い処理を選択して、他の処理との順序を調整して、制御対象システムに命令する。評価・命令制御部は、処理効果・影響評価部及び処理命令部における判定及び調整の基準を制御する。具体的には、効果があると判定する閾値の設定、及び実行順序を調整する際の効果と影響の優先度の設定等がある。また、評価・命令制御部には、異常検出・原因解析・予防・復旧処理候補生成部の出力や効果及び影響の評価結果、実行候補となっている処理リストの表示、及び、閾値や優先度の調整用インタフェース等を含む。
第1の方法によれば、時間の経過に応じて相関情報が更新されていくので、コンピュータシステムの動的な変化に応じて、障害を検知し、原因を解析し、処理候補を生成し、効果と影響を評価する。そのため、処理の評価結果も変化をしていくので、構成の変化に対応した適切な処理を選択して実行することができる。これによって第1の課題を解決することができる。
また、相関情報には、処理Aの実行後に統計値Bが減少すること等の情報が記録されているので、これを逆に検索することで統計値Bが増加する異常時に、統計値Bを減少させる処理Aを効果のある処理候補として生成することができる。つまり、相関情報を検索することによって、未知の異常に対して効果のある処理を生成できる。これによって第2の課題を解決することができる。
本発明の第2の実施の形態に示す障害予防・復旧制御方法(第2の方法)は、第1の方法と以下の点が異なる。
第1の方法では、相関情報を使って障害を検出し、及び障害原因を解析して、予防・復旧処理候補を生成した。しかし、相関情報によらずに処理候補を生成する場合もある。第2の方法では、処理効果・影響評価部に対して処理を与える処理命令入力部を備えることによって、外部から処理を指定するインタフェースと、そのインタフェースを介して入力された処理命令の効果及び影響を、相関情報を使って評価する方法を提供する。外部からの処理命令入力は、異常の発生時に限らず、通常時のシステム構成変更、ソフトウェアの更新、計画保守及び臨時保守等も含まれる。
第2の方法によれば、外部から入力した処理命令に対して、処理の実行前に効果や影響を評価することができ、想定外の影響を与える処理の実行に停止することができる。これによって、第1の課題と第3の課題を解決することができる。
本発明の第3の実施の形態に示す障害予防・復旧制御方法(第3の方法)は、第1及び第2の方法に以下の点が追加されている。
第3の方法では、処理効果・影響評価部において、処理の十分な効果が期待できない場合、及び他への影響が大きい場合に、処理の候補を見直すためのフィードバックループを備える。異常検出・原因解析・予防・復旧処理候補生成部では、処理候補を再度生成する。また、外部からの処理命令が入力される処理命令入力部でも、同様に、別の処理命令の入力を受け付ける。評価・命令制御部では、フィードバックループの収束条件を制御する。例えば、フィードバック時に処理生成の世代を管理し、3世代を限度にフィードバックを可能とする等の制御ができる。
第3の方法によれば、処理の効果や影響によって、実行前に処理を見直すことができ、システムに副次的に生じた影響への対策をすることができる。これによって第4の課題を解決することができる。
本発明の第4の実施の形態に示す障害予防・復旧制御方法(第4の方法)は、第3の方法に以下の点が追加されている。
第3の方法では、処理効果・影響評価部において、処理による他へ与える影響が大きい場合に処理の見直しをするフィードバックループを設けたが、処理を見直しても適切な処理が見つからない場合がある。これに対し、第4の方法では、他への影響を低減する別の処理を生成して、生成された複数の処理によって障害予防・復旧を実現する影響低減処理候補生成部を備える。追加される処理は、相関情報を用いて、影響を低減する効果をもつ処理を検索することで生成できる。第4の方法では、影響低減処理の再帰的な生成による無限ループを防ぐために、第3の方法と同様に、評価・命令制御部において、処理の再帰的な生成を制限する制御をする。
第4の方法によれば、他への影響を抑えつつ効果の高い障害予防・復旧処理を実行できる。これによって第4の課題を解決することができる。
本発明の第5の実施の形態に示す障害予防・復旧制御方法(第5の方法)は、第1〜第4の方法に対して以下の点が拡張されている。
第1〜第4の方法に含まれる相関情報は、ある特定の時点におけるモニタ値、統計値、イベント及び処理の間の相関関係を記録した情報である。しかし、障害には、時間軸上で別の時点の指標と相関のある場合がある。第5の方法では、相関情報記憶部は、相関情報を記録する際に、過去の状態と現在の状態におけるモニタ値等の相関関係を記録する。
第5の方法によれば、より多くの相関情報を抽出及び利用でき、より効果が高く、より影響の少ない処理を実行できる可能性を高めることができる。
本発明の第6の実施の形態に示す障害予防・復旧制御方法(第6の方法)は、第1〜5の方法に対して以下の点が拡張されている。
第1〜5の方法に含まれる相関情報は、個々のイベントや処理を単位として相関関係を記録した情報である。しかし、イベント間、処理間及びイベントと処理の間には、時間軸上で依存関係のある場合がある。第6の方法では、相関情報記憶部は、一連のイベント及び処理のシーケンスを単位として相関関係を記録する。
第6の方法によれば、第5の方法と同様に、より多くの相関情報を抽出及び利用でき、より効果が高く、より影響の少ない処理を実行できる可能性を高めることができる。
次に、本発明の個々の実施の形態を説明する前に、本発明のコンピュータシステムの概要について、図1を参照して説明する。
図1に示すように、本発明のコンピュータシステムは、制御対象システム101及び障害予防・復旧制御部106を備える。
制御対象システム101は、1台又は複数のコンピュータ102及びコンピュータ102間を接続するネットワーク104を備える。各コンピュータ102は、演算処理をするプロセッサ、プロセッサによる演算処理に使用するデータ及びプログラムを記憶する記憶部、及び、ネットワーク104と接続されるインタフェースを備える。
プロセッサは、記憶部に記憶された各種プログラムを呼び出して実行することによって、各種処理を行う。ネットワークインタフェースは、例えば、TCP/IPプロトコルを用いて通信可能なLANカードである。コンピュータ102は、ネットワークインタフェースによって、コンピュータ105等のネットワーク104に接続された機器と通信することができる。
各コンピュータ102は、プログラムを実行することによって、障害予防・復旧制御部106と情報を送受信し、障害予防・復旧制御部106からの指示によって処理を実行するエージェント103が含まれる。
エージェント103は、ネットワーク104を介して障害予防復旧制御部106と通信する。エージェント103は、コンピュータ102毎に一つ又は複数存在してもよい。また、複数のコンピュータ102でエージェント103を共有してもよい。また、エージェント103のみを含むコンピュータ102を用意し、他のコンピュータ102はエージェント103を含まない構成でもよい。
障害予防・復旧制御部106は、1台又は複数のコンピュータ105を備える。これらのコンピュータ105は、ネットワーク104に接続され、制御対象システム101の各コンピュータ102と情報を送受信し、各コンピュータ102に各種処理を命令する。
各コンピュータ105は、演算処理をするプロセッサ、プロセッサによる演算処理に使用するデータ及びプログラムを記憶する記憶部、及び、ネットワーク104と接続されるインタフェースを備える。
プロセッサは、記憶部に記憶された各種プログラムを呼び出して実行することによって、各種処理を行う。ネットワークインタフェースは、例えば、TCP/IPプロトコルを用いて通信可能なLANカードである。コンピュータ105は、ネットワークインタフェースによって、コンピュータ102等のネットワーク104に接続された機器と通信することができる。
障害予防・復旧制御部106は、図1に示すように制御対象システム101とは別のコンピュータ105で構成してもよいが、制御対象システム101内のコンピュータ102で構成してもよい。その場合、障害予防・復旧制御部106は、制御対象システム101内に含まれる。
次に、本発明の実施の形態について図を参照して個々に説明する。
(第1実施形態)
図2は、本発明の第1の実施の形態の構成を示すブロック図である。
第1の実施の形態のコンピュータシステムは、図2に示すように、制御対象システム101及び障害予防・復旧制御部106を備える。本発明による制御方法の主要な部分は障害予防・復旧制御部106に含まれるので、以下に、この部分について詳細に説明する。
障害予防・復旧制御部106は、情報を収集し、相関情報を抽出し、蓄積し、読み出す。そして、障害予防・復旧制御部106は、収集した情報と相関情報を使ってコンピュータシステムの異常を検出し、異常の原因を解析し、異常を予防し、復旧処理候補を生成し、復旧処理の効果及び影響を評価し、制御対象システムに対して処理を命令する。さらに、障害予防・復旧制御部106は、以上の動作を制御する。
このため、障害予防・復旧制御部106は、情報収集・統計処理部201、相関情報更新部202、相関情報記憶部203、相関情報抽出部204、異常検出・原因解析・予防・復旧処理候補生成部205、予防・復旧処理効果・影響評価部206、評価・命令制御部207及び予防・復旧処理命令部208を備える。これらの各部は、記憶部に記憶されたプログラムをプロセッサが実行することによって実現される。
情報収集・統計処理部201は、制御対象システム101から稼動状態を示すモニタ値、制御対象システム101で発生したイベント、及び制御対象システム101によって実行された処理に関する情報を収集する。情報収集・統計処理部201によって収集されるモニタ値は、CPU使用率及びメモリ使用量等のシステムモニタ値、ページフォルト発生数及び割込処理発生回数等のオペレーティングシステムが収集するモニタ値、ファンクション呼び出し回数等のミドルウェアが収集するモニタ値、個々のアプリケーションが出力するログに含まれる稼動状態を示すモニタ値が含まれる。
本発明では、モニタ値は時間的に連続して又は周期的に出力される測定値であり、例えば、処理の呼び出し回数は、単位時間に0、2、0、1、3、・・・のような時間順に並んだ数列で表現される。
制御対象システム101で発生したイベントは、メモリのパリティエラー等のハードウェアの診断結果等に関する情報、メモリシステムのガーベージコレクション等のソフトウェアの動作に関する情報、アプリケーションの負荷調整等のシステムコンポーネントの制御に関する情報、及び、外部ネットワークの切断や電源電圧降下等の外部環境の変化に関する情報が含まれる。本発明では、イベントは、時間的に離散して又は不定の時間間隔で出力される測定値である。例えば、ハードウェアの故障等では、時刻T1に部位H1で発生、時刻T2に部位H2で発生のような、時刻とイベントの内容の組み合わせによって、実行された処理が表現される。
制御対象システム101によって実行された処理は、管理者の指示によるシステムの構成変更及び再起動等のシステムへの命令等に関する情報、ユーザー入力によるプログラムの設定変更や、データベースへのクエリ実行等のソフトウェアへの命令等に関する情報が含まれる。本発明では、実行された処理は時間的に離散して又は不定の時間間隔で出力される測定値である。例えば、アプリケーションの再起動では、時刻T3にユーザーP3の指示によりアプリケーションA3を再起動、時刻T4に管理者Pkの指示によりアプリケーションA4を再起動のような、時刻と処理の内容の組み合わせによって、実行された処理が表現される。
ここで、処理とは、制御対象システム101外部からの指示や命令によって制御対象システム101内で起こった事象であり、イベントは、それ以外の事象である。イベントと実行された処理を明確に区別することは、本発明では本質的なことではないので、以下では両者をまとめてイベント、又は、イベント及び処理のように省略して表す。
情報収集・統計処理部201は、収集した情報に対して統計的な処理もする。統計的な処理とは、収集した情報に基づいて計算できるあらゆる値(統計値)を求める処理である。具体的には、統計的な処理は、モニタ値の累積値、時間平均、分散又は度数分布を求める処理、イベントが発生した時のモニタ値の最大値及び最小値を求める処理、二つのイベントが同時に発生する頻度を求める処理等を含む。
情報収集・統計処理部201は、収集した情報を相関情報記憶部203へ記録する。また、情報収集・統計処理部201は、イベント及び処理等の情報相互の相関関係を示す値、モニタ値及び統計値を生成する。これらの値の生成も統計的な処理に含まれるが、相関情報記憶部203へ記録するために求めた値は、特に相関情報と呼ぶ。相関情報の詳細については後で述べる。
本実施の形態では、相関情報にモニタ値の統計値を含めたが、統計値は必須の構成ではなく、モニタ値とイベントとの相関関係のみを相関情報としてもよい。
次に、相関情報記憶部203、相関情報更新部202及び相関情報抽出部204について説明する。
相関情報記憶部203は、モニタ値、統計値、イベントや処理等の情報相互の相関関係を示す値を記録する。相関関係を示す値の詳細は後で述べるが、例えば、モニタ値Cとモニタ値Dの相関係数や回帰線を示す方程式及び共起確率がある。本発明では、これらの相関関係を示す値を総称して相関情報と呼ぶ。
相関情報記憶部203は、二つの情報AとBの相関値を表で表現した相関表や、二つの情報AとBの相関関係を確率で表現した確率モデル等の形式で、相関情報を記録する。相関情報は、情報収集・統計処理部201で生成され、相関情報更新部202によって、相関情報記憶部203へ記録される。また、相関情報記憶部203に記録されている相関情報は、相関情報抽出部204によって読み出される。なお、相関情報更新部202、相関情報記憶部203及び相関情報抽出部204は、各々一つのみ図示したが、各々が複数あってもよい。
次に、異常検出・原因解析・予防・復旧処理候補生成部(以下、検出・処理生成部と略す)205について説明する。
検出・処理生成部205は、情報収集・統計処理部201によって収集・統計処理された情報と、相関情報抽出部204によって相関情報記憶部203から読み出された相関情報を利用して、制御対象システム101の異常状態を検出する。そして、検出・処理生成部205は、原因を解析し、障害の回避及び回復をするための予防・復旧処理の候補を生成する。
検出・処理生成部205によって行われる異常状態の検出及び原因の解析方法は、例えば、前述した“Ensembles of Models for Automated Diagnosis of System Performance Problems”、S. Zhang他(非特許文献2)及び“Combining Visualization and Statistical Analysis to Improve Operator Confidence and Efficiency for Failure Detection and Localization”、P. Bodik他(非特許文献3)に示す方法を使用することができる。
次に、より簡単な異常状態の検出方法を例示する。相関情報記憶部203に記録された相関情報ではモニタ値Xとモニタ値Yの回帰線がY=Xであるとき、情報収集・統計処理部201から得た現在のモニタ値Xとモニタ値Yの関係がY=2Xである場合、モニタ値X及びYの少なくとも一つに異常が現れていることが検出できる。その他に、制御対象システムの異常を示すイベントが相関情報記憶部203に記録されているとき、情報収集・統計処理部201が取得した現在のイベントが、異常を示すイベントであるか否かを検出する方法もある。
また、モニタ値Zが閾値Wを越えた場合に異常と検出する方法でもよい。通常一定間隔で収集されるべき情報が、情報収集・統計処理部201によって収集できないときに、異常と検出する方法でもよい。
このように、異常検出及び原因解析の方法は、情報収集・統計処理部201から取得した情報と、相関情報記憶部203に記録されている相関情報とのいずれか一方を利用する方法、及びこれらの両方を利用する方法が採用できる。本発明では、検出・処理生成部205における異常検出・原因解析方法は、情報収集・統計処理部201から取得した情報及び相関情報記憶部203に記録されている相関情報の少なくとも一つを利用して、制御対象システム101の異常を検出する方法及び異常の原因を解析する方法のあらゆるものを含む。
検出・処理生成部205では、前に述べた方法による異常検出及び異常原因の解析の結果に基づいて、検出された異常から発生する障害の回避及び回復をするための予防・復旧処理の候補を生成する。処理の候補の生成方法は、異常の原因に対応した処理の候補のルールを予め与えておき、これに基づいて処理の候補を生成する方法がある。また、過去に発生した異常に対して実行された処理を相関情報記憶部203に履歴として記録しておき、同様の異常に対して実行された処理の履歴に基づいて処理の候補を生成する方法もある。
さらに、その方法で効果のあった処理のみを履歴として記録しておき、それを処理の候補とする方法もある。また、相関情報記憶部203に記録されている実行された処理の中で、異常原因となっているモニタ値や統計値等と相関関係のある処理を、相関情報を用いて検索する方法もある。
検出・処理生成部205では、予防・復旧処理を一つに決定する必要はなく、一つ又は複数の候補を生成してもよい。本発明では、検出・処理生成部205における予防・復旧処理候補生成方法は、情報収集・統計処理部201から取得した情報及び相関情報記憶部203に記録されている相関情報のいずれか一方を利用して制御対象システム101の異常を検出又は異常の原因を解析した結果に基づいて、検出された異常から発生する障害の回避及び回復をするための予防・復旧処理の候補を生成するあらゆる方法を含む。
また、検出・処理生成部205では、制御対象システム101に現在発生している異常の他に、制御対象システム101に将来発生するであろう異常の予兆を検出することもできる。例えば、モニタ値と正常値(回帰線)とのズレが大きければ異常と判定するが、モニタ値と正常値(回帰線)とのズレがまだ小さいが、だんだんと大きくなっている場合に異常の予兆と判定することができる。
次に、予防・復旧処理効果・影響評価部(以下、評価部と略す)206について説明する。
評価部206は、異常検出時に、検出・処理生成部205から、原因解析結果と予防・復旧処理の候補を受け付け、情報収集・統計処理部201によって取得される制御対象システム101の状態を示す情報と、相関情報抽出部204を介して相関情報記憶部203に記憶された相関情報とを利用して、予防・復旧処理の候補の実行によって制御対象システム101に与える効果及び影響を評価する。評価の方法の例としては、以下の方法がある。
まず、検出・処理生成部205から、異常原因となっているモニタ値や統計値と、その値の正常値と現在の異常値とを取得する。さらに、検出・処理生成部205から、異常を回避・回復する一つもしくは複数の処理の候補を取得する。次に、相関情報抽出部204を介して相関情報記憶部203から得られる相関情報から、処理の候補のモニタ値、統計値及びイベント等との相関情報を取得する。
そして、取得した相関情報を用いて情報収集・統計処理部201から得られる制御対象システム101の現在の状態を示す情報を更新する。これによって、処理の候補を実行した場合の制御対象システム101の実行後の状態を算出し、異常原因となっているモニタ値や統計値が、異常値から正常値にどの程度変化するかを算出できる。この算出結果がより正常値に近づく場合に、予防・復旧処理の効果が高いと評価する。
一方、同様の方法で、処理の候補を実行した後の、異常原因となっていないモニタ値や統計値を算出する。この算出された値が相関情報に対して異常値になっていないかを影響として評価する。ここで、正常値からの乖離が大きくなる場合に、処理の影響が大きいと評価する。
評価部206における効果と影響の評価方法は前に述べた方法に限らない。本発明では、情報収集・統計処理部201から取得した情報、及び相関情報記憶部203に記録されている相関情報の少なくとも一つを利用して、検出・処理生成部205で生成した予防・復旧処理候補が制御対象システム101の状態を異常から正常へ変化させる程度の評価(効果の評価)、及び正常から異常へ変化させる程度を評価(影響の評価)の少なくとも一つを行うあらゆる方法を含む。
次に予防・復旧処理命令部(以下、命令部と略す)208について説明する。
命令部208は、評価部206から予防・復旧処理の候補、及び、その処理の効果及び影響に関する情報を取得して、処理の実行の要否、実行順序、実行時刻等を決定する。決定の方法の一例として、一定以上の効果と、一定以下の影響が予想される処理を実行候補とし、さらにその中でより効果の高い処理から実行するように順序を定める方法がある。
命令部208は、実行候補とされた処理を実行順序や実行時刻に従って制御対象システム101に対して命令を発行してもよい。また、命令部208は、実行候補の処理と実行順序や実行時刻に関する情報を制御対象システム101に対して送信してもよい。
評価・命令制御部207は、評価部206及び命令部208の動作を制御する。具体的には、評価部206の動作の制御とは、評価部における効果の評価方法、影響の評価方法及び評価の実施周期等の制御がある。
効果の評価方法とは、例えば、効果の有無を判定する閾値の設定、異常原因となっているモニタ値や統計値の現状値Xと処理候補の実行後の値Y、及び正常値Zから効果量を定量化する関数f(X,Y,Z)の設定等がある。関数f(X,Y,Z)の一例としては、異常度が正常値からの乖離量の2乗に比例するとして、処理候補実行前後の異常度の比を効果とする場合、f(X,Y,Z)=(X−Z)×(X−Z)/{(Y−Z)×(Y−Z)}等が挙げられる。この例では、f(X,Y,Z)の値が大きいほど効果が高いと判定される。
このような効果及び影響の評価方法は、制御対象システム101で実行されている処理や、対象とするモニタ値、統計値及びイベント等によって判定の基準が変わり、さらに時間的にも評価基準が変化することがある。よって、評価・命令制御部207には、これらを設定するためのインタフェースが含まれる。
このインタフェースは、制御対象システム101の稼動前及び稼動中に効果及び影響の判定に関わる設定をする入力部と、設定できる項目を示す表示部と、設定内容を評価部206に伝える設定部とを備える。入力部への入力方法としては、コマンドラインインタフェースによる入力、グラフィカルインタフェースによる入力、ファイルによる入力及びボリュームやスイッチ等の装置による入力等が含まれる。
命令部208の動作の制御としては、命令部208において、評価部206から取得した予防・復旧処理の候補と、その処理の効果及び影響に関する情報によって、処理の実行の要否の判定方法や、処理の実行順序の決定方法の制御がある。実行の要否の判定方法の一例として、最低限必要とされる効果の閾値の設定、最大限許容される影響の閾値の設定及び判定をする関数の設定がある。また、実行順序の決定方法の一例として、処理の候補の並び替えの方法(具体的には、効果の高い処理を優先するか、影響の少ない処理を優先するかの選択)等がある。
命令部208の動作の制御においても、評価部206の動作の制御と同様の設定をするためのインタフェースが含まれる。このインタフェースの構成も評価部206の設定をするインタフェースと同様である。
次に、第1の実施の形態の障害予防・復旧制御部106の動作について、図3のフローチャートを参照して説明する。
最初に、情報収集・統計処理部201は、制御対象システム101の状態に関する情報を収集する(ステップ302)。
次に、相関情報更新部202は、情報収集・統計処理部201によって収集された情報を用いて、相関情報記憶部203に記憶された相関情報を更新する(ステップ303)。なお、初期状態においては、ステップ303の処理は、相関情報の追加である。
次に、検出・処理生成部205は、現在のシステム状態及び相関情報から異常の有無を検出する(ステップ304)。異常の有無の検出方法の一例は前に述べた通りである。ステップ304において異常が検出されなければ、ステップ302に戻る。
一方、ステップ304において異常が検出されれば、相関情報を用いて異常原因を調査し、障害予防・復旧処理候補を生成する(ステップ305)。このステップ305の処理の一例は前に述べた通りである。
次に、予防・復旧処理効果・影響評価部206は、相関情報を用いて、処理の効果及び影響を評価する(ステップ306)。処理の効果及び影響は、ステップ307において評価・命令制御部207に入力された条件に従って評価される。
そして、命令部208は、処理の効果の有無を判定する(ステップ308)。効果は、ステップ309において評価・命令制御部207に入力された条件に従って判定される。
処理の効果が期待できなければ、ステップ302に戻る。一方、処理の効果が期待できれば、命令部208が制御対象システム101に対して処理を命令する(ステップ310)。命令の実行要否及び命令の実行順序等の命令制御方法は、ステップ311において評価・命令制御部207に入力された方法に従う。命令の制御方法は、例えば、システムの状態による処理の実行の制御、影響が大きくても直ぐに実行する、所定の時間になったら処理を実行する、等である。
ステップ310において処理が命令されると、ステップ302に戻る。
なお、ステップ303の相関情報の更新は、ステップ304の後、又はステップ302に戻る前の任意の時点で実行してもよい。また、ステップ307、ステップ309及びステップ311の各入力処理は、予め定められた値(方法)を用いれば、このステップがなくてもよい。
次に、相関情報記憶部203に記録される相関情報の記録方法について、図4を参照して説明する。
前に述べたように、相関情報記憶部203に記録される相関情報の記録方法としては、相関表による方法と確率モデルによる方法がある。図4では相関表409を用いた方法について示す。なお、相関表は、確率モデルより作成が容易で、かつ、確率モデルより学習効果を容易に把握することができる。
相関表409には、モニタ値401、統計値402、イベント403及び実行された処理(以下、処理と略す)404が記録される。以下では、これらを総称して相関情報の項目と呼ぶ。
図4に示す例では、相関表409は縦軸と横軸の2軸で構成され、相関情報の項目の総当り表の形式となっている。各相関情報の項目は、一つ又は複数の要素を含む。例えば、イベント403はe1〜eYのY個の項目を含む。図4に示す例では、相関情報の項目の要素の総数は(W+X+Y+Z)である。相関表409は、縦横それぞれ(W+X+Y+Z)のサイズの表である。
相関表409の領域A(405)は、モニタ値401と統計値402と間の相関関係に関する情報が記録される領域である。領域A(405)では、主に、連続的に出力される値の間の相関度及び比例関係等が記録される。例えば、第1CPUの使用率m1及び第2CPUの使用率m2の二つのモニタ値に関して、m1=m2の関係等が記録される。
領域A(405)に記録された情報を用いることによって、モニタ値401間、統計値402間及びモニタ値401と統計値402との間が通常と異なる場合を検出することができる。なお、領域A(405)では縦軸と横軸は対称であるため、例えば、m1行のm2列と、m2行のm1列とは同じ値が記録される。よって領域A(405)の三角形の左下半分又は右上半分の領域はなくてもよい。領域A(405)へデータを記録する処理の詳細については、図5〜図7を参照して説明する。
相関表409の領域B(406)は、モニタ値401及び統計値402の、イベント403及び処理404に対する相関関係に関する情報が記録される領域である。領域B(406)では、主に、イベント403が発生した時又は処理404が実行された時のモニタ値401及び統計値402と、それ以外の時のモニタ値401及び統計値402の相違が記録される。領域B(406)に記録された情報を用いることによって、モニタ値401及び統計値402から、発生しているイベント403及び実行されている処理404を求めることができる。領域B(406)へデータを記録する処理の詳細については、図8及び図9を参照して説明する。
相関表409の領域C(407)は、イベント403及び処理404の、モニタ値401及び統計値402に対する相関関係に関する情報が記録される領域である。領域C(407)では、主に、イベント403が発生する前後又は処理404が実行される前後のモニタ値401及び統計値402の相違が記録される。領域C(407)に記録された情報を用いることによって、イベント403の発生や処理404の実行により、その後モニタ値401及び統計値402にどのような効果及び影響が現れるかを求めることができる。領域C(407)へデータを記録する処理の詳細については、図10及び図11を参照して説明する。
なお、領域B(406)と領域C(407)は、共に、モニタ値401及び統計値402と、イベント403及び処理404との間の相関関係を記録する領域であるが、前に述べたように記録される情報が異なる。また、利用方法についても、領域B(406)が、主に、モニタ値401又は統計値402から発生しているイベント403及び実行されている処理404を求めるのに利用されるのに対して、領域C(407)は、イベント403の発生又は処理404の実行によるモニタ値401及び統計値402への影響を求めるのに利用される違いがあるので、両方の情報が記録される必要がある。
相関表409の領域D(408)は、イベント403と処理404との間の相関関係に関する情報が記録される領域である。領域D(408)では、主に、イベント403の発生又は処理404の実行と同時又は引き続いて発生するイベント403及び実行される処理404を記録する。領域D(408)に記録された情報を用いることによって、イベント403及び処理404の連鎖関係を求めることができる。例えば、処理Aを実行するとイベントBが発生するような連鎖関係が分かる。領域D(408)へデータを記録する処理の詳細については、図12及び図13を参照して説明する。
図4で示した、相関表409の構成は一例に過ぎない。例えば、領域A〜D(405〜408)をそれぞれ別の相関表としてもよい。また、モニタ値401、統計値402、イベント403及び処理404の一部を含まない構成の相関表でもよい。さらに、個々の領域の記録の方法についても、要素間の相関を表すあらゆる形式の情報を記録することができる。以下、相関の記録方法について詳細に述べるが、これは相関を表す情報の一例に過ぎない。
相関表409の領域A(405)に記録される相関関係の一例を図5〜図7を参照して説明する。
図5は、モニタ値ma又は統計値saをx軸501にとり、別のモニタ値mb又は統計値sbをy軸502にとった場合の、相関関係の例を示した図である。
図5中の●は、x軸とy軸の値の間に正の相関503がある状態で、○は負の相関504がある状態を示している。
例えば、CPU使用率は、アプリケーションの使用ユーザ数に比例して増加すると考えられ、正の相関503の一例である。一方、メモリの残容量は、アプリケーションの使用ユーザ数に比例して減少すると考えられ負の相関504の一例である。また、ディスク読み出しのリトライ回数はアプリケーションを使用しているユーザ数とは無関係と考えられ、この場合は相関関係は正や負の相関とはならない。
相関係数505はこのような相関関係を定量化する一つの指標である。相関係数rは、N個のx,yの組(xi,yi)(i=1、2、・・・、N)に対して、図5に示す式505で定義される値である。相関係数rは、正の相関503では1に近い1以下の正の値をとり、負の相関504では−1に近い−1以上の負の値をとる。一方、相関が無い場合には0に近い値をとる。つまり、相関係数rは、二つの値の相関の正負と強さを示す。
相関係数rを、相関表409の領域A(405)に記録することによって、モニタ値401と統計値402との間の相関関係を表わすことができる。相関係数rでは、相関の強さだけでなく、正の相関か負の相関かも知ることができるが、正の相関がy=xなのか、y=2xなのかは、相関係数rだけでは分からない。そこで相関がある場合には、その相関関係を示す方程式を求める。この方程式で表される線は回帰線と呼ばれる。回帰線の求め方については、「統計入門」中村隆英他著( 非特許文献1)に詳しく開示されている。
図6は、モニタ値と統計値との別な相関関係の例を示した図である。
図5では、二つのモニタ値と統計値との間に線形な相関がある場合について述べたが、例えば、アプリケーション操作の応答時間(レスポンスタイム)mbとアプリケーションの使用ユーザ数maの関係では、通常、線形な相関ではなく、例えば、図6に示すような2次曲線603のような相関関係となる。このような相関関係の場合には、図5に示した相関係数r(505)は相関がない場合と同じ0に近い値をとる。このような場合には、x軸方向をxの2乗とする統計処理によって、線形相関605を求めることができる。情報収集・統計処理部201は、このような統計処理も行う。前述した相関表409の領域A(405)に記録する方法の一例は、統計値scをxの2乗(maの2乗)としてモニタ値mbと統計値scの相関関係として記録する方法である。なお、線形な相関関係の求め方の一例は、サポートベクターマシンを利用する方法がある。この方法については「サポートベクターマシン入門」、Nello Cristianini他著(非特許文献4)に詳しく開示されている。
図5及び図6では、モニタ値401と統計値402との間の相関関係の記録方法の一例を説明した。次に、図5及び図6を参照して前述した相関関係の記録方法を用いて相関表409の領域A(405)に記録されている相関情報を更新する処理について、図7のフローチャートを参照して説明する。
最初に、時刻ta+xのモニタ値及び統計値を情報取得・統計処理部201から取得する(ステップ702)。次に、図6に示した統計処理を、必要に応じて行う(ステップ703)。そして、取得した時刻ta+xのモニタ値及び統計値を保存し(ステップ704)、時刻ta+1〜ta+xのモニタ値及び統計値を読み出す(ステップ705)。
これらの読み出した値から、図5及び図6で示したグラフが生成できる。ここでは、相関表409の縦軸の要素を更新対象A、横軸の要素を調査対象Bと呼ぶ。最初に更新対象Aを最初のモニタ値m1又は統計値s1とする(ステップ706)。次に、調査対象BをAの次のモニタ値m2又は統計値s2とする(ステップ707)。
そして、更新対象Aと調査対象Bとの相関係数及び回帰線等の相関情報を図5及び図6に示した方法によって計算する(ステップ708)。ステップ708で計算された結果は相関表409の縦軸A及び横軸Bに登録される(ステップ709)。
その後、次の調査対象があるか否かを判定する(ステップ710)。次の調査対象があれば、次の調査対象を調査対象Bに設定し、ステップ708に戻る。一方、次の調査対象がなければ、ステップ712に進む。
ステップ712では、次の更新対象があるか否かを判定する。次の更新対象があれば、次の更新対象を更新対象Aに設定し、ステップ707に戻る。一方、次の更新対象がなければ、最も古い時刻ta+1のモニタ値及び統計値を削除する(ステップ714)。そして、時刻が次の時刻ta+x+1になったら、aに1を加算して、ステップ702に戻る。
次に、相関表409の領域B(406)に記録される相関関係の一例を図8及び図9を参照して説明する。
図8に示す遷移表801は、時刻ta+1〜ta+xの間のイベントの発生及び実行される処理に対する、各時刻におけるモニタ値及び統計値の変化を示した表である。
この遷移表801から、横軸802にモニタ値m1をとり、イベントeAの発生時とそれ以外の時とに分けて、モニタ値m1の分布確率803を縦軸に示した分布図806を作成する。この分布図806から、イベントeAとモニタ値m1との相関関係を求める。
横軸802上で、○はイベントeA発生時のモニタ値m1を示す。グラフ805は、○の分布確率803をガウス分布によって示したものである。また、このガウス分布の平均値はao、分散はσoである。
同様に、●はイベントeAが発生していない時のモニタ値m1を示す。グラフ804は、●の分布確率803をガウス分布によって示したものである。また、このガウス分布の平均値はax、分散はσxである。
分布図806において、平均値aoとaxとの差が大きく、分散σoとσxとの差が小さいモニタ値及び統計値は、イベントの発生及び実行される処理と相関が強い。
次に、図8で説明した相関関係の方法によって相関表409の領域B(406)に記録されている相関情報を更新する処理の一例について、図9のフローチャートを参照して説明する。
最初に、時刻ta+xのモニタ値、時刻ta+xの統計値、時刻ta+xに発生したイベント及び時刻ta+xに実行された処理を情報取得・統計処理部201から取得する(ステップ902)。次に、図8に示した統計処理を、必要に応じて行う(ステップ903)。そして、時刻ta+xのモニタ値及び時刻ta+xに発生したイベント等を保存し(ステップ904)、時刻ta+1〜ta+xのモニタ値及び時刻ta+1〜ta+xに発生したイベント等を読み出す(ステップ905)。
これらの読み出した値から、図8で示したグラフが生成できる。ここでは、相関表409の横軸の要素を対象A、縦軸の要素を更新対象Bと呼ぶ。最初に対象Aを最初のイベントe1又は処理p1とする(ステップ906)。次に、更新対象Bを最初のモニタ値m1又は統計値s1とする(ステップ907)。次に、対象Aとなるイベントの発生時と未発生時又は対象Aとなる処理の実行時と未実行時の更新対象Bの分布を求め(ステップ908)、それぞれの平均値及び分散を計算して、計算結果を相関表409の縦軸B及び横軸Aに登録する(ステップ909)。
その後、次の更新対象があるか否かを判定する(ステップ910)。次の更新対象があれば、次の更新対象を更新対象Bに設定し、ステップ908に戻る。一方、次の更新対象がなければ、ステップ912に進む。
ステップ912では、次の対象イベント又は処理があるか判定する(ステップ912)次の対象イベント又は処理があれば、次の対象イベント又は処理を対象Aに設定し、ステップ907に戻る。一方、次の更新対象がなければ、最も古い時刻ta+1のモニタ値及びイベントを削除する(ステップ914)。そして、時刻が次の時刻ta+x+1になったらaに1を加算して、ステップ902に戻る。
次に、相関表409の領域C(407)に記録される相関関係の一例を図10及び図11を参照して説明する。
図10に示す遷移表1001は、時刻ta+1〜ta+xの間のイベント発生又は処理実行の有無と、各時刻におけるモニタ値及び統計値を示した表である。
この遷移表1001から、横軸1002にモニタ値m1をとり、イベントeAの発生前と発生後とに分けて、モニタ値m1の分布確率1003を縦軸に示した分布図1006を作成する。この分布図1006から、イベントeAとモニタ値m1の相関関係を求める。
横軸1002上で、○はイベントeA発生前のモニタ値m1を示す。グラフ1005は、○の分布確率1003をガウス分布によって示しものである。また、このガウス分布の平均値をab、分散はσbである。
同様に、●はイベントeAの発生後のモニタ値m1を示す。グラフ1004は、●の分布確率1003をガウス分布によって示したものである。また、このガウス分布の平均aa、分散σaである。
分布図1006において、平均値abとaaとの差が大きく、分散σbとσaとの差が小さいモニタ値及び統計値は、イベントの発生及び処理の実行によって受ける変化が大きい。
次に、図10で説明した相関関係の方法によって相関表409の領域C(407)に記録されている相関情報を更新する処理の一例について、図11のフローチャートを参照して説明する。
最初に、時刻ta+xのモニタ値、時刻ta+xの統計値、時刻ta+xに発生したイベント及時刻ta+xに実行された処理を情報取得・統計処理部201から取得する(ステップ1102)。次に、図10に示した統計処理を、必要に応じて行う(ステップ1103)。そして、時刻ta+xのモニタ値及び時刻ta+xに発生したイベント等を保存し(ステップ1104)、時刻ta+1〜ta+xのモニタ値及び時刻ta+1〜ta+xに発生したイベント等を読み出す(ステップ1105)。
これらの読み出した値から、図10で示したグラフが生成できる。ここでは、相関表409の縦軸の要素を対象A、横軸の要素を更新対象Bと呼ぶ。最初に対象Aを最初のイベントe1又は処理p1とする(ステップ1106)。次に、更新対象Bを最初のモニタ値m1又は統計値s1とする(ステップ1107)。次に、対象Aとなるイベントの発生前と発生後又は対象Aとなる処理の実行前と実行後の更新対象Bの分布を求め(ステップ1108)、それぞれの平均値及び分散を計算して、計算結果を相関表409の縦軸A及び横軸Bに登録する(ステップ1109)。
その後、次の更新対象があるか否かを判定する(ステップ1110)。次の更新対象があれば、次の更新対象を更新対象Bに設定し、ステップ1108に戻る。一方、次の更新対象がなければ、ステップ1112に進む。
ステップ1112では、次の対象イベント又は処理があるか判定する(ステップ1112)。次の対象イベント又は処理があれば、次の対象イベント又は処理を対象Aに設定し、ステップ1107に戻る。一方、次の更新対象がなければ、最も古い時刻ta+1のモニタ値及びイベントを削除する(ステップ1114)。そして、時刻が次の時刻ta+x+1になったらaに1を加算して、ステップ1102に戻る。
次に、相関表409の領域D(408)に記録される相関関係の一例を図12及び図13を参照して説明する。
図12に示す遷移表1201は、時刻ta+1〜ta+xの相関検出期間に発生したイベント又は実行された処理を示した表である。この遷移表1201では,○印がイベントの発生又は処理の実行を示す。
この遷移表1201から、イベントと処理との相関関係を求め、相関表409の領域D(408)に記録する。領域D(408)では、例えば、縦軸を先に起こったイベント又は先に実行された処理1203とし、横軸を後で起こったイベント又は後で実行された処理1202とする。
そして、遷移表1201の相関検出期間における、イベントの発生と処理の実行順序から領域D(408)に相関情報を記録する。例えば、イベントe2に注目すると、時刻ta+2でイベントe2は発生しており、相関検出期間中のそれ以後の時刻に発生しれているイベント又は実行されている処理は、p2が1回、e2が2回である。これを領域D(408)のe2の行に記録することで、イベントe2に引き続いて再度e2が発生する可能性が高いことがわかる。
次に、図12で説明した相関関係の方法によって相関表409の領域D(408)に記録されている相関情報を更新する処理の一例について、図13のフローチャートを参照して説明する。
最初に、時刻ta+xに発生したイベント及び時刻ta+xに実行された処理を情報取得・統計処理部201から取得する(ステップ1302)。次に、図12に示した統計処理を、必要に応じて行う(ステップ1303)。そして、時刻ta+xに発生したイベント及び時刻ta+xに実行された処理を保存し(ステップ1304)、時刻ta+1〜ta+xに発生したイベント及び時刻ta+1〜ta+xに実行された処理を読み出す(ステップ1305)。
これらの読み出した値から、図12で示した相関表が生成できる。ここでは、相関表409の縦軸の要素を更新対象Aと呼ぶ。最初に時刻ta+1に更新対象Aが発生しているか又は実行されたかを判定する(ステップ1307)。更新対象Aが発生も実行もされていなければ、時刻がta+xであるか否かを判定する(ステップ1308)。その結果、時刻がta+xでなければ、時刻を1単位時間進め(ステップ1309)、ステップ1307に戻る。一方、時刻がta+xであれば、ステップ1312に進む。
一方、ステップ1307にて、更新対象Aが発生又は実行されていると判定されれば、その時刻以降に発生したイベント、実行された処理について、それぞれ何回発生及び実行したかを計数し(ステップ1310)、計数結果を相関情報として保存する(ステップ1311)。
次に、別の更新対象となるイベント又は処理の有無を判定する(ステップ1312)。別の更新対象があれば、次の更新対象を更新対象Aに設定し、時刻を初期状態に戻す(ステップ1313)。別の更新対象がなければ、最も古い時刻ta+1のイベント又は処理を削除する(ステップ1314)。そして、時刻が次の時刻ta+x+1になったらaに1を加算して、ステップ1302に戻る。
ここまでは、相関情報記憶部203へ登録される相関情報の作成方法の一例を説明してきたが、次に検出・処理生成部205の動作について、図14のフローチャートを参照して説明する。
検出・処理生成部205は、情報収集・統計処理部201から現在のモニタ値及び統計値等の情報を読み出し、相関情報抽出部204を介して相関情報記憶部203から相関情報を読み出す(ステップ1402)。この処理では、領域A(405)に記録された相関情報が使用される。
次に、現在のモニタ値及び統計値と相関情報とを比較する(ステップ1403)。ステップ1403では、例えば、相関情報において、モニタ値m1と統計値s1の相関係数が1で、s1=m1の回帰線の関係がある場合に、現在のモニタ値m1と統計値s1の関係がs1=m1になっているかを比較する。現在のモニタ値及び統計値と相関情報との間に矛盾がなければ、異常がなかったものとして検出・処理生成部205の動作は終了する。
一方、現在のモニタ値及び統計値と相関情報との間に矛盾があれば、引き続いて相関情報の領域B(406)を読み出す(ステップ1405)。そして、矛盾のあったモニタ値及び統計値と相関のあるイベント及び処理を検索する(ステップ1406)。
領域B(406)には、イベントの発生時と未発生時及び処理の実行時と非実行時のモニタ値及び統計値が取る値の平均値及び分散等が記録されている。よって、矛盾のあったモニタ値及び統計値の現在の値がイベントの発生や処理の実行に該当するものを検索できる。その後、検索されたイベント及び処理が、正常なイベント及び処理かを判定する(ステップ1407)。ステップ1407では、例えば、イベント及び処理に付属させてある属性を見て判断する。
検索されたイベント及び処理が正常なイベント及び処理であれば、異常がなかったものとして検出・処理生成部205の動作は終了する。一方、検索されたイベント及び処理が正常でないイベント及び処理と相関関係があった場合には、その障害や異常に対する予防・復旧処理候補を生成する(ステップ1408)。このステップ1408の処理の詳細は前に述べた通りである。
なお、ステップ1406において、相関のあるイベント・処理が見つからなかった場合には、類似の事象がこれまでに生じていなかった未知の障害及び異常の可能性がある。その場合には、障害又は異常があったものとして、ステップ1408にて予防・復旧処理の候補を生成する。なお、この場合には、障害及び異常がなかったものとして扱うこともできる。
次に、予防・復旧処理効果・影響評価部(評価部)206の動作について、図15のフローチャートを参照して説明する。
評価部206は、検出・処理生成部205から、異常検出時に異常のあったモニタ値及び統計値に関する情報と、予防・復旧処理の候補を取得する。さらに、情報収集・統計処理部201から現在のモニタ値及び統計値等の情報を取得する。そして、相関情報抽出部204を介して相関情報記憶部203から相関情報を読み出す(ステップ1502)。この処理では、主に領域C(407)及び領域D(408)に記録されている相関情報が使用される。
次に、予防・復旧処理の候補の実行後に、異常のあったモニタ値及び統計値にどのような変化を与えるかに関する相関情報を、領域C(407)から取得する(ステップ1503)。そして、取得したモニタ値及び統計値の変化を、現在のモニタ値及び統計値に加えることによって、異常状態が解消されるか否かを評価する(ステップ1504)。すなわち、予防・復旧処理の候補の実行の効果を評価する。
評価の結果、予防・復旧処理の候補の効果が期待できなければ、ステップ1508に進み、別の処理の候補を検討する。一方、予防・復旧処理の候補の効果が期待できれば、その効果を記録する(ステップ1505)。そして、その処理によって他のモニタ値及び統計値に与えられる変化を領域C(407)から求める。そして、求められたモニタ値及び統計値の変化を、現在のモニタ値及び統計値に加えることによって、他の異常状態が発生しないかを評価する(ステップ1506)。
他の異常状態が発生し、予防・復旧処理の候補の実行による影響があれば、その影響を記録する(ステップ1507)。ステップ1503からステップ1507の処理を一つのループとして、別の予防・復旧処理候補があれば(ステップ1508)、ステップ1503に戻って同様の処理をする。
一方、全ての処理の候補に対する評価が終了したら、予防・復旧処理、ステップ1505で記録された効果及びステップ1507で記録された影響に関する情報を、予防・復旧処理命令部208へ送る(ステップ1509)。その後、処理を終了する。
評価・命令制御部207及び予防・復旧処理命令部208の動作は、図2及び図3で説明したとおりである。
(第2実施形態)
次に、本発明の第2の実施の形態を図16に示す。第2の実施の形態は、前述した第1の実施の形態と以下の点が異なる。
図2に示すように第1の実施の形態では、検出された異常に対する予防及び復旧のために生成された処理の候補について効果及び影響を評価した。しかし、第2の実施の形態では、外部から入力された処理命令について効果及び影響を評価する。このため、第2の実施の形態の障害予防・復旧制御部106は、処理命令入力部1601を備える。
第2の実施の形態の障害予防・復旧制御部106は、情報収集・統計処理部201、相関情報更新部202、相関情報記憶部203、相関情報抽出部204、処理命令入力部1601、処理効果・影響評価部1602、評価・命令制御部1603及び処理命令部1604を備える。これらの各部は、図には示されていない記憶部に記憶されたプログラムをプロセッサが実行することによって実現される。第2の実施の形態の障害予防・復旧制御部106の構成のうち、第1の実施の形態と同じ動作をする構成には同じ符号を付し、その説明は省略する。
処理命令入力部1601は、外部から処理が指定されるインタフェースである。処理命令入力部1601に入力された処理命令は、異常の発生時に限らず、通常時のシステム構成変更、ソフトウェアの更新、計画保守及び臨時保守等も含まれる。
処理効果・影響評価部1602は、第1の実施の形態の評価部206と同様に、処理命令入力部1601から入力された処理命令に対する効果及び影響を評価する。よって、処理効果・影響評価部1602では、通常時に実行される処理による影響で異常状態が発生しないかを評価することもできる。
評価・命令制御部1603は、第1の実施の形態の評価・命令制御部207と同様に、処理効果・影響評価部1602及び処理命令部1604の動作を制御する。
処理命令部1604は、第1の実施の形態の予防・復旧処理命令部208と同様に、処理効果・影響評価部1602から入力された処理命令、及び、その処理の効果及び影響に関する情報を取得して、処理の実行の要否、実行順序及び実行時刻等を決定する。
次に、第2の実施の形態の障害予防・復旧制御部106の動作について、図17のフローチャートを参照して説明する。
最初に、情報収集・統計処理部201は、制御対象システム101の状態に関する情報を収集する(ステップ1702)。
次に、相関情報更新部202は、情報収集・統計処理部201によって収集された情報を用いて、相関情報記憶部203に記憶された相関情報を更新する(ステップ1703)。なお、初期状態において、ステップ1703の処理は、相関情報の追加である。
次に、処理命令入力部1601が、外部からの処理命令の入力を受け付ける(ステップ1704)。
次に、処理効果・影響評価部1602は、相関情報を用いて、処理の効果及び影響を評価する(ステップ1705)。処理の効果及び影響は、ステップ1706において評価・命令制御部1603に入力された条件に従って評価される。
そして、処理命令部1604は、処理の効果の有無を判定する(ステップ1707)。効果は、ステップ1708において評価・命令制御部1603に入力された条件に従って判定される。
処理の効果が期待できなければ、処理は実行されず、ステップ1702に戻る。一方、処理の効果が期待できれば、他への影響を判定する(ステップ1709)。影響は、ステップ1710において評価・命令制御部1603に入力された条件に従って判定される。
判定の結果、影響が大きい場合には処理は実行されず、ステップ1702に戻る。一方、影響の大きさが問題ないレベルであると判定されれば、処理命令部1604が制御対象システム101に対して処理を命令する(ステップ1711)。命令の実行要否及び命令の実行順序等の命令制御方法は、ステップ1712において評価・命令制御部1603に入力された方法に従う。
ステップ1711において処理が命令されると、ステップ1702に戻る。
なお、ステップ1703の相関情報の更新は、ステップ1704の後、又はステップ1702に戻る前の任意の時点で実行してもよい。また、ステップ1706、ステップ1708、ステップ1710及びステップ1712の各入力処理は、予め定められた値(方法)を用いれば、これらのステップがなくてもよい。
さらに、処理が実行されなかった場合には、処理命令入力部1601に対して通知をする。処理命令入力部1601は、通知を受けると、処理が実行されなかったことを表示又は記録する。
以上説明したように、第2の実施の形態では、処理命令入力部1601から入力された処理命令に対する効果及び影響を評価するので、通常時に実行される処理によって異常状態が発生しないかも評価することができ、管理者に異常事態の発生を報知することができる。よって、管理者による操作ミスを低減することができる。
(第3実施形態)
次に、本発明の第3の実施の形態を図18に示す。第3の実施の形態は、前述した第1の実施の形態及び第2の実施の形態と以下の点で異なる。
図2及び図16に示すように第1及び第2の実施の形態では、処理の候補に対して効果及び影響を評価した結果、処理が実行されない場合があった。しかし、第3の実施の形態では、処理効果・影響評価部1803において、処理の効果が十分に期待できない場合や、他への影響が大きい場合に処理の候補を見直す。このため、第3の実施の形態の障害予防・復旧制御部106は、フィードバックループ1804及び1805を備える。
第3の実施の形態の障害予防・復旧制御部106は、情報収集・統計処理部201、相関情報更新部202、相関情報記憶部203、相関情報抽出部204、異常検出・原因解析・予防・復旧処理候補生成部1801、処理命令入力部1802、処理効果・影響評価部1803、評価・命令制御部1806及び処理命令部1807を備える。これらの各部は、図には示されていない記憶部に記憶されたプログラムをプロセッサが実行することによって実現される。第3の実施の形態の障害予防・復旧制御部106の構成のうち、第1の実施の形態と同じ動作をする構成には同じ符号を付し、その説明は省略する。
異常検出・原因解析・予防・復旧処理候補生成部(以下、検出・処理生成部と略す)1801は、情報収集・統計処理部201によって収集・統計処理された情報と、相関情報抽出部204によって相関情報記憶部203から読み出された相関情報を利用して、制御対象システム101の異常状態を検出する。また、検出・処理生成部1801は、処理効果・影響評価部1803において、処理の効果が十分に期待できない場合や、他への影響が大きい場合に、フィードバックループ1804による通知に基づいて、処理の候補を見直す。
なお、第3の実施の形態では、前述した第2の実施の形態のように、検出・処理生成部1801は設けられていなくてもよい。
処理命令入力部1802は、外部から処理が指定されるインタフェースである。処理命令入力部1802に入力された処理命令は、異常の発生時に限らず、通常時のシステム構成変更、ソフトウェアの更新、計画保守及び臨時保守等も含まれる。また、処理命令入力部1802は、処理効果・影響評価部1803において、処理の効果が十分に期待できない場合、及び他への影響が大きい場合に、フィードバックループ1805による通知に基づいて、処理命令の再入力を受け付ける。この処理命令入力部1802によって受け付けられた処理によって、別の処理を実行することができる。
処理効果・影響評価部1803は、第1の実施の形態の評価部206と同様に、異常検出時に、検出・処理生成部1801から、原因解析結果と予防・復旧処理の候補を受け付る。そして、情報収集・統計処理部201によって取得される制御対象システム101の状態を示す情報と、相関情報抽出部204を介して相関情報記憶部203に記憶された相関情報とを利用して、予防・復旧処理の候補の実行によって制御対象システム101に与える効果及び影響を評価する。さらに、処理効果・影響評価部1803は、処理の効果が十分に期待できない場合や、他への影響が大きい場合に、フィードバックループ1804によって、その旨を検出・処理生成部1801に通知する。
また、処理効果・影響評価部1803は、第2の実施の形態の処理効果・影響評価部1602と同様に、処理命令入力部1802から入力された処理命令に対する効果及び影響を評価する。さらに、処理効果・影響評価部1803は、処理の効果が十分に期待できない場合や、他への影響が大きい場合に、フィードバックループ1805によって、その旨を処理命令入力部1802に通知する。
評価・命令制御部1806は、第1の実施の形態の評価・命令制御部207と同様に、処理効果・影響評価部1803及び処理命令部1807の動作を制御する。評価・命令制御部1806は、フィードバックループ1804及び1805の収束条件を制御する。例えば、フィードバック時に世代管理を行い、三世代を限度にフィードバックを可能とする等の制御をすることもできる。
処理命令部1807は、第1の実施の形態の予防・復旧処理命令部208と同様に、処理効果・影響評価部1803から入力された処理命令、及び、その処理の効果及び影響に関する情報を取得して、処理の実行の要否、実行順序及び実行時刻等を決定する。
次に、第3の実施の形態の障害予防・復旧制御部106の動作について、図19のフローチャートを参照して説明する。
最初に、情報収集・統計処理部201は、制御対象システム101の状態に関する情報を収集する(ステップ1902)。
次に、相関情報更新部202は、情報収集・統計処理部201によって収集された情報を用いて、相関情報記憶部203に記憶された相関情報を更新する(ステップ1903)。なお、初期状態において、ステップ1903の処理は、相関情報の追加である。
ステップ1903の後、第3の実施の形態の任意的構成である検出・処理生成部1801の有無によって処理が分岐する。検出・処理生成部1801が備わる場合は、ステップ1904に進み、相関情報を用いて異常を検出する。一方、検出・処理生成部1801が備わっていない場合は、ステップ1916に進み、処理命令入力部1802からの入力を待つ。
ステップ1904では、検出・処理生成部1801は、現在のシステム状態及び相関情報から異常の有無を検出する。異常の有無の検出方法の一例は前に述べた通りである。ステップ1904にて異常が検出されなければ、ステップ1902に戻る。
一方、ステップ1904にて異常が検出されれば、相関情報を用いて異常原因を調査し、障害予防・復旧処理候補を生成する(ステップ1905)。このステップ1905の処理の一例は前に述べた通りである。
次に、処理効果・影響評価部1802は、相関情報を用いて、処理の効果及び影響を評価する(ステップ1906)。処理の効果及び影響は、ステップ1907において評価・命令制御部1806に入力された条件に従って評価される。
そして、処理命令部1807は、処理の効果の有無を判定する(ステップ1908)。効果は、ステップ1909において評価・命令制御部1806に入力された条件に従って判定される。評価・命令制御部1806には、フィードバック1914及び1915の繰り返し回数の制限も入力される。
処理の効果が期待できなければ、ステップ1905に戻る(1914)。一方、処理の効果が期待できれば、他への影響を判定する(ステップ1910)。影響は、ステップ1911において評価・命令制御部1806に入力された条件に従って判定される。
判定の結果、影響が大きい場合には処理は実行されず、ステップ1905に戻る(1914)。一方、影響の大きさが問題ないレベルであると判定されれば、処理命令部1807が制御対象システム101に対して処理を命令する(ステップ1912)。命令の実行要否及び命令の実行順序等の命令制御方法は、ステップ1913において評価・命令制御部1806に入力された方法に従う。
ステップ1912において処理が命令されると、ステップ1902に戻る。
一方、処理命令入力部1802が、外部からの処理命令の入力を受け付ける(ステップ1916)。この場合もステップ1906以下、ステップ1905で生成された処理と同様の処理が行われる。なお、この場合は、ステップ1908及び1910からのフィードバックループ1915によって、ステップ1916に戻る。
フィードバックループ1914及び1915は、評価・命令制御部1806に入力された回数に従って制限される。
以上説明したように、第3の実施の形態では、処理の効果及び影響によって処理を見直すため、フィードバックループ1804及び1805を備える。これによって、別の処理を選択又は別の処理命令の入力を受け付けることによって、より適切な別の処理を実行することができる。
(第4実施形態)
次に、本発明の第4の実施の形態を図20に示す。第4の実施の形態は、前述した第3の実施の形態と以下の点で異なる。
図18に示した第3の実施の形態では、フィードバックループ1804、1805を設け、検出・処理生成部1801で処理候補の再生成、又は、処理命令入力部1802で別の処理命令の入力を受け付けることによって、別の処理を実行することが可能である。しかし、処理の再生成や処理命令の再入力によって、効果があり他への影響も少ない処理が実行できるとは限らない。そこで、効果はあるが、他への影響も生じる処理に対して、その影響を打ち消す処理を同時又は続いて実行することによって、全体として効果が大きく影響の少ない処理を実行する方法がある。このため、第4の実施の形態の障害予防・復旧制御部106は、影響低減処理候補生成部2001を備える。
第4の実施の形態の障害予防・復旧制御部106は、情報収集・統計処理部201、相関情報更新部202、相関情報記憶部203、相関情報抽出部204、異常検出・原因解析・予防・復旧処理候補生成部1801、処理命令入力部1802、影響低減処理候補生成部2001、処理効果・影響評価部2003、評価・命令制御部2004及び処理命令部2005を備える。これらの各部は、記憶部に記憶されたプログラムをプロセッサが実行することによって実現される。第4の実施の形態の障害予防・復旧制御部106の構成のうち、第3の実施の形態と同じ動作をする構成には同じ符号を付し、その説明は省略する。
影響低減処理候補生成部2001は、処理効果・影響評価部2003及び処理命令部2005によって、効果はあるが他への影響もあると判断された処理に関する情報をフィードバックループ2002を経由して取得する。そして、相関情報抽出部204を介して、相関情報記憶部203からその影響の低減に効果のある処理を検索する。
処理効果・影響評価部2003は、第3の実施の形態の処理効果・影響評価部1803と同様に、異常検出時に、検出・処理生成部1801から、原因解析結果と予防・復旧処理の候補を受け付け、実行される処理によって制御対象システム101に与える効果及び影響を評価する。
評価・命令制御部2004は、第3の実施の形態の評価・命令制御部1806と同様に、処理効果・影響評価部2003及び処理命令部2005の動作を制御する。さらに、評価・命令制御部2004は、影響低減処理候補生成部2001へのフィードバックループ2002のフィードバック回数を制御する。また、このようにして生成された影響低減処理候補について、ペアとなる処理との実行順序等の実行スケジューリングも制御する。
処理命令部2005は、第3の実施の形態の予防・復旧処理命令部1807と同様に、処理効果・影響評価部2003から入力された処理命令、及び、その処理の効果及び影響に関する情報を取得して、処理の実行の要否、実行順序及び実行時刻等を決定する。
なお、第4の実施の形態では、前述した第2の実施の形態のように、検出・処理生成部1801は設けられていなくてもよい。
次に、第4の実施の形態の障害予防・復旧制御部106の動作について、図21のフローチャートを参照して説明する。
最初に、情報収集・統計処理部201は、制御対象システム101の状態に関する情報を収集する(ステップ2102)。
次に、相関情報更新部202は、情報収集・統計処理部201によって収集された情報を用いて、相関情報記憶部203に記憶された相関情報を更新する(ステップ2103)。なお、初期状態において、ステップ2103の処理は、相関情報の追加である。
ステップ2103の後、第4の実施の形態の任意的構成である検出・処理生成部1801の有無によって処理が分岐する。検出・処理生成部1801が備わる場合は、ステップ2104に進み、相関情報を用いて異常を検出する。一方、検出・処理生成部1801が備わっていない場合は、ステップ2116に進み、処理命令入力部1802からの入力を待つ。
ステップ2104では、検出・処理生成部1801は、現在のシステム状態及び相関情報から異常の有無を検出する。異常の有無の検出方法の一例は前に述べた通りである。ステップ2104にて異常が検出されなければ、ステップ2102に戻る。
一方、ステップ2104にて異常が検出されれば、相関情報を用いて異常原因を調査し、障害予防・復旧処理候補を生成する(ステップ2105)。このステップ2105の処理の一例は前に述べた通りである。
次に、処理効果・影響評価部2003は、相関情報を用いて、処理の効果及び影響を評価する(ステップ2106)。処理の効果及び影響は、ステップ2107において評価・命令制御部2004に入力された条件に従って評価される。
そして、処理命令部2005は、処理の効果の有無を判定する(ステップ2108)。効果は、ステップ2109において評価・命令制御部2004に入力された条件に従って判定される。評価・命令制御部2004には、フィードバック2114及び2115の回数制限も入力される。
処理の効果が期待できなければ、ステップ2105に戻る(2114)。一方、処理の効果が期待できれば、他への影響を判定する(ステップ2110)。影響は、ステップ2111において評価・命令制御部2004に入力された条件に従って判定される。
判定の結果、影響が大きい場合には、ステップ2118に戻る(2117)。影響低減処理候補生成部2001は、影響を低減する処理の候補を生成する(ステップ2118)。生成された影響を低減する処理の候補は、ステップ2106以下の処理において、影響を低減する効果の有無及び他への影響の大きさが評価される。評価・命令制御部2004には、フィードバック2117の回数制限も入力される。
一方、影響の大きさが問題ないレベルであると判定されれば、処理命令部2005が制御対象システム101に対して処理を命令する(ステップ2112)。命令の実行要否及び命令の実行順序等の命令制御方法は、ステップ2113において評価・命令制御部2004に入力された方法に従う。
ステップ2112において処理が命令されると、ステップ2102に戻る。
一方、処理命令入力部1802が、外部からの処理命令の入力を受け付ける(ステップ2116)。この場合もステップ2106以下、ステップ2105で生成された処理と同様の処理が行われる。なお、この場合は、ステップ2108及び2110からのフィードバックループ2115によって、ステップ2116に戻る。
フィードバックループ2114、2115及び2117は、評価・命令制御部2004に入力された回数に従って制限される。
以上説明したように、第4の実施の形態では、処理の影響を低減する処理を生成するため、フィードバックループ2002を備える。これによって、影響を低減する別の処理を同時又は続いて実行することによって、全体として効果が大きく影響の少ない処理を実現することができる。
(第5実施形態)
次に、本発明の第5の実施の形態を図22に示す。第5の実施の形態は、前述した第1の実施の形態と以下の点で異なる。
図2に示すように第1の実施の形態では、相関情報記憶部203は、基準とした一つの時刻から一定の期間の情報に基づき生成された相関情報を記録している。しかし、一つの時刻において相関関係が明確でないときでも、時刻をずらすと相関関係が明らかになる情報もある。そこで、第5の実施の形態では、時刻をずらして相関関係を記憶するように構成する。
第5の実施の形態の障害予防・復旧制御部106は、情報収集・統計処理部2201、相関情報更新部2202、相関情報記憶部2203、相関情報制御部2204、相関情報抽出部2205、異常検出・原因解析・予防・復旧処理候補生成部2206、処理効果・影響評価部2207、評価・命令制御部2208及び処理命令部2209を備える。これらの各部は、記憶部に記憶されたプログラムをプロセッサが実行することによって実現される。
情報収集・統計処理部2201は、第1の実施の形態の情報収集・統計処理部201と同様に、イベント及び処理等の情報相互の相関関係を示す値、モニタ値及び統計値を生成する。
相関情報更新部2202は、第1の実施の形態の相関情報更新部2202と同様に、情報収集・統計処理部2201で生成された相関情報を、相関情報記憶部2203に記録する。
相関情報記憶部2203は、複数の記憶部を備え、各記憶部は時刻をずらして求められた複数の相関関係を記憶する。例えば、−10分の記載のある記憶部は、モニタ値Aと、10分古い時刻のモニタ値Bとに基づいて作成した相関情報を記録する。
すなわち、第5の実施の形態の相関関係において、ずらされた時刻は、指標Aと指標Bの相関情報作成時に、指標Aの時刻に比べて、所定時間だけ古い時刻の指標Bのデータを使用することを意味する。ここで、指標とはモニタ値、統計値、イベント及び処理等である。
相関情報制御部2204は、これらの複数の記憶部を備える相関情報記憶部2203のそれぞれの相関情報を生成する際の時刻差を設定する。相関情報制御部2204は外部インタフェースを持ち、外部インタフェースを介して、時刻差を設定する。
なお、第5の実施の形態では、相関情報更新部2202、相関情報抽出部2205、検出・処理生成部2206、評価部2207、評価・命令制御部2208、命令部2209等は、複数の記憶部を備える相関情報記憶部2203に対応するために、複数の相関情報を使った処理が可能に構成されている。
相関情報抽出部2205は、第1の実施の形態の相関情報抽出部204と同様に、相関情報記憶部2203から相関情報を読み出す。
異常検出・原因解析・予防・復旧処理候補生成部(以下、検出・処理生成部と略す)2206は、第1の実施の形態の検出・処理生成部205と同様に、情報収集・統計処理部2201によって収集・統計処理された情報と、相関情報抽出部2205によって相関情報記憶部2203から読み出された相関情報を利用して、制御対象システム101の異常状態を検出する。
処理効果・影響評価部2207は、第1の実施の形態の評価部206と同様に、異常検出時に、検出・処理生成部2206から、原因解析結果と予防・復旧処理の候補を受け付ける。そして、情報収集・統計処理部2201によって取得される制御対象システム101の状態を示す情報と、相関情報抽出部2205を介して相関情報記憶部2203に記憶された相関情報とを利用して、予防・復旧処理の候補の実行によって制御対象システム101に与える効果及び影響を評価する。
評価・命令制御部2208は、第1の実施の形態の評価・命令制御部207と同様に、処理効果・影響評価部2207及び処理命令部2209の動作を制御する。
処理命令部2209は、第1の実施の形態の予防・復旧処理命令部208と同様に、処理効果・影響評価部2207から入力された処理命令、及び、その処理の効果及び影響に関する情報を取得して、処理の実行の要否、実行順序及び実行時刻等を決定する。
次に、第5の実施の形態の障害予防・復旧制御部106の動作について、図23のフローチャートを参照して説明する。
最初に、情報収集・統計処理部2201は、制御対象システム101の状態に関する情報を収集する(ステップ2302)。
次に、相関情報更新部2202は、情報収集・統計処理部2201によって収集された情報を保存し(ステップ2303)、情報収集・統計処理部2201から過去のシステム状態を取得する(ステップ2304)。そして、相関情報更新部2202は、時刻差をつけた相関情報の生成も含め、相関情報記憶部2203に記憶された全ての相関情報を更新する(ステップ2305)。
次に、検出・処理生成部2206は、現在のシステム状態及び相関情報から異常の有無を検出する(ステップ2306)。異常の有無の検出方法の一例は前に述べた通りである。ステップ2306において異常が検出されなければ、ステップ2302に戻る。
一方、ステップ2306において異常が検出されれば、相関情報を用いて異常原因を調査し、障害予防・復旧処理候補を生成する(ステップ2307)。このステップ2307の処理の一例は前に述べた通りである。
次に、処理効果・影響評価部2207は、複数の相関情報を用いて、処理の効果及び影響を評価する(ステップ2308)。処理の効果及び影響は、ステップ2309において評価・命令制御部2208に入力された条件に従って評価される。
そして、処理命令部2209は、処理の効果の有無を判定する(ステップ2310)。効果は、ステップ2311において評価・命令制御部2208に入力された条件に従って判定される。
処理の効果が期待できなければ、ステップ2302に戻る。一方、処理の効果が期待できれば、処理命令部2209が制御対象システム101に対して処理を命令する(ステップ2312)。命令の実行要否及び命令の実行順序等の命令制御方法は、ステップ2313において評価・命令制御部2208に入力された方法に従う。
ステップ2312において処理が命令されると、ステップ2302に戻る。
なお、ステップ2304及び2405の相関情報の更新は、ステップ2306の後、又はステップ2302に戻る前の任意の時点で実行してもよい。また、ステップ2309、ステップ2311及びステップ2313の各入力処理は、予め定められた値(方法)を用いれば、このステップがなくてもよい。
以上説明したように、第5の実施の形態では、相関情報記憶部2203に時刻をずらした複数の相関関係を記憶するので、指標間の相関をより適切に把握することができ、より適切な処理を実行することができる。
(第6実施形態)
次に、本発明の第6の実施の形態を図24に示す。第6の実施の形態は、前述した第3の実施の形態と以下の点で異なる。
図18に示した第3の実施の形態では、フィードバックループ1804、1805を設け、検出・処理生成部1801で処理候補の再生成、又は、処理命令入力部1802で別の処理命令の入力を受け付けることによって、別の処理を実行することが可能である。しかし、処理の再生成や処理命令の再入力によって、効果があり他への影響も少ない処理が実行できるとは限らない。また、実行する処理によって、別の障害を発生させる可能性もある。そこで、効果は小さいが、他への影響が少ない処理に対して、その効果を増強する処理を同時又は続いて実行することによって、全体として効果が大きく影響の少ない処理を実現する方法や、別の障害の発生を予測して、その障害を回避する方法がある。このため、第6の実施の形態の障害予防・復旧制御部106は、システム状態仮想更新部2405を備える。
第6の実施の形態の障害予防・復旧制御部106は、情報収集・統計処理部201、相関情報更新部202、相関情報記憶部203、相関情報抽出部204、異常検出・原因解析・予防・復旧処理候補生成部2401、処理効果・影響評価部2402、システム状態仮想更新部2405、評価・命令制御部2406及び処理命令部2407を備える。これらの各部は、記憶部に記憶されたプログラムをプロセッサが実行することによって実現される。
第6の実施の形態の障害予防・復旧制御部106の構成のうち、第3の実施の形態と同じ動作をする構成には同じ符号を付し、その説明は省略する。なお、第3の実施の形態の障害予防・復旧制御部106に含まれる処理命令入力部1802は設けられていないが、処理命令入力部を設けてもよい。
異常検出・原因解析・予防・復旧処理候補生成部(以下、検出・処理生成部と略す)2401は、情報収集・統計処理部201によって収集・統計処理された情報と、相関情報抽出部204によって相関情報記憶部203から読み出された相関情報を利用して、制御対象システム101の異常状態を検出する。また、検出・処理生成部2401は、処理効果・影響評価部2402において、処理の効果が十分に期待できない場合や、他への影響が大きい場合に、フィードバックループ2403による通知に基づいて、処理の候補を見直す。
処理効果・影響評価部2402は、第3の実施の形態の処理効果・影響評価部1803と同様に、異常検出時に、検出・処理生成部2401から、原因解析結果と予防・復旧処理の候補を受け付け、実行される処理によって制御対象システム101に与える効果及び影響を評価する。
システム状態仮想更新部2405は、処理効果・影響評価部2402及び処理命令部2407によって、効果は少ないが他への影響も少ないと判断された処理等の実行後に起こるモニタ値及び統計値の変化に関する情報と、現在のシステムの状態に関する情報とをフィードバックループ2404を経由して取得する。そして、システム状態仮想更新部2405は、処理実行後のシステム状態を仮想的に作成し、検出・処理生成部2401に送る。
検出・処理生成部2401は、仮想的に作成されたシステムの状態の情報から、相関情報を参照して、処理実行後のシステムにおける異常検出及び原因解析をする。これによって効果の少ない処理と同時に又は続いて実行すべき処理の候補を生成する。
評価・命令制御部2406は、第3の実施の形態の評価・命令制御部1806と同様に、処理効果・影響評価部2402及び処理命令部2407の動作を制御する。
処理命令部2407は、第3の実施の形態の予防・復旧処理命令部1807と同様に、処理効果・影響評価部2402から入力された処理命令、及び、その処理の効果及び影響に関する情報を取得して、処理の実行の要否、実行順序、実行時刻等を決定する。
次に、第6の実施の形態の障害予防・復旧制御部106の動作について、図25のフローチャートを参照して説明する。
最初に、情報収集・統計処理部201は、制御対象システム101の状態に関する情報を収集する(ステップ2502)。
次に、相関情報更新部202は、情報収集・統計処理部201によって収集された情報を用いて、相関情報記憶部203に記憶された相関情報を更新する(ステップ2503)。なお、初期状態において、ステップ2503の処理は、相関情報の追加である。
次に、ステップ2504では、検出・処理生成部2401は、現在のシステム状態及び相関情報から異常の有無を検出する(ステップ2504)。異常の有無の検出方法の一例は前に述べた通りである。ステップ2504にて異常が検出されなければ、ステップ2502に戻る。
一方、ステップ2504にて異常が検出されれば、相関情報を用いて異常原因を調査し、障害予防・復旧処理候補を生成する(ステップ2505)。このステップの一例は前に述べた通りである。
次に、処理効果・影響評価部2402は、相関情報を用いて、処理の効果及び影響を評価する(ステップ2506)。処理の効果及び影響は、ステップ2507において評価・命令制御部2406に入力された条件に従って評価される。
そして、処理命令部2407は、他への影響を判定する(ステップ2508)。影響は、ステップ2509において評価・命令制御部2406に入力された条件に従って判定される。評価・命令制御部2406には、フィードバック2514の回数制限も入力される。
判定の結果、影響が大きい場合には処理は実行されず、ステップ2505に戻る(2514)。一方、影響の大きさが問題ないレベルであると判定されれば、処理の効果の有無を判定する(ステップ2510)。効果は、ステップ2511において評価・命令制御部2406に入力された条件に従って判定される。
判定の結果、処理の効果が期待できなければ、ステップ2505に戻る(2514)。一方、処理の効果が期待できれば、ステップ2516に戻る(2515)。そして、処理実行後のシステム状態の情報を生成し(ステップ2516)、処理実行後のシステム状態で異常が検出されるかを調査する(ステップ2504)。
さらに、処理命令部2407が制御対象システム101に対して処理を命令する(ステップ2512)。命令の実行要否及び命令の実行順序等の命令制御方法は、ステップ2513において評価・命令制御部2406に入力された方法に従う。
ステップ2512において処理が命令されると、ステップ2502に戻る。
フィードバックループ2514及び2515は、評価・命令制御部2406に入力された回数に従って制限される。
以上説明したように、第6の実施の形態では、処理の効果及び影響を予測する、フィードバックループ2404を備える。これによって、適切な別の処理を選択することによって、より適切な処理を実行することができる。
(第7実施形態)
次に、本発明の第7の実施の形態を図26に示す。
第1〜6の実施の形態の相関情報は、個々のイベント及び個々の処理を単位として相関関係を記録したが、イベント間や処理間に時間軸上で依存関係が存在する場合がある。第7の実施の形態では、相関情報記憶部203に、一連のイベント(イベントシーケンス)や、一連の処理(処理シーケンス)を単位として相関関係を記録する。
図26は、第7の実施の形態の相関表2606の構成図である。
イベントシーケンス2601は、複数のイベントを順序も含めて一まとめにしたものである。例えば、図中イベントシーケンスEaは、イベントeaの次にイベントebが起こり、最後にイベントecが起こる一連のイベントである。なお、イベントシーケンス2601の中には処理が含まれてもよい。
同様に、処理シーケンス2602は、複数の処理を順序も含めて一まとめにしたものである。例えば、処理シーケンスPaは、処理paの次に処理pbを実行し、最後に処理pcを実行する一連の処理である。なお、処理シーケンス2602の中にはイベントが含まれてもよい。
以上説明したように、第7の実施の形態では、イベントシーケンスや処理シーケンスとの相関情報を元に処理の効果及び影響を予測し、処理の選択し及び選択された処理を実行する。これによって、より正確な処理の効果及び影響の予測ができ、より適切な処理を選択及び実行することができる。
以上、本発明の実施の形態として、7つの例を示したが、これらの7つの実施例を相互に組み合わせた実施の形態も本発明の範疇に含まれる。また各実施例において、一部の機能や動作フローを除いた実施の形態も本発明の範疇に含まれる。
図27は、本発明によるコンピュータシステムの実装例である。制御対象のコンピュータシステム101には、制御対象コンピュータ102がノード1〜ノードNまでのN台含まれる。各コンピュータ102は、ハードウェア(HW)上でオペレーティングシステム(OS)が実行される。さらに、制御対象コンピュータシステム101には、システム監視エージェント103及びアプリケーションプログラム(AP)が動作している。CPUの使用率やメモリの使用量などのハードウェア状態(HW状態)や、システムコール回数などのオペレーティングシステム状態(OS状態)、処理スループットなどのアプリケーション状態(AP状態)等は、システム監視エージェント103によって収集される。また、制御対象コンピュータ102に対する処理履歴も、システム監視エージェント103によって収集される。
障害予防・復旧制御部106は、監視コンピュータ105と相関情報記憶部203とを備える。監視コンピュータ105は、ハードウェア(HW)上で、オペレーティングシステム(OS)及びシステム統合監視プログラムが動作している。システム統合監視プログラムでは、制御対象コンピュータシステム102のシステム監視エージェント103が収集した状態情報を収集して、相関分析などの統計処理を行う情報収集・統計処理部201と、統計情報や相関情報などから制御対象システム101で生じた異常を検出して異常を予防・復旧する処理を生成する異常検出・処理生成部205と、異常検出・処理生成部205で生成された処理の候補に対して、統計情報や相関情報から処理の効果・影響を評価し、選択的に処理を実行する処理効果・影響評価部及び処理命令部(206・208)が含まれる。実行される処理は、制御対象コンピュータ102のシステム監視エージェント103に伝達され実行される。相関情報記憶部203は、システム統合監視プログラムとの間で相関情報をやりとりする。相関情報の例としては、アプリケーション状態(例:リクエスト数)とハードウェア状態(例:メモリ使用量)が比例関係であることや、制御対象コンピュータ102で処理A、B、Cを実行したときのハードウェア状態変化(例:メモリ使用量の変化)がそれぞれ異なるという情報などが挙げられる。
図27のコンピュータシステムで、システム監視エージェント103と障害予防・復旧制御部106を使ったシステム監視を行う手順の例は、次の12ステップである。
(1)システム監視エージェント103が制御対象コンピュータの状態情報収集をする。
(2)システム監視エージェント103が収集した情報を統計処理する。
(3)システム監視エージェント103が監視コンピュータ105に対して情報を送信する。
(4)情報収集・統計処理部201がシステム監視エージェント103から情報を収集する。
(5)情報収集・統計処理部201が相関分析等の統計処理を行う。
(6)異常検出・処理生成部205が相関情報記憶部203から相関情報を抽出する。
(7)情報収集・統計処理部201が相関情報記憶部203の相関情報を更新する。
(8)異常検出・処理生成部205が統計情報や相関情報から異常を検出する。
(9)異常検出・処理生成部205が検出した異常を予防・復旧するための処理候補を生成する。
(10)処理効果・影響評価部・処理命令部(206・208)が処理の効果・影響を評価する。
(11)処理効果・影響評価部・処理命令部(206・208)が選択した処理命令をシステム監視エージェント103に送信する。
(12)システム監視エージェント103が処理命令を実行する。
図28は、図27に示したコンピュータシステムにおいて、異常が発生した際の動作の例を示した図である。図28では、制御対象コンピュータ102のノード1に、メモリリークの異常が生じた場合を例に、異常の復旧を実現するまでに、障害予防・復旧制御部内等でやりとりされる情報について示す。
ノード1で生じたメモリリークの異常は、ノード1のシステム監視エージェント103から監視コンピュータ105に対して、ノード1でのリクエスト数は小であるが、メモリ使用量が大であるという状態情報として伝達される。
異常検出・処理生成部205は統計情報として、ノード1でのリクエスト数は小であるが、メモリ使用量が大であるという統計情報を受け取り、さらに、それまでに情報収集・統計処理部201が更新してきた相関情報を相関情報記憶部203から受け取る。相関情報によると、リクエスト数が小ならばメモリ使用量も小であるが、ノード1ではリクエスト数が小であるにも関わらず、メモリ使用量が大であることから、ノード1で異常が生じていることを検出する。異常検出・処理生成部205は、メモリ使用量が大である異常の際の処理候補を生成し、ここではメモリ増設、ガーベージコレクション(GC)、リブート(reboot)の3つを処理候補として出力する。
処理効果・影響評価部・処理命令部(206・208)では、3つの処理候補の処理実行後のメモリ使用量の増減について相関情報から評価し、最も処理効果の大きいリブート(reboot)を選択して、ノード1のシステム監視エージェント103に対してリブート(reboot)命令を発行する。ノード1のシステム監視エージェント103はリブート(reboot)命令を受けて、ノード1のリブートを実施する。
特許請求の範囲に記載した以外の本発明の観点の代表的なものとして、次のものがあげられる。
(1)請求項16に記載のコンピュータシステムであって、
前記処理生成部は、前記情報収集手段によって収集された情報及び前記相関情報からコンピュータシステムで実行されるサービスに生じる障害の予兆を検出し、前記予兆が検出された障害を予防するための処理を生成するコンピュータシステム。
(2)請求項16に記載のコンピュータシステムであって、
前記評価部は、前記処理の実行によって前記コンピュータシステムに与えられる効果が所定の値より小さいとき、又は、前記処理の実行によって前記コンピュータシステムに与えられる影響が所定の値より大きいときに、その処理の実行の中止を決定し、前記処理生成部又は前記入力部にその処理が実行されないことを通知し、前記処理生成部に処理の再生成を求め又は前記入力部に前記処理の再入力を求めるコンピュータシステム。
(3)上記(2)に記載のコンピュータシステムであって、
前記評価部は、前記再生成された及び再入力された処理の実行によってコンピュータシステムに与えられる効果及び影響を判定し、前記判定の結果、前記処理の実行によってコンピュータシステムに与えられる効果及び影響が所定の範囲でなければ、さらに、処理を繰り返し再生成し又は処理の再入力を繰り返し求め、
前記評価部は、前記処理生成部に処理の再生成を求める回数、及び、前記入力部に前記処理の再入力を求める回数の少なくとも一つを変更する機能を含み、
前記コンピュータシステムは、前記回数を設定するインタフェースを備えるコンピュータシステム。
(4)請求項16に記載のコンピュータシステムであって、
前記処理生成部は、前記処理の実行によって前記コンピュータシステムに与えられる影響が所定の値より大きければ、前記相関情報を参照して、前記影響を軽減する処理を生成するコンピュータシステム。
(5)上記(4)に記載のコンピュータシステムであって、
前記評価部は、前記生成された影響を軽減する処理の実行によってコンピュータシステムに与えられる影響を判定し、
前記処理生成部は、前記影響を軽減する処理の実行によってコンピュータシステムに与えられる影響が所定の値より大きければ、さらに、影響を軽減する処理を繰り返し生成し、
前記処理生成部は、前記影響を軽減する処理を生成する回数を変更する機能を含み、
前記コンピュータシステムは、前記処理生成部に対して前記回数を設定するインタフェースを備えるコンピュータシステム。
(6)請求項16に記載のコンピュータシステムであって、
相関情報記憶部は、前記情報収集手段によって収集された情報の収集時刻に差をつけた情報間の相関関係を記録するコンピュータシステムであって、
(7)請求項16に記載のコンピュータシステムであって、
前記処理の実行によって前記コンピュータシステムに与える効果及び影響の判定結果に基づいて、前記処理の実行後の前記コンピュータシステムの状態を推定する状態更新部を備え、
前記処理生成部は、前記相関情報を参照して、前記推定されたシステム状態において生じる障害を検出し、前記検出された障害を回避する処理を生成するコンピュータシステム。
(8)上記(7)に記載のコンピュータシステムであって、
前記評価部は、前記生成された障害を回避する処理の実行によってコンピュータシステムに与えられる影響を判定し、
前記処理生成部は、前記判定の結果、前記処理の実行によってコンピュータシステムに与えられる障害が検出されると、さらに、障害を回避する処理を繰り返し生成し、
前記処理生成部は、前記障害を回復する処理を生成する回数を変更する機能を含み、
前記コンピュータシステムは、前記回数を設定するインタフェースを備えるコンピュータシステム。
(9)請求項16に記載のコンピュータシステムであって、
前記相関情報記憶手段は、前記情報収集手段によって収集された情報から計算される統計値の間の相関関係、及び前記収集された情報と前記統計値との間の相関関係の少なくとも一つを相関情報として記録するコンピュータシステム。
(10)請求項16に記載のコンピュータシステムであって、
前記相関情報記憶手段は、前記情報収集手段によって収集された情報を、前記イベントの発生時の情報とそれ以外の時の情報とを区別して、記録するコンピュータシステム。
(11)請求項16に記載のコンピュータシステムであって、
前記相関情報記憶手段は、前記収集された情報を、前記イベントの発生前の情報と前記イベントの発生後の情報とを区別して、記録するコンピュータシステム。
(12)請求項16に記載のコンピュータシステムであって、
前記相関情報記憶手段は、複数のイベントを含むイベントシーケンスの間の相関関係、及び前記収集された情報と前記イベントシーケンスとの間の相関関係の少なくとも一つを相関情報として記録するコンピュータシステム。