(57)【特許請求の範囲】
【請求項１】
仮想マシンの仮想ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の制御機能を備えるハイパーバイザが動作するＣＰＵサーバ装置と、
システム全体の制御を行うスーパーハイパーバイザが動作する仮想マシンサーバ装置とを有し、
前記スーパーハイパーバイザに、
前記ＣＰＵサーバ装置を前記仮想マシンの仮想ＣＰＵとしかつストレージ・ネットワークを前記仮想マシンの仮想メモリ及び仮想ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）として複数の仮想マシンを稼動させる手段と、
前記ＣＰＵサーバ装置各々の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とを前記ハイパーバイザ各々から取得する手段と、
前記ＣＰＵサーバ装置の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とに応じて、トランザクションとして分割された前記仮想ＣＰＵの処理をそれぞれ前記ハイパーバイザに割り振る手段と
を備え、
前記ハイパーバイザに、
前記ＣＰＵサーバ装置各々の情報と前記所定時間毎の仮想ＣＰＵ及びメモリの負荷状況とを専用ネットワークを介して前記スーパーハイパーバイザに通知する手段と、
前記スーパーハイパーバイザから割り振られる前記仮想ＣＰＵの処理を前記ＣＰＵサーバ装置上で処理する手段と
を備えることを特徴とする仮想マシンシステム。
【請求項２】
前記ハイパーバイザは、前記ＣＰＵサーバ装置の情報を有し、
前記スーパーハイパーバイザは、前記ＣＰＵサーバ装置を増やす場合に、前記システムに前記ＣＰＵサーバ装置の情報を追加し、前記ＣＰＵサーバ装置を減らす場合に、前記システムから前記ＣＰＵサーバ装置の情報を切り離すことを特徴とする請求項１記載の仮想マシンシステム。
【請求項３】
前記スーパーハイパーバイザは、前記ＣＰＵサーバ装置より障害が報告された場合に、当該ＣＰＵサーバ装置で実行中の前記仮想ＣＰＵの処理を中断し、実行中だった当該仮想ＣＰＵの処理を他のＣＰＵサーバ装置で処理するよう前記ハイパーバイザに依頼することを特徴とする請求項１または請求項２記載の仮想マシンシステム。
【請求項４】
前記スーパーハイパーバイザは、前記実行中だった仮想ＣＰＵの処理を前記ハイパーバイザに依頼した後に前記障害が報告されたＣＰＵサーバ装置の情報を前記システムから切り離すことを特徴とする請求項３記載の仮想マシンシステム。
【請求項５】
仮想マシンの仮想ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の制御機能を備えるハイパーバイザが動作するＣＰＵサーバ装置と、
システム全体の制御を行うスーパーハイパーバイザが動作する仮想マシンサーバ装置とを含む仮想マシンシステムに用いる仮想マシン分散方法であって、
前記スーパーハイパーバイザが、
前記ＣＰＵサーバ装置を前記仮想マシンの仮想ＣＰＵとしかつストレージ・ネットワークを前記仮想マシンの仮想メモリ及び仮想ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）として複数の仮想マシンを稼動させる処理と、
前記ＣＰＵサーバ装置各々の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とを前記ハイパーバイザ各々から取得する処理と、
前記ＣＰＵサーバ装置の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とに応じて、トランザクションとして分割された前記仮想ＣＰＵの処理をそれぞれ前記ハイパーバイザに割り振る処理とを実行し、
前記ハイパーバイザが、
前記ＣＰＵサーバ装置各々の情報と前記所定時間毎の仮想ＣＰＵ及びメモリの負荷状況とを専用ネットワークを介して前記スーパーハイパーバイザに通知する処理と、
前記スーパーハイパーバイザから割り振られる前記仮想ＣＰＵの処理を前記ＣＰＵサーバ装置上で処理する処理とを実行することを特徴とする仮想マシン分散方法。
【請求項６】
前記ハイパーバイザが、前記ＣＰＵサーバ装置の情報を有し、
前記スーパーハイパーバイザが、前記ＣＰＵサーバ装置を増やす場合に、前記システムに前記ＣＰＵサーバ装置の情報を追加し、前記ＣＰＵサーバ装置を減らす場合に、前記システムから前記ＣＰＵサーバ装置の情報を切り離すことを特徴とする請求項５記載の仮想マシン分散方法。
【請求項７】
前記スーパーハイパーバイザが、前記ＣＰＵサーバ装置より障害が報告された場合に、当該ＣＰＵサーバ装置で実行中の前記仮想ＣＰＵの処理を中断し、実行中だった当該仮想ＣＰＵの処理を他のＣＰＵサーバ装置で処理するよう前記ハイパーバイザに依頼することを特徴とする請求項５または請求項６記載の仮想マシン分散方法。
【請求項８】
前記スーパーハイパーバイザが、前記実行中だった仮想ＣＰＵの処理を前記ハイパーバイザに依頼した後に前記障害が報告されたＣＰＵサーバ装置の情報を前記システムから切り離すことを特徴とする請求項７記載の仮想マシン分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシンシステム及びそれに用いる仮想マシン分散方法に関し、特に仮想マシンの処理を複数のサーバに分散して負荷を軽減する仮想マシンシステムに関する。
【背景技術】
【０００２】
本発明に関連する仮想マシンにおいては、１つのサーバ上にハイパーバイザが動作し、ハイパーバイザが提供する仮想ＣＰＵ（中央処理装置）、仮想メモリ、仮想デバイス上で複数の仮想マシンを動作させることができる。
【０００３】
ここで、ハイパーバイザとは、仮想化されたＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とハードウェアとの間に存在するレイヤであり、ＯＳとハードウェアとの間でアクセスを調停する手段として働いている。また、ハイパーバイザは、仮想マシンモニタ（ＶＭＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）とも呼ばれる。
【０００４】
上記の仮想マシンシステムとしては、複数の仮想マシンを複数のサーバで効率良く稼働させることができる仮想マシン管理装置等を提供する技術（例えば、特許文献１参照）が提案されている。
【０００５】
また、他の仮想マシンシステムとしては、配置対象となる仮想マシンにおける性能データに基づいて仮想マシンを再配置する技術（例えば、特許文献２参照）が提案されている。
【０００６】
さらに、別の仮想マシンシステムとしては、仮想計算機システムの各ＬＰＡＲ（Ｌｏｇｉｃａｌ  ＰＡＲｔｉｔｉｏｎ：論理区画）上のＯＳの負荷と、各ＯＳで動作するワークロードの知識に基づく設定情報を基に、各ＬＰＡＲに対する計算機資源の割り当てを自動的かつ最適に行う技術（例えば、特許文献３参照）が提案されている。
【０００７】
【特許文献１】特開２００５−１１５６５３号公報
【特許文献２】特願２００６−３１７１７５号公報
【特許文献３】特表２００７−２００３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した本発明に関連する仮想マシンシステムでは、上記の特許文献１〜３に記載されているように、仮想マシンを再配置する方法では、仮想マシン全体を移動させることになり、効率が悪くなるという問題がある。
【０００９】
そこで、本発明の目的は上記の問題点を解消し、１つの仮想マシンの処理を複数のサーバで分散させることができ、システム全体の負荷を平均化することができる仮想マシンシステム及びそれに用いる仮想マシン分散方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明による仮想マシンシステムは、仮想マシンの仮想ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の制御機能を備えるハイパーバイザが動作するＣＰＵサーバ装置と、
システム全体の制御を行うスーパーハイパーバイザが動作する仮想マシンサーバ装置とを備え、
前記スーパーハイパーバイザに、
前記ＣＰＵサーバ装置を前記仮想マシンの仮想ＣＰＵとしかつストレージ・ネットワークを前記仮想マシンの仮想メモリ及び仮想ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）として複数の仮想マシンを稼動させる手段と、
前記ＣＰＵサーバ装置各々の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とを前記ハイパーバイザ各々から取得する手段と、
前記ＣＰＵサーバ装置の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とに応じて、トランザクションとして分割された前記仮想ＣＰＵの処理をそれぞれ前記ハイパーバイザに割り振る手段と
を備え、
前記ハイパーバイザに、
前記ＣＰＵサーバ装置各々の情報と前記所定時間毎の仮想ＣＰＵ及びメモリの負荷状況とを専用ネットワークを介して前記スーパーハイパーバイザに通知する手段と、
前記スーパーハイパーバイザから割り振られる前記仮想ＣＰＵの処理を前記ＣＰＵサーバ装置上で処理する手段と
を備えている。
【００１２】
本発明による仮想マシン分散方法は、仮想マシンの仮想ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の制御機能を備えるハイパーバイザが動作するＣＰＵサーバ装置と、
システム全体の制御を行うスーパーハイパーバイザが動作する仮想マシンサーバ装置とを含む仮想マシンシステムに用いる仮想マシン分散方法であって、
前記スーパーハイパーバイザが、
前記ＣＰＵサーバ装置を前記仮想マシンの仮想ＣＰＵとしかつストレージ・ネットワークを前記仮想マシンの仮想メモリ及び仮想ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）として複数の仮想マシンを稼動させる処理と、
前記ＣＰＵサーバ装置各々の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とを前記ハイパーバイザ各々から取得する処理と、
前記ＣＰＵサーバ装置の情報と所定時間毎の前記仮想ＣＰＵ及びメモリの負荷状況とに応じて、トランザクションとして分割された前記仮想ＣＰＵの処理をそれぞれ前記ハイパーバイザに割り振る処理とを実行し、
前記ハイパーバイザが、
前記ＣＰＵサーバ装置各々の情報と前記所定時間毎の仮想ＣＰＵ及びメモリの負荷状況とを専用ネットワークを介して前記スーパーハイパーバイザに通知する処理と、
前記スーパーハイパーバイザから割り振られる前記仮想ＣＰＵの処理を前記ＣＰＵサーバ装置上で処理する処理とを実行している。
【発明の効果】
【００１４】
本発明は、上記のような構成及び動作とすることで、１つの仮想マシンの処理を複数のサーバで分散させることができ、システム全体の負荷を平均化することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施の形態について図面を参照して説明する。図１は本発明の第１の実施の形態による仮想マシンサーバの構成例を示すブロック図である。図１に示す仮想マシンサーバ１は、上記の請求項１に対応する装置であり、複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）サーバ（図示せず）及びストレージ・ネットワーク（図示せず）に、専用のネットワーク（図示せず）を介して接続されている。
【００１６】
また、仮想マシンサーバ１は、自装置上で動作しかつ仮想マシンシステム全体の制御を行うスーパーハイパーバイザ１１を搭載している。スーパーハイパーバイザ１１は、仮想マシン稼働部１１１と、ＣＰＵサーバ負荷状況取得部１１２と、仮想ＣＰＵ処理割り振り部１１３とを備えている。
【００１７】
仮想マシン稼働部１１１は、ＣＰＵサーバを仮想マシンの仮想ＣＰＵとして、ストレージ・ネットワークを仮想マシンの仮想メモリや仮想ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）として、それぞれ複数の仮想マシンを稼動させる。ＣＰＵサーバ負荷状況取得部１１２は、各ＣＰＵサーバの負荷状況を各ＣＰＵサーバ上で稼動するハイパーバイザ（図示せず）から取得する。
【００１８】
仮想ＣＰＵ処理割り振り部１１３は、ＣＰＵサーバ負荷状況取得部１１２で取得したＣＰＵサーバの負荷状況と仮想マシンの仮想ＣＰＵの負荷状況とに応じて、各仮想マシンの仮想ＣＰＵの処理を各ハイパーバイザに割り振る。
【００１９】
図２は本発明の第１の実施の形態によるＣＰＵサーバの構成例を示すブロック図である。図２に示すＣＰＵサーバ２は、図１に示す仮想マシンサーバ１に接続されて仮想マシンシステムを構成しており、自装置上で動作するハイパーバイザ２１を搭載している。ハイパーバイザ２１は、負荷状況通知部２１１と、処理部２１２とを備えている。
【００２０】
ここで、ハイパーバイザとは、仮想化されたＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とハードウェアとの間に存在するレイヤであり、ＯＳとハードウェアとの間でアクセスを調停する手段として働いている。また、ハイパーバイザは、仮想マシンモニタ（ＶＭＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）とも呼ばれる。
【００２１】
負荷状況通知部２１１は、ＣＰＵサーバ２の情報と所定時間毎の仮想ＣＰＵやメモリの負荷状況とを専用のネットワーク（図示せず）を介して仮想マシンサーバ１上のスーパーハイパーバイザ１１に通知する。処理部２１２は、スーパーハイパーバイザ１１から割り振られる仮想ＣＰＵの処理をＣＰＵサーバ２上で処理する。
【００２２】
図３は図１に示す仮想マシンサーバ１の動作を示すフローチャートであり、図４は図２に示すＣＰＵサーバ２の動作を示すフローチャートである。これら図１〜図４を参照して本発明の第１の実施の形態による仮想マシンシステムの動作について説明する。ここで、本発明の第１の実施の形態による仮想マシンシステムは、図１に示す仮想マシンサーバ１と図２に示すＣＰＵサーバ２とを含んで構成されている。
【００２３】
仮想マシンサーバ１上のスーパーハイパーバイザ１１は、仮想マシン稼働部１１１によって、ＣＰＵサーバ情報を基に仮想ＣＰＵを作成し（図３ステップＳ１）、仮想マシン情報を基にストレージ・ネットワークに仮想メモリを作成し（図３ステップＳ２）、ストレージ・ネットワーク上の仮想ＨＤＤよりＯＳを起動する（図３ステップＳ３）。
【００２４】
スーパーハイパーバイザ１１は、ＣＰＵサーバ負荷状況取得部１１２によって、ハイパーバイザ２１よりＣＰＵサーバ２の負荷情報（ＣＰＵサーバ２の情報と所定時間毎の仮想ＣＰＵやメモリの負荷状況）を取得する（図３ステップＳ４）。
【００２５】
さらに、スーパーハイパーバイザ１１は、仮想ＣＰＵ処理割り振り部１１３によって、各仮想マシンの仮想ＣＰＵ毎に処理をトランザクション（不可分の処理）として分割し、各ハイパーバイザに送信する（図３ステップＳ５）。スーパーハイパーバイザ１１は、上記の処理を、処理すべきトランザクションが存在しなくなるまで（図３ステップＳ６）、繰り返し実行する。尚、本実施の形態では、分割した処理（仮想ＣＰＵ毎の処理）の結果を収集して元の処理の結果とするため、トランザクションとして分割している。
【００２６】
ＣＰＵサーバ２上のハイパーバイザ２１は、仮想マシンサーバ１からＣＰＵサーバ２の負荷情報取得要求を受信すると（図４ステップＳ１１）、負荷状況通知部２１１によって、ＣＰＵサーバ２の負荷情報をスーパーハイパーバイザ１１に送信する（図４ステップＳ１２）。
【００２７】
この後に、ハイパーバイザ２１は、仮想マシンサーバ１からトランザクションを受信すると（図４ステップＳ１３）、処理部２１２によって、ハイパーバイザ２１上でトランザクションを処理する（図４ステップＳ１４）。
【００２８】
ハイパーバイザ２１は、処理部２１２の処理結果をスーパーハイパーバイザ１１に送信する（図４ステップＳ１５）。ハイパーバイザ２１は、上記の処理を、処理すべきトランザクションが存在しなくなるまで（図４ステップＳ１６）、繰り返し実行する。
【００２９】
図５は本発明の第２の実施の形態による仮想マシンシステムの構成例を示すブロック図である。図５において、本発明の第２の実施の形態による仮想マシンシステムは、上記の請求項５に対応するシステムであり、仮想マシンサーバ１ａと、ＣＰＵサーバ２ａ−１〜２ａ−ｎと、ストレージ・ネットワーク３と、クライアント端末４とを備えている。
【００３０】
本発明の第２の実施の形態による仮想マシンシステムは、仮想マシンサーバ１ａ上のスーパーハイパーバイザ１１が仮想マシンの仮想ＣＰＵを複数のＣＰＵサーバ２ａ−１〜２ａ−ｎ上のハイパーバイザ２１−１〜２１−ｎに分散して処理するシステムであり、全体で１つの仮想マシンを構築する。
【００３１】
仮想マシンサーバ１ａ、ＣＰＵサーバ２ａ−１〜２ａ−ｎ、ストレージ・ネットワーク３は、それぞれファイバチャネルの専用ネットワーク１００に接続されている。また、クライアント端末４は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の汎用ネットワーク２００を介して仮想マシンサーバ１ａに接続されている。
【００３２】
図６は図５に示すクライアント端末４の構成例を示すブロック図である。図６に示すクライアント端末４は、ユーザによって操作される端末であり、プロセッサ４１、ＲＡＭ（ランダムアクセスメモリ）４２、ディスプレイ４３、入力デバイス４４、ネットワークコントローラ４５等を備えるコンピュータから構成されており、仮想マシンサーバ１ａに接続し、仮想マシンシステムの設定、状態の確認、管理を行う。
【００３３】
図７は図５に示す仮想マシンサーバ１ａの構成例を示すブロック図である。図７に示す仮想マシンサーバ１ａは、少なくとも１つのプロセッサ１２、ＲＡＭ１３、システム管理機能を提供するサービスコントローラ１４、ファイバチャネルアダプタ１５、ネットワークコントローラ１６、ＨＤＤ１７、汎用デバイス１８等を備えるコンピュータから構成されている。また、仮想マシンサーバ１ａ上では、上述した本発明の第１の実施の形態と同様に、スーパーハイパーバイザ１１が動作している。
【００３４】
図８は図５に示すＣＰＵサーバ２ａ−１〜２ａ−ｎの構成例を示すブロック図である。図８に示すＣＰＵサーバ２ａ（ＣＰＵサーバ２ａ−１〜２ａ−ｎ）は、少なくとも１つのプロセッサ２２、ＲＡＭ２３、システム管理機能を提供するサービスコントローラ２４、ファイバチャネルアダプタ２５を備えるコンピュータから構成されている。また、ＣＰＵサーバ２ａ（ＣＰＵサーバ２ａ−１〜２ａ−ｎ）上では、上述した本発明の第１の実施の形態と同様に、ＣＰＵサーバ２ａの情報を取得したり、ＣＰＵサーバ２ａのリソースを管理したりするハイパーバイザ２１（ハイパーバイザ２１−１〜２１−ｎ）が動作している。
【００３５】
ストレージ・ネットワーク３は、ＦＣ−ＳＡＮ［Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ−ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）］、ｉＳＣＳＩ−ＳＡＮ（ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ−ＳＡＮ）、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）等で構築され、仮想マシンで利用されるＯＳやデータと、仮想マシンで利用される仮想メモリとをファイルとして保存しておくストレージである。
【００３６】
スーパーハイパーバイザ１１は、仮想マシンサーバ１ａ上で動作し、仮想マシンシステム全体の制御を行うプログラムである。また、スーパーハイパーバイザ１１は、図１に示す各部と、仮想マシンシステムの設定を行うためのユーザインタフェースと、１つ以上の仮想マシンの作成と制御機能と、ＣＰＵサーバ２ａの障害情報をそのサービスコントローラ２４から定期的に取得し、ＣＰＵサーバ２ａの状態を監視する機能とを備え、ＣＰＵサーバ情報と仮想マシン情報とを有している。
【００３７】
ハイパーバイザ２１は、ＣＰＵサーバ２ａ上で動作し、図２に示す各部と、仮想マシンの仮想ＣＰＵの制御機能とを備え、ＣＰＵサーバ情報を有している。
【００３８】
図９は本発明の第２の実施の形態で用いるＣＰＵサーバ情報の構成を示す図である。図９において、ＣＰＵサーバ情報１０１は、サーバＩＤ（ＩＤｅｎｔｉｆｉｅｒ）、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、プロセッサ数、メモリ容量、プロセッサ使用率、メモリ使用量等から構成されている。
【００３９】
ＣＰＵサーバ情報１０１は、仮想マシンサーバ１ａが管理するＣＰＵサーバ２ａ毎に、ＣＰＵサーバ２ａを管理するためのＩＰアドレス等の情報と、ＣＰＵサーバ２ａのプロセッサやランダムアクセスメモリ等のリソース情報と、ＣＰＵサーバ２ａの負荷状態を把握するための情報等のデータが含まれている。ＣＰＵサーバ情報１０１は、仮想マシンシステムに利用するＣＰＵサーバ２ａの情報をユーザがスーパーハイパーバイザ１１に登録することで作成される。
【００４０】
図１０は本発明の第２の実施の形態で用いる仮想マシン情報の構成を示す図である。図１０において、仮想マシン情報１０２は、仮想マシンＩＤ、仮想マシンサーバ名、ＯＳ名、ＩＰアドレス、プロセッサ数、メモリ容量、メモリファイルの保存先のＩＰアドレス、メモリファイルの保存先のファイルパス、ハードディスク容量、データファイルの保存先のＩＰアドレス、データファイルの保存先のファイルパス、仮想マシンの負荷情報等から構成されている。
【００４１】
仮想マシン情報１０２は、仮想マシンサーバ１ａ上で稼動させる仮想マシン毎に、仮想マシンＩＤ、仮想マシンサーバ名、ＯＳ名、ＩＰアドレス、プロセッサ数、メモリ容量、ハードディスク容量、当該仮想マシンの負荷情報等のデータが含まれている。仮想マシン情報１０２は、ユーザが構築したい仮想マシンの環境をスーパーハイパーバイザ１１に登録することで作成される。
【００４２】
図１１は本発明の第２の実施の形態で用いるトランザクション情報の構成を示す図である。図１１において、トランザクション情報１０３は、トランザクションＩＤ、仮想マシンＩＤ、仮想マシンのプロセッサの内容、メモリファイルの保存先のＩＰアドレス、メモリファイルの保存先のファイルパス、データファイルの保存先のＩＰアドレス、データファイルの保存先のファイルパス等から構成されている。
【００４３】
図１２は本発明の第２の実施の形態で用いるトランザクション管理表の構成を示す図である。図１２において、トランザクション管理表１０４は、トランザクションＩＤ、サーバＩＤ、仮想マシンＩＤ、トランザクションの状態等から構成されている。
【００４４】
図１３は本発明の第２の実施の形態による仮想マシンシステムの全体の概略を示す図であり、図１４は本発明の第２の実施の形態による仮想マシンシステムにおける仮想マシンの処理の流れを示すシーケンスチャートである。これら図５〜図１４を参照して本発明の第２の実施の形態による仮想マシンシステムにおける仮想マシンの処理の流れについて説明する。
【００４５】
スーパーハイパーバイザ１１は、仮想マシン情報１０２を基に仮想マシンを仮想マシンサーバ１ａ上に作成し、ＣＰＵサーバ２Ａ〜２Ｃ上に仮想ＣＰＵＡ１〜Ａ４，Ｂ１，Ｂ２，Ｃ１〜Ｃ４，Ｄ１，Ｄ２を作成し、必要な容量の仮想メモリ（仮想マシンＡ〜Ｄの仮想メモリ）をストレージ・ネットワーク３上に作成する（図１４のａ１，ａ２）。仮想マシンＡ〜ＤのＯＳは、ストレージ・ネットワーク３上の仮想ＨＤＤ（仮想マシンＡ〜Ｄの仮想ＨＤＤ）から起動する（図１４のａ３）。
【００４６】
スーパーハイパーバイザ１１は、専用ネットワーク１００を介して、各ハイパーバイザ２１Ａ〜２１ＣよりＣＰＵサーバ２Ａ〜２Ｃのプロセッサの負荷やメモリの使用容量と、仮想ＣＰＵでの負荷を定期的に取得し、ＣＰＵサーバ情報１０１及び仮想マシン情報１０２に反映する（図１４のａ４〜ａ７）。
【００４７】
スーパーハイパーバイザ１１は、各仮想マシンＡ〜Ｄの仮想ＣＰＵ毎に処理をトランザクションとして分割し、各トランザクションの処理に必要なトランザクション情報１０３をハイパーバイザ２１Ａ〜２１Ｃに送信する（図１４のａ８）。
【００４８】
この時、スーパーハイパーバイザ１１は、ＣＰＵサーバ情報１０１より負荷の少ないＣＰＵサーバ２Ａ〜２Ｃ上のハイパーバイザ２１Ａ〜２１Ｃにトランザクションを送信することができる。
【００４９】
また、スーパーハイパーバイザ１１は、各仮想マシンＡ〜Ｄのトランザクションを制御するために、仮想マシンＡ〜Ｄ毎にトランザクション管理表１０４を保持し、仮想マシンＡ〜Ｄの動作を制御している。
【００５０】
ハイパーバイザ２１Ａ〜２１Ｃはスーパーハイパーバイザ１１から送られてくるトランザクション情報１０３を基に仮想ＣＰＵＡ１〜Ａ４，Ｂ１，Ｂ２，Ｃ１〜Ｃ４，Ｄ１，Ｄ２を作成し、ストレージ・ネットワーク３の仮想メモリとデータをやり取りしながら、ＣＰＵサーバ２Ａ〜２Ｃのプロセッサで演算を行い、その結果をスーパーハイパーバイザ１１に送り返す（図１４のａ９〜ａ１１）。
【００５１】
また、スーパーハイパーバイザ１１は、仮想マシンＡ〜Ｄの負荷に応じてトランザクションをＣＰＵサーバ２Ａ〜２Ｃのプロセッサの処理に割り当てる時間を変更することができる。
【００５２】
本実施の形態では、スーパーハイパーバイザ１１とハイパーバイザ２１Ａ〜２１Ｃでトランザクションの処理を繰り返すことで、仮想マシンＡ〜Ｄを動作させることができる。
【００５３】
このように、本実施の形態では、仮想マシンＡ〜Ｄの処理をトランザクションに分割し、複数のＣＰＵサーバ２Ａ〜２Ｃで処理することで、仮想マシンＡ〜Ｄ毎の負荷を分散することができる。
【００５４】
本発明の第３の実施の形態は、その基本的構成が上記の図５〜図８に示す本発明の第２の実施の形態と同様であるが、ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃの動的な増減に対応可能としている点で、本発明の第２の実施の形態と異なっている。
【００５５】
図１５は本発明の第３の実施の形態による仮想マシンサーバ１ａの動作を示すフローチャートである。この図１５を参照して本発明の第３の実施の形態による仮想マシンサーバ１ａの動作について説明する。尚、図１５のステップＳ２４〜Ｓ２９の処理は図３に示す本発明の第１の実施の形態におけるステップＳ１〜Ｓ６の処理と同様であるので、その説明を省略する。
【００５６】
仮想マシンサーバ１ａ上のスーパーハイパーバイザ１１は、ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃを増やす場合（図１５ステップＳ２１）、仮想マシンシステムに増設したＣＰＵサーバ情報を追加する（図１５ステップＳ２２）。この後、スーパーハイパーバイザ１１は、ステップＳ２４〜Ｓ２９の処理を実行する。
【００５７】
また、スーパーハイパーバイザ１１は、ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃを減らす場合（図１５ステップＳ２１）、仮想マシンシステムから当該ＣＰＵサーバ情報１０１を切り離す（図１５ステップＳ２３）。この後、スーパーハイパーバイザ１１は、ステップＳ２４〜Ｓ２９の処理を実行する。
【００５８】
上記のように、本実施の形態では、ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃを動的に増設する場合、スーパーハイパーバイザ１１に増設したＣＰＵサーバ情報１０１を追加することで、当該ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃ上のハイパーバイザ２１，２１−１〜２１−ｎ，２１Ａ〜２１Ｃに仮想マシン情報１０２を送信し、ハイパーバイザ２１，２１−１〜２１−ｎ，２１Ａ〜２１Ｃが仮想マシンＡ〜Ｄのトランザクションを処理できるように初期化を行う。
【００５９】
その後、ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃ上のハイパーバイザ２１，２１−１〜２１−ｎ，２１Ａ〜２１Ｃは、スーパーハイパーバイザ１１から送られてくるトランザクションを処理する。
【００６０】
また、本実施の形態では、ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃを動的に減らす場合、当該ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃで動作中のトランザクションが終了した後、仮想マシンシステムから当該ＣＰＵサーバ情報１０１を切り離し、当該ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃのハイパーバイザ２１，２１−１〜２１−ｎ，２１Ａ〜２１Ｃにはトランザクションを送信しない。
【００６１】
このように、本実施の形態では、動的にＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃの増減を行うことができるため、仮想マシンＡ〜Ｄでのサービスを停止する必要がなくなる。
【００６２】
本発明の第４の実施の形態は、その基本的構成が上記の図５〜図８に示す本発明の第２の実施の形態と同様であるが、ＣＰＵサーバ２ａ，２ａ−１〜２ａ−ｎ，２Ａ〜２Ｃに障害が発生した場合に対応可能としている点で、本発明の第２の実施の形態と異なっている。
【００６３】
図１６は本発明の第４の実施の形態による仮想マシンサーバ１ａの動作を示すフローチャートである。この図１６を参照して本発明の第４の実施の形態による仮想マシンサーバ１ａの動作について説明する。尚、図１６のステップＳ３１〜Ｓ３５，Ｓ４０の処理は図３に示す本発明の第１の実施の形態におけるステップＳ１〜Ｓ６の処理と同様であるので、その説明を省略する。
【００６４】
仮想マシンサーバ１ａ上のスーパーハイパーバイザ１１は、ＣＰＵサーバ２ａのサービスコントローラ２４より障害が報告された場合（図１６ステップＳ３６）、当該ＣＰＵサーバ２ａで実行中のトランザクションを中断する（図１６ステップＳ３７）。スーパーハイパーバイザ１１は、実行中だった当該トランザクションを他のＣＰＵサーバで処理するようハイパーバイザ２１に依頼した後（図１６ステップＳ３８）、仮想マシンシステムから当該ＣＰＵサーバの情報を切り離し（図１６ステップＳ３９）、当該ＣＰＵサーバ２ａ以外で処理を続ける。
【００６５】
このように、本実施の形態では、ＣＰＵサーバ２ａに障害が発生した場合でも、動的にＣＰＵサーバ２ａの増減を行うことができるため、仮想マシンＡ〜Ｄでのサービスを停止する必要がなくなるという効果が得られる。
【００６６】
上記のように、本発明は、１つ以上のＣＰＵサーバ２Ａ〜２Ｃと、１つの仮想マシンサーバ１ａと、ストレージ・ネットワーク３とで構成され、該ＣＰＵサーバ２Ａ〜２Ｃが少なくとも１つのプロセッサ２２、ＲＡＭ２３、サービスコントローラ２４、ファイバチャネルアダプタ２５を備え、該仮想マシンサーバ１ａが少なくとも１つのプロセッサ１２、ＲＡＭ１３、サービスコントローラ１４、ファイバチャネルアダプタ１５、ネットワークコントローラ１６、汎用デバイス１７等を備え、仮想マシンＡ〜Ｄで利用されるデータを保存しておく該ストレージ・ネットワーク３を備えることを特徴とする。
【００６７】
また、本発明は、該仮想マシンサーバ１ａ、該ＣＰＵサーバ２Ａ〜２Ｃ、該ストレージ・ネットワーク３がファイバチャネルの専用ネットワーク１００に接続されており、該ストレージ・ネットワーク３が仮想マシンＡ〜Ｄの仮想ＨＤＤや仮想メモリのデータを保持しており、該ＣＰＵサーバ２Ａ〜２Ｃや該仮想マシンサーバ１からアクセスされ、仮想マシンＡ〜Ｄ内で共有されていることを特徴とする。
【００６８】
該ＣＰＵサーバ２Ａ〜２Ｃ上では、仮想マシンＡ〜Ｄの処理を行うハイパーバイザ２１Ａ〜２１Ｃが動作しており、該ハイパーバイザ２１Ａ〜２１Ｃが仮想マシンＡ〜Ｄの仮想ＣＰＵＡ１〜Ａ４，Ｂ１，Ｂ２，Ｃ１〜Ｃ４，Ｄ１，Ｄ２の役割を果たす機能を有し、該仮想マシンサーバ１ａ上では仮想マシンＡ〜Ｄを管理するスーパーハイパーバイザ１１が動作しており、該スーパーハイパーバイザ１１が該ハイパーバイザ２１Ａ〜２１Ｃや該ストレージ・ネットワーク３と通信し、１つの仮想マシンを構築して制御する機能を備えている。
【００６９】
本発明では、このような構成を採用し、該ハイパーバイザ２１Ａ〜２１Ｃが動作している該ＣＰＵサーバ２Ａ〜２Ｃのプロセッサ２２やＲＡＭ２３の利用状況を調べ、該スーパーハイパーバイザ１１に報告し、該スーパーハイパーバイザ１１が該ハイパーバイザ２１Ａ〜２１Ｃから報告される該ＣＰＵサーバ２Ａ〜２Ｃの利用状況によって仮想マシンＡ〜Ｄの仮想ＣＰＵＡ１〜Ａ４，Ｂ１，Ｂ２，Ｃ１〜Ｃ４，Ｄ１，Ｄ２毎に処理を分割し、該ハイパーバイザ２１Ａ〜２１Ｃに振り分ける機能を備えている。
【００７０】
該ハイパーバイザ２１Ａ〜２１Ｃは該ストレージ・ネットワーク３上にある該仮想メモリと入出力を行いながら、該スーパーハイパーバイザ１１から振り分けられた処理を実行し、その結果を該スーパーハイパーバイザ１１に伝え、仮想マシン上のプロセッサの処理が完了する。
【図面の簡単な説明】
【００７１】
【図１】本発明の第１の実施の形態による仮想マシンサーバの構成例を示すブロック図である。
【図２】本発明の第１の実施の形態によるＣＰＵサーバの構成例を示すブロック図である。
【図３】図１に示す仮想マシンサーバの動作を示すフローチャートである。
【図４】図２に示すＣＰＵサーバの動作を示すフローチャートである。
【図５】本発明の第２の実施の形態による仮想マシンシステムの構成例を示すブロック図である。
【図６】図５に示すクライアント端末の構成例を示すブロック図である。
【図７】図５に示す仮想マシンサーバの構成例を示すブロック図である。
【図８】図５に示すＣＰＵサーバの構成例を示すブロック図である。
【図９】本発明の第２の実施の形態で用いるＣＰＵサーバ情報の構成を示す図である。
【図１０】本発明の第２の実施の形態で用いる仮想マシン情報の構成を示す図である。
【図１１】本発明の第２の実施の形態で用いるトランザクション情報の構成を示す図である。
【図１２】本発明の第２の実施の形態で用いるトランザクション管理表の構成を示す図である。
【図１３】本発明の第２の実施の形態による仮想マシンシステムの全体の概略を示す図である。
【図１４】本発明の第２の実施の形態による仮想マシンシステムにおける仮想マシンの処理の流れを示すシーケンスチャートである。
【図１５】本発明の第３の実施の形態による仮想マシンサーバの動作を示すフローチャートである。
【図１６】本発明の第４の実施の形態による仮想マシンサーバの動作を示すフローチャートである。
【符号の説明】
【００７２】
１，１ａ  仮想マシンサーバ
２，２ａ，２ａ−１〜２ａ−ｎ，
２Ａ〜２Ｃ  ＣＰＵサーバ
３  ストレージ・ネットワーク
４  クライアント端末
１１  スーパーハイパーバイザ
１２，２２，４１  プロセッサ
１３，２３，４２  ＲＡＭ
１４，２４  サービスコントローラ
１５，２５  ファイバチャネルアダプタ
１６  ネットワークコントローラ
１７  ＨＤＤ
１８  汎用デバイス
２１，２１Ａ〜２１Ｃ  ハイパーバイザ
４３  ディスプレイ
４４  入力デバイス
４５  ネットワークコントローラ
１００  専用ネットワーク
１０１  ＣＰＵサーバ情報
１０２  仮想マシン情報
１０３  トランザクション情報
１０４  トランザクション管理表
１１１  仮想マシン稼働部
１１２  ＣＰＵサーバ負荷状況取得部
１１３  仮想ＣＰＵ処理割り振り部
２００  汎用ネットワーク
２１１  負荷状況通知部
２１２  処理部
Ａ〜Ｄ  仮想マシン
Ａ１〜Ａ４，Ｂ１，Ｂ２，
Ｃ１〜Ｃ４，Ｄ１，Ｄ２  仮想ＣＰＵ
【図１】
0005151509.tif 000002
【図２】
0005151509.tif 000003
【図３】
0005151509.tif 000004
【図４】
0005151509.tif 000005
【図５】
0005151509.tif 000006
【図６】
0005151509.tif 000007
【図７】
0005151509.tif 000008
【図８】
0005151509.tif 000009
【図９】
0005151509.tif 000010
【図１０】
0005151509.tif 000011
【図１１】
0005151509.tif 000012
【図１２】
0005151509.tif 000013
【図１３】
0005151509.tif 000014
【図１４】
0005151509.tif 000015
【図１５】
0005151509.tif 000016
【図１６】
0005151509.tif 000017