(57)【要約】【課題】通常の動作時において待機系となる仮想マシンに対してハードウェアを割り当てる量の保証値を小さくしてハードウェアの割り当ての無駄を減少させ、かつ、現用系から待機系への切り替えにより待機系が動作する場合に待機系に優先的に割り当てられるハードウェアの量大きくし、待機系が現用系と同様に動作できることをより確実にする。【解決手段】本発明の一実施形態として、複数の仮想マシンそれぞれに割り当てられることが保証されるハードウェア資源の保証量に加えてさらに割り当てが可能な前記ハードウェア資源の量の上限を上限量として制限可能なサーバであり、前記複数の仮想マシンのうち特定の仮想マシンに、前記特定の仮想マシン以外の仮想マシンに保証量を越えて割り当てられているハードウェア資源を前記特定の仮想マシンに割り当てる制御部を有するサーバを提供する。【選択図】図１
2014225116.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンそれぞれに割り当てられることが保証されるハードウェア資源の保証量に加えてさらに割り当てが可能な前記ハードウェア資源の量の上限を上限量として制限可能なサーバであり、
前記複数の仮想マシンのうち特定の仮想マシンに、前記特定の仮想マシン以外の仮想マシンに保証量を越えて割り当てられているハードウェア資源を前記特定の仮想マシンに割り当てる制御部を有するサーバ。
【請求項２】
前記制御部は、
前記特定の仮想マシン以外の仮想マシンに割り当てられているハードウェア資源の量の総計が、前記特定の仮想マシンの保証量と前記特定の仮想マシンに前記保証量を越えてさらに割り当てようとする量との和を、下回る場合に、前記複数の仮想マシンのうち特定の仮想マシンに、前記特定の仮想マシン以外の仮想マシンに保証量を越えて割り当てられているハードウェア資源を前記特定の仮想マシンに割り当てる請求項１に記載のサーバ。
【請求項３】
前記特定の仮想マシンは、待機系のシステムを構成する請求項１または２に記載のサーバ。
【請求項４】
前記特定の仮想マシンが構成する待機系に対応する現用系は前記サーバ以外の装置により動作する請求項３に記載のサーバ。
【請求項５】
複数の仮想マシンそれぞれに割り当てられることが保証されるハードウェア資源の保証量に加えてさらに割り当てが可能な前記ハードウェア資源の量の上限を上限量として制限可能なサーバに、
前記複数の仮想マシンのうち特定の仮想マシンに、前記特定の仮想マシン以外の仮想マシンに保証量を越えて割り当てられているハードウェア資源を前記特定の仮想マシンに割り当てをさせるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンを動作させるためのサーバに関する。特に、待機系として動作する仮想マシンを動作させるために適したサーバに関する。
【背景技術】
【０００２】
計算機システムの耐障害性の向上には冗長化を用いることが有用である。金融機関などに用いられる計算機システムのように安定稼働に対する要求水準の高い計算機システムでは、現用系が障害に発生により稼働を停止すると稼働状態へ切り替わる待機系が用意される構成が採用されることが一般的である。
【０００３】
また、ハードウェア構成を有する計算機を仮想化し、仮想化された計算機（仮想マシン）を動作させる仮想化技術が知られている（例えば、特許文献１−４参照。）このような仮想化技術においては、１台のハードウェアとしてのサーバ（計算機）上に複数の仮想マシンを動作させることが可能となっている。これにより、本来であればシステムの数に応じた台数のサーバの導入が必要であったものが、より少ないサーバの導入で済ませることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第４，５６４，９０３号明細書
【特許文献２】特開２００４−１９９５６１号公報
【特許文献３】特開２００２−１８２９３４号公報
【特許文献４】特開平９−０８１４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
仮想化技術においては、通常、仮想マシン個々に対して、ハードウェアを割り当てる量である保証値と、保証値に加えてさらに付加的にハードウェアを割り当て可能な上限の量と、を指定することにより仮想マシンへのハードウェアの割り当てを指定することができる。
【０００６】
この場合、待機系となる仮想マシンは、現用系に障害が発生した場合に動作するので、通常の動作時には割り当てるハードウェア量を小さくするために、待機系となる仮想マシンに対してハードウェアを割り当てる量の保証値を小さく設定するのが好ましい。しかし、待機系となる仮想マシンに対してハードウェアを割り当てる量の保証値を小さく設定すると、現用系に障害が発生した場合、待機系に割り当てられるハードウェア量が制限されるため現用系から待機系への切り替えがスムーズに行われない場合がある。
【０００７】
また、待機系となる仮想マシンに対してハードウェアを割り当てる量の保証値を大きく設定すると、通常の動作時でも待機系となる仮想マシンに対して保証されるハードウェアの割り当て量が確保されるので、ハードウェアの割り当てに無駄が生じる。
【０００８】
本発明の一実施形態の目的は、通常の動作時において待機系となる仮想マシンに対してハードウェアを割り当てる量の保証値を小さくしてハードウェアの割り当ての無駄を減少させ、かつ、現用系から待機系への切り替えにより待機系が動作する場合に待機系に優先的に割り当てられるハードウェアの量を大きくし、待機系が現用系と同様に動作できることをより確実にすることである。
【課題を解決するための手段】
【０００９】
本発明の一実施形態として、複数の仮想マシンそれぞれに割り当てられることが保証されるハードウェア資源の保証量に加えてさらに割り当てが可能な前記ハードウェア資源の量の上限を上限量として制限可能なサーバであり、前記複数の仮想マシンのうち特定の仮想マシンに、前記特定の仮想マシン以外の仮想マシンに保証量を越えて割り当てられているハードウェア資源を前記特定の仮想マシンに割り当てる制御部を有するサーバを提供する。
【００１０】
本発明の一実施形態として、複数の仮想マシンそれぞれに割り当てられることが保証されるハードウェア資源の保証量に加えてさらに割り当てが可能な前記ハードウェア資源の量の上限を上限量として制限可能なサーバに、前記複数の仮想マシンのうち特定の仮想マシンに、前記特定の仮想マシン以外の仮想マシンに保証量を越えて割り当てられているハードウェア資源を前記特定の仮想マシンに割り当てをさせるためのプログラムを提供する。
【発明の効果】
【００１１】
本発明の一実施形態によれば、通常の動作時において待機系となる仮想マシンに対してハードウェアを割り当てる量の保証値を小さくしてハードウェアの割り当ての無駄を減少させ、かつ、現用系から待機系への切り替えにより待機系が動作する場合に待機系に優先的に割り当てられるハードウェアの量大きくし、待機系が現用系と同様に動作できることをより確実にすることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るサーバの機能ブロック図
【図２】本発明の一実施形態における仮想マシンへのハードウェアの割り当て量を指定する割当情報の一例図
【図３】本発明の一実施形態に係るサーバを用いるシステムの機能ブロック図
【図４】本発明の一実施形態に係るサーバの制御部の処理を説明するためのフローチャート
【図５】本発明の一実施形態に係るサーバのハードウェア構成図
【発明を実施するための形態】
【００１３】
以下に本発明を実施するための形態について説明する。なお、本発明は以下の説明に限定されることはなく、種々の変形を行っても実施することが可能である。
【００１４】
図１は、本発明の一実施形態に係るサーバの機能ブロック図を示す。サーバ１０１は、ハードウェア資源として、ＨＷ１（１１１）、ＨＷ２（１１２）、…、ＨＷｍ（１１３）を有する。ハードウェア資源としては、ＣＰＵ、メモリ（一時記憶）、不揮発記憶装置（二次記憶）、ネットワークなどのネットワークインターフェースなどがある。図１においては、ｍ個あるいはｍ種類のハードウェア資源が存在するが、ハードウェアの個数あるいは種類は、サーバ１０１の構成により定められ、事実上任意の数とすることができる。また、サーバ１０１は、制御部１３１を有する。制御部１３１は、通常は、ハードウェアとソフトウェアとの組み合わせにより構成される。また、制御部１３１は、ハードウェアのみによっても構成することができる。制御部１３１は、ハードウェア資源ＨＷ１（１１１）、ＨＷ２（１１２）、…、ＨＷｍ（１１３）を、次に説明する仮想マシンに割り当てる制御を行う。制御部１１３は、場合によっては、ハイパーバイザと呼ばれる場合もある。
【００１５】
図１において、サーバ１０１の内部では、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＶＭ））として、ＶＭ１（１２１）、ＶＭ２（１２２）、…、ＶＭｎ（１２３）が動作可能である。なお、図１では、ｎ個の仮想マシンが示されているが、その上限はサーバ１０１のメモリ容量やＣＰＵなどのハードウェアの構成により定められ、事実上任意の数とすることができる。それぞれの仮想マシンは、仮想化された計算機である。それぞれの仮想マシンは、サーバ１０１で動作するプロセスとして実現され、そのようなプロセスにおいては、仮想化されたオペレーティングシステムを動作させることができる。また、仮想化されたオペレーティングシステムの管理下にて、（仮想的な）プロセスを動作させることができる。また、それぞれの仮想マシンが必要とするハードウェア資源を、制御部１３１が、ＨＷ１（１１１）、ＨＷ２（１１２）、…、ＨＷｍ（１１３）の中から割り当てることにより、仮想マシンが動作可能となる。
【００１６】
制御部１３１は、上述のようにハードウェア資源ＨＷ１（１１１）、ＨＷ２（１１２）、…、ＨＷｍ（１１３）を仮想マシンＶＭ１（１２１）、ＶＭ２（１２２）、…、ＶＭｎ（１２３）に割り当てる制御を行う。また、制御部１３１は、割当情報保持部１３２を有する。割当情報保持部１３２は、次に説明する割当情報を保持（記憶）し、制御部１３１はハードウェア資源ＨＷ１（１１１）、ＨＷ２（１１２）、…、ＨＷｍ（１１３）を仮想マシンＶＭ１（１２１）、ＶＭ２（１２２）、…、ＶＭｎ（１２３）に割り当てる制御を行う際に割当情報を参照する。
【００１７】
図２は、割当情報保持部１３２が保持する割当情報の一例を示す。図２においては、サーバ１０１で動作する仮想マシンが５つあるとし、それぞれのハードウェアの割当量がそれぞれの行に記載されている。
【００１８】
以下では、図２はハードウェアとしてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の各仮想マシンへの割り当て量を示しているとするとして説明を行う（他のハードウェアについては以下の説明を他のハードウェアの種類に読み替えて理解することが可能である）。仮想マシン１には、「保証割当値」として２．０が指定されている。「保証割当値」とは、その仮想マシンに割り当てられることが保証されているＣＰＵの量である。したがって、他の仮想マシンがどのような挙動を示しても、仮想マシン１には、常にＣＰＵの割り当ての最低量として、２．０単位が割り当てられる。言い換えると、２．０単位のＣＰＵの割り当て量は、仮想マシン１以外の仮想マシンには割り当てられないとみなすことができる。システムによっては、「保証割当値」のことをＥＣ値と呼ぶ場合がある。
【００１９】
同様に、仮想マシン２には、ＣＰＵの量として２．０単位が割り当てられ、仮想マシン３には、ＣＰＵの量として１．５単位が割り当てられ、仮想マシン４には、ＣＰＵの量として１．５単位が割り当てられ、仮想マシン５には、ＣＰＵの量として１．０単位が割り当てることが保証されている。したがって、サーバ１０１においては、「保証割当値」の列の合計である８．０単位以上のＣＰＵの量が備わっていなければならない。
【００２０】
なお、１単位とは、ハードウェア構成としての１個のＣＰＵとしてもよいし、ＣＰＵを構成するコアであってもよい。また、複数の異なる計算能力のＣＰＵがサーバ１０１に備えられている場合には、計算能力を基準に単位が決められていてもよい。例えば、第１のＣＰＵの計算能力が第２のＣＰＵの２倍であれば、第１のＣＰＵを２．０単位とし、第２のＣＰＵを１．０単位としてハードウェアの量を表わしてもよい。
【００２１】
仮想マシン２には、「付加割当上限値」として３．０が指定されている。「付加割当上限値」とは、「保証割当値」により示されるＣＰＵの量に加えてさらに仮想マシンに割り当ててもよいＣＰＵの量を示す。したがって、仮想マシン２には、「保証割当値」により割り当てが保証される２．０に加えて、さらに３．０のＣＰＵの量を割り当てることができる。ただし、「付加割当上限値」のＣＰＵの量が必ず割り当てられることまでは保証されておらず、どの仮想マシンにも割り当てられていないＣＰＵの量が存在すれば、その量のうちの「付加割当上限値」により指定される量が割り当てられることを意味する。システムによっては、「付加割当上限値」のことをＶＰ値と呼ぶ場合がある。
【００２２】
同様に、どの仮想マシンにも割り当てられていないＣＰＵの量が存在すれば、そのようなＣＰＵの量から、仮想マシン２には、ＣＰＵの量としてさらに２．５を上限として割り当て、仮想マシン３には、ＣＰＵの量としてさらに３．０単位を上限として割り当て、仮想マシン４には、ＣＰＵの量としてさらに２．５単位を上限として割り当て、仮想マシン５には、ＣＰＵの量としてさらに３．０単位を割り当てることが可能であることが示される。
【００２３】
なお、上述のように「付加上限値」は、どの仮想マシンにも割り当てられていないＣＰＵの量が存在すれば、その量のうちの「付加上限値」により指定される量が割り当てられることを意味するので、サーバ１０１は、「保証割当値」の列の合計である８．０単位に「付加割当上限値」の列の合計である１４．０単位を加えて２２．０単位の量のＣＰＵを備えている必要ない。例えば、サーバ１０１は、１２．０単位の量のＣＰＵを備えており、仮想マシン１に「保証割当値」の２．０単位に加えて「付加割当上限値」の１．５単位の量のＣＰＵが割り当てられており、他の仮想マシンには、「保証割当値」の量のＣＰＵが割り当てられているとき、どの仮想マシンにも割り当てられていないＣＰＵの量は、２．５単位となるので、例えば、必要に応じて仮想マシン２にさらに２．５単位の量のＣＰＵを割り当てることができる。あるいは、複数の仮想マシンにこの２．５単位の量のＣＰＵを割り当てることも可能であり、例えば、仮想マシン２にさらに１．０単位の量のＣＰＵを割り当てるとともに仮想マシン３に１．５単位の量のＣＰＵを割り当てることもできる。ただし、どの仮想マシンにも割り当てられていないＣＰＵの量が０となれば、「付加割当上限値」がどれだけ大きくてもどの仮想マシンにもさらにＣＰＵの量を割り当てることはできない。
【００２４】
また、「保証割当値」は割り当てられることが保証されるＣＰＵの量を示しているが、仮想マシンには常に「保証割当値」として指定された量のＣＰＵが割り当てられる必要はない。例えば、仮想マシン５がアイドル状態となっており、ＣＰＵを消費しないのであれば、仮想マシン５に割り当てられることが保証されている「保証割当値」の量の１．０単位のＣＰＵを、他の仮想マシンの「付加割当上限値」を上限としてさらに割り当てることができる。
【００２５】
仮想マシン５には、「優先割当値」として２．０単位の量が指定されている。これは、仮想マシン５には、他の仮想マシンに指定されている「付加割当上限値」に優先して、２．０単位の量のＣＰＵが割り当てられることを示している。仮想マシン５には、１．０が「保証割当値」として指定されているので、例えば仮想マシン５がアイドル状態から実行状態に移行すると、１．０の量のＣＰＵの割り当てが保証されている。また仮想マシン５には「付加割当上限値」として３．０が指定されているので、仮想マシン５がＣＰＵを必要とする場合には１．０の量のＣＰＵに加えてさらに３．０の量のＣＰＵを割り当てることが可能である。
【００２６】
しかし、「付加割当上限値」は、どの仮想マシンにも割り当てられていないＣＰＵの量を上限として割り当て可能な量を示すので、仮想マシン５以外の仮想マシンに、仮想マシン５の「保証割当値」である１．０単位を除く量のＣＰＵが割り当てられている場合には、仮想マシン５にはさらにＣＰＵを割り当てることができない。このため、仮想マシン５が緊急性のある処理を行うためにＣＰＵを必要としても、１．０単位以上のＣＰＵを割り当てることができない。
【００２７】
そこで、このように仮想マシン５が特に必要とする量のＣＰＵを割り当てるために、本発明の一実施形態においては、「優先割当量」を指定する。これにより、他の仮想マシンに割り当てられている「付加割当上限値」の量のＣＰＵを仮想マシン５に割り当てる上限値として「優先割当量」により指定される量のＣＰＵが仮想マシン５に割り当てられる。例えば、仮想マシン１に「付加割当上限値」として割り当てられているＣＰＵの量のうち２．０単位を削減させ、その２．０単位の量のＣＰＵを仮想マシン５にさらに割り当てる。あるいは、仮想マシン１乃至４それぞれに「付加割当上限値」の量として割り当てられているＣＰＵの量のうち０．５をそれぞれから削減させ、削減された合計値の２．０単位の量のＣＰＵを仮想マシン５にさらに割り当てる。
【００２８】
このような「優先割当量」の指定は、別のサーバに現用系を実現する仮想マシンを動作させる場合に有用である。例えば、図２の仮想マシン５がサーバ１０１内で動作するＶＭｎ（１２３）であり、さらに図３に示すようにサーバ１０１に加えてサーバ３０１が存在するとし、例えば、サーバ３０１内で動作するＶＭｎ（３２３）が現用系を実現し、これに対応する待機系がサーバ１０１内で動作するＶＭｎ（１２３）（仮想マシン５）であるとする。
【００２９】
この場合、ＶＭｎ（１２３）（仮想マシン５）は、平常時においては現用系を構成するＶＭｎ（１２３）に何らかの障害が発生するまでアイドル状態となる。したがって、平常時においては、ＶＭｎ（１２３）（仮想マシン５）の「保証割当値」はできるだけ小さいのが好ましいので、図２のように例えば１．０が指定される。
【００３０】
一方、現用系を実現するＶＭｎ（３２３）に何らかの障害が発生したことが検出されると、待機系を実現するＶＭｎ（１２３）（仮想マシン５）が現用系に切り替わる。このとき、スムーズな切り替わりのためには、ＶＭｎ（１２３）（仮想マシン５）にはできる限り多くの量のＣＰＵが割り当てられるのが好ましい。このため、従来においては「付加割当上限値」を大きくすることが行われていたが、どの仮想マシンにも割り当てられていないＣＰＵの量が存在しなければ、ＶＭｎ（１２３）（仮想マシン５）には、小さい値が指定されるのが好ましい「保証割当値」の量のＣＰＵしか割り当てられないこととなり、スムーズな切り替わりを実現できなくなる。
【００３１】
そこで、本発明の一実施形態として、「優先割当値」を指定し、他の仮想マシンに割り当てられている「付加割当上限値」の量のＣＰＵを仮想マシン５に割り当てる上限値とする。これにより、仮想マシン５の「保証割当値」を除く量のＣＰＵが仮想マシン１乃至４に割り当てられていても、仮想マシン１乃至４に割り当てられている「付加割当上限値」により指定される量のＣＰＵから、仮想マシン５の「優先割当量」である２．０単位の量のＣＰＵを仮想マシン５に割り当てることが可能となる。これにより、現用系から待機系への切り替えをスムーズに行うことができる。
【００３２】
なお、現用系を構成する仮想マシンと待機系を構成する仮想マシンとは、異なるサーバ内で動作すると説明したが、同じサーバで動作してもよい。ただし、異なるサーバで動作すると、サーバに対する物理的な障害が発生しても別のサーバ内で動作する待機系に切り替わるので、耐障害性は高まる。
【００３３】
図４は、本発明の一実施形態における処理を説明するフローチャートである。図４に示すフロ―チャートの処理は、「優先割当値」に０でない値が指定されている仮想マシン（ＶＭ）（「特定の仮想マシン」という場合がある）に「保証割当値」を越えてＣＰＵ（ハードウェア（ＨＷ））の量を割り当てるときの処理である。
【００３４】
ステップＳ４０１の処理として、サーバ１０１内で動作する全てのＶＭ（仮想マシン）に割り当てられているＨＷ量（例えばＣＰＵの量）を割当ＨＷ量として求める。ステップＳ４０２において、サーバ１０１の全てのハードウェア量（総ＨＷ量）から、ステップＳ４０１の処理により求められた割当ＨＷ量を減じた結果が、優先割当値以上であるかどうかを判断する。
【００３５】
もし、総ＨＷ量から割当ＨＷ量を減じた結果が、優先割当値以上であれば、ステップＳ４０３の処理に移行し、ハードウェア（ＨＷ）をさらに割り当てる。もし、総ＨＷ量から割当ＨＷ量を減じた結果が、優先割当値未満であれば、ステップＳ４０４の処理に移行し、他の仮想マシン（ＶＭ）（「特定の仮想マシン以外の仮想マシン」という場合がある）のハードウェア（ＨＷ）割当量を減少させた後、ステップＳ４０３に処理を移行する。
【００３６】
なお、ステップＳ４０４においてハードウェア（ＨＷ）割当量を減少させる仮想マシンは、ランダムに選択することもできるし、所定の規則に従って選択することも可能である。例えば、特定の仮想マシン以外の仮想マシン（「優先割当値」に０が指定されている仮想マシン）を全て選択し、選択された各仮想マシンから「保証割当値」を下回らないように平等にハードウェア割当量を減少させてもよい。まら、「保証割当値」と「付加割当上限値」との和の量のハードウェアが割り当てられている時間が所定の時間以上の仮想マシンを選択し、ハードウェアの割当量を減少させる仮想マシンとして選択してもよい。このような仮想マシンが複数ある場合には、「保証割当値」と「付加割当上限値」との和が大きい順に選択を行う。また、「保証割当値」を下回らないように平等にハードウェア割当量を減少させてもよい。このような仮想マシンは、バグなどの理由により、不当にハードウェア資源を消費している可能性があるからである。
【００３７】
また、割当情報保持部１３２が保持する割当情報に、割り当てるハードウェア資源の量を減少させる優先度が含まれ、その優先度の大きさの順に従って、割り当てるハードウェア資源の量を減少させてもよい。
【００３８】
図５は、サーバ１０１のハードウェア構成図の一例である。サーバ１０１は、ＣＰＵ５０１と、一時記憶５０２と、二次記憶５０３と、入出力Ｉ／Ｆ（インターフェース）５０４とがバスで接続された構成となっている。なお、ＣＰＵ５０１、一時記憶５０２、二次記憶５０３及び入出力Ｉ／Ｆ５０４をそれぞれ一つずつ示したが、任意の数のＣＰＵ５０１などを備えることができる。
【００３９】
例えば、ＣＰＵ５０１、一時記憶５０２、二次記憶５０３及び入出力Ｉ／Ｆ５０４は、図１のＨＷ１（１１１）、ＨＷ２（１１２）、…、ＨＷｍ（１１３）に対応しているとすることができる。また、二次記憶５０３には、制御部１３１を実現するプログラムが格納されており、また、割当情報も二次記憶５０３に格納されているとすることができる。二次記憶５０３に格納されたそのプログラムが一時記憶５０２にロードされ、ＣＰＵ５０１により実行されると、初期化の処理の一部として、二次記憶５０３に格納されている割当情報が一時記憶５０２にロードされ、割当情報保持部１３２が実現される。その後、仮想マシンが生成され、制御部１３１がハードウェアの割り当てを制御する。
【符号の説明】
【００４０】
１０１  サーバ、１１１  ＨＷ１、１１２  ＨＷ２、１１３  ＨＷｍ、１２１  ＶＭ１、１２２  ＶＭ２、１２３  ＶＭｎ、１３１  制御部、１３２  割当情報保持部
【図１】
2014225116.tif 000003
【図２】
2014225116.tif 000004
【図３】
2014225116.tif 000005
【図４】
2014225116.tif 000006
【図５】
2014225116.tif 000007