JP7063756B2 - オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 - Google Patents

オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 Download PDF

Info

Publication number
JP7063756B2
JP7063756B2 JP2018134736A JP2018134736A JP7063756B2 JP 7063756 B2 JP7063756 B2 JP 7063756B2 JP 2018134736 A JP2018134736 A JP 2018134736A JP 2018134736 A JP2018134736 A JP 2018134736A JP 7063756 B2 JP7063756 B2 JP 7063756B2
Authority
JP
Japan
Prior art keywords
virtual machine
data
storage
performance
storage tier
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
JP2018134736A
Other languages
English (en)
Other versions
JP2019021315A5 (ja
JP2019021315A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019021315A publication Critical patent/JP2019021315A/ja
Publication of JP2019021315A5 publication Critical patent/JP2019021315A5/ja
Application granted granted Critical
Publication of JP7063756B2 publication Critical patent/JP7063756B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/061Improving I/O performance
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/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/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
    • 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/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はデータストレージデバイスに係り、さらに詳細には、オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体に関する。
既存のデータストレージセンターは、ハードディスクドライブ及び従来形式のその他のデータストレージに依存している。ハードディスクドライブ及び従来形式のその他のデータストレージは相対的に長いレイテンシを有するため、仮想マシンはしきりにアクセスするデータをローカルストレージにキャッシュする。データキャッシングの使用による相対的な利点は、データアクセス時間の10倍以上の性能向上である。
しかしながら、フラッシュストレージが、普遍して廉価になるにつれ、データストレージとキャッシュ間のアクセス時間差が減少している。斯かるキャッシングのアクセス時間の減少の利点は、データがデータセンターにだけ独占的に貯蔵され、キャッシュされないことを意味する。フラッシュストレージにデータの重複的なコピー(キャッシュ及びデータセンターの全てに)を貯蔵する費用が相当かかるから、データを最も効率的にデータストレージセンターに貯蔵するのが重要である。
なお、ハードディスクドライブのような既存のストレージと違い、フラッシュストレージは他の特殊性を有する。既存のストレージはデバイスの特殊性を考慮しないから、既存の技術を使用したデータストレージのためのティアの選択は最適とは言えない。
満足できるアクセス時間を提供して、他のストレージティアが提供する特殊性を活用するフラッシュストレージを使用し、データをデータストレージセンターに、より最適に貯蔵する方法が必要である。
特許文献1:米国登録特許第8656134B2号公報
特許文献2:米国登録特許第9201751B1号公報
特許文献3:米国登録特許第9639277B2号公報
特許文献4:米国登録特許第9665621B1号公報
特許文献5:米国登録特許第8775868B2号公報
特許文献6:米国登録特許第9535844B1号公報
特許文献7:米国公開特許第20130007254A1号公報
特許文献8:米国公開特許第20170223107A1号公報
特許文献9:米国公開特許第20170235590A1号公報
特許文献10:米国公開特許第20170262204A1号公報
特許文献11:米国公開特許第20140156965A1号公報
特許文献12:米国公開特許第20140359224A1号公報
特許文献13:米国公開特許第20150058540A1号公報
特許文献14:米国公開特許第20160179582A1号公報
特許文献15:中国公開特許第105808150A号公報
特許文献16:韓国登録特許第101652324B1号公報
非特許文献1:ADINETZ et al., ‘‘Performance Evaluation of Scientific Applications on POWERS8’’, PMBS 2014, LNCS 8966, P.24-45, 2015
本発明の目的は、前記方法をコンピュータ上で実行させるためのプログラムを記録した、コンピュータからリード(read)できる記録媒体を提供することにある。本実施例が達成しようとする技術的な課題は上述の技術に限定されずに、以下の実施例から、また他の技術的な課題が類推される。
システムは複数のリソースを提供する複数のストレージデバイスと、前記複数のストレージデバイスは複数のストレージティアから構成されて第1仮想マシンに対する第1データ及び第2仮想マシンに対する第2データを貯蔵し、前記第1仮想マシンから第1入出力コマンド、前記第2マシンから第2入出力コマンド、前記複数のストレージティアにおいて前記第1仮想マシンの性能をモデリングする第1性能データ、及び前記複数のストレージティアにおいて前記第2仮想マシンの性能をモデリングする第2性能データを受信する受信機と、前記第1入出力コマンドに対する第1応答を前記第1仮想マシンへ送信して前記第2入出力コマンドに対する応答を前記第2仮想マシンへ送信するための送信機と、前記第1仮想マシンに対する前記第1データを貯蔵するための第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための第2ストレージティアを選択し、前記第1性能データ及び前記第2性能データに応答して前記第1仮想マシンに対する前記第1データの中の少なくとも一つを第1ストレージティアへ又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへマイグレーションするためのオート-ティアリングコントローラー(auto-tiering controller)と、を具備し前記オートティアリングコントローラーは前記第1仮想マシンに対する前記第1データを貯蔵するための前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための前記第2ストレージティアを選択し、前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、前記オートティアリングコントローラーは前記第1仮想マシンに対する前記第1データの中で少なくとも一つを第1ストレージティアへ又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへ移動させることにより、もたらされる性能の変化及び前記第1仮想マシンに対する前記第1データの中で少なくとも一つを第1ストレージティアへ、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへ移動させるマイグレーション費用を考慮するように動作する。
オートティアリングを遂行するための方法は、複数のストレージティアにおいて第1仮想マシンの性能をモデリングする第1性能データを受信するステップと、前記複数のストレージティアで第2仮想マシンの性能をモデリングする第2性能データを受信するステップと、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージティアの各々に対する複数のリソースの各々と関連させるリソースマトリックスを生成するステップと、前記リソースマトリックスを使用して前記第1仮想マシンに対する第1データを貯蔵するため前記複数のストレージティアの中で第1ストレージティアを選択するステップと、前記リソースマトリックスを使用して前記第2仮想マシンに対する第2データを貯蔵するため前記複数のストレージティアの第2ストレージティアを選択するステップと、
前記第1仮想マシンに対する前記第1データの中で少なくとも一つを第1ストレージティアへ又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへマイグレーションするステップと、を有し、前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記第1仮想マシンに対する前記第1データの中で少なくとも一つを第1ストレージティアへ、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへ移動させることにより、もたらされる性能変化を考慮し、前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記第1仮想マシンに対する前記第1データの中で少なくとも1つを前記第1ストレージティアへ、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへマイグレーションするマイグレーションの費用を考慮する。
本発明の実施例によれば、オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体が提供できる。
本発明の実施例により、仮想マシンをホスティングしてオートティアリングを遂行するように具備されたストレージプールを使用できるネットワ-ク化されたマシンを示す。 図1のサーバーの追加的な細部事項を図示する。 本発明の実施例により、図1のストレージプールとオートティアリングで相互作用する図1の仮想マシンサーバの付加的な細部事項を図示する。 相異なるストレージデバイスにより提供される相異なるリソースを図示する。 1つのストレージから他のストレージへマイグレーションされる図3の仮想マシンのファイルを示す。 相異なる時点でのストレージティアに対する仮想マシンの最適の割り当てを図示する。 図3の仮想マシンに対するレイテンシ注入及び性能データの決定を遂行する図3のI/Oフィルターを図示する。 図3のオートティアリングコントローラーの細部事項を図示する。 図7の性能データを仮想マシン、ストレージティア、及びストレージティアのリソースに相関させるマトリックスへの変換を図示する。 図7の性能データの線形回帰を図示する。 図3のストレージティアに対する図8の専門性情報を図示する。 図3の仮想マシンを図3の他のストレージティアへマイグレーションさせるのに使用されるスコアマトリックス(score matrix)の計算を図示する。 モニタリングエポック(monitoring epoch)とマイグレーションエポックの間の関係を示す。 一実施例により、図7の性能データを生成するため、図7の入力/出力命令にレイテンシを注入するための図3のI/Oフィルターに対する例示的な手順の流れ図を図示する。 一実施例により、ストレージティアを通じた仮想マシンのマイグレーションを管理するための図3のオートティアリングコントローラーに対する例示的な手順の流れ図を図示する。 一実施例により、図9のリソースマトリックスを生成するための図3のオートティアリングコントローラーに対する例示的な手順の流れ図を図示する。
本発明の概念に対する詳細な説明を添付した図面を参照しながら行う。下記の詳細な説明において、本発明の概念を完全に理解できるように数多くの特定の細部事項を開示する。しかしながら、当業者は斯かる特定の細部事項なしに、本発明の概念が実行できることを理解しなければならない。他の例において、公知の方法、手順、構成要素、回路及びネットワークは実施例の態様を不必要で不明瞭にしないため詳細に説明しない。
第1、第2などの用語が本明細書で多様な構成要素を説明するため、使用するが、これらの構成要素はこれらの用語により制限されないと理解される。斯かる用語は、1つの要素を他の要素と区別するためにだけ使用する。例えば、第1モジュールは第2モジュールと示すことができ、同様に第2モジュールは本発明の概念の範囲を逸脱しない範囲において第1モジュールと示すことができる。
本発明の概念の説明に使用された用語は、特定の実施例だけを説明するためのものであり、本発明の概念を制限しようとするものではない。本発明の概念及び添付した請求の範囲の説明に使用するように、単数形態は文脈上、別に明示しない限り複数の形態を含む。本明細書で使用する「及び/又は」という用語は、列挙された関連項目の任意の全ての可能な組み合わせを包含できる。本明細書で使用する「包含する」及び/又は「包含する~」という用語は、明示した特徴、整数、ステップ、動作、構成要素及び/又はエレメントの存在を示すが、一つ以上の他の特徴、整数、ステップ、動作、エレメント、構成要素及び/又はグループの存在又は追加を排除しない。図面の構成要素及び特徴は、必ず一定の比率で描かれるものではない。
SSD(Solid State Drive)価格が下落し続けてSSD容量が増加し続けるにつれ、近い将来全てのフラッシュストレージシステムがエンタープライズデータセンターに採択されるであろう。結果的に、ハードディスクドライブ(HDD)の長所は、次第に希釈されて、マルチレベルセル(MLC)のSSDのような大容量のローエンド(low end)SSDに代替される。従って、費用効率的な設計は、ティアの各々に高速、大容量、リード(read)入/出力(I/O)命令、長い寿命などの固有の特殊機能が潜在するマルチ-ティアSSDを具現できる。
一方、一般的なエンタープライズデータセンターの使用事例は、ハイパーバイザー(Hypervisor)-仮想マシン(Virtual Machine, VM)の構造を使用する。VMのI/Oワークロード(workload)のパターンはそれぞれ異なり、サービスの上位ティアにそれらをアップグレードするときに見られる性能の向上は同じではない。これによって、「オートティアリング(Auto-tiering)」という全体ソリューションが、オールフラッシュマルチ-ティアのデータセンターでVMの割り当て及びマイグレーションを処理して、ストレージリソースを最大限活用して性能を最適化し、マイグレーションオーバーヘッドを減少させる。なお、オートティアリングは、過去及び予測された性能要素を考慮できる。
VMはリナックス(登録商標)(Linux、登録商標)及びウィンドウズ(登録商標)(Windows、登録商標)のようなゲスト運営体制(OS)及び応用プログラムを実行できる。VMは互いに分離される。クラウドサービスの供給業体は、斯かるVMをユーザーに貸し出す。VMはユーザー応用プログラムにより他のワークロード(workload)の特性を有するので、ストレージデバイスの速度に対して他のレベルの感度を有する。
Xen(ゼン)、KVM及びVMwareのようなVMハイパバイザーソフトウェアは、単一サーバー内に多くの仮想マシン(VM)をホスティングできる。VMハイパバイザーソフトウェアは、スケジューリング、リソース管理、システムソフトウェアのAPI(Application Prgramming Interface)、及びハードウェアの仮想化を担当する。本発明の実施例は、VMハイパバイザーレベルに設置されたオートティアリングデーモン(Auto-Tiering Daemon)を包含し、その役割はオートティアリングI/Oフィルター及びオートティアリングコントローラー(Auto-Tiering Controller)と通信することである。
全てのVMサーバーは、非揮発性エクスプレス(NVMe)SSD、3DXPoint NON-Volatile Memory(NVM)SS、及びMLC/トリプルレベルセル(TLC)/クアッドレベルセル(QLC)SSDのような装置を包含できるバックエンドオールフラッシュ(backend all-flash)のマルチ-ティアSSDディスクを共有するため、中央集中式のストレージプールに連結される。各ティアには、速い速度、大容量の貯蔵容量などのそれぞれ異なる専門が有り得る。
オートティアリングは、オートティアリングのI/Oフィルター、オートティアリングデーモン(Daemon)、及びオートティアリングコントローラーの三つの構成要素を包含する。
オートティアリングのフィルタードライバーは管理される全てのVM(即ち、VMDK(Virtual Machine Disk)ファイル)に添付される。オートティアリングのI/Oフィルタードライバーは、I/O関連の統計を収集して全てのVMDKに対し特別なレイテンシテストを実行することもできる。データは、サンプル周期毎に収集され、結果は全てのVMDKの全てのデータを収集するホストシステムのオートティアリングデーモンへ伝送される。
オートティアリングデーモンは、全ての物理的マシンのVMハイパバイザー上で実行される。オートティアリングデーモンは、VMサーバーのワークロード変更(I/Oアクセスパターン変更)を追跡して、オートティアリングI/Oフィルターから注入されたレイテンシテスト結果を収集し、オートティアリングコントローラーへ伝送する。
オートティアリングコントローラーは、専用サーバー又はストレージシステムのエンベデッドシステムで実行される。VMが他のティアへマイグレーションされて対応するマイグレーションオーバーヘッドが発生する場合、オートティアリングコントローラーは予測されたVM性能を基盤にし、マイグレーションをトリガーするように決定できる。
各VMの観点から、特定のVMが1つのティアから他のティアへマイグレーションされる理由は、VMがマイグレーション以後によりよく遂行される(平均より少ないI/Oレイテンシ、高いIOPS(I/O Operation Per Second)、高い処理量(throughtput)、など)からである。しかし、これと共にこれに対応するマイグレーション費用が発生する。これは1つのティアから他のティアへVMをマイグレーションするのに、相対的に費用が多くかかり、無視できない。
グローバル最適化の観点から、リソース制約条件と対応するSLA(Service Level Agreements)に因って、同時に最も選好するティアにマイグレーションする全てのVM要請を充足させるのは難しい。グローバル最適化は、以前のマイグレーションの影響は勿論であり、時間経過によるVMの変更を考慮しなければならない。例えば、現在の最上の割り当てソルーションは、ランタイム中にVM動作が変更されて、その後悪い状況をもたらす。従って、グローバル最適化は、潜在的な利点と不利な点、マイグレーションオーバーヘッド、各ティアのVMに対する過去及び予測された性能、SLA(Service Level Agreements)などを考慮しなければならない。斯かる情報を基盤にして、オートティアリングは、[数1]乃至[数6]を使用してマルチ-ティアオール-フラッシュストレージシステムのための最適のソルーションに到達できる。
(表記)
Figure 0007063756000001
最小化:
Figure 0007063756000002
対象:
Figure 0007063756000003
[数1]は、目的関数を表す。主要な考え方は、全体性能利得からマイグレーション費用を引いた値を最大化することである。つまり、「性能利得-性能ペナルティー」。内部「sum」演算子はvをティア(tτ-1)からティア(tτ)へマイグレーションすると仮定する時、各VMの全てのリソース使用量(IOPS、処理量、及びストレージ大きさなど)の加重値の合計を遂行できる。ここで、マイグレーションは1つのホストサーバーから他のホストサーバーへVMをマイグレーションしない。つまり、ひたすらバックエンド(backend)VMDKファイルが1つのSSDティアから他のSSDティアへマイグレーションされる。従って、CPU、メモリーなどのような非ディスクI/O関連のリソースを考慮する必要がない。外部「sum」演算子は可能な全てのマイグレーション事例を反復する。加重値のパラメーターWv,τは、各VMのSLAを反映できる。
[数2]は、性能利得を予測するため予測モデル関数が利用されることを示す。[数3]は、各マイグレーション前後にストレージ大きさ(即ち、VMDK大きさ)が変更できないようにする。[数4]は、一時的なマイグレーションオーバーヘッドは、マイグレーションするVMの大きさを各ティアにデータをリード及びライトすることにより惹起されるボトルネックで割った値である。詳細には、Pr(Λ,tv,τ-1,τ-1)は使用可能な残余速度を表し、VMはマイグレーション中で停止できるから、斯かるVMにより使用された処理量も使用可能である(即ち、Pr(Λ,tv,τ-1,τ-1)がまた加わる。)。Pw(Λ,tv,τ-1,τ-1)はマイグレーションするライト速度を表す。[数5]は、1つのディスクティアでだけVMがホスティングされるべき必要性を反映する。最後に、[数6]はリソース制約条件を示すが、ここでΓは、使用されうる各リソースタイプの上限(百分率)である。
次のような問題によって、ランタイム中で全てのエポックに対してグローバル最適化を遂行するのは難しい。
1)システムは未来のワークロードパターンに対する情報が殆どないから、ランタイム中の全てのτ時間にグローバル最適化を遂行するのは難しい。
2)グローバル最適化を遂行するとき、各エポックに対する決定は独立的ではない。即ち、既存のサブ-最適化-基盤の動的プログラミングの技法は、各エポックの目標関数値である「性能利得-性能ペナルティー」を最適化することにより、問題を解決するのに使用できないことを意味する。
3)性能予測モデル(マイグレーション無しに他のティアでのVMの性能を予測すること)の複雑性により、最適化問題が容易にNP-ハード(NP-hard)になる。
従って、収容可能な時間に、斯かる問題を解決するためにはいくつかの制約事項が緩和される必要がある。
全ての時間中にグローバル最適化を遂行する代わりに、各エポック(即ち、ランタイム)に対してだけ最適化を試みることができる。
問題は、加重ナップサック問題(weighted knapsack problem)と類似する。さらに、高いIOPS WAP(Write Amplification Factor)関数、大規模のオーバープロビジョニング(over-provisioning)、及び大きいプログラム/削除(P/E)周期などのような各ティアの性能の「専門性」が予め公知されるため、専門性のリソース次元(例えば、ティア1のIOPS及び処理量)に重点を置いたVMの各々の予想性能に対して「点数」を計算でき、性能-専門性の点数の順位により、対応するマイグレーションオーバーヘッドの予測と共にマイグレーション決定を下す。
2つの相異なるエポックがスケジュールされる。つまり、モニタリングエポックは性能を評価するための頻度を表して性能の予測モデルを回帰し、それは任意の願う間隔で設定される。例えば、その間隔は15分であり、そしてマイグレーションエポックは1つのティアから他のティアへのVM移動が遂行されうる頻度を表す。これは、任意の間隔で設定される。つまり、例えば、一日又は一週間。モニタリングエポックとマイグレーションエポックは必ず固定されているものではなく、ランタイム中に適応的に大きさを調整できる関数を使用して決定される。なお、マイグレーションエポックはモニタリングエポックの整数倍でなければならない。斯かるウィンドー(window)の大きさが小さくなる程、ストレージシステムがモニタリング測定されて、VMがマイグレーションされる頻度が高くなる。システムマネージャーは、配置(deployment)の前に敏感度分析を遂行して、正確性とマイグレーション費用の間のトレード-オフ(trade-off)の均衡を合わせる。
マイグレーション無しに、他のティアのVM性能を評価するため、各VMのI/O命令に追加のレイテンシを手動で注入して、オートティアリングI/OフィルターAPI(I/OフィルタリングのためのVMware vSphere API)を呼出して、全体I/Oレイテンシに与える影響を測定することにより、他のティアのVM性能を「エミュレート(emulate)」できる。
他のティアのVM性能の変化は、線形カーブを使用してモデリングされる。平均I/Oレイテンシと注入されたレイテンシとの関係を示すグラフは線形方程式に回帰される。ラインの傾きは、応用プログラムが実行されているうちに、同期式か又は非同期式かによって異なる。同期式アプリケーションと非同期式アプリケーションは、動作方法が異なり、ラインの傾きに反映される。特に、同期応用プログラムがI/O命令を伝送するとき、同期応用プログラムはI/O命令が完了されるまで待機し、通信が進行される間、応用プログラムの進行を遮断し、システムのリソースを遊休の状態に置ける。対照的に、非同期応用プログラムはI/O命令を伝送でき、伝送が完了される前に他の処理を遂行できる。斯かる事実は、非同期応用プログラムがI/O命令のレイテンシにより影響が少なくなる傾向があるが、そのような改善は費用の惹起を意味する。つまり、非同期応用プログラムは応答を送る時点が分からないので、いつでも応答を受信できなければならない。
VM敏感度はティア速度と異なる。同期式応用プログラムが有るVMは、非同式応用プログラムが有るVMより、ティア速度の変化にもっと敏感である。主たる理由は、非同期応用プログラムが一般的にフラッシュ(flush)するI/O命令の頻度が少なく、I/Oタイミングに対する依存度が低いからである。
このような観測により刺激された「TSSCS(Tier Speed Sensitivity Calibration Session)」は、実際マイグレーション無しにVMを上位(又は、下位)速度のティアにマイグレーションすることによって、VMがどのくらい多くの量を得るようになるか(又は不利益を受けるのか)を予測するため使用される。詳細には、TSSCSは次のような特性を有する。つまり、
1)オートティアリングI/Oフィルターで実行されるTSSCSは、各VMに対するI/O命令にレイテンシを注入し、現在ホストのワークロードに影響を与えないように極めて短い時間しか所要されない。
2)TSSCS当たりのレイテンシ当たり多重サンプル
各ティアで各VMの性能に対するエミュレーションの正確度を向上させるには、各ティアの同一の注入されたレイテンシで獲得された結果が平均される。
3)TSSCS当たり多重サレイテンシ
回帰分析を改善するため、いろいろなレイテンシが注入される。なお、注入されたレイテンシは、現在ストレージプールの使用可能なティアにだけ限定される必要はない。代わりに、回帰正確度を高くするため追加的なレイテンシデータポイントが使用される。
4)ランタイム中の多重TSSCS
曲線及び回帰関数をアップデートするためTSSCSが周期的にトリガーされる。
対応する性能を基盤にし、性能利得対ティア速度間の相関関係は、ディスク速度の増加又は減少に対する各VMの敏感度を反映する線形回帰により決定される。曲線が多項式又は非線形関数に回帰されるが、回帰を変更しても、オートティアリングが動作する方式には影響を与えない。現在、瞬間の各VMに対して注入されたレイテンシ曲線が与えられると、各ティアの各VMに対するIOPS、処理量、ストレージ大きさなどが計算される。IOPS、処理量、及びストレージ大きさに重点を置いているが、他のタイプのリソースも考慮される。
表2は、下位セクションで使用された表記法を要約し、表3は3つの他のティアで3つのVMを使用する例に対する予想平均I/Oのレイテンシの結果を表す。
(表記)
Figure 0007063756000004
マイグレーション無しに平均I/Oレイテンシを予測した例。
Figure 0007063756000005
TSSCS(Tier speed sensitivity calibration session)はストレージシステムの各VM及び各ティアに対して反復される。それは注入された各レイテンシに対するサンプルからのI/Oレイテンシの係数変化(即ち、CV)を計算できる。その次に注入された各レイテンシに対するI/Oレイテンシの平均値を計算できる。その次、注入された全てのレイテンシのCV値を平均化して、結果によって、オートティアリングは各VMに対する線形回帰を生成するのに、使用されて注入されたレイテンシに対する信頼度を定義し、これによって線形回帰そのものに対する信頼度を定義できる。CVが低いほどこのVMに対する信頼度が高くなる。CVが1より大きい場合、信頼度は下限(例えば、0.05)に設定され、下限はシステムマネージャーの要求事項により調整される。最後に、TSSCSは対応するm及びbの値を計算するため回帰関数を呼び出す。本発明の実施例により、リターンされたタプル(tuple)で、単に2つのパラメーターを有する線形回帰モデルを使用できるが、システムマネージャーは選択された回帰モデルに基づいてリターンされたタプルにより多くの項目を追加できる。
オートティアリングは、IOPS(秒当たりI/O命令)、処理量(秒当たりメガバイト又はMBPS)及びストレージ大きさ(バイト)のような三つのタイプのリソースを記録する三つの2次元マトリックスを有する。ストレージシステムの他のタイプのリソースに対する追加マトリックスが願い通り追加される。IOPS及び処理量と異なり、ストレージの大きさに対するマトリックスは、各VMが占めるストレージの大きさを測定するため、ハイパバイザーAPIを呼び出して獲得するのが相対的に簡単である。
オートティアリングは回帰されたM及びBの値を基盤にする線形予測を使用してIOPSを予測できる。予想平均のI/Oレイテンシが対応するIOPSを計算し、他のティアの各VMの処理量が計算されると、IOPS及び処理量は次の方程式を使用して計算できる。
Figure 0007063756000006
Figure 0007063756000007
互いに異なるタイプのリソースは、互いに異なる単位を有するから、1つの多次元マトリックスにこれらを組み合わせるのは難しくなる。従って、各リソースは各ティアの使用可能な総リソース容量の百分率に変換される。斯かる正規化の例を表5に示す。
三つのVMがティア1を実行中の場合の正規化された性能マトリックスの例。
Figure 0007063756000008
計算された点数は次の事実を反映しなければならない。
1)ティアとVMの特性
各ティアで実行中の場合、各ティアの特性と各VMのワークロード特性を点数に反映しなければならない。従って、各ティアで各VMの点数は個別的に計算される。
2)SLA加重値
[数1]に示すように、VMはSLA加重値が異なるため、同じではない。
3)予測信頼度
性能マトリックスで計算された係数変化は予測の信頼を反映するため使用される。
4)ヒストリー及びマイグレーション費用
コンボリューションエージングファクターは、ヒストリー点数を点数の計算に包含させるのに使用される。なお、マイグレーション費用を算定し、点数の計算に包含させることもできる。
ユーザーコンフィギュレーション又は基本コンフィギュレーションを基盤に、各ティアで提供されるリソースは予め知られている。オートティアリングは特定のティアに対するリソースの任意の個数に対して最適化を遂行できる。専門性を反映するため、ティア専門性マトリックスが使用される。例示的なティア専門性マトリックスを表6に図示する。表6において、専門性コンフィギュレーションに対する全部又は一部の粒状度(granularity)が使用される。1が有るセルは、現在ティアに該当タイプのリソースに対する専門性が有ることを意味する。セルに1がないと該当タイプのリソースに対して最適化されない。しかしながら、本発明の概念の他の実施例において、このマトリックスの値は必ず0及び1である必要はない。システムマネージャーは専門性を制御するため、より細部的な粒状度(granularity)を願うと、0及び1の代わりに任意の加重値を設定できる。システムマネージャーはもっと多くのタイプのリソース(即ち、もっと多くの行)を追加し、斯かるマトリックスを拡張できる。
ティア特殊マトリックスの例。
Figure 0007063756000009
ティアが基本的に最も費用が高くないティアの順序に整列されていると、この順序がマイグレーション決定を下すうちに、優先順位と見なせる。システムマネージャーは、各ティアの選好度により、この順序を変更できる。
次の疑問は、「各ティアの専門性を反映しつつ各ティアに各VMの性能を反映する方法」である。「性能」という用語は、多くの次元又はタイプのリソース(IOPS、処理量及びストレージ大きさ)を考慮するから、各ティアの専門性を反映するため加重値が適用される。「専門性(specialty)」マトリックス及びVM容量利用率マトリックスのper-VM-per-tier掛け算の演算である「直交マッチ(orthogonal match)」が[数9]に示すように使用される。
Figure 0007063756000010
なお、オートティアリングはシステムマネージャーが各タイプのリソースに対して互いに異なる加重値を構成できるようにする。
ティア1に対する容量点数を計算する例を表7に示す。一番目の行(「capacityRate」)の(IOPS%、MBPS%、大きさ%)のタプルは、このティアの各リソースタイプに対する予想VM使用率である。斯かる例において、これらの値は、いずれも1より大きくないので、三つの全てが制限条件テストをパス(pass)できる。最後に、専門性マトリックスが表6と同一であると仮定する。
三つのVMがティア1を実行中の場合、三つのVMの容量比率、制約条件、及び容量点数値。
Figure 0007063756000011
最終スコアは、[数10]に示すように、ヒストリースコア、現在スコア及びマイグレーション費用のコンボリューションの和である。つまり、
Figure 0007063756000012
である。
この最終点数には、三つの構成要素がある。
1)ヒストリカルスコア(historicalScore)
I/Oスパイキ(spike)又はバースト(burst)を包含できる最近のエポックを基盤にした意思決定だけで一部のVMがよくマイグレーションされて2つのティア間に伝達するのを防止するため、オートティアリングは事前設定されたagingFactorと共にhistoricalScoreを考慮し、古い点数をフェードアウトさせる。初期には、特定のティアに現在割り当てられないVMは、0点を受ける。
2)カーキャップスコア(currCapScore)
現在の容量スコアは[数9]と表7を参照して、上述したように計算される。再び、特定のティアに割り当てられないVMは全て0点を受ける。
3)マイグレーションコスト(migrationCost)
オートティアリングは、マイグレーション-アウトとマイグレーション-インの可用処理量が小さい値を選択することにより、マイグレーション速度のボトルネック現象を計算する。オートティアリングは、マイグレーション速度で割ったVM大きさの結果をマイグレーション時間の費用として返還できる。
各ティアに対し点数を計算するため、オートティアリングはVMのホスティングを反復し、現在VMが現在tのリソースの全てのタイプの上限を超過するかを確認できる。VMがリソース容量の上限を超過すると、該当VM容量使用率が0に設定され、ティアtのVMvの点数が-1に設定される。そうではないと、リソース使用がパーセント容量に変換される。総点数は、上記のように計算される。オートティアリングを使用すれば、システムのマネージャーがリソースの多様な加重値を調整することにより加重値と各タイプのリソースを制御できる。
オートティアリングは長期的な観点からマイグレーションを遂行する。即ち、マイグレーション作業は比較的に費用が高いから、オートティアリングは、マイグレーション頻度が比較的少ない。
オートティアリングはマイグレーション作業が必要であるかの可否を確認し、必要な場合、該当するマイグレーションをトリガーできる。オートティアリングは各ティアに対して反復遂行でき、最も望ましくは一番高いティアの順序に反復できる。システムマネージャーは、各ティアの選好度により、斯かる順序を変更できる。オートティアリングはティア点数を降べきの順で整列する。斯かる整列目録に有る各VMに対しオートティアリングは、次のような場合VMをスキップできる。
1)現在反復されたVMが今度のタイムに予め割り当てられたか、
2)このティアの容量制限を超過するので、このティアのこのVMに対する点数がないか、
3)割り当てるうち、このVMvに対してティアtに残っているリソース容量が十分ではない。
そうではない場合、オートティアリングは最も少ない点数のVMをこのティアに1つずつ割り当てられる。VMが既にターゲットティアに有る場合、この割り当てはVMを移動させない。VMが他のティアに割り当てられると、VMにマイグレーションのためのフラッグが指定される。ここには、データ(VMDKファイル)を原本ストレージティアからターゲットへコピーする作業が含まれる。
既存のデータセンターはHDDを使用してデータを貯蔵する。HDDは一般的に互いに多くの面で類似するが、主にギガバイト当たりの費用、リード/ライト速度及び全体の容量が異なる。予測されるように、容量が大きいかリード/ライトの速度が速いHDDは高価である。しかし、このような差異を考慮するとしても、HDDはギガバイト当り平均費用が0.25ドルであり、平均リード/ライトの速度は10ミリ秒である。しかしながら、コンピュータ作業で10ミリ秒は待機するのに長い時間なので、一般的にアクセス時間を向上させるため一部のデータがローカルでキャッシュされる。
反面、SSDは多様な専門性を提供できる。一部のSSDは低いリード/ライトのレイテンシを有し、他のSSDは帯域幅が高いか、容量が大きいか、ライト増幅ファクト(Write Amplification Factor、WAF)が低い可能性がある。本明細書で、「リソース」という用語は個別ストレージがもっと大きく又はもっと小さく提供する専門性を説明するため使用される。また、他のSSDは、斯かるリソースの組み合わせを提供できる。このような追加的な専門性は、斯かるリソースを活用できる応用プログラムに利点を提供できるが、特定の応用プログラムに最も適合したSSDを決定するプロセスを複雑に拗らす。
HDDと異なり、SSDは一般的にフォーマットによりギガバイト当り価格が$0.28乃至$4.68に至るなどより高い。しかし、SSDは一般的により即刻的に反応できる。つまり、リード/ライトの時間は使用されるSSDフォーマットにより1乃至2msからマイクロ秒(μs)又はさらにナノ秒(ns)まで多様である。
HDDを通じてSSDが提供する追加リソースは、SSDに応用プログラムを最もよく割り当てるための重要な要素であるが、応用プログラムをSSDに割り当てる方法に最も影響を与えるのはアクセス時間である。既存のキャッシングアルゴリズムは、ストレージレイヤー間において性能が相当向上すると仮定する。一般的に、HDDストレージと比較してローカルキャッシュレイヤーから10倍の性能向上が期待される。なお、SSDはHDDよりデータを貯蔵するのにギガバイト当りもっと多くの費用が所要されるので、データをキャッシングすれば費用をかかった上、データが二度貯蔵される。従って、既存のティアリング及びキャッシングアルゴリズムは、HDDではないストレージデバイスを使用するとき、次善の結果を生成する。
図1は本発明の実施例により、仮想マシンをホスティングしてオートティアリングを遂行するように具備されたストレージプールを使用できるネットワーク化されたマシンを表す。図1にシステム105を図示する。システム105は仮想マシンサーバー(110-1、110-2及び110-3)を包含する。ここで、図1は三つのサーバーを図示するが、本発明の実施例は任意の数の仮想マシンサーバーを支援できる。
各々の仮想マシンサーバー(110-1、110-2及び110-3)は、プロセッサ(115-1、115-2、115-3)及びメモリー(120-1、120-2、120-3)をそれぞれ包含する。他の用途の中で、プロセッサ(115-1、115-2及び115-3)は、仮想マシンサーバー(110-1、110-2及び110-3)において、実行中の仮想マシンにより使用されるアプリケーションを実行でき、メモリー(120-1、120-2、120-3)に貯蔵する。プロセッサ(115-1、115-2及び115-3)は、任意の種類のプロセッサ、例えばIntel Xeon、Celeron、Itanium又はAtomプロセッサ、AMD Opteronプロセッサ、ARMプロセッサなどである。図1はそれぞれの仮想マシンサーバー(110-1、110-2及び110-3)の単一プロセッサを図示するが、仮想マシンサーバー(110-1、110-2及び110-3)は、それぞれ多数のプロセッサを包含でき、単一コア又はマルチコアプロセッサであり、願う組み合せで混合される。メモリー(120-1、120-2及び120-3)の各々は、それぞれフラッシュメモリー、Dynamic Random Access Memory(DRAM)、Static Random Access Memory(SRAM)、Persistent Random Access Memory、Ferroelectric Random Access Memory(FRAM(登録商標))、又はMagnetoresistive Random Access Memory(MRAM)などの非揮発性ランダムアクセスメモリー(NVRAM)のような多様なメモリーである。メモリー(120-1、120-2及び120-3)は、それぞれ相異なるメモリータイプの任意の願う組み合わせである。メモリー(120-1、120-2及び120-3)は、仮想マシンサーバー(110-1、110-2及び110-3)の一部であるメモリーコントローラー(図1に図示せず)により制御される。
仮想マシンサーバー(110-1、110-2、及び110-3)は、それぞれローカルストレージデバイスを包含する。例えば仮想マシンサーバー(110-1、110-2及び110-3)は、キャッシュ(125-1、125-2及び125-3)をそれぞれ包含する。キャッシュ(125-1、125-2及び125-3)のようなローカルストレージデバイスは、ハードディスクドライブ(HDDs)又はソリッドステートドライブ(SSDs)のような任意の願う形態を取り、Peripheral Component Interconnect(PCI)、PCI Express(PCIs)、Serial AT Attachment(SATA)、Non-Volatile Memory Express(NVMe)、NVMe over Fabric(NVMeoF)、M.2、又はその他願う連結を支援できる。本発明の概念の一部の実施例において、仮想マシンサーバー(110-1、110-2、及び110-3)は、データセンターの貯蔵にだけ依存するキャッシュ(125-1、125-2、及び125-3)を省略できる。キャッシュ(125-1、125-2、及び125-3)を含む本発明の概念の実施例において、本発明の概念の実施例は、2017年11月29日に出願された米国特許出願第62/592,355号を優先権として主張するすべての米国特許出願に開示された発明の概念の実施例と結合される。
システム105は、またデータセンターサーバー130を包含できる。仮想マシンサーバー(110-1、110-2、110-3)と同様に、データセンターサーバー130はプロセッサ115-4及びメモリー120-4を包含する。また、データセンターサーバー130は、ストレージプール(storage pool)135、受信機140及び送信機145を包含する。ストレージプール135はストレージティアで構成されたストレージデバイスのプールである。本発明の概念の一部の実施例において、ストレージプール135は、SSD又は他のフラッシュメモリーデバイスだけを包含する。本発明の概念の他の実施例において、ストレージプール135は他のストレージフォーマットを使用するストレージデバイスを包含できる。受信機140は、仮想マシンサーバー(110-1、110-2、及び110-3)から入/出力命令及び他のデータを受信し、送信機145は仮想マシンサーバー(110-1、110-2、及び110-3)へデータを伝送する。
仮想マシンサーバー(110-1、110-2、110-3)及びデータセンターサーバー130は、ネットワーク150を通じて接続されたものとして図示する。ネットワーク150を使用して、仮想マシンサーバー(110-1、110-2、110-3)は、データセンターサーバー130にI/O命令を伝送し、データセンターサーバー130からの応答を受信する。仮想マシンサーバー(110-1、110-2、110-3)及びデータセンターサーバー130は全て近距離通信網(LAN)の一部であるか、WAN(Wide Area Network)又はインターネットのようなグローバルネットワークのような他のネットワークタイプを包含できる。ネットワーク150は、任意の願う組み合わせで多数の斯かるネットワークの組み合わせである。
なお、図1はサーバーとして(それぞれ独立型又はラック(rack)サーバーである)仮想マシンサーバー(110-1、110-2、及び110-3)及びデータセンターサーバー130を図示するが、本発明の概念は、願う他のタイプの仮想マシンサーバー(110-1、110-2、及び110-3)及びデータセンターサーバー130を制限なしに包含できる。例えば、図1に図示したサーバーは、デスクトップ又はラップトップコンピュータ又は本発明の概念の実施例から利益を得られる任意の他の装置にそれぞれ代替できる。仮想マシンサーバー(110-1、110-2、110-3)及びデータセンターサーバー130は、それぞれ特殊化された携帯用コンピューティングデバイス、タブレットコンピュータ、スマートフォン及び他のコンピューティングデバイスを、包含できる。説明の目的において、仮想マシンサーバー(110-1、110-2、110-3)はホスティング仮想マシンとして説明したが、本発明の概念は仮想マシンではないマシンを包含できる。
図2に、図1のサーバー(110-1、110-2、110-3、及び130)の追加的な細部事項を図示する。図2において、通常的に、サーバー110(図1のサーバー(110-1、105-2又は110-3)の中のいずれか1つ)及びサーバー130は、メモリーコントローラー205及びクロック210よりなる1つ以上のプロセッサ115を包含でき、プロセッサ115はサーバー(110、130)の構成要素の動作を操作するため使用される。プロセッサ115は例として、ランダムアクセスメモリー(RAM)、読取り専用メモリー(ROM)又は他の状態保存の媒体を含むメモリー120に結合される。サーバー130において、プロセッサ115は、ストレージプール135に結合される(サーバー110は、局部的に付着されたストレージを包含できるが、必須ではない)。サーバー(110及び130)において、プロセッサ115は、例えばイーサネット(登録商標)コネクター又は無線コネクターであり得るネットワークコネクター215に結合される。プロセッサ115はバス220に接続され、バス220は入力/出力エンジン230を使用して管理されるユーザーインターフェース225及び入力/出力インターフェースポートに付着される。
図3は、本発明の実施例により、図1のストレージプール135とオートティアリングで相互作用する図1の仮想マシンサーバーの付加的な細部事項を図示する。図3において、仮想マシンサーバーは三つの仮想マシン(305-1、305-2及び305-3)をホスティングすると図示しているが、本発明の概念は仮想マシンサーバーによりホスティングされる任意の数の仮想マシンを包含できる。仮想マシン305-3は、以下でより詳細に説明するが、本発明の概念の実施例は同様に動作する仮想マシン(305-1及び305-2)のような他の仮想マシンを包含できる。ハイパーバイザー320は仮想マシンサーバー上で動作するオペレーション仮想マシン(305-1、305-2、及び305-3)を管理する。
I/Oフィルター325は、アプリケーション310からコマンドを受信して実行のためこれらをハイパーバイザー320へ伝送することにより、通過フィルターとして動作する。I/Oフィルター325は、I/Oフィルタリング用VMware vSphere APIのように任意の適切なI/Oである。しかし、I/Oフィルター325は一般的な動作以外に、仮想マシン305-3から来る一部のI/Oコマンドにレイテンシを注入でき、これは他のストレージティアにより支援されるとき、VM性能を予測する方法に対する情報を提供できる。I/Oフィルター325の動作は図7を参照して、さらに説明する。
オートティアリングデーモン330はI/Oフィルター325から性能データを受信して、オートティアリングコントローラー335へ伝送する。オートティアリングデーモン330はハイパーバイザー320の一部であるか又は別個の構成要素である。なお、オートティアリングデーモン330は、I/Oフィルターからデータを受信して、これをオートティアリングコントローラー335へ伝送する単純な通過装置であるが、仮想マシン(305-1、305-2、及び305-3)に関する性能データに対する線形回帰を遂行する動作のように、オートティアリングコントローラー335に追って提供されるいくつかの機能を包含できる。本発明の概念の一部の実施例において、オートティアリングデーモン330が性能データを収集して伝送するのを許容するよりは、I/Oフィルター325とオートティアリングコントローラー335が直接通信することにより、オートティアリングデーモン330は全体的に省略される。
オートティアリングコントロ-ラー335は。オートティアリングデーモン330から受信された性能データを受取って、そのデータを使用して仮想マシン305-3がそれぞれのストレージティアでどのように遂行するのかを予測し、その後オートティアリングコントロ-ラー335が仮想マシン305-3に対しデータを他のストレージティアへ適切にマイグレーションできる。オートティアリングコントロ-ラー335により管理されるストレージプール135は任意の個数のストレージティアを包含できる。図3に三つのストレージティア(340-1、340-2、及び340-3)を図示する。それぞれのティア内には、任意の個数のストレージデバイス345が有る。
前述したように、各ストレージティアは該当ストレージティアから提供する特定のリソースを活用する特性化機能を提供できる。例えば、ストレージティア340-1は速いリード/ライト時間を提供するが、ストレージティア340-3は低いライト増幅ファクターを提供する。ストレージティア(340-1、340-2、及び340-3)が特性を提供するためにはストレージティア内のストレージデバイス345が全て特性を提供しなければならない。従って、本発明の概念の一部の実施例において、与えられたストレージティア内のストレージデバイス345は1つ以上の専門分野に対して相対的に又は完全に均一に(homogeneous)する。つまり、ある場合には、与えられたストレージティア内のストレージデバイス345は、全てのストレージデバイス345が同一のストレージデバイスモデルではなければならない。
本発明の概念の一部の実施例において、オートティアリングコントローラー335は、図1のデータセンターサーバー130の一部として具現される。本発明の概念の他の実施例において、オートティアリングコントローラー335は、仮想マシンとして具現され、仮想マシンサーバー(110-1、110-2、及び110-3)の中の1つで実行される。
図4は、相異なるストレージデバイスにより提供される相異なるリソースを図示する。図4に、リソース405を図示する。リソース405は1秒のような与えられた時間に遂行されるI/Oコマンドの個数(一般的に秒当りのI/O動作で記述される、又はIOPS)を示す処理量410、与えられた時間単位にどのくらいの多くのデータが伝送されうるのかを示す帯域幅415(一般的に、秒当りのメガバイト単位で記述される、又はMBPS)、貯蔵されるデータの量を反映する容量420、及びどのくらいの多くの追加的なデータがガーベージコレクション動作の結果として記録されるのかを示すライト増幅ファクター425を包含する。リソース405は図1のストレージプール135のストレージデバイスにより提供される任意の他の願うリソースを包含するように容易に拡張できる。
図5は、1つのストレージから他のストレージへマイグレーションされる図3の仮想マシンのファイルを表す。図5において、仮想マシンファイル505は仮想マシンに対するデータを貯蔵する。仮想マシンファイル505は、現在ストレージティア340-3上に常駐し、第2仮想マシンのための仮想マシンファイル510は、現在ストレージティア340-2上に常駐する。矢印515により図示したように、仮想マシンファイル505は、図3のオートティアリングコントローラー335がどのようなマイグレーションが図1のシステム105全体に最高の向上をもたらすのかを考慮することにより、ストレージティア(340-2又は340-1)の中の1つにマイグレーションされる。仮想マシンファイル510がストレージティア(340-2)上でマイグレーションされないまま、残っていることを図示したように、図3のオートティアリングコントローラー335が仮想マシンを、他のストレージティアにマイグレーションしないと決定できる。
変わらぬストレージティアに仮想マシンを割り当てる方法に対する最適のソルーションがあるのがよいが(事実上仮想マシンの集合が変更されない限り)、実際に仮想マシンはワークロードの変化を感じ、時間がたつにつれ要求事項が異なる他のVMとリソースに対して競争することもできる。斯かるワークロードの変化及び競争は、特定の仮想マシンに対する最も適合したストレージティアに影響を与える。例えば、任意の時点で、1つの仮想マシンは極めて忙しい可能性があり(busy状態)、図1のストレージプール135から速い応答時間を要求できる。しかし、他の時点で、同一の仮想マシンが、活動が少なくて高速のストレージティアを必要としないことも有り得る。従って、全ての時間、全ての仮想マシンのための、最も適合した単一のグローバル最適化は存在できない。
従って、単一のグローバル最適化を求める代わりに、一定期間作動する最適化を求めることがもっとよいかもしれない。その後に、他の最適化が望ましくなる。例えば、図6(a)及び図6(b)は相異なる時点でのストレージティアに対する仮想マシンの最適の割り当てを図示する。例えば、図6(a)に図示したように、時間Tにおいて、仮想マシンファイル505は、ストレージティア340-3に最適であり、仮想マシンファイル510は、ストレージティア340-1に最適である。対照的に、図6(b)に図示したように、時間Tにおいて、仮想マシンファイル(505及び510)は全てストレージティア340-1に最適である。
図7に、図3の仮想マシンに対するレイテンシ注入及び性能データの決定を遂行する図3のI/Oフィルター325を図示する。図7において、I/Oフィルター325は図3の仮想マシン305-3のアプリケーション310からI/Oコマンド705を受信できる。I/Oフィルター325は、I/Oコマンド705にレイテンシ710を注入できる。注入されたレイテンシは、仮想マシンに対して相異なる平均I/Oレイテンシを生成する低性能ストレージティアをシミュレーションする。
注入されたレイテンシ710を使用することにより、I/Oフィルター325はI/Oコマンド705をデータセンターサーバー130へ伝達する。データセンターサーバー130はI/Oコマンド705を処理して応答715を返還する。I/Oフィルター325は応答715をアプリケーション310に返還して、注入されたレイテンシ710を使用して図3の仮想マシン305-3の平均I/Oレイテンシを測定し、性能データ720を生成する。図3のオートティアリングコントローラー335は性能データ720を使用して、仮想マシンを他のストレージティアにマイグレーションする利点があるかの可否を決定する(もっと速いか、もっと遅いか、仮想マシンをもっと遅いストレージティアにマイグレーションすると、性能の補償及び改善を有するまた他の仮想マシンのための余裕ある空間を確保できるので)。
一方、図7は性能データ720を生成するため注入されたレイテンシ710を使用するI/Oフィルター325を図示し、注入されたレイテンシ710は自体オーバーヘッドを有する。注入されたレイテンシ710は性能データ720が生成されると軽量接近法で代替される。例えば、I/Oフィルター325は仮想マシンごとにまだ処理されないI/Oコマンドの個数を追跡でき、その情報を使用してまだ処理されないI/Oコマンドの個数が高くなり続けるのか又は増加し続けると、他のストレージティアに仮想マシンをマイグレーションすることを提案する。
図8は、図3のオートティアリングコントローラー335の細部事項を図示する。図8において、オートティアリングコントローラー335は、線形回帰モジュール805、リソースマトリックス生成器810、メトリックコンバーター(metric converter)815、専門性情報820、ティア選択モジュール825、及びマイグレーションモジュール830を包含する。線形回帰モジュール805は、図7の性能データ720を受取って、データに線形回帰を遂行して与えられたストレージティアのレイテンシに対する仮想マシンの平均I/Oレイテンシを予測する線形方程式を生成する。図10を参照して後述するように、与えられた、注入されたレイテンシに対して、与えられた仮想マシンの平均I/Oレイテンシが決定され、斯かるデータポイントはグラフに描かれる。本発明の概念の一部の実施例において、これらのデータポイントは大略的に線形であり、線形回帰を遂行することによって、与えられた注入されたレイテンシに対する平均I/Oレイテンシを近似化する方程式を生成できる。そうしてから、各ストレージティアのレイテンシを把握すれば、各ストレージティアに対し特定の仮想マシンの平均I/Oレイテンシを予測できる。
リソースマトリックス生成器810は、それぞれの仮想マシンを各ストレージティア及び各ストレージティアにより提供されるリソースと相関(correlate)させるため、線形回帰から生成される予測値を受取る。例えば、処理量は仮想マシンの平均I/O大きさと仮想マシンの平均I/Oレイテンシから計算され、帯域幅はVMからのI/O命令に対する平均I/O大きさ及びVMにより発行されたIOPSから計算される。リソースマトリックス生成器810はメトリックコンバーター815を使用して処理量のような1つのメトリックに対する性能データを帯域幅のような他のメトリックに対する性能データに変換できる。
専門性情報820は各ストレージティアにより提供されるリソースを示す。専門性情報は図11を参照して、以下でさらに論議する。
ティア選択モジュール825は、リソースマトリックス生成器810により生成されたリソースマトリックス及び専門性情報820を受取り、仮想マシンのためのストレージティアを選択できる。そうしてから、仮想マシンが1つのストレージティアから他のストレージティアへマイグレーションされる場合、マイグレーションモジュール830は該当マイグレーションを遂行する。
図9は、図7の性能データ720を仮想マシン、ストレージティア、及びストレージティアのリソースに相関させるマトリックスへの変換を図示する。図9において、性能データ720は与えられたストレージティアを使用するとき、それぞれの仮想マシンに対する平均I/Oレイテンシを表すマトリックスとして示される。従って、例えば仮想マシン1の平均レイテンシはストレージティア1を使用する場合800μs、ストレージティア2を使用する場合500μsであり、ストレージティア3を使用する場合300μsであり、類似した情報を提供する仮想マシン2及び3の性能データと共に予測される。図8に図示したのは、単純な例だけであり、実際の性能は、特定の仮想マシンにより実行されるアプリケーションとストレージデータにアクセスする他の仮想マシンからの影響に大きく左右されるので、ストレージティアの全ての仮想マシンの実際の性能値を必ず反映はしない。
性能データ720の一部の値は、予測値ではなくて実際値である。特に、それぞれの仮想マシンは自身のデータを図1のストレージプール135の一部のストレージティアに貯蔵する。従って、仮想マシンに対するデータを実際に貯蔵するストレージティアの場合、性能データ720の平均I/Oレイテンシは予測値ではない該当ストレージティアの仮想マシンに対する実際の平均I/Oレイテンシを表す。
各ストレージティアの各仮想マシンに対する予想平均レイテンシが与えられると、仮想マシン、ストレージティア、及びリソースを相互関連させる多次元マトリックスが生成される。斯かる多次元マトリックスを、図9のリソースマトリックス905として図示する。多次元マトリックスは紙の上に表し難いから、図9はリソースマトリックス905を個別的なティアに対するデータを貯蔵するそれぞれの2次元マトリックスを有するいくつかの別個の2次元マトリックス(910、915、及び920)として図示するが、これは単に視覚化の目的のためのものである。
ストレージティア1に対する2次元マトリックス910において、性能データ720からの平均I/Oレイテンシは次の公式
(10/AverageIOLatency*maxIOPS[t])
を使用して処理量に変換される。つまり、10(1,000,000)を該当ストレージティアを使用する仮想マシンの平均I/Oレイテンシと、該当ストレージティアから支援できる最大IOPS(この値は、システムマネージャーがストレージティアで提供する実際の最大値より小さい値に設定できる(例:実際最大値の90%))の積で割ることにより変換される。レイテンシは、一般的にマイクロ秒(1マイクロ秒=1/1,000,000秒)で表現されるから、値10が使用される。従って、12μsのレイテンシが0.000012秒に変換されないと、平均I/Oレイテンシの正確な測定は、方程式から発生する単位の変化を反映しなければならない。処理量は処理量に仮想マシンから発生したI/O命令の平均ライトの大きさを掛けて帯域幅に変換される。容量は仮想マシンファイルのストレージ大きさをストレージティアにより提供される最大ストレージで割った値から計算できる(なお、システムマネージャーはこの値を実際の最大値より小さい値に設定することもできる)。性能データ720からリソースマトリックス905に貯蔵された値へのこのような変換は図8のメトリックコンバーター815を使用して計算される。
図10は、図7の性能データ720の線形回帰を図示する。図10に、2つの相異なる仮想マシンに対する性能データを図示した。1つの仮想マシンの場合、グラフのデータポイントは線形回帰1005により近似される。他の仮想マシンの場合、グラフ上のデータポイントは線形回帰1010により近似化される。図10は単に2つの仮想マシンに対するデータポイントを図示するが、本発明の実施例は線形回帰が計算される任意の数の仮想マシンを支援できる。
各データポイントは、注入された特定のレイテンシを仮想マシンの平均I/Oレイテンシと相互連関させる。例えば、注入されたレイテンシがない場合、一番目の仮想マシンはティア2が3,000μsである反面、二番目の仮想マシンは平均I/Oレイテンシが約700μsである。
注入されたレイテンシは、特に仮想マシンがもっと低いストレージティア(即ち、低いレベルの性能を有するストレージティア)を使用して適切に作動するかの可否を決定するとき有用である。つまり、注入されたレイテンシは、現在ストレージティアとターゲットストレージティア間の差異である。しかし、注入されたレイテンシを使用すればもっと速いストレージティアをエミュレートできる。結局、ネガティブレイテンシを注入できなくて、実際にストレージティアが実際に応答できるより速く応答しないことも有り得る。斯かるソリューションは線形回帰分析1010と同一である。仮想マシンが遅いストレージティアにどのように反応するのかに対する情報を使用すると、線形回帰モデルを使用してもっと速いストレージティアの性能を予測できる。技術的に、提供されたデータの範囲を逸脱する値を予測するのはデータの範囲の内部の値を予測する「補間法(interpolation)」と比較して「外挿法(extrapolation)」という。しかし、線形回帰1010のような線形回帰を使用する場合、計算は補間法と外挿法に対し同一である。従って、線形回帰1010を使用すると、もっと速いストレージティアを使用するとき、仮想マシンがどのように反応するのか予測できる。
ストレージティア間のレイテンシの実際的な差異に対応するデータポイントだけを使用できるが、より多くのデータポイントが使用可能である程、線形回帰モジュール805により提供される予測値がさらに良好になる。従って、多様な相異なるレイテンシが図3のI/Oフィルター325を使用して注入されることにより、願う程度の多くのデータポイントを提供できる。
勿論、注入されたレイテンシを使用して、仮想マシンの全てのI/O命令が遅くなると、仮想マシンが割り当てられたストレージティアの利点を受けられない。従って、注入されたレイテンシは仮想マシンから発行したI/O命令の下位集合にだけ使用される。注入されたレイテンシに対して選択されるI/O命令がランダムに選択されると、図7の性能データ720が意味ある線形回帰(1005及び1010)を提供しなければならない。データポイントに対する変動係数(及び信頼度)を決定するため、既知の統計技法が使用される。データポイントの信頼度が十分に高いと、線形回帰(1005及び1010)は正確な予測値として信頼される。願う信頼レベルが指定される(例:90%又は95%)。注入されたレイテンシに対してI/Oコマンドが選択される方法は、図13を参照して以下でさらに説明する。
線形回帰(1005及び1010)は異なるデータセットを表す。つまり、線形回帰1005は相当に急な傾きを含む反面、線形回帰1010は相当に緩慢な傾きを含む。全ての仮想マシンがI/O命令のレイテンシの変化に同一の方式で応答するのではない。一部の仮想マシンは他のものより敏感である。例えば、線形回帰1005をもたらすデータポイントを生成した仮想マシンは、同期化アプリケーションを実行でき、レイテンシの小さな変化はアプリケーションの性能に重要な影響を与える。一方、線形回帰1010をもたらすデータポイントを生成した仮想マシンはレイテンシの変化がより小さな影響を与える非同期アプリケーションを実行できる。又は、線形回帰1005は高い処理量を要求する仮想マシンに対するものであるが、線形回帰1010はより低い処理量を要求する仮想マシンに対するものである。類似した方式で、仮想マシンの敏感度が線形回帰に影響する。より敏感な仮想マシンは、より急な傾斜を有し、より敏感でない仮想マシンは、より緩慢な傾斜を有する。敏感度と類似した概念は、仮想マシンが密接に結合されているかの可否である(「密接に結合」とは、同期式及び非同期式のアプリケーションの比較と類似に仮想マシンがストレージティアの応答時間にどのくらい敏感であるのか従属的であるのかを意味する)。仮想マシンがより密接に結合されるほど線形回帰の傾きがさらに急になる。一般的に、線形回帰1005のように急な傾きを有する線形回帰は、より速いストレージティアで、より優秀な性能を示す仮想マシンを表すが、線形回帰1010のように緩慢な傾きを有する線形回帰は、遅いストレージティアにおいて適切に遂行する仮想マシンを表す。
図11は、図3のストレージティア(340-1、340-2、340-3)に対する図8の専門性情報820を図示する。図11において、専門性情報820はマトリックスとして図示する。各ストレージティアと各リソースの共通点は、該当ストレージティアが該当リソースを提供するかの可否(又は、その程度)を反映する値を指定できることである。本発明の概念の一部の実施例において、図11に図示したように、専門性情報820は二進情報(0 vs 1、はい vs いいえ又は任意の他の値のペア)を使用できるが、ここで1つの値はストレージティアが該当リソースの提供を示し、他の値はストレージティアが該当リソースを提供しないことを示す。従って、例えば専門性情報820はストレージティア1が高い処理量及び高い帯域幅を提供し、ストレージティア2が高い帯域幅を提供し、ストレージティア3が大きな容量を提供することを示す。
本発明の概念の他の実施例において、専門性情報820内の値は、二進選択に制限される必要はない。例えば、値の範囲は0から1までであり、0はストレージティアから該当リソースを提供しないことを示し、1はストレージティアから該当リソースを完全に提供することを示し、中間にある値は部分支援を表す。従って、0.75の値はストレージティアがリソースをある程度までは提供するが、「最上」のストレージティアほどではないということを表す。反面、0.25の値はストレージティアから該当リソースを提供するが、「最悪」のストレージティア(「最上」及び「最悪」は相対的な用語である)より少しよい程度を表す。
図12は、図3の仮想マシン(305-1,305-2及び305-3)を図3の他のストレージティアにマイグレーションさせるのに使用されるスコアマトリックスの計算を図示する。専門性情報820にリソースマトリックス905を掛けることにより、各ティアが各仮想マシンをどのくらいよく支援するのかを反映するスコアマトリックス1205が生成される。例えば、仮想マシン1に値が提供される。この値はストレージティア1が55%一致、ストレージティア2が25%一致、ストレージティア3が30%一致を表す(各値は特定のストレージティアに特定の仮想マシンの貯蔵量を表示するものではなく、各ストレージティアが仮想マシンをどのくらいよく支援するのかを表すから100%にならない。)。他の仮想マシンに対するエントリーは、同様に解釈される。
スコアマトリックス1205が生成されると、図8のティア選択825は各仮想マシンに適合したティアを選択できる。斯かる選択はティア及び仮想マシンの各組合せに対して下記の値を計算することによって遂行される。
FinalScore=AgingFactorxHustoricalFinalScore+CurrPerfGain-CurrPerfPenalty
AgingFactorは仮想マシンとストレージティアの組み合わせに対してより古くなった最終の点数を保存するのに使用される要素である(以前ティア選択が結果に偏向されすぎることを防止するため)。CurrPerfGainは仮想マシンとティアの組み合わせのため、図12のスコアマトリックス1205から抽出された値である。CurrPerfPenaltyは1つのストレージティアから他のストレージティアへデータをマイグレーションする費用を示す。
仮想マシンは図1のストレージプール135を含むサーバーと他のサーバー上に常駐できるから、CurrPerfPenaltyはデータ自体の移動費用だけ反映するので、仮想マシンの作動に影響を与える要因が必要ではない。言葉を変えれば、仮想マシンは図1の仮想マシン110-1上にあるから、データのマイグレーションを遂行するため仮想マシンをホスティングするサーバー上の処理能力が必要ではない。全ての処理は図1のデータセンターサーバー130で遂行される。CurrPerfPenaltyはマイグレーションしなければならない仮想マシンファイルの大きさを原本ストレージティアのリード処理速度とターゲットストレージティアのライト処理速度の中の小さい値で割ることによって計算される。即ち、原本ストレージティアでデータをリードするために必要な時間とターゲットストレージティアにデータをライトするために必要な時間を比較して、より大きな値がマイグレーションを遂行するのに必要な時間に選択される。なぜならば、より遅いのは(原本ストレージティアのリード又はターゲットストレージティアのライト)データマイグレーションのボトルネック現象を惹起するからである。
仮想マシン及びストレージティアの各組み合せに対する最終点数が与えられると、ティア選択モジュール825は、図1のシステム105の性能の最も大きい向上をもたらす仮想マシンのストレージティアへの割り当てを識別することにより、全てのシステムの性能を全体的に最適化するように各仮想マシンに対するストレージティアを容易に選択できる。この際、(それほど強力でないストレージティアにマイグレーションされる仮想マシンによる)性能向上と性能減少及びマイグレーション費用が全て考慮されなければならない。
前に暗示したように、全ての時間内に単一のグローバル最適化を遂行すると各仮想マシンのワークロードが変化せずに仮想マシンの集合自体が変更されないと仮定する(新たな仮想マシンが追加されずに既存の仮想マシンが除去されずに)。実際に、斯かる条件は非現実的である。従って、図1のシステム105は一度だけ最適化され、時間が経つにつれストレージティアに対する仮想マシンの割り当てが、これ以上最適ではないことも有り得る。斯かる問題に対する解決策は最適化を一度だけ遂行するよりは一定の間隔で遂行することである。しかし、持続的に最適化を遂行するのは効率的ではない可能性がある。例えば、仮想マシンI/O命令は持続的に注入されたレイテンシを経なければならない。これは、仮想マシンが該当ストレージティアの全ての利点が受けられないことを意味する。よって、連続的な最適化を遂行する代わりに、最適化は周期的に遂行される。このため、マイグレーションエポックとモニタリングエポックの概念が導入される。
モニタリングエポックは、仮想マシンが他のストレージティアで現在遂行できる方法を決定するため、図3のI/Oフィルター325が一部のI/O命令にレイテンシを注入する時間のポイントを表す。エポックのモニタリングが始まるとき、図3のI/Oフィルター325は選択された数のI/Oにレイテンシを注入できる。斯かるI/Oコマンドの数は固定された数として、予め決定されるか、以前モニタリングエポックのうち発行されたI/Oコマンドの数のパーセンテージ(例えば、1%)に設定されるか、また2つの全部(例えば、2つの値の中でもっと大きい値)であり得る。本発明の実施例が不規則的なモニタリングエポックを支援するとしても、モニタリングエポックは15分ごと、毎時間又は毎日のように規則的な間隔で発生できる。モニアリングエポックが始まる時、仮想マシンの実際のワークロードを予測する簡単な方法はない。従って、図3のI/Oフィルター325をトリガリングしてモニタリングエポックのスタートステップにおいて、I/O命令にレイテンシを注入するのは、任意のI/O命令セットを選択し、図7の意味ある性能データ720を提供するはずである。図7の性能データ720が与えられたモニタリングエポックから仮想マシンに対して一度生成されてからは、図3のオートティアリングデーモン330は、図7の性能データ720を図3のオートティアリングコントローラー335へ伝送する。代案的に、図3のオートティアリングデーモン330は、マイグレーションエポックが始まる時まで待機し、図7の性能データ720を、その時伝送する。
マイグレーションエポック(Migration Epoch)は、図3のオートティアリングコントローラー335が仮想マシンを1つのストレージティアから他のストレージティアへマイグレーションしなければならないかの可否を決定する時間のポイントを表す。モニタリングエポックと同様に、マイグレーションエポックは毎日又は毎週のように定期的又は不規則な間隔で発生するように設定される。モニタリングエポックが発生するとき、図3のオートティアリングコントローラー335は図7の性能データ720を分析し、図9のリソースマトリックス905を生成し、最終点数を計算し、各仮想マシンに対するストレージティアを選択し、及び必要な場合、仮想マシンデータをマイグレーションする。
図13は、モニタリングエポックとマイグレーションエポック間の関係を示す。図13に、マイグレーションエポック1305及びモニタリングエポック1310を図示する。図13に図示したように、本発明の実施例において、マイグレーションエポック1305は、モニタリングエポック1310と同一であるか又はもっと短い可能性があるが、マイグレーションエポック1305は、モニタリングエポック1310より典型的にもっと長い。なお、マイグレーションエポック1305とモニタリングエポック1310は整列されるが、整列される必要はない。
図14は、一実施例により、図7の性能データ720を生成するため、図7の入力/出力(Input/Output)命令705にレイテンシを注入するための図3のI/Oフィルター325に対する例示的な手順の流れ図を図示する。図14のS1405で、図3のI/Oフィルター325は、図13の新しいモニタリングエポック1310が始まったか決定する。新しいモニタリングエポック1310が始まっていない場合、図3のI/Oフィルター325は待機する。新しいモニタリングエポック1310が始まっている場合、図3のI/Oフィルター325は、S1410で図3のアプリケーション310から図7のいくつかのI/O命令を受信する。このような方式で、図3のI/Oフィルター325にどのくらい多くの命令が処理のため選択されるかはシステム構成によって異なる。S1415で、図3のI/Oフィルター325は、図7のI/Oコマンドに図7のレイテンシを注入する。S1420で、図3のI/Oフィルター325は、図1のデータセンターサーバー130へ命令を伝送する。S1425で、図3のI/Oフィルター325は、図1のデータセンターサーバー130から図7の応答715を受信する。S1428で、図3のI/Oフィルター325は、図7の応答715を図3のアプリケーション310へ伝達する。最終的に、S1430で、図3のI/Oフィルター325は、仮想マシンに対する平均I/Oレイテンシを使用して図7の性能データ720を計算する。
図15(a)、(b)は一実施例により、ストレージティアを通じた仮想マシンのマイグレーションを管理するための図3のオートティアリングコントローラー335に対する例示的な手順の流れ図を図示する。図15(a)のS1505で、図3のオートティアリングコントローラー335は、図13の新しいモニタリングエポック1310が始まったか決定する。新しいモニタリングエポック1310が始まっていない場合、図3のオートティアリングコントローラー335は、待機する。新しいモニタリングエポック1310が始まっている場合、S1510で、図3のオートティアリングコントローラー335は、図3のオートティアリングデーモン330から図7の性能データ720を受信できる。S1515で、図3のオートティアリングコントローラー335は、図13の新しいマイグレーションエポック1305が始まったか決定する。新しいマイグレーションエポック1305が始まっていない場合、図3のオートティアリングコントローラー335は、待機する。
新しいマイグレーションエポック1305が始まっている場合、S1520で、図8のリソースマトリックス生成器810は、図9のリソースマトリックスを生成する(他の構成要素の中で、図8の線形回帰モジュール805及び図8のメトリックコンバーター815を使用する)。S1525で、ティア選択モジュール825は、リソースマトリックス905を使用してストレージティアに仮想マシンが割り当てる。S1530で、図3のオートティアリングコントローラー335は、1つのストレージティアから他のストレージティアへ仮想マシンがマイグレーションされるかを確認する。仮想マシンがマイグレーションされる場合、S1535で、マイグレーションモジュール830は、図5の仮想マシンファイル505を1つのストレージティアから他のストレージティアへマイグレーションする。
図16は、一実施例により図9のリソースマトリックス905を生成するための、図3のオートティアリングコントローラー335に対する例示的な手順の流れ図を図示する。図16を参照すると、S1605で、図8の線形回帰モジュール805は、図7の性能データ720に対する線形回帰を遂行して各ストレージティアから仮想マシンの性能を評価する数式を生成する。S1610で、図3のオートティアリングコントローラー335は、図10の線形回帰(1005及び1010)を使用して、各仮想マシンが各ストレージティアでどのくらいよく遂行されるか(即ち、各ストレージティア上の仮想マシンの性能)を予測する。S1615で、リソースマトリックス生成器810は、それぞれのリソースにより各ストレージティアから仮想マシンに対する性能メトリックを生成する。S1620に図示したように、これはメトリックコンバーター815を使用して処理量のような1つのメトリックを帯域幅のような他のメトリックに変換するのを包含する。点線1625で図示したように、ブロック1620は省略できる。
前述した議論から分かるように、本発明の概念の実施例は、従来のティアリング及びキャッシングソルーションに比して重要な利点を提供する。
一番目、本発明の概念の実施例はストレージティアの多重リソースを考慮して支援する。なお、リソースの数が変わることができるから、リソースの数は1に設定され、従来のHDDストレージプールと共に使用されるための逆互換性を提供する。
二番目、本発明の実施例は、従来のティアリング及びキャッシングソルーションが無視するフラッシュ貯蔵システムのより速い性能を説明する。
三番目、本発明の実施例はグローバル最適化を求め、既存の仮想マシンの集合及びワークロードスパイキ(workload spike)のような仮想マシンのワークロードでの変化が発生するにつれ、グローバル最適化の調整を支援できる。これは、一般的にシステムの全体を最適化するのではなく、個別仮想マシンに対するローカルソルーションを求める既存のソルーションに比して有利である。
図14乃至図16を参照すれば、本発明の概念の一部の実施例が示される。しかしながら、当業者は、ステップの順序を変更するか、ステップを省略するか、又は図面に示さないリンクを含むことにより、本発明の概念の他の実施例も可能であることを認識するはずである。フローチャートのこのような全ての変形は、明示的に記述されるか否かにかかわらず、本発明の概念の実施例であるものと見なされる。
次の説明は、本発明の概念の特定の実施例が具現されるのに適したマシン又は装置に対する簡略で且つ一般的な説明を提供するためのものである。マシン(Machine)又は複数のマシンは、キーボード、マウスなどのような従来の入力デバイスだけでなく、他のマシンから受信された指示、仮想現実(VR)環境との相互作用、生体認識(biometric)フィードバック、又は他の入力信号のような各入力によって少なくとも部分的に制御される。本明細に使用した、「マシン」という用語は、単一のマシン、仮想マシン、又は通信的に結合された各マシンのシステム、仮想マシン、又は共に動作するデバイスを広範囲に含むものと意図する。例示的なマシンは、パーソナルコンピュータ、ワークステーション、サーバー、携帯用コンピュータ、ハンドヘルド(handheld)デバイス、電話、タブレットなどのコンピューティングデバイスだけでなく、自動車、汽車、タクシなどのような私設、又は公共交通のような運送デバイスを含む。
マシン又は複数のマシンは、プログラム可能又は非プログラミング可能ロジックデバイス又はアレイ、ASIC(Application Specific Integrated Modules)、エンベデッドコンピュータ(embedded computer)、スマートカードなどの内蔵型コントローラーを含む。マシン又は複数のマシンは、ネットワークインターフェース、モデム又は他の通信カップリングのような一つ以上の遠隔マシンに対する一つ以上の連結を活用する。マシンは、イントラネット、インターネット、ローカル領域ネットワーク、広域ネットワークなどの物理的及び/又は論理的ネットワークにより相互接続される。当業者は、ネットワーク通信は、周波数(RF)、衛星、マイクロウェーブ、IEEE(Institute of Electrical and Electronics Engineers) 802.11, Bluetooth(登録商標)、光学、赤外線、ケーブル、レーザーなどを含む多様な有線及び/又は無線の近距離通信網や長距離通信事業者及びプロトコールを活用できることを理解できるはずである。
本発明の概念の実施例は、マシンによってアクセスされる時、マシンがタスクを遂行するか、抽象データタイプを定義するか、ローレベルハードウェアコンテキストを定義するような機能、手順、データの構造、アプリケーションプログラムなどを含む関連データを参照して、且つ関連して説明される。関連データは、例えば、RAM、ROMなどのような揮発性及び/又は非揮発性メモリ、又はハードドライブ、フロッピーディスク、光学ディスク、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生物学的ストレージなどを含む他のストレージ及びこれらと連関された貯蔵媒体に貯蔵される。関連データは、物理的及び/又は論理的ネットワークを含む伝送環境を通じて、パケットは、シリアルデータ、並列データ、伝播される信号などの形態で伝達され、圧縮又は暗号化されたフォーマットとして使用される。関連データは、分散環境にて使用され、マシンアクセスのためにローカル及び/又は遠隔で貯蔵される。
本発明の概念の実施例は、一つ以上のプロセッサーにより実行可能な命令を含む非一時的な機械の判読可能媒体を含み、前記命令は、本明細書に説明したような発明概念の要素を遂行するための命令を含む。
前述した方法の多様な動作は、多様なハードウェア及び/又はソフトウェアコンポーネント、モジュール及び/又は複数のモジュールのような動作を遂行し得る任意の適切な手段によって遂行される。ソフトウェアは、論理的機能を具現するための実行可能命令の順序化された目録を含み、シングル又はマルチ‐コアプロセッサー又はプロセッサーを含むシステムのような命令実行システム、装置、又はデバイスによって又はそれと関連した任意の「プロセッサー‐判読可能媒体」から具現される。
本明細書に開示した実施例と関連して説明した方法又はアルゴリズム及び機能のブロック又は段階は、ハードウェア、プロセッサーによって実行されるソフトウェアモジュール、又はこれらの組み合わせで直接具現される。ソフトウェアで具現される場合、機能は非一時的コンピュータ判読可能媒体上に一つ以上の命令又はコードとして貯蔵されるか、伝送される。ソフトウェアモジュールは、RAM(random access memory)、フラッシュメモリ、ROM(Read Only Memory)、EPROM(Electrically Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、レジスタ、ハードディスク、移動式ディスク、CD ROM、又は当業界に公知の任意の他の形態の貯蔵媒体に常駐する。
説明した実施例を参照して、本発明の概念の原理を説明し例示したが、説明した実施例は、このような原理を逸脱せずに配列及び細部事項を修正でき、任意の好ましい方式で組み合わされ得るのがわかるはずである。なお、前述した説明は、特定の実施例に焦点を合わせたが、他の構成も考慮される。特に、「発明の概念の実施例による」などのような表現を、本明細書において使用する場合、このような文言は、一般的に実施例の可能性を参照することを意図し、本発明の概念を特定の実施例の構成として制限しようとするものではない。本明細書に使用したように、これらの用語は、他の実施例と組み合わせ可能な同一の又は異なる実施例を示す。
前述した例示的な実施例は、本発明の概念を制限するものとして解釈してはならない。一部の実施例を説明したが、当業者は、本開示の新規な教示及び利点から実質的に逸脱せずに、これらの実施例に多くの修正が可能であることを容易に理解できるはずである。従って、このような全ての修正は、請求項に定義する本発明の概念の範囲内に含まれる。
本発明の概念の実施例は、次の説明として制限なく拡張できる。
ステイトメント(Statement)1.
本発明の概念の実施例は、
複数のリソースを提供する複数のストレージデバイスと、
前記複数のストレージデバイスは、複数のストレージティア(TIER)で構成され、第1仮想マシンに対する第1データ及び第2仮想マシンに対する第2データを貯蔵し、
前記第1仮想マシンからの第1入出力(I/O)コマンド、前記第2仮想マシンからの第2入出力コマンド、前記複数のストレージティアで前記第1仮想マシンの性能をモデリングする第1性能データ、及び前記複数のストレージティアで第第2仮想マシンの性能をモデリングする第2性能データを受信する受信機と、
前記第1I/O命令に対する第1応答を前記第1仮想マシンに送信し、前記第2I/O命令に対する第2応答を前記第2仮想マシンに送信するための送信機と、
前記第1仮想マシンに対する前記第1データを貯蔵するための第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための第2ストレージティアを選択し、前記第1性能データ及び前記第2性能データに応答して、前記第1仮想マシンに対する少なくとも一つの前記第1データを第1ストレージデータに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするためのオート-ティアリンコントローラー(automated storage tiering)と、を含み、
前記オートーティアリングコントローラーは、前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択して、前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、
前記オートーティアリングコントローラーは、前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージディアに移動させることによってもたされる性能の変化及び前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させる移動費用に基づいて動作するシステム。
ステイトメント2.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、
前記システムはプロセッサーをさらに含み、
オートーティアリングコントローラーはプロセッサで実行されるソフトウェアを含む。
ステイトメント3.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、前記オートーティアリングコントローラーは、
前記第1性能データ及び前記第2性能データに応答して、前記第1仮想マシンに対する前記第1ストレージティアと前記第2仮想マシンに対する前記第2ストレージティアを選択するティア選択モジュールと、
前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させるためのマイグレーションモジュールと、を含む。
ステイトメント4.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、前記オートーティアリングコントローラーは、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを、前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックス(resource matrix)を生成するリソースマトリックス生成器を含む。
ステイトメント5.
本発明の概念の実施例は、ステイトメント4によるシステムを含み、前記オートーティアリングコントローラーは、前記リソースマトリックスに応答して、前記第1仮想マシンに対する第1データを貯蔵するための第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための第2ストレージティアを選択する。
ステイトメント6.
本発明の概念の実施例は、ステイトメント5によるシステムを含み、前記オートーティアリングコントローラーは、前記リソースマトリックス及び前記複数のストレージティアのそれぞれに対する専門性情報に応答して、前記第1仮想マシンに対する前記第1データを貯蔵するための第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための第2ストレージティアを選択するように動作する。
ステイトメント7.
本発明の概念の実施例は、ステイトメント6によるシステムを含み、前記複数のストレージティアのそれぞれに対する前記専門性情報は、前記複数のストレージティアのそれぞれが前記複数のリソースのそれぞれを支援するか否かを識別する。
ステイトメント8.
本発明の概念の実施例は、ステイトメント7によるシステムを含み、前記複数のリソースは処理量、帯域幅、容量、及びライト(write)増幅を含む。
ステイトメント9.
本発明の概念の実施例は、ステイトメント4によるシステムを含み、前記リソースマトリックス生成器は、前記複数のストレージティアのそれぞれにおいて前記第1仮想マシンに対する第1性能メトリック(metric)を前記複数のリソースの第2リソースに基づいて、前記複数のストレージティアのそれぞれの前記第1仮想マシンに対する第2性能メトリックに変換するメトリックコンバータを含む。
ステイトメント10.
本発明の概念の実施例は、ステイトメント4によるシステムを含み、前記第1性能メトリックは、前記第1仮想マシンに対する第1平均I/Oレイテンシデータを含む。
ステイトメント11.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、
前記オートーティアリングコントローラーは、前記第1性能データに対する第1線形回帰を遂行し、前記第2性能データに対する第2線形回帰を遂行する線形回帰モジュールを含み、
前記オートーティアリングコントローラーは、前記第1線形回帰及び前記第2線形回帰に応答して、前記第1仮想マシンに対する前記第1データを貯蔵するために前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するために前記第2ストレージティアを選択する。
ステイトメント12.
本発明の概念の実施例は、ステイトメント11によるシステムを含み、前記オートーティアリングコントローラーは、前記第1線形回帰及び前記第2線形回帰に応答して、前記第1仮想マシンと前記第2仮想マシンに対する予測された平均I/Oレイテンシを使用することによって、前記第1仮想マシンに対する前記第1データを貯蔵するための前記第1ストレージティアを選択し、前記第2仮想マシンに対する第2データを貯蔵するための前記第2ストレージティアを選択する。
ステイトメント13.
本発明の実施例は、ステイトメント1によるシステムを含み、前記第1性能データは第1リソースを使用する第1メトリック性能データを含み、
前記オートーティアリングコントローラーは、前記第1リソースを使用する前記第1メトリック性能データを、第2リソースを使用する第2メトリック性能データに変換するメトリック変換機を含む。
ステイトメント14.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、前記オートーティアリングコントローラーは、前記第1仮想化マシンに対する前記第1データを貯蔵するための第1ストレージティアを選択し、第2仮想マシンに対する第2データを貯蔵するための第2ストレージティアを選択するように構成され、またマイグレーションエポック当たり前記第1性能データと前記第2性能データに応答して、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションさせるように動作する。
ステイトメント15.
本発明の概念の実施例は、ステイトメント14によるシステムを含み、前記第1性能データは、前記マイグレーションエポック内の複数のモニタリングエポックからの第1性能データを含み、また前記第2性能データは、前記マイグレーションエポック内の前記複数のモニタリングエポックからの第2性能を含む。
ステイトメント16.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、前記第1仮想マシンを貯蔵する第1仮想マシンサーバーと、前記第2仮想マシンを貯蔵する第2仮想マシンサーバーと、を含む。
ステイトメント17.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、前記第2仮想マシンサーバーが前記第1仮想マシンサーバーである。
ステイトメント18.
本発明の概念の実施例は、ステイトメント16によるシステムを含み、前記第1仮想マシンサーバーは、前記複数のストレージティアで前記第1仮想マシンの性能をモデリングする前記第1性能データを生成するためのI/Oフィルタを含む。
ステイトメント19.
本発明の概念の実施例は、ステイトメント18によるシステムを含み、前記I/Oフィルタは前記第1仮想マシンからの複数のI/Oコマンドにレイテンシを注入するように動作し、前記複数のI/Oコマンドは前記第1I/Oコマンドを含み、前記注入されたレイテンシに応答して前記第1仮想マシンに対する平均I/Oレイテンシを決定する。
ステイトメント20.
本発明の概念の実施例は、ステイトメント19によるシステムを含み、前記I/Oフィルタは、前記第1仮想マシンから前記複数のI/Oコマンドに複数のレイテンシを注入し、前記注入されたレイテンシに応答して、前記第1仮想マシンに対する複数の平均I/Oレイテンシを決定するようにさらに動作し、また前記オートーティアリングコントローラーは、前記第1仮想マシンに対する前記複数の平均I/Oレイテンシに対する第1線形回帰を遂行する線形回帰モジュールを含む。
ステイトメント21.
本発明の概念の実施例は、ステイトメント18によるシステムを含み、前記第1仮想マシンサーバーは、前記I/Oフィルタから複数の仮想マシンに対する前記性能データを収集し、前記収集された性能データを前記オートーティアリングコントローラーに伝達する。
ステイトメント22.
本発明の概念の実施例は、ステイトメント16によるシステムを含み、前記第1仮想マシンサーバーは、前記第1仮想マシンに対する前記第1データ中の任意のものを貯蔵するための第1ローカルキャッシュを含まず、
また第2仮想マシンサーバーは、前記第2仮想マシンに対する前記第2データ中の任意のものを貯蔵するための第2ローカルキャッシュを含まない。
ステイトメント23.
本発明の概念の実施例は、ステイトメント1による方法を含み、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2仮想マシンにマイグレーションすることによってもたらされる性能の変化は、前記第1仮想マシンの性能の改善を含む。
ステイトメント24.
本発明の概念の実施例は、ステイトメント1による方法を含み、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2仮想マシンにマイグレーションすることによってもたらされる性能の変化は、前記第1仮想マシンの性能の減少を含む。
ステイトメント25.
本発明の概念の実施例は、ステイトメント1による方法を含み、前記第1仮想マシンに対する前記第1データの少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションする費用は、前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションさせるのに必要なマイグレーション時間を含む。
ステイトメント26.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、前記第2ストレージティアが前記第1ストレージティアであり得る。
ステイトメント27.
本発明の概念の実施例は、ステイトメント1によるシステムを含み、複数のストレージティア中の一つの複数のストレージデバイスは、同種(homogeneous)である。
ステイトメント28.
本発明の概念の実施例は、次を含む方法を含む。
複数のストレージティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップと、
前記複数のストレージティアの第2仮想マシンの性能をモデリングする第2性能データを受信するステップと、
前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び第2仮想マシンを、前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップと、
前記リソースマトリックスを使用して、前記第1仮想マシンに対する第1データを貯蔵するために前記複数のストレージティアの中で第1ストレージティアを選択するステップと、
前記リソースマトリックスを使用して、前記第2仮想マシンに対する第2データを貯蔵するために前記複数のストレージティアの第2ストレージティアを選択するステップと、
前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションさせるステップと、を含み、
前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、
前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させることによってもたらされる性能変化を考慮し、
前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させる移動費用を考慮する。
ステイトメント29.
本発明の概念の実施例は、ステイトメント28による方法を含み、前記第2ストレージティアが前記第1ストレージティアである。
ステイトメント30.
本発明の概念の実施例は、ステイトメント28による方法を含み、第1性能データを受信し、第2性能データを受信し、リソースマトリックスを生成し、第1ストレージティアを選択し、また第2ストレージティアを選択するのは、マイグレーションエポック当たり一回遂行される。
ステイトメント31.
本発明の概念の実施例は、ステイトメント30による方法を含み、第1性能データを受信し、第2性能データを受信するのがモニタリングエポック当たり一回遂行される。
ステイトメント32.
本発明の概念の実施例は、ステイトメント31による方法を含み、前記マイグレーションエポックは複数のモニタリングエポックを含む。
ステイトメント33.
本発明の概念の実施例は、ステイトメント28による方法を含み、前記リソースマトリックスを使用して、前記第1仮想マシンに対する第1データを貯蔵するための第1ストレージティアを前記複数のストレージティアから選択するステップは、前記複数のストレージティアのそれぞれに対する前記リソースマトリックス及び専門性情報を使用して、前記第1仮想マシンに対する第1データを貯蔵するために前記複数のストレージティアの中で前記第1ストレージティアを選択するステップを含み、また前記リソースマトリックスを使用して、前記第2仮想マシンに対する第2データを貯蔵するための第2ストレージティアを前記複数のストレージティアから選択するステップは、前記複数のストレージティアのそれぞれに対する前記リソースマトリックス及び専門性情報を使用して、前記第2仮想マシンに対する第2データを貯蔵するために前記複数のストレージティアの中で前記第2ストレージティアを選択するステップを含む。
ステイトメント34.
本発明の概念の実施例は、ステイトメント33による方法を含み、前記複数のストレージティアのそれぞれに対する前記専門性情報は、前記複数のストレージティアのそれぞれが前記複数のリソースのそれぞれを支援するか否かを識別する。
ステイトメント35.
本発明の概念の実施例は、ステイトメント34による方法を含み、前記複数のリソースは、処理量、帯域幅、容量及びライト増幅を含む。
ステイトメント36.
本発明の概念の実施例は、ステイトメント34による方法を含み、前記複数のストレージティアで前記第1仮想マシンの性能をモデリングする前記第1性能データは、前記第1仮想マシンに対する平均I/Oレイテンシと注入された複数のレイテンシを相互関連させる複数のデータポイントを含む。
ステイトメント37.
本発明の概念の実施例は、ステイトメント36による方法を含み、前記第1性能データと前記第2性能データを使用して前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップは、前記第1仮想マシンに対する平均I/Oレイテンシを注入された複数のレイテンシを相互関連させる前記複数のデータポイントに対する線形回帰を遂行するステップを含む。
ステイトメント38.
本発明の概念の実施例は、ステイトメント37による方法を含み、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップは、前記線形回帰を使用して、前記複数のストレージティアのそれぞれに対する前記第1仮想マシンの性能を予測するステップをさらに含む。
ステイトメント39.
本発明の概念の実施例は、ステイトメント37による方法を含み、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップは、前記複数のリソースのそれぞれに基づいて、前記複数のストレージティアのそれぞれにおいて前記第1仮想マシンに対する性能メトリックを決定するステップをさらに含む。
ステイトメント40.
本発明の概念の実施例は、ステイトメント39による方法を含み、前記複数のリソースのそれぞれに基づいて、前記複数のストレージティアのそれぞれにおいて前記第1仮想マシンに対する性能メトリックを決定するステップは、前記複数のストレージティアのそれぞれで前記第1仮想マシンに対する第1性能メトリックを前記複数のリソースの第2リソースに基づいて、前記複数のストレージティアのそれぞれの前記第1仮想マシンに対する第2性能メトリックに変換するステップをさらに含む。
ステイトメント41.
本発明の概念の実施例は、ステイトメント28による方法を含み、前記複数のストレージティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップは、
I/Oフィルタにおいて、前記仮想マシンから複数の第1I/Oコマンドを受信するステップと、
前記複数の第1I/Oコマンドに第1レイテンシを注入するステップと、
前記複数の第1I/Oコマンドに対する前記仮想マシンに対する第1平均I/Oレイテンシを計算するステップと、を含む。
ステイトメント42.
本発明の概念の実施例は、ステイトメント41による方法を含み、
前記複数の第1I/Oコマンドに第1レイテンシを注入するステップは、前記複数の第1I/Oコマンドに複数のレイテンシを注入するステップを含み、
前記複数の第1I/Oコマンドに対する前記仮想マシンに対する第1平均I/Oレイテンシを計算するステップは、前記複数の第1I/Oコマンドに対する前記仮想マシンに対する複数の平均I/Oレイテンシを計算するステップを含み、
前記方法は、前記複数の平均I/Oレイテンシに対する線形回帰を遂行するステップをさらに含む。
ステイトメント43.
本発明の概念の実施例は、ステイトメント28による方法を含み、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2仮想マシンにマイグレーションすることによってもたらされる性能の変化は、前記第1仮想マシンの改善を含む。
ステイトメント44.
本発明の概念の実施例は、ステイトメント28による方法を含み、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2仮想マシンにマイグレーションすることによってもたらされる性能の変化は、前記第1仮想マシンの性能の減少を含む。
ステイトメント45.
本発明の概念の実施例は、ステイトメント28による方法を含み、前記第1仮想マシンに対する前記第1データの少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションする費用は、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションさせるのに必要なマイグレーション時間を含む。
ステイトメント46.
本発明の概念の実施例は、非一時的な貯蔵媒体を含む物品を含み、前記マシンによって、複数のストレージティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップと、
前記複数のストレージティアの第2仮想マシンの性能をモデリングする第2性能データを受信するステップと、
前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップと、
前記リソースマトリックスを使用して、前記第1仮想マシンに対する第1データを貯蔵するために、前記複数のストレージティア中の第1ストレージティアを選択するステップと、
前記リソースマトリックスを使用して、前記第2仮想マシンに対する第2データを貯蔵するために、前記複数のストレージティアの第2ストレージティアを選択するステップと、
前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするステップと、を含み、
前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、
前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させることによってもたらされる性能の変化を考慮し、
前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択するのは、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させる移動費用を考慮する。
ステイトメント47.
本発明の概念の実施例は、ステイトメント46による物品を含み、前記第2ストレージティアが前記第1ストレージティアである。
ステイトメント48.
本発明の概念の実施例は、ステイトメント46による物品を含み、第1性能データを受信し、第2性能データを受信し、リソースマトリックスを生成し、第1ストレージティアを選択し、また第2ストレージティアを選択するのは、マイグレーションエポック当たり一回遂行される。
ステイトメント49.
本発明の概念の実施例は、ステイトメント48による物品を含み、第1性能データを受信し、第2性能データを受信するのがモニタリングエポック当たり一回遂行される。
ステイトメント50.
本発明の概念の実施例は、ステイトメント49による物品を含み、前記マイグレーションエポックは複数のエポックを含む。
ステイトメント51.
本発明の概念の実施例は、ステイトメント46による物品を含み、前記リソースマトリックスを使用して、前記第1仮想マシンに対する第1データを貯蔵するための第1ストレージティアを前記複数のストレージティアから選択するステップは、前記複数のストレージティアのそれぞれに対する前記リソースマトリックス及び専門性情報を使用して、前記第1仮想マシンに対する第1データを貯蔵するために前記複数のストレージティアの中で前記第1ストレージティアを選択するステップを含み、また前記リソースマトリックスを使用して、前記第2仮想マシンに対する第2データを貯蔵するための第2ストレージティアを前記複数のストレージティアから選択するステップは、前記複数のストレージティアのそれぞれに対する前記リソースマトリックス及び専門性情報を使用して、前記第2仮想マシンに対する第2データを貯蔵するために前記複数のストレージティアの中で前記第2ストレージティアを選択するステップを含む。
ステイトメント52.
本発明の概念の実施例は、ステイトメント51による物品を含み、前記複数のストレージティアのそれぞれに対する前記専門性情報は、前記複数のストレージティアのそれぞれが前記複数のリソースのそれぞれを支援するか否かを識別する。
ステイトメント53.
本発明の概念の実施例は、ステイトメント52による物品を含み、前記複数のリソースは、処理量、帯域幅、容量及びライト増幅を含む。
ステイトメント54.
本発明の概念の実施例は、ステイトメント52による物品を含み、前記複数のストレージティアにおいて前記第1仮想マシンの性能をモデリングする前記第1性能データは、前記第1仮想マシンに対する平均I/Oレイテンシと注入された複数のレイテンシを相互関連させる複数のデータポイントを含む。
ステイトメント55.
本発明の概念の実施例は、ステイトメント54による物品を含み、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップは、前記第1仮想マシンに対する平均I/Oレイテンシを注入されたレイテンシを相互関連させる前記複数のデータポイントに対する線形回帰を遂行するステップを含む。
ステイトメント56.
本発明の概念の実施例は、ステイトメント55による物品を含み、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップは、前記線形回帰を使用して、前記複数のストレージティアのそれぞれに対する前記第1仮想マシンの性能を予測するステップをさらに含む。
ステイトメント57.
本発明の概念の実施例は、ステイトメント55による物品を含み、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを前記複数のストレージティアと前記複数のストレージのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックスを生成するステップは、前記複数のリソースのそれぞれに基づいて、前記複数のストレージティアのそれぞれにおいて記第1仮想マシンに対する性能メトリックを決定するステップをさらに含む。
ステイトメント58.
本発明の概念の実施例は、ステイトメント57による物品を含み、前記複数のリソースのそれぞれに基づいて、前記複数のストレージティアのそれぞれにおいて前記第1仮想マシンに対する性能メトリックを決定するステップは、前記複数のストレージティアのそれぞれにおいて前記第1仮想マシンに対する第1性能メトリックを前記複数のリソースの第2リソースに基づいて、前記複数のストレージティアのそれぞれの前記第1仮想マシンに対する第2性能メトリックに変換するステップをさらに含む。
ステイトメント59.
本発明の概念の実施例は、ステイトメント57による物品を含み、前記複数のストレジティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップは、
I/Oフィルタにおいて、前記仮想マシンから複数の第1I/Oコマンドを受信するステップと、
前記複数の第1I/Oコマンドに第1レイテンシを注入するステップと、
前記複数の第1I/Oコマンドに対する前記仮想マシンに対する第1平均I/Oレイテンシを計算するステップと、を含む。
ステイトメント60.
本発明の概念の実施例は、ステイトメント59による物品を含み、
前記複数の第1I/Oコマンドに第1レイテンシを注入するステップは、前記複数の第1I/Oコマンドに複数のレイテンシを注入するステップを含み、
前記複数の第1I/Oコマンドに対する前記仮想マシンに対する第1平均I/Oレイテンシを計算するステップは、前記複数の第1I/Oコマンドに対する前記仮想マシンに対する複数の平均I/Oレイテンシを計算するステップを含み、
前記方法は、前記複数の平均I/Oレイテンシに対する線形回帰を遂行するステップをさらに含む。
ステイトメント61.
本発明の概念の実施例は、ステイトメント46による物品を含み、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2仮想マシンにマイグレーションすることによってもたらされる性能の変化は、前記仮想マシンの性能の改善を含む。
ステイトメント62.
本発明の概念の実施例は、ステイトメント46による物品を含み、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2仮想マシンにマイグレーションすることによってもたらされる性能の変化は、前記第1仮想マシンの性能の減少を含む。
ステイトメント63.
本発明の概念の実施例は、ステイトメント46による物品を含み、前記第1仮想マシンに対する前記第1データの少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションする費用は、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションさせるのに必要なマイグレーション時間を含む。
結論的に、本明細書に記述された実施例に対する様々な変更の観点から、詳細な説明及び添付した資料は、ただ例示的なものと意図し、本発明の概念の範囲を制限するものと見なされてはならない。したがって、本発明の概念として請求するのは、以下の請求の範囲及びその均等物の範囲及び思想内に有り得る全ての変形である。
本発明は、データストレージデバイスにおいてストレージティア仮想マシンの自動管理に有用である。
105 システム
110 サーバー
110-1、110-2、110-3 仮想マシンサーバー
115、115-1、115-2、115-3、115-4 プロセッサ
120、120-1、120-2、120-3、120-4 メモリー
125-1、125-2、125-3 キャッシュ
130 データセンターサーバー(サーバー)
135 ストレージプール
140 受信機
145 送信機
150 ネットワーク
205 メモリコントローラー
210 クロック
215 ネットワークコネクター
220 バス
225 ユーザインターフェース
230 入力/出力エンジン
305-1、305-2、305-3 仮想マシン
310 アプリケーション
315 O/S
320 ハイパーバイザー
325 I/Oフィルター
330 オートティアリングデーモン
335 オートティアリングコントローラー
340-1、340-2、340-3 ストレージティア
345 ストレージデバイス
405 リソース
410 処理量
415 帯域幅
420 容量
425 ライト増幅ファクター
505、510 仮想マシンファイル
515 矢印
705 I/Oコマンド
710 注入されたレイテンシ
715 応答
720 性能データ
805 線形回帰モジュール
810 リソースマトリックス生成器
815 メトリックコンバーター
820 専門性情報
825 ティア選択モジュール
830 マイグレーションモジュール
905 リソースマトリックス
910、915、920 2次元マトリックス
1005、1010 線形回帰
1205 スコアマトリックス
1305 マイグレーションエポック
1310 モニタリングエポック

Claims (19)

  1. 複数のストレージティアで構成されて第1仮想マシンに対する第1データ及び第2仮想マシンに対する第2データを貯蔵し、複数のリソースを提供する複数のストレージデバイスと、
    前記第1仮想マシンから第1入出力(I/O)コマンド、前記第2仮想マシンから第2入出力(I/O)コマンド、前記複数のストレージティアにおいて前記第1仮想マシンの性能をモデリングする第1性能データ、及び前記複数のストレージティアにおいて前記第2仮想マシンの性能をモデリングする第2性能データを受信する受信機と、
    前記第1I/Oコマンドに対する第1応答を前記第1仮想マシンに送信し、前記第2I/Oコマンドに対する第2応答を前記第2仮想マシンに送信するための送信機と、
    前記第1仮想マシンに対する前記第1データを貯蔵するための第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための第2ストレージティアを選択し、前記第1性能データ及び前記第2性能データに応答して、前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするためのオートティアリングコントローラー(auto-tiering controller)と、を具備し、
    前記オートティアリングコントローラーは、前記第1仮想マシンに対する前記第1データを貯蔵するための前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための前記第2ストレージティアを選択し、前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、
    前記オートティアリングコントローラーは、前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへ移動させることによって、もたらされる性能の変化、及び前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアへ移動させるマイグレーション費用を考慮するように動作し、
    前記オートティアリングコントローラーは、
    少なくともプロセッサを用いて実装され、前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを、前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれと関連させるリソースマトリックス(resource matrix)を生成するリソースマトリックス生成器を含む、ことを特徴とするシステム。
  2. 前記オートティアリングコントローラーは、
    少なくともプロセッサを用いて実装され、前記第1性能データ及び前記第2性能データに応答して、前記第1仮想マシンに対する前記第1ストレージティアと前記第2仮想マシンに対する前記第2ストレージティアを選択するティア選択モジュールと、
    前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするためのマイグレーションモジュールと、を含む、ことを特徴とする請求項1に記載のシステム。
  3. 前記リソースマトリックス生成器は、
    少なくともプロセッサを用いて実装され、前記複数のストレージティアのそれぞれにおいて前記第1仮想マシンに対する第1性能メトリック(metric)を前記複数のリソースの第2リソースに基づいて、前記複数のストレージティアのそれぞれの前記第1仮想マシンに対する第2性能メトリックに変換するメトリックコンバーターを含む、ことを特徴とする請求項に記載のシステム。
  4. 前記第1性能メトリックは、前記第1仮想マシンに対する第1平均I/Oレイテンシデータを含む、ことを特徴とする請求項に記載のシステム。
  5. 前記オートティアリングコントローラーは、前記第1性能データに対する第1線形回帰を遂行し、前記第2性能データに対する第2線形回帰を遂行する線形回帰モジュールを含み、
    前記オートティアリングコントローラーは、前記第1線形回帰及び前記第2線形回帰に応答して、前記第1仮想マシンに対する前記第1データを貯蔵するために前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するために前記第2ストレージティアを選択する、ことを特徴とする請求項1に記載のシステム。
  6. 前記オートティアリングコントローラーは、前記第1線形回帰及び前記第2線形回帰に応答して、前記第1仮想マシンと前記第2仮想マシンに対する予測された平均I/Oレイテンシを使用することによって、前記第1仮想マシンに対する前記第1データを貯蔵するための前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための前記第2ストレージティアを選択する、ことを特徴とする請求項に記載のシステム。
  7. 前記オートティアリングコントローラーは、前記第1仮想マシンに対する前記第1データを貯蔵するための前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するための前記第2ストレージティアを選択するように構成され、またマイグレーションエポック当たり前記第1性能データと前記第2性能データに応答して、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするように動作する、ことを特徴とする請求項1に記載のシステム。
  8. 前記第1性能データは、前記マイグレーションエポック内の複数のモニタリングエポックからの第1性能データを含み、
    前記第2性能データは、前記マイグレーションエポック内の前記複数のモニタリングエポックからの第2性能データを含む、ことを特徴とする請求項に記載のシステム。
  9. 前記第1仮想マシンを貯蔵する第1仮想マシンサーバーと、
    前記第2仮想マシンを貯蔵する第2仮想マシンサーバーと、を含む、ことを特徴とする請求項1に記載のシステム。
  10. 前記第1仮想マシンサーバーは、前記複数のストレージティアで前記第1仮想マシンの性能をモデリングする前記第1性能データを生成するためのI/Oフィルターを含む、ことを特徴とする請求項に記載のシステム。
  11. 前記I/Oフィルタは前記第1仮想マシンからの複数のI/Oコマンドにレイテンシを注入するように動作し、前記複数のI/Oコマンドは前記第1I/Oコマンドを含み、前記注入されたレイテンシに応答して前記第1仮想マシンに対する平均I/Oレイテンシを決定する、ことを特徴とする請求項10に記載のシステム。
  12. 複数のストレージティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップと、
    前記複数のストレージティアの第2仮想マシンの性能をモデリングする第2性能データを受信するステップと、
    前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを、前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれに関連させるリソースマトリックスを生成するステップと、
    前記リソースマトリックスを使用して、前記第1仮想マシンに対する第1データを貯蔵するために、前記複数のストレージティアの中の第1ストレージティアを選択するステップと、
    前記リソースマトリックスを使用して、前記第2仮想マシンに対する第2データを貯蔵するために、前記複数のストレージティアの中の第2ストレージティアを選択するステップと、
    前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするステップと、を有し、
    前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択することは、前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、
    前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択することは、前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させることによって、もたらされる性能変化を考慮し、
    前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択することは、前記第1仮想マシンに対する前記第1データの中の少なくとも1つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするマイグレーションの費用を考慮する、ことを特徴とする方法。
  13. 前記リソースマトリックスを使用して、前記第1仮想マシンに対する前記第1データを貯蔵するために前記複数のストレージティアの中の前記第1ストレージティアを選択するステップは、前記複数のストレージティアのそれぞれに対する前記リソースマトリックス及び専門性情報を使用して、前記第1仮想マシンに対する前記第1データを貯蔵するために前記複数のストレージティアの中の前記第1ストレージティアを選択するステップを含み、
    前記リソースマトリックスを使用して、前記第2仮想マシンに対する前記第2データを貯蔵するために前記複数のストレージティアの中の前記第2ストレージティアを選択するステップは、前記複数のストレージティアのそれぞれに対する前記リソースマトリックス及び前記専門性情報を使用して、前記第2仮想マシンに対する前記第2データを貯蔵するために前記複数のストレージティアの中の前記第2ストレージティアを選択するステップを含む、ことを特徴とする請求項12に記載の方法。
  14. 前記複数のストレージティアのそれぞれに対する前記専門性情報は、前記複数のストレージティアのそれぞれが前記複数のリソースのそれぞれを支援するか否かを識別する、ことを特徴とする請求項13に記載の方法。
  15. 前記複数のストレージティアにおいて前記第1仮想マシンの前記性能をモデリングする前記第1性能データは、前記第1仮想マシンに対する平均I/Oレイテンシと注入された複数のレイテンシとを相互関連させる複数のデータポイントを含む、ことを特徴とする請求項14に記載の方法。
  16. 前記複数のストレージティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップは、
    I/Oフィルタにおいて、前記仮想マシンから複数の第1I/Oコマンドを受信するステップと、
    前記複数の第1I/Oコマンドに第1レイテンシを注入するステップと、
    前記複数の第1I/Oコマンドに対する前記仮想マシンの第1平均I/Oレイテンシを計算するステップと、を含む、ことを特徴とする請求項12に記載の方法。
  17. 前記第1仮想マシンに対する前記第1データの少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションする費用は、前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションさせるのに必要なマイグレーション時間を含む、ことを特徴とする請求項12に記載の方法。
  18. 複数のストレージティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップと、
    前記複数のストレージティアの第2仮想マシンの性能をモデリングする第2性能データを受信するステップと、
    前記第1性能データと前記第2性能データを使用して、前記第1仮想マシン及び前記第2仮想マシンを、前記複数のストレージティアと前記複数のストレージティアのそれぞれに対する複数のリソースのそれぞれに関連させるリソースマトリックスを生成するステップと、
    前記リソースマトリックスを使用して、前記第1仮想マシンに対する第1データを貯蔵するために、前記複数のストレージティアの中の第1ストレージティアを選択するステップと、
    前記リソースマトリックスを使用して、前記第2仮想マシンに対する第2データを貯蔵するために、前記複数のストレージティアの中の第2ストレージティアを選択するステップと、
    前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするステップと、を有し、
    前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択することは、前記複数のストレージティアの全般の全ての仮想マシンの性能を最適化し、
    前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択することは、前記第1仮想マシンに対する前記第1データ中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアに移動させることによって、もたらされる性能の変化を考慮し、
    前記第1仮想マシンに対する前記第1データを貯蔵するように前記第1ストレージティアを選択し、前記第2仮想マシンに対する前記第2データを貯蔵するように前記第2ストレージティアを選択することは、前記第1仮想マシンに対する前記第1データの中の少なくとも一つを前記第1ストレージティアに、又は前記第2仮想マシンに対する前記第2データを前記第2ストレージティアにマイグレーションするマイグレーション費用を考慮する方法を、コンピュータに実行させるための命令語が記録されたコンピュータ読み取り可能な非一時的な記録媒体。
  19. 前記複数のストレージティアの第1仮想マシンの性能をモデリングする第1性能データを受信するステップは、
    I/Oフィルタにおいて、前記仮想マシンから複数の第1I/Oコマンドを受信するステップと、
    前記複数の第1I/Oコマンドに第1レイテンシを注入するステップと、
    前記複数の第1I/Oコマンドに対する前記仮想マシンの第1平均I/Oレイテンシを計算するステップと、を含む、ことを特徴とする請求項18に記載のコンピュータ読み取り可能な非一時的な記録媒体。
JP2018134736A 2017-07-19 2018-07-18 オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体 Active JP7063756B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762534647P 2017-07-19 2017-07-19
US62/534647 2017-07-19
US15/887,980 US10795583B2 (en) 2017-07-19 2018-02-02 Automatic data placement manager in multi-tier all-flash datacenter
US15/887980 2018-02-02

Publications (3)

Publication Number Publication Date
JP2019021315A JP2019021315A (ja) 2019-02-07
JP2019021315A5 JP2019021315A5 (ja) 2021-07-29
JP7063756B2 true JP7063756B2 (ja) 2022-05-09

Family

ID=65018952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018134736A Active JP7063756B2 (ja) 2017-07-19 2018-07-18 オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体

Country Status (5)

Country Link
US (1) US10795583B2 (ja)
JP (1) JP7063756B2 (ja)
KR (1) KR102362045B1 (ja)
CN (1) CN109284068B (ja)
TW (1) TWI746846B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10896069B2 (en) * 2018-03-16 2021-01-19 Citrix Systems, Inc. Dynamically provisioning virtual machines from remote, multi-tier pool
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US11216314B2 (en) * 2018-11-02 2022-01-04 EMC IP Holding Company LLC Dynamic reallocation of resources in accelerator-as-a-service computing environment
US11392400B2 (en) * 2019-07-17 2022-07-19 Hewlett Packard Enterprise Development Lp Enhanced migration of clusters based on data accessibility
US11347702B2 (en) 2019-12-19 2022-05-31 Hewlett Packard Enterprise Development Lp Migration of data in a system having multi-tiered physical storage
CN111176793A (zh) * 2019-12-31 2020-05-19 北京安码科技有限公司 实现虚拟机跨平台格式转换的方法、系统、电子设备及存储介质
CN111367470B (zh) * 2020-02-21 2021-09-17 苏州浪潮智能科技有限公司 分布式存储卷在线迁移方法、系统、装置及可读存储介质
KR102383941B1 (ko) * 2020-06-25 2022-04-06 김웅경 Ansi/bicsi 009-2019 표준 기반 데이터 센터 하드웨어 등급판정 시스템
KR102346279B1 (ko) * 2020-06-25 2021-12-31 김웅경 Ansi/bicsi 009-2019 표준 기반 데이터 센터 하드웨어 운용 관리 시스템
KR102425505B1 (ko) * 2020-07-21 2022-07-25 고려대학교 산학협력단 이종 가상화 데이터 센터에서 주변 온도를 고려한 가상 머신 배치 방법 및 장치
CN111966473B (zh) * 2020-07-24 2024-02-06 支付宝(杭州)信息技术有限公司 一种线性回归任务的运行方法及装置、电子设备
US11740921B2 (en) * 2020-11-23 2023-08-29 Google Llc Coordinated container scheduling for improved resource allocation in virtual computing environment
US11593180B2 (en) * 2020-12-15 2023-02-28 Kyndryl, Inc. Cluster selection for workload deployment
US20230092253A1 (en) * 2021-09-17 2023-03-23 International Business Machines Corporation Interpolating performance data
CN114201119B (zh) * 2022-02-17 2022-05-13 天津市天河计算机技术有限公司 一种超级计算机作业数据分层存储系统及方法
KR102495450B1 (ko) * 2022-06-10 2023-02-06 요다정보기술(주) 클라우드 환경에서의 파일공유 시스템

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108409A (ja) 2008-10-31 2010-05-13 Hitachi Ltd ストレージ管理方法及び管理サーバ
JP2013069214A (ja) 2011-09-26 2013-04-18 Fujitsu Ltd ストレージシステム
US20130159359A1 (en) 2011-12-15 2013-06-20 Sanjay Kumar Dynamic Storage Tiering In A Virtual Environment
JP2013164822A (ja) 2012-02-13 2013-08-22 Fujitsu Ltd 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法
JP5314772B2 (ja) 2010-01-28 2013-10-16 株式会社日立製作所 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
JP5363595B2 (ja) 2010-02-08 2013-12-11 株式会社日立製作所 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法
JP2014199596A (ja) 2013-03-29 2014-10-23 富士通株式会社 データ配置プログラム、データ配置方法、及び情報処理装置
JP5986319B2 (ja) 2013-12-10 2016-09-06 株式会社日立製作所 ストレージ管理システム

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101566931B (zh) * 2003-08-14 2011-05-18 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
US8271989B2 (en) 2008-02-07 2012-09-18 International Business Machines Corporation Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
JP4874368B2 (ja) 2009-06-22 2012-02-15 株式会社日立製作所 フラッシュメモリを用いたストレージシステムの管理方法及び計算機
US8850151B2 (en) 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US8356147B2 (en) 2010-08-20 2013-01-15 Hitachi, Ltd. Tiered storage pool management and control for loosely coupled multiple storage environment
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9183219B1 (en) 2011-04-18 2015-11-10 American Megatrends, Inc. Data migration between multiple tiers in a storage system using policy based ILM for QOS
US10013281B2 (en) 2011-06-29 2018-07-03 Microsoft Technology Licensing, Llc Controlling network utilization
US9489133B2 (en) * 2011-11-30 2016-11-08 International Business Machines Corporation Optimizing migration/copy of de-duplicated data
WO2013118194A1 (en) 2012-02-10 2013-08-15 Hitachi, Ltd. Storage system with virtual volume having data arranged astride storage devices, and volume management method
US9021203B2 (en) * 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
US10817202B2 (en) 2012-05-29 2020-10-27 International Business Machines Corporation Application-controlled sub-LUN level data migration
US20140025890A1 (en) 2012-07-19 2014-01-23 Lsi Corporation Methods and structure for improved flexibility in shared storage caching by multiple systems operating as multiple virtual machines
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US9146688B2 (en) 2012-12-05 2015-09-29 SanDisk Technologies, Inc. Advanced groomer for storage array
US9665621B1 (en) 2013-03-14 2017-05-30 EMC IP Holding Company LLC Accelerated query execution within a storage array
US9268699B2 (en) 2013-06-03 2016-02-23 Samsung Electronics Co., Ltd. Dynamic cache allocation in a solid state drive environment
US9342253B1 (en) * 2013-08-23 2016-05-17 Nutanix, Inc. Method and system for implementing performance tier de-duplication in a virtualization environment
US9183151B2 (en) 2013-08-30 2015-11-10 Vmware, Inc. Thread cache allocation
US9471350B2 (en) * 2013-09-26 2016-10-18 Intel Corporation Live migration of virtualized systems
CN104657215A (zh) * 2013-11-19 2015-05-27 南京鼎盟科技有限公司 云计算中虚拟化节能系统
US10129105B2 (en) * 2014-04-09 2018-11-13 International Business Machines Corporation Management of virtual machine placement in computing environments
KR101652324B1 (ko) 2014-06-13 2016-08-31 고려대학교 산학협력단 요구 성능 보장 방법 및 요구 성능 보장 장치
US9535844B1 (en) 2014-06-30 2017-01-03 EMC IP Holding Company LLC Prioritization for cache systems
US9477427B2 (en) * 2014-09-19 2016-10-25 Vmware, Inc. Storage tiering based on virtual machine operations and virtual volume type
CN104298339B (zh) * 2014-10-11 2017-02-15 东北大学 一种面向最小能耗的服务器整合方法
US20160179582A1 (en) 2014-12-23 2016-06-23 Intel Corporation Techniques to dynamically allocate resources for local service chains of configurable computing resources
CN105808150B (zh) 2014-12-29 2018-09-07 先智云端数据股份有限公司 用于混合式储存设备的固态硬盘快取系统
US9513835B2 (en) * 2015-01-09 2016-12-06 International Business Machines Corporation Impact-based migration scheduling from a first tier at a source to a second tier at a destination
US9983795B1 (en) * 2015-03-31 2018-05-29 EMC IP Holding Company LLC Techniques for determining a storage configuration
US9710178B2 (en) * 2015-04-10 2017-07-18 International Business Machines Corporation Optimizing volume placement based upon desired response time and priority
CN106155929A (zh) * 2015-04-17 2016-11-23 伊姆西公司 数据存储管理系统和方法
US10048989B2 (en) * 2015-05-18 2018-08-14 Krystallize Technologies, Inc. Automated workload analysis and simulation process
US9703664B1 (en) * 2015-06-24 2017-07-11 EMC IP Holding Company LLC Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling
US10275320B2 (en) * 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10599352B2 (en) 2015-08-14 2020-03-24 Samsung Electronics Co., Ltd. Online flash resource allocation manager based on a TCO model
US10289958B1 (en) * 2015-09-29 2019-05-14 EMC IP Holding Company LLC Storage system with machine learning based skew prediction
US10140034B2 (en) * 2015-11-24 2018-11-27 International Business Machines Corporation Solid-state drive assignment based on solid-state drive write endurance
US11455097B2 (en) 2016-01-28 2022-09-27 Weka.IO Ltd. Resource monitoring in a distributed storage system
CA2957584A1 (en) * 2016-02-12 2017-08-12 Coho Data, Inc. Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems
US10540165B2 (en) 2016-02-12 2020-01-21 Nutanix, Inc. Virtualized file server rolling upgrade
US10282095B2 (en) * 2016-03-09 2019-05-07 Hitachi, Ltd. Method and device for managing performance of storage apparatus
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10331383B2 (en) * 2016-06-24 2019-06-25 International Business Machines Corporation Updating storage migration rates
US10254970B1 (en) * 2016-06-30 2019-04-09 EMC IP Holding Company LLC System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits
US11138160B2 (en) * 2016-07-13 2021-10-05 International Business Machines Corporation Application performance using multidimensional predictive algorithm for automated tiering mechanisms
US10467195B2 (en) 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US10095416B2 (en) * 2016-09-27 2018-10-09 International Business Machines Corporation Storage optimization based on application feedback
US10810160B2 (en) * 2017-06-08 2020-10-20 International Business Machines Corporation Automated hardware device storage tiering
US10318425B2 (en) 2017-07-12 2019-06-11 International Business Machines Corporation Coordination of cache and memory reservation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108409A (ja) 2008-10-31 2010-05-13 Hitachi Ltd ストレージ管理方法及び管理サーバ
JP5314772B2 (ja) 2010-01-28 2013-10-16 株式会社日立製作所 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法
JP5363595B2 (ja) 2010-02-08 2013-12-11 株式会社日立製作所 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法
JP2013069214A (ja) 2011-09-26 2013-04-18 Fujitsu Ltd ストレージシステム
US20130159359A1 (en) 2011-12-15 2013-06-20 Sanjay Kumar Dynamic Storage Tiering In A Virtual Environment
JP2013164822A (ja) 2012-02-13 2013-08-22 Fujitsu Ltd 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法
JP2014199596A (ja) 2013-03-29 2014-10-23 富士通株式会社 データ配置プログラム、データ配置方法、及び情報処理装置
JP5986319B2 (ja) 2013-12-10 2016-09-06 株式会社日立製作所 ストレージ管理システム

Also Published As

Publication number Publication date
US10795583B2 (en) 2020-10-06
CN109284068B (zh) 2024-01-05
JP2019021315A (ja) 2019-02-07
KR102362045B1 (ko) 2022-02-11
TWI746846B (zh) 2021-11-21
US20190026030A1 (en) 2019-01-24
CN109284068A (zh) 2019-01-29
KR20190009694A (ko) 2019-01-29
TW201908970A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
JP7063756B2 (ja) オートティアリングを遂行するためのシステム、その方法、及び実行のための命令語が記録された記録媒体
US10261842B2 (en) System and method for managing a virtualized computing environment
Wu et al. Performance modeling of virtual machine live migration
US20180276233A1 (en) Techniques for implementing hybrid flash/hdd-based virtual disk files
US9495104B2 (en) Automated space management for server flash cache
KR101867635B1 (ko) 저장소 환경에서의 재구성 i/o 판독 동작들의 스케줄링
JP4699837B2 (ja) ストレージシステム、管理計算機及びデータ移動方法
US8966218B2 (en) On-access predictive data allocation and reallocation system and method
US20150317101A1 (en) Computer system and control method for the same
JP5363595B2 (ja) 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法
US10048896B2 (en) Methods and systems for determining performance capacity of a resource of a networked storage environment
JP7442523B2 (ja) ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上
US10831374B2 (en) Minimizing seek times in a hierarchical storage management (HSM) system
JP2023553316A (ja) ストレージシステム最適化を使用したアプリケーション性能の強化
Bhimani et al. FIOS: Feature based I/O stream identification for improving endurance of multi-stream SSDs
Chen et al. Towards efficient NVDIMM-based heterogeneous storage hierarchy management for big data workloads
US20210064250A1 (en) Preparing a data storage system for maintenance operations
US10379912B2 (en) Data storage allocation utilizing virtual machine resource allocation
Ruiu et al. Automatic dynamic allocation of cloud storage for scientific applications
US10528447B2 (en) Storage system performance models based on empirical component utilization
Han et al. Achieving Performance Isolation in Docker Environments with ZNS SSDs
Neuer et al. Motivation and implementation of a dynamic remote storage system for I/O demanding HPC applications
Peng et al. Weight‐based strategy for an I/O‐intensive application at a cloud data center
Wen Improving Application Performance in the Emerging Hyper-converged Infrastructure
JP6696220B2 (ja) データ移行装置、データ移行システム、方法およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210615

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210615

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220421

R150 Certificate of patent or registration of utility model

Ref document number: 7063756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150