(57)【要約】  [課題] ハイパーバイザー型の仮想マシンシステムで、ハードウェアリソースの利用効率を最大化する。  [解決手段] スケジューラ制御手段３００は、ＣＰＵリソース１００の所定動作周期に各１回動作する複数の仮想化ＣＰＵを生成する仮想化ＣＰＵ生成手段３１０と、仮想マシンＶＭを複数のグループにグループ分けする仮想マシングループ生成手段３２０と、を有している。さらに、各仮想マシングループＶＭＧを前記各仮想化ＣＰＵ＿ＶＣＰＵに割り当てる仮想マシン動作期間設定手段３３０を有している。仮想マシン動作期間設定手段３３０はまた、仮想マシングループＶＭＧ内の先頭の仮想マシンＶＭに対し仮想化ＣＰＵ＿ＶＣＰＵ動作期間内での動作を保証するように各仮想マシンに動作期間を設定する。
2015146104.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を行うＣＰＵリソースと、前記ＣＰＵリソース上で動作する複数の仮想マシンと、前記ＣＰＵリソースの動作スケジュールを制御するスケジューラを具備し前記ＣＰＵリソースと前記仮想マシンとを仲介するハイパーバイザーと、前記スケジューラを制御するスケジューラ制御手段と、を有し、
前記スケジューラ制御手段は、前記ＣＰＵリソースの所定動作周期に少なくとも１回動作する複数の仮想化ＣＰＵを生成する仮想化ＣＰＵ生成手段と、複数の前記仮想マシンを複数のグループにグループ分けして仮想マシングループを生成する仮想マシングループ生成手段と、各前記仮想マシングループを前記各仮想化ＣＰＵに割り当てるとともに前記仮想マシングループ内の先頭の前記仮想マシンに対し前記仮想化ＣＰＵの動作期間内での動作を保証するように各仮想マシンに動作期間を設定する仮想マシン動作期間設定手段と、を有することを特徴とする仮想マシンシステム。
【請求項２】
前記仮想マシン動作期間設定手段が、動作期間の単位を設定する動作期間単位設定手段を有している、ことを特徴とする請求項１に記載の仮想マシンシステム。
【請求項３】
前記スケジューラ制御手段が、予め仮想マシンを割り当てない予備仮想化ＣＰＵを少なくとも１つ生成する予備仮想化ＣＰＵ生成手段を有している、ことを特徴とする請求項１または請求項２に記載の仮想マシンシステム。
【請求項４】
前記スケジューラが、それぞれの前記仮想マシンの動作状態に応じて前記予備仮想化ＣＰＵへ割り当てる前記仮想マシンを決定する予備仮想化ＣＰＵ割り当て手段を有する、こと特徴とする請求項３に記載の仮想マシンシステム。
【請求項５】
前記ＣＰＵリソースが前記仮想化ＣＰＵを内包する複数のＣＰＵグループを有し、前記スケジューラがそれぞれの前記仮想化ＣＰＵグループに対応するスケジューラユニットを有し、前記スケジューラ制御部が前記スケジューラユニットを制御するスケジューラ制御ユニットを有する、ことを特徴とする請求項１乃至請求項４いずれか一項に記載の仮想マシンシステム。
【請求項６】
演算処理を行うＣＰＵリソースに複数の仮想化ＣＰＵを生成し、複数の前記仮想化マシンをグループ分けして複数の仮想化マシングループを生成し、生成した前記仮想化マシングループを前記仮想化ＣＰＵに割り当て、前記仮想マシングループ内の先頭の前記仮想マシンに対し前記仮想化ＣＰＵの動作期間内での動作を保証するように前記仮想マシンの動作期間を設定する、ことを特徴とする仮想マシンシステムの制御方法。
【請求項７】
前記仮想マシン動作期間設定手段が動作期間の単位を設定する、ことを特徴とする請求項６に記載の仮想マシンシステムの制御方法。
【請求項８】
予め仮想マシンを割り当てない予備仮想化ＣＰＵを少なくとも１つ生成する、ことを特徴とする請求項６または請求項７に記載の仮想マシンシステムの制御方法。
【請求項９】
演算処理を行うＣＰＵリソースに複数の仮想化ＣＰＵを生成するステップと、複数の前記仮想化マシンをグループ分けして複数の仮想化マシングループを生成するステップと、生成した前記仮想化マシングループを前記仮想化ＣＰＵに割り当てるステップと、前記仮想マシングループ内の先頭の前記仮想マシンに対し前記仮想化ＣＰＵの動作期間内での動作を保証するように各前記仮想マシンの動作期間を設定するステップと、を有することを特徴とする仮想マシンシステムの制御プログラムを格納した記録媒体。
【請求項１０】
前記仮想マシン動作期間設定手段が動作期間の単位を設定するステップ、を有することを特徴とする請求項９に記載の仮想マシンシステムの制御プログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンシステムおよびその制御方法およびその制御プログラム記録媒体に関する。
【背景技術】
【０００２】
サーバ仮想化機能の広まりにより、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのハードウェアリソース上で、複数の仮想マシンを動作させ、ハードウェアリソースを効率的に利用することが多くなってきた。【０００３】
ハイパーバイザー型の仮想化では、ハイパーバイザーの持つスケジューラが各仮想マシンに時分割でハードウェアリソースを割り当てて処理し、複数の仮想マシンが動作する。ハードウェアリソースを効率的に利用するためにはスケジューラをどのように制御するかが重要である。【０００４】
例えば特許文献１には、所定の周期を、リアルタイムアクセスを必要とする仮想マシンに割り当てる期間と、非リアルタイムアクセスで良い仮想マシンに割り当てる期間とに分割し、各仮想マシンに優先度を付与することにより、効率化を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１９８３４６号公報
【特許文献２】特開２００３−１７７９２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、全ての仮想マシンにそれぞれ優先度を付与するため、動作の順番を制御するための負荷が大きくなっていた。また、動作時間の動作期間単位を小さくし過ぎて、仮想マシンの切替えが頻繁に発生し、ハードウェアリソースを無駄に消費してしまう恐れがあった。【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、ハードウェアリソースの利用効率を向上させる仮想マシンシステムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明の仮想マシンシステムは、演算処理を行うＣＰＵリソースと、前記ＣＰＵリソース上で動作する複数の仮想マシンと、前記ＣＰＵリソースの動作スケジュールを制御するスケジューラを具備し前記ＣＰＵリソースと前記仮想マシンとを仲介するハイパーバイザーと、前記スケジューラを制御するスケジューラ制御手段と、を有し、前記スケジューラ制御手段は、前記ＣＰＵリソースの所定動作周期に少なくとも１回動作する複数の仮想化ＣＰＵを生成する仮想化ＣＰＵ生成手段と、複数の前記仮想マシンを複数のグループにグループ分けして仮想マシングループを生成する仮想マシングループ生成手段と、各前記仮想マシングループを前記各仮想化ＣＰＵに割り当てるとともに前記仮想マシングループ内の先頭の前記仮想マシンに対し前記仮想化ＣＰＵの動作期間内での動作を保証するように各仮想マシンに動作期間を設定する仮想マシン動作期間設定手段と、を有している。
【発明の効果】
【０００９】
本発明の効果は、仮想マシンシステムのハードウェアリソース利用効率を向上させることができることである。
【図面の簡単な説明】
【００１０】
【図１】本発明第１の実施の形態を示すブロック図である。
【図２】本発明第２の実施の形態の仮想マシングループと仮想化ＣＰＵとの対応例を示す模式図である。
【図３】本発明第２の実施の形態の仮想化ＣＰＵ動作期間の割り当て例を示すタイミングチャートである。
【図４】本発明第２の実施の形態の仮想マシングループ内での動作期間の割り当て例を示すタイミングチャートである。
【図５】本発明第３の実施の形態を示すブロック図である。
【図６】本発明第３の実施の形態比較例を示すタイミングチャートである。
【図７】本発明第３の実施の形態を示すタイミングチャートである。
【図８】本発明第４の実施の形態を示すブロック図である。
【図９】本発明第４の実施の形態を示すタイミングチャートである。
【図１０】本発明第５の実施の形態を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら本発明について詳細に説明する。
【００１２】
〔第１の実施形態〕
図１に本実施の形態の仮想マシンシステムのブロック図を示す。
【００１３】
仮想マシンシステムは、演算処理を行うＣＰＵリソース１００と、ＣＰＵリソース１００上で動作する複数の仮想マシンＶＭと、ＣＰＵリソース１００と仮想マシンＶＭとを仲介するハイパーバイザー２００と、を有している。
【００１４】
ハイパーバイザー２００は、ＣＰＵリソースの動作スケジュールを制御するスケジューラ２１０を有し、仮想マシンシステムはスケジューラ２１０を制御するスケジューラ制御手段３００を有している。
【００１５】
スケジューラ制御手段３００は、ＣＰＵリソース１００の所定動作周期に各１回動作する複数の仮想化ＣＰＵを生成する仮想化ＣＰＵ生成手段３１０と、仮想マシンＶＭを複数のグループにグループ分けする仮想マシングループ生成手段３２０と、を有している。さらに、スケジューラ制御手段３００は、各仮想マシングループＶＭＧを各仮想化ＣＰＵ＿ＶＣＰＵに割り当てる仮想マシン動作期間設定手段３３０を有している。仮想マシン動作期間設定手段３３０は、また、仮想マシングループＶＭＧ内の先頭の仮想マシンＶＭに対し仮想化ＣＰＵ＿ＶＣＰＵ動作期間内での動作を保証するように各仮想マシンに動作期間を設定する。
【００１６】
図１では、仮想マシングループＶＭＧ０が、仮想マシンＶＭ＿０００、ＶＭ００１、ＶＭ００２、・・・を包含する例を示している。また仮想マシングループＶＭＧ１が、仮想マシンＶＭ＿１００、ＶＭ１０１、ＶＭ１０２、・・・を包含し、仮想マシングループＶＭＧｎが、仮想マシンＶＭ＿ｎ００、ＶＭｎ０１、ＶＭｎ０２、・・・を包含する例を示している。また、ＣＰＵリソース１００に、仮想化ＣＰＵ０＿ＶＣＰＵ０、仮想化ＣＰＵ１＿ＶＣＰＵ１、・・・、仮想化ＣＰＵｎ＿ＶＣＰＵｎが生成していることを例示している。
【００１７】
以上のような構成とすることにより、複数の仮想マシンに無駄なくＣＰＵリソースを割り当てるとともに、所定期間内での動作保証が必要な仮想マシンに対しては動作を保証することができる。
【００１８】
〔第２の実施形態〕
図２は仮想マシングループ（ＶＭグループ）を、仮想化ＣＰＵに割り当てる方法の一例を示した模式図である。この例では、ｎ＋１個のＶＭグループをｎ＋１個の仮想化ＣＰＵ（ＶＣＰＵ）に割り当てている。図では、ＶＭグループ０はＶＣＰＵ０に、ＶＭグループ１はＶＣＰＵ１に、・・・、ＶＭグループｎにＶＣＰＵｎを割り当てた様子を示している。
【００１９】
図３はＣＰＵリソースの所定周期ＴＣにおいて、ＶＣＰＵの動作期間を割り当てた例を示すタイミングチャートである。１周期ＴＣの間に、それぞれの仮想化ＣＰＵ（ＶＣＰＵ０、ＶＣＰＵ１、・・・、ＶＣＰＵｎ）が各１回動作する期間（動作期間Ｔ０、Ｔ１、・・・、Ｔｎ）を設けている。
【００２０】
図４は、各仮想化ＣＰＵの動作期間内で各仮想マシンの動作期間を割り当てる方法を模式的に示したタイミングチャートである。ここでは各グループにおける先頭の仮想マシンを末尾が０の仮想マシンとしている。グループ内で先頭の仮想マシンＶＭには当該動作期間内での動作が保証される。図４の例では、ＶＣＰＵ０動作期間では、ＶＭ０００が動作保証、他の仮想マシンＶＭ００１、ＶＭ００２、・・・は非動作保証である。またＶＣＰＵ１動作期間では、ＶＭ１００が動作保証、他の仮想マシンＶＭ１０１、ＶＭ１０２、・・・は非動作保証である。
【００２１】
以上のように、本実施の形態に従えば、動作保証が必要なＶＭの動作を保証しつつ動作期間の割り当るスケジューリングが容易に実行できる。
【００２２】
なお上記の説明では、１周期ＴＣ内で、各仮想化ＣＰＵが１回動作すると仮定したが、１周期ＴＣ内に２回以上動作する仮想化ＣＰＵがあっても問題ない。
【００２３】
〔第３の実施形態〕
図５は本発明第３の実施の形態を示すブロック図である。本実施の形態では、仮想マシン動作期間設定手段３３０に、動作期間単位設定手段３４０を設けている。動作期間単位設定手段３４０は、１つの仮想マシンＶＭに動作期間を割り当てるときの単位を設定するものである。なお、ここでは、次の包含関係を例示している。ＶＭＧ０がＶＭ＿０００、ＶＭ＿００１、ＶＭ＿００２、・・・を有し、ＶＭＧ１がＶＭ＿１００、ＶＭ＿１０１、ＶＭ＿１０２、・・・を有し、ＶＭＧｎはＶＭ＿ｎ００、ＶＭ＿ｎ０１、ＶＭ＿ｎ０２、・・・を有している。また、ＣＰＵリソース１００は、ＶＣＰＵ０、ＶＣＰＵ１、・・・、ＶＣＰＵｎを有している。
【００２４】
次に、動作期間単位設定手段３４０の動作について説明する。まず比較のために動作期間単位を設定しない場合の動作について説明する。なお、動作期間単位は粒度とも称する。
【００２５】
図６は動作期間単位を設定しない場合の動作の一例を示すタイミングチャートである。ここでは、ＶＭ０に対して、１．６ｍｓの期間内に０．４ｍｓの動作を保証する必要がある場合を考える。その他の仮想マシンＶＭは１回につき０．１ｍｓ動作するものとする。
【００２６】
動作期間単位の設定を行わない場合、スケジューラが０．１ｍｓ単位で各仮想マシンＶＭ０、ＶＭ１、ＶＭ２、・・・に動作の割り当てを行ったものと仮定する。最初にＶＭ０が０．４ｍｓ動作し、次にＶＭ１が０．１ｍｓ動作する。以降、０．１ｍｓ毎にＶＭ２、ＶＭ３、・・・、ＶＭ７と動作が切り替わる。そして最初の動作から１．６ｍｓ後に再びＶＭ０が０．４ｍｓ動作する。こうして１．６ｍｓの間に最大８回の切り替えが発生することになる。このようにＶＭの切り替えが頻繁に行われると、切替えに伴う非動作期間が多くなり、ＣＰＵリソースの利用効率が低下する。
【００２７】
一方、動作期間単位を適切に設定した場合は、切替えの頻発によるロスを小さくすることができる。図７はこの様子を示すタイミングチャートである。ここではＶＭ０に合わせて、設定単位を０．４ｍｓに設定している。図７では、まずＶＭ０が０．４ｍｓ動作し、次いでＶＭ１が０．４ｍｓ動作する。次いでＶＭ２、ＶＭ３が０．４ｍｓずつ動作し、１．６ｍｓ後に再びＶＭ０が０．４ｍｓ動作する。以降ＶＭ４、ＶＭ５と順次動作が切り替わっていく。この場合は１．６ｍｓの間に４回しか切替えが生じない。このため、ＶＭの切り替えによるロスが減少している。このように粒度を適切に設定することにより、ＣＰＵリソースの利用効率を高くすることができる。
【００２８】
一方、粒度を大きくしすぎると、各ＶＭに対して必要な動作以上の時間が割り当てられ、ＣＰＵが動作していない空白時間が生じるケースが多くなる。このため、ＣＰＵの能力をフルに活用できなくなる。したがって、粒度を大きくすることも、避ける必要がある。本実施の形態では、ユーザは、動作期間単位設定手段３４０を用いて、適切な粒度を設定することができる。
【００２９】
以上説明したように、粒度は小さすぎても大きすぎてもいけないが、本実施の形態によれば、粒度を適切な値に設定することができる。このため、切替えによるロスと割り当て期間が大きすぎることによるロスとの総和を最小化し、ＣＰＵリソースの利用効率を高めることが可能となる。
【００３０】
〔第４の実施形態〕
図８は本発明第４の実施の形態を示すブロック図である。本実施の形態ではスケジューラ制御手段３００が、予備ＶＣＰＵ生成手段３５０を有している。予備ＶＣＰＵ生成手段３５０は、ＣＰＵリソース１００に予備ＶＣＰＵ＿ＲＶＣＰＵを生成する。また本実施の形態のスケジューラ２１０は、このＲＶＣＰＵに対して仮想マシンを割り当てる予備ＣＰＵ割り当て手段２１１を有する。なお、図中に記載された図５と同じ記号のその他の要素は、図５と同じ意味で使用している。このため説明は省略する。
【００３１】
仮想マシン動作期間設定手段３３０は、予備ＶＣＰＵ＿ＲＶＣＰＵに対して予めスケジュールを設定しない。そして予備ＶＣＰＵ＿ＲＶＣＰＵの動作期間には、各仮想マシンの動作状況に応じて、ビジー状態となっている仮想マシンに優先的に動作を割り当てる。その割り当て制御は、予備ＶＣＰＵ割り当て手段２１１が行う。
【００３２】
図９はこの時の動作を示すタイミングチャートである。予備ＶＣＰＵ＿ＲＶＣＰＵにはＲＶＣＰＵ動作期間Ｔｒが割り当てられる。そしてＴｒにおけるＶＭの割り当ては、予備ＶＣＰＵ割り当て手段２１１が臨機応変に行う。例えば周期内で実行済みの動作保証されたＶＭに対し再び割り当てを行うといった柔軟な対応ができる。なお、予備仮想化ＣＰＵは２つ以上設けることもできる。なお図９には、その他の仮想化ＣＰＵが動作する期間Ｔ１、Ｔ２、・・・を例示している。
【００３３】
以上説明したように、本実施の形態によれば、予備ＣＰＵの割り当て期間を状況に応じて使えるため。ＣＰＵリソースを有効活用することが可能となる。
【００３４】
〔第５の実施形態〕
図１０は第５の実施の形態を示すブロック図である。本実施の形態では、ＣＰＵリソース１００が物理的に分離した複数のＣＰＵグループ１１０を有する。
【００３５】
図１０の例では、ＣＰＵ１００は、ＣＰＵグループａ１１０ａ、ＣＰＵグループｂ１１０ｂ、ＣＰＵグループｃ１１０ｃ、・・・を有している。これらのＣＰＵグループそれぞれに、仮想化ＣＰＵ生成手段３１０、仮想マシングループ生成手段３２０、仮想マシン動作期間設定手段３３０が対応し、ＣＰＵグループごとにスケジューリングが行われる。ＣＰＵグループａ１１０ａを制御するスケジューラユニット２１０ａは、３１０ａ、３２０ａ、３３０ａを有するスケジューラ制御ユニット３００ａによって制御される。ＣＰＵグループｂ１１０ｂ、１１０ｃ、・・・も同様にスケジューラ制御ユニット３００ｂ、３００ｃ、・・・によって制御される。この例では、スケジューラ制御ユニット３００ｂは、仮想化ＣＰＵ生成手段３１０ｂ、仮想マシングループ生成手段３２０ｂ、仮想マシン動作期間設定手段３３０ｂを有している。またスケジューラ制御ユニット３００ｃは、仮想化ＣＰＵ生成手段３１０ｃ、仮想マシングループ生成手段３２０ｃ、仮想マシン動作期間設定手段３３０ｃを有している。また仮想マシングループＶＭＧａ０、ＶＭＧａ１、・・・はＣＰＵグループａ１１０ａ上で動作し、仮想マシングループＶＭＧｂ０、ＶＭＧｂ１、・・・はＣＰＵグループａ１１０ｂ上で動作する。
【００３６】
上記のように、ＣＰＵグループごとにスケジュール制御を行うと、ＣＰＵリソース１００を１つのＣＰＵとみなした時と同様に、それぞれのＣＰＵグループごとに第１から第４の実施の形態を適用することができる。
【００３７】
以上説明したように、本実施の形態によれば、ＣＰＵリソースが物理的に分離した複数のＣＰＵグループを有する場合にも、リソースの利用効率を高くすることができる。
以上の第１から第５の実施形態の処理をコンピュータに実行させるプログラムおよび該プログラムを格納した記録媒体も本発明の範囲に含む。記録媒体としては、例えば、磁気ディスク、磁気テープ、光ディスク、光磁気ディスク、半導体メモリ、などを用いることができる。
【００３８】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上記実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【００３９】
この出願は、２０１４年３月２７日に出願された日本出願特願２０１４−０６５７９３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００４０】
１００    ＣＰＵリソース
１１０    ＣＰＵグループ
２００    ハイパーバイザー
２１０    スケジューラ
２１１    予備ＶＣＰＵ割り当て手段
３００    スケジューラ制御手段
３１０    仮想化ＣＰＵ生成手段
３２０    仮想マシングループ生成手段
３３０    仮想マシン動作期間設定手段
３４０    動作期間単位設定手段
３５０    予備ＶＣＰＵ生成手段
ＶＭ    仮想マシン
Ｔ    動作期間
ＴＣ    周期
【図１】
2015146104.tif 000003
【図２】
2015146104.tif 000004
【図３】
2015146104.tif 000005
【図４】
2015146104.tif 000006
【図５】
2015146104.tif 000007
【図６】
2015146104.tif 000008
【図７】
2015146104.tif 000009
【図８】
2015146104.tif 000010
【図９】
2015146104.tif 000011
【図１０】
2015146104.tif 000012
【手続補正書】
【提出日】平成28年9月13日(2016.9.13)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
演算処理を行うＣＰＵリソースに複数の仮想化ＣＰＵを生成するステップと、複数の前記仮想化マシンをグループ分けして複数の仮想化マシングループを生成するステップと、生成した前記仮想化マシングループを前記仮想化ＣＰＵに割り当てるステップと、前記仮想マシングループ内の先頭の前記仮想マシンに対し前記仮想化ＣＰＵ動作期間内での動作を保証するように各前記仮想マシンの動作期間を設定するステップと、を有することを特徴とする仮想マシンシステムの制御プログラム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
前記仮想マシン動作期間設定手段が動作期間の単位を設定するステップ、を有することを特徴とする請求項９に記載の仮想マシンシステムの制御プログラム。
【国際調査報告】
2015146104.tif 000013
2015146104.tif 000014