(57)【特許請求の範囲】
【請求項１】
ディスク装置を有するハードウェア上で、仮想化機能を有するホストＯＳが動作し、このホストＯＳ上でゲストＯＳが動作する仮想計算機システムであって、
上記ゲストＯＳは、上記ディスク装置へアクセスするためのアクセス要求を上記ホストＯＳに対して実行するディスクドライバと、
このディスクドライバによる上記ディスク装置へのアクセスの開始時刻と終了時刻をトレースデータとして記録するトレースデータ記録部と、
上記トレースデータの取得を上記ディスクドライバへ指示するトレースデータ取得指示部とを有し、
上記ホストＯＳ上の上記仮想化機能は、上記ゲストＯＳからの上記ディスク装置へのアクセス要求を受けて、上記ディスク装置へアクセスする仮想ディスクドライバと、
この仮想ディスクドライバによる上記ディスク装置へのアクセスの開始時刻と終了時刻を記録するトレースデータ記録部とを有することを特徴とする仮想計算機システム。
【請求項２】
上記ハードウェアはＬＡＮを有し、
上記ゲストＯＳは、上記トレースデータ取得指示部からの上記トレースデータの取得の指示を受けて、上記ＬＡＮへアクセスするためのアクセス要求を上記ホストＯＳに対して実行するＬＡＮドライバを有し、
このＬＡＮドライバによる上記ＬＡＮへのアクセスの開始時刻と終了時刻をトレースデータとして上記トレースデータ記録部に記録し、
上記ホストＯＳ上の上記仮想化機能は、上記ゲストＯＳからの上記ＬＡＮへのアクセス要求を受けて、上記ＬＡＮへアクセスする仮想ＬＡＮドライバを有し、
上記トレースデータ記録部は、上記仮想ＬＡＮドライバによる上記ＬＡＮへのアクセスの開始時刻と終了時刻をトレースデータとして記録することを特徴とする請求項１記載の仮想計算機システム。
【請求項３】
上記ホストＯＳ上で２つの上記ゲストＯＳが動作し、
いずれかのゲストＯＳの上記トレースデータ取得指示部からの上記トレースデータの取得の指示を受けて、上記２つのゲストＯＳの上記ディスクドライバが上記ディスク装置へのアクセス要求を実行し、
上記仮想ディスクドライバは、上記２つのゲストＯＳからの上記ディスク装置へのアクセス要求を受けるつど、上記ディスク装置へアクセスすることを特徴とする請求項１記載の仮想計算機システム。
【請求項４】
上記ハードウェアは、上記ディスク装置を複数有し、
上記仮想ディスクドライバは、上記複数のディスク装置の内の一つのディスク装置を選択してアクセスすることを特徴とする請求項１〜請求項３のいずれか一項記載の仮想計算機システム。
【請求項５】
上記ホストＯＳ上で２つの上記ゲストＯＳが動作し、
いずれかのゲストＯＳの上記トレースデータ取得指示部からの上記トレースデータの取得の指示を受けて、上記２つのゲストＯＳの上記ディスクドライバ及び上記ＬＡＮドライバがそれぞれ上記ディスク装置または上記ＬＡＮへのアクセス要求を実行し、
上記仮想ディスクドライバ及び上記仮想ＬＡＮドライバは、上記２つのゲストＯＳからの上記ディスク装置及び上記ＬＡＮへのアクセス要求を受けるつど、上記ディスク装置または上記ＬＡＮへアクセスすることを特徴とする請求項２記載の仮想計算機システム。
【請求項６】
上記ホストＯＳ上の上記仮想化機能は、上記複数のディスク装置のＩ／Ｏ性能に差がある場合に、同じＩ／Ｏ性能になるように調整するＩ／Ｏ調整部を有することを特徴とする請求項４記載の仮想計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、Ｉ／Ｏ性能を測定するためのトレースデータの取得を行う仮想計算機システムに関するものである。
【背景技術】
【０００２】
従来の仮想計算機システムにおいては、システム全体およびゲストＯＳ毎のＩ／Ｏ性能を測定して、仮想計算機システムの管理運用を容易にしている。（特許文献１参照）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２５７７２０号公報（第３〜４頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の仮想計算機システムでは、ゲストＯＳ毎のＩ／Ｏ性能を測定するのが目的のため、常にＩ／Ｏに関するデータを採取し続ける必要がある。そのため、データを採取する処理が性能のボトルネックにつながるという問題点があった。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、Ｉ／Ｏ性能を測定するためのトレースデータの取得を任意のタイミングで実行する仮想計算機システムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係わる仮想計算機システムにおいては、ディスク装置を有するハードウェア上で、仮想化機能を有するホストＯＳが動作し、このホストＯＳ上でゲストＯＳが動作する仮想計算機システムであって、ゲストＯＳは、ディスク装置へアクセスするためのアクセス要求をホストＯＳに対して実行するディスクドライバと、このディスクドライバによるディスク装置へのアクセスの開始時刻と終了時刻をトレースデータとして記録するトレースデータ記録部と、トレースデータの取得をディスクドライバへ指示するトレースデータ取得指示部とを有し、ホストＯＳ上の仮想化機能は、ゲストＯＳからのディスク装置へのアクセス要求を受けて、ディスク装置へアクセスする仮想ディスクドライバと、この仮想ディスクドライバによるディスク装置へのアクセスの開始時刻と終了時刻を記録するトレースデータ記録部とを有するものである。
【発明の効果】
【０００７】
この発明によれば、ディスク装置を有するハードウェア上で、仮想化機能を有するホストＯＳが動作し、このホストＯＳ上でゲストＯＳが動作する仮想計算機システムであって、ゲストＯＳは、ディスク装置へアクセスするためのアクセス要求をホストＯＳに対して実行するディスクドライバと、このディスクドライバによるディスク装置へのアクセスの開始時刻と終了時刻をトレースデータとして記録するトレースデータ記録部と、トレースデータの取得をディスクドライバへ指示するトレースデータ取得指示部とを有し、ホストＯＳ上の仮想化機能は、ゲストＯＳからのディスク装置へのアクセス要求を受けて、ディスク装置へアクセスする仮想ディスクドライバと、この仮想ディスクドライバによるディスク装置へのアクセスの開始時刻と終了時刻を記録するトレースデータ記録部とを有するので、ディスクＩ／Ｏ性能を測定するためのトレースデータを任意のタイミングで取得することができ、性能劣化の原因がハードウェアにあるのかソフトウェアにあるのかを解析することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による仮想計算機システムを示す全体構成図である。
【図２】この発明の実施の形態１による仮想計算機システムの動作を示すフローチャートである。
【図３】この発明の実施の形態２による仮想計算機システムを示す全体構成図である。
【図４】この発明の実施の形態２による仮想計算機システムの動作を示すフローチャートである。
【図５】この発明の実施の形態３による仮想計算機システムを示す全体構成図である。
【図６】この発明の実施の形態３による仮想計算機システムの動作を示すフローチャートである。
【図７】この発明の実施の形態４による仮想計算機システムを示す全体構成図である。
【図８】この発明の実施の形態４による仮想計算機システムの動作を示すフローチャートである。
【図９】この発明の実施の形態５による仮想計算機システムを示す全体構成図である。
【図１０】この発明の実施の形態５による仮想計算機システムの動作を示すフローチャートである。
【図１１】この発明の実施の形態６による仮想計算機システムを示す全体構成図である。
【図１２】この発明の実施の形態６による仮想計算機システムの動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、この発明の実施の形態１を図に基づいて説明する。
図１は、この発明の実施の形態１による仮想計算機システムを示す全体構成図である。
図１において、Ｈ／Ｗ（ハードウェア）１３０上にホストＯＳ１２０が動作し、ホストＯＳ１２０上でゲストＯＳ１１０が動作する構成である。
ゲストＯＳ１１０は、ディスクへアクセスするためのディスクドライバ１１１と、ディスクドライバ１１１の指示により、ＩＯ性能を測定するためのトレースデータを記録するトレースデータ記録部１１２と、ユーザから入力されるコマンドに応じて、トレースデータの取得を指示するトレースデータ取得指示部１１３とを有する。
ホストＯＳ１２０は、ＶＭ（仮想化機能）１２１上で、ディスクへ実際にアクセスする仮想ディスクドライバ１２２と、仮想ディスクドライバ１２２がディスクへアクセスしたときのトレースデータを記録するトレースデータ記録部１２３とを動作させる。Ｈ／Ｗ１３０は、ディスク１３１を有している。
なお、トレースデータ記録部１１２とトレースデータ記録部１２３は、メモリにトレースデータを記録する。
【００１０】
次に、実施の形態１の動作について、図２のフローチャートを用いて説明する。
最初に、ユーザから入力されたコマンドにより、ゲストＯＳ１１０内のトレースデータ取得指示部１１３が、ゲストＯＳ１１０のディスクドライバ１１１と、ホストＯＳ１２０内のＶＭ１２１の仮想ディスクドライバ１２２とにトレース開始指示を出す（ＳＴ２０１）。
ゲストＯＳ１１０のディスクＩ／Ｏ処理を受けて、ゲストＯＳ１１０のディスクドライ
バ１１１は、トレースデータ記録部１１２にトレース開始時刻を記録する（ＳＴ２０２）。
【００１１】
ゲストＯＳ１１０のディスクＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ディスクドライバ１２２内で処理される。仮想ディスクドライバ１２２は、ゲストＯＳ１１０のディスクＩ／Ｏ処理要求を受けると同時にＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻を記録する（ＳＴ２０３）。
ＶＭ１２１にある仮想ディスクドライバ１２２は、Ｈ／Ｗ１３０内のディスク１３１にアクセスする（ＳＴ２０４）。
【００１２】
Ｈ／Ｗ１３０内のディスク１３１へのアクセス終了後、制御がＶＭ１２１内の仮想ディスクドライバ１２２に戻ったタイミングで、ＶＭ１２１内のトレースデータ記録部１２３にトレース終了時刻を記録する（ＳＴ２０５）。
制御が、ゲストＯＳ１１０内のディスクドライバ１１１に戻ったタイミングで、ゲストＯＳ１１０内のトレースデータ記録部１１２にトレース終了時刻を記録する（ＳＴ２０６）。
ゲストＯＳ１１０内のトレースデータ記録部１１２とＶＭ１２１内にあるトレースデータ記録部１２３に記録したトレースデータから、ディスクＩ／Ｏの遅延要因がＨ／ＷにあるかＶＭにあるかを解析する（ＳＴ２０７）。
【００１３】
実施の形態１によれば、ゲストＯＳのトレースデータ取得指示部の指示により任意のタイミングでディスクにおけるＩＯのトレースデータを取得できるとともに、ＶＭ、ゲストＯＳそれぞれにトレースデータ記録部を設けることによって、ディスクＩ／Ｏが遅延した場合にその原因がＨ／ＷにあるかＶＭ（ソフトウェア）にあるかをより簡便に解析することができる。
【００１４】
実施の形態２．
実施の形態１では、ディスクにおけるＩ／Ｏのトレースデータを取得する場合について述べたが、実施の形態２は、図３に示すように、Ｉ／ＯにディスクのみでなくＬＡＮが追加された場合においても同様に障害原因を解析できるようにしたものである。
以下、この発明の実施の形態２を図に基づいて説明する。
図３は、この発明の実施の形態２による仮想計算機システムを示す全体構成図である。
図３において、１１０〜１１３、１２０〜１２３、１３０、１３１は図１におけるものと同一のものである。図３では、ゲストＯＳ１１０にＬＡＮへアクセスするためのＬＡＮドライバ１１４を設け、ＶＭ１２１にＬＡＮへアクセスするための仮想ＬＡＮドライバ１２４を設け、Ｈ／Ｗ１３０にＬＡＮ１３２を設けている。
【００１５】
次に、実施の形態２の動作について、図４のフローチャートを用いて説明する。
最初にゲストＯＳ１１０内のトレースデータ取得指示部１１３がゲストＯＳ１１０のディスクドライバ１１１、ＬＡＮドライバ１１４、ＶＭ１２１の仮想ディスクドライバ１２２、仮想ＬＡＮドライバ１２４にトレース開始指示を出す（ＳＴ４０１）。
ゲストＯＳ１１０からのＩ／Ｏ処理要求が、ディスクに対するものかＬＡＮに対するものかにより動作が異なる（ＳＴ４０２）。
【００１６】
ゲストＯＳ１１０からのＩ／Ｏ処理要求がディスクの場合、ゲストＯＳ１１０のディスクＩ／Ｏ処理を受けて、ゲストＯＳ１１０のディスクドライバ１１１は、トレースデータ記録部１１２にトレース開始時刻を記録する（ＳＴ４０３）。
【００１７】
ゲストＯＳ１１０のディスクＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ディスクドライバ１２２内で処理される。仮想ディスクドライバ１２２は、ゲスト
ＯＳ１１０のディスクＩ／Ｏ処理要求を受けると同時にＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻を記録する（ＳＴ４０４）。
ＶＭ１２１にある仮想ディスクドライバ１２２は、Ｈ／Ｗ１３０内のディスク１３１にアクセスする（ＳＴ４０５）。
【００１８】
Ｈ／Ｗ１３０内のディスク１３１へのアクセス終了後、制御がＶＭ１２１内の仮想ディスクドライバ１２２に戻ったタイミングで、ＶＭ１２１内のトレースデータ記録部１２３にトレース終了時刻を記録する（ＳＴ４０６）。
制御が、ゲストＯＳ１１０内のディスクドライバ１１１に戻ったタイミングで、ゲストＯＳ１１０内のトレースデータ記録部１１２にトレース終了時刻を記録する（ＳＴ４０７）。
【００１９】
次に、ステップＳＴ４０２で、ゲストＯＳ１１０からのＩ／Ｏ処理要求がＬＡＮの場合の動作を記述する。
ゲストＯＳ１１０のＬＡＮＩ／Ｏ処理を受けて、ゲストＯＳ１１０のＬＡＮドライバ  １１４はトレースデータ記録部１１２にトレース開始時刻を記録する（ＳＴ４０８）。
ゲストＯＳ１１０のＬＡＮＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ＬＡＮドライバ１２４内で処理される。仮想ＬＡＮドライバ１２４は、ゲストＯＳ１１０のＬＡＮＩ／Ｏ処理要求を受けると同時にＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻を記録する（ＳＴ４０９）。
【００２０】
ＶＭ１２１にある仮想ＬＡＮドライバ１２４は、Ｈ／Ｗ１３０内のＬＡＮ１３２にアクセスする（ＳＴ４１０）。
Ｈ／Ｗ１３０内のＬＡＮ１３２へのアクセス終了後、制御がＶＭ１２１内の仮想ＬＡＮドライバ１２４に戻ったタイミングで、ＶＭ１２１内のトレースデータ記録部１２３にトレース終了時刻を記録する（ＳＴ４１１）。
制御が、ゲストＯＳ１１０内のＬＡＮドライバ１１４に戻ったタイミングで、ゲストＯＳ１１０内のトレースデータ記録部１１２にトレース終了時刻を記録する（ＳＴ４１２）。
【００２１】
ゲストＯＳ１１０内のトレースデータ記録部１１２とＶＭ１２１内にあるトレースデータ記録部１２３に記録したトレースデータから、ディスクＩ／ＯまたはＬＡＮ  Ｉ／Ｏの遅延要因がＨ／ＷにあるかＶＭにあるかを解析する（ＳＴ４１３）。
【００２２】
実施の形態２によれば、ＶＭ、ゲストＯＳそれぞれにトレースデータ記録部を設けることによって、ＬＡＮＩ／Ｏが遅延した場合にも、その原因がＨ／ＷにあるかＶＭにあるかをより簡便に解析することができる。
【００２３】
実施の形態３．
実施の形態１では、ディスクにおけるＩ／Ｏのトレースデータを取得する場合について述べたが、実施の形態３は、図５に示すように、ゲストＯＳが２台存在する場合において同様に障害原因を解析するようにしたものである。
以下、この発明の実施の形態３を図に基づいて説明する。
図５は、この発明の実施の形態３による仮想計算機システムを示す全体構成図である。
図５において、１１０〜１１３、１２０〜１２３、１３０、１３１は図１におけるものと同一のものである。図５では、２台目のゲストＯＳ２（２１０）が示され、ゲストＯＳ２（２１０）は、ディスクドライバ２１１と、トレースデータ記録部２１２と、トレースデータ取得指示部２１３を有している。
【００２４】
次に、実施の形態３の動作について、図６のフローチャートを用いて説明する。
最初にゲストＯＳ１（１１０）内のトレースデータ取得指示部１１３が、ゲストＯＳ１（１１０）のディスクドライバ１１１、ゲストＯＳ２（２１０）のディスクドライバ２１１、ＶＭ１２１の仮想ディスクドライバ１２２にトレース開始指示を出す（ＳＴ６０１）。
なお、このトレースデータ取得指示は、ゲストＯＳ２（２１０）からも同様にトレース開始指示を出すことが可能で、この場合、ゲストＯＳ２（２１０）内のトレースデータ取得指示部２１３からゲストＯＳ１（１１０）のディスクドライバ１１１、ゲストＯＳ２（２１０）のディスクドライバ２１１、ＶＭ１２１の仮想ディスクドライバ１２２にトレース開始指示を出すことになる。
この指示を受けて、ディスクドライバ１１１、ディスクドライバ２１１がそれぞれＩＯ処理要求を出し、それぞれについてトレースデータの取得が行われる。
【００２５】
ゲストＯＳ１（１１０）のディスクＩ／Ｏ処理を受けて、ゲストＯＳ１（１１０）のディスクドライバ１１１は、トレースデータ記録部１１２にトレース開始時刻を記録する。
ゲストＯＳ２（２１０）のディスクＩ／Ｏ処理を受けて、ゲストＯＳ２（２１０）のディスクドライバ２１１は、トレースデータ記録部２１２にトレース開始時刻を記録する（ＳＴ６０２）。
ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からそれぞれ出されるディスクＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ディスクドライバ１２２内で処理される。仮想ディスクドライバ１２２は、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からそれぞれのディスクＩ／Ｏ処理要求を受けるごとに、受けると同時にＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻、要求元ゲストＯＳを記録する（ＳＴ６０３）。
【００２６】
ＶＭ１２１にある仮想ディスクドライバ１２２は、Ｈ／Ｗ１３０内のディスク１３１にアクセスする（ＳＴ６０４）。この処理は、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
Ｈ／Ｗ１３０内のディスク１３１へのアクセス終了後、制御がＶＭ１２１内の仮想ディスクドライバ１２２に戻ったタイミングで、ＶＭ１２１内のトレースデータ記録部１２３にトレース終了時刻、要求元ゲストＯＳを記録する（ＳＴ６０５）。この処理も、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
【００２７】
制御が、ゲストＯＳ１（１１０）のディスクドライバ１１１またはゲストＯＳ２（２１０）のディスクドライバ２１１内に戻ったタイミングで、ゲストＯＳ１（１１０）内のトレースデータ記録部１１２またはゲストＯＳ２（２１０）のトレースデータ記録部２１２にトレース終了時刻を記録する（ＳＴ６０６）。この処理も、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
【００２８】
ゲストＯＳ１（１１０）内のトレースデータ記録部１１２、ゲストＯＳ２（２１０）内のトレースデータ記録部２１２とＶＭ１２１内にあるトレースデータ記録部１２３に記録したトレースデータから、ディスクＩ／Ｏの遅延要因がＨ／ＷにあるかＶＭにあるかを解析する（ＳＴ６０７）。
【００２９】
実施の形態３によれば、ゲストＯＳが２台の場合でも、ＶＭ、ゲストＯＳそれぞれにトレースデータ記録部を設けることによって、ディスクＩ／Ｏが遅延した場合にその原因がＨ／ＷにあるかＶＭにあるかをより簡便に解析することができる。
【００３０】
実施の形態４．
実施の形態１では、ディスクにおけるＩ／Ｏのトレースデータを取得する場合について
述べたが、実施の形態４は、図７に示すように、ディスクが２台存在する場合において、同様に障害原因を解析するようにしたものである。
以下、この発明の実施の形態４を図７に基づいて説明する。
図７は、この発明の実施の形態４による仮想計算機システムを示す全体構成図である。
図７において、１１０〜１１３、１２０〜１２３、１３０、１３１は図１におけるものと同一のものである。図７では、Ｈ／Ｗ１３０にディスク１（１３１）とディスク２（１３３）を設けている。
【００３１】
次に、実施の形態４の動作について、図８のフローチャートを用いて説明する。
最初に、ゲストＯＳ１１０内のトレースデータ取得指示部１１３がゲストＯＳ１１０のディスクドライバ１１１、ＶＭ１２１の仮想ディスクドライバ１２２にトレース開始指示を出す（ＳＴ８０１）。
ゲストＯＳ１１０のディスクＩ／Ｏ処理を受けて、ゲストＯＳ１１０のディスクドライバ１１１は、トレースデータ記録部１１２にトレース開始時刻を記録する（ＳＴ８０２）。
【００３２】
ゲストＯＳ１１０のディスクＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ディスクドライバ１２２内で処理される。仮想ディスクドライバ１２２は、ゲストＯＳ１１０のディスクＩ／Ｏ処理要求を受けると同時にアクセスの対象ディスクを決めて、ＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻、対象ディスクを記録する（ＳＴ８０３）。
ＶＭ１２１にある仮想ディスクドライバ１２２は、Ｈ／Ｗ１３０内のディスク１（１３１）及びディスク２（１３３）のいずれかの対象ディスクにアクセスする（ＳＴ８０４）。
【００３３】
Ｈ／Ｗ１３０内のディスク１（１３１）またはディスク２（１３３）へのアクセス終了後、制御が、ＶＭ１２１内の仮想ディスクドライバ１２２に戻ったタイミングで、ＶＭ１２１内のトレースデータ記録部１２３にトレース終了時刻、対象ディスクを記録する（ＳＴ８０５）。
【００３４】
制御が、ゲストＯＳ１１０内のディスクドライバ１１１に戻ったタイミングで、ゲストＯＳ１１０内のトレースデータ記録部１１２にトレース終了時刻、対象ディスクを記録する（ＳＴ８０６）。
【００３５】
ゲストＯＳ１１０内のトレースデータ記録部１１２とＶＭ１２１内にあるトレースデータ記録部１２３に記録したトレースデータから、ディスクＩ／Ｏの遅延要因が、Ｈ／ＷにあるかＶＭにあるかを解析する（ＳＴ８０７）。
【００３６】
実施の形態４によれば、ディスクが２台の場合でも、ＶＭ、ゲストＯＳそれぞれにトレースデータ記録部を設けることによって、ディスクＩ／Ｏが遅延した場合にその原因がＨ／ＷにあるかＶＭにあるかをより簡便に解析することができる。
【００３７】
実施の形態５．
実施の形態１では、ディスクにおけるＩ／Ｏのトレースデータを取得する場合について述べたが、実施の形態５は、図９に示すように、ディスクおよびＬＡＮが１台ずつ、かつゲストＯＳが２台存在する場合においても同様に障害原因を解析するようにしたものである。
以下、この発明の実施の形態５を図に基づいて説明する。
図９は、この発明の実施の形態５による仮想計算機システムを示す全体構成図である。
図９において、１１０〜１１４、１２０〜１２４、１３０〜１３２は図３におけるもの
と、２１０〜２１３は図５におけるものとそれぞれ同一のものである。図９では、２台目のゲストＯＳ２（２１０）にＬＡＮドライバ２１４を設けている。
【００３８】
次に、実施の形態５の動作について、図１０のフローチャートを用いて説明する。
最初にゲストＯＳ１（１１０）内のトレースデータ取得指示部１１３がゲストＯＳ１（１１０）のディスクドライバ１１１、ＬＡＮドライバ１１４、ゲストＯＳ２（２１０）のディスクドライバ２１１、ＬＡＮドライバ２１４、ＶＭ１２１の仮想ディスクドライバ１２２、仮想ＬＡＮドライバ１２４にトレース開始指示を出す（ＳＴ１００１）。
なお、このトレースデータ取得指示は、ゲストＯＳ２（２１０）のトレースデータ取得指示部２１３からも同様にトレース開始指示を出すことが可能で、ゲストＯＳ２（２１０）内のトレースデータ取得指示部２１３からゲストＯＳ１（１１０）のディスクドライバ１１１、ＬＡＮドライバ１１４、ゲストＯＳ２（２１０）のディスクドライバ２１１、ＬＡＮドライバ２１４、ＶＭ１２１の仮想ディスクドライバ１２２、仮想ＬＡＮドライバ１２４にトレース開始指示を出すことになる。
この指示を受けて、ディスクドライバ１１１、ＬＡＮドライバ１１４、ディスクドライバ２１１、ＬＡＮドライバ２１４がそれぞれＩＯ処理要求を出し、それぞれについてトレースデータの取得が行われる。
【００３９】
ゲストＯＳ１（１１０）またはゲストＯＳ２（２１０）からのＩ／Ｏ処理要求がディスクかＬＡＮかにより動作が異なる（ＳＴ１００２）。
【００４０】
ゲストＯＳ１（１１０）またはゲストＯＳ２（２１０）からのＩ／Ｏ処理要求が、ディスクの場合、ゲストＯＳ１（１１０）のディスクＩ／Ｏ処理を受けて、ゲストＯＳ１（１１０）のディスクドライバ１１１は、トレースデータ記録部１１２にトレース開始時刻を記録する。
ゲストＯＳ２（２１０）のディスクＩ／Ｏ処理を受けて、ゲストＯＳ２（２１０）のディスクドライバ２１１は、トレースデータ記録部２１２にトレース開始時刻を記録する（ＳＴ１００３）。
ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からそれぞれ出されるディスクＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ディスクドライバ１２２内で処理される。仮想ディスクドライバ１２２は、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からそれぞれのディスクＩ／Ｏ処理要求を受けるごとに、受けると同時にＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻、要求元ゲストＯＳを記録する（ＳＴ１００４）。
【００４１】
ＶＭ１２１にある仮想ディスクドライバ１２２は、Ｈ／Ｗ１３０内のディスク１３１にアクセスする（ＳＴ１００５）。この処理は、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
Ｈ／Ｗ１３０内のディスク１３１へのアクセス終了後、制御がＶＭ１２１内の仮想ディスクドライバ１２２に戻ったタイミングで、ＶＭ１２１内のトレースデータ記録部１２３にトレース終了時刻、要求元ゲストＯＳを記録する（ＳＴ１００６）。この処理も、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
【００４２】
制御が、ゲストＯＳ１（１１０）のディスクドライバ１１１またはゲストＯＳ２（２１０）のディスクドライバ２１１内に戻ったタイミングで、ゲストＯＳ１（１１０）内のトレースデータ記録部１１２またはゲストＯＳ２（２１０）のトレースデータ記録部２１２にトレース終了時刻を記録する（ＳＴ１００７）。この処理も、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
【００４３】
ステップＳＴ１００２で、ゲストＯＳ１（１１０）からのＩ／Ｏ処理要求がＬＡＮの場合には、ゲストＯＳ１（１１０）のＬＡＮＩ／Ｏ処理を受けて、ゲストＯＳ１（１１０）のＬＡＮドライバ１１４は、ゲストＯＳ１（１１０）のトレースデータ記録部１１２にトレース開始時刻を記録する。
ゲストＯＳ２（２１０）のＬＡＮＩ／Ｏ処理を受けて、ゲストＯＳ２（２１０）のＬＡＮドライバ２１４は、ゲストＯＳ２（２１０）のトレースデータ記録部２１２にトレース開始時刻を記録する（ＳＴ１００８）。
【００４４】
ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からそれぞれ出されるＬＡＮＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ＬＡＮドライバ１２４内で処理される。仮想ＬＡＮドライバ１２４は、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からそれぞれのＬＡＮＩ／Ｏ処理要求を受けごとに、受けると同時にＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻、要求元ゲストＯＳを記録する（ＳＴ１００９）。
【００４５】
ＶＭ１２１にある仮想ＬＡＮドライバ１２４は、Ｈ／Ｗ１３０内のＬＡＮ１３２にアクセスする（ＳＴ１０１０）。この処理は、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
【００４６】
Ｈ／Ｗ１３０内のＬＡＮ１３２へのアクセス終了後、制御が、ＶＭ１２１内の仮想ＬＡＮドライバ１２４に戻ったタイミングで、ＶＭ１２１のトレースデータ記録部１２３にトレース終了時刻、要求元ゲストＯＳを記録する（ＳＴ１０１１）。この処理も、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
【００４７】
制御が、ゲストＯＳ１（１１０）内のＬＡＮドライバ１１４またはゲストＯＳ２（２１０）内のＬＡＮドライバ２１４に戻ったタイミングで、ゲストＯＳ１（１１０）のトレースデータ記録部１１２またはゲストＯＳ２（２１０）のトレースデータ記録部２１２にトレース終了時刻を記録する（ＳＴ１０１２）。この処理も、ゲストＯＳ１（１１０）とゲストＯＳ２（２１０）からの要求に対して、それぞれに実施される。
【００４８】
ゲストＯＳ１（１１０）内のトレースデータ記録部１１２、ゲストＯＳ２（２１０）内のトレースデータ記録部２１２とＶＭ１２１内にあるトレースデータ記録部１２３に記録したトレースデータから、ディスクＩ／ＯまたはＬＡＮＩ／Ｏの遅延要因がＨ／ＷにあるかＶＭにあるかを解析する（ＳＴ１０１３）。
【００４９】
実施の形態５によれば、ゲストＯＳが２台であっても、ＶＭ、ゲストＯＳそれぞれにトレースデータ記録部を設けることによって、ＬＡＮＩ／Ｏが遅延した場合にも、その原因がＨ／ＷにあるかＶＭにあるかをより簡便に解析することができる。
【００５０】
実施の形態６．
実施の形態１では、ディスクにおけるＩ／Ｏのトレースデータを取得する場合について述べたが、実施の形態６は、図１１に示すように、ディスクが２台で、それぞれのディスクの速度差が大きい場合に、その速度差をなくすＩ／Ｏ調停部を設けることで、障害がディスクの速度差に起因するかどうかを容易に解析できるようにしたものである。
以下、この発明の実施の形態６を図に基づいて説明する。
図１１は、この発明の実施の形態６による仮想計算機システムを示す全体構成図である。
図１１において、１１０〜１１３、１２０〜１２３、１３０、１３１、１３３は図７におけるものと同一のものである。図１１では、ディスク１（１３１）とディスク２（１３３）に速度差がある場合で、ホストＯＳ１２０に、ディスクの速度差をなくすＩ／Ｏ調整部１２５を設けている。
【００５１】
次に、実施の形態６の動作について、図１２のフローチャートを用いて説明する。
最初にゲストＯＳ１１０内のトレースデータ取得指示部１１３がゲストＯＳ１１０のディスクドライバ１１１、ＶＭ１２１の仮想ディスクドライバ１２２にトレース開始指示を出す（ＳＴ１２０１）。
ゲストＯＳ１１０のディスクＩ／Ｏ処理を受けて、ゲストＯＳ１１０のディスクドライバ１１１はトレースデータ記録部１１２にトレース開始時刻を記録する（ＳＴ１２０２）。
【００５２】
ゲストＯＳ１１０のディスクＩ／Ｏ処理要求は、ホストＯＳ１２０内のＶＭ１２１にある仮想ディスクドライバ１２２内で処理される。仮想ディスクドライバ１２２は、ゲストＯＳ１１０のディスクＩ／Ｏ処理要求を受けると同時にアクセスの対象ディスクを決めて、ＶＭ１２１内のトレースデータ記録部１２３にトレース開始時刻を記録する（ＳＴ１２０３）。
【００５３】
ＶＭ１２１にある仮想ディスクドライバ１２２は、Ｈ／Ｗ１３０内のディスク１（１３１）及びディスク２（１３３）のいずれかの対象ディスクにアクセスする（ＳＴ１２０４）。
【００５４】
Ｈ／Ｗ１３０内のディスク１（１３１）またはディスク２（１３３）へのアクセス終了後、制御が、ＶＭ１２１内の仮想ディスクドライバ１２２に戻ったタイミングで、ＶＭ１２１内のトレースデータ記録部１２３にトレース終了時刻、対象ディスクを記録する（ＳＴ１２０５）。
【００５５】
制御が、ゲストＯＳ１１０内のディスクドライバ１１１に戻ったタイミングで、ゲストＯＳ１１０内のトレースデータ記録部１１２にトレース終了時刻、対象ディスクを記録する（ＳＴ１２０６）。
【００５６】
ゲストＯＳ１１０内のトレースデータ記録部１１２とＶＭ１２１内にあるトレースデータ記録部１２３に記録したトレースデータから、ディスク毎の性能に差があるかどうかを判定する（ＳＴ１２０７）。
【００５７】
ディスク毎の性能に差がある場合は、ＶＭ１２０内のＩ／Ｏ調停部１２５が速度の速いディスクに対してアクセスした際のゲストＯＳ１１０への応答を、ディレイを入れてわざと遅らせ、速度が遅いディスクの性能と同じになるよう調整する。その後、調整によって障害現象が解消するかどうかを判定する（ＳＴ１２０８）。
【００５８】
実施の形態５によれば、速度差のあるディスクが２台の場合でも、ＶＭ、ゲストＯＳそれぞれにトレースデータ記録部を設けることによって、ディスクＩ／Ｏが遅延した場合にその原因がＨ／ＷにあるかＶＭにあるか、並びに障害がディスクの速度差に起因するかどうかを容易に解析することができる。
【００５９】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００６０】
１１０  ゲストＯＳ
１１１  ディスクドライバ
１１２  トレースデータ記録部
１１３  トレースデータ取得指示部
１１４  ＬＡＮドライバ
１２０  ホストＯＳ
１２１  ＶＭ
１２２  仮想ディスクドライバ
１２３  トレースデータ記録部
１２４  仮想ＬＡＮドライバ
１２５  Ｉ／Ｏ調停部
１３０  Ｈ／Ｗ
１３１  ディスク
１３２  ＬＡＮ
１３３  ディスク
２１０  ゲストＯＳ
２１１  ディスクドライバ
２１２  トレースデータ記録部
２１３  トレースデータ取得指示部
２１４  ＬＡＮドライバ
【図１】
0005709735.tif 000002
【図２】
0005709735.tif 000003
【図３】
0005709735.tif 000004
【図４】
0005709735.tif 000005
【図５】
0005709735.tif 000006
【図６】
0005709735.tif 000007
【図７】
0005709735.tif 000008
【図８】
0005709735.tif 000009
【図９】
0005709735.tif 000010
【図１０】
0005709735.tif 000011
【図１１】
0005709735.tif 000012
【図１２】
0005709735.tif 000013