(57)【特許請求の範囲】
【請求項１】
計算機と、ネットワークを介して前記計算機に接続される監視計算機と、を備える計算機システムであって、
前記計算機は、第１プロセッサと、前記第１プロセッサに接続される第１記憶装置と、前記第１プロセッサ及び前記ネットワークに接続される第１インターフェースと、を備え、
前記監視計算機は、第２プロセッサと、前記第２プロセッサに接続される第２記憶装置と、前記第２プロセッサ及び前記ネットワークに接続される第２インターフェースと、を備え、
前記第１プロセッサは、前記計算機の前記第１プロセッサを含む資源を論理的に分割し、前記分割された資源の各々を、互いに独立した第１仮想計算機及び第２仮想計算機として動作させる仮想化プログラムを実行し、
前記第１仮想計算機は、第１ゲストオペレーティングシステムを実行し、
前記第２仮想計算機は、第２ゲストオペレーティングシステムを実行し、
前記第２記憶装置は、前記第１仮想計算機の識別情報及び前記第２仮想計算機の識別情報と、前記第１ゲストオペレーティングシステムの識別情報及び前記第２ゲストオペレーティングシステムの識別情報と、をそれぞれ対応付ける、仮想計算機ゲストオペレーティングシステム対応情報を保持し、
前記第２プロセッサは、
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報を、前記仮想化プログラムから取得する第１手順と、
前記第１仮想計算機の性能を示す情報を、前記第１ゲストオペレーティングシステムから取得する第２手順と、
前記第２仮想計算機の性能を示す情報を、前記第２ゲストオペレーティングシステムから取得する第３手順と、
前記割り当てられた資源に関する情報、前記割り当てられた資源に関する情報を取得した時刻を示す情報、前記性能を示す情報、及び、前記性能を示す情報を取得した時刻を示す情報を前記第２記憶装置に格納する第４手順と、
前記仮想計算機ゲストオペレーティングシステム対応情報に基づいて、前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報を、それぞれ、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報と対応付ける第９手順と、
前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報、並びに、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報に基づいて、前記資源の実際の性能を算出する第１０手順と、を実行し、
前記第９手順は、前記第１仮想計算機に割り当てられた前記資源及び前記第２仮想計算機に割り当てられた前記資源が仮想ネットワークインターフェースカードである場合、前記各資源に関連付けられたメディアアクセスコントロールアドレスに基づいて、前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報を、それぞれ、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報と対応付ける手順であることを特徴とする計算機システム。
【請求項２】
前記第２プロセッサは、さらに、前記時刻を示す情報と、前記時刻において取得された前記割り当てられた資源に関する情報と、前記時刻において取得された前記性能を示す情報と、を出力する第５手順を実行することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２プロセッサは、エージェントプログラムを実行し、
前記第１手順、前記第２手順及び前記第３手順は、前記第２プロセッサが前記エージェントプログラムを実行することによって実行され、
前記第４手順は、
前記第２プロセッサが前記エージェントプログラムを実行することによって、前記第１ゲストオペレーティングシステムから取得した情報を前記第２記憶装置に格納し、
前記第２プロセッサが前記エージェントプログラムを実行することによって、前記第２ゲストオペレーティングシステムから取得した情報を前記第２記憶装置に格納し、
前記第２プロセッサが前記エージェントプログラムを実行することによって、前記仮想化プログラムから取得した情報を前記第２記憶装置に格納することによって実行されることを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２プロセッサは、エージェントプログラムを実行し、
前記第１手順、前記第２手順及び前記第３手順は、前記第２プロセッサが前記エージェントプログラムを実行することによって実行され、
前記第４手順は、前記第２プロセッサが前記エージェントプログラムを実行することによって実行され、
前記第２プロセッサは、さらに、
前記エージェントプログラムを実行することによって、前記第２仮想計算機の起動を検出する第６手順と、
前記第２仮想計算機が起動した後、前記エージェントプログラムを実行することによって、前記第２仮想計算機への前記資源の割り当て率を監視する第７手順と、
前記第２仮想計算機への前記資源の割り当て率が所定の条件を満たす場合、前記エージェントプログラムを実行することによって、前記第２ゲストオペレーティングシステムの起動が失敗したことを示す通知を送信する第８手順と、を実行することを特徴とする請求項１に記載の計算機システム。
【請求項５】
計算機と、ネットワークを介して前記計算機に接続される監視計算機と、を備える計算機システムにおいて、前記監視計算機を制御するプログラムであって、
前記計算機は、第１プロセッサと、前記第１プロセッサに接続される第１記憶装置と、前記第１プロセッサ及び前記ネットワークに接続される第１インターフェースと、を備え、
前記監視計算機は、第２プロセッサと、前記第２プロセッサに接続される第２記憶装置と、前記第２プロセッサ及び前記ネットワークに接続される第２インターフェースと、を備え、
前記第１プロセッサは、前記計算機の前記第１プロセッサを含む資源を論理的に分割し、前記分割された資源の各々を、互いに独立した第１仮想計算機及び第２仮想計算機として動作させる仮想化プログラムを実行し、
前記第１仮想計算機は、第１ゲストオペレーティングシステムを実行し、
前記第２仮想計算機は、第２ゲストオペレーティングシステムを実行し、
前記第２記憶装置は、前記第１仮想計算機の識別情報及び前記第２仮想計算機の識別情報と、前記第１ゲストオペレーティングシステムの識別情報及び前記第２ゲストオペレーティングシステムの識別情報と、をそれぞれ対応付ける、仮想計算機ゲストオペレーティングシステム対応情報を保持し、
前記プログラムは、
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報を、前記仮想化プログラムから取得する第１手順と、
前記第１仮想計算機の性能を示す情報を、前記第１ゲストオペレーティングシステムから取得する第２手順と、
前記割り当てられた資源に関する情報、前記割り当てられた資源に関する情報を取得した時刻を示す情報、前記性能を示す情報、及び、前記性能を示す情報を取得した時刻を示す情報を前記第２記憶装置に格納する第４手順と、
前記仮想計算機ゲストオペレーティングシステム対応情報に基づいて、前記第１仮想計算機の性能を示す情報を、前記第１仮想計算機に割り当てられた前記資源に関する情報と対応付ける第９手順と、
前記第１仮想計算機の性能を示す情報及び前記第１仮想計算機に割り当てられた前記資源に関する情報に基づいて、前記資源の実際の性能を算出する第１０手順と、を前記第２プロセッサに実行させ、
前記第９手順は、前記第１仮想計算機に割り当てられた前記資源が仮想ネットワークインターフェースカードである場合、前記資源に関連付けられたメディアアクセスコントロールアドレスに基づいて、前記第１仮想計算機の性能を示す情報を、前記第１仮想計算機に割り当てられた前記資源に関する情報と対応付ける手順であることを特徴とするプログラム。
【請求項６】
前記プログラムは、さらに、前記時刻を示す情報と、前記時刻において取得された前記割り当てられた資源に関する情報と、前記時刻において取得された前記性能を示す情報と、を出力する第５手順を前記第２プロセッサに実行させることを特徴とする請求項５に記載のプログラム。
【請求項７】
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第４手順は、さらに、
前記第１ゲストオペレーティングシステムから取得した情報を前記第２記憶装置に格納する手順と、
前記仮想化プログラムから取得した情報を前記第２記憶装置に格納する手順と、を含むことを特徴とする請求項５に記載のプログラム。
【請求項８】
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記プログラムは、さらに、
前記第２仮想計算機の起動を検出する第６手順と、
前記第２仮想計算機が起動した後、前記第２仮想計算機への前記資源の割り当て率を監視する第７手順と、
前記第２仮想計算機への前記資源の割り当て率が所定の条件を満たす場合、前記第２ゲストオペレーティングシステムの起動が失敗したことを示す通知を送信する第８手順と、を前記プロセッサに実行させることを特徴とする請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で開示される技術は、情報処理システムの性能監視技術に属し、例えば、監視対象計算機上で稼動し、監視対象計算機から動的なリソースを割り当てられる仮想計算機について、仮想計算機上で稼働するオペレーティングシステム及びアプリケーションの性能を監視する技術に関する。
【背景技術】
【０００２】
情報処理システムでは、負荷が高くなるとオペレーティングシステム（ＯＳ）及びアプリケーションプログラムの処理性能が低下する。
【０００３】
情報処理システムの監視には、いくつかの種類がある。例えば、情報処理システムの現状の状態を調査するために情報処理システムの現在の性能情報をリアルタイムに取得・表示することによる監視、及び、性能情報を記憶装置に履歴情報として記憶しておき過去の性能情報を調査することによる監視が挙げられる。あるいは、一定時間間隔で取得した性能情報を、設定された閾値と比較し、取得した性能情報が閾値を超過した場合に、アラートを発生させる又は管理者にメールを配信する等のアクションを実行することによる監視が挙げられる。
【０００４】
情報処理システムの性能を監視することで、情報処理システムの障害を検知し、その障害への対処を決定することができる。
【０００５】
近年、情報処理システムの分野において、計算機を仮想化する技術が普及しつつある。この技術によれば、物理的な計算機のリソースを論理的に分割することによって、例えば一つの物理的な計算機を複数の仮想計算機として使用することができる。特許文献１には、一つの計算機が複数の仮想計算機に分割され、それぞれの仮想計算機上でＯＳが動作している場合に性能を監視する技術が開示されている。特許文献２には、仮想計算機システムの各論理区画（ＬＰＡＲ）上のＯＳの負荷と、各ＯＳで動作するワークロードの知識に基づく設定情報を元に、各ＬＰＡＲに対する計算機のリソースの割り当てを最適化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１１５７５１号公報
【特許文献２】特開２００３−１５７１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
仮想計算機では、監視対象計算機のリソースの一部が仮想計算機のリソースとして割り当てられる。さらに、仮想計算機の負荷に応じて動的に割り当てリソースが変動する場合がある。このため、単一のゲストＯＳに関する性能情報のみを監視するだけでは、仮想計算機の性能監視をすることができない。また、仮想化機構の設定を変更した場合、当該設定変更に係る仮想計算機とホストのリソースを共有する他の仮想計算機に、その設定変更の影響が及ぶ可能性がある。このため、単一のゲストＯＳに関する性能情報のみを監視するだけでは、効果的な対処決定をすることができない。
【０００８】
本発明の目的は、前述した従来技術の問題点を解決し、仮想計算機の性能を監視する方法及び装置を提供することにある。
【課題を解決するための手段】
【０００９】
本願で開示する代表的な発明は、
計算機と、ネットワークを介して前記計算機に接続される監視計算機と、を備える計算機システムであって、前記計算機は、第１プロセッサと、前記第１プロセッサに接続される第１記憶装置と、前記第１プロセッサ及び前記ネットワークに接続される第１インターフェースと、を備え、前記監視計算機は、第２プロセッサと、前記第２プロセッサに接続される第２記憶装置と、前記第２プロセッサ及び前記ネットワークに接続される第２インターフェースと、を備え、前記第１プロセッサは、前記計算機の前記第１プロセッサを含む資源を論理的に分割し、前記分割された資源の各々を、互いに独立した第１仮想計算機及び第２仮想計算機として動作させる仮想化プログラムを実行し、前記第１仮想計算機は、第１ゲストオペレーティングシステムを実行し、前記第２仮想計算機は、第２ゲストオペレーティングシステムを実行し、前記第２記憶装置は、前記第１仮想計算機の識別情報及び前記第２仮想計算機の識別情報と、前記第１ゲストオペレーティングシステムの識別情報及び前記第２ゲストオペレーティングシステムの識別情報と、をそれぞれ対応付ける、仮想計算機ゲストオペレーティングシステム対応情報を保持し、前記第２プロセッサは、前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報を、前記仮想化プログラムから取得する第１手順と、前記第１仮想計算機の性能を示す情報を、前記第１ゲストオペレーティングシステムから取得する第２手順と、前記第２仮想計算機の性能を示す情報を、前記第２ゲストオペレーティングシステムから取得する第３手順と、前記割り当てられた資源に関する情報、前記割り当てられた資源に関する情報を取得した時刻を示す情報、前記性能を示す情報、及び、前記性能を示す情報を取得した時刻を示す情報を前記第２記憶装置に格納する第４手順と、前記仮想計算機ゲストオペレーティングシステム対応情報に基づいて、前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報を、それぞれ、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報と対応付ける第９手順と、前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報、並びに、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報に基づいて、前記資源の実際の性能を算出する第１０手順と、を実行し、前記第９手順は、前記第１仮想計算機に割り当てられた前記資源及び前記第２仮想計算機に割り当てられた前記資源が仮想ネットワークインターフェースカードである場合、前記各資源に関連付けられたメディアアクセスコントロールアドレスに基づいて、前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報を、それぞれ、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報と対応付ける手順であることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ゲストＯＳ上で管理されている性能情報をリソース割当情報と関連付けることができる。このため、仮想計算機の割当てリソースが動的に変動する場合も仮想計算機の性能を監視し、有効な対処方法を決定することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態による情報処理システムの構成を示す機能ブロック図である。
【図２】本発明の第１の実施形態の監視対象計算機のハードウェア構成を示すブロック図である。
【図３Ａ】本発明の第１の実施形態の仮想計算機ゲストＯＳ対応テーブルの説明図である。
【図３Ｂ】本発明の第１の実施形態の性能監視エージェントゲストＯＳ対応テーブルの説明図である。
【図３Ｃ】本発明の第１の実施形態の監視情報テーブルの説明図である。
【図３Ｄ】本発明の第１の実施形態のゲスト性能情報テーブルの説明図である。
【図３Ｅ】本発明の第１の実施の形態の管理テーブルの説明図である。
【図４Ａ】本発明の第１の実施形態の性能監視エージェントが、性能情報を収集する処理を示すフローチャートである。
【図４Ｂ】本発明の第１の実施形態の性能監視エージェントが、性能監視マネージャーを介して、運用管理端末に監視情報を応答する処理を示すフローチャートである。
【図４Ｃ】本発明の第１の実施の形態の性能監視エージェントの監視情報管理が、性能情報提供から収集した情報と、監視情報提供部から収集した情報とを対応付ける処理の一例を説明するフローチャートである。
【図５】本発明の第２の実施形態による情報処理システムの構成を示す機能ブロック図である。
【図６】本発明の第３の実施形態による情報処理システムの構成を示す機能ブロック図である。
【図７】本発明の第４の実施形態による情報処理システムの構成を示す機能ブロック図である。
【図８】本発明の第４の実施形態の閾値テーブルの説明図である。
【図９Ａ】本発明の第４の実施形態による情報処理システムが性能情報を収集する処理、及び、収集した情報を共有記憶部に記憶する処理を説明するフローチャートである。
【図９Ｂ】本発明の第４の実施形態による性能監視エージェントが監視情報提供部から収集し記憶した監視情報を読み出す処理、及び、監視情報を運用管理端末に表示する処理を示すフローチャートである。
【図９Ｃ】本発明の第４の実施形態において、代表監視エージェントが稼動する仮想計算機の負荷が高いか否かを判定するために実行される処理を示すフローチャートである。
【図９Ｄ】本発明の第４の実施形態において、オペレータが性能情報の監視間隔を変更した場合の処理を説明するフローチャートである。
【図１０Ａ】本発明の第５の実施形態の負荷判定履歴テーブルの説明図である。
【図１０Ｂ】本発明の第５の実施形態の交代条件テーブルの説明図である。
【図１１Ａ】本発明の第５の実施形態の情報処理システムにおいて実行される処理の全体を説明するフローチャートである。
【図１１Ｂ】本発明の第５の実施形態において、代表監視エージェントでない性能監視エージェントの監視情報管理部が、代表監視エージェントが稼動する仮想計算機の負荷が継続して高いか否かを判定する処理を示すフローチャートである。
【図１１Ｃ】本発明の第５の実施形態の性能監視マネージャーが新たな代表監視エージェントを決定する処理を示すフローチャートである。
【図１２】本発明の第６の実施形態による情報処理システムの構成を示す機能ブロック図である。
【図１３Ａ】本発明の第６の実施形態の性能監視エージェントがゲストＯＳの起動失敗を監視する処理のうち、起動に成功した場合の処理を示すシーケンス図である。
【図１３Ｂ】本発明の第６の実施形態の性能監視エージェントがゲストＯＳの起動失敗を監視する処理のうち、起動に失敗した場合の処理を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、本発明による情報処理システムの実施形態を、図面に基づいて詳細に説明する。
【００１３】
図１は、本発明の第１の実施形態による情報処理システムの構成を示す機能ブロック図である。
【００１４】
本発明の第１の実施形態による情報処理システムは、監視対象計算機５０と、監視マネージャー計算機５１と、運用管理端末５２と、を備える計算機システムによって実現される。監視対象計算機５０、監視マネージャー計算機５１及び運用管理端末５２は、ネットワーク２６を介して接続されている。
【００１５】
ここで、本実施形態における情報処理システムのオペレータは、運用管理端末５２を通して、監視対象計算機５０上で稼動している仮想計算機の性能を監視する。
【００１６】
監視対象計算機５０は、仮想化機構３０を備えている。
【００１７】
仮想化機構３０は、監視対象計算機５０のＣＰＵ２１（図２参照）によって実行されるソフトウェアである。仮想化機構３０は、監視対象計算機５０のリソースを論理的に分割することによって、仮想化機構３０上に仮想的な計算機環境を構築する。仮想化機構３０は、仮想化機構３０上で動作するゲストＯＳ３１が互いに独立して各種の処理を実行するよう制御する。また、仮想化機構３０は、ゲストＯＳ３１が仮想化機構３０へと発するリソース要求に応じて監視対象計算機５０へリソースを割り当てる。
【００１８】
本実施形態の仮想化機構３０は、いわゆる「ｈｙｐｅｒｖｉｓｏｒ」と、ｈｙｐｅｒｖｉｓｏｒの機能を呼び出すためのいわゆる管理ＯＳとを併せたものとする。あるいは、仮想化機構３０は、いわゆるＶＭｗａｒｅにおけるＶＭカーネルと、いわゆる管理ＯＳとを併せたものであってもよい。
【００１９】
仮想化機構３０は、第１仮想計算機４３ａ及び第２仮想計算機４３ｂを構築する。第１仮想計算機４３ａでは第１ゲストＯＳ３１ａが、第２仮想計算機４３ｂでは第２ゲストＯＳ３１ｂが動作する。
【００２０】
第１ゲストＯＳ３１ａ及び第２ゲストＯＳ３１ｂは、一般的なＯＳである。
【００２１】
以下、第１仮想計算機４３ａ及び第２仮想計算機４３ｂのいずれにも適用される説明をする場合のように、第１仮想計算機４３ａ及び第２仮想計算機４３ｂのいずれかを特定する必要がない場合、これらを単に仮想計算機４３と記載する。同様に、第１ゲストＯＳ３１ａ及び第２ゲストＯＳ３１ｂを単にゲストＯＳ３１と記載する場合がある。性能情報提供部３６、性能監視エージェント３２及びそれらに含まれる部分についても同様である。
【００２２】
本実施の形態は、例として、監視対象計算機５０が二つの仮想計算機４３を含む場合を示している。しかし、監視対象計算機５０は、任意の数の仮想計算機４３を含むことができる。
【００２３】
仮想化機構３０は、監視情報提供部３５と、メッセージ通信処理部３４と、を含む。
【００２４】
監視情報提供部３５は、ホスト性能情報３０ａと、第１仮想計算機監視情報３０ｂと、第２仮想計算機監視情報３０ｃと、を含む。第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃは、仮想計算機リソース割当情報と、仮想計算機構成情報と、仮想計算機性能情報と、を含む。
【００２５】
ホスト性能情報３０ａは、仮想化機構３０が稼動している監視対象計算機５０のリソース使用状況を表す情報である。
【００２６】
例えば、ホスト性能情報３０ａは、監視対象計算機５０上の物理ＣＰＵ２１に関するＣＰＵ使用率、メモリ２２の使用率、単位時間あたりのスワップ処理回数を含む。
【００２７】
仮想計算機リソース割当情報は、仮想化機構３０によって割り当てられる監視対象計算機５０のリソースの仮想計算機４３への割り当て率を示す情報である。監視情報提供部３５は、仮想計算機４３ごとのリソースの割り当て率を示す情報を含む。例えば、第１仮想計算機監視情報３０ｂは、第１仮想計算機４３ａへのリソースの割り当て率を示す第１仮想計算機リソース割当情報を含む。第２仮想計算機監視情報３０ｃは、第２仮想計算機４３ｂへのリソースの割り当て率を示す第２仮想計算機リソース割当情報を含む。
【００２８】
例えば、仮想計算機リソース割当情報は、ゲストＯＳ３１が稼働する仮想計算機４３の仮想ＣＰＵに割り当てられたＣＰＵ時間の割合、及び、仮想計算機４３に割り当てられたメモリサイズを示す情報を含む。
【００２９】
仮想計算機構成情報は、仮想計算機４３の計算リソースに関する構成情報である。監視情報提供部３５は、仮想計算機４３ごとの構成情報を含む。例えば、第１仮想計算機監視情報３０ｂは、第１仮想計算機４３ａの構成を示す第１仮想計算機構成情報を含む。第２仮想計算機監視情報３０ｃは、第２仮想計算機４３ｂの構成を示す第２仮想計算機構成情報を含む。
【００３０】
例えば、仮想計算機構成情報は、仮想計算機の仮想ＣＰＵ数及び仮想計算機のメモリサイズを示す情報を含む。
【００３１】
仮想計算機性能情報は、仮想計算機４３に関する性能情報である。監視情報提供部３５は、仮想計算機４３ごとの性能情報を含む。例えば、第１仮想計算機監視情報３０ｂは、第１仮想計算機４３ａの性能を示す第１仮想計算機性能情報を含む。第２仮想計算機監視情報３０ｃは、第２仮想計算機４３ｂの性能を示す第２仮想計算機性能情報を含む。
【００３２】
仮想計算機性能情報は、例えば、仮想計算機４３に関するスワップＩ／Ｏ処理回数及びデータＩ／Ｏ転送率を含む。
【００３３】
メッセージ通信処理部３４は、仮想計算機４３間のメッセージ通信、仮想計算機４３と仮想化機構３０との間の通信、仮想計算機４３と、ネットワーク２６を介して監視対象計算機５０に接続された外部の計算機（例えば、監視マネージャ計算機５１）との間の通信、及び、仮想化機構３０と外部の計算機との間の通信に関する処理を実行する。これらの仮想計算機４３内の通信処理は、監視対象計算機５０内のメモリコピーによって実現される。
【００３４】
第１ゲストＯＳ３１ａ及び第２ゲストＯＳ３１ｂは、それぞれ、性能情報提供部３６ａ及び性能情報提供部３６ｂを含む。第１ゲストＯＳ３１ａ及び第２ゲストＯＳ３１ｂ上では、それぞれ、第１性能監視エージェント３２ａ及び第２性能監視エージェント３２ｂが動作している。さらに、第１ゲストＯＳ３１ａ及び第２ゲストＯＳ３１ｂ上では、その他のアプリケーションプログラム（図示省略）が動作している。
【００３５】
性能情報提供部３６ａ及び性能情報提供部３６ｂは、ゲストＯＳ３１に関する性能情報を収集及び管理する。具体的には、本実施形態の性能情報提供部３６ａは、第１ゲストＯＳ３１ａの性能情報であるゲスト性能情報３９ａを保持する。性能情報提供部３６ｂは、第２ゲストＯＳ３１ｂの性能情報であるゲスト性能情報３９ｂを保持する。
【００３６】
例えば、ゲスト性能情報３９には、ＣＰＵ使用率、メモリ使用率及び単位時間あたりのページング処理回数が含まれる。これらは、一般的なＯＳが提供するような性能情報である。
【００３７】
なお、本実施の形態のゲストＯＳ３１は、仮想化されていない計算機において従来から使用されていた一般的なＯＳである。このため、ゲストＯＳ３１は、仮想化されていない計算機にそのゲストＯＳ３１がインストールされている場合と同様の処理を実行する。言い換えると、ゲストＯＳ３１は、そのゲストＯＳ３１がインストールされている仮想計算機４３に割り当てられたリソースのみを管理することができ、その他の仮想計算機４３にどれだけのリソースが割り当てられているかを知ることができない。このため、ゲスト性能情報３９に含まれるＣＰＵ使用率は、各仮想計算機４３に割り当てられているＣＰＵ時間に対する、実際にその仮想計算機４３において使用されているＣＰＵ時間の割合である。
【００３８】
第１性能監視エージェント３２ａ及び第２性能監視エージェント３２ｂは、それぞれ、ゲストＯＳ３１ａ及びゲストＯＳ３１ｂの上で実行されるアプリケーションプログラムである。第１性能監視エージェント３２ａは、ゲストＯＳ３１ａ、ゲストＯＳ３１ａ上で実行されるアプリケーションプログラム及び仮想化機構３０を監視する。第１性能監視エージェント３２ａは、監視情報収集部３７ａ、監視情報管理部３８ａ及び監視情報記憶部４０ａを含む。第２性能監視エージェント３２ｂは、ゲストＯＳ３１ｂ、ゲストＯＳ３１ｂ上で実行されるアプリケーションプログラム及び仮想化機構３０を監視する。第２性能監視エージェント３２ｂは、監視情報収集部３７ｂ、監視情報管理部３８ｂ及び監視情報記憶部４０ｂを含む。
【００３９】
監視情報収集部３７ａ及び監視情報収集部３７ｂは、それぞれ、ゲストＯＳ３１ａ及びゲストＯＳ３１ｂが管理する性能情報を収集する処理を制御する。さらに、監視情報収集部３７ａ及び監視情報収集部３７ｂは、仮想化機構３０が管理する性能情報を収集する処理を制御する。
【００４０】
ここで、本実施形態において、監視情報収集部３７ａは、性能情報提供部３６ａからゲスト性能情報３９ａの一部又は全部を収集し、監視情報収集部３７ｂは、性能情報提供部３６ｂから性能情報３９ｂの一部又は全部を収集する。さらに、監視情報収集部３７ａ及び監視情報収集部３７ｂは、監視情報提供部３５から、ホスト性能情報３０ａ、及び、全ての仮想計算機４３に関する仮想計算機リソース割当情報、仮想計算機構成情報及び仮想計算機性能情報（すなわち、本実施形態の場合、第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃ）を収集する。
【００４１】
監視情報管理部３８ａ及び監視情報管理部３８ｂは、監視情報収集部３７が収集した性能情報を、後述する監視情報記憶部４０ａ、４０ｂに監視情報として格納し、格納した監視情報を管理する処理を制御する。
【００４２】
監視情報記憶部４０ａ及び監視情報記憶部４０ｂは、仮想計算機ゲストＯＳ対応テーブル記憶領域（図示省略）と、性能監視エージェントゲストＯＳ対応テーブル記憶領域（図示省略）と、を含む。
【００４３】
仮想計算機ゲストＯＳ対応テーブル記憶領域には、仮想計算機とゲストＯＳとを対応付ける情報が記憶されている。例えば、仮想計算機ゲストＯＳ対応テーブル記憶領域には、図３Ａに示すような仮想計算機ゲストＯＳ対応テーブル７０２が記録される。
【００４４】
図３Ａは、本発明の第１の実施形態の仮想計算機ゲストＯＳ対応テーブル７０２の説明図である。
【００４５】
仮想計算機ゲストＯＳ対応テーブル７０２は、ホスト名欄７０２ｂ及び仮想計算機名欄７０２ａを含む。
【００４６】
ホスト名欄７０２ｂには、ゲストＯＳ３１ａ及びゲストＯＳ３１ｂ上で設定されているホスト名が記憶されている。各ゲストＯＳ３１は、ホスト名によって一意に識別される。
【００４７】
仮想計算機名欄７０２ａには、対応するホスト名欄７０２ｂに記憶されているゲストＯＳ３１ａ及び３１ｂが稼動する仮想計算機４３の名前が記憶されている。
【００４８】
図３Ａでは、例えば、仮想計算機名欄７０２ａに「ＶＭ１」が記憶され、「ＶＭ１」に対応するホスト名欄７０２ｂに「ホスト１」が記憶される。これは、名前が「ＶＭ１」である仮想計算機４３において、「ホスト１」によって識別されるゲストＯＳ３１が稼動していることを示す。
【００４９】
性能監視エージェントゲストＯＳ対応テーブル記憶領域には、性能監視エージェント３２と、性能監視エージェント３２が稼働するゲストＯＳ３１とを対応付ける情報が記憶されている。例えば、図３Ｂに示すような性能監視エージェントゲストＯＳ対応テーブル７０１が記憶される。
【００５０】
図３Ｂは、本発明の第１の実施形態の性能監視エージェントゲストＯＳ対応テーブル７０１の説明図である。
【００５１】
性能監視エージェントゲストＯＳ対応テーブル７０１は、性能監視エージェント識別子欄７０１ａ及びホスト名欄７０１ｂを含む。
【００５２】
性能監視エージェント識別子欄７０１ａには、性能監視エージェント３２を識別する情報が記憶されている。
【００５３】
ホスト名欄７０１ｂには、ゲストＯＳ３１ａ及びゲストＯＳ３１ｂ上で設定されているホスト名が記憶されている。
【００５４】
図３Ｂでは、例えば、性能監視エージェント識別子欄７０１ａに「Ａｇｔ１」が記憶され、「Ａｇｔ１」に対応するホスト名欄７０１ｂに、「ホスト１」が記憶される。これは、「ホスト１」によって識別されるＯＳ３１上で、「Ａｇｔ１」によって識別される性能監視エージェント３２が実行されることを示す。
【００５５】
本実施形態において、監視情報管理部３８ａは、監視情報収集部３７ａが収集した監視情報を第１性能監視エージェント３２ａ内の監視情報記憶部４０ａに格納する。監視情報管理部３８ｂは、監視情報収集部３７ｂが収集した監視情報を第２性能監視エージェント３２ｂ内の監視情報記憶部４０ｂに格納する。
【００５６】
監視情報記憶部４０ａ、４０ｂは、性能監視エージェント３２が収集した監視情報を格納する領域である。例えば、監視情報記憶部４０ａは、第１仮想計算機４３ａの仮想ディスクデバイス（図示省略）上の記憶領域であり、監視情報記憶部４０ｂは、第２仮想計算機の仮想ディスクデバイス上の記憶領域であってもよい。なお、仮想ディスクデバイスとは、例えば、後述する外部記憶装置２５の記憶領域のうち、各仮想計算機に割り当てられた記憶領域に相当する。この場合、第１性能監視エージェント３２ａのみが監視情報記憶部４０ａに対する読み書きを実行でき、第２性能監視エージェント３２ｂのみが監視情報記憶部４０ｂに対する読み書きを実行できる。
【００５７】
監視情報収集部３７が監視情報提供部３５から取得した監視情報は、例えば、図３Ｃに示す監視情報テーブル３００のようなテーブル構造で監視情報記憶部４０に記憶される。
【００５８】
図３Ｃは、本発明の第１の実施形態の監視情報テーブル３００の説明図である。
【００５９】
監視情報テーブル３００は、時刻欄３００ａ、仮想計算機名欄３００ｂ、リソース名欄３００ｃ、監視情報名欄３００ｄ及び監視情報値欄３００ｅとを含む。
【００６０】
時刻欄３００ａには、監視情報を収集した時刻が記憶される。
【００６１】
仮想計算機名欄３００ｂには、例えば、仮想計算機４３に設定されている名称が記憶されている。
【００６２】
リソース名欄３００ｃには、仮想計算機４３を構成する仮想的なリソースの識別子が記憶される。仮想的なリソースは、例えば、仮想ＣＰＵ（ｖＣＰＵ）又は仮想Ｉ／Ｏデバイス等である。
【００６３】
監視情報名欄３００ｄには、監視情報の名称が記憶される。
【００６４】
監視情報値欄３００ｅには、時刻欄３００ａの時刻におけるリソース３００ｃの統計値が記憶される。
【００６５】
例えば、図３Ｃでは、時刻欄３００ａに「２００７／０１／１１  １０：００：００」が記憶され、「２００７／０１／１１  １０：００：００」に対応する仮想計算機名欄３００ｂ、リソース名欄３００ｃ、監視情報名欄３００ｄ及び監視情報値欄３００ｅには、それぞれ、「ＶＭ１」、「ｖＣＰＵ１」、「仮想ＣＰＵ割り当て率」及び「３０％」が記憶されている。これは、２００７年１月１１日午前１０時０分０秒の時点で、監視対象計算機５０のＣＰＵ２１の全ＣＰＵ時間のうち３０％が、「ＶＭ１」によって識別される仮想計算機４３の、「ｖＣＰＵ１」によって識別される仮想ＣＰＵに割り当てられていることを示す。
【００６６】
監視情報収集部３７が性能情報提供部３６から取得した監視情報は、例えば、図３Ｄに示すゲスト性能情報テーブル４４０のようなテーブル構造で監視情報記憶部４０に記憶される。
【００６７】
図３Ｄは、本発明の第１の実施形態のゲスト性能情報テーブル４４０の説明図である。
【００６８】
ゲスト性能情報テーブル４４０は、時刻欄４４０ａ、ホスト名欄４４０ｂ、リソース名欄４４０ｃ、監視情報名欄４４０ｄ及び監視情報値欄４４０ｅを含む。
【００６９】
時刻欄４４０ａには、監視情報を収集した時刻が記憶される。
【００７０】
ホスト名欄４４０ｂには、監視情報値欄４４０ｅに記憶されている監視情報の取得元に関するゲストＯＳ３１のホスト名が記憶されている。
【００７１】
リソース名欄４４０ｃには、監視情報値欄４４０ｅに記憶された監視情報の取得元であるリソースについて記憶されている。監視情報の取得元であるリソースは、例えば、仮想ＣＰＵ（ｖＣＰＵ１）等である。
【００７２】
監視情報名欄４４０ｄには、収集した監視情報の監視情報名が記憶される。
【００７３】
監視情報値欄４４０ｅには、収集した監視情報の値が記憶される。
【００７４】
例えば、図３Ｄでは、時刻欄４４０ａに「２００７／０１／１１  １０：００：００」が記憶され、「２００７／０１／１１  １０：００：００」に対応するホスト名欄４４０ｂ、リソース名欄４４０ｃ、監視情報名欄４４０ｄ及び監視情報値欄４４０ｅには、それぞれ、「ゲストＯＳ１」、「ｖＣＰＵ１」、「仮想ＣＰＵ使用率」及び「３０％」が記憶されている。これは、２００７年１月１１日午前１０時０分０秒の時点で、「ｖＣＰＵ１」によって識別される仮想ＣＰＵの使用率が３０％であることを示す。さらに、この例は、監視情報収集部３７が、「ゲストＯＳ１」によって識別されるＯＳ３１から、その仮想ＣＰＵ使用率「３０％」を取得したことを示す。
【００７５】
図３Ｅは、本発明の第１の実施の形態の管理テーブル３１０の説明図である。
【００７６】
管理テーブル３１０には、監視情報と、その監視情報を取得した取得元についての情報とが記述される。管理テーブル３１０は、監視情報名欄３１０ａと、取得元名欄３１０ｂとを含む。監視情報名欄３１０ａには、取得した監視情報名が記憶される。また、取得元名欄３１０ｂには、監視情報名欄３１０ａに記憶された名前によって識別される監視情報の取得元の名前が記憶される。例えば、監視情報名欄３１０ａに記憶された名前が、性能情報提供部３６ａ又は３６ｂから取得された監視情報の名前である場合、その名前に対応する取得元名欄３１０ｂには、その監視情報の取得元の名前「ゲストＯＳ」が記憶される。一方、監視情報が監視情報提供部３５から取得された場合、取得元名欄３１０ｂには「仮想化機構」が記憶される。
【００７７】
管理テーブル３１０は、監視情報管理部３８ａ及び３８ｂが、性能情報提供部３６ａ及び３６ｂ又は監視情報提供部３５から情報を取得する際に、容易に作成することができる。管理テーブル３１０は、監視情報記憶部４０ａ、４０ｂに格納される。
【００７８】
以上に記載した監視対象計算機５０は、図２に示すようなハードウェア構成の計算機２０によって実現可能である。
【００７９】
図２は、本発明の第１の実施形態の監視対象計算機５０のハードウェア構成を示すブロック図である。
【００８０】
監視対象計算機５０を実現する計算機２０は、ＣＰＵ２１と、主記憶装置（メモリ）２２と、外部記憶装置２５と、外部記憶装置２５に接続するための外部記憶装置インターフェース２３と、ネットワーク２６と、ネットワーク２６に接続するための通信インターフェース２４と、を備える。計算機２０は、さらに、入力装置及び出力装置を備えてもよい。入力装置は、例えばマウス・キーボード２７である。出力装置は、例えばモニタ２８である。
【００８１】
メモリ２２は、例えば半導体メモリのようなデータ記憶装置である。例えば、計算機２０のメモリ２２内部には、ＣＰＵ２１によって実行されるゲストＯＳ３１ａ、ゲストＯＳ３１ｂ、これらのゲストＯＳ３１上で稼動するアプリケーションプログラム、及び仮想化機構３０が格納されている。
【００８２】
外部記憶装置２５は、例えばハードディスク装置又はその他の種類の記憶装置である。監視情報記憶部４０は、外部記憶装置２５上の記憶領域として実現可能である。監視情報収集部３７ａ、監視情報収集部３７ｂ、監視情報管理部３８ａ及び監視情報管理部３８ｂは、外部記憶装置２５上に記憶された所定のプログラムをＣＰＵ２１で実行することによって実現可能である。ネットワーク２６は、いかなる通信方式によって実現されてもよい。例えば、ネットワーク２６は、有線ネットワーク又は無線ネットワークのいずれであってもよい。
【００８３】
再び、図１を参照する。
【００８４】
監視マネージャー計算機５１は、性能監視マネージャー４８を備える。性能監視マネージャー４８は、監視情報管理部４７を含む。
【００８５】
監視情報管理部４７は、運用管理端末５２からの処理要求メッセージを解析し、その解析の結果に従って、各性能監視エージェント３２ａ及び３２ｂに対する処理要求メッセージを送信する。また、監視情報管理部４７は、性能監視エージェント３２ａ及び性能監視エージェント３２ｂから受信したメッセージの内容を解析し、その解析の結果に従って、運用管理端末５２に応答する処理動作を行う。
【００８６】
以上のように構成される監視マネージャー計算機５１は、監視対象計算機５０と同様、図２に示した計算機２０によって実現可能である。例えば、性能監視マネージャー４８は、メモリ２２に格納され、ＣＰＵ２１によって実行されるプログラムであり、監視情報管理部４７は、性能監視マネージャー４８を構成するプログラムモジュールである。
【００８７】
運用管理端末５２は、入力部５３と、出力部５４と、通信処理部５５と、送受信部５７と、を備える。
【００８８】
通信処理部５５は、後述する入力部５３を介して入力された情報を、後述する送受信部５７を介して監視マネージャー計算機５１に送信する処理を制御する。
【００８９】
また、通信処理部５５は、監視マネージャー計算機５１から受信した情報を所定の表示形式に編集して、後述する出力部５４に出力する処理を制御する。
【００９０】
入力部５３は、運用管理端末５２のオペレータからの入力を受け付ける入力装置である。
【００９１】
出力部５４は、運用管理端末５２のオペレータに所定の情報を通知するための出力装置である。
【００９２】
送受信部５７は、ネットワーク２６を介して情報を送受信する装置である。
【００９３】
以上のように構成される運用管理端末５２は、監視対象計算機５０と同様、図２に示した計算機２０によって実現可能である。通信処理部５５は、メモリ２２から読み出されたプログラムをＣＰＵ２１が実行することによって実現可能である。入力部５３はマウス・キーボード２７のような入力装置によって実現可能である。出力部５４はモニタ２８のような出力装置によって実現可能である。送受信部５７は、通信インターフェース２４によって実現可能である。
【００９４】
なお、図１は、監視対象計算機５０と監視マネージャー計算機５１と運用管理端末５２とがそれぞれ別の計算機２０によって実現される場合を示している。しかし、これらの計算機及び端末のうちいずれか二つ又は全部が、同じ計算機２０によって実現されてもよい。
【００９５】
また、本実施形態は、監視対象計算機５０上に第１仮想計算機４３ａ及び第２仮想計算機４３ｂの二つの仮想計算機が構成される例を示す。しかし、本実施の形態はこのような態様に限定されない。すなわち、監視対象計算機５０上に一の仮想計算機４３が構成されてもよく、三つ以上の仮想計算機が構成されてもよい。さらに、他の装置が追加されてもよい。
【００９６】
次に、性能監視エージェント３２が実行する処理の流れを説明する。
【００９７】
図４Ａは、本発明の第１の実施形態の性能監視エージェント３２が、性能情報を収集する処理を示すフローチャートである。
【００９８】
（１）まず、情報処理システムのオペレータは、初期設定を行う（ステップ４００）。
【００９９】
具体的には、情報処理システムのオペレータは、例えば、運用管理端末５２を介して、性能監視エージェント３２ａ及び３２ｂの監視情報管理部３８ａ及び３８ｂを呼び出し、性能監視エージェント３２ａ及び３２ｂの監視情報記憶部４０ａ及び４０ｂに、収集情報管理テーブルを記憶する。
【０１００】
収集情報管理テーブルは、性能監視エージェント３２ａ及び３２ｂの収集する監視情報について規定したテーブルであり、収集情報管理テーブルには、性能監視エージェント３２が収集する性能情報と、その性能情報を取得する取得対象、取得リソース、及び、性能監視エージェント３２が性能情報を取得する間隔（すなわち取得監視間隔）を示す内容が登録されている。言い換えると、性能監視エージェント３２は、収集情報管理テーブルを参照することによって、どのリソースのどのような種類の性能情報をどれだけの間隔で取得すべきかを知ることができる。
【０１０１】
また、初期設定として、性能監視エージェント３２ａ及び３２ｂの監視情報記憶部４０ａ及び４０ｂに、ゲストＯＳ３１ａ及び３１ｂの性能情報提供部３６ａ及び３６ｂの参照先と、仮想化機構３０上の監視情報提供部３５の参照先と、が記憶される。参照先の情報は、監視情報収集部３７ａ及び３７ｂが、監視情報を収集する処理をするために呼び出す参照情報を示している。例えば、情報処理システムのオペレータが、運用管理端末５２を介して、仮想化機構３０の監視情報提供部３５が提供するＷｅｂサービスのサービスエンドポイントを、仮想化機構３０の監視情報提供部３５の参照先として記憶する。
【０１０２】
（２）次に、性能情報監視エージェントの監視情報収集部３７ａ及び３７ｂは、性能監視マネージャー４８から性能情報収集開始要求メッセージを受信すると、ゲストＯＳの性能情報提供部３６ａ及び３６ｂから性能情報を、仮想化機構３０の監視情報提供部３５から監視情報を定期的に収集する（ステップ４０１）。
【０１０３】
具体的には、監視情報収集部３７ａ及び３７ｂは、監視情報管理部３８ａ及び３８ｂを介して、監視情報記憶部４０ａ及び４０ｂからゲストＯＳの性能情報提供部３６ａ及び３６ｂの参照先、及び、仮想化機構３０上の監視情報提供部３５の参照先を読み出す。さらに、監視情報収集部３７ａ及び３７ｂは、監視情報管理部３８ａ、３８ｂを介して、監視情報記憶部４０ａ、４０ｂから収集情報管理テーブルを読み出す。参照先から監視情報提供部３５、性能情報提供部３６ａ、３６ｂを呼び出すインターフェース仕様に基づき、監視情報テーブルの性能情報取得対象であるリソースについて、性能情報欄に記載された監視情報を取得する。
【０１０４】
仮想化機構３０の監視情報提供部３５が提供する監視情報は、例えば、仮想ネットワークを経由して監視情報提供部３５が提供するＷｅｂサービスを呼び出し、規定のインターフェースを呼び出すことによって取得されてもよい。また、ゲストＯＳ３１ａ、３１ｂの性能情報は、例えば、性能情報を取得するライブラリを呼び出すことによって取得されてもよい。
【０１０５】
ステップ４０１は、定期的に（すなわち、収集時間間隔ごとに）呼び出される。この定期的な呼び出しは、監視対象計算機５０が有するタイマ機構（図示省略）を呼び出し、スケジュール管理することによって実行される。
【０１０６】
（３）次に、性能監視エージェントの監視情報管理部３８ａ及び３８ｂは、性能監視エージェント３２ａ及び３２ｂの監視情報収集部３７ａ及び３７ｂが収集した性能情報を性能監視エージェントの監視情報記憶部４０ａ及び４０ｂに記憶する（ステップ４０２）。
【０１０７】
例えば、性能監視エージェントの監視情報管理部３８ａ及び３８ｂは、取得した性能情報に、取得した時刻のタイムスタンプを付与して、図３Ｃ及び図３Ｄに示すようなテーブルに記憶する。
【０１０８】
その後、収集時間間隔が経過すると、再びステップ４０１が実行される。
【０１０９】
図４Ｂは、本発明の第１の実施形態の性能監視エージェント３２が、性能監視マネージャー４８を介して、運用管理端末５２に監視情報を応答する処理を示すフローチャートである。
【０１１０】
（１）最初に、情報処理システムのオペレータは、運用管理端末５２から性能監視マネージャー４８を介して、性能監視エージェント３２ａ及び３２ｂに監視情報要求メッセージを送信する（ステップ４１０）。
【０１１１】
監視情報要求メッセージでは、オペレータが取得しようとする監視情報を特定する監視情報の取得時刻、取得対象名及び取得する性能情報名の一覧情報が指定される。
【０１１２】
（２）次に、性能監視エージェント３２ａ及び３２ｂの監視情報管理部３８ａ及び３８ｂは、性能監視マネージャー４８から送信された監視情報要求メッセージを受信する。監視情報管理部３８ａ及び３８ｂは、受信した監視情報要求メッセージから、時刻、取得対象名、リソース名及び性能情報名一覧情報を取得する（ステップ４１１）。なお、監視情報管理部３８ａ及び３８ｂは、監視情報要求メッセージを受信するまで待ち状態である。
【０１１３】
（３）次に、監視情報管理部３８ａ及び３８ｂは、監視情報記憶部４０ａ及び４０ｂから、監視情報テーブル３００及びゲスト性能情報テーブル４４０を読み出し、監視情報取得メッセージによって要求される情報を含むレコードを取得する（ステップ４１２）。具体的には、監視情報管理部３８ａ及び３８ｂは、監視情報取得メッセージに含まれる性能情報名及び取得時刻と同一の値が監視情報名欄３００ｄ及び時刻欄３００ａに記憶されているレコードを、監視情報テーブル３００から取得する。さらに、監視情報管理部３８ａ及び３８ｂは、監視情報取得メッセージに含まれる性能情報名及び取得時刻と同一の値が監視情報名欄４４０ｄ及び時刻欄４４０ａに記憶されているレコードを、性能情報テーブル４４０から取得する。
【０１１４】
なお、この処理の詳細は、図４Ｃにて別途説明する。
【０１１５】
（４）そして、監視情報管理部３８ａ、３８ｂは、性能監視マネージャー４８に対して、取得したレコードを指定し、監視情報応答メッセージを送信する（ステップ４１３）。すなわち、監視情報応答メッセージは、検索して取得したレコードのホスト名欄４４０ｂ、仮想計算機名欄３００ｂ、リソース名欄３００ｃ及び４４０ｃ、監視情報名欄３００ｄ及び４４０ｄ、監視情報値欄３００ｅ及び４４０ｅ、及び、時刻欄３００ａ及び４４０ａに記憶された値を含む。なお、監視情報管理部３８ａ、３８ｂは、複数のレコードを指定した場合、性能監視マネージャー４８を介して、運用管理端末５２に、指定した複数のレコードのそれぞれの情報を含む監視情報応答メッセージを送信する。
【０１１６】
（５）そして、運用管理端末５２の通信処理部５５が、送受信部５７を介して、性能監視マネージャー４８の監視情報管理部が送信したメッセージを受信すると、出力部５４が、メッセージに含まれる性能情報を出力装置（例えば、モニタ２８）に出力する（ステップ４１４）。
【０１１７】
図４Ｃは、本発明の第１の実施の形態の性能監視エージェント３２ａ及び３２ｂの監視情報管理部３８ａ及び３８ｂが、性能情報提供部３６ａ及び３６ｂから収集した情報と、監視情報提供部３５から収集した情報とを対応付ける処理の一例を説明するフローチャートである。
【０１１８】
（１）性能監視エージェント３２ａ及び３２ｂの監視情報管理部３８ａ及び３８ｂは、監視情報要求メッセージを受信すると、時刻、取得対象及び取得監視情報テーブル（図示省略）を抽出する。監視情報管理部３８ａ及び３８ｂは、抽出した時刻、取得対象及び取得監視情報テーブルを、それぞれ変数Ａ１、Ａ２及びＡ３として取得する（ステップ４２０）。
【０１１９】
前記時刻は、取得する監視情報の時刻を指定するための時刻情報である。
【０１２０】
前記取得対象は、監視情報を取得する対象を示す情報を含む。例えば、前記取得対象は、第１仮想計算機４３ａ、第２仮想計算機４３ｂ、第１ゲストＯＳ３１ａ又は第２ゲストＯＳ３１ｂ等を指定する情報を含む。
【０１２１】
前記取得監視情報テーブルは、取得する監視情報に関する情報の一覧である。
【０１２２】
（２）次に、監視情報管理部３８ａ及び３８ｂは、変数Ａ３から要素を１つ取り出して、その要素を変数Ｂ１とする（ステップ４２１）。
【０１２３】
（３）次に、監視情報管理部３８ａ及び３８ｂは、管理テーブル３１０を検索して、監視情報名欄３１０ａが変数Ｂ１と一致するレコードの取得元名欄３１０ｂの値を抽出し、抽出した値を変数Ｂ２とする。そして、監視情報管理部３８ａ及び３８ｂは、変数Ｂ２が「ゲストＯＳ」又は「仮想化機構」のいずれであるか判定する（ステップ４２２）。
【０１２４】
（４）ステップ４２２において、変数Ｂ２が「ゲストＯＳ」であると判定された場合、受信した監視情報要求メッセージは、ゲストＯＳ３１から取得された性能情報を要求している。この場合、監視情報管理部３８ａ及び３８ｂは、監視情報記憶部４０ａ及び４０ｂに記憶された仮想計算機ゲストＯＳ対応テーブル７０２を検索し、仮想計算機名欄７０２ａが変数Ａ２と一致するレコードのホスト名欄７０２ｂの内容を抽出し、抽出された内容を変数Ｂ３として取得する（ステップ４２３）。
【０１２５】
（５）次に、監視情報管理部３８ａ及び３８ｂは、監視情報記憶部４０ａ及び４０ｂに記憶されたゲスト性能情報テーブル４４０を検索し、時刻欄４４０ａが変数Ａ１、リソース名欄４４０ｃが変数Ｂ３、監視情報名欄４４０ｄが変数Ａ３と一致するレコードを抽出し、抽出したレコードを変数Ｙに追加する（ステップ４２４）。
【０１２６】
なお、監視情報提供部３５から取得した監視情報のリソース名欄３００ｃの番号付け規則及び命名規則と、性能情報提供部３６ａ及び３６ｂから取得した監視情報のリソース名欄４４０ｃの番号付け規則及び命名規則とが異なる場合がある。その場合には、例えば、以下の処理が実行される。
【０１２７】
ゲストＯＳ３１と仮想計算機４３との命名規則対応テーブル（図示省略）を運用管理端末５２からオペレータが入力する。命名規則対応テーブルは、監視情報記憶部４０に記憶される。監視情報管理部３８は、命名規則対応テーブルを検索することで、対応関係を検索することができる。命名規則対応テーブルは、番号付け規則及び命名規則があらかじめ分かっている場合、容易に作成することができる。
【０１２８】
また、ゲスト性能情報テーブル４４０内のリソース名欄４４０ｃと監視情報テーブル３００のリソース名欄３００ｃとは、それぞれの名前に対応するリソースに関連付けられた識別子情報に基づいて対応付けることもできる。例えば、対応付けようとするリソース名が仮想ネットワークインターフェースカード（ＮＩＣ）の名前である場合、仮想ＮＩＣに関連付けられているＭＡＣアドレス情報を参照し、一致するか否かを判定することで対応付けすることができる。また、運用管理端末５２からリソースの関連付け情報を定義し、その定義に基づいて対応付けることもできる。さらに、ゲスト性能情報テーブル４４０及び監視情報テーブル３００のそれぞれのリソース名欄４４０ｃ及び３００ｃを含むレコードの監視情報値の相関を解析し、その解析の結果に基づいてこれらのレコードを対応付けることもできる。
【０１２９】
（６）ステップ４２２において、変数Ｂ２が「仮想化機構３０」であると判定された場合、受信した監視情報要求メッセージは、仮想化機構３０から取得された監視情報を要求している。この場合、監視情報管理部３８ａ及び３８ｂは、変数Ａ２の内容を変数Ｂ３に代入する（ステップ４２７）。
【０１３０】
（７）次に、監視情報管理部３８ａ及び３８ｂは、監視情報提供部３５から取得した情報が記録された監視情報テーブル３００を検索し、時刻欄３００ａが変数Ａ１、リソース名欄３００ｃが変数Ｂ３、監視情報名欄３００ｄが変数Ａ３と一致するレコードを抽出し、抽出されたレコードを変数Ｙに追加する（ステップ４２８）。
【０１３１】
（８）次に、監視情報管理部３８ａ及び３８ｂは、変数Ａ３から次の要素を取得し、変数Ｂ１にその要素の内容を記憶し、ステップ４２２に戻る（ステップ４２６）。次の要素がない場合、監視情報管理部３８ａ及び３８ｂは、変数Ｙの値を指定し、性能監視マネージャー４８に応答メッセージを送信する（ステップ４２９）。
【０１３２】
なお、運用管理端末５２への表示（ステップ４１４）のために、対応付け処理は必須の処理ではない。すなわち、対応付けを実行することなく、取得された監視情報が表示されてもよいし、対応付けを表示しなくてもよい。
【０１３３】
また、上記の例では、監視情報管理部３８ａ、３８ｂが、性能情報提供部３６ａ、３６ｂ及び監視情報提供部３５から取得した情報を監視情報記憶部４０ａ、４０ｂから読み出し、読み出された情報を対応付けている。その代わりに、監視情報管理部３８ａ、３８ｂが性能情報提供部３６ａ、３６ｂと監視情報提供部３５から収集した監視情報を記憶する前に対応付ける処理をしてもよい。また、監視情報管理部３８ａ及び３８ｂの代わりに、性能監視マネージャー４８の監視情報管理部４７が対応付け処理を実行することもできる。
【０１３４】
また、対応付け処理において、仮想計算機ゲストＯＳ対応テーブル７０２は、オペレータが運用管理端末５２から入力することによって構成されてもよいし、ネットワーク２６に接続された構成情報を管理する計算機（図示省略）から取得した情報に基づいて自動的に構成されてもよい。構成情報を管理する計算機は、ゲストＯＳ３１と仮想計算機４３との対応関係を管理し、求めに応じてその対応関係を応答する。
【０１３５】
結局、監視情報テーブル３００のいずれかのレコードが監視情報要求メッセージによって指定された場合、そのレコードに対応するゲスト性能情報テーブル４４０のレコードが、図４Ｃに示す対応付け処理によって特定される。ゲスト性能情報テーブル４４０のいずれかのレコードが監視情報要求メッセージによって指定された場合、そのレコードに対応する監視情報テーブル３００のレコードが、図４Ｃに示す対応付け処理によって特定される。
【０１３６】
具体的には、それらのレコードの時刻欄３００ａの内容と時刻欄４４０ａの内容とが同一であり、リソース名欄３００ｃの内容とリソース名欄４４０ｃの内容とが同一であり、監視情報名欄３００ｄの内容と監視情報名欄４４０ｄの内容とが同一であり、かつ、ホスト名欄４４０ｂによって識別されるゲストＯＳ３１が、仮想計算機名欄３００ｂによって識別される仮想計算機４３上で稼動している場合、それらのレコードが対応する。
【０１３７】
既に説明したように、監視情報テーブル３００は、各仮想計算機４３へのリソースの割り当て率を含む。一方、ゲスト性能情報テーブル４４０は、各仮想計算機４３に割り当てられたリソースに対して、実際に使用されているリソースの割合を示す使用率を含む。このため、図４Ｃの処理によって対応付けられた二つのレコードの監視情報値欄３００ｅの内容と監視情報値欄４４０ｅの内容とに基づいて、ある時点における監視対象計算機５０のリソースの実際の使用率を算出することができる。
【０１３８】
例えば、図３Ｃ及び図３Ｄの例では、それぞれのテーブルの先頭レコードどうしが対応する。この例では、２００７年１月１１日午前１０時０分０秒の時点で、「ｖＣＰＵ１」によって識別される仮想ＣＰＵに、監視対象計算機５０のＣＰＵ２１の全ＣＰＵ時間のうち３０％が割り当てられ、そのうち３０％が実際に使用されている。すなわち、その時点で、監視対象計算機５０のＣＰＵ２１の全ＣＰＵ時間の３０％のうちの３０％（すなわち全ＣＰＵ時間の９％）が、「ｖＣＰＵ１」によって識別される仮想ＣＰＵによって使用されている。
【０１３９】
いずれかの仮想計算機４３のリソース使用率が高くなったために、その仮想計算機４３の処理性能が低下する場合がある。このような障害が発生した場合、上記のように監視対象計算機５０の（物理的な）リソースの使用率を算出することによって、性能低下に対する効果的な対処方法を決定することができる。例えば、仮想計算機４３ａのリソースの監視情報値４４０ｅが高い値であっても、仮想計算機４３ｂに割り当てられているリソースの一部を仮想計算機４３ａに新たに割り当てることによって、仮想計算機４３ａの処理性能を改善できる場合がある。具体的には、各仮想計算機４３によって実際に使用されている監視対象計算機５０のリソースの使用率を算出することによって、いずれかの仮想計算機４３に割り当てられているにもかかわらず実際には使用されていないリソースの存在を知ることができる。そのようなリソースを、性能が低下した仮想計算機４３に新たに割り当てることによって、他の仮想計算機４３の処理性能に影響を与えることなく、性能を改善することができる。
【０１４０】
仮想計算機４３の障害を表す障害パターンとしては、例えば、以下に説明するようなものがある。
【０１４１】
ゲスト性能情報３９のＣＰＵ使用率（すなわち、監視情報値４４０ｅとして記憶されている値）が高い場合であって、物理ＣＰＵ使用率（すなわち、監視対象計算機５０のＣＰＵ２１の使用率）は高くなく、ゲストＯＳ３１に対応する仮想計算機４３のＣＰＵ割当て率がＣＰＵ割当上限で制限されているパターン。この場合、ＣＰＵ割当上限設定がボトルネックになっていると判断することができる。したがって、障害への対処として、ＣＰＵ割当上限設定値を上げる決定をすることができる。
【０１４２】
ページングが頻繁に発生していることがゲスト性能情報３９からわかるパターン。このことは、仮想計算機４３に設定したメモリサイズが少ないことを表している。
【０１４３】
スワップＩ／Ｏ処理が頻繁に発生していることが仮想計算機４３の性能情報からわかるパターン。ことことから、仮想計算機４３に割り当てられているメモリサイズが不足していることがわかる。
【０１４４】
本発明の第１の実施形態によれば、以上に説明したような手法を用いることによって、ゲストＯＳ３１を監視するために必要最低限の情報をゲストＯＳ３１上に収集し、収集した情報に基づいてゲストＯＳ３１を監視することができる。また、本発明の第１の実施形態によれば、複数あるゲストＯＳ３１上のそれぞれの上で性能を監視することができる。このため、監視対象であるゲストＯＳに近い場所で監視することができる。
【０１４５】
また、あるゲストＯＳ３１上の性能監視エージェント３２が何らかの障害によって停止した場合、他のゲストＯＳ３１上の性能監視エージェント３２が、仮想化機構３０から、障害によって停止した性能監視エージェント３２が稼動する仮想計算機４３の監視情報を収集している。このため、その情報を監視することによって当該仮想計算機４３に関する監視を継続することが可能となる。
【０１４６】
さらに、仮想計算機４３を他の監視対象計算機５０に移行する、いわゆるライブマイグレーション処理を行った場合、ライブマイグレーション処理を実行する前に収集した監視情報を監視情報記憶部４０に保持したまま移行することが可能である。このため、オペレータは、仮想計算機４３のライブマイグレーション処理後も、ライブマイグレーション処理前に監視した監視情報を運用管理端末５２から取得することが可能である。
【０１４７】
また、監視情報収集部３７ａ、３７ｂが、監視情報提供部３５から監視情報を収集する処理は、物理的なネットワーク２６を介さず、監視対象計算機５０のメモリ内のコピー処理のみによって実行される。このため、ネットワーク２６の障害や遅延に影響されることなく、監視情報を収集することができる。
【０１４８】
さらに、第１の実施形態は、従来の仮想化機構３０上で稼動する従来のゲストＯＳ３１上に性能監視エージェント３２をインストールすることによって実現することができる。すなわち、第１の実施形態によれば、従来の仮想化機構３０及び従来のゲストＯＳ３１を変更する必要がない。
【０１４９】
次に、本発明の第２の実施形態を説明する。
【０１５０】
図５は、本発明の第２の実施形態による情報処理システムの構成を示す機能ブロック図である。
【０１５１】
本発明の第２の実施形態による情報処理システムでは、第１の実施形態のようにゲストＯＳ３１上で性能監視エージェント３２が稼動する代わりに、仮想化機構３０上で性能監視エージェント３２が稼動する。以下、第２の実施形態による情報処理システムの構成及び処理動作のうち、第１の実施形態によるものと異なる部分について説明し、第１の実施形態と同様の部分については説明を省略する。
【０１５２】
ゲストＯＳ３１ａ及び３１ｂは、それぞれ、補助ドライバ４２ａ及び４２ｂを含む。補助ドライバ４２ａ及び４２ｂは、性能監視エージェント３２の処理動作を補助するプログラムであり、ゲストＯＳ３１ａ及び３１ｂの外からの処理要求を受け、ゲストＯＳ３１ａ及び３１ｂ上で処理を実行し、処理結果を応答する。性能監視エージェント３２がこの補助ドライバ４２ａ及び４２ｂに与える指示及び補助ドライバ４２ａ及び４２ｂによる性能監視エージェント３２への応答は、仮想化機構３０のメッセージ通信処理部３４を用いて行われる。
【０１５３】
性能監視エージェント３２は、ゲストＯＳ３１ａ及び３１ｂ上ではなく仮想化機構３０のいわゆる管理ＯＳ上で稼動する。
【０１５４】
例えば、非特許文献「ＶＭＷａｒｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  リソース管理ガイド」（ｈｔｔｐ：／／ｗｗｗ．ｖｍｗａｒｅ．ｃｏｍ／ｊａ／ｐｄｆ／ｖｉ３＿ｅｓｘ＿ｒｅｓｏｕｒｃｅ＿ｍｇｍｔ＿ｊａ．ｐｄｆ）に、サービスコンソールが記載されている。性能監視エージェント３２は、このようなサービスコンソールの上で稼動してもよい。
【０１５５】
性能監視エージェント３２は、監視情報収集部３７と、監視情報管理部３８と、監視情報記憶部４０と、を含む。
【０１５６】
ここで、性能監視エージェント３２が監視情報記憶部４０に監視情報を格納する処理動作の一例を説明する。
【０１５７】
（１）監視情報収集部３７は、監視情報提供部３５から監視情報を定期的に収集する（ステップ５００）（図示省略）。
【０１５８】
（２）監視情報収集部３７は、各ゲストＯＳ３１ａ及び３１ｂ上の補助ドライバ４２ａ及び４２ｂに対して、性能情報提供部３６が保持するゲスト性能情報３９を取得するよう要求するメッセージを送信する（ステップ５０１）（図示省略）。
【０１５９】
（３）補助ドライバ４２ａ及び４２ｂは、要求メッセージを受け取り、性能情報提供部３６からゲスト性能情報３９を取得する。そして、補助ドライバ４２ａ及び４２ｂは、取得した情報を指定して、監視情報収集部３７に応答メッセージを送る（ステップ５０４）（図示省略）。
【０１６０】
（４）監視情報収集部３７は、補助ドライバ４２ａ及び４２ｂが応答した性能情報を取得する（ステップ５０６）（図示省略）。
【０１６１】
（５）監視情報管理部３８は、監視情報収集部３７が取得したこれらの性能情報を監視情報記憶部４０に書き込む（ステップ５０８）（図示省略）。
【０１６２】
（６）前回の情報取得時から一定時間経過した後、ステップ５００に戻る。
【０１６３】
以上に説明したような手法を用いることによって、本発明の第２の実施形態は、ゲストＯＳ３１及び仮想計算機４３を監視することができ、効果的な対処決定をすることができる。また、各ゲストＯＳ３１ａ及び３１ｂ上でエージェントを動作させずに、仮想化機構３０上で性能を一括して管理し、全てのゲストＯＳ３１ａ及び３１ｂの性能情報と仮想計算機４３の性能情報とを対応付けることができる。このため、全てのゲストＯＳ３１ａ及び３１ｂに関してゲスト性能情報３９と仮想計算機４３の情報とを用いた性能解析を行うことができる。また、ゲストＯＳ３１ごとに仮想計算機４３上の監視情報を重複して持たないため、保持するデータのサイズを節約することができる。
【０１６４】
また、第１の実施形態と異なり、ゲストＯＳ３１ａ及び３１ｂごとに性能監視エージェントをインストールする必要がなく、仮想化機構３０上にのみインストールすればよいため、運用コストが少なくてすむ。さらに、ゲストＯＳ３１ａ及び３１ｂのプラットフォームごとの性能監視エージェントプログラムを作成する必要がない点でプログラム開発面でも優れている。
【０１６５】
さらに、監視情報収集部３７が、監視情報提供部３５から監視情報を収集する処理は、物理的なネットワーク２６を介さず、監視対象計算機５０のメモリ２２内のコピー処理のみによって実現できるため、ネットワーク２６の障害や遅延に影響されることなく、監視情報を収集することができる。
【０１６６】
なお、第１の実施形態と、第２の実施形態とを組み合わせることもできる。
【０１６７】
すなわち、各ゲストＯＳ３１ａ及び３１ｂ上で稼動し、個別に各ゲストＯＳ上の性能情報を取得する性能監視エージェント３２ａ及び３２ｂと、仮想計算機４３上で稼動して監視情報提供部３５から監視情報を収集する性能監視エージェント３２と、を備えるシステムが構成されてもよい。この場合、それぞれの監視情報記憶部４０に収集した性能情報が記憶される。監視情報管理部３８は、性能監視マネージャー４８からの要求に応じて、記憶している監視情報を応答する。性能監視マネージャー４８は、応答のあった情報を対応付け処理（図４Ｃ参照）し、運用管理端末５２に対応付け後の監視情報を応答する。
【０１６８】
次に、本発明の第３の実施形態を説明する。
【０１６９】
図６は、本発明の第３の実施形態による情報処理システムの構成を示す機能ブロック図である。
【０１７０】
本発明の第３の実施形態による情報処理システムは、第１の実施形態で示したように性能監視エージェント３２を監視対象計算機５０上で稼動させる代わりに、別の計算機上で稼動させる。
【０１７１】
本発明の第３の実施形態による情報処理システムの構成について以下説明する。ただし、第１の実施形態による情報処理システムの構成と同じ部分については説明を省略する。
【０１７２】
本発明の第３の実施形態による情報処理システムは、監視エージェント計算機６０と、監視対象計算機５０と、監視マネージャー計算機５１と、運用管理端末５２と、を備える計算機システムによって構成される。監視エージェント計算機６０、監視対象計算機５０、監視マネージャー計算機５１及び運用管理端末５２は、相互にネットワーク２６を介して接続されている。図６に示した第３の実施形態は、監視エージェント計算機６０と、監視マネージャー計算機５１と、運用管理端末５２とが相互にネットワーク接続される例を示している。しかし、これらはネットワーク接続されている必要はない。すなわち、監視エージェント計算機６０、監視マネージャー４８及び運用管理端末５２の一部又は全部が同一計算機上に実現されてもよい。
【０１７３】
監視エージェント計算機６０は、性能監視エージェント３２を備えている。
【０１７４】
性能監視エージェント３２は、監視情報収集部３７と、監視情報管理部３８と、監視情報記憶部４２と、を含む。
【０１７５】
監視情報記憶部４２は、監視情報収集部３７が収集した情報が格納される領域であり、監視エージェント計算機６０上の外部記憶装置２５の記憶領域に相当する。監視情報収集部３７が収集した情報を、監視情報管理部３８が監視情報記憶部４２に格納する。
【０１７６】
監視対象計算機５０は、仮想化機構３０を備える。仮想化機構３０は、第１仮想計算機４３ａと、第２仮想計算機４３ｂと、構築する。第１仮想計算機４３ａ及び第２仮想計算機４３ｂは、それぞれ、第１ゲストＯＳ３１ａ及び第２ゲストＯＳ３１ｂを稼動させる。
【０１７７】
第１ゲストＯＳ３１ａは、補助ドライバ４２ａ及び性能情報提供部３６ａを含む。第２ゲストＯＳ３１ｂは、補助ドライバ４２ｂ及び性能情報提供部３６ｂを含む。補助ドライバ４２ａ及び４２ｂは、性能監視エージェントの処理動作を補助するプログラムである。補助ドライバ４２ａ及び４２ｂは、ゲストＯＳ３１の外からの処理要求を受け、ゲストＯＳ３１上で処理を実行し、処理結果を応答する。
【０１７８】
なお、監視エージェント計算機６０も、監視対象計算機５０、監視マネージャー計算機５１及び運用管理端末５２と同様、図２に示す計算機２０のハードウェア構成によって実現することができる。性能監視エージェント３２は、外部記憶装置２５に記憶されるプログラムである。性能監視エージェント３２がメモリ２２に読み込まれ、ＣＰＵ２１によって実行されることによって、性能監視エージェント３２が備える各部の処理が実現される。
【０１７９】
本実施形態の監視情報収集部３７が監視情報を収集する処理動作を以下に説明する。
【０１８０】
（１）監視情報収集部３７は、監視エージェント計算機６０内の通信インターフェース２４を経由し、ネットワーク２６を介して、監視対象計算機５０の監視情報提供部３５から、ホスト性能情報３０ａ、第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃを取得する（ステップ３０１）（図示省略）。第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃは、第１仮想計算機４３ａ及び第２仮想計算機４３ｂに関する仮想計算機リソース割当情報と、仮想計算機構成情報と、仮想計算機性能情報と、を含む。
【０１８１】
（２）ステップ３０１と同じタイミングで、監視情報収集部３７は、ゲストＯＳ３１上の補助ドライバ４２ａ及び４２ｂに、ゲストＯＳ３１上の性能情報の取得要求を出す（ステップ３０２）（図示省略）。補助ドライバ４２ａ及び４２ｂは、要求された性能情報を性能情報提供部３６ａ及び３６ｂから取得して、監視情報収集部３７に応答する。
【０１８２】
（３）監視情報管理部３８は、ステップ３０１で収集した前記監視情報（３０ａ、３０ｂ及び３０ｃ）と、ゲスト性能情報とを監視情報記憶部４０に記憶する（ステップ３０３）（図示省略）。
【０１８３】
以上に説明した手法を用いることによって、本発明の第３の実施形態では、監視対象計算機５０から物理的に独立した監視エージェント計算機６０が仮想計算機を監視することができる。
【０１８４】
第１の実施形態では、監視対象である監視対象計算機５０、仮想化機構３０又はゲストＯＳ３１のいずれかに障害が発生した場合、障害発生箇所において稼動していた性能監視エージェント３２が障害発生前に監視情報記憶部４０に格納した情報を参照できなくなる。第２の実施形態では、仮想化機構３０に障害が発生した場合に、性能監視エージェント３２が障害発生前に監視情報記憶部４０に格納した情報を参照できなくなる。しかし、本発明の第３の実施形態によれば、監視エージェント計算機６０が監視対象計算機５０から物理的に独立している。このため、監視対象である監視対象計算機５０、仮想化機構３０又はゲストＯＳ３１に障害が発生しても、障害発生前に監視情報記憶部４０に格納した情報を参照することができ、その情報を障害対処決定に利用することができる。
【０１８５】
なお、第１の実施形態と、第３の実施形態とを組み合わせることもできる。
【０１８６】
すなわち、各ゲストＯＳ３１ａ及び３１ｂ上で稼動し、個別に各ゲストＯＳ３１ａ及び３１ｂ上の性能情報を取得する性能監視エージェント３２ａ及び３２ｂと、監視エージェント計算機６０上で稼動し、監視情報提供部３５から監視情報を収集する性能監視エージェント３２と、を備えるシステムが構成されてもよい。この構成では、それぞれの計算機上における監視情報記憶部４０に、収集した性能情報を記憶する。監視情報管理部３８は、性能監視マネージャー４８からの要求に応じて、記憶されている監視情報を応答する。性能監視マネージャー４８では、監視情報管理部４７が、応答された情報に基づいて、ゲストＯＳ３１の監視情報と仮想計算機４３の監視情報との対応付け処理、及び、仮想計算機４３間又はゲストＯＳ３１間の監視情報を関連付ける処理を実行する。そして、性能監視マネージャー４８は、対応付けられた監視情報を運用管理端末５２に応答する。
【０１８７】
次に、本発明の第４の実施形態を説明する。
【０１８８】
図７は、本発明の第４の実施形態による情報処理システムの構成を示す機能ブロック図である。
【０１８９】
図７に示す第４の実施形態では、図１に示した第１の実施形態と同様、各ゲストＯＳ３１上でそれぞれ性能監視エージェント３２が稼動している。本実施形態では、複数の性能監視エージェント３２のうち一つが、各性能監視エージェント３２を代表する代表監視エージェントに指定される。図７の例では、第１性能監視エージェント３２ａが代表監視エージェントである。代表監視エージェントのみが、仮想化機構３０から取得した監視情報を格納する。その結果、同一の仮想化機構３０上の監視情報を各性能監視エージェント３２が重複して保持することを防止することができる。
【０１９０】
本発明の第４の実施形態による情報処理システムの構成について以下説明する。ただし、第１の実施形態による情報処理システムの構成と共通する部分については説明を省略し、差異点について説明する。
【０１９１】
監視情報記憶部４０ａ及び４０ｂは、代表監視エージェント情報４１ａ、４１ｂ、仮想計算機ゲストＯＳ対応テーブル記憶領域（図示省略）、性能監視エージェントゲストＯＳ対応テーブル記憶領域（図示省略）、閾値テーブル記憶領域（図示省略）及び監視間隔情報（図示省略）を含む。
【０１９２】
代表監視エージェント情報４１ａ、４１ｂは、どの性能監視エージェント３２が代表監視エージェントであるのかを判断するための情報である。例えば、代表監視エージェント情報４１ａ、４１ｂには、代表監視エージェントである性能監視エージェント３２の識別子情報が記憶される。例えば、図７に示すように、第１性能監視エージェント３２ａが代表監視エージェントである場合、監視情報記憶部４０ａ及び４０ｂは、代表監視エージェント情報４１ａ及び４１ｂとして、第１性能監視エージェント３２ａの識別子「Ａｇｔ１」を記憶する。
【０１９３】
仮想計算機ゲストＯＳ対応テーブル記憶領域には、ゲストＯＳ３１と仮想計算機４３とを対応付けるための情報が記憶される。具体的には、例えば、仮想計算機ゲストＯＳ対応テーブル記憶領域には、仮想計算機ゲストＯＳ対応テーブル７０２が記憶される（図３Ａ参照）。
【０１９４】
性能監視エージェントゲストＯＳ対応テーブル記憶領域には、ゲストＯＳ３１とそのゲストＯＳ３１上で稼動する性能監視エージェント３２とを対応付けるための情報が記憶される。具体的には、例えば、性能監視エージェントゲストＯＳ対応テーブル記憶領域には、性能監視エージェントゲストＯＳ対応テーブル７０１が記憶される（図３Ｂ参照）。
【０１９５】
閾値テーブル記憶領域には、仮想計算機の負荷状況を判定するための閾値に関する情報が記憶される。例えば、閾値テーブル記憶領域には、図８に示すような閾値テーブル７０３が記憶される。
【０１９６】
図８は、本発明の第４の実施形態の閾値テーブル７０３の説明図である。
【０１９７】
図示するように閾値テーブル７０３は、番号欄７０３ａ、仮想計算機名欄７０３ｂ、リソース名欄７０３ｃ及び判定条件欄７０３ｄを含む。
【０１９８】
番号欄７０３ａには、閾値テーブル７０３の各行（すなわち各レコード）を識別するための番号が記憶される。
【０１９９】
仮想計算機名欄７０３ｂには、仮想計算機４３に設定されている名称が記憶される。
【０２００】
リソース名欄７０３ｃには、仮想計算機４３を構成する仮想的なリソースの識別子が記憶される。
【０２０１】
判定条件欄７０３ｄには、監視情報名と、監視情報名に対応する監視情報の条件式が記憶されている。条件式は、前記監視情報が前記条件式を満たした場合に、仮想計算機の負荷が高いものと判断するために用いられる。
【０２０２】
判定条件欄７０３ｄには、どのような条件が記憶されてもよい。典型的には、リソースに対して与えられた設定値、又は、リソースにおいて測定された性能値が、所定の閾値を超えたか否かを判定する条件式が、判定条件欄７０３ｄに記憶される。設定値又は性能値が所定の閾値を超えたか否かを判定する代わりに、設定値又は性能値が所定の閾値を下回ったか否か、所定の値と同一であるか否か、又は、所定の範囲内であるか否かが判定されてもよい。例えば、設定値又は性能値が低いほど仮想計算機の負荷が高いと判定される場合、設定値又は性能値が所定の閾値を下回ったか否かが判定されてもよい。閾値と比較される設定値又は性能値は、例えば、ＣＰＵ割り当て率、ＣＰＵ割り当て要求率、ＣＰＵ使用率、メモリ割り当て率又はメモリ使用率等である。
【０２０３】
図８の例では、番号欄７０３ａに「１」が記憶されているレコードの仮想計算機名欄７０３ｂ、リソース名欄７０３ｃ及び判定条件欄７０３ｄに、それぞれ、「ＶＭ１」、「ｖＣＰＵ１」及び「ＣＰＵ割り当て率＞８０％」が記憶されている。これは、「ＶＭ１」によって識別される仮想計算機４３の、「ｖＣＰＵ１」によって識別されるリソース（例えば仮想ＣＰＵ）に対する割り当て率が８０％を超えている場合、そのリソースの負荷が高いと判定されることを意味する。
【０２０４】
監視間隔情報には、性能監視エージェント３２ａ及び３２ｂが、監視情報提供部３５と性能情報提供部３６ａ及び３６ｂから、性能情報及び監視情報を収集する時間間隔が記録される。監視情報収集部３７ａ、３７ｂは、監視間隔情報に記録された監視間隔で性能情報及び監視情報を収集する。
【０２０５】
本実施形態による情報処理システムの第１仮想計算機４３ａ及び第２仮想計算機４３ｂは、第１仮想計算機４３ａ及び第２仮想計算機間４３ｂによって共有される共有記憶部５６を有している。
【０２０６】
例えば、第１仮想計算機４３ａ及び第２仮想計算機４３ｂが、ディスクを共有してもよい。このようなディスクの共有は、仮想ディスクデバイス（図示省略）を構成し、第１仮想計算機４３ａと、第２仮想計算機４３ｂから仮想ディスクデバイスをマウントすることによって実現することができる。仮想ディスクデバイスは、例えば、外部記憶装置２５の記憶領域の一部によって構成される仮想的な記憶装置である。
【０２０７】
共有記憶部５６は、監視情報テーブル記憶領域５９ａ及び５９ｂを備える。監視情報テーブル記憶領域５９ａ及び５９ｂは、仮想化機構３０から取得された監視情報を記憶する領域である。監視情報は、性能監視エージェント３２の監視情報収集部３７ａ及び３７ｂによって仮想化機構３０から取得され、監視情報管理部３８ａ及び３８ｂによって監視情報テーブル記憶領域５９ａ及び５９ｂに格納される。監視情報テーブル記憶領域５９ａに情報を書き込む権限は、監視情報管理部３８ａのみに与えられる。監視情報テーブル記憶領域５９ｂに情報を書き込む権限は、監視情報管理部３８ｂのみに与えられる。監視情報テーブル記憶領域５９ａ及び５９ｂから情報を読み込む権限は、すべての監視情報管理部３８に与えられる。
【０２０８】
例えば、監視情報テーブル記憶領域５９ａは、第１性能監視エージェント３２ａ用の領域である。第１性能監視エージェント３２ａは、監視情報テーブル記憶領域５９ａからの読み込みと、監視情報テーブル記憶領域５９ａへの書き込みを実行することができる。一方、第２性能監視エージェント３２ｂは、監視情報テーブル記憶領域５９ａからの読み込みのみ実行できる。
【０２０９】
監視情報テーブル記憶領域５９ｂは、第２性能監視エージェント３２ｂ用の領域である。第２性能監視エージェント３２ｂは、監視情報テーブル記憶領域５９ｂからの読み込みと、監視情報テーブル記憶領域５９ｂへの書き込みを実行することができる。一方、第１性能監視エージェント３２ａは、監視情報テーブル記憶領域５９ｂからの読み込みのみ実行できる。
【０２１０】
監視情報テーブル記憶領域５９ａ及び５９ｂの少なくとも一つには、例えば、図３Ｃに示すような監視情報テーブル３００が記憶される。
【０２１１】
共有記憶部５６の参照先を示す情報、監視情報テーブル記憶領域５９ａ及び５９ｂの参照先を示す情報、及び、監視情報テーブル３００の参照先を示す情報は、監視情報管理部３８ａ及び３８ｂによって記憶される。
【０２１２】
なお、性能情報提供部３６ａ及び３６ｂから取得した性能情報は、共有記憶部５６の監視情報テーブル記憶領域５９ａ及び５９ｂに記憶されてもよいし、監視情報記憶部４０ａ及び４０ｂに記憶されてもよい。
【０２１３】
次に、本発明の第４の実施形態による情報処理システムの処理動作について説明する。
【０２１４】
図９Ａは、本発明の第４の実施形態による情報処理システムが性能情報を収集する処理、及び、収集した情報を共有記憶部５６に記憶する処理を説明するフローチャートである。
【０２１５】
（１）最初に、情報処理システムのオペレータは、初期設定を行う（ステップ９０１）。
【０２１６】
初期設定として、情報処理システムのオペレータは、例えば、運用管理端末５２を用い、性能監視マネージャー４８を介して、性能監視エージェント３２の監視情報管理部３８を呼び出し、性能監視エージェント３２の監視情報記憶部４０に含まれる代表監視エージェント情報４１として、代表監視エージェントの識別子情報を記憶させる。さらに、オペレータは、仮想計算機ゲストＯＳ対応テーブル７０２を仮想計算機ゲストＯＳ対応テーブル記憶領域に記憶させる。さらに、オペレータは、性能監視エージェントゲストＯＳ対応テーブル７０１を性能監視エージェントゲストＯＳ対応テーブル記憶領域に記憶させる。
【０２１７】
なお、これらのテーブルは、運用管理端末５２を介してオペレータによって入力されてもよいし、性能監視エージェント３２の監視情報管理部３８が、性能監視マネージャー４８の監視情報管理部４７を呼び出して同様のテーブルを取得してもよいし、テーブルに記述された内容の情報を管理する外部の構成管理サーバ（図示省略）を呼び出して、その構成管理サーバから取得した内容に基づいて自動的にテーブルを作成してもよい。
【０２１８】
また、初期設定として、情報処理システムのオペレータは、例えば、運用管理端末５２を用い、性能監視マネージャー４８を介して、性能監視エージェント３２の監視情報管理部３８を呼び出し、性能監視エージェント３２の監視情報記憶部４０に、図８に示すような閾値テーブル７０３を記憶させる。
【０２１９】
情報処理システムのオペレータは、閾値テーブル７０３に登録する適当な情報を、運用管理端末５２の入力部５３を介して入力することもできる。
【０２２０】
（２）次に、情報処理システムのオペレータは、運用管理端末５２を用い、性能監視マネージャー４８を介して、性能監視エージェント３２に対して、性能情報の監視開始要求メッセージを送信する（ステップ９０２）。
【０２２１】
（３）監視開始要求メッセージを受信した性能監視エージェント３２の監視情報収集部３７は、監視情報を定期的に収集し、監視情報管理部３８を呼び出し、共有記憶部５６に収集した監視情報を記憶する（ステップ９０３からステップ９０８）。定期的に収集される監視情報は、例えば、仮想化機構３０の監視情報提供部３５から提供されるホスト性能情報３０ａ、第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃ、及び、ゲストＯＳ３１の性能情報提供部３６から提供される各ゲストＯＳ３１の性能情報である。
【０２２２】
なお、これらのステップの処理は、情報処理システムのオペレータが、運用管理端末５２を用い、性能監視マネージャー４８を介して、性能監視エージェント３２に対して監視終了メッセージを送信し、当該メッセージを前記性能監視エージェントが受信するまで繰り返して実行される。
【０２２３】
以下、これらのステップにおける処理について、詳細に説明する。なお、ここでは、監視情報提供部３５から監視情報を収集し、記憶する処理について説明する。
【０２２４】
（４）まず、監視情報収集部３７ａは、前回監視情報を取得した時刻から、設定された監視間隔時間だけ待つ（ステップ９０３）。その後、監視情報収集部３７ａは、監視情報提供部３５からホスト性能情報３０ａ、第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃを取得する（ステップ９０４）。第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃは、第１仮想計算機４３ａ及び第２仮想計算機４３ｂに関する仮想計算機リソース割当情報、仮想計算機構成情報及び仮想計算機性能情報を含む。なお、このステップにおいて、監視対象計算機５０上で稼動する全ての仮想計算機４３に関する情報が取得される。
【０２２５】
（５）次に、監視情報管理部３８は、代表監視エージェント情報４１を参照して代表監視エージェントを特定する（ステップ９０５）。そして、監視情報管理部３８は、その監視情報管理部３８が属する性能監視エージェント３２が代表監視エージェントであるか否かを判定する（ステップ９０６）。
【０２２６】
（６）以下、例として、第１性能監視エージェント３２ａが代表監視エージェントである場合について説明する。この場合、ステップ９０６において、監視情報管理部３８ａは、監視情報管理部３８ａが属する第１性能監視エージェント３２ａが代表監視エージェントであると判定する。この場合、監視情報管理部３８ａは、取得したホスト性能情報３０ａ、第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃを、これらの情報を取得した時刻と関連付けて、共有記憶部５６の第１性能監視エージェント３２ａ用の記憶領域（すなわち、監視情報テーブル記憶領域５９ａ）に記憶する（ステップ９０７）。
【０２２７】
（７）一方、監視情報管理部３８ｂは、ステップ９０６において、監視情報管理部３８ｂが属する第２性能監視エージェント３２ｂが代表監視エージェントではないと判定する。この場合、第２性能監視エージェント３２ｂの監視情報管理部３８ｂは、代表監視エージェント情報４１ｂを参照して、代表監視エージェントである第１性能監視エージェント３２ａの識別子を取得する。そして、監視情報管理部３８ｂは、取得した識別子に基づいて、ステップ９０４で取得した情報のうち、代表監視エージェントの性能を示す情報を特定する。そして、監視情報管理部３８ｂは、特定された情報に基づいて、代表監視エージェントが稼動する第１仮想計算機４３ａの負荷が高いか否かを判定する（ステップ９０８）。代表監視エージェントの負荷が高いか否か（すなわち、代表監視エージェントが稼動する仮想計算機４３の負荷が高いか否か）の判定は、後に、図９Ｃで示すフローチャートを参照して説明する。
【０２２８】
（８）ステップ９０８において、第１仮想計算機４３ａの負荷が高いと判定された場合、第１仮想計算機４３ａ又はそれに関連する部分に障害が発生していると考えられる。この場合、第２性能監視エージェント３２ｂの監視情報管理部３８ｂは、取得したホスト性能情報３０ａ、第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃを、これらの情報を取得した時刻と関連付けて、共有記憶部５６の第２性能監視エージェント３２ｂ用の記憶領域（すなわち、監視情報テーブル記憶領域５９ｂ）に記憶する（ステップ９０７）。そして、処理はステップ９０３に戻る。
【０２２９】
（９）ステップ９０８において、第１仮想計算機４３ａの負荷が高くないと判定された場合、第１仮想計算機４３ａ及びそれに関連する部分に障害が発生していないと考えられる。この場合、第２性能監視エージェント３２ｂの監視情報管理部３８ｂは、取得した情報を共有記憶部５６に記憶せず、ステップ９０３に戻る。
【０２３０】
なお、本フローチャートにおいて、性能情報提供部３６ａ及び３６ｂから取得した情報を共有記憶部５６に記憶する場合、ステップ９０４において、性能情報提供部３６ａ及び３６ｂから性能情報が取得され、その性能情報が、ステップ９０７において、共有記憶部５６の各性能監視エージェント３２用の記憶領域に記憶される。
【０２３１】
図９Ｂは、本発明の第４の実施形態による性能監視エージェント３２が監視情報収集部３７から収集し記憶した監視情報を読み出す処理、及び、監視情報を運用管理端末５２に表示する処理を示すフローチャートである。
【０２３２】
（１）情報処理システムのオペレータは、性能監視エージェント３２の監視情報管理部３８に監視情報要求メッセージを送信することを運用管理端末５２に指示する。この指示は、入力部５３を用いて運用管理端末５２に入力される。運用管理端末５２は、オペレータの指示に従って、性能監視マネージャー４８を介して、性能監視エージェント３２の監視情報管理部３８に監視情報要求メッセージを送信する（ステップ９１０）。
【０２３３】
なお、監視情報要求メッセージは、取得監視情報テーブル（図示省略）を含む。取得監視情報テーブルには、オペレータが取得を要求する監視情報を指定する情報が記憶される。
【０２３４】
例えば、取得監視情報テーブルは、時刻欄、仮想計算機名欄、リソース名欄及び性能情報名欄を含む。監視情報テーブル３００と同様に、時刻欄には時刻が、仮想計算機名欄には仮想計算機名が、リソース名欄にはリソース名が、監視情報名欄には監視情報名が記憶される。これらの欄の値によって、オペレータが取得を要求する監視情報が指定される。監視情報テーブル３００と同様、これらの欄の一組が一つのレコードに相当する。
【０２３５】
（２）性能監視エージェント３２の監視情報管理部３８は、性能情報要求メッセージを運用管理端末５２から受信する。性能監視エージェント３２ａ及び３２ｂの監視情報管理部３８ａ及び３８ｂは、受信した性能情報要求メッセージから、取得監視情報テーブルを抽出して、抽出した取得監視情報テーブルを変数Ｘとして取得する（ステップ９１１）。
【０２３６】
（３）性能監視エージェント３２の監視情報管理部３８は、変数Ｘのうち最初の要素を変数Ｘ１として取得する（ステップ９１２）。ここで、変数Ｘの一つの要素は、変数Ｘとして取得された取得監視情報テーブルの一つのレコードに相当する。
【０２３７】
（４）監視情報管理部３８ａ及び３８ｂは、共有記憶部５６を呼び出し、監視情報テーブル記憶領域５９の中から一つを選択し、選択された監視情報テーブル記憶領域５９に記憶されている監視情報テーブル３００を変数Ｚとして取得する（ステップ９１３）。
【０２３８】
なお、ステップ９１３では、一つの監視対象計算機５０上の仮想計算機上で稼動する性能監視エージェント３２によって記憶された監視情報テーブル記憶領域５９の中から一つが選択される。
【０２３９】
（６）そして、性能監視エージェント３２の監視情報管理部３８は、変数Ｚとして取得された監視情報テーブル３００を検索し、監視情報テーブル３００の時刻欄３００ａ、仮想計算機名欄３００ｂ、リソース名欄３００ｃ及び監視情報名欄３００ｄが、それぞれ変数Ｘ１の時刻、仮想計算機名、リソース名及び監視情報名と一致するレコードがあるか否かを判定する（ステップ９１４）。一致するレコードがあれば、性能監視エージェントの監視情報管理部３８は、そのレコードを変数Ｙ１として取得する。
【０２４０】
すなわち、例えば、第１性能監視エージェント３２ａの監視情報管理部３８ａは、共有記憶部５６を呼び出し、監視情報テーブル記憶領域５９ａ及び５９ｂから、順次、監視情報テーブル３００を読み出す。そして、監視情報管理部３８ａは、読み出した監視情報テーブル３００を検索し、変数Ｘ１と一致するレコードを取得する。ここで、変数Ｘ１と一致するレコードを発見したとき、監視情報管理部３８ａは、変数Ｙ１に関する検索を終了してもよいし、全ての監視情報テーブル３００を検索してもよい。
【０２４１】
監視情報管理部３８ａは、全ての監視情報テーブル３００を検索した結果、変数Ｘ１と一致するレコードを重複して発見する場合がある。例えば、代表でない性能監視エージェント３２が稼動する仮想計算機４３が複数存在する場合において、代表監視エージェントが稼動する仮想計算機の４３の負荷が高いと判定されると、複数の性能監視エージェント３２が、仮想化機構３０から取得した同一の監視情報を共有記憶部５６に記憶する。この場合、変数Ｘ１と一致する複数のレコードが発見される。その場合、監視情報管理部３８ａは、発見された複数のレコードのうち一つのみを取得し、残りを破棄してもよい。
【０２４２】
代表監視エージェント（例えば、第１性能監視エージェント３２ａ）が収集した監視情報テーブル３００のみならず、代表監視エージェントでない性能監視エージェント（例えば、第２性能監視エージェント３２ｂ）が収集した監視情報テーブル３００をも検索対象とすることによって、代表監視エージェントが取得に失敗した監視情報も取得することができる。
【０２４３】
（７）ステップ９１４において、変数Ｘ１と一致するレコードが発見された場合、監視情報管理部３８は、変数Ｙ１を応答性能情報テーブルＹの要素として追加する（ステップ９１６）。
【０２４４】
（８）次に、監視情報管理部３８は、変数Ｘに変数Ｘ１の次の要素があるか否かを判定する（ステップ９１７）。変数Ｘに変数Ｘ１の次の要素がある場合、監視情報管理部３８は、変数Ｘから変数Ｘ１の次の要素を、新たな変数Ｘ１として取得する（ステップ９１２）。以後、監視情報管理部３８は、新たな変数Ｘ１についてステップ９１３以降の処理を実行する。
【０２４５】
（９）一方、監視情報管理部３８は、変数Ｘに変数Ｘ１の次の要素がない場合、性能監視マネージャー４８を介して、取得した変数Ｙの内容を運用管理端末５２に返信する（ステップ９１８）。
【０２４６】
なお、変数Ｙには、監視情報テーブル３００のレコードのうち、取得監視情報テーブルによって特定された監視情報の値を含むレコードが格納されている。例えば、変数Ｙには、代表監視エージェントが監視情報テーブル３００に格納した監視情報に関する行と、代表監視エージェントが監視情報テーブル３００に格納できなかった監視情報であって、代表監視エージェントではない性能監視エージェント３２が格納した監視情報に関する行が含まれることもある。
【０２４７】
（１０）ステップ９１４において、変数Ｘ１と一致するレコードが発見されない場合、ステップ９１３における次の検索対象となる新たな監視情報テーブル記憶領域５９があるか否かを判定する（ステップ９１５）。次の検索対象となる新たな監視情報テーブル記憶領域５９がある場合、処理はステップ９１３に戻る。次の検索対象となる新たな監視情報テーブル記憶領域５９がない場合、処理はステップ９１７に進む。
【０２４８】
図９Ｃは、本発明の第４の実施形態において、代表監視エージェントが稼動する仮想計算機４３の負荷が高いか否かを判定するために実行される処理を示すフローチャートである。
【０２４９】
例として、図９Ｃは、代表監視エージェントでない性能監視エージェント３２ａの監視情報管理部３８ｂが、代表監視エージェントである性能監視エージェント３２ａの稼動する仮想計算機４３ａの負荷が高いか否かを判定する処理を示す。
【０２５０】
（１）監視情報管理部３８ｂは、監視情報記憶部４０ｂを呼び出し、代表監視エージェント３２が稼動する仮想計算機４３の名前を変数Ｉとして取得する（ステップ９２１）。
【０２５１】
具体的には、監視情報管理部３８ｂは、代表監視エージェント情報４１ｂを読み出し、性能監視エージェントゲストＯＳ対応テーブル７０１及び仮想計算機ゲストＯＳ対応テーブル７０２から、仮想計算機名を取得する。
【０２５２】
（２）次に、監視情報管理部３８ｂは、閾値テーブル７０３を検索し、仮想計算機名欄７０３ｂが変数Ｉと一致するレコードを変数Ｊとして取得する（ステップ９２２）。
【０２５３】
（３）次に、監視情報管理部３８ｂは、監視情報テーブル３００を検索し、仮想計算機名欄３００ｂが変数Ｉと一致し、かつ、リソース名欄３００ｃが変数Ｊのリソース名欄７０３ｃと一致するレコードを、変数Ｋとして取得する（ステップ９２３）。
【０２５４】
（４）次に、監視情報管理部３８ｂは、変数Ｊの監視情報名欄３００ｄ及び監視情報値欄３００ｅが、変数Ｋの判定条件欄７０３ｄに記憶された条件を満たすか否かを判定する（ステップ９２４）。
【０２５５】
（５）ステップ９２４の判定の結果、変数Ｋの条件を満たす変数Ｊがある場合、監視情報管理部３８ｂは、代表監視エージェントが稼動する仮想計算機４３の負荷が高いと判定し、処理を終了する（ステップ９２５）。
【０２５６】
（６）ステップ９２４の判定の結果、変数Ｋの条件を満たす変数Ｊがない場合、監視情報管理部３８ｂは、ステップ９２３に該当するレコードがさらにあるか否かを判定する（ステップ９２６）。
【０２５７】
（７）ステップ９２６の判定の結果、該当するレコードがあった場合、監視情報管理部３８ｂは、そのレコードを新たな変数Ｋとして取得する（ステップ９２７）。そして、新たな変数Ｋについて、ステップ９２４の判定が実行される。閾値テーブル７０３において、一つのリソースに複数の判定条件が設定されている場合がある。この場合、ステップ９２４、９２６及び９２７のループを実行することによって、それらの複数の判定条件のうち少なくとも一つが満たされる場合に、仮想計算機４３の負荷が高いと判定される。
【０２５８】
（８）ステップ９２６の判定の結果、該当するレコードがない場合、監視情報管理部３８ｂは、ステップ９２２に該当するレコードがさらにあるか否かを判定する（ステップ９２８）。
【０２５９】
（９）ステップ９２８の判定の結果、該当するレコードがある場合、監視情報管理部３８ｂは、そのレコードを新たな変数Ｊとして取得する（ステップ９２９）。そして、新たな変数Ｊについて、ステップ９２３以降の処理が実行される。閾値テーブル７０３において、一つの仮想計算機４３の複数のリソースに判定条件が設定されている場合がある。この場合、ステップ９２３から９２９のループを実行することによって、それらの複数のリソースのうち少なくとも一つの判定条件が満たされる場合に、仮想計算機４３の負荷が高いと判定される。
【０２６０】
（１０）ステップ９２８の判定の結果、該当するレコードがない場合、監視情報管理部３８ｂは、代表監視エージェントが稼動する仮想計算機４３の負荷は高くないと判定し、処理を終了する（ステップ９３０）。
【０２６１】
図９Ｄは、本発明の第４の実施形態において、オペレータが性能情報の監視間隔を変更した場合の処理を説明するフローチャートである。
【０２６２】
ここでは、監視情報提供部３５が監視情報を収集する間隔を変更する処理について説明する。監視間隔情報は、監視情報提供部３５から監視情報を収集する間隔を示す情報を含む。
【０２６３】
（１）オペレータが運用管理端末５２の入力部５３を操作して、いずれかの性能監視エージェントによる性能情報の監視間隔を変更する操作を行うと、運用管理端末５２は、性能監視マネージャー４８に対して、変更の対象である性能監視エージェント３２と、新たな監視間隔とを指定する監視間隔変更要求メッセージを送信する（ステップ９３１）。
【０２６４】
（２）次に、性能監視マネージャー４８の監視間隔管理部４６は、監視間隔変更要求メッセージを受信する。そして、監視間隔管理部４６は、監視間隔変更要求メッセージによって指定される新たな監視間隔を、変数Ｘ１として取得する。（ステップ９３２）。さらに、監視間隔管理部４６は、監視間隔変更要求メッセージによって指定される性能監視エージェント３２を、変数Ｘ２として取得する。
【０２６５】
（３）次に、性能監視マネージャー４８の監視間隔管理部４６は、記憶部４９を呼び出し、監視間隔管理テーブル（図示省略）を読み出す。
【０２６６】
監視間隔管理テーブルは、性能監視エージェント欄（図示省略）及び監視間隔欄（図示省略）を含む。性能監視エージェント欄には、性能監視エージェント３２の識別子が記憶される。監視間隔欄には、性能監視エージェント欄の識別子によって識別される性能監視エージェント３２が性能情報を取得する時間間隔を示す情報が記憶される。
【０２６７】
監視間隔管理部４６は、監視間隔管理テーブルから、性能監視エージェント欄が変数Ｘ２の内容と一致するレコードを、変数Ａとして取得する。次に、監視間隔管理部４６は、変数Ａの監視間隔欄に変数Ｘ１の内容を記憶する（ステップ９３３）。
【０２６８】
（４）次に、監視間隔管理部４６は、変数Ｘ１の内容と、監視間隔管理テーブルの各レコードに記憶された監視間隔情報とに基づいて、代表監視エージェントの新たな監視間隔を決定し、決定した監視間隔を変数Ｙとして取得する（ステップ９３４）。
【０２６９】
ここで、変数Ｙは、代表監視エージェントの情報取得タイミングが、性能監視エージェント３２ａ及び３２ｂの情報取得タイミングを包含するように決定される。
【０２７０】
例えば、監視間隔管理部４６は、監視間隔管理テーブルの各レコードに記憶されている監視間隔欄の値を読み出し、それらの値の最大公約数を変数Ｙとする。すなわち、監視間隔管理テーブルから、性能監視エージェント欄に性能監視エージェント３２ａ及び３２ｂの識別子が記憶されているレコードを読み出し、それぞれのレコードの監視間隔欄に記憶されている内容の最大公約数を求める。例えば、「３０分」と「２０分」が記憶されていた場合、それらの最大公約数である「１０分」が代表監視エージェントの監視間隔となる。
【０２７１】
また、例えば、性能監視エージェントの３２ａ及び３２ｂの監視間隔の双方を変数Ｙとして決定することもできる。すなわち、性能監視エージェント３２ａの監視間隔が３０分で、性能監視エージェント３２ｂの監視間隔が２０分と設定されていた場合、代表監視エージェントの監視間隔は３０分と２０分の双方となる。この場合、代表監視エージェントは、３０分ごとに性能情報を取得し、さらに、２０分ごとにも性能情報を取得する。
【０２７２】
（５）次に、性能監視マネージャー４８の監視間隔管理部４６は、性能監視エージェント３２ａ及び３２ｂの監視情報収集部３７ａ及び３７ｂに対し、変数Ｙの内容を指定する監視間隔変更メッセージを送信する（ステップ９３５）。
【０２７３】
監視情報収集部３７ａ及び３７ｂは、監視間隔変更メッセージを受信する。そして、監視情報収集部３７ａ及び３７ｂは、監視間隔変更メッセージによって指定される変数Ｙから、監視間隔情報を抽出し、抽出した監視間隔情報を、監視情報記憶部４０ａ及び４０ｂに記憶する。
【０２７４】
以降、性能監視エージェント３２ａ及び３２ｂの監視情報収集部３７ａ及び３７ｂは、監視情報記憶部４０ａ及び４０ｂを呼び出し、監視間隔情報として記憶された監視間隔に基づいて監視情報を収集する。
【０２７５】
一又は一以上のゲストＯＳ３１上にそれぞれ性能監視エージェント３２を稼動させる場合において、各性能監視エージェント３２がそれぞれ仮想化機構３０上の監視情報を監視情報記憶部４０に格納すると、監視対象計算機５０が、同じ監視情報を重複して保持することになる。その結果、監視対象計算機５０が備える記憶領域（例えば、メモリ２２又は外部記憶装置２５）が浪費される。しかし、本発明の第４の実施形態によれば、複数の性能監視エージェント３２を代表する一つの性能監視エージェント３２のみが性能情報を共有記憶部５６に格納することで、性能監視エージェントが格納するデータ量を削減することができる。
【０２７６】
また、代表監視エージェントが稼動する仮想計算機４３の負荷が高いとき、仮想化機構３０上の監視情報を取得し、それを共有記憶部５６に格納することができない場合がある。しかし、本発明の第４の実施形態によれば、代表監視エージェントが稼動する仮想計算機４３の負荷が高い時に、代表監視エージェントではない性能監視エージェント３２が監視情報を共有記憶部５６に記憶することで、仮想化機構３０上の監視情報の収集漏れの発生を防止することができる。
【０２７７】
性能監視マネージャー４８が代表監視エージェントからハートビート信号を受け取ることによって、又は、性能監視マネージャー４８が代表監視エージェントの生死を定期的に確認することによって、代表監視エージェントの監視情報取得漏れを検知し、代表監視エージェントを交代させることも考えられる。しかし、その場合、代表監視エージェントが監視情報を収集できない状況になってから、性能監視マネージャー４８がその状況を検知するまで時間がかかるため、その間は監視情報を収集することができないという問題がある。本発明の第４の実施形態によれば、代表監視エージェントが稼動する仮想計算機の負荷が高い時に、性能監視マネージャー４８の処理判断を待つことなく、各性能監視エージェント３２が監視情報を共有記憶部５６に格納する。このため、代表監視エージェントによる監視情報の収集漏れを少なくすることができる。
【０２７８】
また、本発明の第４の実施形態によれば、仮想計算機の高負荷などのために代表監視エージェントが取得できなかった情報を他の性能監視エージェント３２が収集していれば、その情報によって、代表監視エージェントが取得した情報を補完して、運用管理端末５２に表示することができる。
【０２７９】
次に、本発明の第５の実施形態を説明する。
【０２８０】
本発明の第５の実施形態による情報処理システムの機能ブロック図は、第４の実施形態と同様である（図７参照）。第５の実施形態では、第４の実施形態と同様の情報処理システムにおいて、代表監視エージェントの負荷が継続して高い場合に、代表監視エージェントを交代させる処理が実行される。
【０２８１】
本発明の第５の実施形態による情報処理システムの構成について、図７を参照して説明する。ただし、第４の実施形態による情報処理システムの構成と同じ部分については説明を省略し、差異点について説明する。
【０２８２】
監視情報管理部３８ａ及び３８ｂは、第４の実施形態のそれらが備える機能に加えて、代表監視エージェントが稼動する仮想計算機４３の負荷が継続して高いことを検知し、代表監視エージェントの交代候補を性能監視マネージャー４８に通知する機能を有する。
【０２８３】
性能監視エージェント３２の監視情報記憶部４０ａ及び４０ｂは、負荷判定履歴テーブル記憶領域（図示省略）及び交代条件テーブル記憶領域（図示省略）を含む。
【０２８４】
負荷判定履歴テーブル記憶領域には、代表監視エージェントが稼動する仮想計算機４３の負荷が高いか否かを判定した結果を示す情報が記憶される。
【０２８５】
負荷判定履歴テーブル記憶領域には、例えば、図１０Ａに示す負荷判定履歴テーブル２０００が記憶されている。
【０２８６】
図１０Ａは、本発明の第５の実施形態の負荷判定履歴テーブル２０００の説明図である。
【０２８７】
負荷判定履歴テーブル２０００は、時刻欄２０００ａと、負荷判定結果欄２０００ｂと、を含む。
【０２８８】
時刻欄２０００ａには、負荷判定をした時刻が記憶されている。
【０２８９】
負荷判定結果欄２０００ｂは、図８に示す閾値テーブル７０３の番号欄７０３ａに記憶された各番号に対応する欄（２０００ｃ、２０００ｄ、．．．）を含む。それぞれの欄には、代表監視エージェントの負荷が高いと判定された場合、「Ｙ」が記憶され、負荷が高くないと判定された場合、「Ｎ」が記憶される。ただし、負荷が高いか否かを判定し、その判定の結果を記憶できるかぎり、上記の方法に限定されず、いかなる方法によって判定及びその結果の記憶が実行されてもよい。
【０２９０】
交代条件テーブル記憶領域には、代表監視エージェントを交代させる条件が記憶されている。交代させる条件は、例えば、代表監視エージェントが稼動する仮想計算機４３の負荷が継続して高いことである。例えば、仮想計算機４３の負荷が、閾値テーブル７０３に記憶された閾値をある頻度（１０回中７回）で超えた場合、継続して負荷が高いと判定される。
【０２９１】
例えば、交代条件テーブル記憶領域には、図１０Ｂに示すような交代条件テーブル２００１が記憶されている。
【０２９２】
図１０Ｂは、本発明の第５の実施形態の交代条件テーブル２００１の説明図である。
【０２９３】
交代条件テーブル２００１は、交代条件欄２００１ａを含む。
【０２９４】
交代条件欄２００１ａには、代表監視エージェントを交代させるための条件が記憶されている。例えば、交代条件欄２００１ａには、図８に示す閾値テーブル７０３の番号欄７０３ａに対応する番号と、判定条件欄７０３ｄの判定条件を満たす頻度が記憶されている。例えば、交代条件欄２００１ａに、「（番号＝２）＆＆（条件＝７回中５回閾値超過した場合）」と記憶されている場合、仮想計算機名「ＶＭ２」及びリソース名「ｖＣＰＵ１」によって識別されるリソースの監視情報のうち、最近７回に取得された、監視情報名が「ＣＰＵ割当要求率」である監視情報が参照される。そして、それらの７回の監視情報値のうち、いずれか５回の監視情報値が「５％」を超えていた場合、継続して負荷が高いと判定される。
【０２９５】
継続して負荷が高いと判断する条件は、上記のような条件に限定されない。例えば、仮想計算機４３の負荷が、指定した回数、連続して閾値を超過した場合に、継続して負荷が高いと判定されてもよい。あるいは、所定の時間、負荷が高いと判定された場合に、継続して負荷が高いと判定されてもよい。
【０２９６】
性能監視マネージャー４８は、エージェント管理部５８を備えている。
【０２９７】
エージェント管理部５８は、性能監視マネージャー４８の管理下にある性能監視エージェント３２ａ及び３２ｂの状態を管理する処理を実行する。例えば、性能監視エージェント３２の負荷が高い場合、エージェント管理部５８は、代表監視エージェントの交代処理を実行する。
【０２９８】
次に、本発明の第５の実施形態による情報処理システムにおいて実行される処理について説明する。
【０２９９】
図１１Ａは、本発明の第５の実施形態の情報処理システムにおいて実行される処理の全体を説明するフローチャートである。
【０３００】
以下、図１１Ａの処理が開始された時点で第１仮想計算機４３ａの第１性能監視エージェント３２ａが代表監視エージェントである場合を例として説明する。すなわち、図１１Ａの処理が開始される前の時点において、第１性能監視エージェント３２ａは、定期的に仮想化機構３０の監視情報提供部３５から監視情報を取得し、その監視情報を共有記憶部５６に記憶する。一方、代表監視エージェントでない第２性能監視エージェント３２ｂは、第１仮想計算機４３ａの負荷が高いと判定された場合のみ、仮想化機構３０の監視情報提供部３５から監視情報を取得し、その監視情報を共有記憶部５６に記憶する。
【０３０１】
（１）まず、初期設定が実行される（ステップ１２７１）。
【０３０２】
例えば、オペレータは、運用管理端末５２の入力部５３から、交代条件テーブル２００１の内容、及び、閾値テーブル７０３の内容を入力する。運用管理端末５２の通信処理部５５は、入力対象の交代条件テーブル２００１及び閾値テーブル７０３を指定し、入力された内容を含むメッセージを送信する。
【０３０３】
性能監視エージェント３２ａ及び３２ｂの監視情報記憶部４０ａ及び４０ｂは、性能監視マネージャー４８を介して、運用管理端末５２から送信されたメッセージを受け取り、監視情報記憶部４０ａ及び４０ｂの交代条件テーブル記憶領域及び閾値判定テーブル記憶領域に、メッセージで指定された交代条件テーブル２００１の内容、及び、閾値テーブル７０３の内容をそれぞれ記憶する。
【０３０４】
なお、この時点では、負荷判定履歴テーブル記憶領域に記憶された負荷判定履歴テーブル２０００には何も記憶されていない。
【０３０５】
（２）次に、第２性能監視エージェント３２ｂの監視情報収集部３７ｂは、代表監視エージェント情報４１ｂに基づいて代表監視エージェントを決定する。そして、監視情報収集部３７ｂは、監視情報提供部３５から代表監視エージェントが稼動する仮想計算機４３（すなわち第１仮想計算機４３ｂ）の監視情報を定期的に収集する（ステップ１２７２）。
【０３０６】
（３）次に、第２性能監視エージェント３２ｂの監視情報管理部３８ｂは、収集した監視情報に基づいて、第１仮想計算機４３ｂの負荷が高いか否かを判定し、判定した結果を負荷判定履歴テーブル２０００に記憶する（ステップ１２７３）。
【０３０７】
なお、負荷が高いか否かの判定については、例えば、図８に示した閾値テーブル７０３に基づいて、図９Ｃに示す処理によって判定される。
【０３０８】
例えば、監視情報管理部３８ｂは、図８の閾値テーブル７０３のレコードを一つずつ呼び出し、第１仮想計算機４３ｂの負荷が判定条件７０３ｄを満足するか否かを判定し、その判定の結果を、新たに追加した負荷判定履歴テーブル２０００のレコードに記憶する。第１仮想計算機４３ｂの負荷が判定条件を満足する場合、監視情報管理部３８ｂは、その判定条件の記憶された閾値テーブル７０３のレコードの番号欄７０３ａに対応する負荷判定履歴テーブル２０００の負荷判定結果欄２０００ｂに「Ｙ」を記憶する。一方、判定条件が満足されなかった場合、監視情報管理部３８ｂは、負荷判定結果欄２０００ｂに「Ｎ」を記憶する。そして、監視情報管理部３８ｂは、時刻欄２０００ａに負荷判定をした時刻を記憶する。
【０３０９】
（４）次に、第２性能監視エージェント３２ｂの監視情報管理部３８ｂは、負荷判定履歴テーブル２０００を読み出し、代表監視エージェントが稼動する仮想計算機４３の負荷が継続して高いか否かを判定する（ステップ１２７４）。代表監視エージェントが稼動する仮想計算機４３の負荷が継続して高いか否かを判定する処理については、図１１Ｂで説明する。
【０３１０】
（５）ステップ１２７４において、代表監視エージェントの負荷（すなわち、代表監視エージェントが稼動する仮想計算機４３の負荷）が継続して高いと判定された場合、監視情報管理部３８ｂは、代表監視エージェント交代要求メッセージを性能監視マネージャー４８に送信する（ステップ１２７５）。代表監視エージェント交代要求メッセージは、代表監視エージェント候補リスト（図示省略）を含んでもよい。代表監視エージェント候補リストとは、これから代表監視エージェントとして選択される性能監視エージェント３２の候補のリストである。代表監視エージェント候補リストは、現在の代表監視エージェントによって代表されている性能監視エージェント３２のうち、少なくとも一つを識別する情報を含む。
【０３１１】
（６）次に、ステップ１２７５の交代要求メッセージを受けた性能監視マネージャー４８のエージェント管理部５８は、性能監視エージェント３２ａ及び３２ｂの中から一つを新たな代表監視エージェントとして選択する（ステップ１２７６）。
【０３１２】
ここで、例えば、エージェント管理部５８は、新たな代表監視エージェントを、代表監視エージェント交代要求メッセージに含まれる性能監視エージェント３２の候補リストから選択することもできる。この処理の一例を図１１Ｃで説明する。
【０３１３】
新たな代表監視エージェントの選択方法は、図１１Ｃに示す処理に限定されない。例えば、負荷の高い代表監視エージェントとなっている性能監視エージェント３２以外の性能監視エージェント３２からランダムに代表監視エージェントを選択することもできる。
【０３１４】
ここで、新たな代表監視エージェントを決定する際に、エージェント管理部５８が、性能監視エージェント３２に対して、その性能監視エージェント３２が代表監視エージェントになれるか否かを問い合わせる処理をしてもよい。
【０３１５】
（７）エージェント管理部５８は、第１性能監視エージェント３２ａによって代表されている全ての性能監視エージェント３２（図７の例では、第２性能監視エージェント３２ｂ）に対して、代表監視エージェント交代メッセージを送信する（ステップ１２７７）。代表監視エージェント交代メッセージは、新たに代表監視エージェントとして選択された性能監視エージェントを識別する情報を含む。
【０３１６】
（８）性能監視エージェント３２ａ及び３２ｂの監視情報管理部３８ａ及び３８ｂは、代表監視エージェント交代メッセージを受信する。そして、監視情報管理部３８ａ及び３８ｂは、代表監視エージェント交代メッセージから新たな代表監視エージェントを識別する情報を抽出し、代表監視エージェント情報４１ａ及び４１ｂの内容を抽出された情報に書き換える（ステップ１２７８）。書き換え後、処理はステップ１２７２に戻る。
【０３１７】
（９）ステップ１２７４において、代表監視エージェントの負荷が継続して高いと判定されなかった場合、処理はステップ１２７２に戻る。
【０３１８】
ステップ１２７８が実行された結果、第２性能監視エージェント３２ｂが新たな代表監視エージェントとなる。一方、第１性能監視エージェント３２ａは代表監視エージェントでなくなる。すなわち、ステップ１２７８が実行された後、第２性能監視エージェント３２ｂは、定期的に仮想化機構３０の監視情報提供部３５から監視情報を取得し、その監視情報を共有記憶部５６に記憶する。一方、代表監視エージェントでない第１性能監視エージェント３２ａは、第２仮想計算機４３ｂの負荷が高いと判定された場合のみ、仮想化機構３０の監視情報提供部３５から監視情報を取得し、その監視情報を共有記憶部５６に記憶する。
【０３１９】
図１１Ｂは、本発明の第５の実施形態において、代表監視エージェントでない第２性能監視エージェント３２ｂの監視情報管理部３８ｂが、代表監視エージェントが稼動する仮想計算機４３ａの負荷が継続して高いか否かを判定する処理を示すフローチャートである。
【０３２０】
（１）代表監視エージェントでない第２性能監視エージェント３２ｂの監視情報管理部３８ｂは、交代条件テーブル２００１から新たなレコードを、変数Ｕ１として取得する（ステップ１３００）。
【０３２１】
（２）次に、監視情報管理部３８ｂは、変数Ｕ１の交代条件欄２００１ａの番号として記憶された情報を、変数Ｂ１として取得する（ステップ１３０１）。
【０３２２】
（３）次に、監視情報管理部３８ｂは、変数Ｕ１の交代条件欄２００１ａの条件のうち、頻度の分母となっている値を変数Ｂ２として取得し、分子となっている値を変数Ｂ３として取得する（ステップ１３０２）。
【０３２３】
（４）次に、監視情報管理部３８ｂは、負荷判定履歴テーブル２０００の時刻欄２０００ａに基づいてレコードをソート（並べ替え）する。例えば、監視情報管理部３８ｂは、時刻欄２０００ａに記憶された時刻が降順となるように、負荷判定履歴テーブル２０００のレコードをソートする。そして、監視情報管理部３８ｂは、時刻欄２０００ａに記憶された時刻が降順となるように、変数Ｂ２に記憶された個数のレコードを指定する（ステップ１３０３）。
【０３２４】
（５）次に、監視情報管理部３８ｂは、ステップ１３０３で指定されたレコードのうち一つのレコードを変数Ａ１として取得する（ステップ１３０４）。
【０３２５】
（６）次に、監視情報管理部３８ｂは、変数Ａ１の負荷判定結果欄２０００ｂのうち、変数Ｂ１と一致する番号の欄に「Ｙ」が記憶されている場合、変数Ｔに１を加える（ステップ１３０５）。
【０３２６】
（７）次に、監視情報管理部３８ｂは、ステップ１３０３で指定されたレコードに変数Ａ１の次の要素（すなわち、まだ変数Ａ１として取得されていないレコード）があるか否かを判定する（ステップ１３０６）。ステップ１３０６の判定の結果、次の要素がある場合、処理はステップ１３０４に戻る。
【０３２７】
（８）ステップ１３０６の判定の結果、次の要素がない場合、監視情報管理部３８ｂは、変数Ｔと変数Ｂ３の内容を比較して、変数Ｔが大きいか否かを判定する（ステップ１３０７）。ここでは、負荷が閾値を超える頻度が、交代条件テーブル２００１に設定された頻度を超過したか否かが判定される。
【０３２８】
（９）ステップ１３０７の判定の結果、変数Ｔが変数Ｂ３より大きい場合、監視情報管理部３８ｂは、継続して負荷が高いと判定する（ステップ１３０８）。
【０３２９】
（１０）ステップ１３０７の判定の結果、変数Ｔが変数Ｂ３より大きくない場合、監視情報管理部３８ｂは、ステップ１３００で指定したレコードに変数Ｕ１の次の要素があるか否か（すなわち、ステップ１３００で指定したレコードのうち、まだ変数Ｕ１として取得されていないレコードがあるか否か）を判定する（ステップ１３０９）。
【０３３０】
（１１）ステップ１３０９の判定の結果、次の要素がある場合、処理はステップ１３００に戻る。
【０３３１】
（１２）ステップ１３０９の判定の結果、次の要素がない場合、監視情報管理部３８ｂは、継続して負荷が高くないと判定する（ステップ１３１０）。
【０３３２】
図１１Ｃは、本発明の第５の実施形態の性能監視マネージャー４８が新たな代表監視エージェントを決定する処理を示すフローチャートである。
【０３３３】
なお、ここでは、第１性能監視エージェント３２ａを現在の代表監視エージェントとし、第２性能監視エージェント３２ｂを現在代表監視エージェントでないエージェントであるものとする。
【０３３４】
（１）まず、性能監視マネージャー４８のエージェント管理部５８は、代表監視エージェント候補リストを含む代表監視エージェント交代要求メッセージを第２性能監視エージェント３２ｂから送受信部５７を介して受信する（ステップ１２００）。
【０３３５】
（２）次に、性能監視マネージャー４８のエージェント管理部５８は、受信した代表監視エージェント交代要求メッセージから代表監視エージェント候補リストを抽出して、抽出した性能監視エージェントリストを変数Ｉとして取得する（ステップ１２０１）。
【０３３６】
（３）次に、エージェント管理部５８は、変数Ｉから要素を一つ取り出し、取り出した要素を変数Ｊとして格納する（ステップ１２０２）。
【０３３７】
ここで、例えば、変数Ｊは、一つの性能監視エージェント識別子を含む。
【０３３８】
（４）次に、エージェント管理部５８は、変数Ｊによって識別される性能監視エージェント３２に対して、代表監視エージェント依頼メッセージを送信する（ステップ１２０４）。ここで、代表監視エージェント依頼メッセージは、変数Ｊによって識別される性能監視エージェント３２が、代表監視エージェントになれるか否かを確認するメッセージである。以下、変数Ｊによって識別される性能監視エージェント３２が、性能監視エージェント３２ｂである場合を例として説明する。
【０３３９】
代表監視エージェント依頼メッセージを受信した性能監視エージェント３２ｂの監視情報管理部３８ｂは、性能監視エージェント３２ｂが代表監視エージェントになることができるか否かを判定する。この判定は、例えば、第２仮想計算機４３ｂの現在の性能に基づいて実行されてもよい。例えば、第２仮想計算機４３ｂの現在の負荷が所定の閾値より高くない場合、性能監視エージェント３２ｂが代表監視エージェントになることができると判定されてもよい。負荷が高いか否かの判定は、監視情報記憶部４０ｂを呼び出し、図８に示すような閾値テーブル７０３の判定条件を満たすか否かを判定することによって実行されてもよい。
【０３４０】
性能監視エージェント３２ｂは、代表監視エージェントになることができるか否かを判定した結果を、代表監視エージェント依頼メッセージに対する応答メッセージに含めて、性能監視マネージャー４８に送信する。応答メッセージは、例えば、代表監視エージェントになることができる場合には「ＹＥＳ」を示す情報を含み、代表監視エージェントになることができない場合には「ＮＯ」を示す情報を含む。
【０３４１】
（５）性能監視マネージャー４８は、変数Ｊによって識別される性能監視エージェントからステップ１２０４の応答メッセージを受信する（ステップ１２０６）。
【０３４２】
（６）性能監視マネージャー４８のエージェント管理部５８は、受信した応答メッセージの内容を解析して、内容がＹＥＳか否かを判定する（ステップ１２０８）。
【０３４３】
（７）ステップ１２０８の判定の結果、ＹＥＳだった場合、エージェント管理部５８は、性能監視マネージャー４８の管理下にある性能監視エージェント３２に対して変数Ｊ（すなわち、第２性能監視エージェント３２ｂの識別子）を含む代表監視エージェント交代メッセージを送信し（ステップ１２１０）、処理を終了する。
【０３４４】
この場合、代表監視エージェントを、変数Ｊによって識別される性能監視エージェントに交代させたことになる。
【０３４５】
（８）ステップ１２０４の判定の結果、ＮＯだった場合、変数Ｊによって識別される性能監視エージェントを新たな代表監視エージェントとすることはできない。この場合、エージェント管理部５８は、性能監視エージェントリストに次の要素があるか否か（すなわち、まだ変数Ｊとして処理されていない要素があるか否か）を判定する（ステップ１２１２）。
【０３４６】
（９）ステップ１２１２の判定の結果、次の要素がある場合、エージェント管理部５８は、次の要素を新たな変数Ｊとして取り出して、ステップ１２０２に戻る。
【０３４７】
（１０）ステップ１２１２の判定の結果、次の要素がない場合、いずれの性能監視エージェント３２も新たな代表監視エージェントとなることができない。この場合、性能監視マネージャー４８は、管理下にある性能監視エージェント３２に対して、代表監視エージェントの交代ができないことを示すメッセージを送信し（ステップ１２１４）、処理を終了する。
【０３４８】
なお、本発明の第５の実施形態では、監視対象計算機５０、監視マネージャー計算機５１及び運用管理端末５２が、ネットワークで接続された独立の計算機である場合を例として示した。しかし、第５の実施形態は、この構成に限定されない。すなわち、例えば、運用管理端末５２は、監視マネージャー計算機５１と同一の計算機であってもよいし、監視対象計算機５０と同一の計算機であってもよいし、監視対象計算機５０内に構成される仮想計算機４３の一つであってもよい。また、監視マネージャー計算機５１は、監視対象計算機５０と同一の計算機であってもよいし、監視対象計算機５０内に構成される仮想計算機４３の一つであってもよい。
【０３４９】
本発明の第５の実施形態によれば、仮想計算機４３の負荷が高いために代表監視エージェントが継続して仮想化機構３０の監視情報を取得できず、その結果、共有記憶部５６に監視情報を格納できなかった場合に、代表監視エージェントを交代させることができる。
【０３５０】
第４の実施形態では、各性能監視エージェント３２は、代表監視エージェントが稼動する仮想計算機４３の負荷が高いと判定した場合に、共有記憶部５６にそれぞれ監視情報を格納する。そうすると、代表監視エージェントが稼動する仮想計算機４３の負荷が継続して高い場合、各性能監視エージェント３２がそれぞれ監視情報を記憶することになるため、重複したデータが格納される可能性が高い。第５の実施形態によれば、仮想計算機の負荷が高くなった代表監視エージェントを交代させることによって、重複するデータ量をより削減することが可能である。
【０３５１】
次に、本発明の第６の実施形態を説明する。
【０３５２】
図１２は、本発明の第６の実施形態による情報処理システムの構成を示す機能ブロック図である。
【０３５３】
ただし、第６の実施形態による情報処理システムの構成が第１の実施形態によるものと共通する部分については説明を省略し、相違点について主に説明する。
【０３５４】
仮想化機構３０は、メッセージ通信処理部３４及び監視情報提供部３５を含む。仮想化機構３０上では第１仮想計算機４３ａ及び第２仮想計算機４３ｂが稼動している。
【０３５５】
第１仮想計算機４３ａ上では、第１ゲストＯＳ３１ａが稼動し、第２仮想計算機４３ｂ上では、第２ゲストＯＳ３１ｂが稼動している。
【０３５６】
第１ゲストＯＳ３１ａ上では、第１性能監視エージェント３２ａが稼動する。
【０３５７】
第１性能監視エージェント３２ａは、第２仮想計算機４３ｂの監視情報（すなわち第２仮想計算機監視情報３０ｃ）を監視し、第２ゲストＯＳの起動失敗を検知するプログラムである。第１性能監視エージェント３２ａは、監視情報収集部３７ａ及び監視情報管理部３８ａを含む。
【０３５８】
監視情報管理部３８ａは、監視情報収集部３７ａが収集した監視情報の内容を解析し、第２仮想計算機４３ｂの負荷パターンを判定する。例えば、監視情報管理部３８ａが、第２ゲストＯＳ３１ｂ起動時の通常の負荷パターン情報を記憶しており、前記監視情報から取得した負荷パターンが、記憶していた負荷パターン情報の条件と合わない場合、起動失敗したと判定することもできる。
【０３５９】
第２ゲストＯＳ３１ｂ上では、第２性能監視エージェント３２ｂが稼動している。第２ゲストＯＳ３１ｂは、まだ起動していないものとする。
【０３６０】
第２性能監視エージェント３２ｂは、第２ゲストＯＳ３１ｂ上で稼動する性能監視エージェントであり、起動通知部４４を含む。
【０３６１】
起動通知部４４は、性能監視マネージャー４８に第２性能監視エージェント３２ｂが起動したことを通知する処理を実行する。例えば、第２性能監視エージェント３２ｂが起動する処理の最後に、起動通知部４４が性能監視マネージャー４８に起動通知を送信するように構成されてもよい。オペレータは、あらかじめ、起動通知の送信先を決定し、その送信先を性能監視エージェント３２に設定しておくことができる。具体的には、オペレータは、運用管理端末５２の入力部５３を用いて起動通知の送信先を識別する情報を入力する。入力された情報は、性能監視マネージャー４８を介して、性能監視エージェント３２に設定される。
【０３６２】
監視情報提供部３５は、第１仮想計算機４３ａ及び第２仮想計算機４３ｂに係る仮想計算機構成情報を備えている。仮想計算機構成情報は仮想計算機ごとに記憶される第１仮想計算機監視情報３０ｂ及び第２仮想計算機監視情報３０ｃに含まれる。
【０３６３】
第１仮想計算機監視情報３０ｂに含まれる仮想計算機構成情報は、例えば、第１仮想計算機４３ａの仮想的な電源状態を保持している。同様に、第２仮想計算機監視情報３０ｃに含まれる仮想計算機構成情報は、例えば、第２仮想計算機４３ｂの仮想的な電源状態を保持している。仮想的な電源状態とは、例えば、仮想計算機４３が起動状態、停止状態又はサスペンド状態のいずれの状態であるかを示す情報である。
【０３６４】
監視対象計算機５０とネットワーク２６を介して接続されている監視マネージャー計算機５１上では、性能監視マネージャー４８が稼動している。
【０３６５】
性能監視マネージャー４８は、ゲストＯＳ状態管理部４５及び記憶部４９を含む。
【０３６６】
ゲストＯＳ状態管理部４５は、ゲストＯＳ３１の状態を管理するプログラムモジュールである。
【０３６７】
記憶部４９は、仮想計算機ゲストＯＳ対応テーブル記憶領域（図示省略）、性能監視エージェントゲストＯＳ対応テーブル記憶領域（図示省略）及びゲストＯＳ状態管理テーブル記憶領域（図示省略）を含む。これらは、例えば、監視マネージャー計算機５１を実現する計算機２０のメモリ２２又は外部記憶装置２５の記憶領域である。
【０３６８】
なお、ゲストＯＳ状態管理テーブル記憶領域には、ゲストＯＳ状態管理部４５が管理するゲストＯＳ３１ａ及び３１ｂに関する情報を含むゲストＯＳ状態管理テーブル（図示省略）が記憶されている。
【０３６９】
例えば、ゲストＯＳ状態管理テーブルは、ホスト名欄（図示省略）及び状態欄（図示省略）を含む。
【０３７０】
ホスト名欄には、ゲストＯＳ３１の識別子としてホスト名が記憶される。
【０３７１】
状態欄には、ホスト名欄に記憶したゲストＯＳ３１の状態が記憶される。状態とは、例えば、「起動状態」、「起動中」、「停止状態」、「停止中」、「サスペンド状態」、「サスペンド中」、といった状態である。また、起動失敗した場合には、「起動失敗」が記憶される。
【０３７２】
図１３Ａ及び図１３Ｂは、本発明の第６の実施形態の第１性能監視エージェント３２ａが第２ゲストＯＳ３１ｂの起動失敗を監視する処理を示すシーケンス図である。次にこれらについて説明する。
【０３７３】
図１３Ａは、第２ゲストＯＳ３１ｂの起動が成功した場合のシーケンス図であり、図１３Ｂは、第２ゲストＯＳ３１ｂの起動が失敗した場合のシーケンス図である。
【０３７４】
（１）第１性能監視エージェント３２ａ内の監視情報収集部３７ａは、監視情報提供部３５から構成情報（具体的には、第２仮想計算機４３ｂの電源状態）を定期的に収集する。監視情報管理部３８は、収集した情報に基づいて、第２仮想計算機４３ｂが起動したか否かを判定する（ステップ１４０１）。
【０３７５】
例えば、第２仮想計算機４３ｂの電源状態が停止状態から起動状態に変化した場合、第１性能監視エージェント３２ａの監視情報管理部３８は、第２仮想計算機４３ｂが起動したと判定することができる。一方、第２仮想計算機の電源状態が停止状態のままであった場合、第１性能監視エージェント３２ａの監視情報管理部３８は、第２仮想計算機４３ｂが起動していないと判定することができる。なお、電源状態の変化は、例えば、監視情報収集部３７ａが収集した構成情報に含まれる電源状態情報と、監視情報記憶部４０ａに記憶されている１回前の収集における構成情報に含まれる電源状態情報と、を比較することによって判定することができる。
【０３７６】
また、監視情報管理部３８が、仮想計算機４３ｂの電源状態について、停止状態から起動状態への変化を検出する代わりに、サスペンド状態から起動状態への変化を検出した場合、サスペンドからの回復処理失敗を検知することができる。
【０３７７】
（２）ステップ１４０１において、監視中の第２仮想計算機４３ｂが起動したと判定された場合、第１性能監視エージェント３２ａの監視情報管理部３８は、第２仮想計算機４３ｂが起動したことを性能監視マネージャー４８に対して通知する。具体的には、監視情報管理部３８は、起動を検出した仮想計算機４３（すなわち第２仮想計算機４３ｂ）に関する情報を含む仮想計算機起動検知メッセージを性能監視マネージャー４８に送信する（ステップ１４０２）。起動を検出した仮想計算機４３に関する情報は、例えば、起動を検出した仮想計算機４３の識別子を含む。
【０３７８】
（３）次に、性能監視マネージャー４８のゲストＯＳ状態管理部４５は、仮想計算機起動検知メッセージを受信すると、起動が検出された仮想計算機４３（すなわち第２仮想計算機４３ｂ）の識別子を変数Ｉとして記憶する。
【０３７９】
（４）次に、ゲストＯＳ状態管理部４５は、変数Ｉに対応するゲストＯＳ３１の起動状態の管理情報を変更する。
【０３８０】
具体的には、ゲストＯＳ状態管理部４５は、記憶部４９を呼び出し、仮想計算機ゲストＯＳ対応テーブル７０２及びゲストＯＳ状態管理テーブルを読み出す。そして、ゲストＯＳ状態管理部４５は、仮想計算機ゲストＯＳ対応テーブル７０２を検索し、仮想計算機名欄７０２ａが変数Ｉと一致するレコードのホスト名欄７０２ｂの値を変数Ｊとする。さらに、ゲストＯＳ状態管理部４５は、ゲストＯＳ状態管理テーブルを検索し、ホスト名欄が変数Ｊと一致するレコードの状態欄に「起動中」と記憶する。
【０３８１】
（５）次に、ゲストＯＳ状態管理部４５は、第１性能監視エージェント３２ａの監視情報管理部３８ａに対して、第２ゲストＯＳ３１ｂの起動失敗検知要求メッセージを送信する（ステップ１４０３）。
【０３８２】
起動失敗検知要求メッセージは、起動失敗を検知する対象である仮想計算機４３（すなわち第２仮想計算機４３ｂ）を指定する情報を含む。起動失敗検知要求メッセージは、指定した仮想計算機４３が起動失敗したことを検知する処理を、メッセージを受信した性能監視エージェント３２に対して要求するメッセージである。
【０３８３】
（６）第１性能監視エージェント３２ａの監視情報管理部３８ａは、起動失敗検知要求メッセージを受信する。監視情報管理部３８ａは、起動失敗検知要求メッセージから、起動失敗を検知する対象の仮想計算機４３を指定する情報を抽出し、その情報を変数Ｋとして記憶する。なお、起動失敗を検知する対象の仮想計算機４３を指定する情報とは、具体的には、例えば起動失敗を検知する対象の仮想計算機４３の識別子である。以降、変数Ｋで第２仮想計算機４３ｂが指定されていたと仮定して説明する。
【０３８４】
（７）第１性能監視エージェント３２ａは、第２仮想計算機４３ｂの監視情報を定期的に監視して、第２仮想計算機の負荷が高いか否かを判定する（ステップ１４０４）。
【０３８５】
すなわち、第１性能監視エージェント３２ａの監視情報収集部３７ａは、監視情報提供部３５から、第２仮想計算機４３ｂに関する監視情報（すなわち第２仮想計算機監視情報３０ｃ）を定期的に収集する。また、監視情報管理部３８ａは、監視情報収集部３７ａが収集した監視情報に基づいて、ゲストＯＳ３１の起動が失敗したか否かを判定する。
【０３８６】
例えば、収集された第２仮想計算機監視情報３０ｃが、第２ゲストＯＳ３１ｂが正常に起動した時に収集された監視情報と異なるパターンを示した場合、第２ゲストＯＳ３１ｂの起動が失敗したと判定される。具体的には、例えば、第２仮想計算機４３ｂの負荷が高いまま、定常状態になった場合、あるいは、起動処理開始直後に第２仮想計算機４３ｂの負荷が低いままとなった場合等、収集された監視情報が、第２ゲストＯＳ３１ｂの正常な起動時に示さないような挙動を示した場合である。あるいは、一般にＯＳ起動時にはＩ／Ｏ処理が頻繁に発生するが、起動処理直後にＩ／Ｏ処理がほとんど発生しなかった場合にも、ゲストＯＳ３１が起動に失敗したものと判定することができる。
【０３８７】
（８）第２性能監視エージェント３２ｂが起動した後、第２性能監視エージェント３２ｂの起動通知部４４は、性能監視マネージャー４８のゲストＯＳ状態管理部４５に、起動通知メッセージを送信する（ステップ１４０５）。
【０３８８】
起動通知メッセージは、第２性能監視エージェント３２ｂが起動したことを伝えるためのメッセージである。本発明の第６の実施形態では、この起動通知メッセージを送信したことをもって、ゲストＯＳが起動終了したものとみなす。
【０３８９】
（９）第２性能監視エージェント３２ｂの起動通知部４４から起動通知メッセージを受信した性能監視マネージャー４８のゲストＯＳ状態管理部４５は、記憶部４９を呼び出し、性能監視エージェントゲストＯＳ対応テーブル７０１及びゲストＯＳ状態管理テーブルを読み出す。
【０３９０】
そして、ゲストＯＳ状態管理部４５は、ゲストＯＳ状態管理テーブルを検索し、第２仮想計算機４３ｂに対応する第２性能監視エージェント３２ｂの識別子がホスト名欄に記憶されているレコードの状態欄に「起動状態」と記憶する。
【０３９１】
さらに、ゲストＯＳ状態管理部４５は、第１性能監視エージェント３２ａの監視情報管理部３８ａに対して、起動失敗検知終了メッセージを送信する（ステップ１４０６）。
【０３９２】
起動失敗検知終了メッセージは、ゲストＯＳ起動失敗の監視を終了するよう要求するメッセージである。起動失敗検知終了メッセージは、起動失敗検知処理を停止する仮想計算機（すなわち第２仮想計算機３２ｂ）を指定する情報を含む。
【０３９３】
（１０）第１性能監視エージェント３２ａの監視情報管理部３８ａは、起動失敗検知終了メッセージを受信する。受信した起動失敗検知終了メッセージから、起動失敗検知処理を停止する仮想計算機４３を指定する情報（具体的には、例えば第２仮想計算機４３ｂの識別子）を抽出し、その情報を変数Ｋとして記憶する。
【０３９４】
そして、監視情報管理部３８ａは、変数Ｋに対応する第２ゲストＯＳ３１ｂの起動失敗を検知する監視処理を終了する。また、監視情報収集部３７ａは、起動失敗検知処理のための収集処理を終了する。
【０３９５】
続いて、ゲストＯＳ３１の起動が失敗したと判定された場合の処理について図１３Ｂを参照して説明する。図１３Ｂにおいて、ステップ１４０１からステップ１４０４までの処理は、図１３Ａと同じである。
【０３９６】
（１１）ステップ１４０４において、ゲストＯＳ３１の起動が失敗したと判定された場合、第１性能監視エージェント３２ａの監視情報管理部３８ａは、性能監視マネージャー４８に対して、起動が失敗した仮想計算機４３（すなわち第２仮想計算機４３ｂ）を指定する情報を含む起動失敗通知メッセージを送信する（ステップ１４０７）。
【０３９７】
（１２）起動失敗通知メッセージを受信した性能監視マネージャー４８のゲストＯＳ状態管理部４５は、起動失敗通知メッセージから、起動失敗した仮想計算機４３を指定する情報（具体的には、例えば第２仮想計算機４３ｂの識別子）を抽出し、その情報を変数Ｌとして記憶する。以下、変数Ｌとして記憶された仮想計算機４３が、第２仮想計算機４３ｂであると仮定する。
【０３９８】
（１３）次に、ゲストＯＳ状態管理部４５は、記憶部４９を呼び出し、ゲストＯＳ状態管理テーブルを読み出す。そして、ゲストＯＳ状態管理部４５は、ゲストＯＳ状態管理テーブルを検索し、第２仮想計算機４３ｂに対応する第２性能監視エージェント３２ｂの識別子がホスト名欄に記憶されているレコードの状態欄に「起動失敗」と記憶する。
【０３９９】
（１４）次に、ゲストＯＳ状態管理部４５は、第１性能監視エージェント３２ａに対して、起動失敗検知終了メッセージを送信する（ステップ１４０６）。
【０４００】
本発明の第６の実施形態は、上記の実施形態に限定されない。
【０４０１】
すなわち、上記の実施形態では、仮想計算機を第１仮想計算機４３ａ及び第２仮想計算機４３ｂと記載したが、一又は三以上の仮想計算機４３が、同一仮想化機構３０上に構築されていてもよい。仮想計算機４３上では、それぞれゲストＯＳ３１が稼動する。
【０４０２】
なお、性能監視エージェント３２は、本発明の第１の実施形態から第３の実施形態に記載したように、いずれの場所において稼動してもよい。すなわち、性能監視エージェント３２は、各ゲストＯＳ３１上で稼動してもよいし、仮想化機構３０上（ホスト計算機上）で稼動してもよい。あるいは、仮想化機構３０が稼動する監視対象計算機５０とは物理的に独立した計算機上で稼動してもよい。
【０４０３】
同様に、起動失敗を検知する性能監視エージェント３２は、本発明の第１の実施形態から第３の実施形態に記載したように、いずれの場所において稼動してもよい。さらに、オペレータは、運用管理端末５２を用いて、性能監視マネージャー４８を経由して、起動失敗検知処理を実行する性能監視エージェント３２をあらかじめ指定してもよい。
【０４０４】
ただし、性能監視エージェント３２が、仮想化機構３０が稼動する監視対象計算機５０とは物理的に独立した計算機上で稼動する場合であっても、起動失敗を検知する性能監視エージェント３２は、監視情報提供部３５から監視情報を取得する必要がある。ゲストＯＳ３１の起動失敗を検知する性能監視エージェント３２と、性能監視マネージャー４８とが、同一計算機上で稼働する場合、これらは同一のアプリケーションプログラムであってもよい。
【０４０５】
さらに、上記の実施形態では、ステップ１４０２及びステップ１４０３が実行されるが、これらの処理は実行されなくてもよい。すなわち、第１性能監視エージェント３２ａが、性能監視マネージャー４８から起動失敗検知要求メッセージを受信することなく、ステップ１４０１で検知された仮想計算機４３について、ステップ１４０４の処理を開始してもよい。また、ステップ１４０２とステップ１４０３の処理が実行される場合であっても、第１性能監視エージェント３２ａは、ステップ１４０３における起動失敗検知要求メッセージを受信する前にステップ１４０４を実行してもよい。
【０４０６】
また、性能監視エージェント３２が、運用管理端末５２の出力部にエージェントの起動失敗を出力することできる。その場合には、以下のような処理が実行される。
【０４０７】
（１）オペレータが運用管理端末５２の入力部５３を介して、起動失敗を検知したいゲストＯＳ３１を指定する情報を含むエージェント状態取得要求メッセージを送信する。
【０４０８】
（２）エージェント状態取得要求メッセージを受信した性能監視マネージャー４８のゲストＯＳ状態管理部４５は、受信したメッセージから、検知したいゲストＯＳ３１を指定する情報を抽出し、その情報を変数Ｉとする。
【０４０９】
（３）ゲストＯＳ状態管理部４５は、変数Ｉに対応する性能監視エージェント３２（すなわち、変数Ｉによって指定されるゲストＯＳ３１上で稼動する性能監視エージェント３２）の識別子を変数Ｊとして取得する。次に、ゲストＯＳ状態管理部４５は、記憶部４９を呼び出し、ゲストＯＳ状態管理テーブルを読み出す。ゲストＯＳ状態管理部４５は、ゲストＯＳ状態管理テーブルを検索し、ホスト名欄が変数Ｊとなっているレコードの状態欄に記憶されている内容を変数Ｋとして取得する。
【０４１０】
（４）次に、ゲストＯＳ状態管理部４５は、変数Ｋの内容を、検知したいゲストＯＳ３１の状態として指定し、指定された状態を示す情報を含むエージェント状態取得応答メッセージを運用管理端末５２に送信する。
【０４１１】
（５）運用管理端末５２の通信処理部５５は、エージェント状態取得応答メッセージを受信すると、エージェント状態取得応答メッセージで指定されている内容を抽出し、出力部５４を介して出力する。
【０４１２】
前述したような本発明の第６の実施形態によれば、第２ゲストＯＳ３１ｂ上で第２性能監視エージェント３２ｂが起動していない状況でも、仮想化機構３０から取得した性能情報を用いることで、第２ゲストＯＳ３１ｂの起動が失敗したことを検知することができる。
【０４１３】
また、一般的にＯＳの起動失敗は、ｐｉｎｇコマンドを複数回実行した後、所定の時間待ち、その間ｐｉｎｇ応答がないこと確認することによって検知する。しかし、本発明の第６の実施形態によれば、所定の時間待つことなく（すなわち、起動失敗の発生とほぼ同時に）、ゲストＯＳ３１の起動の失敗を発見することができる。その結果、ゲストＯＳ３１の起動失敗を早期に検出することが可能となる。
【０４１４】
特に、従来は、業務システムサービスを開始する前にＯＳを起動し、業務システムを構築していた。しかし、近年、待機系から現用系への切替え処理（コールドスタンバイなど）、又は、スケールアウト処理を用いて、業務システムサービス開始後にＯＳを起動するケースが増えてきた。このようなケースでは、いち早くＯＳの起動失敗を検知する必要があり、本実施形態によるＯＳ起動失敗検出方法は非常に有効である。
【０４１５】
さらに、本発明の第６の実施形態によれば、特殊なハードウェア構成を必要とせず、ソフトウェア処理のみでＯＳの起動失敗を検知することができるため、容易にかつ低コストで実装可能である。
【０４１６】
特許請求の範囲に記載していない本発明の観点の代表的なものとして、次のものが挙げられる。
【０４１７】
（１）計算機システムを制御する方法であって、
前記計算機システムは、プロセッサと、前記プロセッサに接続される記憶装置と、を備える計算機を含み、
前記プロセッサは、前記計算機の前記プロセッサを含む資源を論理的に分割し、前記分割された資源の各々を、互いに独立した第１仮想計算機及び第２仮想計算機として動作させる仮想化プログラムを実行し、
前記第１仮想計算機は、第１ゲストオペレーティングシステムを実行し、
前記第２仮想計算機は、第２ゲストオペレーティングシステムを実行し、
前記記憶装置は、前記第１仮想計算機の識別情報及び前記第２仮想計算機の識別情報と、前記第１ゲストオペレーティングシステムの識別情報及び前記第２ゲストオペレーティングシステムの識別情報と、をそれぞれ対応付ける、仮想計算機ゲストオペレーティングシステム対応情報を保持し、
前記方法は、
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報を、前記仮想化プログラムから取得する第１手順と、
前記第１仮想計算機の性能を示す情報を、前記第１ゲストオペレーティングシステムから取得する第２手順と、
前記第２仮想計算機の性能を示す情報を、前記第２ゲストオペレーティングシステムから取得する第３手順と、
前記割り当てられた資源に関する情報、前記割り当てられた資源に関する情報を取得した時刻を示す情報、前記性能を示す情報、及び、前記性能を示す情報を取得した時刻を示す情報を前記記憶装置に格納する第４手順と、
前記仮想計算機ゲストオペレーティングシステム対応情報に基づいて、前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報を、それぞれ、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報と対応付ける第９手順と、
前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報、並びに、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報に基づいて、前記資源の実際の性能を算出する第１０手順と、
前記時刻を示す情報と、前記時刻において取得された前記割り当てられた資源に関する情報と、前記時刻において取得された前記性能を示す情報と、を出力する第５手順と、を含むことを特徴とする方法。
【０４１８】
（２）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第１仮想計算機は、前記第１ゲストオペレーティングシステム上で第１エージェントプログラムを実行し、
前記第２仮想計算機は、前記第２ゲストオペレーティングシステム上で第２エージェントプログラムを実行し、
前記第１手順は、前記第１仮想計算機及び前記第２仮想計算機が前記第１エージェントプログラム及び前記第２エージェントプログラムを実行することによって実行され、
前記第２手順は、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって実行され、
前記第３手順は、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって実行され、
前記第４手順は、
前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記第１ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第２仮想計算機が前記第２エージェントプログラムを実行することによって、前記第２仮想計算機が前記第２ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第１仮想計算機のみが前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納することによって実行されることを特徴とする（１）に記載の方法。
【０４１９】
（３）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第１仮想計算機は、前記第１ゲストオペレーティングシステム上で第１エージェントプログラムを実行し、
前記第２仮想計算機は、前記第２ゲストオペレーティングシステム上で第２エージェントプログラムを実行し、
前記第１手順は、前記第１仮想計算機及び前記第２仮想計算機が前記第１エージェントプログラム及び前記第２エージェントプログラムを実行することによって実行され、
前記第２手順は、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって実行され、
前記第３手順は、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって実行され、
前記第４手順は、
前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記第１ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第２仮想計算機が前記第２エージェントプログラムを実行することによって、前記第２仮想計算機が前記第２ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納し、
前記第１仮想計算機の負荷が所定の条件を満たす場合のみ、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって、前記第２仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納することによって実行されることを特徴とする（１）に記載の方法。
【０４２０】
（４）前記第４手順は、さらに、
前記第１仮想計算機の負荷が前記所定の条件を満たす状態が所定の期間継続したと判定された場合、前記第２仮想計算機の負荷が所定の条件を満たす場合のみ、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納する手順を含むことを特徴とする（３）に記載の方法。
【０４２１】
（５）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第１仮想計算機は、前記第１ゲストオペレーティングシステム上で第１エージェントプログラムを実行し、
前記第２仮想計算機は、前記第２ゲストオペレーティングシステム上で第２エージェントプログラムを実行し、
前記第１手順は、前記第１仮想計算機及び前記第２仮想計算機が前記第１エージェントプログラム及び前記第２エージェントプログラムを実行することによって実行され、
前記第２手順は、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって実行され、
前記第３手順は、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって実行され、
前記第４手順は、前記第１仮想計算機及び前記第２仮想計算機の少なくとも一方が前記第１エージェントプログラム及び前記第２エージェントプログラムの少なくとも一方を実行することによって実行され、
前記方法は、さらに、
前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第２仮想計算機の起動を検出する第６手順と、
前記第２仮想計算機が起動した後、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第２仮想計算機への前記資源の割り当て率を監視する第７手順と、
前記第２仮想計算機への前記資源の割り当て率が所定の条件を満たす場合、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第２ゲストオペレーティングシステムの起動が失敗したことを示す通知を送信する第８手順と、を含むことを特徴とする（１）に記載の方法。
【０４２２】
（６）プロセッサと、前記プロセッサに接続される記憶装置と、を備える計算機であって、
前記プロセッサは、前記計算機の前記プロセッサを含む資源を論理的に分割し、前記分割された資源の各々を、互いに独立した第１仮想計算機及び第２仮想計算機として動作させる仮想化プログラムを実行し、
前記第１仮想計算機は、第１ゲストオペレーティングシステムを実行し、
前記第２仮想計算機は、第２ゲストオペレーティングシステムを実行し、
前記記憶装置は、前記第１仮想計算機の識別情報及び前記第２仮想計算機の識別情報と、前記第１ゲストオペレーティングシステムの識別情報及び前記第２ゲストオペレーティングシステムの識別情報と、をそれぞれ対応付ける、仮想計算機ゲストオペレーティングシステム対応情報を保持し、
前記プロセッサは、
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報を、前記仮想化プログラムから取得する第１手順と、
前記第１仮想計算機の性能を示す情報を、前記第１ゲストオペレーティングシステムから取得する第２手順と、
前記第２仮想計算機の性能を示す情報を、前記第２ゲストオペレーティングシステムから取得する第３手順と、
前記割り当てられた資源に関する情報、前記割り当てられた資源に関する情報を取得した時刻を示す情報、前記性能を示す情報、及び、前記性能を示す情報を取得した時刻を示す情報を前記記憶装置に格納する第４手順と、
前記仮想計算機ゲストオペレーティングシステム対応情報に基づいて、前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報を、それぞれ、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報と対応付ける第９手順と、
前記第１仮想計算機の性能を示す情報及び前記第２仮想計算機の性能を示す情報、並びに、前記第１仮想計算機に割り当てられた前記資源に関する情報及び前記第２仮想計算機に割り当てられた前記資源に関する情報に基づいて、前記資源の実際の性能を算出する第１０手順と、
前記時刻を示す情報と、前記時刻において取得された前記割り当てられた資源に関する情報と、前記時刻において取得された前記性能を示す情報と、を出力する第５手順と、を実行することを特徴とする計算機。
【０４２３】
（７）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第１仮想計算機は、前記第１ゲストオペレーティングシステム上で第１エージェントプログラムを実行し、
前記第２仮想計算機は、前記第２ゲストオペレーティングシステム上で第２エージェントプログラムを実行し、
前記第１手順は、前記第１仮想計算機及び前記第２仮想計算機が前記第１エージェントプログラム及び前記第２エージェントプログラムを実行することによって実行され、
前記第２手順は、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって実行され、
前記第３手順は、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって実行され、
前記第４手順は、
前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記第１ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第２仮想計算機が前記第２エージェントプログラムを実行することによって、前記第２仮想計算機が前記第２ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第１仮想計算機のみが前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納することによって実行されることを特徴とする（６）に記載の計算機。
【０４２４】
（８）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第１仮想計算機は、前記第１ゲストオペレーティングシステム上で第１エージェントプログラムを実行し、
前記第２仮想計算機は、前記第２ゲストオペレーティングシステム上で第２エージェントプログラムを実行し、
前記第１手順は、前記第１仮想計算機及び前記第２仮想計算機が前記第１エージェントプログラム及び前記第２エージェントプログラムを実行することによって実行され、
前記第２手順は、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって実行され、
前記第３手順は、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって実行され、
前記第４手順は、
前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記第１ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第２仮想計算機が前記第２エージェントプログラムを実行することによって、前記第２仮想計算機が前記第２ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納し、
前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納し、
前記第１仮想計算機の負荷が所定の条件を満たす場合のみ、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって、前記第２仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納することによって実行されることを特徴とする（６）に記載の計算機。
【０４２５】
（９）前記第４手順は、さらに、
前記第１仮想計算機の負荷が前記所定の条件を満たす状態が所定の期間継続したと判定された場合、前記第２仮想計算機の負荷が所定の条件を満たす場合のみ、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納する手順を含むことを特徴とする（８）に記載の計算機。
【０４２６】
（１０）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第２仮想計算機の性能を示す情報は、前記第２仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記第１仮想計算機は、前記第１ゲストオペレーティングシステム上で第１エージェントプログラムを実行し、
前記第２仮想計算機は、前記第２ゲストオペレーティングシステム上で第２エージェントプログラムを実行し、
前記第１手順は、前記第１仮想計算機及び前記第２仮想計算機が前記第１エージェントプログラム及び前記第２エージェントプログラムを実行することによって実行され、
前記第２手順は、前記第１仮想計算機が前記第１エージェントプログラムを実行することによって実行され、
前記第３手順は、前記第２仮想計算機が前記第２エージェントプログラムを実行することによって実行され、
前記第４手順は、前記第１仮想計算機及び前記第２仮想計算機の少なくとも一方が前記第１エージェントプログラム及び前記第２エージェントプログラムの少なくとも一方を実行することによって実行され、
前記第１仮想計算機は、さらに、
前記第１エージェントプログラムを実行することによって、前記第２仮想計算機の起動を検出する第６手順と、
前記第２仮想計算機が起動した後、前記第１エージェントプログラムを実行することによって、前記第２仮想計算機への前記資源の割り当て率を監視する第７手順と、
前記第２仮想計算機への前記資源の割り当て率が所定の条件を満たす場合、前記第１エージェントプログラムを実行することによって、前記第２ゲストオペレーティングシステムの起動が失敗したことを示す通知を送信する第８手順と、を実行することを特徴とする（６）に記載の計算機。
【０４２７】
（１１）計算機を制御するプログラムであって、
前記計算機は、プロセッサと、前記プロセッサに接続される記憶装置と、を備え、
前記プロセッサは、前記計算機の前記プロセッサを含む資源を論理的に分割し、前記分割された資源の各々を、互いに独立した第１仮想計算機及び第２仮想計算機として動作させる仮想化プログラムを実行し、
前記第１仮想計算機は、第１ゲストオペレーティングシステムを実行し、
前記第２仮想計算機は、第２ゲストオペレーティングシステムを実行し、
前記記憶装置は、前記第１仮想計算機の識別情報及び前記第２仮想計算機の識別情報と、前記第１ゲストオペレーティングシステムの識別情報及び前記第２ゲストオペレーティングシステムの識別情報と、をそれぞれ対応付ける、仮想計算機ゲストオペレーティングシステム対応情報を保持し、
前記プログラムは、
前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報を、前記仮想化プログラムから取得する第１手順と、
前記第１仮想計算機の性能を示す情報を、前記第１ゲストオペレーティングシステムから取得する第２手順と、
前記割り当てられた資源に関する情報、前記割り当てられた資源に関する情報を取得した時刻を示す情報、前記性能を示す情報、及び、前記性能を示す情報を取得した時刻を示す情報を前記記憶装置に格納する第３手順と、
前記仮想計算機ゲストオペレーティングシステム対応情報に基づいて、前記第１仮想計算機の性能を示す情報を、前記第１仮想計算機に割り当てられた前記資源に関する情報と対応付ける第９手順と、
前記第１仮想計算機の性能を示す情報及び前記第１仮想計算機に割り当てられた前記資源に関する情報に基づいて、前記資源の実際の性能を算出する第１０手順と、
前記時刻を示す情報と、前記時刻において取得された前記割り当てられた資源に関する情報と、前記時刻において取得された前記性能を示す情報と、を出力する第４手順と、を前記プロセッサに実行させることを特徴とするプログラム。
【０４２８】
（１２）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記プログラムは、前記第１オペレーティングシステム上で前記第１仮想計算機によって実行され、
前記第３手順は、さらに、
前記第１仮想計算機が前記第１ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納する手順と、
前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納する手順と、を含むことを特徴とする（１１）に記載のプログラム。
【０４２９】
（１３）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記プログラムは、前記第１オペレーティングシステム上で前記第１仮想計算機によって実行され、
前記第３手順は、さらに、
前記第１仮想計算機が前記第１ゲストオペレーティングシステムから取得した情報を前記記憶装置に格納する手順と、
前記第２仮想計算機の負荷が所定の条件を満たす場合のみ、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納する手順と、を含むことを特徴とする（１１）に記載のプログラム。
【０４３０】
（１４）前記第３手順は、さらに、
前記第１仮想計算機の負荷が前記所定の条件を満たす状態が所定の期間継続したと判定された場合、前記第２仮想計算機の負荷が所定の条件を満たす場合のみ、前記第１仮想計算機が前記仮想化プログラムから取得した情報を前記記憶装置に格納する手順を含むことを特徴とする（１３）に記載のプログラム。
【０４３１】
（１５）前記仮想化プログラムによって前記第１仮想計算機及び前記第２仮想計算機に割り当てられた前記資源に関する情報は、前記第１仮想計算機及び前記第２仮想計算機への前記資源の割り当て率を示す情報であり、
前記第１仮想計算機の性能を示す情報は、前記第１仮想計算機に割り当てられた資源の使用率を示す情報であり、
前記プログラムは、前記第１オペレーティングシステム上で前記第１仮想計算機によって実行され、
前記プログラムは、さらに、
前記第２仮想計算機の起動を検出する第５手順と、
前記第２仮想計算機が起動した後、前記第２仮想計算機への前記資源の割り当て率を監視する第６手順と、
前記第２仮想計算機への前記資源の割り当て率が所定の条件を満たす場合、前記第２ゲストオペレーティングシステムの起動が失敗したことを示す通知を送信する第７手順と、を前記プロセッサに実行させることを特徴とする（１１）に記載のプログラム。
【符号の説明】
【０４３２】
２０  計算機
２１  ＣＰＵ
２２  メモリ
２３  外部記憶装置インターフェース
２４  通信インターフェース
２５  外部記憶装置
２６  ネットワーク
２７  マウス・キーボード
２８  モニタ
３０  仮想化機構
３０ａ  ホスト性能情報
３０ｂ  仮想計算機リソース割当情報
３０ｃ  仮想計算機性能情報
３１  ゲストＯＳ
３２  性能監視エージェント
３４  メッセージ通信処理部
３５  監視情報提供部
３６  性能情報提供部
３７  監視情報収集部
３８  監視情報管理部
３９  ゲスト性能情報
４０  監視情報記憶部
４１  代表監視エージェント情報
４２  補助ドライバ
４３  仮想計算機
４４  起動通知部
４５  ゲストＯＳ状態管理部
４６  監視間隔管理部
４７  監視間隔管理部
４８  性能監視マネージャー
４９  記憶部
５０  監視対象計算機
５１  監視マネージャー計算機
５２  運用管理端末
５３  入力部
５４  出力部
５５  通信処理部
５６  共有記憶部
５７  送受信部
５８  エージェント管理部
５９  監視情報テーブル記憶領域
６０  監視エージェント計算機
【図１】
0005390651.tif 000002
【図２】
0005390651.tif 000003
【図３Ａ】
0005390651.tif 000004
【図３Ｂ】
0005390651.tif 000005
【図３Ｃ】
0005390651.tif 000006
【図３Ｄ】
0005390651.tif 000007
【図３Ｅ】
0005390651.tif 000008
【図４Ａ】
0005390651.tif 000009
【図４Ｂ】
0005390651.tif 000010
【図４Ｃ】
0005390651.tif 000011
【図５】
0005390651.tif 000012
【図６】
0005390651.tif 000013
【図７】
0005390651.tif 000014
【図８】
0005390651.tif 000015
【図９Ａ】
0005390651.tif 000016
【図９Ｂ】
0005390651.tif 000017
【図９Ｃ】
0005390651.tif 000018
【図９Ｄ】
0005390651.tif 000019
【図１０Ａ】
0005390651.tif 000020
【図１０Ｂ】
0005390651.tif 000021
【図１１Ａ】
0005390651.tif 000022
【図１１Ｂ】
0005390651.tif 000023
【図１１Ｃ】
0005390651.tif 000024
【図１２】
0005390651.tif 000025
【図１３Ａ】
0005390651.tif 000026
【図１３Ｂ】
0005390651.tif 000027