JP6847105B2 - 分散キャッシュライブマイグレーション - Google Patents

分散キャッシュライブマイグレーション Download PDF

Info

Publication number
JP6847105B2
JP6847105B2 JP2018520530A JP2018520530A JP6847105B2 JP 6847105 B2 JP6847105 B2 JP 6847105B2 JP 2018520530 A JP2018520530 A JP 2018520530A JP 2018520530 A JP2018520530 A JP 2018520530A JP 6847105 B2 JP6847105 B2 JP 6847105B2
Authority
JP
Japan
Prior art keywords
host
cache
data
notification
cached data
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.)
Active
Application number
JP2018520530A
Other languages
English (en)
Other versions
JP2018531471A6 (ja
JP2018531471A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018531471A publication Critical patent/JP2018531471A/ja
Publication of JP2018531471A6 publication Critical patent/JP2018531471A6/ja
Application granted granted Critical
Publication of JP6847105B2 publication Critical patent/JP6847105B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Description

本発明は分散キャッシュの分野に関し、詳細にはキャッシュをマイグレートする方法、装置、及びシステムに関する。
仮想化は、コンピューティングデバイスにより提供されるリソースの抽象化の概念を参照する。オペレーティングシステムを含むアプリケーションは、アプリケーションにとって単一の物理ホストとして見える仮想マシン(virtual machine、VM)内で動作することがある。複数のVMが同じ物理ホスト上に存在することがある。仮想化は、ゆえに、各VMについて、それがVMに関連づけられたリソースに対して排他的アクセスを有するという錯覚を維持する必要がある。こうしたリソースは仮想のものとして参照される。VMは、VMと同じホスト上の仮想マシンマネージャ(virtual machine manager、VMM)により管理されることがある。
仮想化された環境内に提示されるリソースは、仮想CPU、仮想メモリ、仮想I/Oデバイス、及びその他を含み得る。仮想化の一態様はストレージ仮想化であり、これにおいて、リソースは仮想ストレージに対応する。具体的に、仮想ストレージは、VMに対して1つ以上の仮想ディスクとして提示されることがある。VMの観点からは、データは仮想ディスクに書き込まれ、仮想ディスクから読み出されことができ、一方で、仮想ディスクは実際には、VMを実行するコンピューティングデバイス上にローカルに存在しないロケーションを含む様々なロケーションに分散されたストレージ空間の集合に対応することがある。
仮想ストレージは、データを読み出し又は書き込むとき、特に仮想ストレージの一部がリモートのロケーションに存在する場合に、大幅なレイテンシを被る。こうしたレイテンシを低減するために、キャッシングが提供されることがある。キャッシュは、フラッシュメモリなどのメモリを含むことがあり、該メモリは、大規模ストレージに使用される従来のメモリよりもより高速であり、ローカル(仮想)ストレージに関連づけられることがあり、リモートのロケーションにおけるデータを含むストレージの様々な部分からのデータを含むことがある。いくつかの場合、キャッシュは、ローカル又はリモートのロケーションにおける他のキャッシュからのデータを含むことがある。キャッシュは、仮想ディスクと同様、1つ以上のロケーションにおいてストレージ空間の制限を克服するなどのために、複数のロケーションにわたり分散されることがある。これら属性の少なくとも1つを有するキャッシュは、さらに分散キャッシュとして参照される。
VMは、データが仮想ディスクに対して読み出され又は書き込まれることを要求することがある。こうした要求に応答して、VMに関連づけられたキャッシュがデータについて解析され得る。存在する場合、データは、キャッシュの背後のストレージに対して直接でなく、キャッシュから読み出され、あるいはキャッシュに書き込まれ得る。複数のVMに関連づけられたデータが、単一のキャッシュ内に維持され得る。
VMは、元の物理ホストから宛先物理ホストになど、あるロケーションから別のロケーションにマイグレートされる必要がある場合がある。マイグレーションの間、VMの操作性は制限されることがある。一例として、VMをマイグレートすることは、元のホストでVMにより占有されたローカルメモリを宛先ホストに転送することを要することがある。マイグレーションは、VMを宛先ホストにインストールするために、VMを異なるVMMに関連づけることをさらに含むことがある。VM内部のアプリケーションは理想的には、変更により影響されるべきでない。詳細には、ストレージ及び他のリソースに対するアクセスは、VMの観点からは不変のままであるべきである。
VMのマイグレーションは、VMに関連づけられたキャッシュデータをマイグレートすることをさらに含む。キャッシュデータは複数のロケーションにわたり分散されることがあるが、マイグレーションの後、VMに関連づけられたデータの大部分をVMにとってもはやローカルでないキャッシュ内に維持することは望ましくない。
キャッシュをマイグレートするための既知の一アプローチは、マイグレーションの過程においてVMに関連づけられたすべてのデータをクリアすることである。この場合、クリアの後にVMにより要求されたデータは、キャッシュからでなくストレージから取り出される必要があることになる。こうした取り出しが宛先ホストでキャッシュをフィルすることに同時的に使用されることがあり、これはさらにキャッシュウォーミングとして参照されるが、この処理は一般に遅い。新しいキャッシュがウォームになり、完全に使用可能になるまで、いくらかの時間がかかることになる。そのときまで、ストレージからすべてのデータを取り出すことに起因してデータ操作のレイテンシが高くなる。
本発明の一目的は、VMキャッシュをあるホストから別のホストにシームレスにマイグレートすることである。シームレスマイグレーションは、可能な範囲内でVMの操作がマイグレーション処理全体を通して維持されることを意味する。
本発明の第1の態様はシステムを定義し、システムは、第1のキャッシュを含み、かつVMに関連づけられた第1のホストと、第2のキャッシュを含む第2のホストと、を含み、上記第1のホストは、通知に応答して上記第1のキャッシュのキャッシュデータを上記第2のホストに送信するように適合され、上記キャッシュデータは上記VMに関連づけられ、上記通知は上記VMが上記第1のホストから上記第2のホストにマイグレートされることを示し、上記第1のホストは、上記通知を受信したことに応答して上記VM(120A)に関連づけられた書き込み操作を上記第2のホストに送信するように適合され、上記第2のホストは、上記通知を受信したことに応答して、上記VMのキャッシュデータが上記第2のキャッシュに存在しない場合に上記キャッシュデータに関連づけられた読み出し操作を上記第1のキャッシュに適用し、上記VMのキャッシュデータに関連づけられた書き込み操作を上記第2のキャッシュに適用するように適合される。
第1の態様は、VMのシームレスマイグレーションを有利に達成するシステムを提供する。この態様によれば、読み出し及び書き込み操作は、マイグレーションの通知に基づき、及びキャッシュデータを第1から第2のキャッシュに送信すると、第2のホストにおいて受信され、処理される。換言すると、読み出し及び書き込み操作は、すべてのキャッシュデータが第2のキャッシュに転送されるまで待機することなく処理される。このことは、操作が遅延なく対処されるという範囲内でシームレスマイグレーションを有利に達成する。この利点は、第2のキャッシュ上で書き込み操作を処理することと、読み出されるべきそれぞれのデータが第2のキャッシュにすでに書き込まれたかどうかに依存して第2のキャッシュ又は第1のキャッシュに対して条件付きで読み出し操作を処理することとを伴う相乗効果から生じる。キャッシュデータがその転送において第1から第2のキャッシュに進むとき、第1のキャッシュにリダイレクトされる読み出し操作の数は減少し、ゆえに、マイグレーションの間に使用される帯域幅オーバーヘッドを低減させる。
第1の態様の第1の実現例によれば、上記第2のホストは、上記VMのさらなるキャッシュデータが上記第1のホストから上記第2のホストに送信されないと決定したことに応答して上記VMに関連づけられた読み出し操作を上記第2のキャッシュにのみ適用するようにさらに適合される。
この第1の実現例は、それが第1のキャッシュからの条件付き読み出しを止め、しかし第2のキャッシュに対する読み出し操作の処理を制限することを定義する点で、有利である。さらなるキャッシュデータが第2のホストに送信されないため、第1のキャッシュから条件付きで読み出すさらなる必要がない。それにより、読み出し操作を第1のキャッシュに条件付きでリダイレクトするオーバーヘッドは回避される。さらなるキャッシュデータが送信されないことを決定する特徴は、VMのさらなるキャッシュデータが第1のキャッシュに存在しないことを意味するわけではない点に留意すべきである。実際、第2のホストに送信されるキャッシュデータは、削除されるまで第1のキャッシュに依然として存在する。さらに、VMは、複数のホスト間で分散される特定のデータに関連づけられてよく、ゆえに、そのデータのいくらかが、さらなるデータが第2のホストに送信されないとしても、第1のキャッシュに存在し続けることがある。
第1の態様の第2の実現例は、上記VMのさらなるキャッシュデータが上記第1のホストから上記第2のホストに送信されないと決定したことに応答して上記第1のキャッシュ内の送信されたキャッシュデータを削除することを含む。
この第2の実現例の利点は、上記で第1の実現例において定義されたように、さらなるキャッシュデータが送信されないと決定した後、読み出し操作はもはや第1のホストにリダイレクトされないことである。ゆえに、第2のホストに前に送信されたキャッシュデータはもはや必要とされず、対応するストレージ空間が解放され得る。
第1の態様の第3の実現によれば、システムは、上記通知を送信するように適合されたキャッシュコントローラを含む。
この実現例は、それが複数のキャッシュを編成する責任を負う単一のエンティティを提供する点で有利である。このエンティティ、キャッシュコントローラは、ゆえに、いずれのホストが所与のVMに関連づけられたキャッシュデータを含むのかを認識し得る。このエンティティはさらに、進行中の送信操作を認識でき、ゆえに、マイグレーション処理がどこで進行中であるか、及びマイグレーション処理が完了したかどうかが分かる。通知をホストに送信することにより、キャッシュコントローラは、マイグレーション操作自体を決定することからホストを有利かつ簡便に解放することができる。
第4の実現例は、キャッシュデータを送信することは、最も最近取り出され、最も最近書き込まれ、又は最も頻繁にアクセスされたデータを最初に送信することを含むことを定義する。
第4の実現例は、それが読み出し操作が第2のホストで実行されたときにこれら読み出し操作が第1のホストにリダイレクトする必要なく必要とするキャッシュデータを実際に取得する可能性を増大させる点で、第1の態様の発明高度に追加をする。この利点は、読み出し操作が他のデータよりも、最も最近取り出され、最も最近書き込まれ、又は最も頻繁にアクセスされたデータに再度アクセスしそうであるという事実に起因する。このデータが他のデータを上回る優先順位で取り扱われるため、読み出し操作のリダイレクションが多くの場合に回避される。これはさらに、リソース使用を低減し、システムの応答性を向上させる。
第5の実現例によれば、キャッシュデータはキャッシュメタデータを含む。
この第5の実現例は、それがデータをメタデータから区別する点で、第1の態様に対してさらに追加をする。後者は、取り出し頻度又はアクセス数などの情報を含んでよく、ゆえに、上記で論じられた第4の実現例を実施するための簡素な一解決策を提供する。
第1の態様の第6の実現例は、上記第1のホストは、上記書き込み操作を上記第2のホストに送信することに追加で、上記VMに関連づけられた書き込み操作を上記第1のキャッシュに適用するようにさらに適合されることを定義する。
これは、ちょうど書き込まれたデータがすぐに読み出されそうであるという事実を配慮している。ゆえに、第1のキャッシュのホストに対して書き込み操作を複製することは、このデータに向けられた来たる読み出しを予期し、ゆえに、このデータにアクセスするための第1のキャッシュのホストにおけるオーバーヘッドを低減する。
第2の態様はホストデバイスに向けられ、ホストデバイスは、ローカルキャッシュを含み、通知に応答してリモートホストのリモートキャッシュからのキャッシュデータを受信することであり、上記キャッシュデータはVMに関連づけられ、上記VMは上記リモートホストに関連づけられるように、かつ、上記VMのキャッシュデータが上記第2のキャッシュに存在しない場合に上記キャッシュデータに関連づけられた読み出し操作を上記リモートキャッシュに、上記VMのキャッシュデータに関連づけられた書き込み操作を上記ローカルキャッシュに適用するように適合され、上記通知は上記VMが上記リモートホストから上記ホストデバイスにマイグレートされることを示す。
第2の態様により定義されるホストデバイスは、第1の態様の第2のホストに対応すると見なされてよく、リモートキャッシュ及びローカルキャッシュが、それぞれ、第1のキャッシュ及び第2のキャッシュに対応する。第2の態様は、ゆえに、VMのシームレスマイグレーションを有利に達成する。リモートホストからローカルホストにキャッシュデータを送信することを開始した後、キャッシュデータに向けられた読み出し及び書き込み操作が最小の遅延で供給されることができる。この遅延は、例えば、読み出されるデータがローカルホストに存在せず、しかしリモートホストからフェッチされる必要がある場合まで低減される。
第2の態様の第1の実現例によれば、上記ホストデバイスは、上記VMのさらなるキャッシュデータが上記リモートホストから上記ホストデバイスに送信されないと決定したことに応答して上記VMに関連づけられた読み出し操作を上記ローカルキャッシュにのみ適用するようにさらに適合される。
この実現例は、第1の態様の第2の実現例と同様、ひとたびそれがさらなるデータが送信されないと決定すると通信オーバーヘッドを有利に減少させる。
第2の態様の第2の実現例は、キャッシュコントローラにより送信された通知を含む。
このキャッシュコントローラは、来たるVMマイグレーションを認識するエンティティを表し、ゆえに、マイグレーションに参加するホストに簡便に通知する。
第3の態様の第3の実現例は、キャッシュデータを送信することは、最も最近取り出され、最も最近書き込まれ、又は最も頻繁にアクセスされたデータを最初に送信することを含むことを定義する。
この実現例は、読み出し操作がリモートホストに実際に向けられるケース数を低減させる。例えば、最近取り出されたキャッシュデータは再度取り出されそうである。ゆえに、このデータをリモートからローカルのホストへのキャッシュデータの送信において優先することは、ローカルホストの応答性を向上させ、過剰な通信及び遅延を回避する。
第4の実現例によれば、キャッシュデータはキャッシュメタデータを含む。
この第4の実現例は、頻繁な取り出しに関するデータなどのメタデータがキャッシュデータに含まれてよいことを明確にする。これは、例えば上記で論じられた第3の実現例に定義されたように、特定のキャッシュデータに対して他のキャッシュデータを上回る優先順位を割り当てることに役立つ。
本発明の第3の態様は方法に向けられ、方法は、通知に応答して、第1のホストの第1のキャッシュからキャッシュデータを受信するステップであり、上記キャッシュデータはVMに関連づけられる、ステップと、上記キャッシュデータが上記第2のキャッシュに存在しない場合、上記VMに関連づけられた読み出し操作を上記第1のホストの上記第1のキャッシュに適用するステップと、上記VMのキャッシュデータに関連づけられた書き込み操作を第2のホストの第2のキャッシュに適用するステップと、を含み、上記通知は上記VMが上記第1のホストから上記第2のホストにマイグレートされることを示す。
第3の態様は、第1のホストから第2のホストへのVMのシームレスマイグレーションを提供する。この態様によれば、マイグレートする過程でVMのキャッシュデータが第2のホストで受信され、VMのキャッシュデータは部分的に第2のホストで、及び部分的に依然として第1のホストで利用可能であるという効果がある。この進行中の転送にかかわらず、キャッシュデータに向けられた読み出し及び書き込み操作は、これらが条件付きで第1のキャッシュにリダイレクトされ、あるいは第2のキャッシュに適用されるとき、最小の遅延で供給されることができる。
第3の態様の第1の実現例は、上記通知はキャッシュコントローラにより送信されることを含む。
第1の実現例は、エンティティ、すなわちキャッシュコントローラを提供し、これは、マイグレーションを認識し、ホストにマイグレーションを、例えばマイグレーションが開始されたかどうかなどを簡便に通知するように適合される。
第3の態様の第2の実現例によれば、キャッシュデータはキャッシュメタデータを含む。
第2の実現例は、マイグレーション処理において必要とされるさらなる情報を提供することについて有利である。上記で論じられたように、こうした情報は、特定のキャッシュデータを第2のホストに送信するときにそれを優先順位を用いて取り扱うとき、必要とされ得る。こうした情報は、キャッシュメタデータに含まれてよい。キャッシュデータの一部であり、それは余分な通信なくアクセスされることができる。
本発明の実施例によるシステムのブロック図である。 本発明の実施例による処理のフロー図である。 本発明の実施例によるさらなる処理のフロー図である。 本発明の実施例によるさらなる処理のフロー図である。 本発明の実施例によるさらなる処理のフロー図である。 本発明の実施例によるさらなる処理のシーケンス図である。
図1は、元のホストとしても参照される第1のホスト110Aと、宛先ホストとしても参照される第2のホスト110Nとを示す。
第1のホスト110AはVM120Aと共に示されるが、1つ以上のさらなるVM(図示されていない)を含んでよい。さらに、第1のキャッシュ130A及び第1のストレージ140Aが第1のホスト110Aに含まれる。第1のキャッシュ130Aは、複数のホストにわたり分散されてよい。第1のキャッシュ130Aは、VM120Aにだけでなく、さらに1つ以上の異なるVMに関連づけられたデータを含んでもよい。第1のストレージ140Aからのデータが、第1のキャッシュ130Aにキャッシュされてよい。第1のキャッシュ130Aは、異なるキャッシュによりキャッシュされ及び/又はVM120Aとは異なるVMに関連づけられたデータをさらに含んでよい。図1は、第1のホスト110Aからローカル又はリモートであり得るグローバルストレージ150をさらに示す。
ここで論じられるキャッシュに使用されるキャッシュ媒体はSSD、RAM、及びフラッシュを含むが、これらに制限されない。
グローバルストレージ150は、例えば、仮想ディスクを複数の仮想マシンに提供する従来の仮想化されたデータセンタなどにおける、ストレージアレイのクラスタであり得る。グローバルストレージからデータを読み出すことは、ローカルキャッシュ又はさらには異なるホストにおけるリモートキャッシュから読み出すよりもより遅いことがある。VM120Aに関連づけられたデータはグローバルストレージ150に記憶されてよく、グローバルストレージ150からのデータは第1のキャッシュ130Aにキャッシュされてよい。
第1のホスト110Aは、第2のキャッシュ130Nと第2のストレージ140Nとを含む第2のホスト110Nに結合される。第2のキャッシュ130Nは、同様に分散されてよい。第2のホスト110Nはさらに、第1のホスト110Aから第2のホスト110Nへのマイグレーションの後、VM120Aに対応するVM120Nと共に示される。第2のホスト110Nは第1のホスト110Aと同様、マイグレーションの前にさらなるVMを含んでもよく、あるいはVMをまったく含まなくてもよい。
第1のホスト110Aは、第1のホスト110Aから第2のホスト110NへのVM120Aのマイグレーションに関する通知を受信するように適合されてよい。通知は、例えばVMMによってなど、様々なエンティティのうち任意のものから、第2のホスト110Nから、又は例示されたキャッシュの1つ以上に関連づけられたキャッシュコントローラ(図示されていない)からであり得る。
通知は、第1のホスト110Nにより受信されてよい。例えば、通知は、VMMによって、VM120Aによって、又は第1のキャッシュ130Aによって受信されてよい。一実施例において、通知は、マイグレートされるVMと、マイグレーションの宛先とを指定する。通知はさらに、第2のホスト110Nにおいて受信されてもよい。
通知を受信したことに応答して、第1のホスト110Aは1つ以上の方法で反応してよい。第1のホスト110Aは、第1のキャッシュ130Aからのキャッシュデータであって、VM120Aに関連づけられた上記キャッシュデータを、第2のホスト110Nに送信することを開始してよい。キャッシュデータを送信することは、第1及び第2のホスト間の、データのサイズ及びパーミッションなどの転送ポリシーを調整することを含んでよい。双方のホスト間の信頼可能な接続が確立されることになる。
キャッシュデータを第2のホスト110Nに送信することは、第1のVM120Aに関連づけられたすべてのキャッシュデータを送信することを含んでよく、あるいは第1のVM120Aに関連づけられた第1のキャッシュ130A内のすべてのキャッシュデータのうちサブセットのみを含んでもよい。例えば、第1のキャッシュ130A内の第1のVM120Aに関連づけられたキャッシュデータのいくらかが、上記キャッシュデータの対応データが何らかの理由でまったく移動されないものとすることを示すキャッシュメタデータを含んでよい。例えば、キャッシュデータは、それが第1のホスト110Aにおける第1のストレージ140Aに記憶されたデータに対応するため、第1のキャッシュ130Aにとどまる必要がある場合がある。こうした場合、キャッシュデータを第1のキャッシュ130Aから異なるホストに移動することは、該異なるホストで上記キャッシュデータを取り出すときの応答性を増大させる可能性があるが、キャッシュデータがダーティになり第1のストレージ140Aに書き込まれる必要があるときの応答性を減少させる可能性がある。一実施例において、第1のホスト110Aの外部のストレージ内のデータに対応するキャッシュデータのみが第2のホスト110Nに送信されてよく、例えば、グローバルストレージ150内のデータ、又は第2のストレージ140N内のデータ、又は任意の他のストレージ内のデータなどである。
キャッシュデータを送信することは、例えば、VM120Aが電源オフしたためなどでそれが一時停止したと決定したことに応答して、第1のホスト110Aにおいて一時的に中断されてよい。ひとたびVM120Aが再開すると、データを送信することは転送が完了するまで継続される。
さらに、通知を受信したことに応答して、及びキャッシュデータの送信が始まったことと独立して、第1のホスト110Aは、その読み出し及び/又は書き込み操作であって、VM120Aに関連づけられたキャッシュデータに向けられた上記操作の、対処を適合させてよい。第1のホスト110Aは、VM120Aに関連づけられたキャッシュデータに向けられた書き込み操作を第2のホスト110Nに送信する。これは、データが第2のキャッシュ130Nに書き込まれるという範囲内で有利であり得る。このデータは、ゆえに、それが次に最もアクセスされそうであるロケーションに存在する。これにより、VM120Aのための有効キャッシュデータのセットが持続的に構築される。このセットがより大きく成長するほど、セット上のキャッシュ無効化のリスクがより小さくなる。第1及び第2のキャッシュ双方にすべての書き込み操作を実行する実施例において、第1のキャッシュの正確なサブセットが第2のキャッシュにおいて構築され、これは、ひとたびVMがマイグレートすると操作する準備ができることになる。したがって、特に、データが第1のキャッシュ130Aに書き込まれた場合に第2のホスト110Nにまだ送信されていない場合に、VM120Nの応答性が増大され得る。特定の実施例において、書き込み操作は、第2のキャッシュ130Nに書き込み操作を適用することに追加で、第1のキャッシュ130Aに適用されてよい。
上述されたように、通知はさらに、第2のホスト110Nにおいて受信されてよい。通知を受信したことに応答して、第2のホスト110Nは、第1のホスト110Aにより送信されるキャッシュデータの準備をしてよく、受信したキャッシュデータを第2のキャッシュ130Nに記憶してよい。さらに、通知を受信したことに応答して、第2のホスト110Nは、VM120Nに関連づけられたキャッシュデータに向けられた書き込み及び/又は読み出し操作、例えば、VM120N自体により発行された操作などを受信する。書き込み操作は、第2のキャッシュ130Nに適用される。一実施例において、書き込み操作は、例えば、キャッシュがブロック編成されたときなどに、第1のホスト110Aに追加的に送信される。読み出し操作は、操作により読み出されるデータについて第2のキャッシュ130Nを調べることにより対処されてよい。例えば、データが第1のホスト110Aからすでに転送されたなどのため、データが第2のキャッシュ130Nにすでに存在する場合、データは第2のキャッシュ130Nから読み出されることになる。さもなければ、データが存在しない場合、読み出し操作は第1のホスト110Aに送信されてよく、第1のホスト110Aにおいて、読み出し操作は第1のキャッシュ130Aに適用される。読み出されたデータは、第2のホスト110Nに提供される。データが第2のキャッシュ130Nに存在するかどうかを決定することは、従来のキャッシュミスとみなされてよい。
キャッシュデータを第1のホスト110Aから第2のホスト110Nに送信することは、VMがマイグレートされた前又は後に完了してよい。VMがマイグレートしたときに送信されるキャッシュデータが依然としてある場合、VMは、送信が完了するまで読み出し操作を第1のキャッシュ130Aに依然として向けてよい。
転送の完了は、例えば、キャッシュコントローラによる通知を通してなどで、第1のホスト110A及び/又は第2のホスト110Nに対して示されてよい。別法として、ホストがそれ自体により、転送が完了であるかどうかを決定してもよい。例えば、第2のホスト110Nは、VM120Nに関連づけられたキャッシュデータが所定の時間期間内に受信されていないと決定することができる。別法として、第1のホスト110Aは、さらに転送されるデータの量について第2のホスト110Nに通知していてもよく、第2のホスト110Nは、受信したキャッシュデータの量を第1のホスト110Aにより示された量と比較する。さらに別の実施例において、VM120Nは、第2のキャッシュ130N内のキャッシュデータの量を認識し、第2のホスト110Nがさらなるデータが受信されないと決定することを可能にする。さらに別の代替として、さらに受信されるキャッシュデータの量を認識するのは、第2のホスト110N上のVMM(図示されていない)であり得る。
いくつかの実施例において、第1のホスト110Aは、完了した転送について第2のホスト110N及び/又はキャッシュコントローラに通知してよい。こうした通知に応答して、キャッシュコントローラは、VMの所有権を第1のホスト110Aから第2のホスト110Nに変更してよく、変更について第2のホスト110Nに通知してよい。
一実施例において、第2のホスト110Nは、さらなるデータが第1のホスト110Aから受信されないと決定したことに応答して、VM120Nに関連づけられたキャッシュデータに向けられた読み出し操作を第1のホスト110Nに送信することを停止してよい。しかしながら、読み出し操作は、これらがVMのマイグレーションの後に第1のキャッシュ130Aにとどまるように意図されたデータに向けられる場合、第1のホスト110Aに依然として送信されてよい。
キャッシュデータは、送信された直後、第1のキャッシュ130Aにおいて削除されてよい。別法として、送信されたデータは、マイグレーションが完了した後、及び/又はVM120Nのさらなるキャッシュデータが第1のホスト110Aから第2のホスト110Nに送信されないと決定した後に、該送信されたデータの全体を削除されてよい。
キャッシュデータは、任意の順序で第1のホスト110Aから第2のホスト110Nに送信されてよい。代替的な一実施例において、データは、このデータに対する最近のアクセスに従い決定された順序で送信されてよい。具体的に、最も最近アクセスされたデータが最初送信され、これに対し、最も古いアクセスを有するデータが最後に送信される。さらにこの実施例に関して、書き込み及び読み出しアクセス間で区別が行われてよい。例えば、データは、該データに対して実行された最も最近の書き込みアクセスの順序で送信されてよい。別法として、データは、最も最近の読み出しアクセスの順序で送信されてよい。一実施例において、データは、最も頻繁にアクセスされたデータが最初に送信されて、アクセス頻度の順序で送信されてよい。順序付けられた送信のすべての実施例において、キャッシュデータに含まれたキャッシュメタデータが、アクセス統計、例えばアクセス頻度又は最後のアクセスなどを示してよく、送信順序を決定することに使用されてよい。
通知の後のある時点で、VM120Aは、第2のホスト110Nで電源オンされるために第1のホスト110Aで電源オフされてよく、これにより、マイグレーションを完了する。これは、上記で論じられた操作の間又は後の任意の時間に発生してよく、データの転送に影響しない。
図2は、第1のホスト110Aなどの元のホストで実行される方法を示す。ブロック210において、元のホストは、VM120AなどのVMを元のホストから第2のホスト110Nなどの宛先ホストにマイグレートする通知を受信する(210)。通知が、例えばキャッシュコントローラからなど、上記で論じられたいずれかの手段により受信されてよい。一実施例において、通知を発行するのはVM自体である。
ブロック220は、キャッシュデータを宛先ホストに送信することを示す。データを送信することは、前述された通知を受信したことに応答して開始される。
キャッシュデータを送信する間、元のホストは、VMが一時停止されたと示す通知を受信し得る。
キャッシュデータが送信されることと独立して、元のホストは、ブロック230に示されるように、通知を受信した後に1つ以上の書き込み操作を受信し得る。受信すると、元のホストは、書き込み操作がVMに関連づけられたキャッシュデータに向けられる場合、これら書き込み操作を宛先ホストに送信する。いくつかの実施例において、VMに関連づけられたすべてのキャッシュデータのうちサブセットのみが宛先ホストに送信される。これら実施例において、元のホストのキャッシュにとどまるキャッシュデータに向けられた書き込み操作はそのキャッシュに適用され、宛先ホストに送信されない。キャッシュデータを送信することはブロック240に示される。
図3は、第1のホスト110Aなどの元のホストで実行されるさらなる方法300を示す。方法300は、VM120AなどのVMが第2のホスト110Nなどの宛先ホストにマイグレートされることに応答して実行されてよい。
ブロック310において、宛先ホストに対しての進行中の又は来たるキャッシュ転送の詳細が調整される。調整は、キャッシュコントローラによりネゴシエートされてよい。別の実施例において、調整は、双方のホスト間で直接ネゴシエートされてよい。調整の対象は、送信されるデータのパーミッション、サイズ、及び/又は他の属性であり得る。詳細には、予め定義された順序、例えばより最近にか又はより最近でなく書き込まれたデータに基づく予め定義された順序などに従いデータを転送することを達成するために、転送されるデータについての情報が交換されてよい。
ブロック320において、元のホストは、ローカルキャッシュデータを宛先ホストに送信することを開始する。いくつかの実現例において、ローカルキャッシュデータは、宛先ホストに直接送信されてよい。他の実施例において、ローカルキャッシュデータは、キャッシュコントローラを介して、又は代替のルートを介して送信されてよい。ローカルキャッシュデータは、第1のストレージ140A又は第1のキャッシュ130A内などの、元のホストでローカルに記憶されたデータに制限されず、しかし、グローバルストレージ150に又は他の場所に記憶されたデータをさらに含んでよい。ローカルキャッシュデータは、マイグレートされるVM、例えば上述されたVM120Aなどに関連づけられ得る。ローカルキャッシュデータと共に、ローカルキャッシュデータに関連づけられたメタデータが送信されてよい。このメタデータは、ローカルキャッシュデータとは独立して、例えば、非同期通信によってなどで送信されてよい。ローカルキャッシュデータ及びメタデータの双方が、最もホットなもの(hottest)から始まり最もコールドなもの(coldest)まで送信されてよい。最もホットなデータは、ローカルキャッシュに最も最近書き込まれたデータを参照してよく、最もコールドなデータは、このVMに属するいかなる他のデータよりもより長くキャッシュに存在したデータを参照する。別法として、ローカルキャッシュデータが、より頻繁でなくアクセスされたキャッシュアドレスのほうを選んで(in favour of)、より頻繁にアクセスされたキャッシュアドレスを用いて送信されてよい。
ローカルキャッシュデータを送信することが始まった後に書き込み操作が元のホストにおいて受信された場合、これら書き込み操作は第2のホストのキャッシュに対して複製される。これはブロック330により反映され、こうした書き込み操作が受信されたときにいつも実行される。こうした書き込み操作を複製することは、書き込まれるアドレス及び/又はデータなどの書き込み操作の詳細を、宛先ホストに又はキャッシュコントローラに通信することを含んでよい。このステップは、宛先ホスト上の内容が元のホストと一貫することを保証する。一実施例において、第2のホストにすでに送信されたキャッシュアドレスに向けられた書き込み操作のみが、説明されたように複製されてよい。
ブロック320及び330は、ブロック340に示されるようにマイグレートされるVMが一時停止されるまで、かつ/あるいはブロック350に示されるように転送が完了するまで実行される。ブロック340においてVMが一時停止されていると分かった場合、ローカルキャッシュデータは、転送がまだ完了していない場合には送信され続けてよい。これはブロック360により示され、ブロック360は、上記で論じられたブロック320と同一の方法でローカルキャッシュデータを送信することを表す。
ひとたび転送が完了すると、マイグレートされたVMに関連づけられたキャッシュの現在の所有者が、例えば、キャッシュコントローラに及び/又はVM120Nなどの新しいVMに対しての通知によってなどで、ブロック370において宣言されてよい。方法300は、ブロック380において第1のキャッシュからローカルキャッシュデータ及び関連づけられたデータを破棄すること、例えば、削除することなどで終了する。いくつかの実施例において、ローカルキャッシュデータを送信した直後にそれを第1のキャッシュから削除するほうを選んで、ブロック380が省略されてよい。
図4は、第2のホスト110Nなどの宛先ホストで実行されるさらなる方法を示す。ブロック410において、VM110AなどのVMの元のホストから宛先ホストへのマイグレーションに関する通知が宛先ホストで受信される。この通知を受信したことに応答して、宛先ホストは、元のホストから送信されるキャッシュデータを受信することの準備をする。一例において、準備することは、宛先ホストで空きメモリ空間を識別することを含む。準備することは、信頼可能な接続を確立することと、転送の詳細をネゴシエートすることとをさらに含んでよい。
キャッシュデータを受信する間、宛先ホストは、VMが一時停止されているとの通知を受信し得る。
宛先ホストでデータを受信することは、すでに宛先ホストのキャッシュ内にあるデータと衝突するか又は追い出されたデータと衝突するすべてのデータ及び/又はメタデータを破棄することを含んでよい。
ブロック430及び440は、前述された通知を受信した後に1つ以上の読み出し又は書き込み操作を受信することを示す。こうした操作を受信し、対処することは、キャッシュデータを受信することとは独立である。具体的に、キャッシュデータを受信する処理は未知の時間期間について継続し得る。この期間の間、操作が宛先ホストにより受信され、実行されてよい。
読み出し操作を受信したことに応答して、宛先ホストは、ブロック450において、この読み出し操作により要求されたキャッシュデータが宛先ホストのキャッシュに、例えば第2のキャッシュ130Nなどに存在するかどうかを決定してよい。キャッシュデータは、ブロック460に示されるように、キャッシュデータがその中に存在すると決定したことに応答して宛先キャッシュから読み出される。さもなければ、読み出し操作は元のホストに、例えば第1のホスト110Aなどに送信され、ブロック70により示されるように、元のホストにおいて読み出し操作が元のキャッシュに適用される。その後、読み出されたデータは宛先ホストに返されてよい。
ブロック440に示されるように、書き込み操作を受信したことに応答して、書き込み操作内に示され及び/又は含まれるデータが宛先キャッシュに書き込まれる。特定の実施例において、データはさらに、元のホストでキャッシュに書き込まれてよい。
宛先ホストでキャッシュデータを受信することは、元のホストからの通知で終結してよい。いくつかの実施例において、こうした通知は、VMの所有権が元のから宛先のホストに変更され得ることを示してよい。
いくつかの場合、キャッシュデータの転送は、例えば、宛先ホストでいかなるキャッシュデータも受信することなく閾時間期間が満了したと検出したことに応答してなどで、又はVMのさらなるマイグレーションに関する別の通知を受信したことに応答してなどで、中止されてよい。
ここで論じられた実施例により提供される利点は、VMのシームレスマイグレーションを含む。このシームレス性は、読み出し及び書き込み操作に対処するときに、VMがあるホストから別のホストにマイグレートされる処理中でさえ、VMに関連づけられたキャッシュデータに向けられた操作が対処され得ることを示す。
図5は、第2のホスト110Nなどの宛先ホストで実行されるさらなる方法500を示す。方法500は、第1のホスト110Aなどの元のホストから第2のホスト110Nなどの宛先ホストへのVMのマイグレーションに関する通知に応答して開始してよい。図3のステップ310と同様、キャッシュ転送の詳細がステップ510において調整されてよい。この調整は、元のホストとの直接通信において実行されてよく、あるいはキャッシュコントローラを介して実行されてもよい。調整された詳細は、図3に関して上記で論じられたものと同一であり得る。
調整の後、元のホストからのローカルキャッシュデータがブロック520において宛先ホストで受信される。再びになるが、図3に関して論じられたローカルキャッシュデータの詳細がこのステップに適用される。一実施例において、宛先ホストでローカルキャッシュデータを受信することは、宛先ホストのキャッシュ内、例えば第2のキャッシュ130N内の、このデータのより古いバージョンを上書きすることを含んでよい。ブロック520は、マイグレートされるVMが宛先ホストで再開されたという通知がブロック530において受信されるまで繰り返す。こうした再開は典型的には、VMを元のホストから宛先ホストにマイグレートする過程で元のホスト上でVMを一時停止した後、発生する。VMを一時停止することは、図3のブロック340に関して上記で論じられている。
ひとたびVMが再開されると、方法00はブロック540で継続し、ブロック540において、宛先ホストはローカルキャッシュデータを受信することを継続する。しかしながら、元のホストから受信されたローカルキャッシュデータが宛先ホストに既に存在することを検出され、詳細には宛先ホスト上の異なるステートにあることを検出された場合、受信したローカルキャッシュデータは破棄されることになり、宛先ホストにおいて対応データを上書きすることに使用されないことになる。
いくつかの実施例において、方法500はブロック550において、VMが再開された後、及び、特定のローカルキャッシュデータが宛先ホストにおいて依然として見当たらないと検出したことに応答して、元のホストからの上記特定のローカルキャッシュデータを要求する。こうした要求は、VMの要求に基づき行われてよい。特定のローカルキャッシュデータを取得した後、それは宛先ホストのローカルキャッシュに書き込まれてよい。
ブロック540及び/又は550は、ブロック50により示されるように、ローカルキャッシュデータの所有権が元のホスト上のVMから宛先ホスト上のVMに実際に変わるまで続行してよい。

図6は、VMのマイグレーションの間における元のホスト及び宛先ホストの動作を示すシーケンス図である。シーケンス600は、ステップ610及び620において元のホスト及び宛先ホストにプレモーションイベント(pre−motion events)を送信することで開始する。元のホストの一例が、上記で論じられた第1のホスト110Aである。宛先ホストの一例が、第2のホスト110Nである。プレモーションイベントは、VMがあるホストから別のホストにマイグレートされることを示し、キャッシュコントローラ160により送信されてよい。しかしながら、キャッシュコントローラは、本発明が機能するのに義務的でなく、プレモーションイベントは、任意の他の相手により、例えばマイグレートされるVMにより同様に送信されてよい。ステップ630及び640において、キャッシュ転送の詳細が調整されてよい。例示される実施例において、これは、元のホスト及び宛先ホストに対するメッセージにより転送特性を定義するキャッシュコントローラにより実行される。他の実施例において、調整は、マイグレートされるVMにより、又は元のホストの宛先ホストとの直接通信により実行されてよい。
シーケンス600は、ステップ650及び660において元のホストがキャッシュデータ及びキャッシュメタデータを送信することで続行する。これらステップは上記で、例えば図3のブロック320及び図5のブロック520に関して論じられている。
上記データを送信する間のある時点で、ステップ665が、VMが元のホスト上で一時停止したと検出し得る。これに応答して、宛先ホストは、VMに属するデータのローカルのミスを体験したことに応答して、元のホストからのデータをステップ670において要求してよい。さらに、VMが一時停止されたと検出した後、元のホストは、ステップ680及び690においてキャッシュデータ及びキャッシュメタデータを宛先ホストに送信することを継続する。これは、図3のブロック360及び図5のブロック540と同様である。
ステップ695において、元のホストは、完了した転送について宛先ホスト及び/又はキャッシュコントローラに通知してよい。別法として、宛先ホストはそれ自体により、例えば、元のホスト上のVMを監視することにより完了を検出してもよい。さらに別の代替として、VM自体が宛先ホストに通知してもよい。
ステップ695の後、元のホストは、送信されたキャッシュデータを削除してよい。このステップに対する代替が、上記の図3のブロック380の議論に従い実行されてもよい。さらに、ステップ695の後、VMの所有権がステップ695Bにおいて元のホストから宛先ホストに変更されてよい。このステップは、キャッシュコントローラにより、又はVMにより実行されてよい。ステップ695Bがキャッシュコントローラにより実行される場合、宛先ホストはそれを動作ステップ695において通知される。
シーケンス600は、ゆえに、VMのすべてのデータが元のから宛先のホストにマイグレートされ、VMのマイグレーションが完了して、完結する。
さらなる利点は、操作が進行中のマイグレーションにかかわらず対処されるだけでなく、さらにそのそれぞれの対処がマイグレーションフェーズを、例えば、キャッシュデータが宛先に対して依然として送信されているかどうかなどを考慮することである。これは、キャッシングサービスにおけるいかなるダウンタイムも回避する。マイグレーションの前、読み出し及び書き込み操作は、その元のサイトにおいてVMに関連づけられたキャッシュで対処され得る。マイグレーションの間、元のホストにおける書き込み操作は宛先ホストに送信され得る。これは、宛先ホストにおけるキャッシュに、マイグレーションが完了したときに使用される準備のできたデータを有利に投入する。さらに、データは宛先ロケーションで書き込まれることを保証され、宛先ロケーションでは、データは再びすぐにアクセスされることが予期され得る。元のホスト及び宛先ホストの双方において書き込み操作を適用することを含む実施例において、いかなるキャッシュ無効化も回避され、ゆえに、第1若しくは第2のキャッシュに又はグローバルストレージにアクセスされる数を低減する。
さらに、マイグレーションの間、宛先ホストにおける読み出し操作が、条件付きで(conditionally)、宛先ホストキャッシュに存在しない場合に元のホストに送信される。それにより、本発明の実施例は、キャッシュデータコピーが依然として進行中である間、宛先で読み出されるべきデータを既に届けている可能性があるという事実を考慮する。大幅な利点は、キャッシュデータの送信が進行するとき、より少ない読み出し操作が元のホストに送信される必要があることである。ゆえに、依然としてマイグレートする処理中である間、宛先ホストにおけるVMの応答性が増大する。キャッシュデータの特定の順序を含む実施例は、すべてのキャッシュデータがまだ送信されてはいない可能性があるとしても、マイグレートする間にデータが宛先ホスト上で見つけられる可能性をこれら実施例が増大させる点で、上記利点にさらに追加をする。この利点は、より頻繁にアクセスされたデータ及び/又はより最近アクセスされたデータが近い将来に再度アクセスされそうであり、このデータを優先することが宛先においてVMの応答性をさらに向上させることができるという洞察に起因する。
さらに別の利点は、無効化されたキャッシュデータを第1のストレージ又はグローバルストレージにフラッシュすることなくキャッシュデータがあるホストから別のホストに転送され、ゆえに、処理の速度をさらに増大させることである。
発明ステップは、少なくとも、到来する読み出し及び/又は書き込み操作に遅延なく対処すること共に、元のホストから宛先ホストへのキャッシュデータの送信を開始することにより確立される。いくつかの場合、対処することはそれ自体、例えば書き込み操作が宛先に転送されるときなどに、応答性を増大させる。
本発明及びその利点が詳細に説明されたが、別記の特許請求の範囲より定義されるように本発明の主旨及び範囲から逸脱することなく様々な変更、代用、及び変形がここで行われ得ることが理解されるべきである。

Claims (13)

  1. 第1のキャッシュを含み、かつ仮想マシン(VM)に関連づけられた第1のホストと、
    第2のキャッシュを含む第2のホストと、
    を含み、
    前記第1のホストは、通知に応答して前記第1のキャッシュのキャッシュデータを前記第2のホストに送信するように構成され、前記キャッシュデータは前記VMに関連づけられ、前記通知は前記VMが前記第1のホストから前記第2のホストにマイグレートされることを示し、前記第1のホストは、前記通知を受信したことに応答して前記VMに関連づけられた書き込み操作を前記第2のホストに送信するように構成され、
    前記第2のホストは、前記通知を受信したことに応答して、前記VMのキャッシュデータが前記第2のキャッシュに存在しないときに前記キャッシュデータに関連づけられた読み出し操作を前記第1のキャッシュに適用し、前記VMのキャッシュデータに関連づけられた書き込み操作を前記第2のキャッシュに適用するように構成され、
    前記第2のホストは、前記VMのさらなるキャッシュデータが前記第1のホストから前記第2のホストに送信されないと決定したことに応答して前記VMに関連づけられた読み出し操作を前記第2のキャッシュにのみ適用するようにさらに構成され、前記決定は、
    前記第1のホストにより、さらに転送されるデータの量について前記第2のホストに通知することと、
    前記第2のホストにより、受信したキャッシュデータの量を前記第1のホストにより示された量と比較することと、
    に基づく、システム。
  2. 前記第1のホストは、前記VMのさらなるキャッシュデータが前記第1のホストから前記第2のホストに送信されないと決定したことに応答して前記第1のキャッシュ内の送信されたキャッシュデータを削除するようにさらに構成される、請求項1に記載のシステム。
  3. 前記通知を送信するように構成されたキャッシュコントローラ、をさらに含む請求項1又は2に記載のシステム。
  4. キャッシュデータを送信することは、最も最近取り出され、最も最近書き込まれ、又は最も頻繁にアクセスされたデータを最初に送信することを含む、請求項1乃至3のうち一項に記載のシステム。
  5. 前記キャッシュデータはキャッシュメタデータを含む、請求項1乃至4のうち一項に記載のシステム。
  6. 前記第1のホストは、前記書き込み操作を前記第2のホストに送信することに追加で、前記VMに関連づけられた書き込み操作を前記第1のキャッシュに適用するようにさらに構成される、請求項1乃至4のうち一項に記載のシステム。
  7. ホストデバイスであって、ローカルキャッシュを含み、
    当該ホストデバイスは、
    通知に応答してリモートホストのリモートキャッシュからのキャッシュデータを受信し、前記キャッシュデータは仮想マシン(VM)に関連づけられ、前記VMは前記リモートホストに関連づけられ、
    前記VMのキャッシュデータが前記ローカルキャッシュに存在しない場合に前記キャッシュデータに関連づけられた読み出し操作を前記リモートキャッシュに、前記VMのキャッシュデータに関連づけられた書き込み操作を前記ローカルキャッシュに適用する
    ように構成され、
    前記通知は前記VMが前記リモートホストから前記ホストデバイスにマイグレートされることを示し、
    前記ホストデバイスは、前記VMのさらなるキャッシュデータが前記リモートホストから前記ホストデバイスに送信されないと決定したことに応答して前記VMに関連づけられた読み出し操作を前記ローカルキャッシュにのみ適用するようにさらに構成され、前記決定は、
    前記リモートホストにより、さらに転送されるデータの量について前記ホストデバイスに通知することと、
    前記ホストデバイスにより、受信したキャッシュデータの量を前記リモートホストにより示された量と比較することと、
    に基づく、ホストデバイス。
  8. 前記通知はキャッシュコントローラにより送信される、請求項7に記載のホストデバイス。
  9. キャッシュデータを送信することは、最も最近取り出され、最も最近書き込まれ、又は最も頻繁にアクセスされたデータを最初に送信することを含む、請求項7又は8に記載のホストデバイス。
  10. 前記キャッシュデータはキャッシュメタデータを含む、請求項7乃至9のうち一項に記載のホストデバイス。
  11. 第2のホストにより実行される分散キャッシュライブマイグレーションの方法であって、
    通知に応答して、第1のホストの第1のキャッシュからキャッシュデータを受信するステップであり、前記キャッシュデータは仮想マシン(VM)に関連づけられる、ステップと、前記キャッシュデータが前記第2のホストの第2のキャッシュに存在しないとき、前記VMに関連づけられた読み出し操作を前記第1のホストの前記第1のキャッシュに適用するステップと、前記VMのキャッシュデータに関連づけられた書き込み操作を前記第2のキャッシュに適用するステップと、を含み、前記通知は前記VMが前記第1のホストから前記第2のホストにマイグレートされることを示し、
    前記VMのさらなるキャッシュデータが前記第1のホストから前記第2のホストに送信されないと決定したことに応答して前記VMに関連づけられた読み出し操作を前記第2のキャッシュにのみ適用するステップであり、前記決定は、
    前記第1のホストにより、さらに転送されるデータの量について前記第2のホストに通知することと、
    前記第2のホストにより、受信したキャッシュデータの量を前記第1のホストにより示された量と比較することと、
    に基づく、ステップ、をさらに含む方法。
  12. 前記通知はキャッシュコントローラにより送信される、請求項11に記載の方法。
  13. 前記キャッシュデータはキャッシュメタデータを含む、請求項11又は12に記載の方法。
JP2018520530A 2015-10-21 2015-10-21 分散キャッシュライブマイグレーション Active JP6847105B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2015/000696 WO2017069648A1 (en) 2015-10-21 2015-10-21 Distributed cache live migration

Publications (3)

Publication Number Publication Date
JP2018531471A JP2018531471A (ja) 2018-10-25
JP2018531471A6 JP2018531471A6 (ja) 2018-12-13
JP6847105B2 true JP6847105B2 (ja) 2021-03-24

Family

ID=55967388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018520530A Active JP6847105B2 (ja) 2015-10-21 2015-10-21 分散キャッシュライブマイグレーション

Country Status (5)

Country Link
US (1) US10897517B2 (ja)
EP (1) EP3350713B1 (ja)
JP (1) JP6847105B2 (ja)
CN (1) CN108139974B (ja)
WO (1) WO2017069648A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108880898B (zh) * 2018-06-29 2020-09-08 新华三技术有限公司 主备容器系统切换方法及装置
CN110134492B (zh) * 2019-04-18 2021-04-13 华中科技大学 一种异构内存虚拟机不停机的内存页面迁移系统
CN110297783B (zh) * 2019-07-03 2021-01-15 西安邮电大学 基于实时动态迁移机制的分布式cache结构
CN110515726A (zh) * 2019-08-14 2019-11-29 苏州浪潮智能科技有限公司 一种数据库负载均衡方法与装置
JP7347007B2 (ja) * 2019-08-28 2023-09-20 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム、及び情報処理プログラム
US11520612B2 (en) 2019-11-13 2022-12-06 International Business Machines Corporation Virtual machine migration detection by a hosted operating system
US20220269522A1 (en) * 2021-02-25 2022-08-25 Red Hat, Inc. Memory over-commit support for live migration of virtual machines
CN114356839B (zh) * 2022-03-17 2022-06-03 飞腾信息技术有限公司 处理写操作的方法、设备、处理器及设备可读存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
US8751738B2 (en) * 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US8863117B2 (en) * 2010-07-19 2014-10-14 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US8904384B2 (en) * 2011-06-14 2014-12-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reducing data transfer overhead during live migration of a virtual machine
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9069587B2 (en) 2011-10-31 2015-06-30 Stec, Inc. System and method to cache hypervisor data
CN102521038B (zh) * 2011-12-06 2014-04-09 北京航空航天大学 基于分布式文件系统的虚拟机迁移方法和装置
US8930947B1 (en) * 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US9116812B2 (en) * 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US9612966B2 (en) * 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) * 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9141529B2 (en) 2012-08-14 2015-09-22 OCZ Storage Solutions Inc. Methods and apparatus for providing acceleration of virtual machines in virtual environments
US9454487B2 (en) * 2012-08-27 2016-09-27 Vmware, Inc. Transparent host-side caching of virtual disks located on shared storage
US10241814B2 (en) * 2013-01-29 2019-03-26 Red Hat Israel, Ltd. Virtual machine memory migration by storage
US9055119B2 (en) * 2013-03-26 2015-06-09 Vmware, Inc. Method and system for VM-granular SSD/FLASH cache live migration
US9882984B2 (en) 2013-08-02 2018-01-30 International Business Machines Corporation Cache migration management in a virtualized distributed computing system
US10042768B1 (en) * 2013-09-21 2018-08-07 Avago Technologies General Ip (Singapore) Pte. Ltd. Virtual machine migration
CN103546556B (zh) * 2013-10-22 2017-04-05 同济大学 一种在未来网络xia中虚拟机在线迁移方法
CN103559075B (zh) * 2013-10-30 2016-10-05 华为技术有限公司 一种数据传输方法、装置和系统及内存装置
JP6115482B2 (ja) * 2014-01-21 2017-04-19 株式会社デンソー 電子制御装置
US9354918B2 (en) * 2014-02-10 2016-05-31 International Business Machines Corporation Migrating local cache state with a virtual machine
US10318325B2 (en) * 2015-01-07 2019-06-11 International Business Machines Corporation Host-side cache migration

Also Published As

Publication number Publication date
CN108139974A (zh) 2018-06-08
CN108139974B (zh) 2021-02-12
EP3350713B1 (en) 2022-05-04
WO2017069648A1 (en) 2017-04-27
US20180241838A1 (en) 2018-08-23
US10897517B2 (en) 2021-01-19
EP3350713A1 (en) 2018-07-25
JP2018531471A (ja) 2018-10-25

Similar Documents

Publication Publication Date Title
JP6847105B2 (ja) 分散キャッシュライブマイグレーション
JP2018531471A6 (ja) 分散キャッシュライブマイグレーション
US10838665B2 (en) Method, device, and system for buffering data for read/write commands in NVME over fabric architecture
US9055119B2 (en) Method and system for VM-granular SSD/FLASH cache live migration
US10715622B2 (en) Systems and methods for accelerating object stores with distributed caching
US20030212865A1 (en) Method and apparatus for flushing write cache data
US20080263259A1 (en) Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US10452300B2 (en) Storage system, node apparatus, cache control method and program
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
US20160212198A1 (en) System of host caches managed in a unified manner
JP2010002942A (ja) 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
US20110202708A1 (en) Integrating A Flash Cache Into Large Storage Systems
US10719240B2 (en) Method and device for managing a storage system having a multi-layer storage structure
US20110238915A1 (en) Storage system
US7000077B2 (en) Device/host coordinated prefetching storage system
US20210132870A1 (en) Methods and systems for servicing data requests in a multi-node system
US20120047330A1 (en) I/o efficiency of persistent caches in a storage system
US11720274B2 (en) Data migration using cache state change
US11288238B2 (en) Methods and systems for logging data transactions and managing hash tables
WO2016090985A1 (zh) 缓存的读取、读取处理方法及装置
CN110209343B (zh) 数据存储方法、装置、服务器及存储介质
CN115268763A (zh) 一种缓存管理方法、装置及设备
JP5494363B2 (ja) ファイル管理プログラム,ファイル管理方法およびファイル管理装置
JP3940686B2 (ja) 通信システム及び通信方法
JP6589500B2 (ja) 情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190624

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200403

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200403

C11 Written invitation by the commissioner to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C11

Effective date: 20200421

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200423

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20200428

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20200717

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20200721

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20201006

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20201215

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210202

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210302

R150 Certificate of patent or registration of utility model

Ref document number: 6847105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250