幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。これらの図面において、複数の図を通じて同一の符号は同一の構成要素を示している。なお、以後の説明では「aaaテーブル」等の表現にて本発明の情報を説明するが、これら情報はテーブル等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」等について「aaa情報」と呼ぶことがある。さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名称」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信デバイス、管理I/F、データI/F)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
以後、計算機システムを管理し、本発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理サーバが表示用情報を表示する場合は管理サーバが管理システムである、また、管理サーバと表示用計算機との組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理サーバと同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
まず、実施例1に係る計算機システムについて説明する。
図1は、実施例1に係る計算機システムの一例の構成図である。
本実施例に係る計算機システムは、1台以上の管理サーバ10000(図1では管理サーバA)、1台以上のストレージ装置20000(図1ではストレージ装置A)、及び1台以上の物理サーバ30000(図1では物理サーバA)を備える。物理サーバ30000及びストレージ装置20000は、SAN(Storage Area Network)40000(具体的にはファイバチャネル)を介して互いに接続される。管理サーバ10000、ストレージ装置20000、及び物理サーバ30000は、管理用ネットワーク50000を介して互いに接続される。
管理サーバ10000は、プラン生成プログラム11100、プラン実行後リスク抽出プログラム11200、プラン提示プログラム11300、構成性能情報リポジトリ11800、及びルール・プラン情報リポジトリ11900をメモリ11000(図2参照)に格納する。管理サーバ10000は、管理用ネットワーク50000を介して、ストレージ装置20000、物理サーバ30000上で動作するプログラムと通信できる。
ストレージ装置20000には、1以上の論理ボリューム22100が作成される。論理ボリューム22100は、例えば物理サーバ30000に提供される。図1に示す例では、ストレージ装置Aは、物理サーバAに対して、論理ボリューム22100を提供する。
物理サーバ30000は、ストレージ装置20000から提供された論理ボリューム22100を用いて、各種業務を実行する。図1に示す例では、物理サーバAとストレージ装置Aとは、SAN40000を介して互いに接続される。
図1に示す例では、管理サーバ10000が、プラン生成プログラム11100、プラン実行後リスク抽出プログラム11200、プラン提示プログラム11300等のプログラムを格納しているが、これに限定されない。例えば、ストレージ装置20000または物理サーバ30000が、各種プログラムを格納してもよく、また、各装置間に設置されているスイッチ(図示しない)等の他の装置が、各種プログラムを格納してもよい。また、ストレージ装置20000と物理サーバ30000との間の接続は、ファイバチャネルを介して直接接続されるものに限定されず、1台以上のファイバチャネルスイッチ等のネットワーク機器を介して接続されてもよい。また、ストレージ装置20000と物理サーバ30000との間の接続は、データ通信用のネットワークであればよく、例えば、IP(Internet Protocol)ネットワークでもよい。
図2は、実施例1に係る管理サーバの一例の構成図である。
管理サーバ10000は、メモリ11000、記憶デバイス12000、入力デバイス13000、出力デバイス14000、プロセッサ15000、及び通信デバイス16000を備え、これらは内部バス等の通信路17000を介して互いに接続される。
メモリ11000は、プラン生成プログラム11100、プラン実行後リスク抽出プログラム11200、プラン提示プログラム11300、イベント解析処理プログラム11400、ルール展開プログラム11500、構成設定管理プログラム11600、性能情報収集プログラム11700、構成性能情報リポジトリ11800、及びルール・プラン情報リポジトリ11900を格納する。
構成性能情報リポジトリ11800には、構成情報テーブル11810及び性能情報テーブル11820が格納される。ルール・プラン情報リポジトリ11900には、イベント管理テーブル11910、1以上の汎用ルールテーブル11920、汎用プランテーブル11930、ルール・プラン対応テーブル11940、1以上の展開ルールテーブル11950、1以上の展開プランテーブル11960、及び解析結果管理テーブル11970が格納される。
構成情報テーブル11810は、物理サーバ30000から、物理サーバ30000が使用している論理ボリューム22100を構成する物理ディスクまでのI/O(入出力)経路上に存在する装置及びデバイスを示す情報、すなわち、I/O経路に基づく装置及びデバイスの接続関係を示す情報(以下「構成情報」という)を管理する。
性能情報テーブル11820は、SAN40000に接続された監視対象の各装置、及び監視対象の装置内の各デバイス(監視対象デバイス)についての性能情報を管理する。
イベント管理テーブル11910は、計算機システム内のどのデバイスのどのようなメトリックに関して、いつイベントが発生したかを示す情報を管理する。
汎用ルールテーブル11920は、計算機システム内で発生し得る1つ以上の条件イベントとその1以上の条件イベントに対する障害の原因とされる結論イベントとの対応関係を示す汎用ルールを管理する。
汎用プランテーブル11930は、障害に対する、計算機システム内で実施し得る回復プランを示す情報を管理する。
ルール・プラン対応テーブル11940は、汎用ルールと、当該汎用ルール対応する回復策、すなわち、当該汎用ルールの結論イベントが原因である場合に実施し得る回復策を表す汎用プランとの対応関係を表す情報(汎用プラン情報)、及び、各汎用プラン実行後に、汎用ルールにおける障害イベントのうちどの障害イベントが未解決のまま残るかを表す情報(未解決情報)を管理する。
展開ルールテーブル11950は、汎用ルールテーブル11920の情報を、構成情報テーブル11810の情報に基づいて具体化した情報(展開ルール)を格納する。
展開プランテーブル11960は、汎用プランテーブル11930の情報を、構成情報テーブル11810及び性能情報テーブル11820の情報に基づいて具体化した情報(展開プラン)を格納する。
解析結果管理テーブル11970は、障害の原因と判断されたイベントの発生した装置及びデバイスと、その原因と判断された障害イベントに関する情報を格納する。
記憶デバイス12000は、情報を格納するHDD(Hard Disk Drive)、SSD(Solid State Drive)等である。入力デバイス13000は、管理者が管理サーバ10000に指示を入力するためのデバイス、例えばキーボード等である。出力デバイス14000は、管理サーバ10000が実行した処理結果、例えばプラン提示プログラム11300の実行結果等を出力するデバイス、例えばディスプレイ等である。プロセッサ15000は、メモリ11000上に展開されているプログラムを実行する。通信デバイス16000は、管理用ネットワーク50000に接続するためのデバイスである。
図2に示す例では、各種プログラム及びテーブルは、メモリ11000に格納されているが、記憶デバイス12000または他の記憶媒体(図示しない)に格納されていてもよい。この場合、プロセッサ15000は、プログラム実行時にメモリ11000上に対象のプログラムを読み出し、読み出したプログラムを実行する。また、ストレージ装置20000のメモリ21000(図3参照)または物理サーバ30000のメモリ31000(図4参照)に、前述のプログラム及びテーブルが格納され、ストレージ装置20000または物理サーバ30000が、格納されたプログラムを実行してもよい。また、他の物理サーバ30000またはスイッチ(図示しない)等の他の装置が、前述のプログラム及びテーブルを格納し、格納したプログラムを実行してもよい。
図3は、実施例1に係るストレージ装置の一例の構成図である。
ストレージ装置20000は、メモリ21000、論理ボリューム提供部22000、ディスクI/Fコントローラ23000、管理I/F24000、プロセッサ25000、及びデータI/F26000を備え、これらは内部バス等の通信路27000を介して接続される。
メモリ21000は、ディスクキャッシュ21100を有する。また、メモリ21000は、構成性能情報収集プログラム21200を格納する。ディスクキャッシュ21100は、情報を一時格納するための記憶領域である。構成性能情報収集プログラム21200は、ストレージ装置20000の管理情報及び性能情報等を管理サーバ10000との間で送受信するためのプログラムである。
論理ボリューム提供部22000は、1以上の物理ディスク(図示しない)の記憶領域によって構成されるディスクプール22200を備え、ディスクプール22200の記憶領域を論理的に分割し、当該論理的に分割された記憶領域を論理ボリューム22100として提供する。これによって、当該ストレージ装置20000外の装置からの論理ボリューム22100に対するアクセスを可能としている。なお、ディスクプール22200にはディスクプール番号が付され、論理ボリューム22100には論理ボリューム番号が付される。これによって、ストレージ装置20000は、ディスクプール22200及び論理ボリューム22100をそれぞれ一意に識別することができる。
図3に示す例では、2つのディスクプール22200(POOL1及びPOOL2)がそれぞれ論理的に分割され、4つの論理ボリューム22100(LV1、LV2、LV3、及びLV4)がストレージ装置20000外の装置(例えば、物理サーバ30000)に提供される。ディスクI/Fコントローラ23000は、論理ボリューム提供部22000に接続するためのインタフェースデバイスである。管理I/F24000は、管理用ネットワーク50000に接続するためのインタフェースデバイスである。プロセッサ25000は、メモリ21000上に展開されたプログラムを実行する。データI/F26000は、SAN40000に接続するためのインタフェースデバイスである。なお、ディスクI/F制御部23000、管理I/F24000、及びデータI/F26000は、複数個あってもよい。
図3に示す例では、ストレージ装置20000は、データI/F(P1)及びデータI/F(P2)の2つのデータI/F26000を備える。図3に示す例では、構成性能情報収集プログラム21200は、メモリ21000に格納されているが、他の記憶装置(図示しない)または他の記憶媒体(図示しない)に格納されていてもよい。この場合、プロセッサ25000は、処理実行時にメモリ21000上に構成性能情報収集プログラム21200を読み出し、読み出した構成性能情報収集プログラム21200を実行する。
また、管理サーバ10000のメモリ11000に構成性能情報収集プログラム21200が格納され、管理サーバ10000が、格納されたプログラム21200を実行してもよい。また、他のストレージ装置20000が、構成性能情報収集プログラム21200を格納し、格納したプログラム21200を実行してもよい。また、論理ボリューム提供部22000は、1つの物理ディスク22200の全記憶領域を1つの論理ボリューム22100として作成してもよい。また、論理ボリューム提供部22000は、物理ディスク22200以外の記憶媒体、例えばフラッシュメモリ等の記憶領域により論理ボリューム22100を作成してもよい。
図4は、実施例1に係る物理サーバの一例の構成図である。
物理サーバ30000は、メモリ31000、データI/F32000、プロセッサ33000、及び管理I/F34000を備え、これらは内部バス等の通信路35000を介して互いに接続される。
メモリ31000は、構成性能情報収集プログラム31100、業務プログラム31200、及びボリューム管理プログラム31300を格納する。
構成性能情報収集プログラム31100は、物理サーバ30000の管理情報、性能情報等を管理サーバ10000との間で送受信するためのプログラムである。業務プログラム31200は、物理サーバ30000が実行する業務を実現するためのプログラムであり、例えば、DBMS(Data Base Management System)やファイルシステム等である。ボリューム管理プログラム31300は、ストレージ装置20000によって提供される論理ボリューム22100を物理サーバ30000に割り当てるためのプログラムである。物理サーバ30000は、ボリューム管理プログラム31300によって割り当てられた論理ボリューム22100を用いて業務を実行する。
データI/F32000は、SAN40000に接続するためのインタフェースデバイスである。プロセッサ33000は、メモリ31000上に展開されたプログラムを実行する。管理I/F34000は、管理用ネットワーク50000に接続するためのインタフェースデバイスである。
なお、データI/F32000及び管理I/F34000は、複数個あってもよい。図4に示す例では、各種プログラムは、メモリ31000に格納されているが、他の記憶装置(図示しない)に格納されていてもよい。この場合、プロセッサ33000は、処理実行時にメモリ31000上に対象のプログラムを読み出し、読み出したプログラムを実行する。
図5は、実施例1に係る構成情報テーブルの一例の構成図である。
構成情報テーブル11810には、論理ボリューム22100に物理サーバ30000がアクセスする場合に経由するI/O経路であって、物理サーバ30000から当該物理サーバ30000に提供された論理ボリューム22100を構成する物理ディスクまでのI/O経路に関する情報が格納される。構成設定管理プログラム11600が実行されることによって、構成情報テーブル11810にエントリが追加される。
構成情報テーブル11810は、物理サーバ11811、ドライブ11812、サーバデータI/F11813、ストレージ11814、ストレージデータI/F11815、論理ボリューム11816、及びディスクプール11817のフィールドを含む。物理サーバ11811には、物理サーバ30000を一意に識別するための識別子が格納される。ドライブ11812には、物理サーバ30000上のボリュームのマウントポイントを一意に識別するための識別子が格納される。サーバデータI/F11813には、物理サーバ30000が、論理ボリューム11816の識別子によって示される論理ボリューム22100にアクセスする際に利用される物理サーバ30000のデータI/F32000(以下「サーバデータI/F」という場合がある)を一意に識別するための識別子が格納される。ストレージ11814には、物理サーバ30000のアクセス先となるストレージ装置20000を一意に識別するための識別子が格納される。ストレージデータI/F11815には、物理サーバ30000が、論理ボリューム11816の識別子によって示される論理ボリューム22100にアクセスする際に利用されるストレージ装置20000のデータI/F26000(以下「ストレージデータI/F」という場合がある)を一意に識別するための識別子が格納される。論理ボリューム11816には、論理ボリューム22100を一意に識別するための識別子が格納される。ディスクプール11817には、論理ボリューム11816の識別子によって示される論理ボリューム22100が作成されているディスクプール22200を一意に識別するための識別子が格納される。
例えば、図5の上から1つ目のエントリは、ストレージA(ストレージ装置A)のディスクプール「POOL1」から生成された論理ボリューム「LV1」が、ストレージデータI/F「P1」、及びサーバデータI/F「S1」を経由して物理サーバAと接続され、物理サーバA上で論理ボリューム「/opt」として認識されていることを示す。
ここで、本実施例に係る構成情報テーブル11810は、アクセス経路上に存在する装置及びデバイスとして、物理サーバ30000、サーバデータI/F、ストレージ装置20000、ストレージデータI/F、論理ボリューム22100、及びディスクプール22200の情報を含んでいるが、これに限定されない。例えば、構成情報テーブル11810は、スイッチ、スイッチのデータI/F等の情報を含んでもよく、また、業務サーバ30000上の業務プログラム(DBMS等)の情報あるいはVM情報、VMのスナップショットを保存するスナップショットボリュームや、クローンを保存するクローンボリューム等を関連付けて格納してもよい。また、構成情報テーブル11810は、構成管理操作の履歴情報を保持していてもよく、Syslog(シスログ)サーバ等と連携して、システム動作を表す詳細なログ情報を保持していてもよい。
図6は、実施例1に係る性能情報テーブルの一例の構成図である。
性能情報テーブル11820には、計算機システムを構成する装置または装置内のデバイスに関する性能情報、例えば、各ストレージ装置20000における論理ボリューム22100、ディスクプール22200等に関する性能情報が格納される。性能情報収集プログラム11700が実行されることによって、性能情報テーブル11820にエントリが追加される。
性能情報テーブル11820は、装置ID11821、デバイスID11822、メトリック11823、機器OS11824、性能値11825、アラート実行閾値11826、閾値種別11827、及びStatus11828のフィールドを含む。
装置ID11821には、装置を一意に特定する識別子(装置ID)が格納される。デバイスID11822には、性能情報の取得対象となるデバイスを一意に識別するための識別子(デバイスID)が格納される。メトリック11823には、CPU使用率、記憶装置に対する単位時間(例えば、1秒)あたりのI/O回数(IOPS)、リクエストに対するレスポンスの時間等の、性能情報の種類を示す情報が格納される。機器OS11824には、装置ID11821の装置IDに対応する装置上で動作するOS(Operating System)の種別を示すデータが格納される。性能値11825には、デバイスID11822によって示されたデバイスの、メトリック11823によって示された種類の性能情報の値が、デバイスを含む装置から取得されて格納される。アラート実行閾値11826には、管理対象の性能値の正常範囲の上限もしくは下限等の閾値(以下「アラート実行閾値」という)が、ユーザから指定されて格納される。閾値種別11827には、アラート実行閾値が正常値の上限であるのか下限であるのかを示すデータが格納される。Status11828には、性能値11825が正常値であるか異常値であるかを示すデータが格納される。
ここで、図6に示す性能情報テーブル1820では、任意の1つの装置の任意の1つのデバイスの任意の1つのメトリックについて、性能値は1つだけ対応しているが、性能情報テーブル11820の各情報を性能情報収集プログラム11700が構成性能情報収集プログラム21200、31100と通信して、各装置が保持する情報を取得した時刻を示す値と共に格納するようにし、取得した時刻に対応する複数の時点の性能値を履歴情報として保持してもよい。
デバイスID11822のデバイスIDによって示される、性能情報の取得対象のデバイスとして、ストレージデータI/F、論理ボリューム22100、ディスクプール22200、物理サーバ30000が認識するマウントポイントをあげたが、これらに限定されず、サーバデータI/Fや物理ディスク、スイッチやスイッチのポート等でもよい。
また、メトリックの一例として、CPU使用率、IOPS、リクエストに対するレスポンスの時間等を示したが、I/Oビジー率、転送レート、スループット、データベース管理ソフトのバッファヒット率や挿入・更新・削除レコード数、Webサーバのレスポンスの時間、ファイルシステムやディスクの空き容量や利用率、入出力データ量、利用時刻等、ネットワークインタフェースのエラー回数、バッファのオーバーフロー、及びフレームのエラー等の他の性能指標が用いられてもよい。
また、アラート実行閾値11826に格納するアラート実行閾値として、ユーザによって指定された閾値ではなく、例えば、性能情報の履歴情報の平均値等を利用したベースライン値との差分値等のアラートを通知する契機となりうる値が採用されてもよい。
図7は、実施例1に係るイベント管理テーブルの一例の構成図である。
イベント解析処理プログラム11400は、性能情報テーブル11820に登録された性能値とアラート実行閾値とを比較し、性能値がアラート実行閾値を超えていたら、対応するイベントを示すエントリを作成し、作成したエントリをイベント管理テーブル11910に登録する。なお、イベント解析処理プログラム11400は、システム内の各種装置からイベントの発生を示すイベントメッセージを受信し、受信したイベントメッセージに対応するイベントを示すエントリをイベント管理テーブル11910に登録するようにしてもよい。イベント管理テーブル11910は、ルール展開処理(図15参照)において適宜参照される。
イベント管理テーブル11910は、イベントID11911、装置ID11912、装置部位ID11913、メトリック11914、機器OS11915、ステータス11916、解析済みフラグ11917、及び発生日時11918のフィールドを含む。イベントID11911には、イベント自身の識別子であるイベントIDが格納される。装置ID11912には、イベントが発生した装置の識別子である装置IDが格納される。装置部位ID11913には、イベントが発生したデバイスの識別子が格納される。メトリック11914には、閾値異常が検知されたメトリックの名称が格納される。機器OS11915には、閾値異常が検知された装置のOSの種別を示すデータが格納される。ステータス11916には、イベントが発生したデバイスのイベント発生時の状態を示すデータが格納される。解析済みフラグ11917には、イベントがルール展開プログラム11500によって解析済みかどうかを示すデータが格納される。発生日時11918には、イベントが発生した日時を示すデータが格納される。
例えば、図7の上から1つ目のエントリは、管理サーバ10000が、ストレージ装置AのデータI/F「P2」におけるプロセッサ稼働率の閾値異常を2012年6月30日の15時00分00秒に検知し、そのイベントIDが「EV1」であり、このイベントがルール展開プログラム115000によって解析されていないことを示している。
図8は、実施例1に係る汎用ルールテーブルの一例の構成図である。
ルール・プラン情報リポジトリ11900には、1以上の汎用ルールテーブル11920が格納される。本実施例では、1つの汎用ルールテーブル11920によって、1つの汎用ルールが規定される。汎用ルール(後述の展開ルールも同様)は、計算機システムを構成するノード装置で発生し得る1つ以上の条件イベントの組み合わせと、その1つ以上の条件イベントの組み合わせに対して障害の原因とされる結論イベントとの関係を示すデータである。一般的に、障害解析において原因を特定するためのイベント伝播モデルは、ある障害の結果が発生することが予想されるイベントの組み合わせと、その原因とが“IF−THEN”形式で記載される。なお、汎用ルールは図8に挙げられたものに限られず、さらに多くのルールがあっても構わない。
汎用ルールテーブル11920は、条件部11921、結論部11922、汎用ルールID11923、及び適用トポロジ11924のフィールドを含む。
条件部11921には、“IF−THEN”形式で記載した汎用ルールのIF部に相当する観測事象、すなわち、1以上の条件イベントのそれぞれを示すデータが格納される。条件部11921は、イベントID11925、装置種別11926、装置部位種別11927、メトリック11928、及びステータス11929のフィールドを含む。結論部11922には、“IF−THEN”形式で記載した汎用ルールのTHEN部に相当する原因事象、すなわち、結論イベントを示すデータが格納される。結論部11922は、装置種別11926、装置部位種別11927、メトリック11928、及びステータス11929のフィールドを含む。汎用ルールID11923には、汎用ルールの識別子である汎用ルールIDが格納される。適用トポロジ11924には、汎用ルールを実システムに展開し,展開ルールを生成する際に参照されるトポロジを示すデータが格納される。イベントID11925には、“IF−THEN”形式で記載した汎用ルールのIF部に相当する観測事象に含まれるイベント(条件イベント)を一意に識別する識別子(イベントID)が格納される。装置種別11926には、条件イベント又は結論イベントが発生する装置の種別を示すデータが格納される。装置部位種別11927には、条件イベント又は結論イベントが発生するデバイスの種別を示すデータが格納される。メトリック11928には、CPU使用率、記憶装置に対するIOPS、リクエストに対するレスポンスの時間等の、性能情報の種類を示す情報が格納される。ここで、メトリック11928に格納する性能情報としては、性能情報テーブル11820のメトリック11823に格納する性能情報と同様に、他の性能情報を用いてもよい。ステータス11929には、装置内のデバイスのイベント発生時の状態を示すデータが格納される。
条件部11921に記述された1以上の条件イベントが検知された場合、結論部11922に記述された結論イベントが障害の原因と判定される。結論部11922のステータスが正常になれば、すなわち結論イベントに関係する性能値が正常値に戻れば、条件部11921の問題も解決される、すなわち各条件イベントに関係する性能値も正常値に戻ることが期待される。図8の例では、条件部11921には3つのイベントが記述されているが、イベント数に制限はない。
例えば、図8に例示した汎用ルール、すなわち、汎用ルールIDが「RULE1」で示される汎用ルールは、観測事象として、ホストコンピュータ上のドライブのレスポンスタイムの閾値異常と、ストレージ装置20000における論理ボリューム22100の単位時間のI/O量の閾値異常と、ストレージ装置20000におけるディスクプール22200の単位時間のI/O量の閾値異常とを検知したときに、ストレージ装置20000におけるディスクプール22200の単位時間のI/O量の閾値異常が原因であると結論付けられることを示している。なお、観測事象に含まれるイベントとして、ある条件が正常であることを定義してもよい。この汎用ルールに基づいて、展開ルールを生成する際には構成情報テーブル11810からトポロジ情報が取得される。
図9は、実施例1に係る汎用プランテーブルの一例の構成図である。
汎用プランテーブル11930は、計算機システムにおいて実行可能なプランの一覧を示す。汎用プランテーブル11930は、汎用プランID11931、及びプラン11932のフィールドを含む。汎用プランID11931には、汎用プランの識別子である汎用プランIDが格納される。プラン11932には、計算機システムにおいて実行可能なプランを示す情報が格納される。プランとしては、例えば、ホストのリブート、スイッチの設定変更、ストレージ装置20000のボリュームマイグレーションやVM移動等がある。なお、プランは図9に挙げられたものに限られない。
図10は、実施例1に係るルール・プラン対応テーブルの一例の構成図である。
ルール・プラン対応テーブル11940は、汎用ルールと、その汎用ルールを適用して障害の原因を特定した場合に実施可能なプランのリストと、各プランを実行した場合に未解決状態のまま残るイベント(以下「未解決イベント」という)との対応関係を示す。ルール・プラン対応テーブル11940は、汎用ルールID11941、汎用プランID11942、及び未解決イベントID11943のフィールドを含む。汎用ルールID11941には、汎用ルールの識別子である汎用ルールIDが格納される。汎用ルールID11941に格納される汎用ルールIDは、汎用ルールテーブル11920の汎用ルールID11923に格納される汎用ルールIDに対応している。汎用プランID11942には、汎用プランの識別子である汎用プランIDが格納される。汎用プランID11942に格納される汎用プランIDは、汎用プランテーブル11930の汎用プランID11931に格納される汎用プランIDに対応している。未解決イベントID11943には、各プランを実行した場合に未解決状態のまま残るイベント(未解決イベント)の識別子である未解決イベントIDが格納される。未解決イベントIDは、汎用ルールテーブル11920のイベントID11925に格納される条件イベントの識別子(イベントID)に対応している。未解決イベントID11943には、例えば、未解決イベントが存在しない場合に「NONE」が格納され、条件イベントのすべてが未解決イベントとして残る場合に「ALL」が格納される。
図11は、実施例1に係る展開ルールテーブルの一例の構成図である。
ルール・プラン情報リポジトリ11900には、1以上の展開ルールテーブル11950が格納される。本実施例では、1つの展開ルールテーブル11950によって、1つの展開ルールが規定される。展開ルールは、汎用ルールを計算機システムの実構成に依存する形式に展開したデータである。図11に示す展開ルールは、図8に示す汎用ルールにおける装置種別11926及び装置部位種別11927の各値を、構成情報テーブル11810で定義されている特定の装置の識別子(装置ID)及び特定のデバイスの識別子(デバイスID)に置き換えることによって生成される。
展開ルールテーブル11950は、条件部11951、結論部11952、展開ルールID11953、及び展開前汎用ルールID11954のフィールドを含む。
条件部11951には、“IF−THEN”形式で記載した展開ルールのIF部に相当する観測事象、すなわち、1以上の条件イベントのそれぞれを示すデータが格納される。条件部11951は、イベントID11955、装置ID11956、装置部位ID11957、メトリック11958、及びステータス11959のフィールドを含む。結論部11952には、“IF−THEN”形式で記載した展開ルールのTHEN部に相当する原因事象、すなわち、結論イベントを示すデータが格納される。結論部11952は、装置ID11956、装置部位ID11957、メトリック11958、及びステータス11959のフィールドを含む。展開ルールID11953には、展開ルールの識別子である展開ルールIDが格納される。展開前汎用ルールID11954には、展開ルールの基となった汎用ルールの汎用ルールIDが格納される。イベントID11955には、“IF−THEN”形式で記載した展開ルールのIF部に相当する観測事象に含まれる条件イベントを一意に識別する識別子が格納される。装置ID11956には、条件イベント又は結論イベントの発生する装置のID(装置ID)が格納される。装置部位ID11957には、条件イベント又は結論イベントが発生するデバイスのID(デバイスID)が格納される。メトリック11958には、CPU使用率、記憶装置に対するIOPS、リクエストに対するレスポンスの時間等の、性能情報の種類を示す情報が格納される。なお、メトリック11958として、性能情報テーブル11820のメトリック11823に設定される性能情報と同様に、他の性能情報を用いてもよい。ステータス11959には、装置内のデバイスのイベント発生時の状態を示すデータが格納される。
展開ルールは、計算機システムの実構成(例えば、構成情報テーブル11810が示す接続関係等)を考慮して、条件イベント及び結論イベントに関係する装置の種別及びデバイスの種別を、計算機システムの実構成における特定の装置及び特定のデバイスに具体化することで生成される。
例えば、図11に例示した展開ルールIDが「ExRule1−1」である展開ルールは、図8に示す汎用ルール「Rule1」における装置種別11926及び装置部位種別11927の各値を、構成情報テーブル11810で定義されている特定の装置(物理サーバA、ストレージ装置A)の識別子及び特定のデバイス(ドライブ「/var」、論理ボリューム「LV1」、ディスクプール「POOL1」)の識別子に置き換えることによって生成される。
図11の展開ルールテーブル11950が示す展開ルール「ExRule1−1」から分かるように、展開ルール「ExRule1−1」は、汎用ルール「Rule1」を基に展開され、観測事象として、物理サーバAの論理ボリューム「/var」におけるレスポンスタイムの閾値異常と、ストレージ装置Aの論理ボリューム「LV2」におけるレスポンスタイムの閾値異常と、ストレージ装置Aのディスクプール「POOL1」におけるレスポンスタイムの閾値異常とを検知したときに、ストレージ装置Aのディスクプール「POOL1」におけるレスポンスタイムのボトルネックが原因と結論付けられることを示している。
図12Aは、実施例1に係る展開プランテーブルの第1の構成図である。図12Bは、実施例1に係る展開プランテーブルの第2の構成図である。
ルール・プラン情報リポジトリ11900には、1以上の展開プランテーブル11960が格納される。本実施例では、1つの展開プランテーブル11960によって、1以上の展開プランが規定される。展開プランは、汎用プランを計算機システムの実構成に依存する形式に展開した情報である。展開プランテーブル11960は、プラン生成プログラム11100によって、汎用プランテーブル11930、展開ルールテーブル11950、構成情報テーブル11810、及び性能情報テーブル11820に基づいて生成される。
展開プランテーブル11960は、プラン詳細11961、汎用プランID11962、及び展開ルールID1196Aのフィールドを含む。汎用プランID11962には、展開プランの基となった汎用プランの汎用プランIDが格納される。展開ルールID1196Aには、展開されたプランが、どの障害原因に対するプランなのかを識別するための情報として、展開プランに対応する展開ルールの展開ルールIDが格納される。
プラン詳細11961には、展開された1以上の展開プランのそれぞれについての具体的な処理内容及び展開プラン実行後の状態情報が格納される。プラン詳細11961は、展開プランID11963、プラン対象11964、及びリスク箇所11969のフィールドを含む。展開プランID11963には、展開プランの識別子である展開プランIDが格納される。リスク箇所11969には、プラン実行後にも潜在的に残されたままになる問題個所(以下「リスク箇所」という)を示すデータが格納される。
プラン対象11964には、例えば、プランに関係する構成要素(デバイス)を示す情報、プラン実行後の情報等が格納される。ここで、プラン実行後の情報には、プランに関係するデバイスに関する、プラン実行後の性能値の予測値が含まれる。プラン実行後の性能値の予測値は、例えば、プラン生成プログラム11100が、性能情報テーブル11820を参照して、プラン実行後の状況をシミュレートすることによって算出される。プラン対象11964に含まれるフィールドは、プランの内容によって異なる。
図12Aの展開プランテーブル11960によって規定される展開プランは、汎用プラン「Plan1」に基づく展開プラン、すなわちボリュームマイグレーションに関する展開プランである。ボリュームマイグレーションに関する展開プランの場合、プラン対象11964は、例えば、移動対象ボリューム11965、移動元プール11966、及び移動先プール11967のフィールドを含む。移動対象ボリューム11965は、ボリュームマイグレーションの対象となる論理ボリューム22100(以下「移動対象ボリューム」という)の識別子が格納されるボリュームID11965Aと、ボリュームマイグレーション実行後の、移動対象ボリュームに対するI/Oのレスポンスタイムの予測値が格納されるI/O ResponseTime予測11965Bとを含む。移動元プール11966は、移動対象ボリュームが属するディスクプール22200(すなわち、移動元のディスクプール22200であり、以下「移動元プール」という)の識別子が格納されるプールID11966Aと、ボリュームマイグレーション実行後の、移動元プールに対するI/Oのレスポンスタイムの予測値が格納されるI/O ResponseTime予測11966Bとを含む。移動先プール11967は、移動対象ボリュームの移動先となるディスクプール22200(以下「移動先プール」という)の識別子が格納されるプールID11967Aと、ボリュームマイグレーション実行後の、移動先プールに対するI/Oのレスポンスタイムの予測値が格納されるI/O ResponseTime予測11967Bとを含む。
ボリュームID11965A、プールID11966A、及びプールID11967Aの情報は、プラン生成プログラム11100が、構成情報テーブル11810から情報を取得し、格納する。また、各I/O ResponseTime予測11965B、11966B、及び11967Bに格納される値の算出方法としては、任意の方法を採用してもよい。例えば、各I/O ResponseTime予測11965B、11966B、及び11967Bの値を、例えば、プラン生成プログラム11100が、性能情報テーブル11820から、移動対象ボリューム、移動元プール、及び移動先プールの単位時間当たりのI/O量を取得し、移動対象ボリュームの単位時間当たりのI/O量の値を、移動元プールの単位時間当たりのI/O量から減算し、移動先プールの単位時間当たりのI/O量に加算して、ボリュームマイグレーション実行後の移動元プール及び移動先プールのI/O量を予測し、その逆数を取ることで得られる値(I/Oのレスポンスタイム)としてもよい。
図12Bの展開プランテーブル11960によって規定される展開プランは、汎用プラン「Plan5」に基づく展開プラン、すなわちプールへのディスク追加に関する展開プランである。プールへのディスク追加に関する展開プランの場合、プラン対象11964は、例えば、ディスクの追加先となるディスクプール22200(以下「追加対象プール」という)の識別子が格納されるプールID11968Aと、追加されるディスクの識別子が格納される追加ディスク11968Bと、ディスク追加後の、追加対象プールに対するI/Oのレスポンスタイムの予測値が格納されるI/O ResponseTime予測11968Cとのフィールドを含む。
プールID11968A、及び追加ディスク11968Bの情報は、プラン生成プログラム11100が、構成情報テーブル11810から情報を取得し、格納する。また、I/O ResponseTime予測11968Cの値(追加対象プールに対するI/Oのレスポンスタイムの予測値)の算出方法としては、任意の方法を採用してもよい。例えば、プラン生成プログラム11100が、追加対象プールの単位時間当たりのI/O量の値、追加対象プールの容量の値、及び追加されるディスクの容量の値を性能情報テーブル11820から取得し、容量値に比例して単位時間当たりのI/O量が分散されるとして、ディスク追加前における追加対象プールのI/Oのレスポンスタイムに、ディスク追加前の追加対象プールの容量をディスク追加後の追加対象プールの容量で除算した値を乗算することにより、ディスク追加後における追加対象プールのI/Oのレスポンスタイムを算出してもよい。図12Bの例では、プランの詳細11961の内容として、性能情報が格納されている例を記載したが、プランに関するコスト情報やプランを実行した際における障害によるシステムのダウンタイム時間情報等が格納されてもよい。
また、図12では、ボリュームマイグレーションに関する展開プラン及びプールへのディスク追加に関する展開プランの例を記載しているが、汎用プランテーブル11930に含まれるその他の汎用プランの各汎用プランに対応する展開プランも同様に生成される。その他の汎用プランを展開プランに展開する場合においても、プラン生成プログラム11100が、例えば、構成情報テーブル11810を参照し、処理実行後の構成情報の候補を列挙し、性能情報テーブル11820を参照し、性能情報、容量情報、コスト情報、ダウンタイム情報等の、プラン実行後の状態情報をシミュレートすることによって、プランに関係するデバイスに関する、プラン実行後の性能値の予測値を計算する。
図13は、実施例1に係る解析結果管理テーブルの一例の構成図である。
解析結果管理テーブル11970は、原因装置ID11971、原因部位ID11972、メトリック11973、確信度11974、展開ルールID11975、及び受信イベントID11976のフィールドを含む。原因装置ID11971には、障害原因解析処理において障害の原因と判断されたイベントに関係する装置の識別子(装置ID)が格納される。原因部位ID11972には、障害の原因と判断されたイベントに関係するデバイスの識別子(デバイスID)が格納される。メトリック11973には、閾値異常を検知した、CPU使用率、リクエストに対するレスポンスの時間等の、性能情報の種類を示す情報が格納される。すなわち、メトリック11973には、障害の原因と判断されたイベントに関係する性能情報の種類を示すデータが格納される。確信度11974には、障害の原因と判断されたイベントが根本原因であることの確からしさを示す値(確信度)が格納される。本実施例では、確信度としては、例えば、条件イベントの発生割合となっている。展開ルールID11975には、イベントを障害の原因と判断した根拠となる展開ルールの展開ルールIDが格納される。受信イベントID11976には、条件イベントのうちの実際に発生したイベントのイベントIDが格納される。
例えば、図13の上から1つ目のエントリは、展開ルール「ExRule1−1」に基づき、管理サーバ10000が、ストレージ装置Aのディスクプール「POOL1」におけるレスポンスタイムの閾値異常を障害原因として判断したこと、イベントIDが「EV2」、「EV3」、「EV5」で示されるイベントが発生したことが判断の根拠とされたこと、及び、確信度すなわち条件イベントの発生割合が3/3であることを示している。このエントリは、例えば、ディスクプール「POOL1」を構成するディスクの性能が遅くなり、ディスクプール「POOL1」の性能が劣化し、論理ボリューム「LV2」の性能も遅くなっていることが想定される場合において、物理サーバAのドライブ「/opt」や、ストレージ装置Aの論理ボリューム「LV1」に対するI/Oの送受信が無いため、論理ボリューム「LV1」やドライブ「/opt」からイベントが上がってきていないケースを示している。
次に、管理サーバ10000が実行する各処理について説明する。まず、管理サーバ10000が実行する構成情報取得処理を説明する。構成情報取得処理は、管理サーバ10000のプロセッサ15000がメモリ11000上に展開された構成設定管理プログラム11600を実行することによって実行される。まず、構成設定管理プログラム11600は、SAN40000に接続された各装置の情報を収集するプログラム(本実施例では、ストレージ装置20000の構成性能情報収集プログラム21200及び物理サーバ30000の構成性能情報収集プログラム31100)と通信し、各装置が保持する構成情報を取得する。
ここで、管理サーバ10000は、物理サーバ30000と、物理サーバ30000上のドライブと、サーバデータI/Fと、ストレージ装置20000と、ストレージデータI/Fと、物理サーバ30000がアクセスする論理ボリューム22100と、論理ボリューム22100が属するディスクプール22200との接続関係を、例えば、SCSI(Small Computer System Interface)のInquiry(インクアイアリ)コマンドを利用して取得してもよい。また、物理サーバ30000がストレージ装置20000にSCSIのInquiryコマンド発行することより、物理サーバ30000がストレージ装置20000から構成情報を取得してもよい。物理サーバ30000の構成情報収集プログラム31100は、物理サーバ30000に関する構成情報を、例えばOSに依頼する等、どのような方法によって取得してもよい。また、ストレージ装置20000上の構成情報収集プログラム21200は、ストレージ装置20000に関する構成情報を、例えばメモリ21000から取得する等、どのような方法によって取得してもよい。続いて、構成設定管理プログラム11600は、取得した構成情報を構成情報テーブル11810に格納し、構成情報取得処理を終了する。
次に、管理サーバ10000が実行する性能情報収集処理を説明する。性能情報収集処理は、管理サーバ10000のプロセッサ15000が、メモリ11000上に展開された性能情報収集プログラム11700を実行することによって実行される。まず、性能情報収集プログラム11700は、SAN40000に接続された各装置の情報を収集するプログラム(本実施例では、ストレージ装置20000の構成性能情報収集プログラム21200及び物理サーバ30000の構成性能情報収集プログラム31100)と通信し、各装置が保持する性能情報を取得する。
ここで、管理サーバ10000は、性能情報テーブル11820に登録される各データ、すなわち、装置ID11821、デバイスID11822、メトリック11823、機器OS11824、性能値11825、アラート実行閾値11826、閾値種別11827、及びStatus11828の各データを、例えば、SCSIのInquiryコマンドを利用して取得してもよい。また、物理サーバ30000がストレージ装置20000にSCSIのInquiryコマンド発行することより、物理サーバ30000がストレージ装置20000から性能情報を取得してもよい。物理サーバ30000の性能情報収集プログラム11700は、物理サーバ30000に関する性能情報を、例えばOSに依頼する等、どのような方法によって取得してもよい。また、ストレージ装置20000上の構成性能情報収集プログラム21200は、ストレージ装置20000に関する性能情報を、例えばメモリ21000から取得する等、どのような方法によって取得してもよい。続いて、性能情報収集プログラム11700は、取得した性能情報を性能情報テーブル11820に格納し、性能情報収集処理を終了する。
図14は、実施例1に係るイベント解析処理のフローチャートである。
イベント解析処理は、管理サーバ10000のプロセッサ15000がメモリ11000上に展開されたイベント解析処理プログラム11400を実行することによって、実行される。
まず、イベント解析処理プログラム11400は、性能情報テーブル11820を参照し、各デバイスの性能値及びアラート実行閾値を取得する(ステップ1001)。次に、イベント解析処理プログラム11400は、取得した各性能値に対し、以下のステップ1002〜ステップ1004の処理を実施する。
イベント解析処理プログラム11400は、処理対象の性能値が、処理対象の性能値に対応するアラート実行閾値を超過しているか否かを確認し、その結果に基づいて、性能情報テーブル11820のStatus11828の値を更新する(ステップ1002)。具体的には、イベント解析処理プログラム11400は、アラート実行閾値を超過している場合は、Status11828に「閾値異常」を格納し、アラート実行閾値を超過していない場合は、Status11828に「正常」を格納する。
次に、イベント解析処理プログラム11400は、ステップ1002の更新前後でStatus11828の値に変更があったか否かを判定し(ステップ1003)、変更があった場合(ステップ1003:Yes)は、処理対象の性能値がアラート実行閾値を超過していることを示すイベントに関するエントリを、イベント管理テーブル11910に登録し(ステップ1004)、次のステップに進む。この際、エントリの発生日時11918には、性能情報収集プログラム11700が、処理対象の性能値を収集した日時が格納される。一方、Status11828の値に変更がなかった場合(ステップ1003:No)は、ステップ1004を実行せずに次のステップに進む。
すべての性能値に対して処理(ステップ1002〜1004)が完了した後、イベント解析処理プログラム11400は、イベント管理テーブル11910に新規に登録された、イベントに関するエントリがあるか否かを判定し(ステップ1005)、新規に登録された、イベントに関するエントリがある場合(ステップ1005:Yes)は、ルール展開処理(図15参照)の実行をルール展開プログラム11500に指示し(ステップ1006)、イベント解析処理を終了する。一方、新規に登録された、イベントに関するエントリがない場合(ステップ1005:No)は、イベント解析処理プログラム11400は、イベント解析処理を終了する。
ここで、本実施例では、イベント解析処理プログラム11400は、性能収集プログラム11700が取得した性能情報を基に、イベント管理テーブル11910へのイベントに関するエントリの登録を実施したが、SNMP(Simple Network Management Protocol)トラップ等の装置からの通知情報を利用して、イベント管理テーブル11910の情報の更新を行ってもよい。
図15は、実施例1に係るルール展開処理のフローチャートである。
ルール展開処理は、管理サーバ10000のプロセッサ15000がメモリ11000上に展開されたルール展開プログラム11500を実行することによって、実行される。
まず、ルール展開プログラム11500は、イベント管理テーブル11910から、新規に登録されたイベントに関するエントリ(イベントエントリ)を取得し、取得したイベントエントリの解析済みフラグ11917を「Yes」に更新する(ステップ2001)。次に、ルール展開プログラム11500は、ルール・プラン情報リポジトリ11900に格納されている1以上の汎用ルールテーブル11920が示す1以上の汎用ルールを取得する(ステップ2002)。ルール展開プログラム11500は、取得した汎用ルールのそれぞれに対し、以下のステップ2004〜ステップ2010の処理を実施する(ステップ2003)。また、ルール展開プログラム11500は、ステップ2001で取得した各イベントエントリに対し、以下のステップ2005〜ステップ2010の処理を実施する。
ルール展開プログラム11500は、処理対象のイベントエントリが示すイベント(処理対象のイベント)が、処理対象の汎用ルールの条件イベントのいずれかとマッチするか否かを判定する(ステップ2005)。例えば、ルール展開プログラム11500は、処理対象のイベントに関係する装置及びデバイスが、条件イベントに関係する装置及びデバイスの種別に対応しており、且つ、処理対象のイベントの種類が、条件イベントの種類と一致する場合に、処理対象のイベントと条件イベントとがマッチすると判定する。
ステップ2005にて、マッチすると判定されていない場合(ステップ2005:No)、ルール展開プログラム11500は、次のイベントエントリを処理対象として処理(ステップ2004〜2010)を実行する。一方、ステップ2005にて、マッチすると判定された場合(ステップ2005:Yes)、ルール展開プログラム11500は、処理対象のイベントに関係する装置及びデバイスと、処理対象の汎用ルールに示された関連をもつ装置及びデバイスの識別子を構成情報テーブル11810から取得する(ステップ2006)。次に、ルール展開プログラム11500は、関連を持つ組み合わせ毎に、処理対象の汎用ルールに基づく展開ルールを作成する(ステップ2007)。
例えば、イベント管理テーブル11910のEV5が処理対象のイベントとされており、汎用ルール「Rule1」が処理対象の汎用ルールとされている場合、処理対象のイベントは、汎用ルール「Rule1」の条件イベント1(イベントID11925が「1」の条件イベント)とマッチする。従って、ルール展開プログラム11500は、処理対象のイベントの発生箇所である物理サーバAのドライブ「/var」と、汎用ルール「Rule1」に記載の関係を持つ(部位間の接続関係が存在する)装置及びデバイスであるストレージ装置20000の論理ボリューム22100とディスクプール22200とを全て列挙する。そして、ルール展開プログラム11500は、物理サーバAのドライブ「/var」と、ストレージ装置20000の論理ボリューム22100と、ストレージ装置20000のディスクプール22200との組み合わせに対応する展開ルールを作成する。
次に、ルール展開プログラム11500は、ルール・プラン情報リポジトリ11900に、作成した展開ルールと同一の展開ルールを示す展開ルールテーブル11950が既に存在しているか否かを判定する(ステップ2008)。
同一の展開ルールを示す展開ルールテーブル11950が存在していない場合(ステップ2008:No)、ルール展開プログラム11500は、作成した展開ルールを示す展開ルールテーブル11950をルール・プラン情報リポジトリ11900に格納し、解析結果管理テーブル11970に新規エントリを登録する(ステップ2009)。一方、同一の展開ルールを示す展開ルールテーブル11950が存在している場合(ステップ2008:Yes)、ルール展開プログラム11500は、解析結果管理テーブル11970の受信イベントID11976に処理対象のイベントのイベントIDを追加し、確信度11974の値を変更する(ステップ2010)。
汎用ルールにおける全てのエントリに対する処理(ステップ2005〜2010)の完了後は、ルール展開プログラム11500は、次の汎用ルールを処理対象として処理(ステップ2004〜2010)を実行する。そして、全ての汎用ルールに対する処理(ステップ2004〜2010)の完了後、ルール展開プログラム11500は、解析結果管理テーブル11970に新規に登録されたエントリがあるか否かを判定し(ステップ2011)、新規に登録されたエントリがある場合(ステップ2011:Yes)は、プラン生成プログラム11100に対してプラン生成処理(図16参照)の実行を指示し(ステップ2012)、ルール展開処理を終了する。一方、新規に登録されたエントリがない場合(ステップ2011:No)は、ルール展開プログラム11500は、ルール展開処理を終了する。
図16は、実施例1に係るプラン生成処理のフローチャートである。
プラン生成処理は、管理サーバ10000のプロセッサ15000がメモリ11000上に展開されたプラン生成プログラム11100を実行することによって、実行される。
まず、プラン生成プログラム11100は、解析結果管理テーブル11970から、新規に登録された解析結果に関するエントリ(解析結果エントリ)を取得する(ステップ3001)。プラン生成プログラム11100は、取得した解析結果エントリのそれぞれに対して、以下のステップ3003〜ステップ3008の処理を実施する(ステップ3002)。
プラン生成プログラム11100は、解析結果管理テーブル11970における処理対象の解析結果エントリの展開ルールID11975に格納されている展開ルールIDを取得する。以下、ここで取得した展開ルールIDを持つ展開ルールを「処理対象の展開ルール」と呼ぶ。そして、プラン生成プログラム11100は、処理対象の展開ルールを示す展開ルールテーブル11950の展開前汎用ルールID11954から、処理対象の展開ルールの基となった汎用ルールの汎用ルールIDを取得する(ステップ3003)。
次に、プラン生成プログラム11100は、ルール・プラン対応テーブル11940から、ステップ3003で取得した汎用ルールIDに対応する1以上の汎用プランIDを取得する。また、プラン生成プログラム11100は、ルール・プラン対応テーブル11940から、ステップ3003で取得した汎用ルールIDと、取得した汎用プランIDとの組み合わせに対応する未解決イベントIDを取得する(ステップ3004)。
次に、プラン生成プログラム11100は、構成情報テーブル11810及び汎用プランテーブル11930を参照し、ステップ3004で取得した汎用プランIDを持つ汎用プランに基づく、処理対象の展開ルールに対応する展開プランを生成し、生成した展開プランを示す展開プランテーブル11960をルール・プラン情報リポジトリ11900に格納する(ステップ3005)。例えば、ボリュームマイグレーションの汎用プランを展開する場合、プラン生成プログラム11100は、移動先プールとなり得るディスクプール22200の全てを構成情報テーブル11810を参照して特定する。例えば、プラン生成プログラム11100は、構成情報テーブル11810に基づいて、移動対象ボリュームにアクセスしていた物理サーバ10000がアクセスすることができる、移動元プールと異なるディスクプール22200を特定し、特定したディスクプール22200を移動先プールとする。
続いて、プラン生成プログラム11100は、ステップ3005で生成した各展開プランに対して、ステップ3007及び3008の処理を繰り返し実行する(ステップ3006)。プラン生成プログラム11100は、性能情報テーブル11820を参照し、プラン実行後の状況をシミュレートすることによってプラン実行後の性能値の予測値を算出し、シミュレートの結果情報に基づいて処理対象の展開プランを示す展開プランテーブル11960のプラン対象11964の値を更新する(ステップ3007)。
次に、プラン生成プログラム11100は、処理対象の展開プランについてのプラン実行後リスク抽出処理(図17参照)の実行をプラン実行後リスク抽出プログラム11200に指示する(ステップ3008)。この際、プラン生成プログラム11100は、処理対象の展開プランに対応する未解決イベント、すなわち、処理対象の展開ルールの基となった汎用ルールと、処理対象の展開プランの基となった汎用プランと、の組み合わせに対応する未解決イベント、の未解決イベントIDをプラン実行後リスク抽出プログラム11200に入力する。このプラン実行後リスク抽出処理により、処理対象の展開プランについてのリスク箇所が特定される。
プラン生成プログラム11100は、取得した解析結果エントリの全てに対する処理(ステップ3003〜3008)の完了後、プラン提示処理プログラム11300に対して、プラン提示処理(図18参照)の実行を指示する(ステップ3009)。その後、プラン生成プログラム11100は、プラン生成処理を終了する。
本実施例では、性能情報、特にI/Oのレスポンスタイムの予測値を取り上げ、シミュレート方法の一例を示したが、展開プランテーブル11960に格納する値としては、プランの特徴を表す指標となり得る値であれば、性能値以外でもよい。管理サーバ10000は、例えば、プラン実行にかかるコストの情報やプラン実行にかかる時間等の情報を構成情報テーブル11810または性能情報テーブル11820に格納しておく等して、性能値と同様にシミュレートを行ってもよい。
図17は、実施例1に係るプラン実行後リスク抽出処理のフローチャートである。
プラン実行後リスク抽出処理は、管理サーバ10000のプロセッサ15000がメモリ11000上に展開されたプラン実行後リスク抽出プログラム11200を実行することによって、実行される。
まず、プラン実行後リスク抽出プログラム11200は、プラン生成プログラム11100から受信した未解決イベントIDを利用して、解析結果管理テーブル11970における処理対象の解析結果エントリの受信イベントID11976に登録されている実際に発生した条件イベントの中から、解消できないイベントを抽出する(ステップ4001)。ここで、解消できないイベントとは、実際に発生した条件イベントのうちの、未解決イベントIDが示す条件イベントに対応するイベントのことをいう。
例えば、図16のステップ3002において、図13の解析結果管理テーブル11970における上から1つ目のエントリ(ストレージ装置Aのディスクプール「POOL1」が障害原因であるエントリ)が処理対象の解析結果エントリとして選択されており、ステップ3006において、展開プラン「ExPlan1−1」が処理対象の展開プランとして選択されている場合、処理対象の展開ルール、すなわち処理対象の解析結果エントリの展開ルールID11975が示す展開ルールは、展開ルール「ExRule1−1」であり、処理対象の展開ルールの基となった汎用ルールは、汎用ルール「Rule1」である。従って、処理対象の展開プラン「ExPlan1−1」に対応する未解決イベントは、展開プラン「ExPlan1−1」の基となった汎用プラン「Plan1」と汎用ルール「Rule1」との組み合わせに対応する未解決イベントであり、図10のルール・プラン対応テーブル11940から、未解決イベント「3」が取得される。この未解決イベント「3」は、汎用ルール「Rule1」の条件イベント3、すなわち、ストレージ装置20000のディスクプール22200におけるレスポンスタイムの閾値異常というイベントを示している。従って、処理対象の解析結果エントリの受信イベントID11976に登録されているイベント(イベント「EV2」、イベント「EV3」、及びイベント「EV5」)のうち、ストレージ装置20000のディスクプール22200におけるレスポンスタイムの閾値異常というイベントに対応するイベント「EV3」が、解消できないイベントとして抽出される。
次に、プラン実行後リスク抽出プログラム11200は、イベント管理テーブル11910、及び展開ルールテーブル11950を参照し、ステップ4001で抽出した解消できないイベントの発生箇所(発生元の装置及びデバイス)を特定する(ステップ4002)。次に、プラン実行後リスク抽出プログラム11200は、構成情報テーブル11810を参照し、解消できないイベントの発生個所、及び解消できないイベントの発生個所とI/Oパス上の関連を持つ箇所(装置及びデバイス)のうちのいずれか1以上をリスク箇所として抽出する(ステップ4003)。
ステップ4003においてリスク箇所が抽出された場合(ステップ4004:Yes)、プラン実行後リスク抽出プログラム11200は、展開プランテーブル11969における処理対象の展開プランのリスク箇所11969に、抽出したリスク箇所を示すデータを格納し(ステップ4005)、プラン実行後リスク抽出処理を終了する。一方、ステップ4003においてリスク箇所が抽出されなかった場合(ステップ4004:No)、プラン実行後リスク抽出プログラム11200は、プラン実行後リスク抽出処理を終了する。
本実施例では、管理者にとって最も重要である業務側の情報、すなわち、物理サーバAのボリューム「/opt」の情報のみをリスク箇所として抽出したが(例えば、図12参照)、構成情報テーブル11810のエントリが示すI/Oパス上におけるその他の箇所、例えば、サーバデータI/F、ストレージ装置20000の論理ボリューム等もリスク箇所として抽出してもよい。
図18は、実施例1に係るプラン提示処理のフローチャートである。
プラン提示処理は、管理サーバ10000のプロセッサ15000がメモリ11000上に展開されたプラン提示プログラム11300を実行することによって、実行される。
まず、プラン提示プログラム11300は、解析結果管理テーブル11970から、障害原因を示す情報、すなわち、原因装置ID11971、原因部位ID11972、メトリック11973、及び確信度11974の値を取得する(ステップ5001)。
次に、プラン提示プログラム11300は、解析結果管理テーブル11970の各解析結果エントリに対して、以下のステップ5002の処理を実施する。ここで、処理対象の解析結果エントリの展開ルールID11975に格納されている展開ルールIDを持つ展開ルールを「処理対象の展開ルール」という。
プラン提示プログラム11300は、ルール・プラン情報リポジトリ11900から、処理対象の展開ルールに対応する1以上の展開プラン(障害回復における候補となるプラン)を示す1以上の展開プランテーブル11960を取得する(ステップ5002)。
全ての解析結果エントリに対する処理(ステップ5002)の完了後、プラン提示プログラム11300は、ステップ5001で取得した障害原因を示す情報及び確信度と、ステップ5002で取得した展開プランテーブル11960とに基づいて、プラン提示画面(図20参照)を生成し、生成したプラン提示画面を出力デバイス14000に表示させる(ステップ5003)。その後、プラン提示プログラム11300は、プラン提示処理を終了する。
図19は、実施例1に係る効果・リスク提示処理のフローチャートである。
管理サーバ10000のプロセッサ15000がメモリ11000上に展開されたプラン提示プログラム11300を実行することによって、プラン提示処理が実行され、プラン提示画面が表示される。
プラン提示プログラム11300は、プラン提示画面において、所望の展開プランが選択され、選択された展開プランに対するプラン詳細画面の表示要求の入力を受信すると、効果・リスク提示処理を開始する(ステップ6001)。
まず、プラン提示プログラム11300は、構成情報テーブル11810を参照して、リスク箇所の状態情報、性能情報、及び設定情報を取得する(ステップ6002)。次に、プラン提示プログラム11300は、展開プランテーブル11960、及び解析結果管理テーブル11970を参照して、選択された展開プランに対応する展開ルールに含まれる条件イベントのうちのどのイベントが発生したかを示す情報と、選択された展開プランを実施した場合にどのイベントが解決するかを示す情報とを取得する(ステップ6003)。次に、プラン提示プログラム11300は、選択された展開プランと関連のあるI/Oパス情報を抽出する(ステップ6004)。
その後、プラン提示プログラム11300は、ステップ6002〜ステップ6004で取得した情報に基づいてプラン詳細画面(図21参照)を生成し、生成したプラン詳細画面を出力デバイス14000に表示させる(ステップ6005)。その後、プラン提示プログラム11300は、効果・リスク提示処理を終了する。
図20は、実施例1に係るプラン提示画面の一例の構成図である。
プラン提示画面9000は、計算機システムにおいて障害が発生した場合に、管理者がその原因を追究して対策を実施する際に参照する情報、具体的には、障害原因と、障害に対して取り得る対策プランのリストとの対応関係を示す情報を表示するための表示領域9001と、対策プランの詳細を表示するためのプラン詳細ボタン9002と、対策プランを実行するためのプラン実行ボタン9003とを有する。
障害原因と障害に対する対策プランとの対応を表示する表示領域9001には、障害原因を示す情報として、例えば、障害原因のイベントに関係する装置のID、障害原因のイベントに関係するデバイスのID、障害原因のイベントの種別、及び、障害原因についての確信度、すなわち条件イベントの総数に対する実際に発生した条件イベント数の割合が表示される。これらの値は、プラン提示プログラム11300が、図18のステップ5001において、図13に示した解析結果管理テーブル11970から取得する。
また、表示領域9001には、障害に対するプランの情報として、例えば、候補となるプランの内容を示す情報、プラン実行にかかるコスト、プラン実行に要する時間(すなわち、障害が残り続ける時間であり、以下「ダウンタイム」という)、プラン実行後の性能情報、及び、リスク箇所を示す情報が表示される。リスク箇所を示す情報は、例えば、展開プランテーブル11960のリスク箇所11969に格納されているリスク箇所を示すデータ(例えば、リスク箇所の名称)、リスク箇所とされたデバイスを有する装置を示すデータ(例えば、装置の名称)等を含む。
プラン実行にかかるコスト情報については、例えば、管理サーバ10000は、図9に示した汎用プランテーブル11930において汎用プランごとにどの程度のコストがかかるかを予め保持しておき、その情報に基づいてコストを決定してもよい。例えば、汎用プラン「Plan8」のストレージポート交換のプランについては、管理サーバ10000は、ストレージポートの購入にかかる値段と、ストレージポートの交換に対応する保守員の人件費を足し合わせた金額を保持しておき、その金額をコストとして表示してもよい。また、汎用プラン「Plan1」のボリュームマイグレーションのプランについては、管理サーバ10000は、データを或る記憶デバイスから別の記憶デバイスに移行する場合にかかるビット単位のコストを保持しておき、移動するボリュームの容量に応じて図20の「Cost($)」のフィールドに表示するコストを算出してもよい。
ダウンタイムについては、例えば、ボリュームマイグレーションのプランの場合、管理サーバ10000は、移動元及び移動先のそれぞれの記憶デバイスのメディア種別とRAIDレベルとの組み合わせごとに、単位時間(例えば1秒)当たりにどの程度の容量のデータをマイグレーションできるかを示すデータをあらかじめ保持しておき、移動するボリュームの容量に応じて図20の「Down time」のフィールドに表示するダウンタイムを算出してもよい。ここで、管理サーバ10000は、実環境における利用状況に応じて、移動にかかる時間が変動することを考慮し、過去の移動履歴情報を利用して、単位時間当たりの移動可能容量を算出し、あらかじめ保持している情報に、あらかじめ保持している情報と履歴情報の平均を取るなどして補正をかけて求めてもよい。ここで、プラン実行にかかるコスト情報、及びダウンタイムについて、求め方の一例を示したが、上記方法に限定されず、他の求め方が採用されてもよい。
プラン実行後の性能情報としては、例えば、図16に示したプラン生成処理のステップ3007でシミュレートされ、図12に示した展開プランテーブル11960のプラン対象11964に格納されたプラン実行後の性能値の予測値、例えば、及びI/O ResponseTime予測11965B、11966B、11967B、11968Cに格納された値が表示される。図20の例では、上から1つ目のプラン(ボリュームマイグレーションのプラン)については、移動対象ボリュームに対するI/Oのレスポンスタイムの予測値が表示され、上から5つ目のプラン(プールへのディスク追加のプラン)については、追加対象プールに対するI/Oのレスポンスタイムの予測値が表示されているが、これ以外の値、例えば、上から1つ目のプラン(ボリュームマイグレーションのプラン)について、移動元プールや移動先のプールに対するI/Oのレスポンスタイムの予測値が表示されてもよいし、そのほかの性能値が表示されてもよい。また、複数の性能値の予測値が表示されてもよい。
ここで、候補となるプランの表示順序を、プラン実行にかかるコストが少ないものから順番に並べたり、プラン実行に要する時間の短いものから順番に並べたり、リスク箇所が存在しないものから順番に並べたりする等、プランの特徴に基づいて並べ替えを行えるようにしてもよい。
並べ替えの方法として、例えば、表示領域9001における「Cost($)」をクリックすることで、コストが少ないものから順番に並べるようにする等、どのような方法によって行われてもよい。
プラン詳細ボタン9002は、プラン詳細画面(図21)の表示を指示するためのボタンである。管理者が、入力装置15000において表示領域9001中の所望のプランを選択し、プラン詳細ボタン9002を押下すると、管理サーバ10000は、図19の効果・リスク提示処理の実行を開始し、選択されたプランの詳細情報を表示するためのプラン詳細画面(図21)を出力装置14000に表示する。
プラン実行ボタン9003は、選択されたプランの実行を指示するためのボタンであり、当該ボタンが押下されると、管理サーバ10000は、選択されたプランに相当する機能を提供するプログラムに対して、プランの実行指示を出す。プランの実行指示を受けたプログラムは、選択されたプランを実行することとなる。ここで、プランを実行するプログラムは、例えば、管理サーバ10000のメモリ11000内のプログラムであり、例えば、ボリュームマイグレーションプログラムや、VM移動プログラム等である。
なお、例えば、表示領域9001において、プラン実行前の性能値及びプラン実行後の性能値の予測値がトレンド情報としてグラフ形式で表示されてもよい。
図20は、プラン表示画面9000の一例であり、プラン実行にかかるコスト、プラン実行に要する時間以外のプランの特徴を表す情報、例えば、プランに関係するリソースを利用している業務であってプラン実行時に影響が波及する可能性のある業務の一覧等が、表示領域9001にあわせて表示されてもよく、他の表示態様が採用されてもよい。
図21は、実施例1に係るプラン詳細画面の一例の構成図である。
プラン詳細画面9010は、計算機システムにおいて障害が発生した場合に、管理者がその原因を追究して対策を実施する際に参照する情報、具体的には、障害に関係する装置及びデバイス間の接続関係等を示す情報を表示する表示領域9011と、リスク箇所の詳細情報を表示する表示領域9017とを有する。表示領域9011は、計算機システム内の物理サーバ30000の構成を表すサーバ領域9012と、スイッチの構成を表すスイッチ領域9013と、ストレージ装置20000の構成を表すストレージ領域9014と、プラン提示画面9000で選択されたプランの実行前の各装置及びデバイス間の接続関係及び設定関係を示す領域9015と、選択されたプランの実行後の各装置及びデバイス間の接続関係及び設定関係を示す領域9016とを有する。また、リスク箇所の詳細情報を表示する表示領域9017は、プラン実行後にもリスクが残り続ける箇所を表すリスク箇所9018と、リスク箇所を放置したままにした場合に、当該リスクの発生するタイミングを表すリスク発生タイミング9019とを有する。
図21に示す例では、表示領域9011のサーバ領域9012には、物理サーバAを表す図形9020と、ストレージ装置Aを表す図形9021とが表示されている。また、図形9020内には、マウントポイントであるドライブ「/opt」及びドライブ「/var」を表す図形が表示され、図形9021内には、論理ボリューム「LV1」及びディスクプール「POOL1」を表す図形等が表示されている。すなわち、サーバ領域9012は、計算機システムの接続関係及び設定関係を表現するための領域となっている。加えて、サーバ領域9012には、解析結果管理テーブル11910で管理されている、システム内で発生した障害イベントを示すマーク9022が、障害イベントの発生個所、例えば、物理サーバAのデータI/F「S2」上に表示されている。また、サーバ領域9012には、展開プランテーブル11960で管理されているリスク箇所を示すマーク9023が、リスク発生個所、例えば、物理サーバAのドライブ「/opt」上に表示されている。また、領域9011では、物理サーバA、ストレージ装置A等の装置及びデバイス同士の接続関係は、それぞれを表す図形同士を接続する実線によって表現されている。
図21に示す例では、プラン実行前の状況を示す領域9015は、物理サーバA上のドライブ「/opt」と、ストレージ装置Aの論理ボリューム「LV1」と、ディスクプール「POOL1」とが関連づけられ、物理サーバA上のドライブ「/var」と、ストレージ装置Aの論理ボリューム「LV2」と、ディスクプール「POOL1」とが関連づけられ、ストレージ装置Aの論理ボリューム「LV3」と、ディスクプール「POOL2」とが関連づけられていることを示している。また、プラン実行前の状況を示す領域9015は、物理サーバA上のドライブ「/var」と、物理サーバA上のデータI/Fと、ストレージ装置AのデータI/Fと、ストレージ装置Aの論理ボリューム「LV2」と、ストレージ装置Aのディスクプール「POOL1」とに障害イベントが発生しており、物理サーバA上のドライブ「/opt」にリスクが存在することを示している。
プラン実行後の状況を示す領域9016は、ディスクプール「POOL1」上に存在していた論理ボリューム「LV2」が、POOL2上に存在するようになることを示しており、プラン実行後にも、ストレージ装置Aのディスクプール「POOL1」に障害イベントが残り続け、物理サーバA上のドライブ「/opt」にリスクが残り続けることを示している。
リスク詳細を示す表示領域9017には、リスク箇所を示すマーク9023のあるデバイスに関する詳細情報が表示される。図21の例では、表示領域9011における物理サーバAのドライブ「/opt」上にあるリスクの詳細情報が領域9017に表示されており、図21に示す例では、領域9017は、リスク箇所が物理サーバAのドライブ「/opt」であり、リスクが発生する可能性のあるタイミングは、ドライブ「/opt」へのI/Oが発生した時であることを表している。リスク発生タイミングは、例えば、図19のステップ6002において取得された情報に基づいて決定される。例えば、管理サーバ10000は、性能情報テーブル11820の性能値11825の情報を取得し、物理サーバAのドライブ「/opt」に関する性能値が0msecであり、I/Oが発生していないことを検出し、I/O発生がリスク発生の契機になり得ると判断し、リスク発生タイミング9019に、当該情報を格納してもよい。
ここで、表示領域9011及び表示領域9017をプラン詳細画面9010が有するようにしていたが、これに限定されず、例えば、表示領域9011のリスク箇所を示すマーク9023がクリックされた際に、表示領域9017が別画面として新規表示されるようにしてもよい。あるいは、プラン提示画面9000の表示領域9001のリスク箇所の情報がクリックされた際に、表示領域9017が別画面として新規表示されるようにしてもよい。また、表示領域9011の物理サーバ30000やストレージ装置20000等の装置またはデバイスを示す図形がクリックされた際に、プラン実行前後の当該装置またはデバイスの性能値が表示されるようにしてもよい。
実施例1によれば、障害原因と障害に対する具体的な回復プランとを関連付けて提示し、各プランの実行によって、障害原因に関連する障害イベントのうち、どれだけのイベントが解消されるかをチェックし、その結果を表示することで、プラン実行後にも潜在的に残されたままとなる問題箇所を、その理由と共にプランの詳細情報として管理者に提示することができる。これにより、管理者は、適切なプランを選択できるようになり、プラン実行後のリスクをプラン選択時に容易に把握することができる。
次に、実施例2について説明する。以下の説明では、実施例1との差異を中心に説明し、同等の構成要素や、同等の機能を持つプログラム、同等の項目を持つテーブルについては、記載を省略する。
図22は、実施例2に係る管理サーバの一例の構成図である。
管理サーバ10000は、実施例1と同様の構成要素を備え、メモリ11000の構成性能情報リポジトリ11800には、さらに、VM構成管理テーブル11830が格納される。VM構成管理テーブル11830は、VMと、VMを論理的に生成し稼働させるハイパーバイザ(以下「HV」とも呼ぶ)との対応関係、及びVMの設定情報、例えば、電源状態情報等を管理する。
図22に示す例では、各種プログラム及びテーブルは、メモリ11000に格納されているが、記憶デバイス12000または他の記憶媒体(図示しない)に格納されていてもよい。この場合、プロセッサ15000は、プログラム実行時にメモリ11000上に対象のプログラムを読み出し、読み出したプログラムを実行する。また、ストレージ装置20000のメモリ21000または物理サーバ30000のメモリ31000に、前述のプログラム及び前述のテーブルが格納され、ストレージ装置20000または物理サーバ30000が、格納されたプログラムを実行してもよい。また、スイッチ等の他の装置が、前述のプログラム及びテーブルを格納し、格納したプログラムを実行してもよい。
図23は、実施例2に係る物理サーバの一例の構成図である。
物理サーバ30000は、実施例1と同様の構成要素を備え、メモリ31000には、さらに、VM管理プログラム31400が格納される。VM管理プログラム31400は、VMの構成情報及び性能情報を管理する。また、VM管理プログラム31400は、VM移動等、VMに関する制御を行う。
図23に示す例では、各種プログラムは、メモリ31000に格納されているが、他の記憶媒体(図示しない)に格納されていてもよい。この場合、プロセッサ33000は、処理実行時にメモリ31000上に対象のプログラムを読み出し、読み出したプログラムを実行する。
図24は、実施例2に係る物理サーバの一例の論理的な構成図である。
物理サーバ30000は、VM70000を論理的に生成し、生成したVM70000を稼働させるHV80000を有する。HV80000は、一度に複数のVM70000を制御することができる。複数のVM70000のそれぞれは、スタンドアローンの物理計算機のようにアプリケーションを実行できる。
図25は、実施例2に係るスイッチの一例の構成図である。
スイッチ60000は、メモリ61000、管理I/F62000、プロセッサ63000、及びスイッチデータI/F64000を有し、これらの装置は、内部バス65000等の内部バス65000を介して接続される。スイッチ60000は、物理サーバ30000のデータI/F32000からストレージ20000のデータI/F26000への通信経路を選択するための装置である。メモリ61000には、構成性能情報収集プログラム61100が格納される。構成性能情報収集プログラム61100は、スイッチ60000の管理情報及び性能情報等を管理サーバ10000との間で送受信するためのプログラムである。
図26は、実施例2に係る構成情報テーブルの一例の構成図である。
構成情報テーブル11810は、実施例1に係る構成情報テーブル11810の各フィールドに加え、スイッチ情報11818を含む。スイッチ情報11818は、スイッチ60000の識別子が格納されるスイッチ11818Aと、スイッチ60000の入力データI/Fを示すデータが格納されるスイッチデータI/F IN11818Bと、スイッチ60000の出力データI/Fを示すデータが格納されるスイッチデータI/F OUT11818Cとを含む。また、スイッチ情報11818は、物理サーバ11811、ストレージ11814等のフィールドの間に配置されているが、このフィールドの位置関係は、通信経路上の装置及びデバイスの位置関係を示している。例えば、図26の上から2つ目のエントリは、物理サーバAのサーバデータI/F「S2」と、ストレージ装置AのストレージデータI/F「P2」との間に、スイッチBとスイッチCとが存在することを示す。より詳しくは、物理サーバAのサーバデータI/F「S2」と、スイッチBのデータI/F「R10」とが接続され、スイッチBのデータI/F「R11」とスイッチCのデータI/F「R20」とが接続され、スイッチCのデータI/F「R21」とストレージ装置AのストレージデータI/F「P2」とが接続されていることを示す。また、情報構成テーブル11810では、VM70000の構成情報も物理サーバ30000の構成情報と同様に格納される。したがって、物理サーバ11811には、VM70000を一意に識別するための識別子が格納される。例えば、図26の上から5つ目のエントリは、ストレージBのディスクプール「POOL3」から生成された論理ボリューム「LV10」が、ストレージBのストレージデータI/F「P3」、スイッチAのデータI/F「R2」、「R1」、及びサーバデータI/F「S3」を介してVM1に接続され、VM1上で論理ボリューム「E:」として認識されていることを示す。
図27は、実施例2に係るVM構成管理テーブルの一例の構成図である。
構成設定管理プログラム11600が実行されることによって、VM構成管理テーブル11830にエントリが追加される。構成設定管理プログラム11600は、仮想サーバ11831、電源状態11832、物理サーバ11833、及びサーバデータI/F11834のフィールドを含む。仮想サーバ11831には、VM70000を一意に識別するための識別子が格納される。電源状態11832には、VM70000の電源状態を示すデータ、例えば「ON」、「OFF」、または「SUSPEND」が格納される。物理サーバ11833には、VM70000が動作している物理サーバ30000を一意に識別するための識別子が格納される。サーバデータI/F11834には、物理サーバ30000のサーバデータI/Fを一意に識別するための識別子が格納される。
図28は、実施例2に係る性能情報テーブルの一例の構成図である。
実施例2に係る性能情報テーブル11820の構成は、実施例1に係る性能情報テーブル11820の構成と実質的に同じである。実施例2に係る性能情報テーブル11820には、計算機システムを構成する装置またはデバイスに関する性能情報として、VM70000の性能情報、ハイパーバイザ80000の性能情報、及びスイッチ60000の性能情報も格納される。ここででは、VM70000、及びハイパーバイザ8000も装置として扱われている。例えば、装置ID11821には、VM70000、ハイパーバイザ80000、又はスイッチ60000を一意に識別するための識別子が格納される。 図29は、実施例2に係るイベント管理テーブルの一例の構成図である。
実施例2に係るイベント管理テーブル11910の構成は、実施例1に係るイベント管理テーブル11910の構成と実質的に同じである。実施例2に係るイベント管理テーブル11910には、計算機システムを構成する装置またはデバイスで発生するイベントに関する情報として、VM70000で発生したイベントに関する情報、ハイパーバイザ80000で発生したイベントに関する情報、及びスイッチ60000で発生したイベントに関する情報も格納される。
図30Aは、実施例2に係る汎用ルールテーブルの第1の構成図である。図30Bは、実施例2に係る汎用ルールテーブルの第2の構成図である。
実施例2に係る汎用ルールテーブル11920の構成は、実施例1に係る汎用ルールテーブル11920の構成と実質的に同じである。実施例2では、VM70000に関するイベント、ハイパーバイザ80000に関するイベント、及びスイッチ60000に関するイベントについても、汎用ルールの条件部11921及び結論部11922で定義される条件イベントとして採用される。
図31は、実施例2に係るルール・プラン対応テーブルの一例の構成図である。
実施例2に係るルール・プラン対応テーブル11940の構成は、実施例1に係るルール・プラン対応テーブル11940の構成と実質的に同じである。実施例2では、汎用ルールとして汎用ルール「Rule3」及び「Rule4」を、汎用プランとして汎用プラン「Plan1」及び「Plan6」を取り上げて説明する。
図32Aは、実施例2に係る展開ルールテーブルの第1の構成図である。図32Bは、実施例2に係る展開ルールテーブルの第2の構成図である。
実施例2に係る展開ルールテーブル11950の構成は、実施例1に係る展開ルールテーブル11950の構成と実質的に同じである。実施例2では、VM70000に関するイベント、ハイパーバイザ80000に関するイベント、及びスイッチ60000に関するイベントについても、展開ルールの条件部11951及び結論部11952で定義される条件イベントとして採用される。
図33Aは、実施例2に係る展開プランテーブルの第1の構成図である。図33Bは、実施例2に係る展開プランテーブルの第2の構成図である。図33Cは、実施例2に係る展開プランテーブルの第3の構成図である。
実施例2に係る展開プランテーブル11960の構成は、実施例1に係る展開プランテーブル11960の構成と実質的に同じである。実施例1と同様に、プラン対象11964に含まれるフィールドは、プランの内容によって異なる。
図33Bまたは図33Cに示す展開プランは、汎用プラン「Plan6」に基づく展開プラン、すなわちVM移動に関する展開プランでは、プラン対象11964は、例えば、対象VM1196B、移動元1196C、及び移動先1196Dのフィールドを含む。対象VM1196Bは、VM移動の対象となるVM70000(以下「対象VM」という)の識別子が格納されるID1196BAと、対象VMの移動後の性能値が格納される性能1196BBとのフィールドを含む。移動元1196Cは、対象VMの移動元のハイパーバイザ80000(以下「移動元ハイパーバイザ」という)の識別子が格納されるID1196CAと、対象VMが移動された後の移動元ハイパーバイザの性能値が格納される性能1196CBとのフィールドを含む。移動先1196Dは、対象VMの移動先のハイパーバイザ80000(以下「移動先ハイパーバイザ」という)の識別子が格納されるID1196DAと、対象VMが移動された後の移動先ハイパーバイザの性能値が格納される性能1196DBとのフィールドを含む。ID1196BA、ID1196CA、ID1196DAに格納される識別子については、プラン生成プログラム11100が、構成情報テーブル11810等から取得し、格納する。また、性能1196BB、性能1196CB、性能1196DBに格納される性能情報の予測値については、値の算出において、どのような方法が採用されてもよく、例えば、プラン生成プログラム11100は、実施例1で示したように、IOPSを加算しまたは減算することにより予測値を求めてもよい。ここでは、性能情報の例を記載したが、コスト情報や障害によるシステムのダウンタイム時間情報等が格納されてもよい。また、ここでは移動元、及び移動先として、単一のハイパーバイザ80000としていたが、リソースを共有する複数のハイパーバイザ80000の集合や、ハイパーバイザ80000内のデータストアが、移動元、及び移動先とされてもよい。
図34は、実施例2に係る解析結果管理テーブルの一例の構成図である。
実施例2に係る解析結果管理テーブル11970の構成は、実施例1に係る解析結果管理テーブル11970の構成と実質的に同じである。実施例2では、VM70000の識別子、ハイパーバイザ80000の識別子、スイッチ60000の識別子、及びそれらのデバイスの識別子についても、原因装置ID11971、及び原因部位ID11972に格納され得る。また、VM70000に関するイベントの識別子、ハイパーバイザ80000に関するイベントの識別子、及びスイッチ60000に関するイベントの識別子についても、受信イベントID11976に格納され得る。
図35は、実施例2に係るプラン提示処理のフローチャートである。
プラン提示処理は、管理サーバ10000のプロセッサ15000がメモリ11000上に展開されたプラン提示プログラム11300を実行することによって、実行される。
まず、プラン提示プログラム11300は、解析結果管理テーブル11970から、障害原因を示す情報、すなわち、原因装置ID11971、原因部位ID11972、メトリック11973、及び確信度11974の値を取得する(ステップ7001)。
次に、プラン提示プログラム11300は、ルール・プラン情報リポジトリ11900に格納されている1以上の展開プランテーブル11960が示す1以上の展開プランのそれぞれに対して、以下のステップ7002〜7005の処理を実行する。プラン提示プログラム11300は、ルール・プラン情報リポジトリ11900に格納されている1以上の展開プランテーブル11960が示す1以上の展開プラン内に、処理対象の展開プランと、展開ルールID1196Aの値が異なり、すなわち、対応する展開ルールが異なり、且つ、同一の処理内容を持つ展開プラン(以下「第1の集約対象プラン」という)が存在するか否かを判定する(ステップ7002)。
第1の集約対象プランが存在しない場合(ステップ7002:No)、プラン提示プログラム11300は、処理をステップ7004に進める。一方、第1の集約対象プランが存在する場合(ステップ7002:Yes)、プラン提示プログラム11300は、展開プランテーブル11960から第1の集約対象プランを削除し、処理対象の展開プランを含む展開プランテーブル11960の展開ルールID1196Aの値を更新し(ステップ7003)、処理をステップ7004に進める。
例えば、図33B、図33Cの例では、展開プラン「ExPlan6−1」と展開プラン「ExPlan6−3」とが、展開プラン「ExPlan6−2」と展開プラン「ExPlan6−4」とが、それぞれ、対応する展開ルールが異なり、且つ、同一の処理内容を持つ展開プランとなっている。従って、処理対象の展開プランが展開プラン「ExPlan6−1」である場合、プラン提示プログラム11300は、ステップ7002において展開プラン「ExPlan6−3」を第1の集約対象プランと特定し、ステップ7003において、展開プラン「ExPlan6−3」を展開プランテーブル11960から削除し、展開プラン「ExPlan6−1」を含む展開プランテーブル11960の展開ルールID1196Aの値を、展開ルール「ExRule3−1」及び展開ルール「ExRule4−1」であることを示すデータ、例えば「ExRule3−1、ExRule4−1」に更新する。また、処理対象の展開プランが展開プラン「ExPlan6−2」である場合、プラン提示プログラム11300は、ステップ7002において展開プラン「ExPlan6−4」を第1の集約対象プランと特定し、ステップ7003において、展開プラン「ExPlan6−4」を展開プランテーブル11960から削除し、展開プラン「ExPlan6−2」を含む展開プランテーブル11960の展開ルールID1196Aの値を、「ExRule3−1、ExRule4−1」に更新する。なお、ここでは、既存の展開プランテーブル11960の展開ルールID1196Aの値を更新するようにしたが、展開ルールID1196Aに「ExRule3、ExRule4」が格納された新規の展開プランテーブル11960が作成されてもよい。
ステップ7004では、プラン提示プログラム11300は、ルール・プラン情報リポジトリ11900に格納されている1以上の展開プランテーブル11960が示す1以上の展開プラン内に、処理対象の展開プランと、汎用プランID11962が同一であり、すなわち、基となる汎用プランが同一であり、且つ、類似した性能情報を持ち、且つ、同一のリスクを持つ展開プラン(以下「第2の集約対象プラン」という)が存在するか否かを判定する。
第2の集約対象プランが存在しない場合(ステップ7004:No)、プラン提示プログラム11300は、ステップ7005を実行せずに次の処理へ処理を進める。一方、第2の集約対象プランが存在する場合(ステップ7004:Yes)、プラン提示プログラム11300は、処理対象の展開プラン及び1以上の第2の集約対象プランの中で、プラン実行後の性能値の予測値が最も良い展開プラン(以下「最良プラン」という)を特定する。そして、プラン提示プログラム11300は、展開プランテーブル11960から、処理対象の展開プラン及び1以上の第2の集約対象プランのうちの最良プランではない展開プランを削除し、展開プランテーブル11960の展開ルールID1196Aの値を更新する(ステップ7005)。
例えば、図33A及び図33Bの例では、基となる汎用プランが同一であり、且つ、類似した性能情報を持ち、且つ、同一のリスクを持つ展開プランである展開プラン「ExPlan1−1」、展開プラン「ExPlan1−2」、及び展開プラン「ExPlan1−3」のうち、展開プラン「ExPlan1−1」が、移動対象ボリュームの性能が最も良くなる最良プランである。従って、最良プラン「ExPlan1−1」のみが残され、それ以外の展開プラン「ExPlan1−2」、及び展開プラン「ExPlan1−3」は削除される。また、基となる汎用プランが同一であり、且つ、類似した性能情報を持ち、且つ、同一のリスクを持つ展開プランである展開プラン「ExPlan6−1」、及び展開プラン「ExPlan6−2」のうち、展開プラン「ExPlan6−1」が、対象VMの性能が最も良くなる最良プランである。従って、最良プラン「ExPlan6−1」のみが残され、それ以外の展開プラン「ExPlan6−2」は削除される。
ここで、性能情報が類似していると判断する範囲は、例えば、I/Oのレスポンスタイプが±1msc以下の範囲内にあるなど、固定的にあらかじめ設定されていてもよいし、入力デバイス13000を通して、管理者によって設定されてもよい。
なお、ステップ7005において、プラン提示プログラム11300は、最良プラン、例えば、I/Oのレスポンスタイムが最も速い等の1つの展開プランのみを残し、それ以外の展開プランを削除することとしたが、プラン実行後の性能値の予測値が良い複数の展開プランを残してもよい。集約後に残される展開プランの個数については、例えば、あらかじめ残す個数が固定的に決められていてもよいし、入力デバイス13000を通して、管理者によって設定されてもよい。また、出力画面内に全ての展開プランが表示可能となるように、集約後の展開プランの個数が決定されてもよい。また、本処理の目的は、類似する展開プランが多数表示されることにより、管理者によるプラン選択作業が煩雑になることを避けることである。例えば、展開プランを削除するのではなく、プラン実行後の性能値の良い展開プランのみを表示するようにし、そのほかの展開プランを表示しないようにしておき、所定のボタンがクリックされることで表示または非表示が切り替えられるようにする等の方法が採用されてもよい。
全ての展開プランに対する処理(ステップ7002〜7005)の完了後、プラン提示プログラム11300は、ステップ7001で取得した障害原因を示す情報及び確信度と、ルール・プラン情報リポジトリ11900に格納されている展開プランテーブル11960とに基づいて、プラン提示画面9000(図36参照)を生成し、生成したプラン提示画面9000を出力デバイス14000に表示させる(ステップ7006)。その後、プラン提示プログラム11300は、プラン提示処理を終了する。
図36は、実施例2に係るプラン提示画面の一例の構成図である。
実施例2に係るプラン提示画面9000の構成は、実施例1に係るプラン提示画面9000の構成と実質的に同じである。
実施例2では、プラン生成処理によって、図33A、図33B、及び図33Cに示した展開プランが生成される。具体的には、ボリュームマイグレーションに関する展開プランとして、展開プラン「ExPlan1−1」、展開プラン「ExPlan1−2」、及び展開プラン「ExPlan1−3」が生成され、VM移動に関する展開プランとして、展開プラン「ExPlan6−1」、展開プラン「ExPlan6−2」、展開プラン「ExPlan6−3」、及び展開プラン「ExPlan6−4」が生成される。すなわち、合計7つの展開プランが生成される。図35に示した実施例2に係るプラン提示処理により、展開プラン「ExPlan1−1」、展開プラン「ExPlan1−2」、及び展開プラン「ExPlan1−3」のうち、移動対象ボリュームの性能が最も良くなるプランである展開プラン「ExPlan1−1」のみが残され、展開プラン「ExPlan1−2」、及び展開プラン「ExPlan1−3」が削除される。また、プラン提示処理により、展開プラン「ExPlan6−1」、展開プラン「ExPlan6−2」、展開プラン「ExPlan6−3」、及び展開プラン「ExPlan6−4」のうち、対象VMの性能が最も良くなるプランの一つである展開プラン「ExPlan6−1」のみが残され、展開プラン「ExPlan6−2」、展開プラン「ExPlan6−3」、及び展開プラン「ExPlan6−4」が削除される。この例では、障害原因がストレージ装置20000である汎用ルールに対応する展開プランと、障害原因がスイッチ60000である汎用ルールに対応する展開プランとを集約できることが示されている。本画面9000では、本質的には、根本原因の異なる障害に対する対策プランが共通していることを図示できればよく、図36に示した表示方法に限定されない。
実施例2によれば、障害原因と障害に対する具体的な回復プランとを関連付けて提示し、各プランの実行によって、障害原因に関連する障害イベントのうち、どれだけのイベントが解消されるかをチェックし、その結果を表示することで、プラン実行後にも潜在的に残されたままとなる問題箇所を、その理由と共にプランの詳細情報として管理者に提示することができる。これにより、管理者は、適切なプランを選択できるようになり、プラン実行後のリスクをプラン選択時に把握することができる。また、同等あるいは類似した効果が得られる展開プラン同士を1つにまとめることで、冗長なプランの提示を抑制し、また、障害に対する回復プランが大量に存在する場合に、管理者に対して提示するプランの数を削減することができ、プラン詳細の確認作業やプランの選択作業における管理者のコストを低減することができる。