特許第5832408号(P5832408)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

<>
  • 特許5832408-仮想計算機システム及びその制御方法 図000002
  • 特許5832408-仮想計算機システム及びその制御方法 図000003
  • 特許5832408-仮想計算機システム及びその制御方法 図000004
  • 特許5832408-仮想計算機システム及びその制御方法 図000005
  • 特許5832408-仮想計算機システム及びその制御方法 図000006
  • 特許5832408-仮想計算機システム及びその制御方法 図000007
  • 特許5832408-仮想計算機システム及びその制御方法 図000008
  • 特許5832408-仮想計算機システム及びその制御方法 図000009
  • 特許5832408-仮想計算機システム及びその制御方法 図000010
  • 特許5832408-仮想計算機システム及びその制御方法 図000011
  • 特許5832408-仮想計算機システム及びその制御方法 図000012
  • 特許5832408-仮想計算機システム及びその制御方法 図000013
  • 特許5832408-仮想計算機システム及びその制御方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5832408
(24)【登録日】2015年11月6日
(45)【発行日】2015年12月16日
(54)【発明の名称】仮想計算機システム及びその制御方法
(51)【国際特許分類】
   G06F 11/34 20060101AFI20151126BHJP
   G06F 9/46 20060101ALI20151126BHJP
【FI】
   G06F11/34 B
   G06F11/34 H
   G06F9/46 350
【請求項の数】8
【全頁数】15
(21)【出願番号】特願2012-224940(P2012-224940)
(22)【出願日】2012年10月10日
(65)【公開番号】特開2014-78099(P2014-78099A)
(43)【公開日】2014年5月1日
【審査請求日】2015年2月2日
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール特許業務法人
(72)【発明者】
【氏名】金 成昊
(72)【発明者】
【氏名】大平 崇博
【審査官】 多賀 実
(56)【参考文献】
【文献】 特開2010−086516(JP,A)
【文献】 特開2010−134557(JP,A)
【文献】 特開昭62−052644(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/30−11/34
G06F 9/46
(57)【特許請求の範囲】
【請求項1】
実計算機のホストOSと、前記実計算機で前記ホストOSに制御されたゲストOSが動作する仮想計算機による仮想計算機システムであって、
前記仮想計算機に設けられた仮想通信パス、
前記ホストOS上で動作し、前記仮想通信パスから前記ゲストOSの第1の状態情報を読み込み、読み込んだ前記第1の状態情報、前記ホストOSの第2の状態情報、前記ホストOSの第1の構成情報、および前記ゲストOSの第2の構成情報に基づいた、前記ホストOS及び/又は前記ゲストOSの異常予兆の有無に応じて決定したトレースポイントのON/OFF状態を記録した第1のトレースポイント状態変更テーブルを前記仮想通信パスに格納し、前記第1のトレースポイント状態変更テーブルの前記ホストOSのトレースポイントのON/OFF状態に基づいて、前記ホストOSのトレースポイントのON/OFF状態を変更する第1の異常予兆検知判断機構、および
前記ゲストOS上で動作し、前記ゲストOSの前記第1の状態情報を前記仮想通信パスに格納し、前記第1の異常予兆検知判断機構によって前記仮想通信パスに格納された前記第1のトレースポイント状態変更テーブルの前記ゲストOSのトレースポイントのON/OFF状態に基づいて、前記ゲストOSのトレースポイントのON/OFF状態を変更する第1の異常予兆検知エージェントを有することを特徴とする仮想計算機システム。
【請求項2】
請求項1に記載の仮想計算機システムにおいて、
前記ゲストOS上で動作し、前記ゲストOSの前記第1の状態情報および前記ゲストOSの前記第2の構成情報に基づいた、前記ホストOS及び/又は前記ゲストOSの異常予兆の有無に応じて決定したトレースポイントのON/OFF状態を記録した第2のトレースポイント状態変更テーブルを前記仮想通信パスに格納し、前記トレースポイント状態変更テーブルの前記ゲストOSのトレースポイントのON/OFF状態に基づいて、前記ゲストOSのトレースポイントのON/OFF状態を変更する第2の異常予兆検知判断機構をさらに有することを特徴とする仮想計算機システム。
【請求項3】
請求項1に記載の仮想計算機システムにおいて、前記仮想通信パスは、前記実計算機のメモリ上の所定領域であって、前記所定領域のアドレスが、前記ホストOSの前記第1の構成情報に含まれることを特徴とする仮想計算機システム。
【請求項4】
実計算機のホストOSと、前記実計算機で前記ホストOSに制御されたゲストOSが動作する仮想計算機による仮想計算機システムであって、
前記仮想計算機に設けられた仮想通信パス、
前記ゲストOS上で動作し、前記仮想通信パスから前記ホストOSの第1の状態情報を読み込み、読み込んだ前記第1の状態情報、前記ゲストOSの第2の状態情報、前記ゲストOSの第1の構成情報、および前記ホストOSの第2の構成情報に基づいた、前記ホストOS及び/又は前記ゲストOSの異常予兆の有無に応じて決定したトレースポイントのON/OFF状態を記録したトレースポイント状態変更テーブルを前記仮想通信パスに格納し、前記トレースポイント状態変更テーブルの前記ゲストOSのトレースポイントのON/OFF状態に基づいて、前記ゲストOSのトレースポイントのON/OFF状態を変更する異常予兆検知判断機構、および
前記ホストOS上で動作し、前記ホストOSの前記第1の状態情報を前記仮想通信パスに格納し、前記異常予兆検知判断機構によって前記仮想通信パスに格納された前記トレースポイント状態変更テーブルの前記ホストOSのトレースポイントのON/OFF状態に基づいて、前記ホストOSのトレースポイントのON/OFF状態を変更する異常予兆検知エージェントを有することを特徴とする仮想計算機システム。
【請求項5】
実計算機のホストOSと、前記実計算機で前記ホストOSに制御されたゲストOSが動作し、仮想通信パスを設けた仮想計算機による仮想計算機システムの制御方法であって、
前記ホストOS上で動作する第1の異常予兆検知判断機構は、
前記仮想通信パスから前記ゲストOSの第1の状態情報を読み込み、
読み込んだ前記第1の状態情報、前記ホストOSの第2の状態情報、前記ホストOSの第1の構成情報、および前記ゲストOSの第2の構成情報に基づいた、前記ホストOS及び/又は前記ゲストOSの異常予兆の有無に応じて決定したトレースポイントのON/OFF状態を記録した第1のトレースポイント状態変更テーブルを前記仮想通信パスに格納し、
前記第1のトレースポイント状態変更テーブルの前記ホストOSのトレースポイントのON/OFF状態に基づいて、前記ホストOSのトレースポイントのON/OFF状態を変更し、
前記ゲストOS上で動作する第1の異常予兆検知エージェントは、
前記ゲストOSの前記第1の状態情報を前記仮想通信パスに格納し、前記第1の異常予兆検知判断機構によって前記仮想通信パスに格納された前記第1のトレースポイント状態変更テーブルの前記ゲストOSのトレースポイントのON/OFF状態に基づいて、前記ゲストOSのトレースポイントのON/OFF状態を変更する
ことを特徴とする仮想計算機システムの制御方法。
【請求項6】
請求項5に記載の仮想計算機システムの制御方法において、
前記ゲストOS上で動作する第2の異常予兆検知判断機構は、
前記ゲストOSの前記第1の状態情報および前記ゲストOSの前記第2の構成情報に基づいた、前記ホストOS及び/又は前記ゲストOSの異常予兆の有無に応じて決定したトレースポイントのON/OFF状態を記録した第2のトレースポイント状態変更テーブルを前記仮想通信パスに格納し、
前記トレースポイント状態変更テーブルの前記ゲストOSのトレースポイントのON/OFF状態に基づいて、前記ゲストOSのトレースポイントのON/OFF状態を変更する
ことを特徴とする仮想計算機システムの制御方法。
【請求項7】
請求項5に記載の仮想計算機システムの制御方法において、前記仮想通信パスは、前記実計算機のメモリ上の所定領域であって、前記所定領域のアドレスが、前記ホストOSの前記第1の構成情報に含まれることを特徴とする仮想計算機システムの制御方法。
【請求項8】
実計算機のホストOSと、前記実計算機で前記ホストOSに制御されたゲストOSが動作し、仮想通信パスを設けた仮想計算機による仮想計算機システムの制御方法であって、
前記ゲストOS上で動作する異常予兆検知判断機構は、
前記仮想通信パスから前記ホストOSの第1の状態情報を読み込み、
読み込んだ前記第1の状態情報、前記ゲストOSの第2の状態情報、前記ゲストOSの第1の構成情報、並びに前記ホストOSの第2の構成情報に基づいた、前記ホストOS及び/又は前記ゲストOSの異常予兆の有無に応じて決定したトレースポイントのON/OFF状態を記録したトレースポイント状態変更テーブルを前記仮想通信パスに格納し、
前記トレースポイント状態変更テーブルの前記ゲストOSのトレースポイントのON/OFF状態に基づいて、前記ゲストOSのトレースポイントのON/OFF状態を変更し、
前記ホストOS上で動作する異常予兆検知エージェントは、
前記ホストOSの前記第1の状態情報を前記仮想通信パスに格納し、
前記異常予兆検知判断機構によって前記仮想通信パスに格納された前記トレースポイント状態変更テーブルの前記ホストOSのトレースポイントのON/OFF状態に基づいて、前記ホストOSのトレースポイントのON/OFF状態を変更する
ことを特徴とする仮想計算機システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想計算機システムの異常予兆検知及びそれに伴う制御に関する。
【背景技術】
【0002】
1台の計算機に複数のオペレーティングシステム(OS)を動作可能とさせる仮想化技術が普及している。仮想化技術が適用された計算機内のサーバシステムは、仮想化システムと呼ばれる。
【0003】
仮想化システムにおいて、ホストOSとゲストOSと呼ばれる二種類のOSが動作する。ホストOSとは実際の計算機(実計算機)上で動作するOSのことで、仮想化機構とも呼ばれることがある。一方、ゲストOSはホストOS上に仮想的に構築された計算機(仮想計算機)上で動作するOSのことである。一般に複数のゲストOSが実行されるため、実計算機の台数を削減可能となる。
【0004】
一般に、ゲストOSとホストOS同士、あるいは、複数のゲストOS同士は、CPU、ネットワークインターフェースカード(NIC)、ディスク等の実デバイスを共有して動作する。このため、実デバイス資源の有効活用が可能となる。
【0005】
さらに、OS上の異常予兆検知判断機構がトレースポイントのON状態あるいはOFF状態を変更可能とするシステムが存在する。トレースポイントは、エラー・ログ情報をメモリ上に記録するためのプログラムであり、状況に応じてON/OFF状態を変更可能である。OFF状態をON状態に変更すれば、異常発生時に、より詳細な障害解析が可能になり、ON状態をOFF状態に変更すれば、エラー・ログ情報を記録するためのシステム負荷を下げることが可能になる。異常予兆検知判断機構は、OSの状態情報(例えば、プロセスの状態や、OS内部の状態等)を監視しており、異常があると判断した場合にトレースポイントのON/OFF状態の変更を行う。異常予兆判断機構の動作の一例として、ディスクI/Oの処理遅延が想定値を超えていないが連続で数回発生したため、ディスクの障害が発生する可能性があると判断し、ディスクI/Oに関するトレースポイントをON状態にする、といった動作があげられる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−151509号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
仮想化システムにおいて、ホストOSは、ゲストOS上でどのような動作処理を実行しているかを判断するのは困難である。一方で、ゲストOSは仮想計算機上で動作しているにも関わらずあたかも実計算機上のように動作するため、ゲストOSから実計算機がどのような処理を実行しているか判断するのは困難である。したがって、異常予兆検知判断機構をゲストOSとホストOSに個々に導入した際に、ゲストOSで異常予兆を検知した場合であっても、実計算機上で動作しているホストOSのトレースポイントをONしなければ、異常時の根本原因が、ゲストOSにあるかホストOSにあるかを判定することは困難となる。例えば、ゲストOSで異常予兆判断機構がディスクI/OのトレースポイントをON状態にしても、ホストOSで異常予兆判断機構がディスクI/OのトレースポイントをOFF状態にしているならば、実計算機のディスクの動作を把握するのは困難である。
【0008】
特許文献1によると、「第一の障害監視制御部がホストOSの通信アドレスの情報を各ゲストOSに対応する第二の障害監視制御部に送信し、各ゲストOSに対応する第二の障害監視制御部が、障害を通知する障害情報を生成し、ホストOSの通信アドレスに基づき、生成した障害情報を第一の障害監視制御部に対して送信するため、障害情報の送信先を第一の障害監視制御部に集約することができる。」と記載されている。
【0009】
特許文献1ではホストOSにゲストOSの異常情報を集約して解析するために、詳細な異常情報となるように多くのトレースポイントを常にONしていなければならず、システム負荷が大きくなる。
【課題を解決するための手段】
【0010】
開示する仮想計算機システムは、実計算機のホストOSと、実計算機でホストOSに制御されたゲストOSが動作する仮想計算機による仮想計算機システムであって、仮想計算機に設けられた仮想通信パス、ホストOS上で動作し、仮想通信パスからゲストOSの状態情報を読み込み、読み込んだ状態情報、ホストOSの状態情報、ホストOSの構成情報、およびゲストOSの構成情報に基づいた、ホストOS及び/又はゲストOSの異常予兆の有無に応じて決定したトレースポイントのON/OFF状態を記録したトレースポイント状態変更テーブルを仮想通信パスに格納し、トレースポイント状態変更テーブルのホストOSのトレースポイントのON/OFF状態に基づいて、ホストOSのトレースポイントのON/OFF状態を変更する異常予兆検知判断機構、および、ゲストOS上で動作し、ゲストOSの状態情報を仮想通信パスに格納し、異常予兆検知判断機構によって仮想通信パスに格納されたトレースポイント状態変更テーブルのゲストOSのトレースポイントのON/OFF状態に基づいて、ゲストOSのトレースポイントのON/OFF状態を変更する異常予兆検知エージェントを有する。
【発明の効果】
【0011】
本発明によれば、仮想計算機システムにおいて、トレースポイントのON/OFF状態を、異常予兆の有無に応じて変更できる。
【図面の簡単な説明】
【0012】
図1】実計算機の構成図である。
図2】仮想計算機の構成図である。
図3】仮想計算機システムの構成図である。
図4】異常予兆検知判断機構の処理のフローチャートである。
図5】トレースポイント状態変更テーブルを示す図である。
図6】異常予兆検知エージェントの処理のフローチャートである。
図7】仮想計算機システム構成図である。
図8】異常予兆検知判断機構の処理のフローチャートである。
図9】トレースポイント状態変更テーブルを示す図である。
図10】異常予兆検知エージェントの処理のフローチャートである。
図11】仮想計算機システム構成図である。
図12】異常予兆検知判断機構の処理のフローチャートである。
図13】異常予兆検知エージェントの処理のフローチャートである。
【発明を実施するための形態】
【0013】
以下、図を用いて実施例を説明する。
【実施例1】
【0014】
実施例1では、ゲストOSとホストOSの間でメッセージやデータのやり取りを行うための通信パスと、ゲストOS内の状態を通信パスに保存したり、ゲストOS内のトレースポイントのON状態及びOFF状態の変更を実施したりするエージェントをゲストOS上に設け、ホストOS上に存在する異常予兆検知判断機構がゲストOSの異常予兆を判断したり、異常予兆検知判断機構で検知したホストOSの異常予兆をゲストOSのエージェントに通知したりすることによって、ゲストOSとホストOSの個々の異常予兆に対する動作を連携可能とする効果をもった装置の構成、および方法を示す。
【0015】
図1は、実計算機100の構成図である。CPU101、物理メモリ102、ディスク103が、バス110を介して接続している。実計算機の電源を投入した後、CPU101は、ディスク103の特定領域の内容を物理メモリ102に読み込み、ディスク103に格納されているOSの起動を実施する。以下の説明では、実計算機100の電源投入後にディスク103から起動するOSをホストOSとする。また、CPU101が物理メモリ102に格納されているプログラムを実行することを、ホストOSがホストOS上に存在するプログラムを実行するとして説明する。
【0016】
図2は、仮想計算機200の構成図である。仮想CPU201、仮想物理メモリ202、仮想ディスク203、仮想通信パス204が、仮想バス210を介して接続している。ホストOS上の仮想計算機の起動プログラムを実行すると、仮想CPU201は、仮想ディスク203の特定領域の内容を仮想物理メモリ202に読み込み、仮想ディスク203に格納されているOSを起動する。以下の説明では、仮想計算機の起動プログラム実行後に仮想ディスク203から起動するOSをゲストOSとする。仮想通信パス204は、ゲストOSとホストOSの間でメッセージやデータのやり取りを行うための通信パスである。仮想通信パス204は、やり取りするメッセージやデータを、ゲストOSおよびホストOSが書き込み、読み出しすることにより通信する、仮想計算機に割り当てられたメモリ上の領域である。この仮想通信パス204は、同一実計算機内のゲストOS間のやり取りを行う通信パスとして使用されても良い。
【0017】
次に、ゲストOSとホストOSの個々の異常予兆に対する連携処理について説明する。図3は、仮想計算機システムの構成図である。本仮想計算機システムは、実計算機100、ホストOS300、仮想計算機200、ゲストOS350から構成される。図では示していないが、仮想計算機200及びゲストOS350は複数存在しても良い。
【0018】
ホストOS300上に、ホストトレースバッファ310、ホストトレースポイント311、異常予兆検知判断機構320、ホストOS構成情報330、ゲストOS構成情報335が存在する。ゲストOS350上には、ゲストトレースバッファ360、ゲストトレースポイント361、異常予兆検知エージェント370が存在する。ホストトレースポイント311及びゲストトレースポイント361は、図3に1つずつ示されているが、複数存在しても良い。仮想計算機200には、仮想通信パス390が存在する。
【0019】
ホストトレースポイント311及びゲストトレースポイント361は、ホストOS上及びゲストOS上で各々実行される各種プログラムに埋め込まれたプログラムであり、ON状態とOFF状態の2つの状態が存在する。ホストトレースポイント311(ゲストトレースポイント361)がON状態の場合、トレースポイント311(361)を実行すると、トレースデータがホストトレースバッファ310(ゲストトレースバッファ360)に格納される。一方、各トレースポイント311(361)がOFF状態の場合、トレースデータは各トレースバッファ310(360)に格納されない。ホストトレースバッファ310(ゲストトレースバッファ360)は、実際に障害が発生した際に、ホストOS300(ゲストOS350)がどのように動作したかを解析するために利用される。
【0020】
ホストOS構成情報330には、実計算機100のハードウェア構成及びホストOS300の内部構成、ホストOS300のバージョン、実計算機100と仮想計算機200のハードウェア対応情報等、ホストOS300が動作するために必要な情報が格納されている。ゲストOS構成情報335には、仮想計算機200の仮想ハードウェア構成及びゲストOS350の内部構成、ゲストOS350のバージョン等、ゲストOS350を動作させるために必要な情報、および仮想通信パス204のホストOS300から見たアドレスなどホストOS300がゲストOS350を制御するために必要な情報が格納されている。複数の仮想計算機200及びゲストOS350が存在する場合、それらの数に応じたゲストOS構成情報335が存在する。
【0021】
異常予兆検知エージェント370は、ゲストOS350の状態情報(例えば、プロセス群371の状態、ゲストOS350内部の状態、仮想計算機200に接続されている各仮想装置の状態等)を仮想通信パス204に定期的に格納する。ゲストOS350の状態情報の格納した際、仮想通信パス204に状態情報を格納したことをホストOS300の異常予兆検知判断機構320に通知しても良い。
【0022】
異常予兆検知判断機構320は、ホストOS300の状態情報(例えば、プロセス群321の状態や、ホストOS300内部の状態や、実計算機に接続されている各装置の状態等)を監視し、異常の予兆が無いかを判断する。さらに、異常予兆検知判断機構320は、ゲストOS構成情報335に含まれる仮想通信パス204のアドレスを参照して、異常予兆検知エージェント370によって仮想通信パス204に保存されたゲストOS350の状態情報を定期的に読み出し、ゲストOS350の状態情報、ホストOS構成情報330、およびゲストOS構成情報335から、ゲストOS350の異常の有無を判断する。仮想通信パス204よりゲストOS350の状態情報を読み出す際は、ゲストOS350の異常予兆検知エージェント370からの通知に応答して読み込んでも良い。
【0023】
次に、異常予兆検知判断機構320が、ホストOS300の状態情報あるいはゲストOS350の状態情報から、ホストOSあるいはゲストOSに異常の予兆があると判断し、ホストOS及びゲストOSの各トレースポイントをON状態あるいはOFF状態に変更するまでの動作を説明する。
【0024】
図4に、異常予兆検知判断機構320の処理のフローチャートを示す。異常予兆検知判断機構320は、まずホストOS300、及び仮想通信パス204からゲストOS350の状態情報を読み込む(ステップ401)。図示を省略するが、ホストOS300の状態情報は、ホストOS300内にホストOS構成情報330などと同様に格納されている。またゲストOS350の状態情報は、ゲストOS350内に格納されていて、その状態情報をゲストOS350が定期的に仮想通信パス204書き込む。次に、読み込んだ状態情報から異常予兆の有無を判断する(ステップ402)。異常予兆が無い場合はステップ401に戻り、異常予兆が有る場合は、ステップ403に進む。尚、ゲストOS350の異常予兆の有無を判断する場合、ホストOS構成情報330とゲストOS構成情報335も利用する。
【0025】
ホストOS300及びゲストOS350のどのトレースポイントをON状態あるいはOFF状態にするか決定し、図5に示すようなトレースポイント状態変更テーブル501を作成する(ステップ403)。トレースポイント状態変更テーブル501は、ホストOS300及び/又はゲストOS350の異常予兆の有無に応じて決定した、各々のトレースポイントのON/OFF状態が記録されている。
【0026】
仮想通信パス204を介して、異常予兆検知エージェント370にトレースポイント状態変更テーブル501を送信する(ステップ404)。ゲストOS350が複数存在する場合は、各ゲストOS350にトレースポイント状態変更テーブル501を送信する。尚、送信するデータはステップ403で作成したトレースポイント状態変更テーブル501でも良いし、トレースポイント状態変更テーブル501から送信対象のゲストOS350に関連するエントリ(状態変更テーブル501の行)を抽出したテーブルでも良い。また、トレースポイント状態変更テーブル501を送受信するための仮想通信パス204は、状態情報を格納する仮想通信パスと異なって存在しても良い。
【0027】
次に、トレースポイント状態変更テーブル501のホストOSの行のON/OFF状態と現状のホストトレースポイント311のON/OFF状態を比較する(ステップ405)。比較の結果、ON状態からOFF状態への変更あるいはOFF状態からON状態への変更が必要な場合、トレースポイントのON/OFF状態を変更し(ステップ406)、動作を終了する。一方、変更が必要でない場合、ON/OFF状態を変更せずに動作を終了する。異常予兆判断機構320は以上のように動作する。
【0028】
次に、図6を用いて、ステップ404で異常予兆判断機構320が仮想通信パス204を介してトレースポイント状態変更テーブル501を送信した後の異常予兆検知エージェント370の処理のフローを説明する。
【0029】
異常予兆検知エージェント370は、異常予兆判断機構320から仮想通信パス204を介してトレースポイント状態変更テーブル501を受信する(ステップ601)。次に、受信したトレースポイント状態変更テーブル501を読み込み、現状のゲストトレースポイント361のON/OFF状態と比較する(ステップ602)。比較の結果、ON/OFF状態の変更が必要な場合、トレースポイントのON/OFF状態を変更し、処理を終える(ステップ603)。変更の必要がない場合、処理を終える。異常予兆検知エージェント370は以上のように動作する。
【0030】
以上により、異常予兆判断機構320をホストOS300上で動作させ、異常予兆検知エージェント370をゲストOS350上で動作させ、ゲストOS350とホストOS300間で仮想通信パス204を利用することで、ゲストOS350とホストOS300の個々の異常予兆を検知し、その異常予兆に沿ってトレースポイントのON/OFF状態の変更が可能となる。
【0031】
本実施例により、例えば、ゲストOS350の状態情報からディスクI/Oの異常予兆を検知した際に、ゲストOS350が使用しているディスク103と仮想ディスク203のトレースポイントをON状態にすることが可能となる。
【実施例2】
【0032】
本実施例では、実施例1で示したホストOS上で動作する異常予兆検知判断機構がゲストOS上で動作する場合を示す。
【0033】
図7は、ホストOS700上で異常予兆エージェント740が動作し、ゲストOS1(750)上に異常予兆検知判断機構770、ホストOS構成情報780及びゲストOS構成情報785が存在し、ゲストOS2(755)上に異常予兆エージェント775が存在する仮想計算機システム構成を示す図である。図には示していないが、さらにゲストOSが動作する場合、そのゲストOSはゲストOS2(755)と同様の構成で、同様に動作する。
【0034】
ゲストOS2(755)上の異常予兆検知エージェント775は、実施例1の異常予兆検知エージェント370と同様に動作し、ゲストOS2(755)の状態情報を仮想通信パス795に定期的に格納する。ゲストOS2(755)の状態情報を格納した際、仮想通信パス795に状態情報を格納したことをホストOSの異常予兆検知エージェント740に通知しても良い。
【0035】
ホストOS700上の異常予兆検知エージェント740は、ホストOS700の状態情報と、仮想通信パス795から読み込んだゲストOS2(755)の状態情報を、仮想通信パス790に定期的に格納する。状態情報を格納した際、格納したことをゲストOS1(750)の異常予兆検知判断機構770に通知しても良い。図示を省略しているが、ホストOS700は仮想通信パス790及び795のアドレス情報を持っている。
【0036】
異常予兆検知判断機構770は、ゲストOS1(750)の状態情報を監視し、異常の予兆が無いか判断する。さらに、異常予兆検知判断機構770は、異常予兆検知エージェント740によって仮想通信パス790に保存されたホストOS700とゲストOS2(755)の状態情報を定期的に読み出し、読みだした状態情報とホストOS構成情報780及びゲストOS構成情報785から、ホストOS700及びゲストOS2(755)に異常が無いか判断する。仮想通信パス790よりホストOS700及びゲストOS2(755)の状態情報を読み出しは、ホストOS700の異常予兆検知エージェント740の通知に応答して読み込んでも良い。
【0037】
ここでは、ゲストOS2(755)の状態情報を、ホストOS700の異常予兆検知エージェント740が一旦読み出してから、仮想通信パス790に読みだした状態情報を格納し、異常予兆検知判断機構770に仮想通信パス790に格納された状態情報を読み込ませることを示したが、ホストOS700の異常予兆検知エージェント740を経由せずに、異常予兆検知判断機構770がゲストOS2(755)の状態情報を読み出すようにしても良い。この場合、ゲストOS1(750)のゲストOS構成情報785に、仮想通信パス795のゲストOS1(750)から見たアドレスを含んでいる。
【0038】
次に、異常予兆検知判断機構770が、ホストOS700の状態情報、ゲストOS1(750)の状態情報、あるいはゲスト2(755)の状態情報から、ホストOS700あるいは各ゲストOS750,755に異常の予兆の有無に応じた、ホストOS700及び各ゲストOS750,755の各トレースポイントをON状態あるいはOFF状態に変更するまでの動作を説明する。
【0039】
図8に、ゲストOS1(750)の異常予兆検知判断機構770の処理のフローチャートを示す。
【0040】
異常予兆検知判断機構770は、ホストOS700及びゲストOS1(750)及びゲストOS2(755)の状態情報を読み込む(ステップ801)。次に、読み込んだ状態情報から異常予兆の有無を判断する(ステップ802)。異常予兆が無い場合はステップ801に戻り、有る場合は、ステップ803に進む。尚、ホストOS700や他のゲストOS755の異常予兆の有無を判断する場合、ホストOS構成情報780及びゲストOS構成情報785も利用する。
【0041】
ホストOS700及びゲストOS1(750)及びゲストOS2(755)のどのトレースポイントをON状態あるいはOFF状態にするか決定し、図9に示したようなトレースポイント状態変更テーブル901を作成する(ステップ803)。
【0042】
仮想通信パス790を介して、ホストOS700の異常予兆検知エージェント740に、トレースポイント状態変更テーブル901を送信する(ステップ804)。尚、送信するデータはステップ803で作成したトレースポイント状態変更テーブル901でも良いし、トレースポイント状態変更テーブル901からホストOS700及びゲストOS2(755)に関連するエントリ(状態変更テーブル501の行)を抽出したテーブルでも良い。また、トレースポイント状態変更テーブルを送受信するための仮想通信パス790が、状態情報を格納する仮想通信パス790と異なって存在しても良い。さらに、異常予兆検知判断機構770がゲストOS2(755)の異常予兆検知エージェント775にトレースポイント状態変更テーブル901を送信しても良い。
【0043】
次に、トレースポイント状態変更テーブル901のゲストOS1の行のON/OFF状態と現状のゲストトレースポイント761のON/OFF状態を比較する(ステップ805)。比較の結果、ON状態からOFF状態への変更あるいはOFF状態からON状態への変更が必要な場合、トレースポイントのON/OFF状態を変更し(ステップ806)、動作を終了する。一方、変更が必要でない場合、ON/OFF状態を変更せずに動作を終了する。異常予兆判断機構770は以上のように動作する。
【0044】
次に、図10を用いて、ステップ804で異常予兆判断機構770が仮想通信パス790を介してトレースポイント状態変更テーブル901を送信した後の、ホストOS700の異常予兆検知エージェント740の処理のフローを説明する。
【0045】
異常予兆検知エージェント740は、異常予兆判断機構770から仮想通信パス790を介してトレースポイント状態変更テーブル901を受信する(ステップ1001)。次に、仮想通信パス795を介して、ゲストOS2(755)の異常予兆検知エージェント775に、トレースポイント状態変更テーブル901を送信する(ステップ1002)。ただし、ステップ804でゲストOS1(750)の異常予兆判断機構770からゲストOS2(755)の異常予兆検知エージェント775にトレースポイント状態変更テーブル901を送信した場合、ステップ1002は実行しない。
【0046】
さらに、トレースポイント状態変更テーブル901を読み込み、現状のホストトレースポイント711のON/OFF状態と比較する(ステップ1003)。比較の結果、ON状態からOFF状態への変更あるいはOFF状態からON状態への変更が必要な場合、トレースポイントのON/OFF状態を変更し、処理を終える(ステップ1004)。変更の必要がない場合、処理を終える。ホストOS700の異常予兆検知エージェント740は以上のように動作する。
【0047】
ステップ1002で、ホストOS700の異常予兆検知エージェント740がゲストOS2(755)の異常予兆検知エージェント775に、トレースポイント状態変更テーブル901を送信した後の処理は、図6のフローと同様である。
【0048】
以上により、異常予兆判断機構770をゲストOS1(750)上で動作させ、異常予兆検知エージェント740及び775をそれぞれホストOS700及びゲストOS755上で動作させ、ゲストOSとホストOS間で仮想通信パス790及び795を利用することで、ゲストOS1(750)、ゲストOS2(755)及びホストOS700の個々の異常予兆を検知し、その異常予兆に沿ってトレースポイントのON/OFF状態の変更が可能となる。
【実施例3】
【0049】
本実施例では、実施例1及び実施例2で示した異常予兆検知判断機構がホストOS上とゲストOS上にそれぞれ存在する場合を示す。
【0050】
図11は、ホストOS1100上、ゲストOS1(1150)上、及びゲストOS2(1155)上に異常予兆検知判断機構が存在するように構成された仮想計算機システム構成を示す図である。図には示していないが、さらにゲストOSが動作する場合、図11に示したゲストOSと同様の構成をとる。
【0051】
ここでは代表的に、ゲストOS1(1150)上の異常予兆判断機構1170が、ゲストOS1150に異常の予兆があると判断し、ホストOS1100及び各ゲストOSの各トレースポイントをON状態あるいはOFF状態に変更するまでの動作を説明する。
【0052】
図12に、ゲストOS1(1150)の異常予兆検知判断機構1170の処理のフローチャートを示す。
【0053】
異常予兆検知判断機構1170は、ゲストOS1(1150)の状態情報を仮想通信パス1190から読み込む(ステップ1201)。次に、読み込んだ状態情報から異常予兆の有無を判断する(ステップ1202)。異常予兆が無い場合は1101に戻り、有る場合は、ステップ1203に進む。
【0054】
ゲストOS1(1150)のどのトレースポイントをON状態あるいはOFF状態にするか決定し、ゲストOS1のトレースポイント状態変更テーブルを作成する(ステップ1203)。
【0055】
仮想通信パス1190を介して、ホストOS1100の異常予兆検知判断機構1140に、ゲストOS1(1150)の異常予兆内容を送信する(ステップ1204)。
【0056】
次に、ゲストOS1のトレースポイント状態変更テーブルと、現状のゲストトレースポイント1161のON/OFF状態と比較する(ステップ1205)。比較の結果、ON状態からOFF状態への変更あるいはOFF状態からON状態への変更が必要な場合、トレースポイント1161のON/OFF状態を変更し(ステップ1206)、動作を終了する。一方、変更が必要でない場合、ON/OFF状態を変更せずに動作を終了する。異常予兆判断機構1170は以上のように動作する。
【0057】
次に、図13を用いて、ステップ1204で異常予兆判断機構1170が仮想通信パス1190を介してゲストOS1の異常予兆内容を送信した後の、ホストOS1100の異常予兆検知判断機構1140の処理のフローを説明する。
【0058】
異常予兆検知判断機構1140は、異常予兆判断機構1170から仮想通信パス1190を介してゲストOS1の異常予兆内容を受信する(ステップ1301)。次に、ホストOS構成情報1130と全ゲストOS構成情報1135から、ホストOS1100及びゲストOS2(1155)のトレースポイント状態変更テーブルを図5あるいは図9と同様に作成する(ステップ1302)。
【0059】
次に、仮想通信パス1195を介して、ゲストOS2(1155)の異常予兆検知判断機構1175に、ステップ1302で作成したトレースポイント状態変更テーブルを送信する(ステップ1303)。
【0060】
さらに、トレースポイント状態変更テーブルを仮想通信パス1195を介して読み込み、現状のホストトレースポイント1111のON/OFF状態と比較する。(ステップ1304)比較の結果、ON状態からOFF状態への変更あるいはOFF状態からON状態への変更が必要な場合、レースポイントのON/OFF状態を変更し、処理を終える。(ステップ1305)もし、変更の必要がない場合、処理を終える。ホストOS700の異常予兆検知エージェント1140は以上のように動作する。
【0061】
ステップ1303でホストOS1100の異常予兆検知判断機構1140がゲストOS2(1155)の異常予兆検知判断機構1175にトレースポイント状態変更テーブルを送信した後の処理は、図6のフローで異常予兆検知エージェントの役割を異常予兆検知判断機構が担うものとし、同様のフローである。
【0062】
以上により、異常予兆判断機構1140、1170、1175をそれぞれホストOS1100・ゲストOS1(1150)・ゲストOS2(1155)にもたせ、ゲストOSとホストOS間で仮想通信パス1190及び1195を利用することで、ゲストOS1(750)、ゲストOS2(755)及びホストOS700の個々の異常予兆を検知し、その異常予兆に沿ってトレースポイントのON/OFF状態の変更が可能となる。
【0063】
尚、以上の実施例1〜3で示した方法の一部を組み合わせて、ホストOSあるいは複数のゲストOSの異常予兆検知及びレースポイントのON/OFF状態の変更を実施しても良いものとする。
【0064】
以上の実施形態によれば、仮想計算機システムにおいて、トレースポイントON/OFF状態を、異常予兆の有無に応じて変更できるので、通常時のシステム負荷が抑えられかつ異常発生時の原因解析性も担保できる。
【符号の説明】
【0065】
100:実計算機、101:CPU、102:物理メモリ、103:ディスク、110:バス制御装置、200:仮想計算機、201:仮想CPU、202:仮想物理メモリ、203:仮想ディスク、204:仮想通信パス、210:仮想バス制御装置、300:ホストOS、310:ホストトレースバッファ、311:ホストトレースポイント、320:異常予兆検知判断機構、321、371:プロセス群、330:ホストOS構成情報、335:ゲストOS構成情報、350:ゲストOS、360:ゲストトレースバッファ、361:ゲストトレースポイント、370:異常予兆検知エージェント、390:仮想通信パス、501:トレースポイント状態変更テーブル、700:ホストOS、710:ホストトレースバッファ、711:ホストトレースポイント、721、771、776:プロセス群、740、775:異常予兆検知エージェント、750:ゲストOS1、755:ゲストOS2、760、765:ゲストトレースバッファ、761、766:ゲストトレースポイント、770:異常予兆検知判断機構、780:ホストOS構成情報、785:ゲストOS構成情報、790、795:仮想通信パス、791、796:仮想計算機、901:トレースポイント状態変更テーブル、1100:ホストOS、1110:ホストトレースバッファ、1111:ホストトレースポイント、1121、1171、1176:プロセス群、1130:ホストOS構成情報、1135:全ゲストOS構成情報、1180、1185:ゲストOS構成情報、1140、1170、1175:異常予兆検知判断機構、1150:ゲストOS1、1155:ゲストOS2、1160、1165:ゲストトレースバッファ、1161、1166:ゲストトレースポイント、1190、1195:仮想通信パス、1191、1196:仮想計算機。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13