JP2019512804A - リモートアクセスされるデータの効率的なライブマイグレーション - Google Patents

リモートアクセスされるデータの効率的なライブマイグレーション Download PDF

Info

Publication number
JP2019512804A
JP2019512804A JP2018548837A JP2018548837A JP2019512804A JP 2019512804 A JP2019512804 A JP 2019512804A JP 2018548837 A JP2018548837 A JP 2018548837A JP 2018548837 A JP2018548837 A JP 2018548837A JP 2019512804 A JP2019512804 A JP 2019512804A
Authority
JP
Japan
Prior art keywords
physical machine
data
machine
data subset
physical
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.)
Granted
Application number
JP2018548837A
Other languages
English (en)
Other versions
JP6728381B2 (ja
JP2019512804A5 (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2019512804A publication Critical patent/JP2019512804A/ja
Publication of JP2019512804A5 publication Critical patent/JP2019512804A5/ja
Application granted granted Critical
Publication of JP6728381B2 publication Critical patent/JP6728381B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、第1ストレージシステムから第2ストレージシステムにデータを移行するための方法、システム、および装置。そのデータは、第1ストレージシステムおよび第2ストレージシステムとは別のコンピュータシステム上で動作するプロセス(たとえば、仮想マシン、アプリケーション、または他のプロセス)用のデータである。そのデータは、互いに排他的であるデータサブセットに従って格納される。各データセットが移行されると、プロセスによる当該データセットへのアクセスができなくなるが、残りのデータセットへのアクセスは影響を受けない。プロセスによるデータセットへのアクセスは、データマイグレーションが完了すると、回復する。

Description

背景
クラウドコンピューティングとは、データセンターまたは「サーバーファーム」に収容されるサーバの集まりが、計算資源およびデータストレージを必要に応じて遠隔のエンドユーザに提供するネットワークベースのコンピューティングを指す。いくつかのクラウドコンピューティングサービスは、ワードプロセッサおよび他の一般的に使われるアプリケーションなどのソフトウェアアプリケーションへのアクセスを、ウェブブラウザまたは他のクライアントサイドソフトウェアを通して当該アプリケーションとやり取りするエンドユーザに与える。ユーザの電子データファイルは、通常、ユーザのコンピューティングデバイス上ではなく、サーバーファームに格納される。ソフトウェアアプリケーションおよびユーザデータをサーバーファーム上で保持することによって、エンドユーザのコンピューティングデバイスの管理を簡素化できる。いくつかのクラウドコンピューティングサービスによって、エンドユーザは、仮想マシンにおいてソフトウェアアプリケーションを実行できるようになる。パブリッククラウドコンピューティング環境では、複数のユーザが仮想マシン(VM)を起動することができる。
特定の仮想マシン用のデータは、仮想マシンがインスタンス化される物理マシンとは別の、1台以上の物理マシン上に格納される場合が多い。負荷分割、サーバメンテナンスなど、さまざまな理由から、特定の物理マシン上に格納されるデータの一部またはすべては、別の物理マシンに移行(migrate)される可能性がある。データのライブマイグレーション(live migration)とは、仮想マシン(または、非仮想処理エンティティ)がデータに対して任意に読出しおよび書込みを行っている間に、そのデータをある物理マシンから別の物理マシンに移動するプロセスである。
概要
本明細書は、データのライブマイグレーションに関する。
本明細書は、データに別の物理マシンからリモートアクセスしているサードパーティ処理装置(たとえば、仮想マシンまたはアプリケーション)に、そのデータへの安定した高性能アクセスを提供しつつ、あるストレージコンピュータから別のストレージコンピュータに当該データを移動するための体系的な方法およびシステムを説明する。
一般に、本明細書に記載の発明の主題の革新的な一態様は、方法で実施でき、当該方法は、第1の物理マシンに、第1の物理マシンとは別の第2の物理マシン上で動作するデータ処理プロセス用のデータを格納するアクションを含み、データを格納するアクションは、互いに排他的である複数のデータサブセットに従ってデータを格納するアクションを含み、方法は、さらに、データサブセットごとに、データ処理プロセスが、マッピングにおいて、第1の物理マシン上のデータサブセットのアドレス範囲をデータ処理プロセスの論理アドレス範囲に論理的にマッピングするアクションと、論理アドレス指定に従って、データ処理プロセスによるデータへの読出しアクセスおよび書込みアクセスを許可するアクションと、第1の物理マシン上に格納された第1のデータサブセットを、第1の物理マシンおよび第2の物理マシンとは別の第3の物理マシンに移行すると決定するアクションと、決定するアクションに応答して、データ処理プロセスによる第1のデータサブセットへの読出しアクセスおよび書込みアクセスを、データ処理プロセスによるその他のデータサブセットへの読出しアクセスおよび書込みアクセスを維持したまま、ブロックするアクションと、第1のデータサブセットを第1の物理マシンから第3の物理マシンに移行してデータサブセットを第3の物理マシン上に格納するアクションと、データ処理プロセスが、第3の物理マシン上の第1のデータサブセットのアドレス範囲をデータ処理プロセスの論理アドレス範囲に論理的にマッピングすることによって、マッピングを更新するアクションとを含む。本態様の他の実施形態は、コンピュータの記憶装置上に符号化された当該方法のアクションを実行するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
一般に、本明細書に記載の発明の主題の別の態様は、システムで実施でき、当該システムは、互いに排他的である複数のデータサブセットに従ってデータを格納する第1の物理マシンと、第1の物理マシンとは別の第2の物理マシンとを備え、第2の物理マシン上の仮想マシンは、第1の物理マシン上に格納されたデータへの読出しアクセスおよび書込みアクセスを有し、データサブセットごとに、マッピングにおいて、第1の物理マシン上のデータサブセットのアドレス範囲を仮想マシンの論理アドレス範囲に論理的にマッピングし、第1の物理マシン上に格納された第1のデータサブセットを、第1の物理マシンおよび第2の物理マシンとは別の第3の物理マシンに移行するとの決定に応答して、第1のデータサブセットは、第1の物理マシンから第3の物理マシンに移行され、移行中、仮想マシン用の第1のデータサブセットへの読出しアクセスおよび書込みアクセスは、仮想マシンによるその他のデータサブセットへの読出しアクセスおよび書込みアクセスを維持したまま、ブロックされ、第3の物理マシン上の第1のデータサブセットのアドレス範囲を仮想マシンの論理アドレス範囲に論理的にマッピングするために、マッピングが仮想マシンによって更新され、仮想マシン用の第1のデータサブセットへの読出しアクセスおよび書込みアクセスは、第1の物理マシンから第3の物理マシンへの第1のデータサブセットの移行の後に回復する。本態様の他の実施形態は、コンピュータの記憶装置上に符号化された当該方法のアクションを実行するように構成された対応する方法、装置、およびコンピュータプログラムを含む。
本明細書に記載の発明の主題の特定の実施形態は、次の利点のうちの1つ以上を実現するように実施できる。この方法は、プレコピー型ライブマイグレーションおよびポストコピー型ライブマイグレーションなど、その他のライブマイグレーション方法よりも仮想マシンの性能が向上することを保証する。たとえば、プレコピー型ライブマイグレーションでは、データアドレス空間全体を1つの移行単位として考えるため、すべてのアドレス空間は、完全に移行元側に存在するか、完全に移行先側に存在するかのどちらかである。移行が進行している間にデータに「ライブ」アクセスできるようにするために、仮想マシンはデータを引き続き読出し/書込みすることができるが、ライブマイグレーションの受信側の物理マシン(複数可)に変更を再送できるように、書込みは追跡される。この再送には、読出し操作の帯域幅よりも多くの帯域幅、ネットワーク帯域幅、CPU処理、および時間がかかる。さらに、使用中の仮想マシンは、通常、変更をネットワークで宛先に送信する速度よりも速い速度でデータを変更する。このような状況では、仮想マシンのアクセス速度を落とさなければならなくなり、性能が劣化してしまう。
ポストコピー型ライブマイグレーションを用いると、仮想マシンに移行先の物理マシンが知らされ、仮想マシンは、移行先の物理マシンにデータを要求する。移行先の物理マシンは、当該データが移行先の物理マシン上に格納されている場合、このデータを提供する。そうでない場合、移行先の物理マシンは、データが移行中の移行元の物理マシンからこのデータをフェッチした後、当該データを提供する。移行元の物理マシンからデータをフェッチしなければならない場合、仮想マシンのレイテンシが高くなる。移行先の物理マシンから移行元の物理マシンへのアクセスが多いと、全体的な帯域幅性能の大幅な劣化が生じてしまう。
しかしながら、後述する方法およびシステムは、これらの動作特性の一部またはすべてを解決し、データの格納および管理の技術分野に進歩をもたらす。移行データをXMBのデータのチャンクまたはデータのページであり得るデータサブセットで処理することによって、当該移行は、プレコピー型ライブマイグレーションよりもはるかに粒度が細かくなる。移行中のデータサブセットには、仮想マシンによってアクセスすることができなくなる。したがって、書込みの追跡を行う必要はない。データサブセットが移行されると、これより先のすべてのアクセスが移行先に直接行くため、データサブセットが再送される必要はない。
仮想マシンは、移行中のデータサブセットにアクセスしていなければ、実質的には、性能に何ら影響を受けない。データサブセットのサイズが小さいほど、データサブセットが移行するのを待つ間に仮想マシンがブロックされる時間が減少する。逆に、データサブセットのサイズが大きいほど、ストレージマッピング用のメタデータの量が少なくなる。したがって、システム管理は、待ち時間とマッピングメンテナンスとのトレードオフを選択的に評価することによってデータサブセットのサイズを特定のアプリケーションに合わせればよく、その結果、このアプリケーションについての移行性能動作が向上する。
マイグレーション技術は、たしかに、オーバーヘッドのために多少の帯域幅を利用しているが、その利用量は、プレコピー型またはポストコピー型マイグレーションが利用する帯域幅と比較すると、少ない。これは、データマイグレーションの技術分野にとって、さらに別の進歩である。
移行中のデータサブセットへの読出しアクセスおよび書込みアクセスがブロックされるため、データサブセットへの変更を追跡するためのオーバーヘッドメカニズムを必要とせず、移行の目的でデータサブセットへの仮想マシンのアクセスを具体的に順序付けする必要もない。たとえば、データストアがディスクであり、ある位置への顕著な読出しがあるにもかかわらず、移行の目的で仮想マシンが同じ位置への書き込みを行う場合、読出しアクセスの結果は不定である。本明細書におけるシステムおよび方法は、移行中に特定の領域に仮想マシンがアクセスすることをブロックすることによって、同じ位置への同時アクセスが起こらないようにする。
後述するライブマイグレーションは、進行を維持したまま、いつでも停止することができる。これは、停止された場合は完全に初めからやり直さなければならないプレコピー型ライブマイグレーションとは対照的であり、また、仮想マシンへのアクセスが移行先に切り替わった後は停止できないポストコピー型ライブマイグレーションとも対照的である。
本明細書に記載の発明の主題の1つ以上の実施形態の詳細を、添付の図面および以下の明細書において説明する。発明の主題のその他の特徴、態様、および利点は、本明細書、図面、および請求の範囲から明らかになるだろう。
データがライブマイグレーションされ得るクラウドベース環境のブロック図である。 データのライブマイグレーションのための例示的なプロセスのフロー図である。 第1の物理マシンから第3の物理マシンにデータサブセットが直接移行される、データのライブマイグレーションの例示的なプロセスのフロー図である。 仮想マシンが実装される物理マシンを経由して、第1の物理マシンから第3の物理マシンにデータサブセットが移行される、データのライブマイグレーションの例示的なプロセスのフロー図である。
さまざまな図面における同じ参照番号および名称は、同じ要素を示す。
詳細な説明
概要
第1の物理マシンは、互いに排他的である複数のデータサブセットに従ってデータを格納する。このデータは、第1の物理マシンとは別の第2の物理マシン上で動作する仮想マシンなどのデータ処理プロセス用に格納される。データ処理プロセスは、第1の物理マシンに格納されたデータへの読出しアクセスおよび書込みアクセスを有し、データサブセットごとに、マッピングにおいて、第1の物理マシン上のデータサブセットのアドレス範囲をデータ処理プロセスの論理アドレス範囲に論理的にマッピングする。
第1の物理マシンからのデータを第3の物理マシンに移行する場合、以下のステップをとる。データは、データサブセットで移行される。移行中の(たとえば、第1の物理マシンから第3の物理マシンに「飛行中」の)データサブセットごとに、データ処理プロセスによるデータサブセットへの読出しアクセスおよび書込みアクセスがブロックされる。しかしながら、データ処理プロセスによるデータマイグレーション中ではないその他のデータサブセットへの読出しアクセスおよび書込みアクセスは維持される。このように、データ処理プロセスは、第1の物理マシンに格納されたデータの大半に今まで通りアクセスすることができる。第1の物理マシンから第3の物理マシンへの特定のデータサブセットの移行に応答して、データ処理プロセスによってマッピングが更新される。具体的には、第3の物理マシン上の特定のデータサブセットのアドレス範囲が、データ処理プロセスの論理アドレス範囲にマッピングされる。よって、移行前の特定のデータサブセットのマッピングが、更新後のマッピングに置き換えられる。データ処理プロセス用の第1のデータサブセットへの読出しアクセスおよび書込みアクセスは、第1の物理マシンから第3の物理マシンへの第1のデータサブセットの移行後に回復する。その後、データ処理プロセスは、移行されたデータサブセットに格納されたデータを必要とするとき、第3の物理マシンにアクセスする。
システム要件によっては、上記プロセスに対するいくつかの変形例が有利であり得る。たとえば、データ処理プロセスは、データサブセットの移行を知らされなくてもよい。データサブセットに格納されたデータへのアクセスをデータ処理プロセスが第1の物理マシンに要求する場合、データ処理プロセスは、データサブセットが第3の物理マシン上に現在格納されている(または、第3の物理マシンに現在移行中である)ことを知らせる応答を受信する。データサブセットが現在移行中である場合、第3の物理マシンは、移行が完了するまでデータサブセットへのアクセスをブロックしてもよい。
これに代えて、データ処理プロセスは、移行について事前に知らされてもよく、移行の予想完了時間を計算してもよい。次に、データ処理プロセスは、予想完了時間まで、データを要求するのを待ってもよい。
データサブセットは、第1の物理マシンから第3の物理マシンに直接送信されてもよく、その後、移行が完了すると、第1の物理マシンまたは第3の物理マシンの一方がデータ処理プロセスにデータサブセットの新しい位置を知らせる。しかしながら、これに代えて、データサブセットは、中間として機能するデータ処理プロセスを経由してもよく、データ処理プロセスは、移行に対して責任を負う。これによって、データ処理プロセスは、データがどこにあるかについての最新の情報をほぼリアルタイムで知ることができるようになる。
さらに別の実装形態において、データ処理プロセスは移行を制御するが、データサブセットは、一方のストレージマシンから他方のストレージマシンに直接送信される。たとえば、仮想マシンは、「アドレス範囲転送」メッセージを第1ストレージマシンに送信し、第1ストレージマシンに、アドレス範囲転送によって指定された特定のアドレス範囲を読み込み、そのデータを第2ストレージマシンの別のアドレス範囲に書込むよう指示する。ストレージマシンは、ステートレスであるが、データサブセットは、仮想マシンから送信された命令によって、第1ストレージマシンから第2ストレージマシンに直接送信される。これによって、データをVMに経由させる場合よりも、データ転送が少なくなり、これは、多くのストレージマシンを要する場合、よりスケーラブルである。
最後に、データサブセットは、さまざまな異なるデータ管理技術によって実現することができる。たとえば、データサブセットは、ページサイズまたはブロックサイズに関係ない、たとえば、1MB、10MB、さらには、1GBなどの固定サイズのメモリであってもよい。これに代えて、データサブセットは、ブロックレベルまたはページレベルで実現されてもよく、X未満のすべてのアドレスが第1の物理マシン上に存在し、X以上のすべてのアドレスが第3の物理マシン上に存在するように、「ウォーターマーク」が利用される。Xの値は、データが移行されると、データ処理プロセスにおいて更新される。これによって、データ処理プロセスが論理アドレスをデータサブセットにマッピングすることをなくすことができ、代わりに、Xというウォーターマーク値に従って、データを格納する物理マシンを区分けできる。
これらの特徴および他の特徴について、以下により詳細に説明する。
例示的な動作環境
図1は、データがライブマイグレーションされ得るクラウドベース環境100のブロック図である。以下の明細書において、仮想マシンの例示的な実装形態を説明する。しかしながら、後述するシステムおよび方法によって、クライアントベースのストレージを有するクラウドベースアプリケーションまたはクラウドベースのストレージを有するクラウドベースアプリケーションなど、データ処理プロセスのうちのいくつかのデータ処理プロセス用データのデータマイグレーションが容易になってもよい。
クラウドベース環境100における物理マシンであるホストマシン110は、ラックマウント式サーバまたは他のコンピューティングデバイスなど、1つ以上のデータ処理装置を含めることができる。こちらも物理マシンであるストレージマシン140および150は、ホストマシン110上で実行するデータ処理プロセス用のデータを格納する。また、ストレージマシン140および150は、ラックマウント式サーバまたは他のコンピューティングデバイスなど、1つ以上のデータ処理装置であってもよく、通常、ネットワーク102を通して通信を行うホストマシン110によるクラウドベースへのアクセス用データの格納を容易にするように設計される。
ホストマシン110は、ホストマシンのリソースを管理するホストオペレーティングシステム112を実行する。この例において、ホストオペレーティングシステム112は、基礎となるホストマシンハードウェアを仮想化して1台以上の仮想マシン120の同時実行を管理するソフトウェアを実行する。図1に示すように、ホストオペレーティングシステム112は、1台の仮想マシン120を管理する。ホストマシンは、一般に、さらに多くの台数の仮想マシンを管理することができる。しかしながら、その台数は、ホストマシンの物理リソースに基づいて限定され得る。わかりやすくするために、1台の仮想マシン120のみを図1に示す。
仮想マシン120は、シミュレートされたバージョンの基礎となるホストマシンハードウェアを使用する。当該ホストマシンハードウェアは、仮想ハードウェア122と称され得る。仮想ハードウェア122が実行するソフトウェアは、ゲストオペレーティングシステム124およびゲストアプリケーション126など、ゲストソフトウェアと称され得る。いくつかの実装形態において、ゲストソフトウェアは、ゲストソフトウェアが仮想ハードウェアによって実行されているのかどうか、物理ホストマシンによって実行されているのかどうかを判断できない。ホストマシンのマイクロプロセッサ(複数可)は、ゲストソフトウェア命令をコードの書き直し、再コンパイル、または命令エミュレーションを必要としないでホストマシンのマイクロプロセッサ上で直接実行させることによって仮想ハードウェアがソフトウェアアプリケーションを効率的に実行することを可能にするためのプロセッサレベルのメカニズムを含み得る。
ホストマシン120には、基礎となるホストオペレーティングシステム112の仮想メモリから、仮想メモリページのセットが割り当てられ、かつ、仮想マシン上で実行するゲストソフトウェアが使用するための1つ以上の仮想ディスクドライブから、仮想ディスクブロックが割り当てられる。実際の物理ストレージは、ホストマシン110上にある必要はなく、図示する例において、当該ストレージは、ストレージマシン140によって実現される。
いくつかの実装形態において、仮想ディスクロックは、ストレージマシンが管理する物理ディスクドライブ上に割当てられ、ネットワーク102を通してホストマシン110と通信する。仮想マシン120にはネットワークアドレスが割り当てられ得る。当該ネットワークアドレスによって、ネットワークアドレスのそれぞれのプロセスは、ネットワーク102を介して他のプロセスと通信できる。
まず、仮想マシン120用データのすべてがストレージマシン140上に格納されていると想定する。この仮想マシン120用データを、ゲストデータ142と称する。ゲストデータ142は、最初に1台の物理マシン上に格納されている必要はなく、代わりに、最初に複数のストレージマシン間で格納され得る。しかしながら、説明をわかりやすくするために、この例の起点は、1台のストレージマシンである。
ゲストデータ142は、互いに排他的である複数のデータサブセットに従って格納される。図1に示すように、ゲストデータ142は、データサブセット144に格納され、各データサブセットは、例示的に、0〜nまでのインデックスのうちの1つによって索引付けされる。マッピングデータ128は、ストレージマシン140上のデータサブセットのアドレス範囲を仮想マシン120の論理アドレス範囲に論理的にマッピングする。したがって、マッピングデータ128を使用することにより、仮想マシン120は、論理アドレス空間を、特定の物理マシン上に格納された特定のデータサブセットにマッピングできる。最後に、マッピングデータ128は、仮想マシン120内にあると示されているが、マッピングデータ128は、ホストオペレーティングシステム112によって保持されてもよい。
ゲストデータ142の一部またはすべてを1台以上の他のストレージマシンに移行させ得るイベントが発生する場合がある。このようなイベントは、ストレージマシン140がサービスのためにオフラインになる準備をすること(ストレージマシンに格納されたデータすべての移行を必要とする)、負荷分散処理、(ストレージマシンに格納されたデータの少なくとも一部の移行を必要とする)、またはQoS(quality of service)要件を満たさないこと(ストレージマシンに格納されたデータの少なくとも一部の移行を必要とし得る)を含み得る。後述するが、いくつかの状況において、移行が必要であるときをストレージマシンが判定してもよく、他の状況において、移行が必要であるときを仮想マシン(または、ホストマシン)が判定してもよい。全体を上述し、さらに詳細を後述するように、さらに他の状況において、移行が必要であるときを、仮想マシン、ホストマシン、およびストレージマシンの外部のプロセスまたはエンティティが判定することもでき、仮想マシンが移行を制御することもでき、ストレージマシンが移行を制御することもできる。
図1において引き出し線2の矢印で示す、データのライブマイグレーションのための全体的なプロセスを、図2を参照して説明する。物理ストレージマシンが移行を部分的に(または、完全に)制御する1つの例示的なプロセスを、図3を参照して説明し、図1では、引き出し線3Aおよび3Bの矢印と組み合わせて、引き出し線2の矢印で示す。最後に、仮想マシン(または、ホストマシン)が移行を部分的に(または、完全に)制御する例示的なプロセスを、図4を参照して説明し、図1では、引き出し線4Aおよび4Bの矢印と組み合わせて、引き出し線2の矢印で示す。
わかりやすくするために、後述する移行の例では、データを1台の別の物理マシン、すなわち、ストレージマシン150に移行することを詳しく述べる。しかしながら、ゲストデータが複数のストレージマシン上に格納されている場合、ゲストデータは、ストレージマシンのうちの1台から、ゲストデータのうちのいくつかが現在格納されている別のストレージマシン、または、仮想マシン120用のゲストデータを現在格納していない新しいストレージマシンに移行されてもよい。
第1の物理マシンから第2の物理マシンへのライブマイグレーション
図2は、データのライブマイグレーションのための例示的なプロセス200のフロー図である。プロセス200は、図1の物理マシン110、140、および150において実施されてもよい。
プロセス200は、第1の物理マシンに、第1の物理マシンとは別の第2の物理マシン上で動作する仮想マシン用のデータを格納する(202)。たとえば、図1に示すように、データ142は、互いに排他的であるデータサブセットに従って格納される。データ142の「データサブセット」は、ブロック、セクタ、またはページなど、定義済みのデータ構成体であり得、1KB、1MB、10MB、さらには、1GBの量のデータなど、任意に定義されたデータ単位であってもよい。前者の場合、ブロックまたはページは、仮想マシンのために仮想的に実現されるサイズのブロックまたはページであってもよく、または、使用される物理ハードウェアによって決まる物理サイズでのブロックまたはページあってもよい。
プロセス200は、データサブセットごとに、仮想マシンによって、第1の物理マシン上のデータサブセットのアドレス範囲を仮想マシンの論理アドレス範囲に論理的にマッピングする(204)。たとえば、仮想マシン(または、ホストマシン)は、仮想マシンから見てデータが存在しているように見えるアドレスを、データが実際に存在する物理アドレスに論理的にマッピングする。第1マシン上のデータ処理プロセスにおける論理アドレスを第1マシンとは別の第2マシン上の物理アドレスにマッピングできる任意の適したアドレス変換処理を使用することができる。
データサブセットが任意のサイズである後者の実装形態の場合、このサイズを決定する際に管理者によっていくつかの要因が考慮されてもよい。データサブセットのサイズが小さいほど、より多くのマッピングデータ128を必要とする。しかしながら、データサブセットのサイズが減少すると、移行中にデータサブセットが飛行中である時間が減るため、データサブセットが小さいほど、仮想マシン120が移行中のデータサブセットにアクセスしようとする際に生じ得る読出し遅延および書込み遅延が減少する傾向にある。
いくつかの実装形態において、仮想マシン120またはホストマシン110は、移行によるデータアクセスのブロック率を、最大ブロック率閾値と比較してもよい。ブロック率が最大ブロック率閾値を上回る場合、仮想マシンによって(または、データを格納しているストレージマシンによって)メモリ管理プロセスが呼び出され、データサブセットのサイズが減らされる。その後、データアクセスの新しいブロック率が決定される。このプロセスは、ブロック率が最大ブロック率閾値を下回るまで続けられてもよい。
他の実装形態において、仮想マシン120またはホストマシン110は、マッピングデータ128のサイズから導き出されたサイズ評価指標値を、最大サイズ閾値と比較してもよい。サイズ評価指標値が最大サイズ閾値を上回る場合、仮想マシンによって(または、データを格納しているストレージマシンによって)呼び出されたメモリ管理プロセスは、論理マッピングまたは物理マッピングのために必要なメタデータの量が減少するように、データサブセットのサイズを大きくしてもよい。
さらに他の実装形態において、データアクセスのブロック率およびマッピングデータ128のサイズから導き出されたサイズ評価指標値は、両方とも、データサブセットのサイズを管理するために利用されてもよい。2つの性能上の問題点の相対的な重要性を示す重みに基づいて、トレードオフを判断してもよい。
プロセス200は、論理アドレス指定に従って、仮想マシンよるこのデータへの読出しアクセスおよび書込みアクセスを許可する(206)。たとえば、データサブセットが移行中ではない時、仮想マシン120は、ゲストデータ142のすべてのデータサブセットにアクセスすることができる。
プロセス200は、第1の物理マシン上に格納された第1のデータサブセットを、第1の物理マシンおよび第2の物理マシンとは別の第3の物理マシンに移行すると決定する(208)。たとえば、ストレージマシン140上に格納されたデータの一部またはすべてが移行されてもよい。この場合もやはり、さまざまなイベントが、このデータの一部またはこのデータのすべての移行を必要とする可能性がある。この例において、図1において鎖線で示すデータサブセットのインデックス2が示す1つのデータサブセットが、ストレージマシン140からストレージマシン150に移行されると想定する。
プロセス200は、仮想マシンによる第1のデータサブセットへの読出しアクセスおよび書込みアクセスをブロックし、仮想マシンによるその他のデータサブセットへの読出しアクセスおよび書込みアクセスを維持する(210)。いくつかの実装形態において、このブロック処理は、ストレージマシン140によって実行されてもよい。ストレージマシン140は、移行中のデータサブセットに格納されたデータに仮想マシン120がアクセスできないように、仮想マシン120に通知を送信してもよく、その後、仮想マシン120は、矢印3Aおよび3Bがそれぞれ示すようにストレージマシン140またはストレージマシン150のいずれかから移行が完了したとの通知を受信するまで、読出しまたは書込み動作を差し控えてもよい。
これに代えて、ストレージマシン140は、仮想マシン120に移行を知らせなくてもよく、仮想マシン120は、移行が完了した場合にのみ通知を受信する。データサブセットが飛行中の時に仮想マシン120がデータサブセットからのデータを要求した場合、仮想マシン120は、移行を通知され、および/または、第2ストレージマシン150にリダイレクトされてもよい。
上記の例示的な実装形態において、データサブセットは、ストレージマシン140からストレージマシン150に直接移行され、ホストマシン110を経由しない。しかしながら、他の実装形態において、データサブセットは、ホストマシン110を経由して転送されてもよい。たとえば、仮想マシン120がデータサブセットの移行を処理する実装形態において、データサブセットは、仮想マシンに転送された後、仮想マシン120からストレージマシン150に送信される。これは、図1において、矢印2が示す移行の実際のデータ経路を示す矢印4Aおよび4Bによって示される。
仮想マシン120(または、ホストマシン110)は、利用可能な複数の異なるストレージマシンのうちの1つから第2ストレージマシン150を選択してもよい。この後者の実装形態によって、仮想マシンまたはその他のストレージマシンのアドレスを参照しないで、かつ、移行の状態を追跡して自身が「移行状態」であると確認する必要のない、データサブセットを格納する「ステートレス」なストレージマシンが容易になる。その代わりに、データストレージの管理は、仮想マシン120によって処理される。
プロセス200は、第1の物理マシンから第3の物理マシンに第1のデータサブセットを移行して当該データサブセットを第3の物理マシン上に格納する(212)。上述したように、データサブセットは、ストレージマシン140からストレージマシン150に直接送信されてもよく、または、仮想マシン120によって第1ストレージマシン140からフェッチされてから、第2ストレージマシン150に送信されてもよい。
プロセス200は、第3の物理マシン上の第1のデータサブセットのアドレス範囲を仮想マシンの論理アドレス範囲に論理的にマッピングすることによってマッピングを更新する(214)。マッピングを更新するために必要なデータは、使用する実装形態によって異なる。たとえば、仮想マシンまたはホストマシンが移行を制御する実装形態では、仮想マシンまたはホストマシンが、仮想マシンがデータサブセットを送信した先のストレージマシンのアドレスに基づいて、マッピングデータを更新できる。ストレージマシンがデータサブセットの移行を制御する実装形態では、仮想マシンまたはホストマシンが、データサブセットが送信された先のストレージマシンのアドレスを示す仮想マシンが受信した通知に基づいて、マッピングデータを更新できる。
ストレージマシン制御を条件とするライブマイグレーション
図3は、データサブセットが第1の物理マシンから第3の物理マシンに直接移行される、データのライブマイグレーションのための例示的なプロセス300のフロー図である。プロセス300は、ストレージマシン140および150のうちの一方または両方において実施されてもよい。
プロセス300は、第1の物理マシン上に格納された第1のデータサブセットを第3の物理マシンに移行すると決定する(302)。たとえば、ストレージマシン140は、メンテナンスのためにオフラインになり、ストレージマシンに格納されたすべてのデータを移行する必要があると判断する、または、ストレージマシン140が記憶容量の限界に達してしまい、ストレージマシンに格納されるデータの一部を移行する必要があると判断してもよい。
プロセス300は、仮想マシンによる第1のデータサブセットへの読出しアクセスおよび書込みアクセスをブロックし、仮想マシンによるその他のデータサブセットへの読出しアクセスおよび書込みアクセスを維持する(304)。たとえば、ストレージマシン140は、移行中のデータサブセットを知らせる通知であって、データサブセットへの書き込みまたはデータサブセットの読み込みを移行成功が通知されるまで行わないよう仮想マシンに指示する通知を仮想マシンに送信する。これは、図1の矢印3Aで示される。
プロセス300は、第1の物理マシンから第3の物理マシンに第1のデータサブセットを直接移行する(306)。たとえば、ストレージマシン140は、ホストマシン110を中間として介さずに、第2ストレージマシン150にデータサブセットを送信する。
プロセス300は、移行が完了したことを仮想マシンに通知し、第1のデータサブセットへの読出しアクセスおよび書込みアクセスを許可する(308)。たとえば、第1ストレージマシン140は、データサブセットを無事受信したとの受信確認を第2ストレージマシン150から受信してもよく、次に、データサブセットの移行の通知および第2ストレージマシン150のアドレスを仮想マシン120に送信してもよい。次に、仮想マシン120は、そのマッピングデータ128を更新し、ストレージマシン150上の新しい位置において当該データサブセットへのアクセスを再開してもよい。これに代えて、第2ストレージマシン150は、データサブセットを無事受信した後、データサブセットの移行の通知および第2ストレージマシン150のアドレスを仮想マシン120に送信してもよい。次に、仮想マシン120は、そのマッピングデータ128を更新し、ストレージマシン150上の新しい位置において当該データサブセットへのアクセスを再開してもよい。
仮想マシン制御またはホストマシン制御を条件とするライブマイグレーション
図4は、仮想マシンが実装される物理マシンを経由してデータサブセットが第1の物理マシンから第3の物理マシンに移行される、データのライブマイグレーションの例示的なプロセス400のフロー図である。このプロセスは、仮想マシン120(または、ホストマシン110)において実施されてもよい。
プロセス400は、第1の物理マシン上に格納された第1のデータサブセットを第3の物理マシンに移行すると決定する(402)。たとえば、仮想マシン120は、ストレージマシン140のレイテンシが高いと判断してもよい。または、負荷分散作業が必要であると判断してもよい。または、第1ストレージマシン140がメンテナンスのためにオフラインになり、仮想マシン120用に格納されたデータを移行する必要があるとの通知を第1ストレージマシン140から受信してもよい。
プロセス400は、第1の物理マシンに、第1のデータサブセットを第3の物理マシンに移行するよう指示する(404)。たとえば、仮想マシン120は、ストレージマシンに、データサブセットをストレージマシン150に移行するよう指示する。また、仮想マシン120は、移行が完了するまでデータサブセットにアクセスしない。
いくつかの実装形態において、矢印3Aおよび3Bに示すように、仮想マシン120は、第1ストレージマシン140からデータサブセットを受信し、当該データサブセットをストレージマシン150に送信してもよい。他の実装形態において、仮想マシン120は、ストレージマシン140に、データサブセットをストレージマシン150に直接送信するよう指示してもよい。
プロセス400は、第3の物理マシン上の第1のデータサブセットのアドレス範囲を仮想マシンの論理アドレス範囲に論理的にマッピングすることによってマッピングを更新する(406)。たとえば、ストレージマシン150からの受信確認メッセージから移行成功の通知を受信すると、仮想マシン120は、マッピングデータ128を更新し、データサブセットへのアクセスを回復させる。
実装形態のさらなる詳細
上述した例示的なシステムおよびプロセスに対する変形例を実装して、追加の特徴を実現してもよい。たとえば、仮想マシンは、移行成功の通知を待つ代わりに、移行の予想完了時間を計算してもよい。予想時間が経過した後、仮想マシンは、データサブセットへのアクセスを試みてもよい。移行が失敗した場合、仮想マシンは、さらに少しの時間待機してもよく、または、代わりに、メモリエラーイベントを呼び出してもよい。
他の実装形態において、データサブセットは、ブロックレベルまたはページレベルで実現されてもよく、X未満のすべてのアドレスが第1の物理マシン上に存在し、X以上のすべてのアドレスが第3の物理マシン上に存在するように、「ウォーターマーク」が利用される(または、3台以上の物理マシンにデータが格納されている場合、隣接するアドレス範囲を物理マシンごとに使用してもよい)。Xの値は、データが移行されると、データ処理プロセスにおいて更新される。これによって、データ処理プロセスが論理アドレスをデータサブセットにマッピングすることをなくすことができ、代わりに、Xというウォーターマーク値に従って、データを格納する物理マシンの区分けをマッピングすることができる。したがって、マッピングデータ128を実現するためのメタデータ要件が下がる。
他の実装形態において、プレコピー型およびポストコピー型マイグレーション技術をデータサブセット単位で利用してもよい。この実装形態によって、移行中にシステムの複雑性を犠牲にして仮想マシンが待機する時間を減らすまたはなくすことができる。
上記の例を、クラウドベースシステムを背景に、またはデータセンターにおいて説明した。しかしながら、本明細書に記載のシステムおよび方法は、格納データを、そのデータにアクセスするアプリケーションまたは仮想マシンが動作しているコンピュータからリモート管理する任意のシステムにおいて利用することができる。
本明細書に記載の発明の主題および動作の実施形態は、本明細書に開示の構造およびそれらの構造的均等物を含む、デジタル電子回路で実現され得、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つ以上の組み合わせで実現され得る。本明細書に記載の発明の主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行するためにコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして、または、データ処理装置の動作を制御するためのコンピュータプログラム命令の1つ以上のモジュールとして実現することができる。
コンピュータ記憶媒体は、コンピュータ読み取り可能な記憶装置、コンピュータ読み取り可能な記憶基板、ランダムもしくはシリアルアクセスメモリアレイまたはメモリ素子、またはそれらのうちの1つ以上の組み合わせであり得る、またはそれらに含まれ得る。また、コンピュータ記憶媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または宛先であり得る。コンピュータ記憶媒体は、1つ以上の別々の物理コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他の記憶装置)であり得る、またはそれらに含まれ得る。
本明細書に記載の動作は、1つ以上のコンピュータ読み取り可能な記憶装置上に格納されたデータまたは他の送信元から受信したデータに対してデータ処理装置が行う動作として実現することができる。
用語「データ処理装置」は、一例として、プログラマブルプロセッサ、コンピュータ、SoC(System On a Chip)、または複数のそれらもしくはそれらの組み合わせを含む、上述のデータを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(Field Programmable Gate Array)またはASIC(特定用途向け集積回路)を含み得る。また、装置は、ハードウェアに加えて、当該コンピュータプログラムの実行環境を作るコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはそれらのうちの1つ以上の組み合わせを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャ、およびグリッド・コンピューティングインフラストラクチャなど、さまざまな異なるコンピューティングモデル・インフラストラクチャを実現できる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ言語またはインタプリタ言語、宣言型言語または手続き型言語など、任意の形式のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに適したその他の構成単位としてなど、任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステムにおけるファイルに相当し得るが、そうである必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(たとえば、マークアップ言語文書に格納された1つ以上のスクリプト)、当該プログラムに専用の1つのファイル、または複数の連携ファイル(たとえば、1つ以上のモジュール、サブプログラム、またはコードの部分を格納するファイル)に格納され得る。コンピュータプログラムは、1つコンピュータ上で、または、1つのサイトに位置するもしくは複数のサイト間で分散されて通信ネットワークによって互いに接続された複数のコンピュータ上で実行されるようデブロイされ得る。
本明細書に記載のプロセスおよび論理フローは、入力データを操作して出力を生成することによってアクションを行うために1つ以上のコンピュータプログラムを1つ以上のプログラム可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(Field Programmable Gate Array)またはASIC(特定用途向け集積回路)によって実行され得、装置は、このような専用の論理回路として実現され得る。
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサおよび特定用途向けマイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの1つ以上のプロセッサを含む。一般に、プロセッサは、ROM(Read-Only Memory)、RAM(Random Access Memory)、またはその両方から命令およびデータを受け取る。コンピュータの必須要素は、命令に従ってアクションを行うためのプロセッサと、命令およびデータを格納するための1つ以上のメモリ素子である。また、一般に、コンピュータは、データを格納するための1つ以上の大容量記憶装置、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを備える、または、このような1つ以上の大容量記憶装置と操作可能に接続されて、データの受信、送信、もしくはその両方を行う。しかしながら、コンピュータは、このようなデバイスを有する必要はない。また、コンピュータは、別のデバイス、たとえば、一例を挙げると、携帯電話、PDA(Personal Digital Assistant)、携帯オーディオプレーヤもしくはビデオプレーヤ、ゲーム機、GPS(Global Positioning System)受信機、またはポータブル記憶装置(たとえば、USB(Universal Serial Bus)フラッシュドライブ)に組み込まれ得る。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、全ての形態の不揮発性メモリ、媒体、およびメモリ素子を含み、一例として、EPROM、EEPROM、およびフラッシュメモリ素子などの半導体メモリ素子、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMおよびDVD−ROMディスクなどが挙げられる。プロセッサおよびメモリは、専用の論理回路によって補われ得、または、専用の論理回路に内蔵され得る。
ユーザとのやり取りを行うために、本明細書に記載の本発明の主題の実施形態は、ブラウン管(CRT)モニタまたは液晶ディスプレイ(LCD)モニタなど、ユーザに情報を表示するための表示装置と、ユーザがコンピュータに入力を行えるキーボードおよびマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上に実現され得る。その他の種類のデバイスを使用してユーザとやり取りを行うこともできる。たとえば、ユーザに返されるフィードバックは、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形式の感覚フィードバックで有り得、ユーザからの入力は、音響入力、音声入力、触覚入力を含む任意の形式で受信され得る。これに加えて、コンピュータは、ユーザが使用する機器との間で文書を送受信することによって、たとえば、ユーザのユーザデバイス上のウェブブラウザから受けた要求に応答してこのウェブブラウザにウェブページを送信することによって、ユーザとやり取りすることができる。
本明細書に記載の本発明の主題の実施形態は、データサーバなど、バックエンド・コンポーネントを備えるコンピュータシステム、アプリケーションサーバなど、ミドルウェア・コンポーネントを備えるコンピュータシステム、本明細書に記載の本発明の主題の実装形態とユーザがやり取りできるグラフィカルユーザインターフェースまたはウェブブラウザを有するユーザ・コンピュータなど、フロントエンド・コンポーネントを備えるコンピュータシステム、または、1つ以上のこのようなバックエンド・コンポーネント、ミドルウェア・コンポーネント、もしくはフロントエンド・コンポーネントの任意の組み合わせを備えるコンピュータシステムで実現され得る。システムの構成要素は、通信ネットワークなど、デジタルデータ通信の任意の形態または媒体によって互いに接続され得る。通信ネットワークとして、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホック・ピアツーピアネットワーク)などが挙げられる。
コンピュータシステムは、ユーザとサーバとを含めることができる。ユーザおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを通じてやり取りを行う。ユーザとサーバとの関係は、それぞれのコンピュータ上で動作し互いにユーザとサーバとの関係を有するコンピュータプログラムによって成り立つ。いくつかの実施形態において、サーバは、(たとえば、ユーザデバイスとやり取りしているユーザにデータを表示する、またはこのユーザからのユーザ入力を受信する目的のために、)ユーザデバイスにデータ(たとえば、HTMLページ)を送信する。ユーザデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)は、サーバにおいて、ユーザデバイスから受信され得る。
本明細書は、実装形態の多くの具体的な詳細を含むが、これらは、いずれの特徴の範囲または請求の範囲を限定するものとして解釈されるべきではなく、むしろ、特定の実施形態に特有の特徴の説明であると解釈されるべきである。また、別々の実施形態に関連して本明細書に記載したいくつかの特徴は、1つの実施形態に組み合わせて実現され得る。その逆に、1つの実施形態に関連して記載されたさまざまな特徴は、複数の実施形態に別々に、または任意の適した部分的な組み合わせで実現され得る。また、特徴は、いくつかの組み合わせで動作するものとして上述され、最初にそのように主張されているかもしれないが、主張された組み合わせからの1つ以上の特徴は、場合によっては、その組み合わせから削除することができ、主張された組み合わせは、部分的な組み合わせまたは部分的な組み合わせの変形例を対象としてもよい。
同様に、動作を特定の順番で図示したが、所望の結果を実現するために、図示した特定の順番または順序でこのような動作が行われる必要がある、または、図示した動作のすべてが行われる必要があると理解されるべきではない。特定の状況では、多重タスク処理および並列処理が有利である場合がある。また、上述の実施形態におけるさまざまなシステム構成要素を分離することは、すべての実施形態においてこのような分離が必要であると理解されるべきではなく、記載のプログラムコンポーネントおよびシステムは、一般に、1つのソフトウェアプロダクトに一体化され得るまたは複数のソフトウェアプロダクトにパッケージ化され得ると理解されるべきである。
例示的な実施形態に従って、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、第1ストレージシステムから第2ストレージシステムにデータを移行するための方法、システム、および装置を開示した。そのデータは、第1ストレージシステムおよび第2ストレージシステムとは別のコンピュータシステム上で動作するプロセス(たとえば、仮想マシン、アプリケーション、または他のプロセス)用のデータである。そのデータは、互いに排他的であるデータサブセットに従って格納される。各データセットが移行されると、プロセスによる当該データセットへのアクセスはできなくなるが、残りのデータセットへのアクセスは影響を受けない。プロセスによるデータセットへのアクセスは、データマイグレーションが完了すると、回復する。
このように、本発明の主題についての具体的な実施形態を説明した。その他の実施形態は、添付の特許請求の範囲に含まれる。場合によっては、請求項に記載されたアクションは、異なる順序で実行され得、それでもなお所望の結果を実現し得る。これに加えて、添付の図面に示したプロセスは、所望の結果を実現するために必ずしも図示した特定の順番または順序である必要はない。いくつかの実装形態において、多重タスク処理および並列処理が有利である場合がある。

Claims (22)

  1. 複数の物理マシンを備えるデータ処理システムによって実行される方法であって、
    第1の物理マシンに、前記第1の物理マシンとは別の第2の物理マシン上で動作するデータ処理プロセス用のデータを格納するステップを含み、前記データを格納するステップは、互いに排他的である複数のデータサブセットに従って前記データを格納するステップを含み、前記方法は、さらに、
    データサブセットごとに、前記データ処理プロセスが、マッピングにおいて、前記第1の物理マシン上の前記データサブセットのアドレス範囲を前記データ処理プロセスの論理アドレス範囲に論理的にマッピングするステップと、
    前記論理アドレス指定に従って、前記データ処理プロセスによる前記データへの読出しアクセスおよび書込みアクセスを許可するステップと、
    前記第1の物理マシン上に格納された第1のデータサブセットを、前記第1の物理マシンおよび前記第2の物理マシンとは別の第3の物理マシンに移行すると決定するステップと、前記決定するステップに応答して、
    前記データ処理プロセスによる前記第1のデータサブセットへの読出しアクセスおよび書込みアクセスを、前記データ処理プロセスによるその他のデータサブセットへの読出しアクセスおよび書込みアクセスを維持したまま、ブロックするステップと、
    前記第1のデータサブセットを前記第1の物理マシンから前記第3の物理マシンに移行して前記データサブセットを前記第3の物理マシン上に格納するステップと、
    前記データ処理プロセスが、前記第3の物理マシン上の前記第1のデータサブセットのアドレス範囲を前記データ処理プロセスの前記論理アドレス範囲に論理的にマッピングすることによって、前記マッピングを更新するステップとを含む、方法。
  2. 前記データ処理プロセスは、仮想マシンである、請求項1に記載の方法。
  3. 前記第1の物理マシン上に格納された前記第1のデータサブセットを前記第3の物理マシンに移行すると決定するステップは、前記第1の物理マシンによって実行され、
    前記仮想マシンによる前記第1のデータサブセットへの読出しアクセスおよび書込みアクセスを、前記仮想マシンによる前記その他のデータサブセットへの読出しアクセスおよび書込みアクセスを維持したままブロックするステップは、前記第1の物理マシンが、前記仮想マシンによる前記第1のデータサブセットへの読出しアクセスおよび書込みアクセスをブロックするステップを含む、請求項2に記載の方法。
  4. 前記第1の物理マシンが、前記第1のデータサブセットの前記第3の物理マシンへの移行を前記仮想マシンに通知するステップをさらに含み、
    前記第3の物理マシン上の前記第1のデータサブセットのアドレス範囲を前記仮想マシンの論理アドレス範囲に論理的にマッピングすることによって前記マッピングを更新するステップは、前記第1の物理マシンによる前記通知を前記仮想マシンが受信することに応答して実行される、請求項3に記載の方法。
  5. 前記通知は、前記仮想マシンに、前記第1のデータサブセットにアクセスしないよう指示する、請求項4に記載の方法。
  6. 前記第1のデータサブセットを前記第1の物理マシンから前記第3の物理マシンに移行して前記データサブセットを前記第3の物理マシン上に格納するステップは、前記第1のデータサブセットを前記第1の物理マシンから前記第3の物理マシンに直接送信するステップを含む、請求項4に記載の方法。
  7. 前記第3の物理マシンが、前記仮想マシンに、前記第1のデータサブセットの前記第3の物理マシンへの移行を通知するステップをさらに含み、
    前記第3の物理マシン上の前記第1のデータサブセットのアドレス範囲を前記仮想マシンの論理アドレス範囲に論理的にマッピングすることによって前記マッピングを更新するステップは、前記仮想マシンが前記通知を受信することに応答して実行される、請求項3に記載の方法。
  8. 前記第1の物理マシン上に格納された前記第1のデータサブセットを前記第3の物理マシンに移行すると決定するステップは、前記仮想マシンによって実行され、
    前記第1のデータサブセットを前記第1の物理マシンから前記第3の物理マシンに移行して前記データサブセットを前記第3の物理マシン上に格納するステップは、
    前記仮想マシンが、前記第1の物理マシンに、前記第1のデータサブセットを前記仮想マシンに送信するよう指示するステップと、
    前記仮想マシンが、前記第1の物理マシンから受信した前記第1のデータサブセットを前記第3の物理マシンに送信するステップとを含む、請求項2に記載の方法。
  9. 前記第1の物理マシンおよび前記第3の物理マシンは、前記仮想マシンのアドレスを参照しないで、前記複数のデータサブセットを格納する、請求項8に記載の方法。
  10. 前記仮想マシン用の前記第1のデータサブセットへの読出しアクセスおよび書込みアクセスを、前記第1の物理マシンから前記第3の物理マシンへの前記第1のデータサブセットの移行の後に回復させるステップをさらに含む、請求項2に記載の方法。
  11. 前記第1の物理マシン上に格納された前記第1のデータサブセットを前記第3の物理マシンに移行すると決定するステップは、前記第1の物理マシン、前記仮想マシン、および前記第3の物理マシンの外部のプロセスによって実行され、
    前記第1のデータサブセットを前記第1の物理マシンから前記第3の物理マシンに移行して前記データサブセットを前記第3の物理マシン上に格納するステップは、
    前記仮想マシンが、前記第1の物理マシンに、前記第1のデータサブセットを前記仮想マシンに送信するよう指示するステップと、
    前記仮想マシンが、前記第1の物理マシンから受信した前記第1のデータサブセットを前記第3の物理マシンに送信するステップとを含む、請求項2に記載の方法。
  12. 前記複数のデータサブセットは、物理アドレス範囲に論理的にマッピングされたデータチャンクである、請求項1に記載の方法。
  13. 前記複数のデータサブセットは、データブロックである、請求項1に記載の方法。
  14. 互いに排他的である複数のデータサブセットに従ってデータを格納する第1の物理マシンと、
    前記第1の物理マシンとは別の第2の物理マシンとを備え、前記第2の物理マシン上の仮想マシンは、前記第1の物理マシン上に格納された前記データへの読出しアクセスおよび書込みアクセスを有し、データサブセットごとに、マッピングにおいて、前記第1の物理マシン上の前記データサブセットのアドレス範囲を前記仮想マシンの論理アドレス範囲に論理的にマッピングし、
    前記第1の物理マシン上に格納された第1のデータサブセットを、前記第1の物理マシンおよび前記第2の物理マシンとは別の第3の物理マシンに移行するとの決定に応答して、
    前記第1のデータサブセットは、前記第1の物理マシンから前記第3の物理マシンに移行され、
    前記移行中、前記仮想マシン用の前記第1のデータサブセットへの読出しアクセスおよび書込みアクセスは、前記仮想マシンによるその他のデータサブセットへの読出しアクセスおよび書込みアクセスを維持したまま、ブロックされ、
    前記第3の物理マシン上の前記第1のデータサブセットのアドレス範囲を前記仮想マシンの論理アドレス範囲に論理的にマッピングするように、前記マッピングが前記仮想マシンによって更新され、
    前記仮想マシン用の前記第1のデータサブセットへの読出しアクセスおよび書込みアクセスは、前記第1の物理マシンから前記第3の物理マシンへの前記第1のデータサブセットの移行の後に回復する、システム。
  15. 前記第1の物理マシン上に格納された前記第1のデータサブセットを前記第3の物理マシンに移行するとの決定は、前記第1の物理マシンによって行われ、
    前記仮想マシンによる前記第1のデータサブセットへの読出しアクセスおよび書込みアクセスをブロックすることは、前記第1の物理マシンによって行われる、請求項13に記載のシステム。
  16. 前記第1の物理マシンは、前記仮想マシンに、前記第1のデータサブセットの前記第3の物理マシンへの移行を通知し、
    前記第3の物理マシン上の前記第1のデータサブセットのアドレス範囲を前記仮想マシンの論理アドレス範囲に論理的にマッピングするように前記マッピングを更新することは、前記仮想マシンが前記通知を受信することに応答して行われる、請求項14に記載のシステム。
  17. 前記通知は、前記仮想マシンに、前記第1のデータサブセットにアクセスしないよう指示する、請求項15に記載のシステム。
  18. 前記第1の物理マシンから前記第3の物理マシンに前記第1のデータサブセットを移行することは、前記第1のデータサブセットを前記第1の物理マシンから前記第3の物理マシンに直接送信することを含む、請求項15に記載のシステム。
  19. さらに、
    前記第3の物理マシンは、前記仮想マシンに、前記第1のデータサブセットの前記第3の物理マシンへの移行を通知し、
    前記第3の物理マシン上の前記第1のデータサブセットのアドレス範囲を前記仮想マシンの論理アドレス範囲に論理的にマッピングするように前記マッピングを更新することは、前記仮想マシンが前記通知を受信することに応答して行われる、請求項14に記載のシステム。
  20. 前記第1の物理マシン上に格納された前記第1のデータサブセットを前記第3の物理マシンに移行するとの決定は、前記仮想マシンによって行われ、
    前記第1の物理マシンから前記第3の物理マシンに前記第1のデータサブセットを移行することは、
    前記仮想マシンが、前記第1の物理マシンに、前記第1のデータサブセットを前記仮想マシンに送信するよう指示することと、
    前記仮想マシンが、前記第1の物理マシンから受信した前記第1のデータサブセットを前記第3の物理マシンに送信することとを含む、請求項13に記載のシステム。
  21. 前記第1の物理マシンおよび前記第3の物理マシンは、前記仮想マシンのアドレスを参照しないで、前記複数のデータサブセットを格納する、請求項19に記載のシステム。
  22. コンピュータ読み取り可能な命令を含むコンピュータプログラムであって、前記コンピュータ読み取り可能な命令は、データ処理システムによって実行されると、前記データ処理システムに、請求項1に記載の方法を実行させる、コンピュータプログラム。
JP2018548837A 2016-03-16 2016-12-02 リモートアクセスされるデータの効率的なライブマイグレーション Active JP6728381B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/071,852 US9936019B2 (en) 2016-03-16 2016-03-16 Efficient live-migration of remotely accessed data
US15/071,852 2016-03-16
PCT/US2016/064738 WO2017160359A1 (en) 2016-03-16 2016-12-02 Efficient live-migration of remotely accessed data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020114071A Division JP7174739B2 (ja) 2016-03-16 2020-07-01 リモートアクセスされるデータの効率的なライブマイグレーション

Publications (3)

Publication Number Publication Date
JP2019512804A true JP2019512804A (ja) 2019-05-16
JP2019512804A5 JP2019512804A5 (ja) 2019-12-19
JP6728381B2 JP6728381B2 (ja) 2020-07-22

Family

ID=57610407

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018548837A Active JP6728381B2 (ja) 2016-03-16 2016-12-02 リモートアクセスされるデータの効率的なライブマイグレーション
JP2020114071A Active JP7174739B2 (ja) 2016-03-16 2020-07-01 リモートアクセスされるデータの効率的なライブマイグレーション

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020114071A Active JP7174739B2 (ja) 2016-03-16 2020-07-01 リモートアクセスされるデータの効率的なライブマイグレーション

Country Status (8)

Country Link
US (5) US9936019B2 (ja)
EP (1) EP3414661B1 (ja)
JP (2) JP6728381B2 (ja)
KR (2) KR101993915B1 (ja)
CN (2) CN113821348B (ja)
AU (3) AU2016398043B2 (ja)
SG (2) SG10202100763RA (ja)
WO (1) WO2017160359A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036392B2 (en) * 2013-02-26 2021-06-15 Pure Storage, Inc. Determining when to use convergent encryption
US9936019B2 (en) 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
US10592484B1 (en) * 2017-01-06 2020-03-17 Sprint Communications Company L.P. Data migration between different lightweight directory access protocol (LDAP) based wireless communication subscriber data stores
JP6901683B2 (ja) * 2017-09-22 2021-07-14 富士通株式会社 調整プログラム、調整装置および調整方法
CN108388599B (zh) * 2018-02-01 2022-08-02 平安科技(深圳)有限公司 电子装置、数据迁移及调用方法及存储介质
US11074099B2 (en) * 2018-02-06 2021-07-27 Nutanix, Inc. System and method for storage during virtual machine migration
US20190265902A1 (en) * 2018-02-28 2019-08-29 International Business Machines Corporation Live migration of applications using capi flash
CN110347483B (zh) 2018-04-08 2021-05-11 中兴通讯股份有限公司 物理机到虚拟机迁移方法、装置及存储介质
CN108959573B (zh) * 2018-07-05 2022-07-15 京东方科技集团股份有限公司 基于桌面云的数据迁移方法、装置、电子设备以及存储介质
CN108958889A (zh) * 2018-07-12 2018-12-07 郑州云海信息技术有限公司 云数据系统中虚拟机的管理方法和装置
US11256437B2 (en) 2018-11-19 2022-02-22 Micron Technology, Inc. Data migration for memory operation
US11182090B2 (en) 2018-11-19 2021-11-23 Micron Technology, Inc. Systems, devices, and methods for data migration
US11163473B2 (en) * 2018-11-19 2021-11-02 Micron Technology, Inc. Systems, devices, techniques, and methods for data migration
US10782911B2 (en) 2018-11-19 2020-09-22 Micron Technology, Inc. Data migration dynamic random access memory
JP7198102B2 (ja) * 2019-02-01 2022-12-28 日本電信電話株式会社 処理装置及び移動方法
US10924587B1 (en) 2019-05-01 2021-02-16 Amazon Technologies, Inc. Live migration for highly available data stores
US11086549B2 (en) 2019-05-21 2021-08-10 International Business Machines Corporation Just-in-time data migration in a live system
US11119994B1 (en) 2019-06-06 2021-09-14 Amazon Technologies, Inc. Record-by-record live migration using segmentation
US10979303B1 (en) 2019-06-06 2021-04-13 Amazon Technologies, Inc. Segmentation of maintenance on distributed systems
US10924429B1 (en) 2019-11-29 2021-02-16 Amazon Technologies, Inc. Using edge-optimized compute instances to execute user workloads at provider substrate extensions
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
US11372827B2 (en) 2020-05-06 2022-06-28 Amazon Technologies, Inc. Record-by-record live migration using a lock store
CN112463132B (zh) * 2020-11-13 2023-06-06 四川新网银行股份有限公司 一种数据库切换工具及切换方法
CN112402979B (zh) * 2020-12-02 2023-11-17 网易(杭州)网络有限公司 游戏数据处理方法、装置和电子设备
US11656982B2 (en) * 2021-01-15 2023-05-23 Nutanix, Inc. Just-in-time virtual per-VM swap space

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3138575B2 (ja) * 1993-09-02 2001-02-26 日本電気株式会社 フアイル複写移行方式
US6405284B1 (en) * 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
CN100590608C (zh) * 2005-05-23 2010-02-17 松下电器产业株式会社 存储器控制器及其控制方法、非易失性存储装置及系统
US8806480B2 (en) * 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
US8910152B1 (en) * 2007-11-30 2014-12-09 Hewlett-Packard Development Company, L.P. Migrating a virtual machine by using a hot-plug event
US8005788B2 (en) * 2008-01-28 2011-08-23 International Business Machines Corporation System and method for legacy system component incremental migration
US9715401B2 (en) 2008-09-15 2017-07-25 International Business Machines Corporation Securing live migration of a virtual machine from a secure virtualized computing environment, over an unsecured network, to a different virtualized computing environment
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
WO2010126048A1 (ja) 2009-04-28 2010-11-04 日本電気株式会社 計算機システムにおける仮想装置の高速移動システム及び管理装置並びにその方法及びそのプログラム
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
JP5621229B2 (ja) * 2009-08-27 2014-11-12 日本電気株式会社 ストレージシステム、管理方法及びプログラム
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
US8327060B2 (en) * 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
WO2011068699A1 (en) * 2009-12-04 2011-06-09 Marvell World Trade Ltd. Virtualization of storage devices
US8924675B1 (en) * 2010-09-24 2014-12-30 Emc Corporation Selective migration of physical data
JP5595530B2 (ja) * 2010-10-14 2014-09-24 株式会社日立製作所 データ移行システム及びデータ移行方法
CN102073462B (zh) 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
US20120159634A1 (en) 2010-12-15 2012-06-21 International Business Machines Corporation Virtual machine migration
US9612855B2 (en) 2011-01-10 2017-04-04 International Business Machines Corporation Virtual machine migration based on the consent by the second virtual machine running of the target host
US9003149B2 (en) * 2011-05-26 2015-04-07 International Business Machines Corporation Transparent file system migration to a new physical location
US8856191B2 (en) * 2011-08-01 2014-10-07 Infinidat Ltd. Method of migrating stored data and system thereof
US9461881B2 (en) * 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US9116633B2 (en) 2011-09-30 2015-08-25 Commvault Systems, Inc. Information management of virtual machines having mapped storage devices
US20130138764A1 (en) 2011-11-30 2013-05-30 Soumendu S. Satapathy Method and system for virtual machine data migration
US9397954B2 (en) * 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network
US9164795B1 (en) * 2012-03-30 2015-10-20 Amazon Technologies, Inc. Secure tunnel infrastructure between hosts in a hybrid network environment
JP6028415B2 (ja) * 2012-06-28 2016-11-16 日本電気株式会社 仮想サーバ環境のデータ移行制御装置、方法、システム
EP2835953B1 (en) * 2012-08-29 2017-10-11 Huawei Technologies Co., Ltd. System for live migration of virtual machine
US9372726B2 (en) 2013-01-09 2016-06-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US9619258B2 (en) 2013-01-21 2017-04-11 International Business Machines Corporation Live virtual machine migration quality of service
US9405642B2 (en) * 2013-01-29 2016-08-02 Red Hat Israel, Ltd. Providing virtual machine migration reliability using an intermediary storage device
CN103198028B (zh) * 2013-03-18 2015-12-23 华为技术有限公司 一种内存数据迁移方法、装置及系统
WO2014170984A1 (ja) * 2013-04-18 2014-10-23 株式会社日立製作所 ストレージシステム及び記憶制御方法
US9229878B2 (en) * 2013-06-10 2016-01-05 Red Hat Israel, Ltd. Memory page offloading in multi-node computer systems
CN104243427B (zh) * 2013-06-19 2018-04-06 日电(中国)有限公司 虚拟机在线迁移方法、数据包传输方法和设备
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
US9043576B2 (en) * 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
CN103455363B (zh) * 2013-08-30 2017-04-19 华为技术有限公司 一种虚拟机的指令处理方法、装置及物理主机
CN104598303B (zh) * 2013-10-31 2018-04-10 中国电信股份有限公司 基于kvm的虚拟机间在线迁移方法与装置
WO2015100622A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 虚拟机热迁移的方法和服务器
US9851918B2 (en) * 2014-02-21 2017-12-26 Red Hat Israel, Ltd. Copy-on-write by origin host in virtual machine live migration
CN104917784B (zh) * 2014-03-10 2018-06-05 华为技术有限公司 一种数据迁移方法、装置及计算机系统
US10747563B2 (en) * 2014-03-17 2020-08-18 Vmware, Inc. Optimizing memory sharing in a virtualized computer system with address space layout randomization (ASLR) enabled in guest operating systems wherein said ASLR is enable during initialization of a virtual machine, in a group, when no other virtual machines are active in said group
US9483298B2 (en) * 2014-04-23 2016-11-01 Vmware, Inc. Converting virtual machine I/O requests
US9336039B2 (en) * 2014-06-26 2016-05-10 Vmware, Inc. Determining status of migrating virtual machines
WO2016018383A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company Live migration of data
US10372335B2 (en) * 2014-09-16 2019-08-06 Kove Ip, Llc External memory for virtualization
US9626108B2 (en) * 2014-09-16 2017-04-18 Kove Ip, Llc Dynamically provisionable and allocatable external memory
CN104750542B (zh) * 2015-04-22 2018-01-16 成都睿峰科技有限公司 一种基于云平台的数据迁移方法
US9875057B2 (en) * 2015-06-16 2018-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Method of live migration
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US10083062B2 (en) * 2015-07-31 2018-09-25 Cisco Technology, Inc. Data suppression for faster migration
US10360277B2 (en) * 2015-08-31 2019-07-23 Microsoft Technology Licensing, Llc Controlling data migration
US9880870B1 (en) * 2015-09-24 2018-01-30 Amazon Technologies, Inc. Live migration of virtual machines using packet duplication
US9936019B2 (en) * 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data

Also Published As

Publication number Publication date
JP6728381B2 (ja) 2020-07-22
AU2016398043A1 (en) 2018-10-04
US20200145488A1 (en) 2020-05-07
US20170272515A1 (en) 2017-09-21
CN113821348A (zh) 2021-12-21
US9936019B2 (en) 2018-04-03
AU2019257477A1 (en) 2019-11-21
EP3414661B1 (en) 2023-07-26
KR101993915B1 (ko) 2019-06-27
US10645160B2 (en) 2020-05-05
WO2017160359A1 (en) 2017-09-21
US11824926B2 (en) 2023-11-21
US20180183869A1 (en) 2018-06-28
AU2020260536B2 (en) 2021-02-11
SG10202100763RA (en) 2021-02-25
CN108780404A (zh) 2018-11-09
KR20180117641A (ko) 2018-10-29
AU2016398043B2 (en) 2019-09-19
EP3414661A1 (en) 2018-12-19
CN113821348B (zh) 2024-04-19
SG11201807848PA (en) 2018-10-30
US11005934B2 (en) 2021-05-11
US20190158588A1 (en) 2019-05-23
KR102055325B1 (ko) 2019-12-12
JP2020173840A (ja) 2020-10-22
AU2020260536A1 (en) 2020-11-26
US10187466B2 (en) 2019-01-22
JP7174739B2 (ja) 2022-11-17
KR20190073619A (ko) 2019-06-26
US20210258378A1 (en) 2021-08-19

Similar Documents

Publication Publication Date Title
JP7174739B2 (ja) リモートアクセスされるデータの効率的なライブマイグレーション
ES2923223T3 (es) Migración en vivo de máquinas virtuales en sistemas de computación distribuidos
US10389852B2 (en) Method and system for providing a roaming remote desktop
US9720952B2 (en) Virtual block devices
US20130263131A1 (en) Global computing interface
US20120173653A1 (en) Virtual machine migration in fabric attached memory
US11204702B2 (en) Storage domain growth management
US11451430B2 (en) System and method to schedule management operations and shared memory space for multi-tenant cache service in cloud
KR101740962B1 (ko) 가상환경의 스토리지 성능 향상을 위한 클라우드 스토리지 시스템 및 그 관리 방법
US10530870B2 (en) Direct volume migration in a storage area network
US20210334026A1 (en) Slice Memory Control

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191105

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191105

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200507

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: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200701

R150 Certificate of patent or registration of utility model

Ref document number: 6728381

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250