JP5333735B2 - 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム - Google Patents

仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム Download PDF

Info

Publication number
JP5333735B2
JP5333735B2 JP2009015251A JP2009015251A JP5333735B2 JP 5333735 B2 JP5333735 B2 JP 5333735B2 JP 2009015251 A JP2009015251 A JP 2009015251A JP 2009015251 A JP2009015251 A JP 2009015251A JP 5333735 B2 JP5333735 B2 JP 5333735B2
Authority
JP
Japan
Prior art keywords
virtual
virtual machine
transfer
physical node
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009015251A
Other languages
English (en)
Other versions
JP2010176178A (ja
Inventor
洋介 岩松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009015251A priority Critical patent/JP5333735B2/ja
Publication of JP2010176178A publication Critical patent/JP2010176178A/ja
Application granted granted Critical
Publication of JP5333735B2 publication Critical patent/JP5333735B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、物理ノード上に構築された仮想計算機を備える仮想計算機システム、仮想計算機のマイグレーション方法、及びこれらを実現するためのプログラムに関する。
近年、コンピュータの性能向上に伴い、1台のコンピュータ上に複数の仮想マシン(VM:Virtual Machine)が構築される仮想マシン環境の利用が増加している(例えば、特許文献1〜特許文献3参照。)。仮想マシン(VM)は、ソフトウェアによる論理的なプラットフォームであり、ゲストオペレーティングシステムを動作させることができる。そして、仮想マシン環境下では、複数の仮想マシンは、同時に、それぞれ異なったオペレーティングシステム(OS)を実行することができるので、ハードウェアの利用効率の向上や、柔軟な運用が可能となる。
この仮想マシン環境の構築方法には幾つかあり、例えば、ホストOS型と、仮想マシンモニタ型とが知られている。このうち、ホストOS型は、ホストOS上に、物理ハードウェアをエミュレートする環境を載せ、その上で別のゲストOSを動作させる方式である。ホストOS型では、エミュレートはホストOSが有する機能によって実現される。
一方、仮想マシンモニタ型は、物理ハードウェア上で、直接、これをエミュレートする専用のプログラム(仮想マシンモニタ(VMM:Virtual Machine Monitor))を動作させる方式である。この方式では、ホストOS型に比べて小さなオーバーヘッドで、仮想マシン環境を実装できる。
また、仮想マシン環境においては、仮想マシンのライブマイグレーションが行われる。ライブマイグレーションは、実行中の仮想マシンを、ある物理ノードから別の物理ノードへと移動させる技術であり、これによれば、サービスの提供を中断することなく、仮想マシンを再配置できる。この結果、物理ハードウェアの故障時や保守作業時においてもサービスの提供の中断を回避できる。また、ライブマイグレーションを利用すれば、物理ノード間での負荷のバランシングを行うことも可能になる。
但し、仮想マシンのライブマイグレーションは、仮想マシンの有する仮想デバイス及び仮想メモリを全て移動先ノードにコピーし、移動元ノードで仮想プロセッサの実行を停止し、そして移動先ノードでの実行を再開することによって行われている。よって、仮想マシンのライブマイグレーションを開始してから完了するまでには一定の時間がかかる。
特に、多数のプロセッサや大容量のメモリ、多数のIOデバイスを搭載した物理ノードにおいては、その上で動作させる仮想マシンの仮想プロセッサ数やメモリ容量、仮想IOデバイス数も大規模になると予想される。この場合、仮想マシンのライブマイグレーションに必要な時間は大きくなると考えられる。
更に、マイグレーションを実行している最中はシステムの負荷が増大し、仮想マシンが使用している資源もマイグレーションが終了するまでは解放されないため、移動元ノードにおいて空き資源が必要な場合に即座に利用することができない、という問題もある。
仮想マシンのライブマイグレーションに必要な時間を短縮する方法としては、仮想マシンに関連する全てのデータの転送を待たずに、移動先のノードで、仮想マシンの実行を開始する方法が挙げられる。具体的には、特許文献1に開示されている仮想計算機(仮想マシン)システムでは、仮想マシンの内容のうちメモリ以外のコンテクストが先に移動先ノードにコピーされ、即座に、移動先ノードでの仮想マシンの実行が開始される。そして、仮想マシンのメモリの移動先ノードへの転送は、デマンドコピーを用いて後から行われる。このため、特許文献1に開示されている仮想計算機システムでは、ライブマイグレーションに必要な時間の短縮が図られる。
特開2004−133894号公報 特開2007−066265号公報 国際公開第2008/117470号パンフレット
しかしながら、特許文献1に開示されている仮想計算機システムでは、メモリの転送が終了していない場合、移動先ノードからメモリのアクセスを行うたびに、デマンドコピーのためにリモートノードへのアクセスが頻繁に発生する。このため、メモリの転送が終了するまでの間、仮想マシンの実行性能が低下するという問題が発生してしまう。
本発明の目的は、上記問題を解消し、仮想計算機のマイグレーション時において、仮想計算機の実行性能の低下を抑制し得る、仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明における仮想計算機システムは、複数の物理ノードを備え、前記複数の物理ノードの少なくとも一つには仮想計算機が構築されている、仮想計算機システムであって、
仮想計算機管理部を備え、
前記仮想計算機は、仮想プロセッサ及び仮想資源を少なくとも備え、
前記仮想計算機管理部は、
前記仮想プロセッサから仮想資源へのアクセスを検出し、検出した前記アクセスの頻度に基づいて、前記仮想プロセッサと前記仮想資源との関連の度合いを求め、前記仮想計算機を転送元の物理ノードから別の転送先の物理ノードに転送させる際に、求めた前記度合いを利用する、ことを特徴とする。
また、上記目的を達成するため、本発明における仮想計算機のマイグレーション方法は、複数の物理ノードを備え、前記複数の物理ノードの少なくとも一つには、仮想プロセッサ及び仮想資源を少なくとも備える仮想計算機が構築されている、仮想計算機システムにおいて、前記仮想計算機のマイグレーションを行うための方法であって、
(a)前記仮想プロセッサから仮想資源へのアクセスを検出し、検出した前記アクセスの頻度に基づいて、前記仮想プロセッサと前記仮想資源との関連の度合いを求めるステップと、
(b)前記仮想計算機を転送元の物理ノードから別の転送先の物理ノードに転送させる際に、求めた前記度合いを利用するステップとを有することを特徴とする。
更に、上記目的を達成するため、本発明におけるプログラムは、複数の物理ノードを備え、前記複数の物理ノードの少なくとも一つには、仮想プロセッサ及び仮想資源を少なくとも備える仮想計算機が構築されている、仮想計算機システムにおいて、前記仮想計算機システムを構成するコンピュータに、前記仮想計算機のマイグレーションを実行させるためのプログラムであって、
前記コンピュータに、
(a)前記仮想プロセッサから仮想資源へのアクセスを検出し、検出した前記アクセスの頻度に基づいて、前記仮想プロセッサと前記仮想資源との関連の度合いを求めるステップと、
(b)前記仮想計算機を転送元の物理ノードから別の転送先の物理ノードに転送させる際に、求めた前記度合いを利用するステップとを実行させる、ことを特徴とする。
以上の特徴により、本発明における仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラムによれば、仮想計算機のマイグレーション時において、仮想計算機の実行性能の低下が抑制される。
図1は、本発明の実施の形態における計算機システムの通常時における構成を示すブロック図である。 図2は、本発明の実施の形態における計算機システムのマイグレーション時における構成を示すブロック図である。 図3は、図1に示した仮想計算機管理部の通常時における一連の主な動作を示すフロー図である。 図4は、図1に示した仮想資源アクセステーブルに格納されている情報の一例を示す図である。 図5は、図2に示した仮想計算機管理部のマイグレーション時における一連の主な動作を示すフロー図である。 図6(a)は、図2に示した転送元の仮想資源管理テーブルに格納されている情報の一例を示し、図6(b)は、図2に示した転送先の仮想資源管理テーブルに格納されている情報の一例を示す図である。 図7は、図2に示した仮想計算機管理部が仮想資源管理テーブルの更新処理を行う際の一連の主な動作を示すフロー図である。 図8は、マイグレーション時に仮想資源へのアクセス要求があった場合における図2に示した仮想計算機管理部の一連の主な動作を示すフロー図である。 図9は、本実施の形態2における計算機システムでの仮想計算機管理部のマイグレーション時における一連の主な動作を示すフロー図である。
(実施の形態1)
以下、本発明の実施の形態1における仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラムについて、図1〜図8を参照しながら説明する。最初に、本実施の形態1における仮想計算機システムの概略構成について図1及び図2を用いて説明する。図1は、本発明の実施の形態における計算機システムの通常時における構成を示すブロック図である。図2は、本発明の実施の形態における計算機システムのマイグレーション時における構成を示すブロック図である。
図1に示すように、本実施の形態1における仮想計算機システム100は、複数の物理ノードを備え、複数の物理ノードの少なくとも一つには、仮想計算機が構築されている。本実施の形態1では、物理ノードの個数は特に限定されないが、図1には物理ノード101と物理ノード201とが例示されている。物理ノード101及び201は、実際には、コンピュータであり、ネットワーク115によって互いに接続されている。
本実施の形態では、物理ノード101及び201の両方において、仮想計算機(以下「仮想マシン」とする。)が構築されている。そして、物理ノード101に構築されている仮想マシン103は、ゲストOS104から指示に従って動作を行う。物理ノード201に構築されている仮想マシン113は、ゲストOS114からの指示に従って動作を行う。
図1に示すように、仮想マシン103は、仮想プロセッサ105及び106と、仮想メモリ領域107及び108と、仮想デバイス109及び110とを備えている。仮想マシン113も、仮想マシン103と同様に、仮想プロセッサ、仮想メモリ領域及び仮想デバイスを備えている。図1においては、仮想マシン113の構成は簡略化して示されている。なお、各物理ノードに構築されている仮想マシンの数や、ゲストOSの数は、限定されない。本実施の形態1は、一つの物理ノードに、複数の仮想マシンが構築され、且つ、複数のゲストOSがインストールされている態様であっても良い。
また、図1に示すように、仮想計算機システム100は、物理ノード毎に、仮想計算機管理部102及び202を備えている。仮想計算機管理部102及び202は、物理ノード101または102の上に仮想マシンを構築するための、いわゆる「仮想マシンモニタ」である。仮想計算機管理部102は、仮想マシン103を構築し、仮想計算機管理部202は、仮想マシン113を構築している。
また、本実施の形態において、仮想計算機管理部102及び202は、プログラムによって実現されている。プログラムは、仮想マシン環境を実現するために必要な機能を物理ノードのハードウェアに提供する。また、このプログラムが後述する本実施の形態におけるプログラムとなる。
ところで、仮想計算機管理部102及び202は、上述した特許文献1〜3に開示されている仮想マシンモニタと同様に機能することができるが、更に、以下の機能も備えている。即ち、仮想計算機管理部102及び202は、仮想プロセッサから仮想資源へのアクセスを検出し、検出したアクセスの頻度に基づいて、仮想プロセッサと仮想資源との関連の度合いを求める。そして、仮想計算機管理部102及び103は、仮想計算機を転送元の物理ノードから別の転送先の物理ノードに転送させる際に(マイグレーションの際に)、求めた度合い(以下「関連度」と表記する。)を利用することができる。よって、仮想計算機システム100では、仮想計算機のマイグレーションを効率的に行うことができ、仮想マシンの実行性能の低下が抑制される。

本実施の形態1において、「関連の度合いを用いる」とは、仮想計算機管理部102及び202が、仮想計算機を転送させる際に、求めた関連の度合いに基づいて、仮想計算機を分割し、分割した部分毎に転送を実行することをいう。つまり、本実施の形態1では、各仮想プロセッサが利用する仮想資源には局所性があることが利用され、仮想プロセッサと仮想資源とは関連付けてグループ化され、仮想マシンは段階的に転送される。そのため、マイグレーション時に仮想プロセッサが仮想資源にアクセスする場合において、リモートノードへのアクセスが発生する頻度が低減されるので、仮想マシンの実行性能の低下が抑制される。
また、本実施の形態1では、関連の深い仮想プロセッサと仮想資源とが一つの組となって転送が行われるため、仮想マシンを一括してマイグレートする場合に比べて、仮想マシンが利用していた資源を部分的に早めに解放することができる。よって、移動元の物理ノードにおいては、空き資源が利用可能になるまでの時間の短縮化が図られ、仮想計算機システム100全体の性能向上も図られる。
また、具体的には、図1に示すように、仮想計算機管理部102は、仮想マシン103において、仮想資源アクセス監視部111と、仮想資源アクセステーブル112とを備えている。仮想資源アクセステーブル監視部111は、仮想プロセッサ105及び106からの仮想資源(仮想メモリ領域107及び108、仮想デバイス109及び110)への命令を監視する。
更に、仮想資源アクセステーブル監視部111は、仮想プロセッサ105及び106が、仮想メモリ領域107及び108のいずれにアクセスしたのか、又は仮想デバイス109及び110のいずれにアクセスしたのかを仮想資源アクセステーブル112に記録する。仮想計算機管理部102は、仮想資源アクセステーブル112に格納されている情報に基づいて、関連度を計算する。なお、本実施の形態は、仮想計算機管理部202も、同様に関連度の計算が可能な態様であっても良い。
ここで、図2を用いて、仮想計算機がマイグレーション(転送)される際の、仮想計算機システムの構成について説明する。また、以下においては、物理ノード101を転送元の物理ノードとし、物理ノード201を転送先の物理ノードとして、仮想マシン103が、転送される例について説明する。なお、図2においては、最初から存在する、ゲストOS114及び仮想マシン113の図示は、省略されている。
仮想計算機システムのユーザが、仮想マシン103のマイグレーションを指示すると、転送元の仮想計算機管理部102は、最初に、転送させる仮想プロセッサ(105又は106)を選択する。そして、仮想計算機管理部102は、算出された関連度に基づいて、選択した仮想プロセッサからのアクセス頻度が高い、仮想デバイス(109又は110)と仮想メモリ領域(107又は108)を選択する。
仮想計算機管理部102が、仮想プロセッサ106を選択し、これとの関連度が高い仮想資源が仮想メモリ領域108及び仮想デバイス110であるときは、仮想プロセッサ106、仮想メモリ領域108及び仮想デバイス110が先に転送される。このとき、本実施の形態1では、仮想プロッセ106の動作は、一旦、停止されるが、転送が終了すると、再開される。
仮想計算機システム100の構成は、図2に示す構成となる。図2に示すように、転送元の物理ノード101には、仮想計算機103の一部分103aが存在し、転送先の物理ノード201には、仮想計算機103の一部分103bが存在している。また、転送元の仮想計算機管理部102は、部分103aにおいて、仮想資源アクセス要求受付部203と、ネットワーク送受信部204と、仮想資源管理テーブル205とを新たに構築する。更に、転送先の仮想計算機管理部202は、部分103bにおいて、仮想資源アクセス要求受付部206と、ネットワーク送受信部207と、仮想資源管理テーブル208とを新たに構築する。
仮想資源アクセス要求受理部203及び206は、ゲストOS104からの命令を受信すると、対応する仮想資源管理テーブル205又は208を参照し、命令の実行に必要な仮想資源がどちらの物理ノード(101又は201)にあるかを判定する。なお、仮想資源管理テーブル205及び208によって格納される情報については、図6を用いて後述する。
また、仮想資源アクセス要求管理部203及び206は、それと同一の物理ノードに、必要な仮想資源が存在している場合は、ゲストOS104からの命令を仮想プロセッサに実行させる。一方、仮想資源アクセス要求管理部203及び206は、それと同一の物理ノードに、必要な仮想資源が存在していない場合は、対応するネットワーク送受信部204又は207を経由して、ゲストOS104からの命令を仮想プロセッサに実行させる。
このように、本実施の形態1では、仮想マシン103を分割して転送している最中であっても、仮想マシン103の動作は継続している。そして、仮想マシン103の転送中に、仮想資源へのアクセス要求が生じた場合は、仮想資源がローカルのノードにある場合はそのまま仮想資源へのアクセスが実施される。一方、仮想資源がリモートのノードにある場合は、アクセス要求をリモートの物理ノードに転送し、そこで仮想資源へのアクセスが実施される。なお、アクセス対象となる仮想資源が物理ノード間で転送中の場合は、この仮想資源へのアクセスは、一定時間待機状態となる。
その後、仮想計算機管理部102は、残りの仮想プロセッサ105を選択し、更に、これとの関連度が高い仮想メモリ領域107及び仮想デバイス109を選択し、これらを転送先の物理ノード201に転送する。そして、仮想計算機103の残りの部分103aの転送が終了すると、マイグレーションが終了し、転送先の物理ノード201に、仮想マシン103が完全に構築される。そして、仮想プロセッサ105及び106は処理を完全に再開する。
次に、図1及び図2に示した仮想計算機システムにおける動作について、通常時(マイグレーション前)とマイグレーション時とに分けて、図3〜図8を用いて説明する。なお、本実施の形態1における仮想計算機のマイグレーション方法は、図1及び図2に示した本実施の形態1における仮想計算機システムを動作させることによって実施される。このため、本実施の形態1における仮想計算機のマイグレーション方法の説明は、以下の仮想計算機システム100の動作の説明に代える。また、以下の説明では、適宜、図1及び図2を参照する。
先ず、図1を参照しながら、図3及び図4を用いて、通常時(マイグレーション前)における仮想計算機システムの動作を、仮想マシン103を例に挙げて説明する。図3は、図1に示した仮想計算機管理部の通常時における一連の主な動作を示すフロー図である。図4は、図1に示した仮想資源アクセステーブルに格納されている情報の一例を示す図である。
図3に示すように、先ず、仮想資源アクセス監視部111は、ゲストOS104(仮想プロセッサ105又は106)からの仮想メモリ領域(107又は108)、または仮想デバイス(109または110)へのアクセスを検出する(ステップA301)。
次に、仮想資源アクセス監視部111は、アクセス元の仮想プロセッサを識別する(ステップA302)。続いて、仮想資源アクセス監視部111は、アクセス元の仮想プロセッサとアクセス先の仮想資源とに基づいて、仮想資源アクセステーブル112(図4参照)を更新する(ステップA303)。ステップA303の実行後、仮想資源アクセス監視部111における処理は、一旦終了する。
図4に示すように、ステップA303において、仮想資源アクセステーブル112には、仮想プロセッサから各仮想資源にアクセスした際のアクセス頻度が格納される。そして、仮想計算機管理部102は、仮想資源アクセステーブル112に格納されているアクセス頻度が高いほど、仮想プロセッサと仮想資源との関連が強いと判断する。なお、仮想資源アクセステーブル112には、仮想マシン103の起動時からの累計が格納されていても良いし、直近の特定期間内の累計が格納されていても良い。
次に、図2を参照しながら、図5〜図8を用いて、マイグレーション時における仮想計算機システムの動作を説明する。図5は、図2に示した仮想計算機管理部のマイグレーション時における一連の主な動作を示すフロー図である。図6(a)は、図2に示した転送元の仮想資源管理テーブルに格納されている情報の一例を示し、図6(b)は、図2に示した転送先の仮想資源管理テーブルに格納されている情報の一例を示す図である。
図5に示すように、ユーザがマイグレーションの指示を出すと、最初に、転送元の仮想計算機管理部102は、先に転送させる仮想プロセッサ(図2においては仮想プロセッサ106)を選択する(ステップA501)。なお、ステップA501では、ユーザに先に移動させる仮想プロセッサの選択を行わせても良い。また、ステップA501において、仮想プロセッサの選択順は、予め、各仮想プロセッサに付与された識別番号の順であっても良い。
次に、転送元の仮想計算機管理部102は、仮想資源アクセステーブル112を参照し、選択した仮想プロセッサと関連の強い仮想メモリ領域及び仮想デバイスを選択する(ステップA502)。具体的には、ステップA502において、仮想計算機管理部102は、仮想資源アクセステーブル112を参照して、各仮想メモリ領域及び仮想デバイスについて、最もアクセスされている頻度が高い、アクセス元の仮想プロセッサを検索する。そして、仮想計算機管理部102は、検索した仮想プロセッサと、転送対象として選択した仮想プロセッサとが一致する場合、当該仮想メモリ領域または仮想デバイスを転送させる仮想資源として選択する。
次に、転送元の仮想計算機管理部102は、選択した仮想プロセッサを停止し(ステップA503)、選択した仮想メモリ領域及び仮想デバイスを転送先の仮想計算機管理部202へ転送する(ステップA504)。
次に、転送元の仮想計算機管理部102は、転送先の仮想計算機管理部202に、選択した仮想プロセッサの内容を転送する(ステップA505)。その後、転送先の仮想計算機管理部202は、転送が終了した仮想プロセッサの実行を再開する(ステップA506)。
次に、転送元の仮想計算機管理部102は、仮想プロセッサが全て転送済みかどうかを判定する(ステップA507)。ステップA507の判定の結果、転送済みでない場合は、転送元の仮想計算機管理部102は、転送の済んでいない仮想プロセッサに対して、ステップA501からステップA506の処理を繰り返す。一方、ステップA507の判定の結果、仮想プロセッサが全て転送済みの場合は、転送元の仮想計算機管理部102は、マイグレーションを終了する。
また、ステップA501〜A507の実行中において、転送元の仮想計算機管理部102は、仮想資源管理テーブル205に対して、転送先の仮想計算機管理部202は、仮想資源管理テーブル208に対して、情報の書き込みを行う。図6(a)及び(b)に示すように、各テーブルには、仮想マシン103のマイグレーション中において、各仮想計算機管理部から見て、各仮想資源がローカルにあるのか、又はリモートにあるのか、更には転送中であるのかを特定する情報が、記述される。
ここで、図7を用いて、仮想資源管理テーブル205及び208の更新処理について説明する。図7は、図2に示した仮想計算機管理部が仮想資源管理テーブルの更新処理を行う際の一連の主な動作を示すフロー図である。
図7に示すように、先ず、転送元の仮想計算機管理部102は、マイグレーションを実行すると、転送の対象となる仮想プロセッサ及び仮想資源を選択し、仮想資源管理テーブル205及び208の該当する箇所のフラグを「転送中」に設定する(ステップA701)。なお、ステップA701において、転送先の仮想資源管理テーブル208でのフラグの設定は、転送元の仮想計算機管理部102からの指示により、転送先の仮想計算機管理部202が行っている。
次に、転送元の仮想計算機管理部102が、実際に仮想資源の転送を行う(ステップ702)。転送が終了すると、転送元の仮想計算機管理部102は、転送元の仮想資源管理テーブル205の該当する仮想資源のフラグを「リモート」に設定する(ステップA703)。続いて、転送先の仮想計算機管理部202は、転送先の仮想資源管理テーブル208の該当する仮想資源のフラグを「ローカル」に設定する(ステップA704)。ステップA701〜A704の処理が繰り返され、仮想資源管理テーブル205及び208の更新が行われる。
続いて、図8を用いて、仮想マシン103をマイグレートしている最中に、ゲストOS104が、転送元の仮想計算機管理部102に対して、又は転送先の仮想計算機管理部202に対して、仮想資源へのアクセスを要求した場合の処理について説明する。図8は、マイグレーション時に仮想資源へのアクセス要求があった場合における図2に示した仮想計算機管理部の一連の主な動作を示すフロー図である。
図8に示すように、最初に、仮想資源アクセス要求受理部203(又は204)が、ゲストOS104から仮想資源へのアクセス要求を受信する(ステップA801)。次に、仮想資源アクセス要求受理部203(又は204)は、仮想資源所在管理テーブル207(又は208)を参照し、該当する仮想資源のフラグが「ローカル」であるかどうかを判定する(ステップA802)。
ステップA802の判定の結果、フラグが「ローカル」の場合、仮想資源アクセス要求受理部203(又は204)は、ゲストOS104による仮想資源へのアクセスをそのまま実行させ(ステップA803)、処理を終了する。
一方、ステップA802の判定の結果、フラグが「ローカル」でない場合は、仮想資源アクセス要求受理部203(又は204)は、更に、フラグが「転送中」であるかどうかを判定する(ステップA804)。
ステップA804の判定の結果、フラグが「転送中」の場合は、仮想資源アクセス要求受理部203(又は204)は、設定された時間の間、待機状態となり(ステップA805)、その後歩、再度ステップA802を実行する。一方、ステップA804の判定の結果、フラグが「転送中」でない場合は、仮想資源はリモートにある。この場合、仮想資源アクセス要求受理部203(又は204)は、アクセス要求をリモートへ転送する(ステップA806)。ステップA806の実行後は、ゲストOS104は、リモートの物理ノードにおいて、仮想資源へのアクセスを実行する(ステップ807)。
このように、仮想計算機管理部102が転送を実行すると、転送先の物理ノード201では、仮想計算機管理部202は、ゲストOS104からのアクセスが検出された仮想資源の転送が終了していることを条件として、ゲストOS104によるアクセスを許可する。この場合、ゲストOS104による命令が、待機状態となる場合は存在するが、仮想マシン103における処理が停止されることはない。
本実施の形態1におけるプログラムは、コンピュータに、図3に示すステップA301〜A303、図5に示すステップA501〜A506、図7に示すステップA701〜A704、及び図8に示すステップA801〜A805を実行させるプログラムであれば良い。本実施の形態におけるプログラムをコンピュータにインストールし、実行することによって、本実施の形態1における仮想計算機システム100を実現することができる。この場合、コンピュータのCPU(central processing unit)は、少なくとも、仮想計算機管理部102、仮想計算機管理部202、及び仮想マシン103として機能し、処理を行なう。
(実施の形態2)
次に、本発明の実施の形態2における仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラムについて、図9を参照しながら説明する。図9は、本実施の形態2における計算機システムでの仮想計算機管理部のマイグレーション時における一連の主な動作を示すフロー図である。
本実施の形態2においては、仮想計算機システムの構成は、図1及び図2に示した実施の形態1における仮想計算機システム100の構成と同様である。本実施の形態2は、仮想計算機管理部における処理の点で、実施の形態1と異なっている。以下に具体的に説明する。なお、実施の形態2における仮想計算機システムの構成は、実施の形態1における仮想計算機システム100の構成と同様であるため、以下の説明においては図1及び図2を参照する。
図9に示すように、最初に、ユーザがマイグレーションの指示を出すと、転送元の仮想計算機管理部102は、先に転送させる仮想プロセッサを選択する(ステップA901)。次に、転送元の仮想計算機管理部102は、仮想資源アクセステーブル112を参照し、選択した仮想プロセッサと関連の強い仮想メモリ領域及び仮想デバイスを選択する(ステップA902)。
次に、転送元の仮想計算機管理部102は、選択した仮想プロセッサを停止せずに、選択した仮想プロセッサ、仮想メモリ領域、及び仮想デバイスの内容を転送する(ステップA903)。次に、転送中であっても転送元において仮想プロセッサ103は稼動しているため、転送元の仮想計算機管理部102は、転送を開始してから完了するまで、転送開始時と現在との間の差分を取得し、これを記録する(ステップA904)。
次に、転送元の仮想計算機管理部102は、ステップA904で取得された差分(転送中に生じた差分)と、予め設定された閾値とを対比し、取得された差分が閾値より小さいかどうかを判定する(ステップA905)。
ステップA905の判定の結果、取得された差分(転送中に生じた差分)が閾値より小さくない場合は、転送元の仮想計算機管理部102は、取得した差分を、転送先の仮想計算機管理部202に転送する(ステップA906)。そして、ステップA906が実行されると、再度ステップA904が実行されるが、この場合は、ステップA906の実行時と現在との間の差分が取得される。
一方、ステップA904〜ステップA906の処理が繰り返し行われ、ステップA905の判定の結果、ステップA904で取得された差分の大きさが閾値より小さくなった場合、転送元の仮想計算機管理部202は、転送元の物理ノード101において、ステップA901で選択した仮想プロセッサを停止する(ステップA907)。
次に、転送元の仮想計算機管理部102は、ステップA906の実行後に生じた差分を取得し、このとき生じた差分を転送先の仮想計算機管理部202に転送する(ステップA908)。その後、転送先の仮想計算機管理部202は、転送が終了した仮想プロセッサの実行を再開する(ステップA909)。
次に、転送元の仮想計算機管理部102は、仮想プロセッサが全て転送済みかどうかを判定する(ステップA910)。ステップA910の判定の結果、転送済みでない場合は、転送元の仮想計算機管理部102は、転送の済んでいない仮想プロセッサに対して、ステップA901からステップA909の処理を繰り返す。一方、ステップA910の判定の結果、仮想プロセッサが全て転送済みの場合は、転送元の仮想計算機管理部102は、マイグレーションを終了する。
このように、実施の形態2においては、仮想計算機管理部102は、仮想マシンが動作している状態で、その転送を実行する。更に、仮想計算機管理部102は、転送を実行しながら、仮想マシン103の転送の開始時点からの変化を検出し、検出した変化が設定された状態となった場合に、転送元の物理ノード101で仮想マシン103を停止させる。なお、既に一度以上の転送が行われた後においては、「開始時点」には、最新の転送の開始時点も含まれる。
つまり、本実施の形態2においては、仮想マシン103を分割してマイグレートする場合に、仮想プロセッサの停止をできる限り行わないようにして、仮想資源の移動が行われる。このため、本実施の形態2によれば、実施の形態1に比べて、仮想プロセッサの停止時間の短縮化が図られる。
100 仮想計算機システム
101 物理ノード
102 仮想計算機管理部(仮想マシンモニタ)
103 仮想計算機(仮想マシン)
103a、103b 分割された仮想計算機
104 ゲストOS
105 仮想プロセッサ
106 仮想プロセッサ
107 仮想メモリ領域
108 仮想メモリ領域
109 仮想デバイス
110 仮想デバイス
111 仮想資源アクセス監視部
112 仮想資源アクセステーブル
113 仮想マシン
114 ゲストOS
115 ネットワーク
201 物理ノード
202 仮想計算機管理部(仮想マシンモニタ)
203 仮想資源アクセス要求受付部
204 ネットワーク送受信部
205 仮想資源管理テーブル
206 仮想資源アクセス要求受付部
207 ネットワーク送受信部
208 仮想資源管理テーブル

Claims (12)

  1. 複数の物理ノードを備え、前記複数の物理ノードの少なくとも一つには仮想計算機が構築されている、仮想計算機システムであって、
    仮想計算機管理部を備え、
    前記仮想計算機は、仮想プロセッサ及び仮想資源を少なくとも備え、
    前記仮想計算機管理部は、
    前記仮想プロセッサから仮想資源へのアクセスを検出し、検出した前記アクセスの頻度に基づいて、前記仮想プロセッサと前記仮想資源との関連の度合いを求め、前記仮想計算機を転送元の物理ノードから別の転送先の物理ノードに転送させる際に、求めた前記度合いを利用する、ことを特徴とする仮想計算機システム。
  2. 前記仮想計算機管理部が、前記仮想計算機を前記転送元の物理ノードから前記転送先の物理ノードに転送させる際に、求めた前記度合いに基づいて、前記仮想計算機を分割し、分割した部分毎に転送を実行する、請求項1に記載の仮想計算機システム。
  3. 前記仮想計算機管理部が、前記転送元の物理ノードと前記転送先の物理ノードとにそれぞれ設けられ、
    前記転送元の物理ノードに設けられた前記仮想計算機管理部は、前記転送を実行し、
    前記転送先の物理ノードに設けられた前記仮想計算機管理部は、前記転送先の物理ノードにおいて、前記転送の対象となった前記仮想計算機の前記仮想資源へのアクセスを検出した場合は、前記アクセスが検出された前記仮想資源が転送中でないことを条件として前記アクセスを許可する、請求項2に記載の仮想計算機システム。
  4. 前記仮想計算機管理部が、前記転送元の物理ノードにおいて前記仮想計算機が動作している状態で、その転送を実行し、そして、
    前記転送を実行しながら、前記仮想計算機における前記転送の開始時点からの変化を検出し、検出した前記変化が設定された状態となった場合に、前記転送元の物理ノードにおいて前記仮想計算機を停止させる、請求項2に記載の仮想計算機システム。
  5. 複数の物理ノードを備え、前記複数の物理ノードの少なくとも一つには、仮想プロセッサ及び仮想資源を少なくとも備える仮想計算機が構築されている、仮想計算機システムにおいて、前記仮想計算機のマイグレーションを行うための方法であって、
    (a)前記仮想プロセッサから仮想資源へのアクセスを検出し、検出した前記アクセスの頻度に基づいて、前記仮想プロセッサと前記仮想資源との関連の度合いを求めるステップと、
    (b)前記仮想計算機を転送元の物理ノードから別の転送先の物理ノードに転送させる際に、求めた前記度合いを利用するステップとを有する、ことを特徴とする仮想計算機のマイグレーション方法。
  6. 前記(b)のステップにおいて、前記仮想計算機を前記転送元の物理ノードから前記転送先の物理ノードに転送させる際に、求めた前記度合いに基づいて、前記仮想計算機を分割し、分割した部分毎に転送を実行する、請求項5に記載の仮想計算機のマイグレーション方法。
  7. (c)前記転送先の物理ノードにおいて、前記転送の対象となった前記仮想計算機の前記仮想資源へのアクセスを検出した場合に、前記アクセスが検出された前記仮想資源が転送中でないことを条件として前記アクセスを許可する、ステップを更に有する、請求項6に記載の仮想計算機のマイグレーション方法。
  8. (d)前記転送元の物理ノードにおいて前記仮想計算機が動作している状態で、その転送が実行されている場合に、前記転送を実行しながら、前記仮想計算機における前記転送の開始時点からの変化を検出し、検出した前記変化が設定された状態となった場合に、前記転送元の物理ノードにおいて前記仮想計算機を停止させる、ステップを更に有する、請求項6に記載の仮想計算機のマイグレーション方法。
  9. 複数の物理ノードを備え、前記複数の物理ノードの少なくとも一つには、仮想プロセッサ及び仮想資源を少なくとも備える仮想計算機が構築されている、仮想計算機システムにおいて、前記仮想計算機システムを構成するコンピュータに、前記仮想計算機のマイグレーションを実行させるためのプログラムであって、
    前記コンピュータに、
    (a)前記仮想プロセッサから仮想資源へのアクセスを検出し、検出した前記アクセスの頻度に基づいて、前記仮想プロセッサと前記仮想資源との関連の度合いを求めるステップと、
    (b)前記仮想計算機を転送元の物理ノードから別の転送先の物理ノードに転送させる際に、求めた前記度合いを利用するステップとを実行させる、ことを特徴とするプログラム。
  10. 前記(b)のステップにおいて、前記仮想計算機を前記転送元の物理ノードから前記転送先の物理ノードに転送させる際に、求めた前記度合いに基づいて、前記仮想計算機を分割し、分割した部分毎に転送を実行する、請求項9に記載のプログラム。
  11. (c)前記転送先の物理ノードにおいて、前記転送の対象となった前記仮想計算機の前記仮想資源へのアクセスを検出した場合に、前記アクセスが検出された前記仮想資源が転送中でないことを条件として前記アクセスを許可する、ステップを、前記コンピュータに更に実行させる、請求項10に記載のプログラム。
  12. (d)前記転送元の物理ノードにおいて前記仮想計算機が動作している状態で、その転送が実行されている場合に、前記転送を実行しながら、前記仮想計算機における前記転送の開始時点からの変化を検出し、検出した前記変化が設定された状態となった場合に、前記転送元の物理ノードにおいて前記仮想計算機を停止させる、ステップを、前記コンピュータに更に実行させる、請求項10に記載のプログラム。
JP2009015251A 2009-01-27 2009-01-27 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム Expired - Fee Related JP5333735B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009015251A JP5333735B2 (ja) 2009-01-27 2009-01-27 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009015251A JP5333735B2 (ja) 2009-01-27 2009-01-27 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010176178A JP2010176178A (ja) 2010-08-12
JP5333735B2 true JP5333735B2 (ja) 2013-11-06

Family

ID=42707140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009015251A Expired - Fee Related JP5333735B2 (ja) 2009-01-27 2009-01-27 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5333735B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093495A1 (ja) 2011-01-07 2012-07-12 富士通株式会社 プロファイル処理プログラム、データ中継装置およびプロファイル制御方法
KR101555266B1 (ko) * 2011-09-01 2015-09-23 후아웨이 테크놀러지 컴퍼니 리미티드 자원 이주를 위한 방법, 장치 및 시스템
US8756601B2 (en) * 2011-09-23 2014-06-17 Qualcomm Incorporated Memory coherency acceleration via virtual machine migration
WO2014033882A1 (ja) * 2012-08-30 2014-03-06 富士通株式会社 稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体
US10620987B2 (en) 2018-07-27 2020-04-14 At&T Intellectual Property I, L.P. Increasing blade utilization in a dynamic virtual environment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US8032899B2 (en) * 2006-10-26 2011-10-04 International Business Machines Corporation Providing policy-based operating system services in a hypervisor on a computing system
JP2008299791A (ja) * 2007-06-04 2008-12-11 Hitachi Ltd 仮想計算機システム
JP5029440B2 (ja) * 2008-03-14 2012-09-19 富士通株式会社 情報処理システム、情報処理方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2010176178A (ja) 2010-08-12

Similar Documents

Publication Publication Date Title
US10275286B2 (en) Management systems of cloud resources and management methods thereof
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
JP5834939B2 (ja) プログラム、仮想マシン制御方法、情報処理装置および情報処理システム
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
JP5967215B2 (ja) 情報処理装置、プログラムおよび仮想マシン移動方法
US8413144B1 (en) Providing application-aware high availability of virtual machines
JP4651127B2 (ja) 仮想マシンコンピュータシステム及び仮想マシンコンピュータシステムのフェールセーフ方法
US8479038B1 (en) Method and apparatus for achieving high availability for applications and optimizing power consumption within a datacenter
JP5333735B2 (ja) 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム
JP2007207219A (ja) 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
US9541980B2 (en) Operation management device, operation management method, and recording medium
US9049101B2 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
JP2016110183A (ja) 情報処理システム及び情報処理システムの制御方法
US20200150946A1 (en) System and method for the dynamic expansion of a cluster with co nodes before upgrade
WO2016045439A1 (zh) 一种vnfm容灾保护的方法、装置和nfvo、存储介质
JP2015075898A (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
US20130332751A1 (en) Power supply and program
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
US11875175B2 (en) Providing physical host hardware state information to virtual machines deployed on the physical host
JP2011186821A (ja) 仮想化環境管理システム、装置、方法及びプログラム
JP7000797B2 (ja) 起動管理装置、起動管理システム、起動管理方法、および、起動管理プログラム
KR20220074537A (ko) 가상 머신 환경에서의 블록 커밋 방법 및 그 방법을 수행하는 가상화 시스템
JP2011248616A (ja) サーバシステム、及び、仮想サーバの移行方式を選択する方法
JP2020064567A (ja) 情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法
JP5504651B2 (ja) 仮想マシンシステム、情報処理装置、リソース管理方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130716

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees