JP2014191752A - マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム - Google Patents

マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム Download PDF

Info

Publication number
JP2014191752A
JP2014191752A JP2013068904A JP2013068904A JP2014191752A JP 2014191752 A JP2014191752 A JP 2014191752A JP 2013068904 A JP2013068904 A JP 2013068904A JP 2013068904 A JP2013068904 A JP 2013068904A JP 2014191752 A JP2014191752 A JP 2014191752A
Authority
JP
Japan
Prior art keywords
memory
migration
virtual machine
data
update
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.)
Pending
Application number
JP2013068904A
Other languages
English (en)
Inventor
Hirosuke Yoshida
裕輔 吉田
Tetsuya Okano
哲也 岡野
Kenichiro Shimokawa
健一郎 下川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013068904A priority Critical patent/JP2014191752A/ja
Priority to US14/222,707 priority patent/US20140298333A1/en
Publication of JP2014191752A publication Critical patent/JP2014191752A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】仮想マシンのライブマイグレーションを短時間で行う。
【解決手段】移動元物理サーバ上の仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理において,移動元仮想マシンのメモリのデータを移動元物理サーバから移動先物理サーバへ転送し,移動元仮想マシンによる移動元物理サーバのメモリへのデータの更新頻度を,メモリの単位領域毎に計測する。メモリデータ転送工程中に移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを第2のより高い更新頻度の単位領域に優先して再転送し,移動元仮想マシンをサスペンドした後に,移動先物理サーバ上の移動先仮想マシンをリジュームさせる。
【選択図】図6

Description

本発明は,マイグレーション処理プログラム,マイグレーション方法及びクラウドシステムに関する。
クラウドサービスは,データセンタ内の複数のサーバなどのハードウエア群を,クラウド利用者とのサービス契約に基づいて仮想化し,その仮想マシン等のインフラをネットワーク経由のサービスとしてクラウド利用者に提供する。
このようなクラウドサービスでは,仮想化ソフトウエア(ハイパバイザ)が物理サーバ(または物理マシン)を複数の仮想マシンに割り当てて,各仮想マシンにインストールされたアプリケーションプログラムによるサービスの提供を可能にする。したがって,データセンタに配備された複数の物理サーバには,それぞれ複数の仮想マシンが割り当てられる。
マイグレーション,とりわけライブマイグレーションは,アプリケーションによるサービスを停止することなく,仮想マシンを別の物理サーバに移動する技術であり,クラウドサービスにおいて重要な機能である。たとえば,ある物理サーバ上の仮想マシンによるWebシステムへのアクセスが予想を超えて増大した結果,その仮想マシンの高い負荷により物理サーバのCPUの使用率が100%に達してしまうような場合,その仮想マシンや別の仮想マシンを他の余裕のある物理サーバに移動することが必要になる。このように,複数の仮想マシンの負荷を分散させるために,ライブマイグレーションが利用される。または,物理サーバを再起動させる必要がある場合に,その物理サーバ上の仮想マシンを他の物理サーバに移動させるためにライブマイグレーションが利用される。
ライブマイグレーションは,仮想化ソフトウエアが有する一つの機能である。仮想化ソフトウエアは,管理サーバからのライブマイグレーションの指示に応答して,移動先物理マシンのメモリ領域を確保し,移動対象である移動元仮想マシンのメモリ内容を移動先物理マシンのメモリにネットワーク経由でコピーする。これにより移動元仮想マシンのメモリ内容と移動先仮想マシンのメモリ内容とが同期すると,仮想化ソフトウエアは,移動元仮想マシンをサスペンドし,移動先仮想マシンをリジュームし,ハードディスクのデータも移動先仮想マシンに引き継がせる。そして,最後に,移動元仮想マシンのメモリ内容を移動元物理マシンから削除して,処理が完了する。
特開2008−225546号公報 特開2009−146161号公報 特開2010−198204号公報
<http://www.atmarkit.co.jp/fwin2k/operation/livemig01/livemig01_01.html>
ライブマイグレーションの所要時間の大部分が,メモリ内容のコピー処理に要する時間である。このメモリ内容のコピーは,移動元仮想マシンをサスペンドすることなく行われるので,コピー処理中に移動元仮想マシンによるメモリへの新たな書き込み発生し,その新たに更新された内容を更にコピー処理し,更新されたデータ容量が実質的にゼロになるまでコピー処理が繰り返される。したがって,このメモリ内容のコピー処理の時間を短くすることが,ライブマイグレーションの所要時間を短くするために有効である。
従来,OSがサポートするメモリ容量が少なく,データセンタのネットワーク帯域に余裕があり,仮想マシン上のアプリケーションプログラムの負荷状況も高くなかったため,メモリ内容のコピー処理の時間は比較的短かった。
しかしながら,近年,OSはテラバイトを超えるメモリ容量をサポートすることがあり,データベースをメモリ上に展開するオンラインデータベースの技術が登場し,さらに,データセンタの大規模化によりネットワーク帯域に余裕がなくなり,また,アプリケーションの負荷状況が高くなりコピー中の新たなデータ更新が頻繁に発生するようになってきている。そのため,メモリ内容のコピー処理により長い時間がかかるようになり,ライブマイグレーションの所要時間が長期化する傾向にある。
そこで,一つの実施の形態の目的は,ライブマイグレーションを短時間で行うマイグレーション処理プログラム,マイグレーション方法及びクラウドシステムを提供することにある。
実施の形態の一つの側面によれば,移動元物理サーバ上に構築されている移動元仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理をコンピュータに実行させるマイグレーション処理プログラムであって,
前記マイグレーション処理は,
前記移動元仮想マシンのメモリのデータを,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに転送するメモリデータ転送工程と,
前記移動元仮想マシンによる前記移動元物理サーバのメモリへのデータの更新頻度を,前記メモリの単位領域毎に計測する更新頻度計測工程と,
メモリデータ転送工程中に前記移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを前記第1の更新頻度より高い第2の更新頻度の単位領域に優先して,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに再転送するメモリデータ再転送工程と,
前記移動元仮想マシンをサスペンドした後に,前記移動先物理サーバ上の移動先仮想マシンをリジュームさせるリジューム工程と,を有する。
ライブマイグレーション処理をより短時間で終了できる。
本実施の形態におけるクラウドシステムの全体構成を示す図である。 仮想化ソフトウエアが有する機能の一例を示す図である。 管理サーバの構成例を示す図である。 仮想化ソフトウエア4によるマイグレーション処理のフローチャート図である。 マイグレーション処理を説明する図である。 マイグレーション処理を説明する図である。 マイグレーション処理を説明する図である。 マイグレーション処理を説明する図である。 メモリ内容の転送処理S3の概略を示すフローチャート図である。 メモリ内容の転送処理を説明する図である。 メモリ内容の転送処理を説明する図である。 メモリ内容の転送処理を説明する図である。 第1の実施の形態におけるメモリ内容の転送処理の概略を示すフローチャート図である。 第1の実施の形態におけるメモリ内容の転送処理の概略を説明する図である。 第1の実施の形態におけるメモリ内容の転送処理の具体的なフローチャート図である。 更新テーブルの一例を示す図である。 工程S20での更新テーブルへの更新情報(更新フラグと更新回数)の記録のフローチャート図である。 更新テーブルの更新処理S204の処理を説明する図である。 更新テーブル内の転送済みページ領域のリセット処理S28を説明する図である。 メモリ内容の転送例1のフローチャート図である。 メモリ内容の転送例1のフローチャート図である。 メモリ内容の転送例2のフローチャート図である。 メモリ内容の転送例2のフローチャート図である。 第2の実施の形態におけるメモリ内容の転送処理の概略を示すフローチャート図である。 第2の実施の形態によるメモリ内容の転送例3のフローチャート図である。 第2の実施の形態によるメモリ内容の転送例3のフローチャート図である。 データセンタ内のクラウドサービスポータルサイトと管理サーバとハードウエア群のハードウエア構成を示す図である。
[クラウドシステムの構成]
図1は,本実施の形態におけるクラウドシステムの全体構成を示す図である。データセンタ8内に,ハードウエア群5と,クラウドサービスポータルサイト2と,管理サーバ3とが設けられている。そして,データセンタ8には,インターネットやイントラネット等のネットワーク7を介して,クラウド利用者端末1とクラウド利用者のサービスのクライアント端末とが接続可能になっている。
ハードウエア群5は,複数の物理サーバ(または物理マシン)を有し,各物理サーバはCPUとメモリ(DRAM)とハードディスク(HDD)等の大容量メモリとネットワークとを有する。ハードウエア群5のリソースは,複数の仮想マシンVMに割り当てられる。クラウドサービスポータルサイト2や管理サーバ3は,例えば,これらの仮想マシンVMによって構築されても良い。
クラウドシステムによりクラウド利用者に提供されるクラウドサービスは,コンピュータシステムを構築し稼働させるための基盤,即ち,仮想マシンやネットワーク等のインフラストラクチャそのものを,ネットワーク7経由で提供するサービスである。
クラウド利用者は,その端末1からクラウドサービスポータルサイト2にアクセスして,仮想マシンに必要な仕様,例えばCPUのクロック周波数,メモリの容量(GB),ハードディスクの容量(MB/sec,IOPS),及びネットワークの帯域幅(Gbps)を選択し,それらについてクラウド利用契約を締結する。また,クラウド利用者端末1は,クラウドサービスポータルサイト2にアクセスして,仮想マシンの稼働状況を監視したり,仮想マシンの動作を操作したりする。
管理サーバ3は,仮想化ソフトウエア(ハイパバイザ)4と連携して,ハードウエア群5内の物理サーバなどを管理し,仮想マシンVMにハードウエアを割り当てて仮想マシンVMを構築し,管理する。
仮想化ソフトウエア4は,管理サーバ3からの指示に応じて,ハードウエア群5の物理サーバのCPU,メモリ,ハードディスク,ネットワークを割り当てて仮想マシンを動作させる基盤ソフトウエアである。仮想化ソフトウエア4は,例えば,ハードウエア群5内のサーバ上で動作する。
仮想マシンVMは,上記のハードウエアが割り当てられることに加えて,OS,ミドルウエアMW,アプリケーションAP,データベースDBなどを有するイメージファイルをそのハードディスク内に有し,例えば,起動時にイメージファイルをハードディスクからメモリに書き込み,所望のサービスに対応する動作を行う。
クライアント端末6は,クラウド利用者によって運営されるサービスの提供を受けるクライアントの端末である。クライアント端末6は,通常,クラウド利用者の仮想マシンVMにネットワーク7を介してアクセスし,クラウド利用者が運営するサービスの提供を受ける。
データセンタの運用者は,管理サーバ3を介して,各物理サーバの負荷状態を監視し,過負荷状態の物理サーバ上の仮想マシンVMを他の物理サーバ上に転送するために,マイグレーションの指示を仮想化ソフトウエア4に対して行う。また,別の理由で仮想マシンVMを他の物理サーバに転送する場合も,マイグレーションの指示を仮想化ソフトウエア4に対して行う。このマイグレーションの指示に応答して,仮想化ソフトウエア4は,仮想マシンVMのマイグレーション処理を実行する。
図2は,仮想化ソフトウエアが有する機能の一例を示す図である。仮想化ソフトウエア4は,ハードウエア群5のリソースを仮想マシンVMに割り当てて,仮想マシンVMを動作させる。そのために,仮想化ソフトウエア4は,例えば,仮想マシンを作成する仮想マシン作成部401と,仮想マシンを起動する仮想マシン起動部402と,仮想マシンをシャットダウンする仮想マシンシャットダウン部403と,起動状態の仮想マシンを一時停止,つまりサスペンドする仮想マシンサスペンド部404と,サスペンド状態の仮想マシンを再開,つまりリジュームする仮想マシンリジューム部405と,仮想マシンの動作情報を収集する仮想マシン動作情報収集部406とを有する。さらに,仮想化ソフトウエア4は,管理サーバ3からのマイグレーション指示に応答して仮想マシンを他の物理サーバ上に転送するマイグレーション処理を行うマイグレーション処理部408を有する。
図3は,管理サーバの構成例を示す図である。管理サーバ3は,図示しないCPUなどのハードウエアに加えて,ソフトウエア301と記憶部310とを有する。
管理サーバ内のソフトウエア301は,例えば,クラウドサービスポータルサイト2でクラウド契約を締結したクラウド利用者への課金処理などのクラウド利用者管理を行うクラウド利用者管理部302と,クラウド契約に基づいてハードウエアリソースを割り当てて仮想マシンVMを作成する仮想マシン作成部303と,仮想マシンを管理する仮想マシン管理部303と,仮想マシンの動作を監視する仮想マシン監視部304とを有する。
さらに,ソフトウエア301は,仮想マシンの起動を仮想化ソフトウエア4に指示する仮想マシン起動制御部305と,起動状態の仮想マシンのシャットダウンを仮想化ソフトウエア4に指示する仮想マシンシャットダウン制御部306と,起動状態の仮想マシンのサスペンドを仮想化ソフトウエア4に指示する仮想マシンサスペンド制御部307と,サスペンド状態の仮想マシンのリジュームを仮想化ソフトウエア4に指示する仮想マシンリジューム制御部308と,仮想マシンのマイグレーションを仮想化ソフトウエア4に指示する仮想マシンマイグレーション制御部309などを有する。
管理サーバ内の記憶部320には,例えば,仮想化ソフトウエア4から報告される仮想マシンの動作情報を含む仮想マシン動作情報テーブル321と,仮想マシンとクラウド利用者とその契約などを管理する仮想マシン管理テーブル322などを有する。
図27は,データセンタ内のクラウドサービスポータルサイトと管理サーバとハードウエア群のハードウエア構成を示す図である。管理サーバ3は,プロセッサであるCPU330と,メモリ332と,外部インターフェース334と,図3の管理サーバのソフトウエア301やテーブル類321,322を格納する記憶媒体336とを有し,それらがバスを介して接続されている。
更に,クラウドサービスポータルサイト2も,管理サーバ3と同様に,プロセッサであるCPUと,メモリと,外部インターフェースIFと,サイト制御ソフトウエア等を格納する記憶媒体とを有し,それらがバスを介して接続されている。また,ハードウエア資源群5は,管理サーバ3と同様に,プロセッサであるCPUと,メモリと,外部インターフェースIFと,ソフトウエア等を格納する記憶媒体とを有するコンピュータ群である。ハードウエア資源群5内の記憶媒体内に図2の仮想化ソフトウエア4などが格納される。
[マイグレーション]
次に,仮想化ソフトウエア4によるマイグレーションの処理について説明する。ここでは,特に,移動元物理マシン上で動作中の移動元仮想マシンを,その動作を停止することなく,移動先物理マシンに移動させるライブマイグレーションについて説明する。
図4は,仮想化ソフトウエア4によるマイグレーション処理のフローチャート図である。また,図5〜8は,マイグレーション処理を説明する図である。図5〜8を参照しながら,図4のフローチャートの処理を以下で説明する。
管理サーバ3からのマイグレーションの指示(S1のYES)に応答して,仮想化ソフトウエア4はマイグレーション処理を実行する。管理サーバ3からのマイグレーション指示には,移動元物理サーバと移動元仮想マシンを特定する情報(例えばIPアドレス)と,移動先物理サーバと移動先仮想マシンを特定する情報若しくは移動先物理サーバは任意の物理サーバでよいと指定する情報とが含まれている。
図5に示されるとおり,移動元物理サーバ10−Xには,仮想化ソフトウエア4−Xにより2つの仮想マシンVMA,VMB−Xが動作中である。それぞれの仮想マシンVMA,VMB−Xには,物理サーバ10−X内のメモリ12A,12BとCPUのレジスタ11A,11Bとが割り当てられている。また,移動元物理サーバ10−Xには,ハードディスクHDDが接続され,仮想マシンVMA,VMB−Xからアクセスされている。一方,移動先物理サーバ10−Yには,仮想化ソフトウエア4−Yにより1つの仮想マシンVMCが動作中である。そして,移動元仮想マシンVMB−Xを移動元物理サーバ10−Xから移動先物理サーバ10−Yに移動するマイグレーション処理が行われるものとする。
仮想マシンVMB−Xが起動されると,ハードディスクHDD内のOSや,ミドルウエア,アプリケーションがメモリ12Bにダウンロードされる。そして,仮想マシンVMB−Xが動作を開始すると,CPU内のレジスタ11Bとメモリ12Bとにデータが書き込まれそして読み出される。
仮想化ソフトウエア4−Xは,移動先物理サーバの仮想化ソフトウエア4−Yに,移動先仮想マシンのメモリ領域を確保させる(S2)。これにより,図5に示されるとおり,移動先物理サーバ10−Y内のメモリにメモリ22Bの領域が確保され,移動先物理サーバ10−Yに仮想マシンVMB−Yの枠組みが構成される。
次に,図6に示されているとおり,仮想化ソフトウエア4−Xは,移動元仮想マシンVMB−Xのメモリ12B内の内容(データ)を,移動先仮想マシンVMB−Yのメモリ22Bに転送しコピーする(S3)。このメモリ内容の転送処理は,長い処理時間を要する。更に,メモリ内容を転送中に動作中の仮想マシンVMB−Xがメモリ12Bにデータを書き込むと,その更新されたページ領域,すなわちダーティページ(差分ページ)のデータ(差分データ)が再度メモリ12Bからメモリ22Bに転送されコピーされる。このメモリ内容の転送は,両メモリ12B,22Bがほぼ同期するまで継続される。そして,メモリ内容の転送中に発生したダーティページの量が小さくなれば,仮想化ソフトウエア4はメモリ転送を終了する。これにより,メモリ22B内には,動作中の仮想マシンVMB−Xのメモリとほぼ同じ内容(データ)が書き込まれる。
そして,図7に示されているとおり,仮想化ソフトウエア4−Xは,移動元仮想マシンVMB−Xをサスペンドする(S4)。これにより,移動元仮想マシンVMB−Xの動作は停止し,メモリ12Bへのさらなる書き込みや,CPU内のレジスタ11Bの変更は発生しない。
なお,仮想マシンのサスペンドとは仮想マシンの一時停止であり,その処理は,仮想マシンへのCPUなどのハードウエアの割当の停止,仮想マシンのメモリ内のデータや情報のハードディスクへの退避,コンテキスト,即ち仮想マシンのCPUが実行中の命令アドレス,各種レジスタ(汎用レジスタや浮動小数点レジスタなど)内のデータのハードディスクへの退避,仮想マシンに割り当てていたハードウエアリソースの開放を含む。
一方,仮想マシンのリジュームとは一時的停止状態の仮想マシンを再開することであり,その処理は,仮想マシンへのハードウエアリソースの割り当て,コンテキストをハードディスクから読み出してメモリ内に復元すること,仮想マシンのメモリ内のデータや情報をハードディスクから読み出してメモリ内へ復元すること,仮想マシンへのCPUなどのハードウエアの割り当ての再開を含む。
移動元仮想マシンVMB−Xをサスペンドした後,図7に示されているとおり,仮想化ソフトウエア4−Xは,移動元仮想マシンのメモリ12Bに残っているダーティページのデータと,CPUのレジスタ11Bのデータ(コンテキスト)を,移動先仮想マシンVMB−Yのメモリ22BとCPUのレジスタ21Bに転送する(S5)。この転送するデータ量はごくわずかであり,移動元仮想マシンVMB−Xと移動先仮想マシンVMB−Yが同時に停止状態になる時間もごく短時間である。
そして,図8に示されるとおり,仮想化ソフトウエア4ーYは,移動先仮想マシンVMB−Yをリジュームする(S6)。具体的なリジューム処理は,前述のとおりである。移動先仮想マシンVMB−Yは,メモリ22BとCPUのレジスタ21B内に,移動元仮想マシンVMB−Xのメモリ12Bとレジスタ11Bと同じデータがコピーされているので,仮想化ソフトウエア4が移動先仮想マシンVMB−Yをリジュームすると,移動元仮想マシンVMB−Xと同じ動作を再開する。また,移動先仮想マシンVMB−Yは,ハードディスクHDDへのアクセスも移動元仮想マシンVMB−Xと同様に再開する。
最後に,図8に示されるとおり,仮想化ソフトウエア4−Xは,移動元仮想マシンVMB−Xを削除する(S7)。具体的には,メモリ12B内のデータを削除し,CPUのレジスタ11Bをリセットする。以上で,仮想マシンのライブマイグレーション処理が完了する。
[メモリ内容の転送処理]
図9は,メモリ内容の転送処理S3の概略を示すフローチャート図である。図10,図11,図12は,メモリ内容の転送処理を説明する図である。図10に示されるとおり,仮想化ソフトウエア4−Xは,最初に,移動元物理サーバ10−X内の移動元仮想マシンVMB−Xに割り当てられているメモリ領域12Bの全メモリ内容を,移動先物理サーバ10−Y内の移動先仮想マシンVMB−Yに割り当てられる予定のメモリ22Bに転送しコピーする(S11)。このメモリ内容の転送中に,動作中の移動元仮想マシンVMB−Xによるメモリ12Bへの書き込みが発生し,データが更新されたページ領域であるダーティページDP1が生成される。仮想化ソフトウエア4−Xは,メモリ転送中に更新されたページ領域(ダーティページDP1)を記録する(S12)。
全メモリ転送が完了すると(S13のYES),図11に示されるとおり,仮想化ソフトウエア4−Xは,全メモリ内容の転送中にメモリ12B内に生成されたダーティページDP1を,移動先のメモリ22Bに再度転送してコピーする(S14)。このダーティページDP1の転送中に,動作中の移動元仮想マシンVMB−Xによるメモリ12Bへの書き込みが再度発生し,データが更新されたページ領域であるダーティページDP2が生成される。仮想化ソフトウエア4−Xは,メモリ転送中にデータ更新されたページ領域(ダーティページDP2)を記録する(S15)。
上記の処理工程S14,S15は,メモリ12B内のダーティページが基準値未満になるまで(S16のNO),繰り返される。メモリ12B内のダーティページが基準値未満になると(S16のYES),メモリ内容の転送は終了する。
そして,図4のフローチャートで説明したとおり,仮想化ソフトウエア4−Xは,移動元仮想マシンVMB−Xをサスペンドし,図12に示されるとおり,メモリ12B内の残ったダーティページDPNと,CPU内のレジスタ11Bのデータ(コンテキスト)を,移動先仮想マシンVMB−Yのメモリ22Bとレジスタ21Bに転送してコピーする(S5)。そして,移動先仮想マシンVMB−Yがリジュームされ,移動元仮想マシンVMB−Xが削除されて,ライブマイグレーションが完了する。
[本実施の形態におけるマイグレーション中のメモリ転送]
図9で説明したとおり,マイグレーション処理において,メモリ内容の転送中に移動元メモリへのデータの更新が頻繁に発生すると,発生するダーティページの量が増大する。その結果,メモリ内容の転送処理がいつまでも終了せず,メモリ内容の転送処理時間が長くなる。このようなメモリ内容転送処理の長時間化は,マイグレーション処理の長時間化を招き,好ましくない。
そこで,本実施の形態では,データの更新頻度(またはある期間中の更新回数。以下同様)が低いページ領域(メモリの単位領域)のダーティページから優先的に転送処理を行うことにより,データの更新頻度が高いページ領域のダーティページをできるだけ後でメモリ転送して,メモリ転送中に発生するダーティページの量を抑制し,メモリ転送が短時間で終了するようにする。
[第1の実施の形態]
図13は,第1の実施の形態におけるメモリ内容の転送処理の概略を示すフローチャート図である。図14は,第1の実施の形態におけるメモリ内容の転送処理の概略を説明する図である。仮想化ソフトウエア4−Xは,最初に,移動元仮想マシンの全メモリ内容を移動先仮想マシンを構築する移動先物理サーバのメモリ22Bに転送しコピーする(S111)。このメモリ内容の転送中に,動作中の移動元仮想マシンVMB−Xによりメモリ12Bに書き込みが発生し,データが更新されたページ領域であるダーティページDP1が生成される場合がある。その場合は,仮想化ソフトウエア4−Xは,メモリ転送中に更新されたページ領域(ダーティページDP1)と更新回数を記録する(S112)。
このページ領域は,転送する単位領域であり,必ずしもページ領域である必要はない。また,記録される更新回数は,上記の例では全メモリ内容の転送中の回数であるので,直前の更新頻度に対応する。したがって,仮想化ソフトウエアは,全メモリ内容の転送工程中にデータ更新されたページ領域の記録(後述する更新フラグ)を取っておけば,更新回数(後述する更新カウント)の記録は全メモリ内容の転送工程中の最後の所定時間,例えば5分,だけ記録をとるようにしてもよい。
全メモリ転送が完了すると(S113のYES),仮想化ソフトウエア4−Xは,転送対象のページ領域の判定に利用する更新回数閾値(更新カウンタ閾値)を最小値に設定する(S114)。そして,仮想化ソフトウエア4−Xは,全メモリ内容の転送中に転送元のメモリ12B内に生成されたダーティページのうち,更新カウンタ閾値以下の更新回数のページ領域を,即ち更新頻度が少ないダーティページを優先して,メモリ内容を移動先のメモリ22Bに転送する(S115)。このダーティページDP1の転送中に,動作中の移動元仮想マシンVMB−Xによりメモリ12Bに書き込みが発生し,ダーティページが生成されると,仮想化ソフトウエア4−Xは,そのダーティページと更新回数を記録する(S116)。
仮想化ソフトウエア4−Xは,上記の処理工程S115,S116を,メモリ12B内のダーティページが第1の基準値未満にならない間は(S117のNO),更新カウンタ閾値を所定値増加した値に設定しながら(S118),繰り返す。メモリ12B内のダーティページが第1の基準値未満になると(S117のYES),メモリ内容の転送は終了する。
または,仮想化ソフトウエア4−Xは,上記の処理工程S115,S116を,転送したダーティページ数が第2の基準値を超えないで且つ未転送のダーティページ数が第1の基準値未満にならない間は(S117のNO),更新カウンタ閾値を所定値増加した値に設定しながら(S118),繰り返す。メモリ12B内のダーティページが第1の基準値未満になるか,または転送したダーティページ数が第2の基準値を超えた場合は(S117のYES),メモリ内容の転送は終了する。
すなわち,図14に示したとおり,仮想化ソフトウエア4は,送信元のメモリ12B内のページ領域毎にある期間における更新回数,すなわち更新頻度U1−U4を記録しておき,更新頻度が低いダーティページから先にメモリ転送を行う。これにより,更新頻度が高いダーティページのメモリ転送ができるだけ後で行われて,その転送処理後からメモリ転送の終了条件の判定工程S117までの時間が更新頻度が高いダーティページほど短くなり,メモリ転送の終了条件の判定工程S117までに発生するダーティページの量を抑制することができる。
この工程S117のメモリ内容の転送処理の終了条件は,未転送のダーティページが第1の基準値未満になるという第1の終了条件でもよく,または,第1の終了条件または転送済みページ数が第2の基準値を超えるという第2の終了条件にしても良い。転送済みページ数が第2の基準値を超えるとは,相当数のダーティページを転送しても未転送のダーティページが第1の基準値未満にならない場合であり,その場合は,メモリ内容の転送処理を強制的に終了するようにしてもよい。
次に,第1の実施の形態におけるメモリ内容の転送処理の具体的に説明する。図15は,第1の実施の形態におけるメモリ内容の転送処理の具体的なフローチャート図である。
まず,仮想化ソフトウエア4−Xは,バックグランドで,移動元仮想マシンのメモリ12Bに書き込みが行われデータが更新されたことを示す更新情報を更新テーブルに記録し続ける(S20)。そして,メモリ内容の転送処理S3で,仮想化ソフトウエア4−Xは,移動元仮想マシンの全メモリ領域を移動先仮想マシンのメモリに転送する(S21)。この処理S20は,図13の処理S112,S116に対応し,処理S21は,図13の処理S111に対応する。
図16は,更新テーブルの一例を示す図である。更新テーブルは,更新情報として,メモリ12B内の1つのアドレスで選択される単位領域であるページ領域毎に,書き込みが行われてデータが更新されたか否かを示す更新フラグと,その更新回数を示す更新カウンタとを有する。ページ領域毎で更新情報を記録することに代えて,メモリ内容の転送単位の複数ページ領域毎に更新情報を記録してもよい。このように,更新テーブルには,メモリのある単位領域毎に更新情報が記録される。
図16の例では,ページ領域Aは,更新フラグが「1」でありデータの更新が発生したこと,つまりダーティページであることを示していて,更新カウンタが「3」であり更新回数が3回であることを示している。ページ領域B,Cも同様である。また,ページ領域Dは,更新フラグが「0」でありデータの更新が未だ発生していないこと,つまりダーティページではないことを示していて,したがって,更新カウンタは「0」である。
この更新カウンタの値は,更新回数を示していて,一定時間内に計測した更新カウンタの値は,更新頻度を示していることになる。
図17は,工程S20での更新テーブルへの更新情報(更新フラグと更新回数)の記録のフローチャート図である。また,図18は,更新テーブルの更新処理S204の処理を説明する図である。
図17において,仮想化ソフトウエア(ハイパバイザ)4−Xは,メモリ12B内の全てのページ領域を読み出し専用に設定しておく(S201)。移動元仮想マシンVMB−Xがメモリ12B内の読み出し専用ページ領域に書き込みを行おうとすると,その書き込みは書き込み違反であるため仮想化ソフトウエア4−Xに割り込みが発生する(S202のYES)。そこで,仮想化ソフトウエア4−Xは,書き込みが発生したページ領域を書き込み可能ページに変更する(S203)。これにより,移動元仮想マシンVMB−Xによる書き込み処理が実行される。
このように,仮想化ソフトウエア4−Xは,上記の書き込み違反による割り込みの発生により,移動元仮想マシンVMB−Xによるメモリ12Bへの書き込み処理を検出することができる。そして,仮想化ソフトウエア4−Xは,更新テーブルの更新処理を実行する(S204)。具体的には,その書き込みが行われたページ領域に対応する更新フラグを「1」にし,更新カウンタを+1する。更新フラグが既に「1」の場合は更新フラグの変更は行わずに更新カウンタを+1する。
図18は,この工程S204におけるメモリへの書き込み発生時の更新テーブルの更新処理を示す図である。図18の例では,ページ領域Aでは,更新フラグが「0」から「1」に変更され,更新カウンタが「0」から「1」に+1されている。また,ページ領域Cでは,更新カウンタが既に「1」であったため,更新カウンタが「4」から「5」に+1されている。
図17に戻り,上記更新処理S204の後,仮想化ソフトウエア4−Xは,書き込みが発生したページ領域を読み出し専用ページに変更する(S205)。これにより,その後書き込みが発生した場合は,前述の書き込み違反による割り込みが発生するので,仮想化ソフトウエア4−Xは,その書き込みが行われることを検出することができる。
図15にもどり,メモリ12B内の全メモリ内容のメモリ22Bへの転送が完了すると(S21),仮想化ソフトウエア4−Xは,準備処理として,更新カウンタ閾値を初期値の最小値に設定する(S22)。そして,仮想化ソフトウエア4−Xは,工程S21の全メモリ内容の転送中にバックグランドで記録された更新テーブルを,転送判断テーブルにコピーする(S23)。この転送判断テーブルは,図18に示した更新テーブルをコピーしたものであり,その全メモリ内容の転送処理S21の後,全メモリ内容の転送処理S21中にデータ更新されたページ領域(ダーティページ)の再転送を行う判断時に参照される。
図20,図21は,メモリ内容の転送処理の第1の具体例を示す図である。この例については後に詳述するが,図20には,全メモリ内容の転送(S21)中に更新された更新テーブルUT1が,転送判断テーブルDT1にコピー(S23)されている。
次に,仮想化ソフトウエア4−Xは,ダーティページの再転送処理を行う。まず,仮想化ソフトウエア4−Xは,更新判断テーブルの最初のページ領域から順に参照する(S24)。その参照したページ領域の更新フラグが「1」であり(S25のYES),更新カウンタが更新カウンタ閾値以下の場合(S26のYES),仮想化ソフトウエア4−Xは,そのページ領域内の内容(データ)を移動先仮想マシンのメモリ22Bに転送し(S27),更新テーブル内の転送済みダーティページ領域の更新フラグと更新カウンタをリセットして「0」にする(S28)。上記の転送判断テーブルの参照ページ領域の更新フラグが「1」で且つ更新カウンタが更新カウンタ閾値以下である条件を満たさない場合(S25のNOまたはS26のNO),仮想化ソフトウエア4−Xは,その参照ページ領域のメモリ内容の転送を行わない。
図20の例では,転送判断テーブルDT1のページ領域Bが上記の更新フラグが「1」で更新カウンタ値が更新カウンタ閾値以下の条件を満たして,転送されている(S27(1))。そして,更新テーブルUT3のページ領域Bの更新フラグと更新カウンタが「0」にリセットされている(S28(1))。
図19は,更新テーブル内の転送済みページ領域のリセット処理S28を説明する図である。図19の更新テーブルでは,ページ領域Aが転送された例であり,ページ領域Aの更新フラグが「1」から「0」にリセットされ,更新カウンタが「3」から「0」にリセットされている。図20に示したページ領域Bのリセットも同様である。
仮想化ソフトウエア4−Xは,転送判断テーブル内の最終ページ領域まで(S29のNO),上記の処理S24−S28を繰り返す。これにより,更新フラグが「1」であり,設定されている更新カウンタ閾値(この時点では初期値の最小値)以下の更新カウンタ値のページ領域(ダーティページ)の内容が全て移動先のメモリに転送される。
そして,仮想化ソフトウエア4−Xは,図13の工程S117と同じメモリ転送終了判定を行う(S30)。このメモリ転送終了判定では,仮想化ソフトウエアは,更新テーブルを参照して,未転送のダーティページが第1の基準値未満に減少したか否かの第1の条件と,ダーティページの転送回数がメモリ12Bのページ領域の数の所定倍数である第2の基準値を超えたかの第2の条件とを判断する。第1の条件が満たされ,または第2の条件が満たされれば,メモリ転送処理は終了する(S30のYES)。つまり,第1の条件は,十分にダーティページが減少したことを判断する条件であり,第2の条件は,メモリの更新頻度が高くメモリ転送を強制的に終了させるか否かの判断する条件である。
メモリ転送終了判定がNOの場合(S30のNO),仮想化ソフトウエア4−Xは,更新カウンタ閾値を所定値だけ増大させて(S31),処理S23−S30を繰り返す。つまり,仮想化ソフトウエア4−Xは,それまでに記録されてきた更新テーブルを転送判断テーブルにコピーして,その転送判断テーブルを参照して,新たな更新カウンタ閾値以下のダーティページの転送処理を行う。
このように,更新カウンタ閾値を増大させることで,次の処理S23−S30では,更新頻度がより高いダーティページについても,メモリ内容の転送処理が行われる。つまり,更新頻度がより高いダーティページは,より低いダーティページよりも後に転送処理が行われる。よって,転送処理後からメモリ転送終了判定されるまでの時間が,更新頻度がより高いページ領域のほうがより低いページ領域よりも短くなり,新たなダーティページの数を抑制することができる。この点については,以下の具体例で説明する。
[メモリ内容の転送例1]
次に,図15のフローチャート図に示したメモリ内容の転送処理S3について,転送例1を説明する。この転送例1では,移動元仮想マシンのメモリの内容を転送し,未転送で残っているダーティページが第1の基準値未満に減少したことで,メモリ内容の転送処理S3が終了する例である。
図20,図21は,メモリ内容の転送例1を示す図である。図中,左側にメモリ転送処理が具体例に対応して示され,各工程の番号は,図15のフローチャート図の工程の番号に対応している。また,図中,中央に転送判断テーブルと更新テーブルの変遷が示され,右側にメモリへの書き込みと更新テーブルへの更新処理が示されている。
まず,仮想化ソフトウエア4−Xは,全メモリ内容を転送する(S21)。仮想化ソフトウエアは,全メモリ内容の転送中に発生したメモリへの書き込み処理に応答して,更新テーブルを更新して書き込み処理を記録する(S20)。その結果,全メモリ内容の転送処理S21が終わった段階で,更新テーブルUT1が生成されている。この時点の更新テーブルUT1では,ページ領域A,B,Cで更新フラグが「1」になっており,更新カウンタはそれぞれ「7」「2」「5」である。仮想化ソフトウエア4−Xは,この更新テーブルUT1を転送判断テーブルDT1にコピーする(S23)。この転送判断テーブルDT1の更新カウンタ値は,全メモリ内容の転送処理中に発生した書き込み回数であるので,直前の更新頻度である。
そこで,仮想化ソフトウエア4−Xは,更新カウンタ閾値を最小値(例えばVth=4)に設定する(S22)。そして,仮想化ソフトウエアは,転送判断テーブルDT1のページ領域を先頭から順番に検索して(S24(1)),更新フラグが「1」であり更新カウンタの値が更新カウンタ閾値(Vth=4)以下のページ領域(ダーティページ)を検出し,ページ領域Bを転送対象のダーティページであると判定し,ページ領域Bのデータを転送処理する(S27(1))。
ページ領域Bのデータを転送中に,ページ領域Aへの書き込みが発生し,更新テーブルにそれが記録され,ページ領域Aの更新カウント値が+1され,更新ページUT3に変更されている(S20)。そして,ページ領域Bの転送処理S27(1)が終了すると,仮想化ソフトウエアは,更新テーブルTU3の転送済みページ領域Bの更新フラグを「0」に更新カウントを「0」にそれぞれリセットする(S28(1))。これにより,ページ領域Bの転送は完了したことが記録される。そして,転送判断テーブルDT1内には,ページ領域B以外に更新カウント閾値Vth=4以下のページ領域は存在しない。
そこで,図21に示されるとおり,仮想化ソフトウエアは,更新カウンタ閾値を増大してVth=8に変更し(S31(2)),更新テーブルUT3を転送判断テーブルDT2としてコピーする(S23)。そして,仮想化ソフトウエアは,転送判断テーブルDT2のページ領域を先頭から順番に検索して(S24(1)),更新フラグが「1」であり更新カウンタの値が更新カウンタ閾値(Vth=8)以下のページ領域(ダーティページ)を検出し,ページ領域Aを転送対象のダーティページであると判定し,ページ領域Aのデータを転送処理し(S27(2)),更新テーブルTU4内の転送済みページ領域Aの更新記録をリセットする(S28(2))。さらに,仮想化ソフトウエアは,転送判断テーブルDT2を検索して(S24(3)),ページ領域Cを検出し,それを転送し(S27(3)),更新テーブルDT6内の転送済みページ領域Cのデータをリセットする(S28(3))。
このページ領域Cの転送中に,ページ領域Aに書き込みが4回発生し,更新テーブルUT5のようにページ領域Aの更新フラグが「1」に変更され,更新カウンタが「4」に変更されている(S20)。つまり,新たにページ領域Aがダーティページになっている。
そこで,仮想化ソフトウエアは,更新カウンタ閾値を増大してVth=12に変更し,更新テーブルUT6を転送判断テーブルDT3としてコピーする。そして,仮想化ソフトウエアは,転送判断テーブルDT3のページ領域を先頭から順番に検索して,ページ領域Aを転送対象のダーティページであると判定し,ページ領域Aのデータを転送処理し,更新テーブルTU6内の転送済みページ領域Aのデータをリセットする(S31(4)−S28(4))。そして,仮想化ソフトウエアは,更新テーブルUT6内に残っているダーティページ数が第1の基準値(この例では5)未満になったことを検出して(S30のYES),メモリ内容の転送処理を終了する。
図20,図21の左側に示されるとおり,転送終了判定工程S30での,転送頻度が低いページ領域Bの転送後からの経過時間T1より,転送頻度が高いページ領域Aの転送後からの経過時間T2のほうが短く,さらに,ページ領域Cの転送後からの経過時間T3が更に短い。よって,ページ領域Bは転送頻度が低いので転送後からの経過時間T1が長くても新たにページ領域Bへの書き込みが発生する蓋然性は低い。逆に,ページ領域A,Cは転送頻度が高いが転送後からの経過時間T2,T3が短いので新たにページ領域A,Cへの書き込みが発生する蓋然性も低い。したがって,転送頻度が低いページ領域を優先的に転送することで,未転送のダーティページの量を有効に減らすことができ,メモリ内容の転送処理の時間を短縮できる。
[メモリ内容の転送例2]
次に,メモリ内容の転送例2について説明する。この例2では,図15のフローチャート図に示されるメモリ内容の転送を行い,転送済みページ数が第2の基準値(ここでは15ページ)を超えて転送しても,未転送の更新ページであるダーティページが第1の基準値(この例では5)未満にならずに,メモリ内容の転送処理が強制的に終了している。
図22,図23は,メモリ内容の転送例2のフローチャート図である。図20,図21と同様に,左からメモリ転送処理,転送判断テーブル,更新テーブル,メモリへの書き込みと更新処理の流れが示されている。
仮想化ソフトウエアは,まず全メモリ内容を転送する(S21)。そして,仮想化ソフトウエアは,更新カウンタ閾値を最小値,この転送例2ではVth=2,に設定し,更新テーブルUT1を転送判断テーブルDT1にコピーする(S23)。そして,仮想化ソフトウエアは,転送判断テーブルDT1を先頭から順番に検索して,更新フラグが「1」であり更新カウンタがVth=2以下のページ領域Bを検出し,ページ領域Bの内容を転送する(S27(1))。仮想化ソフトウエアは,ページ領域Bの転送中に,ページ領域A,Cに書き込みが発生したことに応答して,更新テーブルを更新する(S20)。そして,仮想化ソフトウエアは,ページ領域Bの転送が終了すると,更新テーブルUT3内の転送済みページ領域Cをリセットする(S28(1))。
図23に移り,仮想化ソフトウエアは,更新カウンタ閾値を増大してVth=4にし(S31(2)),更新テーブルUT3を転送判断テーブルDT2にコピーする(S23)。そして,上記と同様に転送判断テーブルDT3を先頭から順に検索して(S31(2)),ページ領域Dの内容を転送し(S27(2)),転送後に更新テーブルUT4内のページ領域Dをリセットする(S28(2))。ただし,ページ領域Dを転送中に,メモリへの書き込みが大量に発生し,ページ領域A,B,Cの更新カウンタ値が増大している。
そして,仮想化ソフトウエアは,更新テーブルUT5内の未転送のダーティページが第1の基準値未満になる前に,転送済みダーティページ数が第2の基準値を超えてしまったことを検出して(S30のYES),メモリ内容の転送処理を強制終了する。
[第2の実施の形態]
図24は,第2の実施の形態におけるメモリ内容の転送処理の概略を示すフローチャート図である。第1の実施の形態の図13のフローチャートと異なるところは,工程S120,S119である。
第2の実施の形態では,仮想化ソフトウエアは,まず全メモリ内容を転送する(S111,S112,S113)。全メモリ内容の転送が終了すると(S113のYES),全メモリ内容転送中に発生したダーティページの再転送処理(S114−S120)にはいる。ここまでは,第1の実施の形態と同じである。そして,ダーティページの再転送処理では,仮想化ソフトウエアは,更新テーブルを転送判断テーブルにコピーし,転送テーブルをリセットする(S120)。そして,仮想化ソフトウエアは,転送判断テーブルを先頭から順番に検索して,更新カウンタ閾値以下のダーティページを検出し転送する(S115)。仮想化ソフトウエアは,転送判断テーブル内のダーティページを全て転送するまで(S119のYES),更新カウンタ閾値を最小値から増大させながら(S114,S118),処理S115−S118を繰り返す。そして,転送判断テーブル内のダーティページを転送中に発生したメモリへの書き込みは,更新テーブルに記録する(S116)。これにより,更新テーブルの更新回数に最新のダーティページの発生状況を反映させることができると共に,再転送周期毎に更新テーブルをリセットするので(S120),更新テーブルの更新回数は再転送周期毎の転送頻度を反映した値になる。
仮想化ソフトウエアは,転送判断テーブル内のダーティページを全て転送完了しても(S119のYES),メモリ内容の転送処理の完了条件を満たさない場合は(S117のNO),再度,更新テーブルを転送判断テーブルにコピーし更新テーブルをリセットして(S120),工程S114−S118を再度実行する。この時の更新テーブルをコピーした転送判断テーブルは,最新のダーティページの発生状況を反映しているので,更新カウンタが小さいダーティページから優先して転送する処理によりダーティページの発生をより有効に抑制することができる。
このように,仮想化ソフトウエアは,全メモリ内容の転送後に発生している更新テーブル内の最初のダーティページ群を更新カウンタ値が小さいものを優先して再転送し,再転送中に発生するダーティページを,リセット済みの更新テーブル内に新たに記録する。最初のダーティページ群の再転送が完了すると,再転送中に発生した第2のダーティページ群を同様に更新カウンタ値が小さいものを優先して転送し,再転送中に発生するダーティページを,リセット済みの更新テーブル内に新たに記録する。この更新カウント値が小さいものを優先して転送する処理を繰り返すことで,各繰り返しの再転送周期中に発生するダーティページ数を抑制することができ,メモリな用の転送処理に要する時間を短くすることができる。
[メモリ内容の転送処理例3]
次に,図24のフローチャートの処理について,具体例に基づいて説明する。
図25,図26は,第2の実施の形態によるメモリ内容の転送例3のフローチャート図である。図25に示されるように,仮想化ソフトウエアは,全メモリ内容を転送中に(S111),更新テーブルUT10にダーティページの発生を記録する(S112)。全メモリ内容の転送が完了すると,仮想化ソフトウエアは,更新テーブルUT10を転送判断テーブルDT10にコピーし,更新テーブルUT10をリセットして更新テーブルUT11にする(S120)。
ここから,第1周期P1でのダーティページの再転送処理が始まる。仮想化ソフトウエアは,更新カウンタ閾値Vthを最小値に設定し(S114(1)),転送判断テーブルDT10を検索して,更新カウンタ値が更新カウンタ閾値以下のダーティページを検出し,検出したページ領域を転送し,転送判断テーブルDT10と更新テーブルUT11内の転送済みページ領域の更新フラグと更新カウンタをリセットする(S115(1))。さらに,仮想化ソフトウエアは,更新カウンタ閾値Vthを増大させながら(S118),転送判断テーブルDT10を検索して,同様の処理を繰り返す。この第1周期P1でのダーティページ転送処理中に発生した新たなダーティページは,仮想化ソフトウエアにより,工程S120でリセット済みの更新テーブルUT11に記録される(S116)。
第1周期P1でのダーティページの再転送処理により,転送判断テーブルDT10内のダーティページが全て転送されると,仮想化ソフトウエアは,第2周期P2でのダーティページの再転送処理を始める。つまり,仮想化ソフトウエアは,第2周期P2では,第1周期P1中に発生したダーティページの再転送処理を行う。
図25の最後と図26の最初に示されるとおり,第2周期P2も第1周期P1と同様に,仮想化ソフトウエアは,更新テーブルUT12を転送判断テーブルDT11にコピーし,更新テーブルUT12をリセットして更新テーブルUT13にする(S120)。そして,仮想化ソフトウエアは,更新カウンタ閾値Vthを最小値に設定し(S114−2(1)),転送判断テーブルDT11を検索して,更新カウンタ値が更新カウンタ閾値以下のダーティページを検出し,検出したページ領域を転送し,転送判断テーブルDT11と更新テーブルUT13内の転送済みページ領域の更新フラグと更新カウンタをリセットする(S115−2(1))。さらに,仮想化ソフトウエアは,更新カウンタ閾値Vthを増大させながら(S118−2),転送判断テーブルDT10を検索して,同様の処理を繰り返す。この第2周期P2でのダーティページ再転送処理中に発生した新たなダーティページは,仮想化ソフトウエアにより,工程S120でリセット済みの更新テーブルUT13に記録される(S116−2)。
そして,仮想化ソフトウエアは,転送判断テーブルDT11内と更新テーブルUT14内の未転送ダーティページの数が第1の基準値未満になったことを検出して,メモリ内容の転送処理を終了する。この終了判定の処理については,図26には示されていない。
以上の通り,第2の実施の形態では,各ダーティページ転送周期毎に,更新テーブルがリセットされ,更新カウンタ閾値がリセットされる。そして,各ダーティページ再転送周期内では,転送判断テーブル内の更新頻度を示す更新カウンタ値が小さいダーティページから優先して転送され,更新カウンタ値が大きいつまり更新頻度が高いダーティページの転送は遅く行われる。その結果,ダーティページの発生数を抑制することができ,メモリ内容の転送処理に要する時間を短くすることができる。
以上に実施の形態をまとめると,以下の付記のとおりである。
(付記1)
移動元物理サーバ上に構築されている移動元仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理をコンピュータに実行させるマイグレーション処理プログラムであって,
前記マイグレーション処理は,
前記移動元仮想マシンのメモリのデータを,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに転送するメモリデータ転送工程と,
前記移動元仮想マシンによる前記移動元物理サーバのメモリへのデータの更新頻度を,前記メモリの単位領域毎に計測する更新頻度計測工程と,
メモリデータ転送工程中に前記移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを前記第1の更新頻度より高い第2の更新頻度の単位領域に優先して,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに再転送するメモリデータ再転送工程と,
前記移動元仮想マシンをサスペンドした後に,前記移動先物理サーバ上の移動先仮想マシンをリジュームさせるリジューム工程と,を有するマイグレーション処理プログラム。
(付記2)
付記1において,
前記メモリデータ再転送工程中に,前記移動元仮想マシンのメモリ内のデータ更新され且つ未転送の単位領域の数が第1の基準値未満になる場合,前記メモリデータ再転送工程を終了して前記リジューム工程を実行するマイグレーション処理プログラム。
(付記3)
付記2において,
前記メモリデータ再転送工程中に,再転送した単位領域の数が第2の基準値を超えても,前記移動元仮想マシンのメモリ内のデータ更新され且つ未転送の単位領域の数が第1の基準値未満にならない場合,前記メモリデータ再転送工程を終了して前記リジューム工程を実行するマイグレーション処理プログラム。
(付記4)
付記1において,
前記更新頻度計測工程では,前記メモリの単位領域毎にデータの更新頻度を更新テーブルに記録し,
前記メモリデータ再転送工程では,前記更新テーブルをコピーした転送判断テーブルの更新頻度を参照して,当該更新頻度が第1の閾値以下の単位領域のデータを再転送し,その後,前記更新頻度が前記第1の閾値より高い第2の閾値以下の単位領域のデータを再転送するマイグレーション処理プログラム。
(付記5)
付記4において,
前記更新頻度計測工程では,前記メモリデータ転送工程中のデータの更新回数を前記更新頻度として前記更新テーブルに記録し,さらに,前記メモリデータ再転送工程中のデータの更新回数を前記更新頻度として前記更新テーブルに記録するマイグレーション処理プログラム。
(付記6)
付記4において,
前記メモリデータ再転送工程中に,前記データ更新された単位領域のデータを転送したときに,前記更新テーブル内の前記転送した単位領域の更新頻度をリセットするマイグレーション処理プログラム。
(付記7)
付記6において,
前記メモリデータ再転送工程では,前記転送判断テーブル内のデータ更新された単位領域のデータ転送が全て終了するたびに,前記更新テーブルを前記転送判断テーブルにコピーし,前記第1の閾値及び第2の閾値に基づく単位領域のデータの再転送の処理を繰り返すマイグレーション処理プログラム。
(付記8)
付記4または6において,
前記メモリデータ再転送工程では,前記第1の閾値及び第2の閾値に加えて,さらに前記第2の閾値よりも高い第3の閾値に基づいて前記データ更新された単位領域のデータ転送を行うマイグレーション処理プログラム。
(付記9)
移動元物理サーバ上に構築されている移動元仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理をコンピュータに実行させるマイグレーション処理方法であって,
前記マイグレーション処理は,
前記移動元仮想マシンのメモリのデータを,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに転送するメモリデータ転送工程と,
前記移動元仮想マシンによる前記移動元物理サーバのメモリへのデータの更新頻度を,前記メモリの単位領域毎に計測する更新頻度計測工程と,
メモリデータ転送工程中に前記移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを前記第1の更新頻度より高い第2の更新頻度の単位領域に優先して,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに再転送するメモリデータ再転送工程と,
前記移動元仮想マシンをサスペンドした後に,前記移動先物理サーバ上の移動先仮想マシンをリジュームさせるリジューム工程と,を有するマイグレーション処理方法。
(付記10)
付記9において,
前記更新頻度計測工程では,前記メモリの単位領域毎にデータの更新頻度を更新テーブルに記録し,
前記メモリデータ再転送工程では,前記更新テーブルをコピーした転送判断テーブルの更新頻度を参照して,当該更新頻度が第1の閾値以下の単位領域のデータを再転送し,その後,前記更新頻度が前記第1の閾値より高い第2の閾値以下の単位領域のデータを再転送するマイグレーション処理方法。
(付記11)
それぞれに仮想マシンが構築される複数の物理サーバと,
移動元物理サーバ上に構築されている移動元仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理を実行するマイグレーション処理手段とを有し,
前記マイグレーション処理手段は,
前記移動元仮想マシンのメモリのデータを,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに転送するメモリデータ転送手段と,
前記移動元仮想マシンによる前記移動元物理サーバのメモリへのデータの更新頻度を,前記メモリの単位領域毎に計測する更新頻度計測手段と,
メモリデータ転送工程中に前記移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを前記第1の更新頻度より高い第2の更新頻度の単位領域に優先して,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに再転送するメモリデータ再転送手段と,
前記移動元仮想マシンをサスペンドした後に,前記移動先物理サーバ上の移動先仮想マシンをリジュームさせるリジューム手段と,を有するクラウドシステム。
(付記12)
付記11において,
前記更新頻度計測手段は,前記メモリの単位領域毎にデータの更新頻度を更新テーブルに記録し,
前記メモリデータ再転送手段は,前記更新テーブルをコピーした転送判断テーブルの更新頻度を参照して,当該更新頻度が第1の閾値以下の単位領域のデータを再転送し,その後,前記更新頻度が前記第1の閾値より高い第2の閾値以下の単位領域のデータを再転送するクラウドシステム。
10X:移動元物理サーバ 10−Y:移動先物理サーバ
4−X:仮想化ソフトウエア 4−Y:仮想化ソフトウエア
VMB−X:移動元仮想マシン VMB−Y:移動先仮想マシン
12B:移動元メモリ 22B:移動先メモリ

Claims (9)

  1. 移動元物理サーバ上に構築されている移動元仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理をコンピュータに実行させるマイグレーション処理プログラムであって,
    前記マイグレーション処理は,
    前記移動元仮想マシンのメモリのデータを,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに転送するメモリデータ転送工程と,
    前記移動元仮想マシンによる前記移動元物理サーバのメモリへのデータの更新頻度を,前記メモリの単位領域毎に計測する更新頻度計測工程と,
    メモリデータ転送工程中に前記移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを前記第1の更新頻度より高い第2の更新頻度の単位領域に優先して,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに再転送するメモリデータ再転送工程と,
    前記移動元仮想マシンをサスペンドした後に,前記移動先物理サーバ上の移動先仮想マシンをリジュームさせるリジューム工程と,を有するマイグレーション処理プログラム。
  2. 請求項1において,
    前記メモリデータ再転送工程中に,前記移動元仮想マシンのメモリ内のデータ更新され且つ未転送の単位領域の数が第1の基準値未満になる場合,前記メモリデータ再転送工程を終了して前記リジューム工程を実行するマイグレーション処理プログラム。
  3. 請求項2において,
    前記メモリデータ再転送工程中に,再転送した単位領域の数が第2の基準値を超えても,前記移動元仮想マシンのメモリ内のデータ更新され且つ未転送の単位領域の数が第1の基準値未満にならない場合,前記メモリデータ再転送工程を終了して前記リジューム工程を実行するマイグレーション処理プログラム。
  4. 請求項1において,
    前記更新頻度計測工程では,前記メモリの単位領域毎にデータの更新頻度を更新テーブルに記録し,
    前記メモリデータ再転送工程では,前記更新テーブルをコピーした転送判断テーブルの更新頻度を参照して,当該更新頻度が第1の閾値以下の単位領域のデータを再転送し,その後,前記更新頻度が前記第1の閾値より高い第2の閾値以下の単位領域のデータを再転送するマイグレーション処理プログラム。
  5. 請求項4において,
    前記更新頻度計測工程では,前記メモリデータ転送工程中のデータの更新回数を前記更新頻度として前記更新テーブルに記録し,さらに,前記メモリデータ再転送工程中のデータの更新回数を前記更新頻度として前記更新テーブルに記録するマイグレーション処理プログラム。
  6. 請求項4において,
    前記メモリデータ再転送工程中に,前記データ更新された単位領域のデータを転送したときに,前記更新テーブル内の前記転送した単位領域の更新頻度をリセットするマイグレーション処理プログラム。
  7. 請求項6において,
    前記メモリデータ再転送工程では,前記転送判断テーブル内のデータ更新された単位領域のデータ転送が全て終了するたびに,前記更新テーブルを前記転送判断テーブルにコピーし,前記第1の閾値及び第2の閾値に基づく単位領域のデータの再転送の処理を繰り返すマイグレーション処理プログラム。
  8. 移動元物理サーバ上に構築されている移動元仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理をコンピュータに実行させるマイグレーション処理方法であって,
    前記マイグレーション処理は,
    前記移動元仮想マシンのメモリのデータを,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに転送するメモリデータ転送工程と,
    前記移動元仮想マシンによる前記移動元物理サーバのメモリへのデータの更新頻度を,前記メモリの単位領域毎に計測する更新頻度計測工程と,
    メモリデータ転送工程中に前記移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを前記第1の更新頻度より高い第2の更新頻度の単位領域に優先して,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに再転送するメモリデータ再転送工程と,
    前記移動元仮想マシンをサスペンドした後に,前記移動先物理サーバ上の移動先仮想マシンをリジュームさせるリジューム工程と,を有するマイグレーション処理方法。
  9. それぞれに仮想マシンが構築される複数の物理サーバと,
    移動元物理サーバ上に構築されている移動元仮想マシンを移動先物理サーバ上に移動させるマイグレーション処理を実行するマイグレーション処理手段とを有し,
    前記マイグレーション処理手段は,
    前記移動元仮想マシンのメモリのデータを,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに転送するメモリデータ転送手段と,
    前記移動元仮想マシンによる前記移動元物理サーバのメモリへのデータの更新頻度を,前記メモリの単位領域毎に計測する更新頻度計測手段と,
    メモリデータ転送工程中に前記移動元仮想マシンによって更新されたメモリデータを,第1の更新頻度の単位領域のデータを前記第1の更新頻度より高い第2の更新頻度の単位領域に優先して,前記移動元物理サーバのメモリから前記移動先物理サーバのメモリに再転送するメモリデータ再転送手段と,
    前記移動元仮想マシンをサスペンドした後に,前記移動先物理サーバ上の移動先仮想マシンをリジュームさせるリジューム手段と,を有するクラウドシステム。
JP2013068904A 2013-03-28 2013-03-28 マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム Pending JP2014191752A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013068904A JP2014191752A (ja) 2013-03-28 2013-03-28 マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム
US14/222,707 US20140298333A1 (en) 2013-03-28 2014-03-24 Migration processing program, migration method, and cloud computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013068904A JP2014191752A (ja) 2013-03-28 2013-03-28 マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム

Publications (1)

Publication Number Publication Date
JP2014191752A true JP2014191752A (ja) 2014-10-06

Family

ID=51622172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013068904A Pending JP2014191752A (ja) 2013-03-28 2013-03-28 マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム

Country Status (2)

Country Link
US (1) US20140298333A1 (ja)
JP (1) JP2014191752A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10621010B2 (en) 2016-11-29 2020-04-14 Fujitsu Limited Information processing apparatus and migration method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3241345A1 (en) * 2015-01-08 2017-11-08 Huawei Technologies Co., Ltd. Fault tolerant, content download system
US10725804B2 (en) * 2015-08-05 2020-07-28 Vmware, Inc. Self triggered maintenance of state information of virtual machines for high availability operations
US10725883B2 (en) 2015-08-05 2020-07-28 Vmware, Inc. Externally triggered maintenance of state information of virtual machines for high availablity operations
US10768959B2 (en) * 2015-11-24 2020-09-08 Red Hat Israel, Ltd. Virtual machine migration using memory page hints
US10250452B2 (en) 2015-12-14 2019-04-02 Microsoft Technology Licensing, Llc Packaging tool for first and third party component deployment
US10666517B2 (en) 2015-12-15 2020-05-26 Microsoft Technology Licensing, Llc End-to-end automated servicing model for cloud computing platforms
US11044175B2 (en) * 2016-10-25 2021-06-22 International Business Machines Corporation Hybrid cloud broker with static and dynamic capability matching
JP2019049818A (ja) * 2017-09-08 2019-03-28 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラム
CN109189545B (zh) * 2018-07-06 2021-03-30 烽火通信科技股份有限公司 一种提高虚拟机热迁移可靠性的实现方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146161A (ja) * 2007-12-14 2009-07-02 Fujitsu Ltd 仮想マシン移動制御方式
WO2010116402A1 (ja) * 2009-03-30 2010-10-14 富士通株式会社 情報処理装置
WO2011057874A2 (en) * 2009-11-16 2011-05-19 International Business Machines Corporation Symmetric live migration of virtual machines
JP2012088808A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd 仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法
WO2012063334A1 (ja) * 2010-11-10 2012-05-18 株式会社日立製作所 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2954888C (en) * 2005-06-24 2019-06-04 Catalogic Software, Inc. System and method for high performance enterprise data protection
US8458284B2 (en) * 2009-06-12 2013-06-04 International Business Machines Corporation Systems and methods for efficient live application migration within bandwidth constrained networks
US8386731B2 (en) * 2009-09-14 2013-02-26 Vmware, Inc. Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics
US8661213B2 (en) * 2010-01-06 2014-02-25 Vmware, Inc. Method and system for frequent checkpointing
US8533382B2 (en) * 2010-01-06 2013-09-10 Vmware, Inc. Method and system for frequent checkpointing
US8898508B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Method and system for enabling checkpointing fault tolerance across remote virtual machines
US8990531B2 (en) * 2010-07-12 2015-03-24 Vmware, Inc. Multiple time granularity support for online classification of memory pages based on activity level
US8826272B2 (en) * 2010-11-29 2014-09-02 International Business Machines Corporation Planning a reliable migration in a limited stability virtualized environment
US8356120B2 (en) * 2011-01-07 2013-01-15 Red Hat Israel, Ltd. Mechanism for memory state restoration of virtual machine (VM)-controlled peripherals at a destination host machine during migration of the VM
US8924965B2 (en) * 2011-01-07 2014-12-30 Red Hat Israel, Ltd. Memory state transfer of virtual machine-controlled peripherals during migrations of the virtual machine
US9223616B2 (en) * 2011-02-28 2015-12-29 Red Hat Israel, Ltd. Virtual machine resource reduction for live migration optimization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146161A (ja) * 2007-12-14 2009-07-02 Fujitsu Ltd 仮想マシン移動制御方式
WO2010116402A1 (ja) * 2009-03-30 2010-10-14 富士通株式会社 情報処理装置
WO2011057874A2 (en) * 2009-11-16 2011-05-19 International Business Machines Corporation Symmetric live migration of virtual machines
JP2012088808A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd 仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法
WO2012063334A1 (ja) * 2010-11-10 2012-05-18 株式会社日立製作所 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FEI MA ET AL: ""Live Virtual Machine Migration Based on Improved Pre-copy Approach"", 2010 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE, JPN6016034082, 2010, pages 230 - 233, XP031735101 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10621010B2 (en) 2016-11-29 2020-04-14 Fujitsu Limited Information processing apparatus and migration method

Also Published As

Publication number Publication date
US20140298333A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
JP2014191752A (ja) マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム
US10379967B2 (en) Live rollback for a computing environment
JP6372074B2 (ja) 情報処理システム,制御プログラム及び制御方法
EP3414661B1 (en) Efficient live-migration of remotely accessed data
US10873623B2 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US8042108B2 (en) Virtual machine migration between servers
US9665440B2 (en) Methods and systems for removing virtual machine snapshots
US9304878B2 (en) Providing multiple IO paths in a virtualized environment to support for high availability of virtual machines
JP2020024722A (ja) ストリーミング・サーバのセッション・アイドル最適化
JP5967215B2 (ja) 情報処理装置、プログラムおよび仮想マシン移動方法
US20100250746A1 (en) Information technology source migration
US20160156568A1 (en) Computer system and computer resource allocation management method
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
JP2014186652A (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
JP6421470B2 (ja) 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法
TW201347459A (zh) 管理方法及其系統
US11675611B2 (en) Software service intervention in a computing system
JP7125964B2 (ja) 計算機システムおよび管理方法
US10509567B2 (en) System and method for migrating storage while in use
US11677616B2 (en) System and method for providing a node replacement controller for use with a software application container orchestration system
JP7104327B2 (ja) 情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法
US10540112B2 (en) System and method for migrating virtual machines with storage while in use
US20220107814A1 (en) Hibernating and resuming nodes of a computing cluster
JP2017004467A (ja) マイグレーション制御装置、マイグレーション制御方法及びマイグレーション制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170523