[go: up one dir, main page]

JP2011039790A - 仮想マシンイメージ転送装置及び方法及びプログラム - Google Patents

仮想マシンイメージ転送装置及び方法及びプログラム Download PDF

Info

Publication number
JP2011039790A
JP2011039790A JP2009186766A JP2009186766A JP2011039790A JP 2011039790 A JP2011039790 A JP 2011039790A JP 2009186766 A JP2009186766 A JP 2009186766A JP 2009186766 A JP2009186766 A JP 2009186766A JP 2011039790 A JP2011039790 A JP 2011039790A
Authority
JP
Japan
Prior art keywords
virtual machine
memory
image
transfer
transferring
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
JP2009186766A
Other languages
English (en)
Inventor
Kari Yanagisawa
佳里 柳澤
Yoshiaki Tamura
芳明 田村
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009186766A priority Critical patent/JP2011039790A/ja
Publication of JP2011039790A publication Critical patent/JP2011039790A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 仮想マシンのイメージ転送を高速化すると共に、転送に係る負荷を低減する。
【解決手段】 本発明は、仮想マシンを動作している物理マシンから他の物理マシンに仮想マシンのイメージを転送する際に、転送側の物理マシンの転送プログラムのメモリの一部に仮想マシンのメモリ空間を対応付けることにより、仮想マシンのメモリイメージを転送前に予めメモリに割り当ておき、転送時には割り当てを行うことなく、割り当てられた仮想マシンのメモリイメージをメモリから読み出して他の物理マシンに転送する。
【選択図】 図1

Description

本発明は、仮想マシンイメージ転送装置及び方法及びプログラムに係り、特に、複数の物理マシンの間で仮想マシンのイメージを転送するシステムにおいて、負荷の低減や転送効率の向上、転送処理の高速化を行うための仮想マシンイメージ転送装置及び方法及びプログラムに関する。
従来、仮想マシン上においてその複製を短時間に作成する技術として、複製先で必要になったページを必要になる毎に転送するデマンドページングという手法がある(例えば、特許文献1参照)。
また、ライブマイグレーションという仮想マシンを停止せずにそのイメージを転送する手法がある。この手法では、今回のターンの転送中に変更された箇所については覚えておき、次のターンの転送で前回の転送との差分を転送する。これにより、仮想マシンを停止せずにイメージの転送を行うことができる(例えば、非特許文献1参照)。
特開2004−133894号公報
Christopher Clark, Keir Fraser, Steven Hand, Jacob Corm Hansen, Eric Jul, Christian Limpach, Ian Pratt, and Andrew Warfield. Live migration of virtual machines. Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation, volume 2, pp. 273-286, 2005
しかしながら、上記従来の手法には、以下のような問題がある。
仮想マシンのイメージ転送を行う際の仮想マシンの停止時間を小さくする方法にデマンドページングを用いる方法やライブマイグレーションという手法を使うと、仮想マシンの停止時間は最小化されるが、転送にかかる時間はその分増大する。前者の単純な実装では対象となる全てのメモリがアクセスされるまで完全なイメージのコピーは作成されない。また、後者の手法ではイベントが発生する度に差分転送を行うため、一気に全て転送するのに比べて転送にかかる時間が増加する。
例えば、仮想マシンのフォールトトラレントを確保するための現在の状態のスナップショットを定期的に転送先に送信する場合、上記の方法ではスナップショットの転送が完了するまでに長い時間がかかり、転送先で処理を再開する場合に大幅に後戻りをしなくてはならない可能性がある。仮想マシンを停止して転送する場合でも、単純な方法ではスナップショットを送る度に仮想マシンのメモリを転送プログラムに割り当てて転送するため、ページ数に応じた多大な割り当て時間がかかり、転送時間が増大する。
また、仮想マシンのイメージ転送では、仮想マシンのメモリイメージ転送プログラムに割り当てるという処理が必要である。この処理は転送プログラムから仮想マシンモニタという仮想マシンを管理している上位のプログラムにメモリの割り当てを依頼する処理であり、プログラムの切り替え(コンテキストスイッチ)を伴う。よって、メモリの割り当て処理はコンテキストスイッチそのものと上位のプログラムの処理とが必要となり、CPU負荷の大きい処理である。従来、これをひとまとまりのページ毎に逐次的に行っていたため、転送の際にページ数に応じた負荷がかかっていた。
例えば、大きなメモリ容量を持つ仮想マシンのスナップショットを定期的に送る場合にはその度にコンテキストスイッチが発生し、大きなCPU負荷がかかっていた。
本発明は、上記の点に鑑みなされたもので、仮想マシンのイメージを従来よりも短い時間で転送することが可能な仮想マシンイメージ転送装置及び方法及びプログラムを提供することを目的とする。
図1は、本発明の原理構成図である。
本発明(請求項1)は、現在動作している仮想マシンのイメージを他の物理マシンに転送する仮想マシンイメージ転送装置であって、
転送プログラムのメモリ150の一部に仮想マシン10のメモリ空間を対応付けることにより、仮想マシン10のメモリイメージを転送前に予めメモリ150に割り当てておく割当手段110と、
割当手段110で予め割り当てられている仮想マシンのメモリイメージをメモリ150から読み出して他の物理マシンに転送する転送手段130と、を有する。
また、本発明(請求項2)は、請求項1の割当手段110が、仮想マシンのメモリ空間においてイベントの発生により変更されたメモリアドレスの差分情報を取得する手段を含み、
転送手段130が、差分のある次の位置のメモリイメージを他の物理マシンに転送し、全ての差分について転送後に、CPUの実行状態を転送する手段を含む。
また、本発明(請求項3)は、請求項1または2の仮想マシンのメモリイメージとして、全て、または、一部のメモリイメージを含む。
また、本発明(請求項4)は、請求項3のメモリイメージとして、仮想マシンの実行状態を含む。
図2は、本発明の原理を説明するための図である。
本発明(請求項5)は、現在動作している仮想マシンのイメージを他の物理マシンに転送する仮想マシンイメージ転送方法であって、
仮想マシンを動作している物理マシンは、
転送プログラムのメモリの一部に仮想マシンのメモリ空間を対応付けることにより、仮想マシンのメモリイメージを転送前に予めメモリに割り当てておく割当ステップ(ステップ1)と、
割当ステップで予め割り当てられている仮想マシンのメモリイメージをメモリから読み出して他の物理マシンに転送する転送ステップ(ステップ2)と、を行う。
また、本発明(請求項6)は、請求項5の割当ステップにおいて、
仮想マシンのメモリ空間においてイベントの発生により変更されたメモリアドレスの差分情報を取得し(ステップ11)、
転送ステップにおいて、
差分のある次の位置のメモリイメージを他の物理マシンに転送し(ステップ12,13)、
全ての差分について転送後に、CPUの実行状態を転送する(ステップ13)。
また、本発明(請求項7)は、請求項5または6の仮想マシンのメモリイメージとして、全て、または、一部のメモリイメージを含む。
また、本発明(請求項8)は、請求項7のメモリイメージとして、仮想マシンの実行状態を含む。
本発明(請求項9)は、請求項1乃至4のいずれか1項に記載の仮想マシンイメージ転送装置を構成する各手段としてコンピュータを機能させるための仮想マシンイメージ転送プログラムである。
上記のように本発明によれば、仮想マシンのイメージの転送を予め割り当てておいたメモリから行うことで、割り当てのために時間を費やすことなく転送を行うことができる。これにより、仮想マシンのイメージを従来よりも短い時間で転送できる。従来は割り当てを逐次的に行っていたためにこの処理に長い時間が生じていた。
また、本発明では、仮想マシンのイメージの転送を予め割り当てておいたメモリから行うことで、スナップショットを送信するたびに転送プログラムから操作できるメモリに仮想マシンイメージを割り当てる必要がなくなり、送信時のメモリ割り付け負荷が削減できる。例えば、複数の仮想マシンのスナップショットを転送する場合でも負荷が低くなったため、CPUの負荷を気にすることなく送信できる。
本発明の原理構成図である。 本発明の原理を説明するための図である。 転送モデルの例である。 本発明のシステム構成図である。 本発明の一実施の形態における仮想マシンイメージ転送装置の構成図である。 本発明の一実施の形態における転送処理のフローチャートである。 本発明の一実施の形態における受信処理のフローチャートである。 本発明の一実施の形態における受信時の配列を示す図である。 本発明の一実施の形態における送受信メッセージのシーケンス図である。
以下、図面と共に本発明の実施の形態を説明する。
本発明は、転送する仮想マシンのイメージを予め転送プログラムに割り当てておき、転送時に逐次的に割り当てを行うことを避けるものである。これにより、スナップショットの転送時間を短縮し、転送にかかる負荷を低減するものである。
図3は、転送モデルを示す。
仮想マシンのイメージの転送は、仮想マシン下で仮想マシンの管理や調停を行っている仮想マシンモニタ、仮想マシンそのもの、そして、仮想マシンのイメージを送信するプログラム(転送プログラム)、受信するプログラム(受信プログラム)により実現されている。
この際、転送プログラムは同図に示すような手順でイメージの同期を行う。
まず、手順1にあるように、前回から今回の転送までに変化したイメージの箇所を得る。
次に、手順2にあるように、変化したイメージの箇所のみ転送プログラムから操作できるメモリに割り当てを行い、手順3にあるように、割り当てられたメモリを転送する。この一連の作業は転送プログラムがOSや仮想マシンモニタに処理を依頼する手順2と手順3の割り当てと転送の箇所で多大な時間がかかる。これらの手順は転送プログラムから仮想マシンモニタに処理を依頼して行うが、この間の通信を行うために転送プログラムから仮想マシンモニタとその逆へのコンテキストスイッチというその他の処理に比べて大きな時間を使う。
本発明では、仮想マシンの全てのイメージを転送プログラムから参照できるメモリ領域に割り当てておき、スナップショットを送るたびに発生していた手順2の負荷を削減するものである。以下では、割当処理や転送処理を行うOSや仮想マシンモニタを仮想マシンイメージ転送装置として説明する。
図4は、本発明のシステム構成を示す。同図に示すシステムは、転送側のホストコンピュータ1(物理マシン)と受信側のホストコンピュータ2(物理マシン)を示しているが、これらは同一のホストコンピュータであってもよい。転送側のホストコンピュータ1は、仮想マシン10のメモリ11のイメージを読み出し、受信側のホストコンピュータ2は、仮想マシン20のメモリに転送内容のイメージを書き出す。ここで、仮想マシンのイメージとは、全てのメモリのイメージ、または、一部のメモリのイメージ、または、仮想マシンの実行状態を指す。
図5は、本発明の一実施の形態における仮想マシンイメージ転送装置の構成を示す。
仮想マシンイメージ転送装置100は、割当部110、イメージ取得部120、転送部130、受信部140、転送プログラム用メモリ(メモリ)150から構成される。
以下に、上記の構成における動作を説明する。
図6は、本発明の一実施の形態における転送処理のフローチャートである。
ステップ101) メモリ割当部110は、メモリ150上の領域にnを仮想マシン10のメモリ11の一番地(先頭)として設定する。
ステップ102) n番地目のメモリを割り付ける。これは、当該仮想マシンイメージ転送装置100のメモリ150の一部に、仮想マシン10のメモリ11の空間を対応付けることを指す。
ステップ103) nをひとつ増やす(n←n+1)。
ステップ104) nが仮想マシン10のメモリ11の最後の番地よりも大きいかを判定し、大きい場合はステップ220に移行し、そうでない場合はステップ102に戻る。
ステップ105) イベント発生を待機し、イベントが発生したらステップ106に移行する。
ステップ106) イメージ取得部120は、仮想マシン10のメモリアドレスのビットマップを参照し、前回からの差分情報を取得する。
ステップ107) イメージ取得部120は、ビットマップから差分のある次のメモリの位置を探索し、メモリ150のその位置の番地にmを代入する。
ステップ108) 数値mを転送部130から受信側の物理マシンに転送する。
ステップ109) さらに、転送部130は、メモリ150上に予め割り付けられている仮想マシンの番地mを参照し、m番地のイメージを読み出して受信側の物理マシンに転送する。
ステップ110) 全ての差分を受信側の物理マシンに転送した場合はステップ111に移行し、残りの差分情報がある場合はステップ107に戻る。
ステップ111) 転送部130は、メモリ送信完了を示す「0」(m=0)を受信側に送信する。
ステップ112) 転送部130は、CPU等の実行状態を受信側の物理マシンに送信する。
ステップ113) 受信側から応答「ack」を受信した場合は、ステップ105に移行して、次のイベント発生を待機する。受信しない場合は、受信側からの応答を待機する。
従来は、ステップ109の直前に、ステップ102に相当する処理を行っていたが、本発明では、ステップ101〜104の処理を行うことにより、ステップ109の直前でステップ102に相当する処理を実行することを避ける。このため、仮想マシンを現在動作している物理マシンから他の物理マシンに転送する際にかかる時間を短縮することができると共に、当該転送の際にかかる負荷を軽減させることができる。
次に、受信側の物理マシン処理を示す。なお、受信側の物理マシンの構成は、図5に示す仮想マシンイメージ転送装置と同様の構成であるとする。
図7は、本発明の一実施の形態に受信処理のフローチャートである。
ステップ201) 受信部140は、送信側の仮想マシンイメージ転送装置100からメモリ番地mを受信する。
ステップ202) m=0であるかを判定し、0以外であれば、ステップ203に移行し、0であれば、ステップ205に移行する。なお、「m=0」とは、送信側がステップ111において「0」をmに代入して送信した場合(メモリ送信完了)を指す。
ステップ203) 受信部140は、受信したmを割当部110を介してメモリ150の配列Aの末尾に追加する。ここで、配列Aとは、図8に示すように、メモリの番地を記憶しておくための配列であり、後述する配列Bは、仮想マシンのメモリの参照単位(例えば、4キロバイト)のデータを格納する配列である。
ステップ204) 受信部140は、送信側の仮想マシンイメージ転送装置100からm番地目のメモリイメージを受信し、割当部110を介して配列Bの末尾に追加し、ステップ201に戻る。
ステップ205) ステップ202において、受信したメモリ番地がm=0である場合は、送信側の仮想マシンイメージ転送装置100からCPU等の実行状態を受信する。
ステップ206) 転送部130は、応答として「ack」を送信側の仮想マシンイメージ転送装置100に送信する。
ステップ207) メモリ150の配列Aが空であるかを判定し、空でない場合は、ステップ208に移行し、空である場合はステップ212に移行する。
ステップ208) 割当部110は、メモリ150上の配列Aの末尾の値を削除し、その値にnを代入する。
ステップ209) 割当部110は、仮想マシン20のn番地を物理マシンのメモリ150に割り付け、割り付けられたメモリ150のアドレスをCに代入する。但し、Cは、仮想マシンのn番地にあるメモリイメージに対応付けられたメモリ150への参照(インデックス)である。
ステップ210) 配列Bの末尾のデータを削除し、Cの指すメモリ領域に書き込む。
ステップ211) Cを解放し、ステップ207の処理に移行する。
ステップ212) 割当部110は、ステップ205で受信したCPUなどの実行状態を仮想マシン20上に反映する。
上記の図6、図7に示すフローチャートにおけるメッセージシーケンスを図9に示す。図9のシーケンスにおいて、図6、図7の処理に対応するメッセージには図6、図7と同様のステップ番号を付す。
なお、上記の実施の形態において、当該仮想マシンイメージ転送装置はホストコンピュータのCPUであり、各部はそれぞれプログラムまたはプログラムのサブルーチンとして機能する。
また、上記のプログラムをハードディスクや、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
本発明は、他の物理マシンに対して仮想マシンのイメージ転送を行う技術に適用可能である。
1 転送側ホストコンピュータ
2 受信側ホストコンピュータ
10、20 仮想マシン
11 メモリ
100 仮想マシンイメージ転送装置(物理マシン)
110 割当手段、割当部
120 イメージ取得部
130 転送手段、転送部
140 受信部
150 メモリ

Claims (9)

  1. 現在動作している仮想マシンのイメージを他の物理マシンに転送する仮想マシンイメージ転送装置であって、
    転送プログラムのメモリの一部に、前記仮想マシンのメモリ空間を対応付けることにより、該仮想マシンのメモリイメージを転送前に予めメモリに割り当てておく割当手段と、
    前記割当手段で既に割り当てられている前記仮想マシンのメモリイメージを前記メモリから読み出して前記他の物理マシンに転送する転送手段と、
    を有することを特徴とする仮想マシンイメージ転送装置。
  2. 前記割当手段は、
    前記仮想マシンのメモリ空間においてイベントの発生により変更されたメモリアドレスの差分情報を取得する手段を含み、
    前記転送手段は、
    差分のある次の位置のメモリイメージを前記他の物理マシンに転送し、全ての差分について転送後に、CPUの実行状態を転送する手段を含む
    請求項1記載の仮想マシンイメージ転送装置。
  3. 前記仮想マシンのメモリイメージは、
    全て、または、一部のメモリイメージを含む
    請求項1または2記載の仮想マシンイメージ転送装置。
  4. 前記メモリイメージは、
    前記仮想マシンの実行状態を含む
    請求項3記載の仮想マシンイメージ転送装置。
  5. 現在動作している仮想マシンのイメージを他の物理マシンに転送する仮想マシンイメージ転送方法であって、
    前記仮想マシンを動作している物理マシンは、
    転送プログラムのメモリの一部に、前記仮想マシンのメモリ空間を対応付けることにより、前記仮想マシンのメモリイメージを転送前に該メモリに予め割り当ておく割当ステップと、
    前記割当ステップで既に割り当てられている前記仮想マシンのメモリイメージを前記メモリから読み出して前記他の物理マシンに転送する転送ステップと、
    を行うことを特徴とする仮想マシンイメージ転送方法。
  6. 前記割当ステップにおいて、
    前記仮想マシンのメモリ空間においてイベントの発生により変更されたメモリアドレスの差分情報を取得し、
    前記転送ステップにおいて、
    差分のある次の位置のメモリイメージを前記他の物理マシンに転送し、全ての差分について転送後に、CPUの実行状態を転送する
    請求項5記載の仮想マシンイメージ転送方法。
  7. 前記仮想マシンのメモリイメージは、
    全て、または、一部のメモリイメージを含む
    請求項5または6記載の仮想マシンイメージ転送方法。
  8. 前記メモリイメージは、
    前記仮想マシンの実行状態を含む
    請求項7記載の仮想マシンイメージ転送方法。
  9. 請求項1乃至4のいずれか1項に記載の仮想マシンイメージ転送装置を構成する各手段としてコンピュータを機能させるための仮想マシンイメージ転送プログラム。
JP2009186766A 2009-08-11 2009-08-11 仮想マシンイメージ転送装置及び方法及びプログラム Pending JP2011039790A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009186766A JP2011039790A (ja) 2009-08-11 2009-08-11 仮想マシンイメージ転送装置及び方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009186766A JP2011039790A (ja) 2009-08-11 2009-08-11 仮想マシンイメージ転送装置及び方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2011039790A true JP2011039790A (ja) 2011-02-24

Family

ID=43767495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009186766A Pending JP2011039790A (ja) 2009-08-11 2009-08-11 仮想マシンイメージ転送装置及び方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2011039790A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012139062A3 (en) * 2011-04-07 2013-02-14 Microsoft Corporation Image analysis tools
US9875056B2 (en) 2013-12-17 2018-01-23 Fujitsu Limited Information processing system, control program, and control method
JP2019512974A (ja) * 2016-03-24 2019-05-16 アルカテル−ルーセント 仮想ネットワーク機能の移行のための方法
CN114647480A (zh) * 2020-12-17 2022-06-21 柏科数据技术(深圳)股份有限公司 一种在异构云环境下的虚拟机迁移方法及其系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012139062A3 (en) * 2011-04-07 2013-02-14 Microsoft Corporation Image analysis tools
US9875056B2 (en) 2013-12-17 2018-01-23 Fujitsu Limited Information processing system, control program, and control method
JP2019512974A (ja) * 2016-03-24 2019-05-16 アルカテル−ルーセント 仮想ネットワーク機能の移行のための方法
US11223702B2 (en) 2016-03-24 2022-01-11 Alcatel Lucent Method for migration of virtual network function
CN114647480A (zh) * 2020-12-17 2022-06-21 柏科数据技术(深圳)股份有限公司 一种在异构云环境下的虚拟机迁移方法及其系统

Similar Documents

Publication Publication Date Title
US8402200B2 (en) Method and apparatus for storing and restoring state of virtual machine
JP6882662B2 (ja) マイグレーションプログラム、情報処理装置およびマイグレーション方法
JP6406707B2 (ja) 半導体記憶装置
US20040133743A1 (en) RAID apparatus and logical device expansion method thereof
CN110704161B (zh) 虚拟机创建方法、装置及计算机设备
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
CN111190854B (zh) 通信数据处理方法、装置、设备、系统和存储介质
JP2018022345A (ja) 情報処理システム
JP2017227969A (ja) 制御プログラム、システム、及び方法
JP2008090657A (ja) ストレージシステム及び制御方法
JP2005128590A (ja) スナップショットシミュレーション機能を有するディスクアレイ装置
JPWO2018154667A1 (ja) スケールアウト型のストレージシステム
JP5152006B2 (ja) 記憶装置、記憶装置のデータ転送方法
CN113312182B (zh) 一种云计算节点、文件处理方法及装置
CN113204407A (zh) 一种内存超配管理方法及装置
JP2011039790A (ja) 仮想マシンイメージ転送装置及び方法及びプログラム
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
CN118312464A (zh) 数据管理方法和数据管理系统
JP4997858B2 (ja) データ記録装置およびデータ記録プログラム
JP5334048B2 (ja) メモリ装置および計算機
CN105718211B (zh) 信息处理设备和信息处理方法
JP2010231295A (ja) 解析システム
CN107515723B (zh) 用于管理存储系统中的存储器的方法和系统
CN113609150B (zh) 基于硬件的原子写方法、设备及系统