JP2014219918A - 仮想マシンのメモリ複製方法及びシステム及びプログラム - Google Patents

仮想マシンのメモリ複製方法及びシステム及びプログラム Download PDF

Info

Publication number
JP2014219918A
JP2014219918A JP2013100366A JP2013100366A JP2014219918A JP 2014219918 A JP2014219918 A JP 2014219918A JP 2013100366 A JP2013100366 A JP 2013100366A JP 2013100366 A JP2013100366 A JP 2013100366A JP 2014219918 A JP2014219918 A JP 2014219918A
Authority
JP
Japan
Prior art keywords
memory
replication
virtual machine
duplication
page
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
JP2013100366A
Other languages
English (en)
Inventor
圭 大村
Kei Omura
圭 大村
河野 健二
Kenji Kono
健二 河野
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
Keio University
Original Assignee
Nippon Telegraph and Telephone Corp
Keio University
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, Keio University filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013100366A priority Critical patent/JP2014219918A/ja
Publication of JP2014219918A publication Critical patent/JP2014219918A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 物理マシンの間で仮想マシンを定期的に複製する際に、複製元と複製先のディスクデータが一致している場合に、データ転送量を削減する。【解決手段】 本発明は、複製元システムと複製先システムのディスクデータが一致している場合に、複製元システムは、ページキャッシュアドレスを取得し、該ページページキャッシュアドレスに該当するビットを除いてメモリページを、メモリ残量が所定の量になるまで複製先システムに送信し、所定の量になったら仮想マシンを停止し、残りのメモリページとデバイス状態を該複製先システムに送信し、複製先システムは、複製元システムから全メモリページを受信し、デバイス状態を受信し、仮想マシンに反映させ、その後、ページキャッシュをクリアする。【選択図】 図1

Description

本発明は、仮想マシンのメモリ複製方法及びシステム及びプログラムに係り、特に、物理マシンの間で仮想マシンを定期的に複製するシステムにおいて、複製時間の削減や複製のためのメモリ転送量の削減を行うための仮想マシンのメモリ複製方法及びシステム及びプログラムに関する。
ある物理マシン上で動作する仮想マシンを、異なる物理マシン上に複製して矛盾なく動作させるためには、複製元から複製先に仮想マシン状態(CPU、メモリ、デバイス状態)を転送し、複製先の物理マシン上に複製元と同一の仮想マシン状態を再現する必要がある。
そのための方法として、複製元の物理マシン上で動作する仮想マシンのサービス停止時間を最小限に抑えて、複製先の物理マシンに仮想マシン状態を転送する方法がある(例えば、非特許文献1参照)。
以下に、従来技術によるシステムおよび動作を示す。
図1は、システム構成を示す。同図に示すシステムは、複製元システム100(データ送信側)と複製先システム200(データ受信側)から構成される。各システム共に、仮想マシン110,210、仮想マシン制御部120,220、ハードウェア130,230を有する。なお、以下の記載において、複製元システム100および複製先システム200間の通信は、ハードウェア130,230内の通信インタフェース(図示せず)が通信用ネットワークを介して行うものとする。複製元システム100および複製先システム200のハードウェア130,230はディスク300と接続されている。なお、ディスク300を同一状態に保つための構成は、図1の例に限定されることなく、例えば、複製元システム100、複製先システム200がそれぞれ別々のディスクを利用し、常に同一に保つ処理を行ってもよい。
まず、複製元システム100の仮想マシン制御部120内の仮想マシン送信部121の処理について説明する。
図2は、従来技術における仮想マシン送信部の全体フローチャートである。
ステップ110)複製元システム100は、複製先システム200への複製準備として、複製元システム100の仮想マシン110のメモリページをビット単位で管理し、複製先システム200に送るべきメモリページのビットを立てる処理を行う。
ステップ120)仮想マシン送信部121は、メモリページを管理するビットを順に確認し、ビットが立っている場合、対応するメモリページを複製先に転送し、ビットをクリアする。本処理では、送るべきメモリページ数が十分に小さくなるまで、反復的にメモリページを複製先システム200に転送する。その間、仮想マシン110は停止していないため、既に転送済みのメモリページに変更が生じると、対応するビットを立てる処理を行う。
ステップ130)仮想マシン110を停止し、残りのビットが立っているメモリページと、仮想マシン110のCPU、デバイス状態を複製先システム200に転送する。
上記のステップ110の複製準備処理を詳細に説明する。
図3は、従来技術におけるS110の詳細フローチャートである。
ステップ610)複製元システム100の仮想マシン制御部120の仮想マシン送信部121では、全てのメモリページに対応するビットを立てる。
上記のステップ120の複製先システム200への複製処理の反復処理を詳細に説明する。
図4は、従来技術におけるS120の詳細フローチャートである。
ステップ310)仮想マシン制御部120の仮想マシン送信部121は、メモリページを管理するビットを確認する。
ステップ320)ビットが立っている場合はステップ330に移行する。立っていない場合はステップ310に移行し、次のビットを確認する。
ステップ330)ステップ320で確認したビットに対応するメモリページを複製先システム200に送信する。
ステップ340) 仮想マシン送信部121は、送信したメモリページに対応するビットをクリアする。
ステップ350) 残りメモリ量が十分に小さい(ユーザが任意に設定)場合は、処理を終了し、ステップ130に移行する。そうでない場合は、ステップ310に移行する。
次に、上記のステップ130の複製先システムに全データを送信する処理について説明する。
図5は、従来技術におけるステップ130の詳細フローチャートである。
ステップ410)仮想マシン制御部120は、仮想マシン110を停止する。(これにより、メモリデータに新たな変更は生じなくなる。)
ステップ420)仮想マシン制御部120の仮想マシン送信部121は、ステップ120で転送していない残りのビットが立っているメモリとCPU、デバイス状態を複製先システム200に送信する。
次に、複製先システム200の仮想マシン制御部220内の仮想マシン受信部221の処理について説明する。
図6は、従来技術における複製先システムの仮想マシン受信部のフローチャートである。
ステップ710)複製先システム200の仮想マシン受信部221は、複製元システム100からメモリページを受信する。
ステップ720)複製元システム100から全メモリページを受信した場合は、ステップ730に移行する。そうでない場合は、ステップ710に移行する。
ステップ730)複製元システム100から、CPU、デバイス状態を受信する。
ステップ740)受信したデータを複製先200の仮想マシン210に反映する。
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.
しかしながら、上記の非特許文献1の技術は、仮想マシンのメモリデータを全て転送する必要があるため、転送量が大きいという問題がある。また、メモリの内、読み出したディスクデータを保持しているページキャッシュに関しては、複製元と複製先でディスクデータを共有しているシステムでは、既に複製先にも存在するデータであるため、冗長な転送であるという問題がある。
本発明は、上記の点に鑑みなされたもので、複製元と複製先のディスクデータが一致している場合(例えば、共有ディスクやNFS(Network File System)の利用)に、データ転送量を削減することが可能な仮想マシンのメモリ複製方法及びシステム及びプログラムを提供することを目的とする。
上記の課題を解決するため、本発明は、物理マシンの間で仮想マシンを定期的に複製する仮想マシンのメモリ複製システムであって、
複製元システムと複製先システムを有し、
前記複製元システムと前記複製先システムのディスクデータが一致している場合に、
前記複製元システムは、
ページキャッシュアドレスを取得し、該ページページキャッシュアドレスに該当するビットを除いてメモリページを、メモリ残量が所定の量になるまで前記複製先システムに送信し、所定の量になったら仮想マシンを停止し、残りのメモリページとデバイス状態を該複製先システムに送信する手段を有し、
前記複製先システムは、
前記複製元システムから全メモリページを受信し、デバイス状態を受信し、仮想マシンに反映させる手段を有する。
また、本発明は、前記複製先システムにおいて、
前記複製元システムから受信したメモリページ及びデバイス状態を前記仮想マシンに反映させた後、ページキャッシュをクリアする手段を含む。
上記のように本発明は、複製元から複製先に仮想マシンを複製する際に、ページキャッシュメモリに関しては、ビットを立てないので、転送量が削減できる。また、複製先で仮想マシンを再開する際に、ページキャッシュをクリアする処理を実行し、仮想マシン状態をページキャッシュが存在しない状態へと遷移させることで、複製先で仮想マシンを再開させても矛盾が生じない。
従来及び本発明におけるシステム構成図である。 従来技術における仮想マシン送信部の全体フローチャートである。 従来技術におけるS110の詳細フローチャートである。 従来技術におけるS120の詳細フローチャートである。 従来技術におけるS130の詳細フローチャートである。 従来技術における複製先システムの仮想マシン受信部のフローチャートである。 本発明の一実施の形態におけるS110の詳細フローチャートである。 本発明の一実施の形態における仮想マシン受信部のフローチャートである。 本発明と従来技術の仮想マシン複製に必要なデータ転送量の比較である。 本発明と従来技術の仮想マシン複製にかかる時間の比較である。
以下、図面と共に本発明の実施の形態を説明する。
図1に示すシステムにおいて、複製元システム100で仮想マシン110の複製が開始されると、転送すべきメモリページのトラッキング(具体的な処理は、非特許文献1を参照)を行う。その際に、本発明では、ページキャッシュアドレスを取得し、ページキャッシュメモリに該当するビットは落とす。次に、反復コピーのフェーズでは、残りメモリ量が一定量以下になるまで、メモリの送信を行う。残りメモリ量が一定量以下になると、仮想マシンを停止し、残りのメモリとCPU、デバイス状態を複製先システム200に送信する。
複製先システム200では、全メモリページを受信するまで、メモリの受信を行う。全メモリ受信後、CPUなど他デバイス状態と受信したデータを仮想マシンに反映する。更に、ページキャッシュをクリアする処理を実行する。こうすることにより、複製先の仮想マシン状態が、ページキャッシュがない状態となるため、複製先で仮想マシンを再開しても矛盾が生じなくなる。
以下に、前述の図2のフローチャートに沿って説明する。
次に、複製元システム100の仮想マシン制御部120内の仮想マシン送信部121の処理について、フローチャートを基に説明する。
本発明の仮想マシン送信部121の処理は、図2のステップ110の処理において、従来の技術とは異なる。
図7は、本発明の一実施の形態におけるステップ110の処理の詳細フローチャートである。
ステップ210)仮想マシン送信部121は、仮想マシン110のメモリアドレスの内、特にページキャッシュのアドレスを取得する。
ステップ220) ページキャッシュ以外の全メモリページに対応するビットを立てる。
本発明では、図2のステップ120の反復コピーの処理については、従来技術と同様であるので、その説明を省略する。
また、図2のステップ130の仮想マシン110を停止し、全データを複製先システム200に送信する処理は、従来技術と同様であるため、その説明を省略する。
図8は、本発明の一実施の形態における複製先システムの仮想マシン受信部のフローチャートである。
ステップ510) 仮想マシン受信部221は、複製元システム100からメモリページを受信する。
ステップ520) 複製元システム100から全メモリページを受信した場合はステップ530に移行する。そうでない場合は、ステップ510に移行する。
ステップ530) 複製元システム100から、CPU、デバイス状態を受信する。
ステップ540) 仮想マシン受信部221は、受信したデータを複製先システム200の仮想マシン210に反映する。
ステップ550) 仮想マシン受信部221は、ページキャッシュをクリアする。
本発明は、仮想マシンを複製する際に必要なメモリ転送量を削減するという課題に対し、仮想マシンを複製する際に、複製元システム100と複製先システム200で共有するディスクにデータが存在するページキャッシュに関しては、転送をしないことで、複製に必要なメモリ転送量を削減することができる。また、メモリ転送量を削減することで、複製にかかる時間も削減することができる。
図9に、本発明と従来技術の仮想マシン複製に必要なデータ転送量の比較を示す。
同図の縦軸は、複製元システム100から複製先システム200に仮想マシンを複製した際に生じた全データ転送量を示す。横軸は、仮想マシンメモリ(1.5GB)の内、ページキャッシュが占めるサイズを示している。本実験では、仮想マシンのページキャッシュサイズを0MBから1200MNBに100MBずつ変化させて、各ページキャッシュサイズの場合に、仮想マシン複製に必要だったデータ転送量を測定した。本発明により、ページキャッシュサイズは転送せずに、仮想マシンを複製することができるため、仮想マシンメモリの内、ページキャッシュの量が多いほど、複製に必要なデータ転送量を削減することが可能であることを確認できた。なお、図9の実験環境において、ゲストOSのメモリは1.5GB、さらに無負荷の状態で、仮想マシン複製を実行した。
また、図10は、本発明と従来技術の仮想マシン複製にかかる時間の比較を示す。
同図の縦軸は、複製元システム100から複製先システム200に仮想マシンを複製するのにかかった時間であり、横軸は仮想マシンメモリ(1.5GB)の内、ページキャッシュ占めるサイズを示している。本実験では、仮想マシンのページキャッシュサイズを0MBから1200MBに100MBずつ変化させて、各ページキャッシュサイズの場合に、仮想マシン複製にかかった時間を測定した。本発明により、図10で示したとおり、複製に必要なデータ転送量を削減することができ、結果として複製に必要な時間もページキャッシュサイズに比例して削減できていることが確認できた。なお、図10の実験環境において、ゲストOSのメモリは1.5GB、さらに無負荷の状態で、仮想マシン複製を実行した。
本発明では、ページキャッシュを転送しないために、ページキャッシュアドレスを取得し、ページキャッシュに対応するビットは立てない。また、複製元ではなく、複製先でページキャッシュをクリアするという処理を実行させるため、例えば、非特許文献2(B, Curry., G, Lefebvre., D, Meyer., M, Feeley., N, Hutchinson., A, Warfield.: Remus: High Availability via Asynchronous Virtual Machine Replication, 5th USENIX Symposium on Networked Systems Design and Implementation, pp.161-174 (2008))のような、定期的に仮想マシン状態を複製させるシステムに適用した際も、複製元サーバ性能に影響を与えることなく、仮想マシン複製に必要な転送量の削減効果を得ることができる。
なお、上記の図1の複製元システム100及び複製先システム200内の各構成要素の動作をプログラムとして構築し、複製元システム(装置)、複製先システム(装置)として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
100 複製元システム
110 仮想マシン
120 仮想マシン制御部
121 仮想マシン送信部
130 ハードウェア
200 複製先システム
210 仮想マシン
220 仮想マシン制御部
221 仮想マシン受信部
230 ハードウェア
300 ディスク

Claims (6)

  1. 物理マシンの間で仮想マシンを定期的に複製する仮想マシンのメモリ複製システムであって、
    複製元システムと複製先システムを有し、
    前記複製元システムと前記複製先システムのディスクデータが一致している場合に、
    前記複製元システムは、
    ページキャッシュアドレスを取得し、該ページページキャッシュアドレスに該当するビットを除いてメモリページを、メモリ残量が所定の量になるまで前記複製先システムに送信し、所定の量になったら仮想マシンを停止し、残りのメモリページとデバイス状態を該複製先システムに送信する手段を有し、
    前記複製先システムは、
    前記複製元システムから全メモリページを受信し、デバイス状態を受信し、仮想マシンに反映させる手段を有する
    ことを特徴とするメモリ複製システム。
  2. 前記複製先システムは、
    前記複製元システムから受信したメモリページ及びデバイス状態を前記仮想マシンに反映させた後、ページキャッシュをクリアする手段を含む
    請求項1記載のメモリ複製システム。
  3. 物理マシンの間で仮想マシンを定期的に複製する仮想マシンのメモリ複製方法であって、
    複製元システムと複製先システムを有するシステムにおいて、
    前記複製元システムと前記複製先システムのディスクデータが一致している場合に、
    前記複製元システムが、ページキャッシュアドレスを取得し、該ページページキャッシュアドレスに該当するビットを除いてメモリページを、メモリ残量が所定の量になるまで前記複製先システムに送信し、所定の量になったら仮想マシンを停止し、残りのメモリページとデバイス状態を該複製先システムに送信し、
    前記複製先システムが、前記複製元システムから全メモリページを受信し、デバイス状態を受信し、仮想マシンに反映させる
    ことを特徴とするメモリ複製方法。
  4. 前記複製先システムにおいて、
    前記複製元システムから受信したメモリページ及びデバイス状態を前記仮想マシンに反映させた後、ページキャッシュをクリアする
    請求項3記載のメモリ複製方法。
  5. コンピュータを、
    請求項1または2に記載のメモリ複製システムの複製元システム(物理マシン)として機能させるためのメモリ複製プログラム。
  6. コンピュータを、
    請求項1または2に記載のメモリ複製システムの複製先システム(物理マシン)として機能させるためのメモリ複製プログラム。
JP2013100366A 2013-05-10 2013-05-10 仮想マシンのメモリ複製方法及びシステム及びプログラム Pending JP2014219918A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013100366A JP2014219918A (ja) 2013-05-10 2013-05-10 仮想マシンのメモリ複製方法及びシステム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013100366A JP2014219918A (ja) 2013-05-10 2013-05-10 仮想マシンのメモリ複製方法及びシステム及びプログラム

Publications (1)

Publication Number Publication Date
JP2014219918A true JP2014219918A (ja) 2014-11-20

Family

ID=51938282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013100366A Pending JP2014219918A (ja) 2013-05-10 2013-05-10 仮想マシンのメモリ複製方法及びシステム及びプログラム

Country Status (1)

Country Link
JP (1) JP2014219918A (ja)

Similar Documents

Publication Publication Date Title
US11068395B2 (en) Cached volumes at storage gateways
US9600553B1 (en) Distributed replication in cluster environments
US10152527B1 (en) Increment resynchronization in hash-based replication
US20210117441A1 (en) Data replication system
US9081842B1 (en) Synchronous and asymmetric asynchronous active-active-active data access
US10101943B1 (en) Realigning data in replication system
US9268651B1 (en) Efficient recovery of storage gateway cached volumes
US9274956B1 (en) Intelligent cache eviction at storage gateways
US7778975B2 (en) Mirroring method, mirroring device, and computer product
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
EP3195574B1 (en) Techniques for coordinating parallel performance and cancellation of commands in a storage cluster system
US9992118B2 (en) System and method for optimizing transportation over networks
US20140115390A1 (en) Power failure management in components of storage area network
CN106776123B (zh) 一种容灾实时数据复制方法及系统、备份客户端
US10244069B1 (en) Accelerated data storage synchronization for node fault protection in distributed storage system
US11431798B2 (en) Data storage system
CN112988680A (zh) 数据加速方法、缓存单元、电子设备及存储介质
US20180081773A1 (en) Copy-on-read process in disaster recovery
JP5292350B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
KR101601877B1 (ko) 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법
US11216204B2 (en) Degraded redundant metadata, DRuM, technique
US20200226097A1 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
JP2014219918A (ja) 仮想マシンのメモリ複製方法及びシステム及びプログラム
US11567905B2 (en) Method and apparatus for replicating a concurrently accessed shared filesystem between storage clusters
JP2013250886A (ja) 仮想マシンのメモリ複製装置及び方法及びプログラム