JP2014102823A - 外部キャッシュデバイスでのハイパーバイザのi/oステージング - Google Patents

外部キャッシュデバイスでのハイパーバイザのi/oステージング Download PDF

Info

Publication number
JP2014102823A
JP2014102823A JP2013225495A JP2013225495A JP2014102823A JP 2014102823 A JP2014102823 A JP 2014102823A JP 2013225495 A JP2013225495 A JP 2013225495A JP 2013225495 A JP2013225495 A JP 2013225495A JP 2014102823 A JP2014102823 A JP 2014102823A
Authority
JP
Japan
Prior art keywords
storage device
data
write
shared storage
rate
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
JP2013225495A
Other languages
English (en)
Other versions
JP5951582B2 (ja
Inventor
James Beveridge Daniel
ジェームズ ベヴァリッジ ダニエル
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.)
VMware LLC
Original Assignee
VMware 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 VMware LLC filed Critical VMware LLC
Publication of JP2014102823A publication Critical patent/JP2014102823A/ja
Application granted granted Critical
Publication of JP5951582B2 publication Critical patent/JP5951582B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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
    • 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
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Abstract

【課題】仮想マシン(VM)と、VMにサービス提供するストレージデバイスとの間の仲介役としてのハイパーバイザの立場を利用して、VMの全体的なI/O性能の改善を促進する、入力/出力動作(IO)のための管理技法を提供すること。
【解決手段】このI/O管理技法では、ハイパーバイザ110は、ストレージデバイス用のVM120からの書込み要求を、ライトバックモードでI/Oステージングデバイス130にキャッシュするために、ストレージデバイス141、142よりも高いI/O性能を提供するI/Oステージングデバイス130に送る。I/Oステージングデバイスが書込み要求を受け取り、これに肯定応答すると、ハイパーバイザは直ちに肯定応答を要求元のVMに提供する。その後、VMからの書込み要求に対して非同期的に、ハイパーバイザは、I/Oステージングデバイスから書込みデータを読み取り、その書込みデータをストレージデバイスに送り、記憶する。
【選択図】図1

Description

本発明は、仮想化コンピュータシステムに関し、詳しくは、外部キャッシュデバイスでのハイパーバイザのI/Oステージングに関する。
仮想化コンピュータシステムにおいて、特に、仮想化コンピュータシステムで動作する1つまたは複数の仮想マシン(Virtual Machines:VM)およびVM用のシステムソフトウェア(一般に「ハイパーバイザ」と呼ばれる)を各々が有する、ホストコンピュータのクラスタで構成されたシステムにおいて、入力/出力動作を管理するという難しい課題がある。従来のストレージデバイスは、ホストコンピュータのクラスタで動作する数百または数千ものVMによって生成されたストレージI/O要求のフローに対処するのが困難なことが多い。
この問題を解決するための従来の技法としては、特別に設計されたキャッシング機構を備えたストレージデバイス、およびホストコンピュータの近くに配置された1つまたは複数の高速ストレージデバイスを備えた多層ストレージデバイスを使用することが挙げられる。これらのシステムはストレージI/O要求のフローを処理するのに適切であり得るが、高価であり、複雑な実装を必要とする可能性がある。このような理由により、従来のシステムは、ホストコンピュータのクラスタで動作するVMの数に合わせて十分に拡張していない。また、これらのシステムは、これらのシステムに対して指定されたサービスレベルアグリーメント(Service Level Agreements:SLA)を満たすようにピーク作業負荷を処理するように設計され、結果として、長期間にわたって十分に活用されないのが一般的である。
米国特許出願公開第2008/189468号明細書
本発明によれば、特許請求の範囲にあるようなコンピュータシステムおよび方法が提供される。本発明の他の特徴は、従属請求項および以降の説明に記載されている。
一態様では、複数のホストコンピュータを有するコンピュータシステムであって、複数のホストコンピュータの各々が、ホストコンピュータで動作する1つまたは複数の仮想マシン(VM)と、VMをサポートするシステムソフトウェアとを有する、コンピュータシステムが提供され、コンピュータシステムは、ホストコンピュータの各々に接続された第1の共有ストレージデバイスと、第1の共有ストレージデバイスよりも大きい容量および高い入力/出力遅延を有する第2の共有ストレージデバイスとを備え、システムソフトウェアは、第2の共有ストレージデバイスに書き込まれるデータを、第1の共有ストレージデバイスにライトバックモードでキャッシュするように構成される。
1つの例では、第1の共有ストレージデバイスにキャッシュされたデータは、データが第1の共有ストレージデバイスにキャッシュされた場合に対し、システムソフトウェアによって第2の共有ストレージデバイスに非同期的にコピーされる。
1つの例では、VMをサポートするシステムソフトウェアは、書込み要求を第1の共有ストレージデバイスに出し、第1の共有ストレージデバイスから書込み肯定応答を受け取ると、書込み肯定応答をVMに転送することによって、VMの書込み入力/出力動作を処理するように構成される。
1つの例では、VMをサポートするシステムソフトウェアは、読取りデータが第1の共有ストレージデバイスにキャッシュされているかどうかに基づいて、読取り要求を第1の共有ストレージデバイスおよび第2の共有ストレージデバイスのうちの一方に出すことによって、VMの読取り入力/出力動作を処理するように構成される。
1つの例では、ホストコンピュータの各々におけるシステムソフトウェアは、それによって第1の共有ストレージデバイスにキャッシュされたデータを、システムソフトウェアがデータを第1の共有ストレージデバイスにキャッシュしたレートに基づく第2のレートに実質的に一致した第1のレートで、第2の共有ストレージデバイスにコピーするように構成される。
1つの例では、第2のレートは、システムソフトウェアがデータを第1の共有ストレージデバイスにキャッシュしたレートの移動平均である。
1つの例では、第1の共有ストレージデバイスはソリッドステートドライブアレイであり、第2の共有ストレージデバイスは回転ディスクベースのストレージアレイである。
1態様では、第1のホストコンピュータおよび第2のホストコンピュータを含む複数のホストコンピュータを有するコンピュータシステムであって、複数のホストコンピュータの各々が、ホストコンピュータで動作する1つまたは複数の仮想マシン(VM)と、VMをサポートするシステムソフトウェアとを有する、コンピュータシステムが提供され、コンピュータシステムは、ホストコンピュータの各々に接続された第1の共有ストレージデバイスと、第1の共有ストレージデバイスよりも大きい容量および高い入力/出力遅延を有し、ホストコンピュータで動作するVM用のデータストアで構成される第2の共有ストレージデバイスとを備え、各々のホストコンピュータにおけるシステムソフトウェアは、データストアに書き込まれるデータをキャッシュし、第1の共有ストレージデバイスにキャッシュされたデータを、システムソフトウェアがデータを第1の共有ストレージデバイスにキャッシュしたレートに基づく第2のレートに実質的に一致した第1のレートで、第2の共有ストレージデバイスにコピーするように構成される。
1つの例では、第1のホストコンピュータのシステムソフトウェアは、すべてのホストコンピュータのシステムソフトウェアによって第1のホストコンピュータのシステムソフトウェアに報告されたレートの平均に基づいて、すべてのホストコンピュータに対する第2のレートを計算するように構成される。
1つの例では、システムソフトウェアによって報告された各々のレートは、システムソフトウェアがデータストアに書き込まれるデータを第1の共有ストレージデバイスにキャッシュしたレートの移動平均である。
1つの例では、各々のホストコンピュータにおけるシステムソフトウェアは、別のシステムソフトウェアが故障した場合に、該別のシステムソフトウェアによって第1の共有ストレージデバイスにキャッシュされたデータを第2の共有ストレージデバイスにコピーするようにさらに構成される。
1つの例では、第1の共有ストレージデバイスにキャッシュされたデータは、最も長く使用されていないまたは最も使用された頻度が少ないポリシーに従ってエビクトされる。
1つの例では、データは優先順位を用いて第1の共有ストレージデバイスにキャッシュされ、優先順位に従って第1の共有ストレージデバイスからエビクトされる。
1つの例では、第1のVMからのデータは、第1のVMに比べて低い優先順位が与えられている第2のVMからのデータよりも高い優先順位を用いてキャッシュされる。
1態様では、VMから入力/出力動作(IO)の書込みデータをキャッシュする方法であって、方法は複数のホストコンピュータを有するコンピュータシステムに用いられるものであり、複数のホストコンピュータの各々が、ホストコンピュータで動作する1つまたは複数の仮想マシン(VM)と、VMをサポートするシステムソフトウェアとを有する、方法が提供され、該方法は、書込みデータを含むVMから書込みIOを受け取ると、書込みデータを書き込む要求を第1のストレージデバイスに出すこと、第1のストレージデバイスが書込みデータの書込みに成功したという肯定応答を第1のストレージデバイスから受け取ると、書込み肯定応答をVMに転送すること、該転送の後に、書込みデータの読取り要求を第1のストレージデバイスに出し、次いで書込みデータを書き込む書込み要求を第2のストレージデバイスに出すことを備え、第1および第2のストレージデバイスは、ホストコンピュータによって共有され、第2のストレージデバイスは、第1のストレージデバイスよりも大きい容量および高い入力/出力遅延を有する。
1つの例では、第1のストレージデバイスはソリッドステートドライブアレイであり、第2のストレージデバイスは回転ディスクベースのストレージアレイである。
1つの例では、方法は、第1のストレージデバイスへの成功した書込みのレートを追跡すること、追跡されたレートに基づいて、第2のストレージデバイスに出される書込み要求を制御することをさらに含む。
1つの例では、第2のストレージデバイスに出される書込み要求における書込みのレートは、追跡されたレートに実質的に一致する。
1つの例では、方法は、第1のストレージデバイスへの成功した書込みのレートを追跡すること、追跡されたレートを調整ホストコンピュータに報告すること、すべてのホストコンピュータによって報告された追跡されたレートに基づく目標レートを受け取ること、目標レートに基づいて、第2のストレージデバイスに出される書込み要求を制御することをさらに含む。
1つの例では、方法は、故障したシステムソフトウェアによって第1のストレージデバイスに書き込まれた書込みデータの読取り要求を出し、次いでそのような書込みデータを書き込む書込み要求を第2のストレージデバイスに出すことをさらに含む。
本明細書に開示される1つまたは複数の実施形態は、一般に、VMと、VMにサービス提供するストレージデバイスとの間の仲介役としてのハイパーバイザの立場を利用して、VMの全体的なI/O性能の改善を促進する、新しいI/O管理技法を提供する。この新しいI/O管理技法によれば、ハイパーバイザは、ストレージデバイス用のVMからの書込み要求を、ストレージデバイスよりも高いI/O性能を提供するI/Oステージングデバイスに送る。I/Oステージングデバイスが書込み要求を受け取り、これに肯定応答すると、ハイパーバイザは直ちに肯定応答を要求元のVMに提供する。その後、ハイパーバイザは、本明細書でデステージングと呼ばれることにおいて、I/Oステージングデバイスから書込みデータを読み取り、その書込みデータをストレージデバイスに送り、ストレージデバイスに記憶する。
一実施形態による、I/O管理技法をサポートするようにI/Oステージングデバイスで構成された仮想化コンピュータシステムのブロック図。 VMからの書込み要求に応答して、データをI/Oステージングデバイスに書き込むために、図1の仮想化コンピュータシステム内のハイパーバイザによって実行される方法工程の流れ図。 VMからの読取り要求に応答して、I/Oステージングデバイスまたはバックアップ用ストレージデバイスのいずれかからデータを読み取るために、図1の仮想化コンピュータシステム内のハイパーバイザによって実行される方法工程の流れ図。 I/Oステージングデバイス内のスペースを解放するためにI/Oステージングデバイスに書き込まれたデータをデステージする(de-staging)工程を示す概略図。 データをI/Oステージングデバイスにステージしたハイパーバイザが故障した場合にI/Oステージングデバイスに書き込まれたデータをデステージする工程を示す概略図。
図1は、一実施形態による、I/O管理技法をサポートするようにI/Oステージングデバイスで構成された仮想化コンピュータシステムのブロック図である。図1の仮想化コンピュータシステムは、ホストコンピュータの第1および第2のクラスタ11、12を含む。第1のクラスタ11は、第1のクラスタ11で動作する1つまたは複数のVM(例えば、VM120)と、VMの実行をサポートするためのハイパーバイザ(例えば、ハイパーバイザ110)とを各々が有する、複数のホストコンピュータ(そのうちの1つは100と標示されている)を含む。第1のクラスタ11のホストコンピュータ用の永続ストレージは、1つまたは複数のデータストアによって提供され、これらのデータストアは、ストレージアレイ141、142に、例えば、ストレージエリアネットワークデバイス内の論理ユニット(LUN)として設けられる。第2のクラスタ12も、複数のホストコンピュータを含み、第1のクラスタ11と同様に構成することができ、第2のクラスタ12のホストコンピュータ用の永続ストレージは、1つまたは複数のデータストアによって提供され、これらのデータストアは、第1のクラスタ11と同じストレージアレイに設けられ得る。I/Oステージングデバイス130は、この実施形態では、第1のクラスタ11のホストコンピュータ100および第2のクラスタ12のホストコンピュータによって共有されるソリッドステートドライブ(SSD)アレイとして示されている。クラスタの数は1つのみ、または2つ以上であってもよく、データストアは、I/Oステージングデバイス130よりも容量当たりのコストが低い1つまたは複数のストレージアレイ(典型的には、回転ディスクベースのストレージアレイ)に設けられ得ることを認識されたい。
従来の仮想化コンピュータシステムでは、VMが、ハイパーバイザによって作成される、仮想ディスク等の仮想デバイスからのI/O動作を要求する。今度は、ハイパーバイザが、I/O要求のフローを、下位物理ストレージデバイスに向けて送る。ハイパーバイザは、ハイパーバイザが肯定応答をVMに提供することができるようになるまでは、下位物理ストレージデバイスからの書込みの肯定応答を待たなければならない。この肯定応答をVMにより速く届けることができる場合、VMのオペレーティングシステムおよびアプリケーションが動作する際の遅延はより低くなる。
1つまたは複数の実施形態による仮想化コンピュータシステムでは、VM(例えば、VM120)によって要求されたI/O動作に応答して、ハイパーバイザ(例えば、ハイパーバイザ110)、特にハイパーバイザのステージングモジュール(例えば、ハイパーバイザ110のステージングモジュール111)は、I/O要求のフローを最初にI/Oステージングデバイス130に向けて送り、I/Oステージングデバイス130は、一実施形態では、ストレージアレイ141、142に比べて高いI/O性能およびI/Oの低い遅延配信を有するSSDアレイである。SSDアレイはソリッドステート媒体に基づいているので、回転ディスク媒体に関連するシークタイムペナルティを回避し、強力なランダム書込み性能を提供する。結果として、IOPS(1秒当たりのI/O動作)当たりのコストから見ると、SSDアレイは回転ディスクベースのストレージアレイよりも安価である。しかし、SSDアレイは、容量ベース(ギガバイトの容量当たりの価格)でははるかにより高価であるので、まだ回転ディスクベースのストレージアレイに取って代わっていない。したがって、本明細書に開示される実施形態では、SSDアレイはI/Oステージングデバイスとして用いられる。
書込みI/O要求の場合、I/Oステージングデバイス130が書込み要求を受け取り、この書込み要求に肯定応答すると、ハイパーバイザは直ちに肯定応答を要求元の仮想マシンに提供する。その後、ハイパーバイザのデステージングモジュール(例えば、ハイパーバイザ110のデステージングモジュール112)によって実行される最適化されたデステージングアルゴリズムに基づいて、ハイパーバイザはI/Oステージングデバイス130からのデータを要求し、そのデータを書込みI/O要求で対象とされているデータストアに送る。ハイパーバイザは、書込みI/O要求を行うVMから出たデータと同じ順序でデータが確実にデータストアに書き込まれるように書込み順序を維持する方法で、データをデータストアにデステージすることを認識されたい。例えば、データは先入れ先出し(FIFO)方法に従ってデステージされてもよい。
ストレージデバイスへの同期書込みを非同期の「レイジー(lazy)なデステージ」に変換するこの能力は、ストレージデバイスの性能要件を根本的に変え、そのようなデバイスに対するI/O要求のフローの非持続性(volatility)を激的に下げる。I/Oステージングデバイス130は、すべてのバーストI/Oを処理することが可能であり、バーストI/Oに関連するIOPSの高い標準偏差に対応させるために、汎用ストレージデバイスに対して高価な修正を行う必要性がなくなる。また、本明細書に記載される方法でI/Oステージングを提供することで、コストの問題を解決する。上述したように、特製品SSDアレイのギガバイト当たりのコストは高い。長期ストレージデバイスの代わりにSSDアレイをI/Oステージングデバイスとして使用することによって、最小限の容量を購入することができ、程よいサイズのSSDアレイにより長期ストレージデバイスとして用いられるレガシーなストレージデバイスのI/O性能を促進することが可能となる。要するに、ハイパーバイザのI/Oステージング機能は、3つの構成要素、すなわち、(1)レガシーなストレージデバイス、(2)I/Oステージングデバイス、および(3)ハイパーバイザを含む、メタストレージシステムを作り出す。一緒に動作するこれらの構成要素は、ランダムなバースト書込みI/Oを処理する改善された能力を備えた新しい高性能ストレージシステムを作り出す。
ホストコンピュータ上でハイパーバイザに提供されるSSDリソース(本明細書において「ローカルSSD」と呼ばれる)でのキャッシングは、本明細書に記載される機能的な目標を達成することができないことを認識されたい。この理由は、ハイパーバイザ用のホストコンピュータが複数の単一障害点を有し、したがって、ローカルSSDにキャッシュされたデータをストレージデバイスにデステージするのにハイパーバイザを信頼することができないからである。このため、ローカルSSDでのキャッシングは、ハイパーバイザが肯定応答を要求元の仮想マシンに提供することができるようになるまでは、書込みがローカルSSDとストレージデバイスの両方で肯定応答されることを要求する「ライトスルーモード」として知られているもので実行される必要がある。ストレージデバイスは、依然として、バーストI/Oの完全な非持続性に対処しなければならないので、「ライトスルー」キャッシングは本明細書に記載されるI/Oステージングの利点を提供することができない。
図2は、VMからの書込み要求に応答して、データをI/Oステージングデバイス130に書き込むために、図1の仮想化コンピュータシステム内のハイパーバイザによって実行される方法工程の流れ図である。実質上、I/Oステージングデバイス130は、「ライトバックモード」でストレージデバイスのためのキャッシングを実行している。「ライトバック」キャッシングは、適切なレジリエンシ属性(resiliency attributes)を備えた外部SSDアレイを用いて、本明細書に記載される実施形態で実現される。一実施形態では、内部フェイルオーバ機構を有する、イーエムシーコーポレーション社(EMC Corporation)から入手可能なXtremIOフラッシュアレイが、I/Oステージングデバイス130として用いられる。他の考えられるものとしては、ウィップテール社(Whiptail)およびヴァイオリンメモリ社(Violin Memory)が挙げられる。このようなI/Oステージングデバイスを使用する結果として、VMはI/O遅延の著しい改善を実現し、ストレージデバイスへのデータのフローレートは最小のフローレートおよび最小の非持続性に制御され、このことは、より安価なストレージデバイスを配備して、永続ストレージサポートをVMに提供することができるということを意味する。
図2に示される方法は、ハイパーバイザがVMから書込みI/O要求を受け取る工程210で始まる。工程212で、ハイパーバイザは書込みI/OをI/Oステージングデバイス130に出す。工程214で判定された通り、ハイパーバイザがI/Oステージングデバイス130から書込み肯定応答を受け取った場合、工程216で、ハイパーバイザは書込み肯定応答をVMに転送する。ハイパーバイザがI/Oステージングデバイス130から書込み肯定応答を所定の時間内に受け取らなかった場合、工程217で、ハイパーバイザはエラーメッセージをVMに返す。
図3は、VMからの読取り要求に応答して、I/Oステージングデバイス130またはバックアップ用ストレージデバイスのいずれかからデータを読み取るために、図1の仮想化コンピュータシステム内のハイパーバイザによって実行される方法工程の流れ図である。一般に、読取りI/O要求は、以前に書き込まれた任意のデータブロックのI/Oステージングデバイスに向けて送られる。これらのデータブロックは時にはI/Oステージングデバイス130からエビクトされている(evicted)ことがあるが、そうでない場合はI/Oステージングデバイス130に存在し得る。I/Oステージングデバイス130に存在するデータブロックを、バックアップ用ストレージデバイスからデータを取り出すよりもはるかに低い遅延で取り出すことができる。
図3に示される方法は、ハイパーバイザがVMから読取りI/O要求を受け取る工程310で始まる。工程312で、ハイパーバイザは、当技術分野で知られているいくつかの考えられるキャッシュ検索方法のいずれかを使用してI/Oステージングデバイス130を調べて、要求された読取りデータがI/Oステージングデバイス130に存在するかどうかを判定する。要求された読取りデータが存在しない場合、工程313で、読取りI/Oがバックアップ用ストレージデバイスに出される。要求された読取りデータがI/Oステージングデバイス130に存在する場合、工程314で、読取りI/OがI/Oステージングデバイス130に出される。工程313および314の後で実行される工程316で、ハイパーバイザは要求された読取りデータの受取りを待つ。工程316で判定された通り、ハイパーバイザが要求された読取りデータをバックアップ用ストレージデバイスまたはI/Oステージングデバイス130のいずれかから受け取った場合、工程318で、ハイパーバイザは読取りデータをVMに転送する。ハイパーバイザが要求された読取りデータを所定の時間内に受け取らなかった場合、工程319で、ハイパーバイザはエラーメッセージをVMに返す。
ハイパーバイザは、I/Oステージングデバイス130が決してスペースを使い切らないようにするために、デステージング工程を行う。同様に重要なことは、I/Oステージングデバイス130からバックアップ用ストレージデバイスに設けられたデータストアの各々へのデータのフローレートが必ず、可能な限り最も低いレートおよびデータのフローレートにおける最も小さい非持続性で始まるようにすることである。結果として、バックアップ用ストレージデバイスの性能要件を下げて、より低いコストおよびより古い世代のストレージアレイを使用することを可能にすることができる。
クラスタ内の各々のハイパーバイザによって行われるデステージングの目的は、I/Oステージングデバイス130が決してスペースを使い切らないようにしながら、I/Oステージングデバイス130からハイパーバイザのためのバックアップ用ストレージデバイスに設けられた1つまたは複数のデータストアへのデータのフローレートを最小限に抑えることである。理想的なデステージデータレートを実現するために、所与のデータストアにデータを書き込む各々のハイパーバイザは、同じデータストアに書込み中である、同じクラスタ内の他のハイパーバイザのデステージデータレートに加算されたときに、共通の平均データレートにならなければならないデータレートで、データストアに書き込むことを試みなければならない。そのようなデータレートは、同じクラスタ内のハイパーバイザ間で調整することによって実現される。
一実施形態では、各々のハイパーバイザは、一定の分数にわたる1分当たりの書込みレートの移動平均に基づいて、データストア毎のデステージデータレートを確立することができる。例えば、15分間にわたるMB/分平均が20MBに等しい場合、過度に単純化した手法では、ハイパーバイザが20MB/分のレートでデータをデータストアにデステージすることになる。これは、時間とともに、I/Oステージングデバイス130でインバウンドデータをステージするのに必要なスペースの量のいかなる著しい増加も妨げるはずである。このようにして、データストア毎に、各々のハイパーバイザに対して個別に、適切なデステージレートを計算することができる。
データストアから非持続性をできる限り軽減するという目的を達成するために、クラスタ全体でのハイパーバイザ全体のデステージレートは、標準偏差が低い共通の平均にできるだけ近く維持される。これは、各々のハイパーバイザが、単なる共通のハイパーバイザ平均よりもデータストア毎の安定したクラスタレベル平均を促進するレートでデータを書き込む場合に、最も良く実現することができる。これを実現する1つの方法は、クラスタ上の単一のホストコンピュータが調整機能を実行することである。クラスタ内の無作為のホストコンピュータを、調整ホストコンピュータとして選ぶことができる。クラスタ内の各々のホストコンピュータは、上記に記載したような個々の移動平均データレートを調整ホストコンピュータに伝える。調整ホストコンピュータは、個々のホストコンピュータの移動平均の合計をクラスタ内のホストコンピュータの数で割った、クラスタの移動平均を追跡する。結果として得られたデータレートは平均の平均であり、個々のハイパーバイザに存在し得る変動を回避し、クラスタ内の各々のハイパーバイザに対する目標デステージレートとして使用される。
各々のハイパーバイザが、各々のデータストアに共通の目標レートでデステージすると、ステージされたデータは、所与のハイパーバイザに対して完全にデステージされるようになり得る。これが生じるとき、影響を受けたハイパーバイザがこのことを調整ホストコンピュータに伝え返すことが重要である。所与のハイパーバイザが所与のデータストアにデステージするデータをもう有していないことを通知すると、調整ホストコンピュータは、データをデステージすることが可能なクラスタ内の残りのホストコンピュータに対する目標デステージレートを再計算する。
例えば、データストアXに対する10ノードクラスタの目標デステージレートが1分当たり200MBである場合、各々のハイパーバイザは1分当たり20MBの個別のデステージレートを有する。10台のホストコンピュータのうちの1つがデステージすべきデータを使い切った場合、調整ホストコンピュータは単に、データをデステージすることが可能な残りの9台のホストコンピュータに、その有効目標デステージレートを200/9すなわち1分当たり22MBに上げるように通知する。他の3台のホストコンピュータがデステージすべきデータを使い切った場合、残りのホストコンピュータのレートは200/6すなわち1分当たり33MBまで上がる。他のホストコンピュータが定義された最小限のデステージすべきデータを有すると、これらのホストコンピュータは調整ホストコンピュータに通知し、デステージグループに再び入ることで、ホストコンピュータ毎の有効目標レートを下げる。このようにして、調整ホストコンピュータは、各々のデータストアに対するデータの総計フローレートが経時的にほぼ一定のままであり、個々のハイパーバイザのデータの可変フローレートがマスクされることを保証する。
図4は、I/Oステージングデバイス内のスペースを解放するためにI/Oステージングデバイスに書き込まれたデータをデステージする工程を示す概略図である。調整ホストコンピュータ101は、ホストコンピュータ100−1から100−Nのうちのいずれか1つであり得る。矢印401、402、403は、ホストコンピュータが各々、一定の分数にわたる1分当たりの書込みレートのその移動平均を調整ホストコンピュータ101に伝えることを表す。矢印411、412、413は、調整ホストコンピュータ101が、ホストコンピュータによって調整ホストコンピュータ101に伝えられた移動平均の平均をホストコンピュータの各々に伝えることを表す。矢印421、422、423は、I/Oステージングデバイス130で以前にステージされたデータが、ホストコンピュータによってI/Oステージングデバイス130の各々の領域131、132、133から読み取られることを表し、矢印431、432、433は、ホストコンピュータによって読み取られた、以前にステージされたデータの書込みを表す。以前にステージされたデータの書込みは、調整ホストコンピュータ101によってホストコンピュータに伝えられた目標デステージレートで、ホストコンピュータの各々によって行われる。所与のホストコンピュータが所与のデータストアに対するそのステージされたデータを使い果たした場合、このことは調整ホストコンピュータ101に伝えられ、調整ホストコンピュータ101は、クラスタ内に残っている、所与のデータストアに対するデステージの準備ができたデータを引き続き有しているホストコンピュータの数に基づいて、所与のデータストアに対する目標レートを再計算する。
ハイパーバイザが故障した場合、別のホストコンピュータのハイパーバイザが故障したハイパーバイザからデステージングを引き継ぐことができるように、故障したハイパーバイザのホストコンピュータからのステージされたデータを、クラスタ内のすべての残りのホストコンピュータに見えるようにしなければならない。ステージされたデータの可視性は、ヴイエムウェア社(VMware)のVMFS(Virtual Machine File System:仮想マシンファイルシステム)などの、クラスタにまたがる共有ファイルシステムを用いることによって実現される。加えて、ハイパーバイザが故障したとき、故障したハイパーバイザのホストコンピュータで動作するVMは別のホストコンピュータに移動され、故障したハイパーバイザからデステージングを引き継ぐのは、この新しいホストコンピュータのハイパーバイザである。ハイパーバイザの故障は、その内容全体を本願明細書に援用する2008年1月21日に出願された「High Availability Virtual Machine Cluster」という表題の米国特許出願第12/017,255号に記載された技法を含む、任意の数の方法で検出され得る。
図5は、データをI/Oステージングデバイスにステージしたハイパーバイザが故障した場合にI/Oステージングデバイスに書き込まれたデータをデステージする工程を示す概略図である。図5に与えられた例では、ホストコンピュータ100−2が故障したものとして示されており、ホストコンピュータ100−2で動作するVMは、矢印510によって示されるように、ホストコンピュータ100−1に移動される。加えて、ホストコンピュータ100−1のハイパーバイザは、矢印520によって示されるように、故障したホストコンピュータのハイパーバイザによってI/Oステージングデバイス130の領域132でステージされたデータを読み取る。次いで、矢印530によって示されるように、ホストコンピュータ100−1のハイパーバイザは、調整ホストコンピュータ101によって伝えられた目標デステージレートで、I/Oステージングデバイス130の領域132でステージされたデータを書き込む。
図5は、単一のVMがホストコンピュータの各々で動作している、簡略化された例を提供している。より一般的には、1つまたは複数のVMがホストコンピュータの各々で動作している場合がある。したがって、VMに対するステージされたデータは、VM毎に追跡される。一実施形態では、各々のVMに対するステージされたデータは、VMFSなどの共有ファイル化されたシステム上のそのVMに関連する1つまたは複数のキャッシュファイルに記憶され、その結果として、故障したホストコンピュータで動作するVMを、VM毎にI/Oステージングデバイス130にアクセスすることができるライブのホストコンピュータに移動することができる。次いで、各々のそのようなライブのホストコンピュータは、移動の結果としてそのホストコンピュータが実行しているVMに関連するキャッシュファイルからデータをデステージする責務を引き継ぐ。
さらなる実施形態では、各々のVMに対するステージされたデータは、VMFSなどの共有ファイル化されたシステム上のそのVMに関連する1つまたは複数のキャッシュファイルに記憶され、その結果として、キャッシュファイルが設定されたサイズに達するとすぐに、各々のそのようなキャッシュファイルにおけるデータのデステージングを任意のホストコンピュータのハイパーバイザによって行うことができる。例えば、VMのキャッシュファイルが設定されたサイズに達すると、そのVMに対して新しいキャッシュファイルが開始され、I/Oステージングデバイス130にアクセスすることができるホストコンピュータのクラスタ内の無作為のホストコンピュータが選択されて、より古いキャッシュファイルをデステージする。より古いキャッシュファイルのデステージが完了すると、そのキャッシュファイルは削除される。次のキャッシュファイルの準備ができる(すなわち、設定されたサイズに達する)と、新しい無作為のホストコンピュータが選択されて、そのキャッシュファイル内のデータをデステージする。デステージングを実行するためのホストコンピュータの選択は、ヴイエムウェア社(VMware)のDRS(Distributed Resource Scheduler)などの負荷分散アルゴリズムに従って行われ得る。書込み順序が維持されるように、任意の所与のVMに対して、VMに関連する1つだけのキャッシュファイルが一度にデステージすることが許可されるようにすべきであることを認識されたい。デステージング中にホストコンピュータが故障した場合、新しいホストコンピュータが選択されて、VM毎にデステージングを再開する。
任意のデステージングとは別に、データがI/Oステージングデバイス130からエビクトされることを認識されたい。いくつかの考えられるエビクションポリシーのうちの1つに基づいて、データはI/Oステージングデバイス130からエビクトされる。そのようなポリシーの例としては、LRU(Least Recently Used)またはLFU(Least Frequently Used)またはこれら2つの何らかの組合せが挙げられる。加えて、様々なVMからのステージされたデータは異なる優先順位を有することがあり、その結果として、いくつかのVMからのデータは、他のVMのデータに比べて、I/Oステージングデバイス130において延長された常駐期間(residency)を有することがある。
諸実施形態では、任意のステージングデバイスを任意のバックアップ用ストレージデバイスとともに使用することができるように、ハイパーバイザはアービトレーション機能を提供する。もちろん、本明細書に記載される利益を得るために、ステージングデバイスは、バックアップ用ストレージデバイスと比べてより良いI/O性能を提供しなければならない。アービトレータとして、ハイパーバイザは、上記に記載されたように、データストア毎に最適なデステージングフロー制御システムを課すことができ、このことは、バックアップ用データストア上のバーストI/Oの低減および最終的にはバーストI/Oを処理することができるストレージシステムの導入コストの低減につながる。加えて、アービトレータとしてのハイパーバイザの立場を使用して、書込みのキューイングとキャッシュエビクションの両方について、VM毎にI/O要求の優先順位付けを課すことができる。
本明細書に記載される様々な実施形態は、コンピュータシステムに記憶されたデータを伴う、コンピュータによって実施される様々な動作を用いることができる。例えば、これらの動作は、通常、必ずというわけではないが、物理的な量の物理的な操作を必要とすることがあり、これらの量は電気信号または磁気信号の形を取ることができ、この場合、これらの量またはそれを表現したものを記憶、転送、結合、比較、またはそれ以外の方法で操作することができる。さらに、そのような操作は、生成する(producing)、識別する(identifying)、判定する(determining)、または比較する(comparing)などの用語で呼ばれることが多い。本発明の1つまたは複数の実施形態の一部を形成する、本明細書に記載される任意の動作は、有益なマシン動作であってもよい。加えて、本発明の1つまたは複数の実施形態は、これらの動作を実行するためのデバイスまたは装置にも関する。この装置を特定の必要な目的のために特別に構成することができ、または、この装置をコンピュータに記憶されたコンピュータプログラムによって選択的に起動または構成される汎用コンピュータとすることができる。特に、様々な汎用マシンを、本明細書における教示に従って記述されたコンピュータプログラムとともに使用することができ、または、必要な動作を実行するためのより特殊な装置を構成することがより好都合であり得る。
本明細書に記載される様々な実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能なコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成とともに実施され得る。
本発明の1つまたは複数の実施形態は、1つまたは複数のコンピュータプログラムとして、あるいは1つまたは複数のコンピュータ可読媒体に組み込まれた1つまたは複数のコンピュータプログラムモジュールとして、実装され得る。コンピュータ可読媒体という用語は、後でコンピュータシステムに入力することができるデータを記憶することができる、任意のデータストレージデバイスを指す。コンピュータ可読媒体は、コンピュータによって読み取られることを可能にする方法でコンピュータプログラムを組み込むための、任意の既存のまたは後に開発される技術に基づき得る。コンピュータ可読媒体の例としては、ハードドライブ、ネットワークアタッチトストレージ(Network Attached storage:NAS)、読取り専用メモリ、ランダムアクセスメモリ(例えば、フラッシュメモリデバイス)、CD(コンパクトディスク)、CD−ROM、CD−R、またはCD−RW、DVD(デジタル多用途ディスク)、磁気テープ、ならびに他の光学および非光学データストレージデバイスが挙げられる。また、コンピュータ可読コードが分散的に記憶され、実行されるように、コンピュータ可読媒体をネットワーク結合コンピュータシステムに分散することができる。
理解が明瞭になるように、本発明の1つまたは複数の実施形態を多少詳しく説明してきたが、ある一定の変更および修正を特許請求の範囲の範囲内で行うことができることは明らかであろう。したがって、記載された実施形態は限定的なものではなく例示的なものとみなすべきであり、特許請求の範囲の範囲は本明細書において与えられた詳細に限定されるものではないが、特許請求の範囲の範囲および均等物内で修正され得る。特許請求の範囲では、要素および/または工程は、特許請求の範囲で明示的に記載されない限り、動作の任意の特定の順序を暗に示すものではない。
加えて、記載された仮想化方法では、仮想マシンが特定のハードウェアシステムと整合性があるインターフェースを提示すると一般に想定しているが、当業者であれば、記載された方法を、任意の特定のハードウェアシステムに直接的に対応しない仮想化と併せて使用することができることを認識されよう。ホスト実施形態、非ホスト実施形態として、またはこれら2つの実施形態間の区別をあいまいにする傾向がある実施形態として実装される、様々な実施形態による仮想化システムがすべて想到される。さらに、様々な仮想化動作を全体的にまたは部分的にハードウェアに実装することができる。例えば、ハードウェア実装は、ストレージアクセス要求の修正にルックアップテーブルを用いて、非ディスクデータを安全にすることができる。
仮想化の程度にかかわらず、多くの改変、修正、追加、および改善が可能である。したがって、仮想化ソフトウェアは、仮想化機能を実行するホスト、コンソール、またはゲストオペレーティングシステムの構成要素を含むことができる。単一のインスタンスとして本明細書に記載される構成要素、動作または構造に、複数のインスタンスを提供することができる。最後に、様々な構成要素、動作およびデータストア間の境界はどちらかと言えば任意のものであり、特定の動作は特定の例示的な構成の文脈において示されている。機能の他の割当てが想到され、これは本発明の範囲内に入り得るものである。一般に、例示的な構成において別個の構成要素として提示される構造および機能は、組み合わされた構造または構成要素として実施され得る。同様に、単一の構成要素として提示される構造および機能は、別個の構成要素として実施され得る。これらおよび他の変形、修正、追加、および改良は、添付の特許請求の範囲の範囲内に入り得るものである。
100…ホストコンピュータ、110…ハイパーバイザ、120…仮想マシン、130…ステージングデバイス、141…ストレージデバイス、142…ストレージデバイス。

Claims (20)

  1. 複数のホストコンピュータを有するコンピュータシステムであって、該複数のホストコンピュータの各々が、該ホストコンピュータで動作する1つまたは複数の仮想マシン(VM)と、VMをサポートするシステムソフトウェアとを有する、コンピュータシステムにおいて、
    該複数のホストコンピュータの各々に接続された第1の共有ストレージデバイスと、
    該第1の共有ストレージデバイスよりも大きい容量および高い入力/出力遅延を有する第2の共有ストレージデバイスとを備え、
    該システムソフトウェアが、該第2の共有ストレージデバイスに書き込まれるデータを、該第1の共有ストレージデバイスにライトバックモードでキャッシュするように構成される、コンピュータシステム。
  2. 前記第1の共有ストレージデバイスにキャッシュされたデータが、データが前記第1の共有ストレージデバイスにキャッシュされた場合に対し、前記システムソフトウェアによって前記第2の共有ストレージデバイスに非同期的にコピーされる、請求項1に記載のコンピュータシステム。
  3. VMをサポートするシステムソフトウェアが、書込み要求を前記第1の共有ストレージデバイスに出し、前記第1の共有ストレージデバイスから書込み肯定応答を受け取ると、該書込み肯定応答を該VMに転送することによって、該VMの書込み入力/出力動作を処理するように構成される、請求項2に記載のコンピュータシステム。
  4. VMをサポートするシステムソフトウェアが、読取りデータが前記第1の共有ストレージデバイスにキャッシュされているかどうかに基づいて、読取り要求を前記第1の共有ストレージデバイスおよび前記第2の共有ストレージデバイスのうちの一方に出すことによって、該VMの読取り入力/出力動作を処理するように構成される、請求項2に記載のコンピュータシステム。
  5. 前記複数のホストコンピュータの各々における前記システムソフトウェアが、前記第1の共有ストレージデバイスにキャッシュされたデータを、前記システムソフトウェアがデータを前記第1の共有ストレージデバイスにキャッシュしたレートに基づく第2のレートに実質的に一致した第1のレートで、前記第2の共有ストレージデバイスにコピーするように構成される、請求項2に記載のコンピュータシステム。
  6. 前記第2のレートが、前記システムソフトウェアがデータを前記第1の共有ストレージデバイスにキャッシュした前記レートの移動平均である、請求項5に記載のコンピュータシステム。
  7. 前記第1の共有ストレージデバイスがソリッドステートドライブアレイであり、前記第2の共有ストレージデバイスが回転ディスクベースのストレージアレイである、請求項1に記載のコンピュータシステム。
  8. 第1のホストコンピュータおよび第2のホストコンピュータを含む複数のホストコンピュータを有するコンピュータシステムであって、該複数のホストコンピュータの各々が、該ホストコンピュータで動作する1つまたは複数の仮想マシン(VM)と、VMをサポートするシステムソフトウェアとを有する、コンピュータシステムにおいて、
    該複数のホストコンピュータの各々に接続された第1の共有ストレージデバイスと、
    該第1の共有ストレージデバイスよりも大きい容量および高い入力/出力遅延を有し、該ホストコンピュータで動作する該VM用のデータストアで構成される第2の共有ストレージデバイスとを備え、
    各々のホストコンピュータにおける該システムソフトウェアが、該データストアに書き込まれるデータを該第1の共有ストレージデバイスにキャッシュし、該第1の共有ストレージデバイスにキャッシュされた該データを、該システムソフトウェアが該データを該第1の共有ストレージデバイスにキャッシュしたレートに基づく第2のレートに実質的に一致した第1のレートで、該第2の共有ストレージデバイスにコピーするように構成される、コンピュータシステム。
  9. 前記第1のホストコンピュータの前記システムソフトウェアが、すべての前記ホストコンピュータの前記システムソフトウェアによって前記第1のホストコンピュータの前記システムソフトウェアに報告されたレートの平均に基づいて、すべての前記ホストコンピュータに対する前記第2のレートを計算するように構成される、請求項8に記載のコンピュータシステム。
  10. 前記システムソフトウェアによって報告された各々のレートが、該システムソフトウェアがデータストアに書き込まれるデータを前記第1の共有ストレージデバイスにキャッシュしたレートの移動平均である、請求項9に記載のコンピュータシステム。
  11. 各々のホストコンピュータにおける前記システムソフトウェアが、別のシステムソフトウェアが故障した場合に、該別のシステムソフトウェアによって前記第1の共有ストレージデバイスにキャッシュされたデータを前記第2の共有ストレージデバイスにコピーするようにさらに構成される、請求項8に記載のコンピュータシステム。
  12. 前記第1の共有ストレージデバイスにキャッシュされたデータが、最も長く使用されていないか、または最も使用された頻度が少ないポリシーに従ってエビクトされる、請求項8に記載のコンピュータシステム。
  13. データが優先順位を用いて前記第1の共有ストレージデバイスにキャッシュされ、該優先順位に従って前記第1の共有ストレージデバイスからエビクトされる、請求項8に記載のコンピュータシステム。
  14. 第1のVMからのデータが、該第1のVMに比べて低い優先順位が与えられている第2のVMからのデータよりも高い優先順位を用いてキャッシュされる、請求項13に記載のコンピュータシステム。
  15. 仮想マシン(VM)から入力/出力動作(IO)の書込みデータをキャッシュする方法であって、該方法は、複数のホストコンピュータを有するコンピュータシステムにおいて使用するためのものであり、該複数のホストコンピュータの各々が、該ホストコンピュータで動作する1つまたは複数の仮想マシン(VM)と、VMをサポートするシステムソフトウェアとを有する、方法において、
    該書込みデータを含むVMから書込みIOを受け取ると、該書込みデータを書き込む要求を第1のストレージデバイスに出すこと、
    該第1のストレージデバイスが該書込みデータの書込みに成功したという肯定応答を該第1のストレージデバイスから受け取ると、書込み肯定応答を該VMに転送すること、
    該転送の後に、書込みデータの読取り要求を該第1のストレージデバイスに出し、次いで該書込みデータを書き込む書込み要求を第2のストレージデバイスに出すことを備え、
    該第1および第2のストレージデバイスが、該ホストコンピュータによって共有され、該第2のストレージデバイスが、該第1のストレージデバイスよりも大きい容量および高い入力/出力遅延を有する、方法。
  16. 前記第1のストレージデバイスがソリッドステートドライブアレイであり、前記第2のストレージデバイスが回転ディスクベースのストレージアレイである、請求項15に記載の方法。
  17. 前記第1のストレージデバイスへの成功した書込みのレートを追跡すること、
    追跡されたレートに基づいて、前記第2のストレージデバイスに出される書込み要求を制御することをさらに備える、請求項15に記載の方法。
  18. 前記第2のストレージデバイスに出される前記書込み要求における書込みのレートが、前記追跡されたレートに実質的に一致する、請求項17に記載の方法。
  19. 前記第1のストレージデバイスへの成功した書込みのレートを追跡すること、
    追跡されたレートを調整ホストコンピュータに報告すること、
    すべての前記複数のホストコンピュータによって報告された追跡されたレートに基づく目標レートを受け取ること、
    該目標レートに基づいて、前記第2のストレージデバイスに出される書込み要求を制御することをさらに備える、請求項15に記載の方法。
  20. 故障したシステムソフトウェアによって前記第1のストレージデバイスに書き込まれた書込みデータの読取り要求を出し、次いでそのような書込みデータを書き込む書込み要求を前記第2のストレージデバイスに出すことをさらに備える、請求項15に記載の方法。
JP2013225495A 2012-11-19 2013-10-30 外部キャッシュデバイスでのハイパーバイザのi/oステージング Active JP5951582B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261728207P 2012-11-19 2012-11-19
US61/728,207 2012-11-19
US13/717,584 2012-12-17
US13/717,584 US9081686B2 (en) 2012-11-19 2012-12-17 Coordinated hypervisor staging of I/O data for storage devices on external cache devices

Publications (2)

Publication Number Publication Date
JP2014102823A true JP2014102823A (ja) 2014-06-05
JP5951582B2 JP5951582B2 (ja) 2016-07-13

Family

ID=49382279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013225495A Active JP5951582B2 (ja) 2012-11-19 2013-10-30 外部キャッシュデバイスでのハイパーバイザのi/oステージング

Country Status (5)

Country Link
US (1) US9081686B2 (ja)
EP (1) EP2733618B1 (ja)
JP (1) JP5951582B2 (ja)
CN (1) CN103823786B (ja)
AU (1) AU2013252402B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140164323A1 (en) * 2012-12-10 2014-06-12 Transparent Io, Inc. Synchronous/Asynchronous Storage System
US9069701B2 (en) * 2012-12-11 2015-06-30 International Business Machines Corporation Virtual machine failover
US9250827B2 (en) 2012-12-14 2016-02-02 Vmware, Inc. Storing checkpoint file in high performance storage device for rapid virtual machine suspend and resume
US9448941B1 (en) * 2012-12-31 2016-09-20 Emc Corporation System and method for cache management
JP6119533B2 (ja) * 2013-09-27 2017-04-26 富士通株式会社 ストレージ装置,ステージング制御方法及びステージング制御プログラム
US10977063B2 (en) 2013-12-20 2021-04-13 Vmware, Inc. Elastic compute fabric using virtual machine templates
US9323565B2 (en) 2013-12-20 2016-04-26 Vmware, Inc. Provisioning customized virtual machines without rebooting
US9477507B2 (en) 2013-12-20 2016-10-25 Vmware, Inc. State customization of forked virtual machines
US9294567B2 (en) 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
US20170228173A9 (en) * 2014-05-02 2017-08-10 Cavium, Inc. Systems and methods for enabling local caching for remote storage devices over a network via nvme controller
US9367414B2 (en) * 2014-06-27 2016-06-14 Vmware, Inc. Persisting high availability protection state for virtual machines stored on distributed object-based storage
US9619268B2 (en) 2014-08-23 2017-04-11 Vmware, Inc. Rapid suspend/resume for virtual machines via resource sharing
CN104298474A (zh) * 2014-10-13 2015-01-21 张维加 一种基于服务端与外部缓存系统的外接式计算设备加速方法与实现该方法的设备
US20160219120A1 (en) * 2015-01-23 2016-07-28 Netapp, Inc. Methods for providing a staging area for objects prior to erasure coding and devices thereof
US9798497B1 (en) * 2015-06-08 2017-10-24 Skytap Storage area network emulation
US9838277B2 (en) 2015-06-25 2017-12-05 Keysight Technologies Singapore (Holdings) Pte Ltd Packet copy management for service chain processing within virtual processing systems
US11892981B2 (en) 2015-08-28 2024-02-06 Airwatch Llc On demand file sync
US10678750B2 (en) * 2015-08-28 2020-06-09 AirWatcha, LLC On demand file sync
US10241913B2 (en) * 2016-01-20 2019-03-26 International Business Machines Corporation Operating local caches for a shared storage device
KR101975058B1 (ko) * 2016-02-05 2019-05-03 한국전자통신연구원 데이터 가용성 지원 시스템 및 방법
KR102610846B1 (ko) * 2016-05-13 2023-12-07 한국전자통신연구원 고속 분산 저장 장치 및 방법
US20180129440A1 (en) * 2016-11-09 2018-05-10 Western Digital Technologies, Inc. Self-virtualizing flash memory for solid state drive
CN106610793B (zh) * 2016-11-11 2019-09-17 深信服科技股份有限公司 超融合系统的缓存数据管理方法及装置
KR102474582B1 (ko) 2017-08-28 2022-12-05 삼성전자주식회사 가상화 클러스터 환경의 비바람직한 호스트 서버 상에서 더티 가상 머신의 실행을 방지하는 방법 및 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147218A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
JP2012078940A (ja) * 2010-09-30 2012-04-19 Toshiba Corp 計算機および計算機システム
US20120124294A1 (en) * 2007-12-06 2012-05-17 Fusion-Io, Inc. Apparatus, system, and method for destaging cached data
JP2012123556A (ja) * 2010-12-07 2012-06-28 Hitachi Solutions Ltd 仮想サーバーシステム、及びその制御方法
US20120215970A1 (en) * 2011-02-22 2012-08-23 Serge Shats Storage Management and Acceleration of Storage Media in Clusters

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1725508A (en) 1927-05-21 1929-08-20 Bell-Clifford Sidney Strap support for chair, davenport, and such like arms
EP0392184A3 (en) * 1989-04-12 1992-07-15 International Business Machines Corporation Hierarchical memory organization
US6189080B1 (en) 1996-09-20 2001-02-13 Emc Corporation Minimum read rate throughput in a disk cache system
WO2003007155A1 (fr) * 2001-07-12 2003-01-23 Ip Flex Inc. Dispositif a circuit integre
US20030187898A1 (en) * 2002-03-29 2003-10-02 Fujitsu Limited Parallel processing method of an eigenvalue problem for a shared-memory type scalar parallel computer
US8234457B2 (en) * 2006-06-30 2012-07-31 Seagate Technology Llc Dynamic adaptive flushing of cached data
US8554981B2 (en) 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US8332586B2 (en) * 2009-03-30 2012-12-11 Hitachi, Ltd. Information processing system for measuring the cache effect in a virtual capacity
TWI371686B (en) * 2009-04-02 2012-09-01 Lsi Corp System and method to reduce drive overhead using a mirrored cache volume in a storage array
US8301840B2 (en) * 2009-12-15 2012-10-30 International Business Machines Corporation Assigning cache priorities to virtual/logical processors and partitioning a cache according to such priorities

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147218A (ja) * 1994-11-24 1996-06-07 Fujitsu Ltd キャッシュ制御装置
US20120124294A1 (en) * 2007-12-06 2012-05-17 Fusion-Io, Inc. Apparatus, system, and method for destaging cached data
JP2012078940A (ja) * 2010-09-30 2012-04-19 Toshiba Corp 計算機および計算機システム
JP2012123556A (ja) * 2010-12-07 2012-06-28 Hitachi Solutions Ltd 仮想サーバーシステム、及びその制御方法
US20120215970A1 (en) * 2011-02-22 2012-08-23 Serge Shats Storage Management and Acceleration of Storage Media in Clusters

Also Published As

Publication number Publication date
EP2733618A1 (en) 2014-05-21
CN103823786B (zh) 2017-04-12
CN103823786A (zh) 2014-05-28
JP5951582B2 (ja) 2016-07-13
US20140143504A1 (en) 2014-05-22
US9081686B2 (en) 2015-07-14
AU2013252402B2 (en) 2015-04-02
EP2733618B1 (en) 2016-11-23
AU2013252402A1 (en) 2014-06-05

Similar Documents

Publication Publication Date Title
JP5951582B2 (ja) 外部キャッシュデバイスでのハイパーバイザのi/oステージング
US10042760B2 (en) Scalable cloud storage architecture
JP5943363B2 (ja) キャッシュを有するストレージ・システムにおけるデータのキャッシングを決定するプログラム、システム、および方法
US8904061B1 (en) Managing storage operations in a server cache
US8639876B2 (en) Extent allocation in thinly provisioned storage environment
US9471505B2 (en) Efficient multi-threaded journal space reclamation
US20130318196A1 (en) Storage system and storage control method for using storage area based on secondary storage as cache area
JP2016511474A (ja) 階層化ストレージにおける重複排除及びホストベースQoS
US9535844B1 (en) Prioritization for cache systems
US11151035B2 (en) Cache hit ratios for selected volumes within a storage system
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
US8996789B2 (en) Handling high priority requests in a sequential access storage device having a non-volatile storage cache
US9645926B2 (en) Storage system and method for managing file cache and block cache based on access type
Kim et al. Flash-Conscious Cache Population for Enterprise Database Workloads.
WO2022029563A1 (en) Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set
US11163698B2 (en) Cache hit ratios for selected volumes using synchronous I/O
US11055001B2 (en) Localized data block destaging
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US11169919B2 (en) Cache preference for selected volumes within a storage system
US9442859B1 (en) Method for asynchronous population of data caches used with mass storage devices
CN107515723B (zh) 用于管理存储系统中的存储器的方法和系统
US11176052B2 (en) Variable cache status for selected volumes within a storage system
US20210224199A1 (en) Lru list reorganization for favored and unfavored volumes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160608

R150 Certificate of patent or registration of utility model

Ref document number: 5951582

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350