(57)【特許請求の範囲】
【請求項１】
１又は２以上のジョブを実行するための、１又は２以上のゲストＯＳ（Operating System）と、
前記ゲストＯＳを制御する、１又は２以上の仮想マシンと、
前記仮想マシンの状態、状態変化の少なくともいずれかと、ジョブの実行タイミングを示す情報とに基づいて、ジョブの実行スケジュールを決定する、ジョブ管理手段と、
を備える管理装置。
【請求項２】
前記仮想マシンは、当該仮想マシンに対応するイベントを、前記ジョブ管理手段に通知し、
前記ジョブ管理手段は、
前記仮想マシンから前記イベントの通知を受信する、仮想マシン状態通知手段と、
前記仮想マシン状態通知手段が受信した前記イベントに対応する、前記仮想マシンを特定し、当該特定した仮想マシンにおけるジョブの一覧を、当該仮想マシンから取得する、仮想マシン関連ジョブ取得手段と、
前記仮想マシンから受信した前記イベントに応じて、当該仮想マシンにおける、ジョブの実行スケジュールを決定する、ジョブスケジューラと、
をさらに備える、請求項１に記載の管理装置。
【請求項３】
前記仮想マシン状態通知手段は、前記仮想マシンから受信した前記イベントに基づいて、当該仮想マシンの状態、状態変化の少なくともいずれかを推定する、請求項２に記載の管理装置。
【請求項４】
前記仮想マシンは、当該仮想マシンの状態変化前、状態変化後の少なくともいずれかに、前記イベントを、前記ジョブ管理手段に通知する、請求項２又は３に記載の管理装置。
【請求項５】
前記ジョブ管理手段は、
前記仮想マシンに対応するイベントと、当該イベントの発生時における行動と、を対応付けた行動テーブルと、
前記行動テーブルに基づいて、仮想マシン状態通知手段が受信した、前記イベントに対応する行動を決定する、行動決定手段と、
をさらに備える、請求項２乃至４のいずれか一に記載の管理装置。
【請求項６】
前記行動テーブルは、前記イベントと、ジョブのタイプと、ジョブの実行状態と、前記行動とを対応付けたテーブルを含む、請求項５に記載の管理装置。
【請求項７】
前記ジョブ管理手段は、前記仮想マシン関連ジョブ取得手段が取得する、前記ジョブの一覧と、前記行動決定手段が決定した行動とに基づいて、ジョブの実行スケジュールの更新要求を、前記ジョブスケジューラに送信する、請求項５又は６に記載の管理装置。
【請求項８】
前記仮想マシン状態通知手段が受信する前記イベントは、ライブマイグレーション処理、サスペンド処理、レジューム処理のうち、少なくともいずれか一の処理に関する情報を含む、請求項２乃至７のいずれか一に記載の管理装置。
【請求項９】
１又は２以上のジョブを実行するための、１又は２以上のゲストＯＳ（Operating System）と、前記ゲストＯＳを制御する、１又は２以上の仮想マシンと、を備える管理装置の制御方法であって、
前記仮想マシンの状態、状態変化の少なくともいずれかと、ジョブの実行タイミングを示す情報とに基づいて、ジョブの実行スケジュールを決定する工程を含む、前記管理装置の制御方法。
【請求項１０】
１又は２以上のジョブを実行するための、１又は２以上のゲストＯＳ（Operating System）と、前記ゲストＯＳを制御する、１又は２以上の仮想マシンと、を備える管理装置を制御するコンピュータに実行させるプログラムであって、
前記仮想マシンの状態、状態変化の少なくともいずれかと、ジョブの実行タイミングを示す情報とに基づいて、ジョブの実行スケジュールを決定する処理を、前記管理装置を制御するコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、管理装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
仮想化環境においては複数のゲストＯＳ（Operating System）がホストＯＳの物理リソースを共有する。そのため、仮想化環境においては、処理によっては、ゲストＯＳ間で処理を順次実行するのが望ましい場合がある。一方、仮想化環境において、一貫性のある情報採取をするために、２以上のゲストＯＳ間で処理を同期実行するように制御する場合もある。
【０００３】
そこで、分散コンピューティング環境上でのグローバルスケジューラ(ワークキュー)、ジョブスケジューラ等の技術が提案されている。
【０００４】
特許文献１においては、少なくとも２つのドメインを駆動する仮想マシンモニターにおいて、ドメインから受信されたタスクを実行キューに挿入し、イベントの類型に応じて、実行キューに挿入されたタスクをスケジューリングするスケジューラを選択する技術が記載されている。
【０００５】
特許文献２においては、仮想化環境における、仮想サーバのリソースの予約状況に基づいて、仮想サーバの構成変更のためのリソースに、空きがあるか否かを判断し、構成変更のためのリソースの空きがある場合には、構成変更の情報を登録する技術が記載されている。そして、特許文献２に記載された技術においては、登録された構成変更の情報に基づいて、構成変更処理をスケジューリングし、仮想化環境に対する構成変更処理を実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１９２２８１号公報
【特許文献２】特開２０１２−１６００４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
なお、上記の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【０００８】
上述の通り、仮想化環境においては、ゲストＯＳにおいて実行されるジョブの実行を適切にスケジューリング、及び監視することが好ましい。しかし、仮想化環境において、サスペンド、レジューム等により、ゲストＯＳが、突如、応答停止、または応答復帰する場合がある。また、仮想化環境によっては、ライブマイグレーションにより、ジョブを実行する仮想マシンが変更される場合がある。仮想化環境においては、このような構成変更が発生する可能性が、物理環境より高い傾向がある。
【０００９】
また、ゲストＯＳ間でリソース競合が発生すると、それぞれのゲストＯＳは仮想的には独立して動作しているつもりでも、互いのパフォーマンスに影響を与える場合がある。
【００１０】
特許文献１、２に記載された技術では、仮想サーバ（ゲストＯＳ）間で、リソース競合が発生する場合について考慮していない。そのため、特許文献１、２に記載された技術では、仮想サーバが構成変更処理を実行すると、異なる仮想サーバに影響を与える恐れがある。
【００１１】
そこで、本発明は、仮想化環境における状態変化の影響を軽減し、仮想化環境の構成変更を、迅速にジョブスケジューリングに反映することに貢献する管理装置、管理装置の制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の視点によれば、管理装置が提供される。該管理装置は、１又は２以上のジョブを実行するための、１又は２以上のゲストＯＳを備える。
さらに、該管理装置は、前記ゲストＯＳを制御する、１又は２以上の仮想マシンを備える。
さらに、該管理装置は、前記仮想マシンの状態、状態変化の少なくともいずれかに基づいて、ジョブの実行スケジュールを決定する、ジョブ管理手段を備える。
前記ジョブ管理手段は、前記仮想マシンの状態、状態変化の少なくともいずれかと、ジョブの実行タイミングを示す情報とに基づいて、ジョブの実行スケジュールを決定する。
【００１３】
本発明の第２の視点によれば、１又は２以上のジョブを実行するための、１又は２以上のゲストＯＳと、前記ゲストＯＳを制御する、１又は２以上の仮想マシンと、を備える管理装置の制御方法が提供される。該管理装置の制御方法は、前記仮想マシンの状態、状態変化の少なくともいずれかに基づいて、ジョブの実行スケジュールを決定する工程を含む。
前記実行スケジュールを決定する工程では、前記仮想マシンの状態、状態変化の少なくともいずれかと、ジョブの実行タイミングを示す情報とに基づいて、ジョブの実行スケジュールを決定する。
【００１４】
本発明の第３の視点によれば、１又は２以上のジョブを実行するための、１又は２以上のゲストＯＳ（Operating System）と、前記ゲストＯＳを制御する、１又は２以上の仮想マシンと、を備える管理装置を制御するコンピュータに実行させるプログラムが提供される。該プログラムは、前記仮想マシンの状態、状態変化の少なくともいずれかに基づいて、ジョブの実行スケジュールを決定する処理を含む。
前記実行スケジュールを決定する処理では、前記仮想マシンの状態、状態変化の少なくともいずれかと、ジョブの実行タイミングを示す情報とに基づいて、ジョブの実行スケジュールを決定する。
なお、該プログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１５】
本発明の各視点によれば、仮想化環境における状態変化の影響を軽減し、仮想化環境の構成変更を、迅速にジョブスケジューリングに反映することに貢献する管理装置、管理装置の制御方法、及びプログラムが提供される。
【図面の簡単な説明】
【００１６】
【図１】一実施形態の概要を説明するための図である。
【図２】仮想マシン管理装置１の内部構成の一例を示すブロック図である。
【図３】ジョブ実行エージェント１２の動作の一例を示すフローチャートである。
【図４】ジョブ情報管理テーブルの一例を示す図である。
【図５】ジョブ管理マネージャ３２動作の一例を示すフローチャートである。
【図６】仮想マシン２０の状態変化時の行動に関するテーブルの一例を示す図である。
【図７】仮想マシン２０の状態変化時の行動に関するテーブルの一例を示す図である。
【図８】仮想マシン２０の状態変化時の行動に関するテーブルの一例を示す図である。
【図９】仮想マシン管理手段３１の動作の一例を示すフローチャートである。
【図１０】ジョブ制御情報管理テーブルの一例を示す図である。
【図１１】実行制御対象ジョブの状態遷移の一例を示す状態遷移図である。
【図１２】実行制御対象ジョブの状態遷移の一例を示す状態遷移図である。
【図１３】実行制御対象ジョブの状態遷移の一例を示す状態遷移図である。
【発明を実施するための形態】
【００１７】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１８】
上述の通り、仮想化環境における状態変化の影響を軽減し、仮想化環境の構成変更を、迅速にジョブスケジューリングに反映することに貢献する管理装置が望まれる。
【００１９】
そこで、一例として、図１に示す管理装置１０００を提供する。管理装置１０００は、１又は２以上のゲストＯＳ１０１０ａ、１０１０ｂと、１又は２以上の仮想マシン１０２０ａ、１０２０ｂと、ジョブ管理手段１０３０と、を備える。以下の説明では、ゲストＯＳ１０１０ａ、１０１０ｂをゲストＯＳ１０１０と記載し、仮想マシン１０２０ａ、１０２０ｂを仮想マシン１０２０と記載する。なお、図１は、ゲストＯＳ１０１０ａ、１０１０ｂ、仮想マシン１０２０ａ、１０２０ｂを示すが、これは、ゲストＯＳ１０１０、仮想マシン１０２０の数を限定する趣旨ではない。
【００２０】
ゲストＯＳ１０１０は、１又は２以上のジョブを実行する。例えば、図１の場合、ゲストＯＳ１０１０ａは、ジョブ１０１１ａ、及び１０１１ｂを実行する。また、図１の場合、ゲストＯＳ１０１０ｂは、ジョブ１０１１ｃ、及び１０１１ｄを実行する。なお、図１は、各ゲストＯＳ１０１０において、実行対象である２個のジョブを示すが、これは、ゲストＯＳ１０１０が実行するジョブの数を限定する趣旨ではない。
【００２１】
仮想マシン１０２０は、ゲストＯＳ１０１０を制御する。例えば、図１の場合には、仮想マシン１０２０ａは、ゲストＯＳ１０１０ａを制御するものとする。その場合、仮想マシン１０２０ａは、ジョブ１０１１ａ、１０１１ｂの実行を制御するものとする。さらに、図１の場合には、仮想マシン１０２０ｂは、ゲストＯＳ１０１０ｂを制御するものとする。その場合、仮想マシン１０２０ｂは、ジョブ１０１１ｃ、１０１１ｄを制御するものとする。
【００２２】
ジョブ管理手段１０３０は、仮想マシンの状態、状態変化の少なくともいずれかに基づいて、ジョブの実行スケジュールを決定する。以下の説明では、ジョブ実行スケジュールを決定することを、ジョブスケジューリングとも呼ぶ。
【００２３】
以上より、管理装置１０００においては、仮想マシンの構成変更等により、仮想マシン１０２０の状態が変化した場合であっても、仮想マシン１０２０の状態に応じて、ジョブ管理手段１０３０がジョブの実行スケジュールを決定し、更新する。その結果、管理装置１０００は、仮想化環境における状態変化の影響を軽減することに貢献する。さらに、管理装置１０００は、仮想化環境の構成変更を、迅速にジョブスケジューリングに反映することに貢献する。
【００２４】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。なお、以下の説明では、仮想マシンを「ＶＭ」（Virtual Machine）とも呼ぶ。また、以下の説明では、上記の管理装置を、仮想マシン管理装置と呼ぶ。また、以下の説明では、上記のジョブ管理手段は、以下に記載のハイパーバイザ（Hypervisor（登録商標））に相当するものとする。
【００２５】
図２は、本実施形態に係る仮想マシン管理装置１の内部構成の一例を示すブロック図である。図２に示す仮想マシン管理装置１は、ゲストＯＳ１０ａ〜１０ｃと、仮想マシン２０ａ〜２０ｃと、ハイパーバイザ３０と、ハードウェア４０とを含んで構成される。
【００２６】
図２に示すゲストＯＳ１０ａは、ジョブ実行エージェント１２ａと、ジョブ１１ａ、１１ｂとを含んで構成される。同様に、図２に示すゲストＯＳ１０ｂは、ジョブ実行エージェント１２ｂと、ジョブ１１ｃ、１ｄとを含んで構成される。また、図２に示すゲストＯＳ１０ｃは、ジョブ実行エージェント１２ｃと、ジョブ１１ｅ、１１ｆとを含んで構成される。
【００２７】
なお、以下の説明においては、ゲストＯＳ１０ａ〜１０ｃ、仮想マシン２０ａ〜２０ｃ、ジョブ実行エージェント１２ａ〜１２ｃ、ジョブ１１ａ〜１１ｆを、ゲストＯＳ１０、仮想マシン２０、ジョブ実行エージェント１２、ジョブ１１と記載する。また、図２は、ゲストＯＳ１０ａ〜１０ｃ、仮想マシン２０ａ〜２０ｃを示すが、これは、ゲストＯＳ１０、仮想マシン２０の数を限定する趣旨ではない。
【００２８】
仮想マシン管理装置１は、ハードウェア４０上で、ハイパーバイザ３０を動作させることで、仮想マシン２０を制御する。具体的には、仮想マシン管理装置１においては、ハイパーバイザ３０が、仮想マシン２０のＯＳであるゲストＯＳ１０を動作させる。その結果、ハイパーバイザ３０は、仮想マシン２０を制御、及び管理できる。
【００２９】
ハイパーバイザ３０を実現する場合、例えば、ＫＶＭ（Kernel-based Virtual Machine）機能を利用したＬｉｎｕｘ（登録商標）ＫｅｒｎｅｌベースのＨｙｐｅｒｖｉｓｏｒが挙げられる。また、ゲストＯＳ１０を実現する場合、例えば、ホストＯＳ（基本ＯＳ）をＷｉｎｄｏｗｓ（登録商標）とし、Ｗｉｎｄｏｗｓ（登録商標）上で、Ｌｉｎｕｘ（登録商標）をゲストＯＳとして動作させても良い。
【００３０】
次に、ゲストＯＳ１０について詳細に説明する。
【００３１】
上述の通り、ゲストＯＳ１０は、ジョブ実行エージェント１２と、制御対象のジョブ１１とを含んで構成される。以下の説明は、制御対象のジョブ１１を、実行制御対象ジョブとも呼ぶ。
【００３２】
ジョブ実行エージェント１２は、ジョブ管理マネージャ３２からの指示に従い、実行制御対象ジョブを実行する。なお、ジョブ管理マネージャ３２の詳細は後述する。
【００３３】
ジョブ実行エージェント１２を実現する場合、例えば、ゲストＯＳ１０内のプロセスとして実装することで、ジョブ実行エージェント１２を実現しても良い。また、実行制御対象ジョブは、所定の処理を実行するコマンドとして実装されても良い。
【００３４】
また、ジョブ実行エージェント１２は、実行制御対象ジョブを実行する場合、当該実行制御対象ジョブの実行状態を、ジョブ管理マネージャ３２に通知する。具体的には、ジョブ実行エージェント１２は、実行制御対象ジョブを実行する場合、当該実行制御対象ジョブの開始、中断、終了等の情報を、ジョブの実行状態としてジョブ管理マネージャ３２に通知しても良い。
【００３５】
なお、仮想マシン管理装置１は、ハイパーバイザ３０、及びゲストＯＳ１０が、参照可能なバッファ領域（図示せず）を備えていても良い。その場合、ジョブ実行エージェント１２、及びジョブ管理マネージャ３２は、当該バッファ領域を介して、情報の送受信を行っても良い。また、ジョブ実行エージェント１２と、ジョブ管理マネージャ３２とが、通信するためのインターフェースは、仮想ファイルとして実装しても良い。
【００３６】
次に、ハイパーバイザ３０について、詳細に説明する。
【００３７】
ハイパーバイザ３０は、仮想マシン管理手段３１と、ジョブ管理マネージャ３２とを含んで構成される。
【００３８】
まず、仮想マシン管理手段３１について、詳細に説明する。
【００３９】
仮想マシン管理手段３１は、仮想マシン状態通知手段３１１と、仮想マシン制御手段３１２とを含んで構成される。
【００４０】
仮想マシン管理手段３１を実現する場合、例えば、Ｌｉｎｕｘ（登録商標）ＫｅｒｎｅｌベースのホストＯＳ上のプロセスとして、仮想マシン管理手段３１を実装しても良い。
【００４１】
仮想マシン状態通知手段３１１は、仮想マシン２０から送信されるイベント（以下、ＶＭイベントと呼ぶ）を検出する。以下、ＶＭイベントは、ライブマイグレーション処理、サスペンド／レジューム処理等、仮想化環境固有の処理を意味するものとする。
【００４２】
そして、仮想マシン状態通知手段３１１は、ＶＭイベントを検出した場合、検出したＶＭイベントを、ジョブ管理マネージャ３２に通知する。ジョブ管理マネージャ３２は、仮想マシン状態通知手段３１１から、ＶＭイベントの通知を受信した場合、通知されたＶＭイベントに基づいて、仮想マシン２０の状態及び／又は状態変化を推定する。そして、ジョブ管理マネージャ３２は、仮想マシン２０の状態及び／又は状態変化に基づいて、制御対象ジョブの実行スケジュールを決定（ジョブスケジューリング）する。ジョブ管理マネージャ３２の詳細については、後述する。
【００４３】
仮想マシン制御手段３１２は、各ゲストＯＳに割り当てる物理リソースを管理する。さらに、仮想マシン制御手段３１２は、ゲストＯＳ１０の仮想リソースに割り当てられた、物理リソースに関する情報を識別する。また、仮想マシン制御手段３１２は、ハイパーバイザ３０上で動作する仮想マシン２０を管理する。
【００４４】
仮想マシン制御手段３１２を実現する場合、仮想マシン２０を制御するための、既存のプログラム（例えば、ｌｉｂｖｉｒｔ  ＡＰＩ（Application Programming Interface））を利用して、仮想マシン制御手段３１２を実現しても良い。
【００４５】
次に、ジョブ管理マネージャ３２について、詳細に説明する。なお、以下の説明において、「行動」とは、ＶＭイベントが発生した場合に、ＶＭイベント毎に必要となる、ジョブ管理マネージャ３２の対応内容（処理内容）を意味する。
【００４６】
ジョブ管理マネージャ３２は、仮想マシンイベント受信手段３２１と、行動決定手段３２２と、仮想マシン関連ジョブ取得手段３２３と、ジョブスケジューラ３２４と、を含んで構成される。
【００４７】
仮想マシンイベント受信手段３２１は、仮想マシン状態通知手段３１１から、ＶＭイベントを受信する。
【００４８】
仮想マシン関連ジョブ取得手段３２３は、仮想マシンイベント受信手段３２１が受信した、ＶＭイベントに対応する仮想マシン２０を特定する。そして、仮想マシン関連ジョブ取得手段３２３は、特定した仮想マシン２０上で実行中のジョブに関する情報と、特定した仮想マシン２０上で実行待ちのジョブに関する情報と、を取得する。
【００４９】
行動決定手段３２２は、予めＶＭイベント毎に定義された行動一覧から、ＶＭイベント発生時に必要な行動を決定する。
【００５０】
ジョブ管理マネージャ３２は、仮想マシン関連ジョブ取得手段３２３が取得したジョブ一覧と、行動決定部３２２が決定した行動とに基づいて、ジョブスケジューラ３２４に、実行制御対象ジョブの再スケジュール要求（スケジュールの更新要求）を行う。
【００５１】
ジョブスケジューラ３２４は、実行契機調停手段３２５と、実行契機通知手段３２６とを含んで構成される。
【００５２】
実行契機調停手段３２５は、複数のジョブの起動、終了を管理する。具体的には、実行契機調停手段３２５は、ジョブの実行開始、終了状態の監視処理を行う。
【００５３】
実行契機通知手段３２６は、実行可能状態のジョブがある場合、ジョブ実行エージェント１２に、当該実行可能状態のジョブに関する情報を送信する。そして、実行契機通知手段３２６は、当該実行可能状態のジョブを実行するように、ジョブ実行エージェント１２に通知する。
【００５４】
次に、本実施形態に係る仮想マシン管理装置１の動作について説明する。以下の説明では、実行制御対象ジョブが、仮想マシン管理装置１全体の状態を把握する処理（例えば、ｐｓコマンド、ｔｏｐコマンド等）である場合を例示して説明する。なお、ｐｓコマンドとは、実行中のプロセスを表示するコマンドを意味する。また、ｔｏｐコマンドとは、プロセスの実行時の負荷に関する情報を取得、及び表示するコマンドを意味する。以下の説明では、実行プロセス、実行時の負荷等に関する情報を、性能情報と呼ぶ。
【００５５】
実行制御対象ジョブが、仮想マシン管理装置１全体の状態を把握する処理である場合、ジョブ管理マネージャ３２は、複数のゲストＯＳ１０上での実行プロセス、実行時の負荷等の取得タイミングを、当該複数のゲストＯＳ１０で同期させることが望まれる。一方では、物理リソースの競合を避けるために、ジョブ管理マネージャ３２は、各ゲストＯＳ１０に関して、順に、取得した性能情報の後処理を実行することが好ましい。ここで、後処理とは、性能情報の統計値の算出処理、ディスク入出力処理等であっても良い。
【００５６】
また、実行制御対象ジョブは、仮想化環境でのリソース競合（メモリ、ＣＰＵ（Central Processing Unit）等の競合）につながる（リソース競合を発生し得る）ジョブであっても良く、実行制御対象ジョブの種類、処理内容等は問わない。
【００５７】
次に、仮想マシン管理装置１の動作について説明する。
【００５８】
まず、図３を参照しながら、ジョブ実行エージェント１２の動作について説明する。
【００５９】
ステップＡ１において、ジョブ実行エージェント１２は、ＶＭイベントが発生したか否かを判断する。
【００６０】
まず、ジョブ実行エージェント１２が、ジョブ管理マネージャ３２から、「実行制御対象ジョブ開始の通知」を受け付けた場合の動作について説明する。
【００６１】
ジョブ実行エージェント１２が、ジョブ管理マネージャ３２から、「実行制御対象ジョブ開始の通知」を受け付けた場合、ジョブ実行エージェント１２は、ジョブ情報管理テーブルで管理されているジョブ情報を、ジョブ管理マネージャ３２から取得する（ステップＡ２）。
【００６２】
次に、ジョブ実行エージェント１２は、取得したジョブ情報に基づいて、実行制御対象ジョブを起動し、実行可能状態となるまで一時中断する（ステップＡ３）。
【００６３】
そして、ジョブ実行エージェント１２は、実行制御対象ジョブが「実行待ち」状態であることをジョブ管理マネージャ３２へ通知する（ステップＡ４）。そして、ステップＡ９に遷移する。
【００６４】
ここで、図４を参照しながら、ジョブ情報管理テーブルについて説明する。
【００６５】
図４は、ジョブ情報管理テーブルの一例を示す図である。具体的には、図４に示すジョブ情報管理テーブルは、ジョブ識別子と、ジョブの内容と、タイプとを対応付けたテーブルである。ここで、ジョブ識別子とは、ジョブを識別するための情報を意味する。また、ジョブの内容とは、ジョブとして実行される処理の内容であり、図４に示すように、実行コマンド（即ち、実行関数名、及び当該実行関数の引数等）であっても良い。また、図４において、タイプとは、ジョブの実行タイミングを示す情報を意味する。なお、図４において、「同期」タイプとは、異なる仮想マシン２０が、「ジョブの内容」に示すジョブの実行タイミングを同期させることを意味する。また、図４において、「順次」タイプとは、異なる仮想マシンが、「ジョブの内容」に示すジョブを実行する場合に、同一の仮想マシン２０が当該ジョブの実行終了後に、他の仮想マシン２０が当該ジョブを実行することを意味する。なお、以下の説明においても、「同期」タイプ、「順次」タイプとは、上記の意味であるものとする。
【００６６】
次に、実行制御対象ジョブが実行終了した場合の動作について説明する。
【００６７】
ジョブ実行エージェント１２は、「実行制御対象ジョブの終了」を検知した場合、ジョブ実行エージェント１２は、実行制御対象ジョブが「実行終了」状態になったことをジョブ管理マネージャ３２へ通知する(ステップＡ５)。そして、ステップＡ９に遷移する。
【００６８】
次に、ジョブ実行エージェント１２が、ジョブ管理マネージャ３２から、「実行制御対象ジョブの実行／終了／中断のいずれかに関する通知」を受け付けた場合について説明する。
【００６９】
ジョブ実行エージェント１２は、ジョブ管理マネージャ３２から「実行制御対象ジョブの実行／終了／中断のいずれかに関する通知」を受け付けた場合、ジョブ情報、及びジョブの実行情報(実行／終了／中断)を取得する(ステップＡ６)。
【００７０】
次に、ジョブ実行エージェント１２は、実行制御対象ジョブを、取得した実行情報の状態に変更する（ステップＡ７）。
【００７１】
そして、ジョブ実行エージェント１２は、変更後のジョブの状態を、ジョブ管理マネージャ３２へ通知する（ステップＡ８）。そして、ステップＡ９に遷移する。
【００７２】
ステップＡ９において、ジョブ実行エージェント１２は、処理を継続するか否かを判断する。
【００７３】
ジョブ実行エージェント１２は、処理を継続する場合（ステップＡ９、Ｙｅｓ分岐）には、ステップＡ１に戻り、各種イベント発生を契機に上記処理を繰り返す。一方、処理を継続しないと判断した場合（ステップＡ９、Ｎｏ分岐）には、ジョブ実行エージェント１２は処理を終了する。
【００７４】
次に、図５を参照しながら、ジョブ管理マネージャ３２の動作について説明する。
【００７５】
ステップＢ１において、イベントが発生した場合、ジョブ管理マネージャ３２はイベントの内容を判断する。
【００７６】
まず、ジョブ管理マネージャ３２が、「ジョブ実行エージェント１２へのジョブの投入要求」を受け付けた場合の動作について説明する。
【００７７】
まず、ジョブ管理マネージャ３２は、ユーザ(ジョブ投入者)から、「ジョブ実行エージェント１２へのジョブの投入要求」を受け付けた場合、ジョブ制御情報管理テーブルへジョブ情報を登録する（ステップＢ２）。具体的には、ジョブ管理マネージャ３２は、「ジョブ実行エージェント１２へのジョブの投入要求」を受け付けた場合、ジョブ情報管理テーブルから、当該ジョブに関するジョブ情報を取得する。そして、ジョブ管理マネージャ３２は、ジョブ制御情報管理テーブルに、取得したジョブ情報を登録する。なお、ジョブ管理マネージャ３２は、ジョブの初期状態を、「実行準備中」として、ジョブ制御情報管理テーブルに、取得したジョブ情報を登録する。
【００７８】
次に、ジョブ管理マネージャ３２は、ジョブ実行エージェント１２に、ジョブ情報を通知する（ステップＢ３）。そして、ステップＢ１４に遷移する。
【００７９】
次に、ジョブ管理マネージャ３２が、「ジョブ実行エージェントから、ジョブの実行待ち／実行／終了／中断の通知」を受け付けた場合の動作について説明する。
【００８０】
ジョブ管理マネージャ３２は、「ジョブ実行エージェントから、ジョブの実行待ち／実行／終了／中断の通知」を受け付けた場合、ジョブ実行エージェント１２からジョブ情報を取得する（ステップＢ４）。
【００８１】
ステップＢ５において、ジョブ管理マネージャ３２は、ジョブ制御情報管理テーブルへジョブ情報を反映する。
【００８２】
ステップＢ６において、ジョブ管理マネージャ３２は、ジョブ制御情報管理テーブルから実行契機の通知が必要なジョブを取得する。具体的には、ジョブ制御情報管理テーブルにおいて、「仮想マシンの状態」が「実行中」であり、かつ「ジョブの状態」が「実行待ち」であるジョブのうち、実行可能なジョブを、ジョブ管理マネージャ３２は選択、取得する。より具体的には、ジョブ管理マネージャ３２は、上記条件を満たすジョブのうち、ジョブの「タイプ」（順次実行／同期実行）に基づいて、ジョブを選択する。
【００８３】
ステップＢ７において、ジョブ管理マネージャ３２は、ジョブを選択した場合、ジョブ制御情報管理テーブルにおける、当該ジョブの状態を更新する。具体的には、ジョブ管理マネージャ３２は、ジョブ制御情報管理テーブルにおける、当該ジョブの状態を、「実行」に更新する。
【００８４】
ステップＢ８において、ジョブ管理マネージャ３２は、ジョブ実行エージェント１２へジョブ情報を通知する。
【００８５】
次に、ジョブ管理マネージャ３２が、「仮想マシン管理手段から、ＶＭイベントの通知」を受け付けた場合について説明する。
【００８６】
ジョブ管理マネージャ３２は、「仮想マシン管理手段から、ＶＭイベントの通知」を受け付けた場合、仮想マシンイベント受信手段３２１が、ＶＭイベント（状態変更前）を取得する（ステップＢ９）。ここで、通知されるＶＭイベントは、「ゲスト名」を識別するための情報、及び「ＶＭイベント」を識別するための情報を含む。
【００８７】
ステップＢ１０において、仮想マシン関連ジョブ取得手段３２３は、ジョブ制御情報管理テーブルから、ＶＭイベントに含まれるゲスト名に対応する、ジョブ識別子の一覧を取得する。当該ジョブ識別子の一覧は、ジョブの再スケジューリング要求対象である、ジョブの一覧に相当する。
【００８８】
ステップＢ１１において、行動決定手段３２２は、仮想マシンの状態が変化した際における行動テーブルから、行動を取得する。具体的には、行動決定手段３２２は、ＶＭイベント発生時の対応を決定し、取得する。より具体的には、ＶＭイベント毎に必要となる「対応」が、仮想マシンの状態が変化した際の行動テーブルに定義されている。そこで、行動決定手段３２２は、当該行動テーブルに基づいて、ＶＭイベントに応じた行動を決定する。
【００８９】
ステップＢ１２において、ジョブ管理マネージャ３２は、ジョブ実行エージェントへジョブ情報を通知する。具体的には、ジョブ管理マネージャ３２は、実行制御対象ジョブに対応するジョブ実行エージェントへ、ジョブ情報を通知する。ここで、ジョブ管理マネージャ３２がジョブ実行エージェント１２へ送る情報は、「ジョブ識別子」、及び行動決定手段３２２が決定した行動に対応する「ジョブの状態」を含む。
【００９０】
ステップＢ１３において、ジョブ管理マネージャ３２は、再スケジューリング要求が完了したことを確認する。ジョブ管理マネージャ３２は、再スケジューリング要求が完了するまで、再スケジューリング要求の完了の確認を繰り返す。例えば、行動決定手段３２２が決定した行動が、「実行制御対象ジョブの完遂」であるとする。その場合、ジョブ管理マネージャ３２は、実行制御対象ジョブの「ジョブの状態」が全て「実行終了」となるまで、再スケジューリング要求の完了の確認を繰り返す。そして、再スケジューリング要求が完了した場合、ステップＢ１４に遷移する。
【００９１】
ステップＢ１４において、ジョブ管理マネージャ３２は、処理を継続するか否かを判断する。処理を継続する場合（ステップＢ１４、Ｙｅｓ分岐）には、ステップＢ１に戻り、処理を継続する。一方、処理を継続しない場合（ステップＢ１４、Ｎｏ分岐）には、ジョブ管理マネージャ３２は処理を終了する。
【００９２】
次に、図６、図７を参照しながら、仮想マシン２０の状態変化時の行動に関するテーブルについて説明する。
【００９３】
図６、図７は、ＶＭイベントと、行動とを対応付けたテーブルである。図６、図７に示す通り、ＶＭイベントは、「実行中」、「サスペンド」、「レジューム」、「一時停止」、「再開」、「ライブマイグレーション」、「停止処理」等を含む。また、図６、図７に示す通り、行動は、「実行制御対象ジョブの中断」、「実行制御対象ジョブの再開」、「実行制御対象ジョブの削除」等を含む。
【００９４】
また、実行制御対象のジョブの性質、状態に応じて、行動は異なる場合がある。そこで、図８に示す通り、行動テーブルは、ＶＭイベントと、ジョブのタイプと、ジョブの実行状態と、行動とを対応付けたテーブルであっても良い。
【００９５】
図８に示す通り、仮想マシン２０がサスペンドする場合、サスペンド処理が実行される前に、仮想マシン２０は、同期実行中のジョブを完遂することが好ましい。また、仮想マシン２０がサスペンドする場合、サスペンド処理終了後に、順次実行待ちのジョブを再登録することが好ましい。そして、同期実行中ではなく、かつ順次実行待ちではないジョブについては、仮想マシン２０がサスペンドする場合、当該ジョブを削除することが好ましい。
【００９６】
次に、図９を参照しながら、仮想マシン管理手段３１の動作について説明する。
【００９７】
ステップＣ１において、仮想マシン状態通知手段３１１は、ジョブ管理マネージャ３２へ、状態変更前のＶＭイベントを通知する。
【００９８】
ステップＣ２において、仮想マシン管理手段３１は、ジョブ管理マネージャ３２から、状態変更前のＶＭイベントに関する返答を取得する。具体的には、仮想マシン管理手段３２は、仮想マシン２０の状態変更を実行するか、保留するかに関する返答を、ジョブ管理マネージャ３２から取得する。
【００９９】
ステップＣ３において、取得した返答に基づいて、仮想マシン２０の状態変更を実行するか、保留するかを、仮想マシン管理手段３１は判断する。
【０１００】
仮想マシン２０の状態変更を保留との返答があった場合（ステップＣ３、「保留」分岐）には、仮想マシン管理手段３１は、仮想マシン２０の操作を一時中断する（ステップＣ４）。そして、ステップＣ１に戻り、処理を継続する。
【０１０１】
例えば、仮想マシン管理手段３１が、所定の時間経過後、ジョブ管理マネージャ３２に、再度、状態変更前のＶＭイベントを通知した場合、仮想マシン管理手段３１は、仮想マシン２０の操作を再開しても良い。または、ジョブ管理マネージャ３２が、所定の時間経過後に、仮想マシン管理手段３１に、操作を再開することを通知した場合、仮想マシン管理手段３１は、仮想マシン２０の操作を再開しても良い。
【０１０２】
一方、仮想マシン２０の状態変更を実行との返答があった場合（ステップＣ３、「実行」分岐）には、ステップＣ５に遷移する。なお、仮想マシン管理手段３１の各種処理をフックする方式の場合、ジョブ管理マネージャ３２からの再スケジューリング要求が完了するまで、仮想マシン管理手段３１は、仮想マシンの操作を中断しても良い。そして、ジョブ管理マネージャ３２からの再スケジューリング要求が完了した場合、仮想マシン管理手段３１は、仮想マシン２０の状態変更を実行すると判断しても良い。
【０１０３】
ステップＣ５において、仮想マシン制御手段３１２は、仮想マシン２０の状態変更を実行する。そして、仮想マシン状態通知手段３１１は、ＶＭイベントをジョブ管理マネージャ３２に通知する（ステップＣ６）。ジョブ管理マネージャ３２に通知する情報は、ゲスト名、及び仮想マシン２０の状態変化時の行動テーブルに定義されている、ＶＭイベントを含む。
【０１０４】
上記の通り、仮想マシン管理手段３１からジョブ管理マネージャ３２へＶＭイベントの通知が行われる契機は、仮想マシン２０の状態変更前と状態変更後の２度ある。なぜなら、仮想マシン２０の状態変更前には、実行制御対象ジョブの再スケジューリングを行う必要がある場合があるため、仮想マシン管理手段３１からジョブ管理マネージャ３２へＶＭイベントの通知が必要である。また、仮想マシン２０の状態変更後においても、ジョブの再スケジューリングを行う必要があるため、仮想マシン管理手段３１からジョブ管理マネージャ３２へＶＭイベントの通知が必要である。
【０１０５】
例えば、仮想マシン２０がサスペンド／レジュームする場合、サスペンドが行われる前に実行制御対象ジョブの再スケジューリングが必要であり、レジュームが行われた後にも、実行制御対象ジョブの再スケジューリングが必要である。
【０１０６】
次に、図１０を参照しながら、ジョブ制御情報管理テーブルの一例について説明する。図１０は、ジョブ制御情報管理テーブルの一例を示す図である。
【０１０７】
図１０に示すジョブ制御情報管理テーブルは、ゲスト名と、ジョブ識別子と、ジョブの状態と、仮想マシンの状態とを対応付けたテーブルである。ゲスト名とは、ゲストＯＳの名称（ゲストＯＳを識別するための情報）である。ジョブ識別子とは、各実行制御対象ジョブを識別するための情報である。ジョブの状態とは、実行制御対象ジョブの実行状態を示す情報である。図１０の場合、ジョブの状態は、「実行中」、「実行待ち」、「実行準備中」、「実行終了」を含む。仮想マシンの状態とは、実行制御対象ジョブを実行する仮想マシンの状態を示す情報である。図１０の場合、仮想マシンの状態は、「実行中」、「サスペンド」を含む。なお、図１０に示すジョブの状態、及び仮想マシンの状態は一例であり、ジョブの状態、及び仮想マシンの状態を図１０に示す状態に限定する趣旨ではない。
【０１０８】
次に、図１１、図１２、図１３を参照して、実行制御対象ジョブの状態遷移について説明する。
【０１０９】
図１１は、行動が「実行制御対象のジョブの完遂」の場合における、実行制御対象ジョブの状態遷移図である。図１１に示す通り、仮想マシン２０は、ジョブ管理マネージャ３２に実行制御ジョブを投入した場合、当該実行制御対象ジョブは、「実行準備中」状態（状態Ｓ１）へ遷移する。そして、ジョブ管理マネージャ３２は、ジョブ実行エージェント１２へ実行制御対象ジョブを投入する。そして、実行制御対象ジョブは、「実行待ち」状態（状態Ｓ２）へ遷移する。
【０１１０】
そして、実行契機通知手段３２６は、ジョブ実行エージェント１２へ実行契機を通知する。そして、実行制御対象ジョブは、「実行」状態（状態Ｓ３）に遷移する。または、ＶＭイベントが発生した場合、実行制御対象ジョブは、「実行」状態（状態Ｓ３）に遷移する。
【０１１１】
そして、ジョブの実行が終了した場合、実行制御対象ジョブは、「終了」状態（状態Ｓ４）に遷移する。そして、ジョブ実行エージェント１２は、実行制御対象ジョブを削除する。
【０１１２】
ここで、行動が「実行制御対象のジョブの完遂」の場合に、対応するＶＭイベントは、短時間で終了するイベントであることが好ましい。または、行動が「実行制御対象のジョブの完遂」の場合に、対応するＶＭイベントは、中断不可能なジョブを実行中である、仮想マシン２０に対する「サスペンド」処理であることが好ましい。
【０１１３】
なぜなら、仮想マシン２０が、レジューム処理によるサスペンド状態から復帰後に、実行制御対処ジョブを継続するか否かは、ハイパーバイザ３０上で動作する、他の仮想マシン２０の状態に依存する。
【０１１４】
また、仮想マシン管理装置１が性能情報を取得する場合、各仮想マシン２０に対応する性能情報を取得するタイミングを、仮想マシン２０間において、性能情報の取得タイミングの同期をとることが好ましい。そのため、仮想マシン管理装置１が性能情報を取得する場合、管理装置２０は、サスペンド処理を実行する前に、実行中の実行制御対象ジョブ、及び実行待ち状態の実行制御対象ジョブを完遂することが好ましい。
【０１１５】
また、仮想マシン２０が実行中のジョブを完了した時、仮想マシン２０の状態変更が保留されている場合、ジョブ管理マネージャ３２は、当該保留されている状態変更の処理を再開するように、仮想マシン管理手段３１に通知しても良い。または、仮想マシン２０が実行中のジョブを完了した時、仮想マシン２０の状態変更が保留されている場合、仮想マシン管理手段３１が状態変更の処理を再開するまで、仮想マシン２０は、状態変更が保留されている状態を継続しても良い。
【０１１６】
次に、行動が「実行制御対象ジョブの中断／再開」の場合における、実行制御対象ジョブの状態遷移について説明する。
【０１１７】
図１２は行動が「実行制御対象のジョブの中断／再開」の場合における、実行制御対象ジョブの状態遷移図である。図１１に示す状態遷移図と、図１２に示す状態遷移図との相違点は、図１２に示す状態遷移図は、中断状態（状態Ｔ５）を含む点である。以下、図１１に示す状態遷移図と、図１２に示す状態遷移図との相違点について説明する。状態Ｔ１〜Ｔ４は、図１１に示す状態Ｓ１〜状態Ｓ４と同一であるため、詳細な説明は省略する。
【０１１８】
実行制御対象ジョブが実行されている状態において（状態Ｔ３）、ジョブの実行を中断する、ＶＭイベントが発生した場合、実行制御対象ジョブは「中断」状態（状態Ｔ５）に遷移する。そして、実行制御対象ジョブが中断されている状態（状態Ｔ５）において、ジョブの実行を再開する、ＶＭイベントが発生した場合、実行制御対象ジョブは「実行」状態（状態Ｔ３）に遷移する。
【０１１９】
そして、ジョブの実行が終了した場合、実行制御対象ジョブは、「終了」状態（状態Ｔ４）に遷移する。そして、ジョブ実行エージェント１２は、実行制御対象ジョブを削除する。
【０１２０】
ここで、行動が「実行制御対象のジョブの中断／再開」の場合に、対応するＶＭイベントは、ジョブを実行していない仮想マシン２０への「一時停止／再開」処理、同一のハイパーバイザ３０上での「サスペンド／レジューム」処理等を含む。
【０１２１】
なぜなら、実行制御対象ジョブが順次実行で良い場合、仮想マシン２０間において、実行タイミングの同期をとる必要はない。例えば、実行制御対象ジョブが順次実行で良い場合に、当該実行制御対象ジョブが一時停止状態であるとする。その場合、当該実行制御対象ジョブの状態が一時停止状態から実行状態に遷移した場合に、仮想マシン２０は、当該実行制御対象ジョブの実行を再開すれば良い。
【０１２２】
例えば、行動決定手段３２２が、「行動」として、「実行制御対象ジョブの再開」を決定したとする。その場合、ジョブ実行エージェント１２は、実行中の実行制御対象ジョブの「ジョブの状態」が「実行」となるように、ジョブスケジューラ３２４に再スケジューリング要求を出す。
【０１２３】
また、例えば、ＶＭイベント「レジューム」が発生した場合、ジョブ管理マネージャ３２は、レジュームしたゲストＯＳ１０に対して、中断中の実行制御対象ジョブを再開するように、再スケジューリング要求を出す。
【０１２４】
次に、行動が「他のハイパーバイザへの移動」の場合における、実行制御対象ジョブの状態遷移について説明する。
【０１２５】
図１３は、行動が「他のハイパーバイザへの移動」の場合における、実行制御対象ジョブの状態遷移図である。図１１に示す状態遷移図と、図１３に示す状態遷移図との相違点は、図１３に示す状態遷移図は、「実行待ち」状態から、「終了状態」への状態遷移を含む点である。以下、図１１に示す状態遷移図と、図１３に示す状態遷移図との相違点について説明する。図１３に示す状態Ｕ１〜Ｕ４は、図１１に示す状態Ｓ１〜状態Ｓ４と同一であるため、詳細な説明は省略する。
【０１２６】
実行制御対象ジョブが「実行待ち」状態（状態Ｕ２）である場合に、「他のハイパーバイザへの移動」を示す、ＶＭイベントが発生した場合、実行制御対象ジョブは「終了」状態（状態Ｕ４）に遷移する。
【０１２７】
具体的には、行動が「他のハイパーバイザへの移動」の場合、対応するＶＭイベントは、「他のハイパーバイザへのサスペンド／レジューム処理」、「他のハイパーバイザへのライブマイグレーション処理」を含む。
【０１２８】
そして、行動決定手段３２２が、行動として、「他のハイパーバイザへの移動」を決定した場合、ＶＭイベントが発生した、ゲストＯＳ１０において実行されている実行制御対象ジョブの「ジョブの状態」が、「終了」となるように、ジョブ管理マネージャ３２は、ジョブスケジューラ３２４へ再スケジューリング要求を出す。そして、ジョブ管理マネージャ３２は、移動先のハイパーバイザにジョブの移動を通知する。
【０１２９】
以上のように、本実施形態に係る仮想マシン管理装置１は、仮想化環境において、仮想マシン２０の状態変化に基づいて、ジョブスケジューラ３２４に対するイベントを決定する。その結果、本実施形態に係る仮想マシン管理装置１は、ゲストＯＳ１０からの応答を監視せずに、仮想化環境の構成変更を、迅速にジョブスケジューリングに反映することに貢献する。さらに、本実施形態に係る仮想マシン管理装置１は、仮想化環境固有の状態変化（ライブマイグレーション、サスペンド／リジューム等）に影響を受けず、仮想化環境の構成変更を、迅速にジョブスケジューリングに反映することに貢献する。
【０１３０】
また、本実施形態に係る仮想マシン管理装置１は、仮想化環境において、構成変更を行う際に、実行制御中のジョブの状態に応じて、仮想化環境の構成変更を行うことに貢献する。なぜなら、本実施形態に係る仮想マシン管理装置１は、実行中のジョブの状態と、仮想マシン２０の状態変化とに基づいて、仮想化環境の構成変更処理を制御するからである。
【０１３１】
上述の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１３２】
（付記１）上記の第１の視点に係る管理装置の通りである。
【０１３３】
（付記２）前記仮想マシンは、当該仮想マシンに対応するイベントを、前記ジョブ管理手段に通知し、前記ジョブ管理手段は、前記仮想マシンから前記イベントの通知を受信する、仮想マシン状態通知手段と、前記仮想マシン状態通知手段が受信した前記イベントに対応する、前記仮想マシンを特定し、当該特定した仮想マシンにおけるジョブの一覧を、当該仮想マシンから取得する、仮想マシン関連ジョブ取得手段と、前記仮想マシンから受信した前記イベントに応じて、当該仮想マシンにおける、ジョブの実行スケジュールを決定する、ジョブスケジューラと、
をさらに備える、付記１に記載の管理装置。
【０１３４】
（付記３）前記仮想マシン状態通知手段は、前記仮想マシンから受信した前記イベントに基づいて、当該仮想マシンの状態、状態変化の少なくともいずれかを推定する、付記２に記載の管理装置。
【０１３５】
（付記４）前記仮想マシンは、当該仮想マシンの状態変化前、状態変化後の少なくともいずれかに、前記イベントを、前記ジョブ管理手段に通知する、付記２又は３に記載の管理装置。
【０１３６】
（付記５）前記ジョブ管理手段は、前記仮想マシンに対応するイベントと、当該イベントの発生時における行動と、を対応付けた行動テーブルと、前記行動テーブルに基づいて、仮想マシン状態通知手段が受信した、前記イベントに対応する行動を決定する、行動決定部と、をさらに備える、付記２乃至４のいずれか一に記載の管理装置。
【０１３７】
（付記６）前記行動テーブルは、前記イベントと、ジョブのタイプと、ジョブの実行状態と、前記行動とを対応付けたテーブルを含む、付記５に記載の管理装置。
【０１３８】
（付記７）前記ジョブ管理手段は、前記仮想マシン関連ジョブ取得手段が取得する、前記ジョブの一覧と、前記行動決定手段が決定した行動とに基づいて、ジョブの実行スケジュールの更新要求を、前記ジョブスケジューラに送信する、付記５又は６に記載の管理装置。
【０１３９】
（付記８）前記仮想マシン状態通知手段が受信する前記イベントは、ライブマイグレーション処理、サスペンド処理、レジューム処理のうち、少なくともいずれか一の処理に関する情報を含む、付記２乃至７のいずれか一に記載の管理装置。
【０１４０】
（付記９）上記第２の視点に係る管理装置の制御方法の通りである。
【０１４１】
（付記１０）上記第３の視点に係るプログラムの通りである。
【０１４２】
なお、上記の付記９、１０に示す形態は、付記１に示す形態と同様に、付記２乃至８に示す形態に展開することが可能である。
【０１４３】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１４４】
１  仮想マシン管理装置
１０、１０ａ〜１０ｃ、１０１０ａ、１０１０ｂ  ゲストＯＳ
１１、１１ａ〜１１ｆ、１０１１ａ〜１０１１ｄ  ジョブ
１２、１２ａ〜１２ｃ  ジョブ実行エージェント
２０、２０ａ〜２０ｃ、１０２０ａ、１０２０ｂ  仮想マシン
３０  ハイパーバイザ
３１  仮想マシン管理手段
３２  ジョブ管理マネージャ
４０  ハードウェア
３１１  仮想マシン状態通知手段
３１２  仮想マシン制御手段
３２１  仮想マシンイベント受信手段
３２２  行動決定手段
３２３  仮想マシン関連ジョブ取得手段
３２４  ジョブスケジューラ
３２５  実行契機調整手段
３２６  実行契機通知手段
１０００  管理装置
１０３０  ジョブ管理手段
Ｓ１、Ｔ１、Ｕ１  「実行準備中」状態
Ｓ２、Ｔ２、Ｕ２  「実行待ち」状態
Ｓ３、Ｔ３、Ｕ３  「実行」状態
Ｓ４、Ｔ４、Ｕ４  「終了」状態
Ｔ５  「中断」状態
【図１】
0006547363.tif 000002
【図２】
0006547363.tif 000003
【図３】
0006547363.tif 000004
【図４】
0006547363.tif 000005
【図５】
0006547363.tif 000006
【図６】
0006547363.tif 000007
【図７】
0006547363.tif 000008
【図８】
0006547363.tif 000009
【図９】
0006547363.tif 000010
【図１０】
0006547363.tif 000011
【図１１】
0006547363.tif 000012
【図１２】
0006547363.tif 000013
【図１３】
0006547363.tif 000014