JP6017684B2 - リソースプーリングを利用した、要求ベースによるストレージの分散型クオリティ・オブ・サービス管理 - Google Patents

リソースプーリングを利用した、要求ベースによるストレージの分散型クオリティ・オブ・サービス管理 Download PDF

Info

Publication number
JP6017684B2
JP6017684B2 JP2015515211A JP2015515211A JP6017684B2 JP 6017684 B2 JP6017684 B2 JP 6017684B2 JP 2015515211 A JP2015515211 A JP 2015515211A JP 2015515211 A JP2015515211 A JP 2015515211A JP 6017684 B2 JP6017684 B2 JP 6017684B2
Authority
JP
Japan
Prior art keywords
host computer
value
client
resource
common resource
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
JP2015515211A
Other languages
English (en)
Other versions
JP2015525397A5 (ja
JP2015525397A (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.)
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 JP2015525397A publication Critical patent/JP2015525397A/ja
Publication of JP2015525397A5 publication Critical patent/JP2015525397A5/ja
Application granted granted Critical
Publication of JP6017684B2 publication Critical patent/JP6017684B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

ネットワークコンピュータのためのリソース、例えばデータストレージファシリティの共有は、保守および運転費用を低減化し、個々のリソースの使用に関する柔軟性を実現し、リソース管理を単純化することによって、効率を改善できる。共有ストレージに関して、利点には、データ統合、データへのユニバーサルアクセス、容易なストレージ管理、仮想化環境のための仮想マシン(VM:virtual machine)のライブマイグレーション(live migration)のサポートが含まれる。
リソース共有の重要な一面がクオリティ・オブ・サービス(QoS:Quality of Service)であり、これは共有リソースが複数のユーザまたはクライアント間である方針に従って割り振られるというリソース管理方式を指す。この方針は、サービスの最小および/または最大レベルを(例えば、共有リソースのパーセンテージとして)保証するものであってもよい。また、文献の中で「使用比率配分(weight)」とも呼ばれる、割り当てられたリソースの「シェア」に従ってサービスを分配し、各クライアントに、割り当てられたシェアと同じ比率でそのピア(peer)と同等のレベルのサービスが提供されるようにすることも一般的である。これらのアプローチを、特定の方針のために組み合わせることが可能である。それゆえ、QoSにより、サービスを均等に分配し、または選択されたアプリケーション、ユーザ、またはデータフローに任意で割当の優先順位を付けて、共有ストレージ環境におけるワークロードパフォーマンスを管理できることが提案される。
共通リソースにアクセスするためにホストコンピュータ上で動作中のクライアントにクオリティ・オブ・サービス(QoS)を提供するシステムおよび方法は、ホストコンピュータのうちの少なくとも1つのリソースプールモジュールとローカルスケジューラを使用する。リソースプールモジュールは、共通リソースに関する各クライアントのエンタイトルメントを、共通リソースの現在のキャパシティと共通リソースに対するクライアントの要求に基づいて計算するように動作する。これに加えて、リソースプールモジュールは、共通リソースの計算された現在のキャパシティの一部を特定のホストコンピュータに、その特定のホストコンピュータ上で動作中の各クライアントの計算されたエンタイトルメントに基づいて割り当てるように動作する。ローカルスケジューラは、計算された現在のキャパシティの一部を、その特定のホストコンピュータ上で動作中のクライアント間で割り振るように動作する。
本発明のある実施形態による、共通リソースにアクセスするためにホストコンピュータ上で動作中のクライアントのためにQoSを提供する方法は、クライアントが共通リソースにアクセスする際のレイテンシの全体的な平均に基づいて共通リソースの現在のキャパシティを計算するステップと、共通リソースに関する各クライアントのエンタイトルメントを、計算された現在のキャパシティと共通リソースに対するクライアントの要求に基づいて計算するステップと、共通リソースの計算された現在のキャパシティの一部を特定のホストコンピュータに、その特定のホストコンピュータ上で動作中の各クライアントの計算されたエンタイトルメントに基づいて割り当てるステップと、計算された現在の能力の一部を特定のホストコンピュータ上で動作中のクライアント間で割り振るステップと、を含む。いくつかの実施形態において、この方法のステップは、コンピュータ可読ストレージ媒体に含まれるプログラム命令がホストコンピュータの1つまたは複数のプロセッサによって実行されるときに行われる。
本発明のある実施形態によるシステムは、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに動作的に接続された複数のクライアントと、共通リソースにアクセスするためのクライアントのリクエストを保存するホストキューを備えるリソースインタフェースと、少なくとも1つのプロセッサに動作的に接続されたリソースプールモジュールと、リソースプールモジュールに動作的に接続されたスケジューラと、を含む。リソースプールモジュールは、クライアントが共通リソースにアクセスする際のレイテンシの全体的な平均に基づいて共通リソースの現在のキャパシティを計算するように構成された第一の構成要素と、共通リソースに関する各クライアントのエンタイトルメントを、計算された現在のキャパシティと共通リソースに対するクライアントの要求に基づいて計算するように構成された第二の構成要素と、共通リソースの計算された現在のキャパシティの一部を特定のホストコンピュータに、各クライアントの計算されたエンタイトルメントを使って割り当てるように構成された第三の構成要素と、を含む。スケジューラは、計算された現在のキャパシティの一部を、ホストコンピュータ上で動作中の少なくとも1つのクライアント間で割り振るように構成されている。
本発明の実施形態の他の態様と利点は、本発明の原理の例として示される以下の詳細な説明を、添付の図面と併せて読むことによって明らかとなるであろう。
本発明のある実施形態によるネットワークコンピュータシステムのブロック図である。 本発明のある実施形態による図1のネットワークコンピュータシステムのホストコンピュータのブロック図である。 本発明のある実施形態による、異なるVM集合を示すためのネットワークコンピュータの仮装マシン(VM)、ホストコンピュータ、ストレージの概略図である。 本発明のある実施形態による、VMを用いたリソースプール階層構造の概略図である。 本発明のある実施形態による、ホストコンピュータに含められたストレージリソースプール(SRP:storage resource pool)モジュールのブロック図である。 図4に示されるリソースプール階層構造の別の概略図である。 本発明のある実施形態による、異なるデータストアに基づいて分割されるリソースプール階層構造を示すブロック図である。 本発明のある実施形態による、共通リソースにアクセスするためにホストコンピュータ上で動作中のクライアントのためにクオリティ・オブ・サービス(QoS)を提供する方法のフロー図である。
説明文全体を通じて、同様の要素を特定するために同様の参照番号が使用されている場合がある。
容易に理解されるように、本明細書で一般的に説明され、添付の図面に示される実施形態の構成要素は、様々な異なる構成に配置、構成することができる。それゆえ、図面に示されているような各種の実施形態に関する以下のより詳しい説明は、本願の範囲を限定しようとするものではなく、各種の実施形態を代表しているにすぎない。実施形態の様々な態様が図面に示されているが、図面は、特にことわりがないかぎり、必ずしも正確な縮尺で描かれているわけではない。
本発明は、その主旨または本質的な特性から逸脱することなく、他の具体的な形態で実施してもよい。説明されている実施形態は、あらゆる点において、あくまでも例示であり、限定的とはみなされない。したがって、本発明の範囲はこの詳細な説明ではなく、付属の特許請求の範囲によって示される。特許請求の範囲の意味と均等性の範囲内に含まれるすべての変更形態は、その範囲に包含される。
本明細書を通じた特徴、利点または同様の文言への言及は、本発明により実現可能な特徴と利点のすべてが、本発明のいずれか1つの実施形態にあるべきであるか、またはあることを暗示していない。むしろ、特徴と利点に言及する文言は、ある実施形態に関連して説明されている具体的な特徴、利点、または特性が本発明の少なくとも1つの実施形態に含められることを意味すると理解する。それゆえ、本明細書を通じた機能と利点に関する議論および同様の文言は、同じ実施形態を指していることもあるが、必ずしもそうとはかぎらない。
さらに、説明されている本発明の特徴、利点、特性は、1つまたは複数の実施形態の中で任意の適当な方法で組み合わせてもよい。当業者であれば、本明細書の説明から、本発明が、特定の実施形態の具体的な特徴または利点のうちの1つまたは複数がなくても実施可能であることがわかるであろう。また別の場合には、ある実施形態において、本発明のすべての実施形態の中にあるとはかぎらない追加の機能と利点が認められ得る。
本明細書全体における「1つの実施形態」、「ある実施形態」への言及または同様の文言は、明記された実施形態に関連して説明された特定の特徴、構造または特性が、本発明の少なくとも1つの実施形態に含められることを意味する。それゆえ、本明細書中の「1つの実施形態において」、「ある実施形態において」、および類似の文言はすべてが同じ実施形態を指していることもあるが、必ずしもそうとはかぎらない。
リソース管理に関する従来のクオリティ・オブ・サービス(QoS)技術では、異なるインフラストラクチャおよび/または目的を有する異なる企業に対応するのに十分な管理が提供されない。これに加えて、QoS技術の中には中央集中的スケジューラを必要とするものがあり、これによってQoSメカニズムが一層複雑化する可能性があり、またシステム全体の不具合もさらに起きやすくなり得る。
従来のQoS技術の限界と問題を鑑み、中央集中的スケジューラ(centralized performance)を使用せずに、共有リソース環境中のワークロードパフォーマンス(workload performance)に対する管理を維持するためのQoS管理が求められている。
ここで、図1を参照すると、本発明のある実施形態によるネットワークコンピュータシステム100が示されている。図1に示されるように、ネットワークコンピュータシステムは、ネットワーク102と、ネットワークに接続された多数のホストコンピュータ104A、104B...104Nと、同じくネットワークに接続された共有ストレージ106と、を含む。それゆえ、ホストコンピュータ104の各々は、ネットワークを介して共有ストレージにアクセスし、ストレージによって提供されるリソースを他のホストコンピュータと共有できる。その結果、任意のホストコンピュータ上で実行中の任意のプロセスが、ネットワークを介してストレージにアクセスできる。より詳しく説明するように、図の実施形態では、分散されたホストコンピュータは、要求ベースのQoSメカニズムを実行することによって、ホストコンピュータにより共有されているストレージリソースに関するワークロードパフォーマンスに対する管理を維持する。
ネットワーク102は、ネットワークに接続されたデバイス間の通信を可能にする任意の種類のコンピュータネットワークまたはネットワークの組み合わせであってよい。ネットワーク102は、インターネット、広域ネットワーク(WAN:wide area network)、ローカルエリアネットワーク(LAN:local area network)、ストレージエリアネットワーク(SAN:storage area network)、ファイバチャネルネットワークおよび/またはその他のネットワークを含んでいてもよい。ネットワーク102は、ストレージアレイとの通信に適したプロトコル、例えばFibre Channel、iSCSI、FCoE、HyperSCSI等をサポートするように構成されていてもよい。
ホストコンピュータ104A、104B...104Nは、1つまたは複数のクライアントをホストまたはサポートする物理的コンピュータシステムであり、これによってクライアントは物理的コンピュータシステム上で動作する。ホストコンピュータは、データセンタで一般的に見られるサーバであってもよい。本明細書において、「クライアント」という用語は、コンピュータシステム上で実行可能な任意のソフトウェアエンティティ、例えばソフトウェアアプリケーション、ソフトウェアプロセスまたは仮想マシン(VM)である。ホストコンピュータについては、以下により詳しく説明する。
ストレージ106は、ホストコンピュータ104A、140B...104Nのためのデータを保存するために使用され、これにはコンピュータシステムに接続された他の任意のストレージデバイスと同様にアクセスできる。ある実施形態において、ストレージは、ホストコンピュータ上で動作中のクライアント等のエンティティにより、任意のファイルシステム、例えば仮想マシンファイルシステム(VMFS;virtual machine file system)またはネットワークファイルシステム(NFS:network file system)等を使用してアクセス可能である。ストレージは、1つまたは複数のコンピュータデータストレージデバイス108を含み、これは、例えばソリッドステートデバイス(SSD:solid−state device)、ハードディスクまたはこの2つの組み合わせ等、任意の種類のストレージデバイスとすることができる。ストレージデバイスは、ネットワークアタッチトストレージ(NAS:network−attached storage)および/またはストレージエリアネットワーク(SAN)の構成要素として動作してもよい。ストレージはストレージ管理モジュール110を含み、これはストレージの動作を管理する。ストレージ管理モジュールはリクエストキュー112、すなわちストレージに対するペンディングの入力/出力(IO)リクエストのリストを保持する。ある実施形態において、ストレージ管理モジュール110は、ストレージの1つまたは複数のコンピュータシステム(図示せず)上で実行されるコンピュータプログラムである。ストレージは、複数のデータストアまたはロジカルユニットナンバー(LUN:logical unit number)をサポートしていてもよい。ストレージ106はどのような種類のコンピュータデータストレージであってもよいが、ストレージ106は本明細書においては、ストレージアレイとして説明する。
次に図2を参照すると、本発明のある実施形態によるホストコンピュータ104Aの構成要素が示されている。他のホストコンピュータ104B...104Nはホストコンピュータ104Aと同様である。それゆえ、ホストコンピュータ104Aを他のホストコンピュータの例として使用する。図2において、ホストコンピュータ104Aの各種の構成要素間の物理的接続は示されていない。図の実施形態では、ホストコンピュータ104Aは、多数のクライアント220A、220B...220Nをサポートするように構成され、これらはVMである。ホストコンピュータによってサポートされるVMの数は、1〜100超のいずれであってもよい。ホストコンピュータによってサポートされるVMの正確な数は、ホストコンピュータの物理的リソースによってのみ限定される。VMは、ホストコンピュータのハードウェアリソースの少なくともいくつかを共有し、これにはシステムメモリ222、1つまたは複数のプロセッサ224、ストレージインタフェース226、ネットワークインタフェース228が含まれる。システムメモリ222は、ランダムアクセスメモリ(RAM:ramdom access memory)であってもよく、ホストコンピュータの一次メモリである。プロセッサ224は、例えばサーバで一般的に見られる中央処理ユニット(CPU:central processing unit)等の、任意の種類のプロセッサとすることができる。ストレージインタフェース226は、ホストコンピュータがストレージアレイ106と通信できるようにするインタフェースである。例えば、ストレージインタフェースは、ホストバスアダプタまたはネットワークファイルシステムインタフェースであってもよい。ネットワークインタフェース228は、ホストコンピュータがネットワーク102に接続された他のデバイスと通信できるようにするインタフェースである。例えば、ネットワークインタフェースはネットワークアダプタであってもよい。
図の実施形態において、VM 220A、220B...220Nは仮想マシンコントローラ230の上で動作し、これはVMによるホストコンピュータ104Aのハードウェアリソースの共有を可能にするソフトウェアインタフェースレイヤである。しかしながら、他の実施形態において、VMの1つまたは複数は入れ子構造とすることができ、すなわち、あるVMが他のVM内で動作する。例えば、VMのうちの1つは、あるVMの中で動作してもよく、これはまた他のVM内で動作する。仮想マシンモニタは、ホストコンピュータのオペレーティングシステムの上で、またはホストコンピュータのハードウェア上で直接動作してもよい。いくつかの実施形態において、仮想マシンモニタ(virtual machine monitor)は、ホストコンピュータのハードウェア構成要素の上にインストールされたハイパーバイザの上で動作する。仮想マシンモニタのサポートにより、VMは仮想化されたコンピュータシステムを提供し、これはホストコンピュータとは、および相互に別である外観を呈する。各VMは、ゲストオペレーティングシステム232と1つまたは複数のゲストアプリケーション234を含む。ゲストオペレーティングシステムはそれぞれのVMのマスタコントロールプログラムであり、とりわけ、ゲストオペレーティングシステムはソフトウェアプラットフォームを形成し、その上でゲストアプリケーションが動作する。
ネットワーク102に接続された他の任意のコンピュータシステムと同様に、VM 220A、220B...220Nはそのネットワーク102に接続された他のコンピュータシステムと、ホストコンピュータ104Aのネットワークインタフェース228を使って通信できる。これに加えて、VMはホストコンピュータのストレージインタフェース226を使ってストレージアレイ106にアクセスできる。それゆえ、ホストコンピュータのVMは、ホストコンピュータのためのストレージアレイによって提供される共有ストレージリソースを求めて競合する。同様に、ホストコンピュータは共有ストレージリソースを求めて他のホスト104B...140Nと競合する。
ネットワークコンピュータシステム100のホストコンピュータ140A、104B...104Nの各々は、図2に示されているように、ホストコンピュータのストレージインタフェース226の命令発行キュー236の中にストレージアレイ106における未処理のIOリクエストを特定の最大数まで保持できる。特定のホストコンピュータの命令発行キューの大きさ(本明細書では、「ホストキューデプス(host queue depth)」ともいう。)は、ストレージアレイが、現在その特定のホストコンピュータに割り振られているIOリクエストを処理するキャパシティを反映する。以下により詳しく説明するように、ホストコンピュータの命令発行キューは、ストレージアレイによって提供されるストレージリソースに関するQoS制御を実行するために使用される。
共有される共通リソース、すなわちストレージアレイ106によって提供される共有ストレージリソースを求める競合によって、異なるエンティティ間、例えばホストコンピュータ104A、104B...104NによってホストされるVM等間の共有ストレージリソースの分配を制御するために、ネットワークコンピュータシステム100内のQoS管理メカニズムが必要である。共有リソースが異なるVM間で均等に分けられる場合は、共有ストレージリソースの分配工程は簡単であることもある。しかしながら、特定の状況では、VMのいくつかが他のVMより多くの量の共有ストレージリソースを必要とすることもある。本明細書において、共有ストレージリソースの量は、1秒当たりのIO動作の回数(IOPS:IP operations per second)で測定でき、IOPSの数値が大きいほど、共有ストレージリソースへのアクセスが多いことを意味する。これに加えて、異なるVMのニーズは、共有ストレージリソースに対するVMの要求の変化に基づいて変わり得る。さらに、特定の状況では、異なるホストコンピュータ上で動作中のVMが異なるグループに属することもあり、その共有ストレージリソースへのアクセスに関するニーズと要求事項は異なる。このようなVMの集合の一例を、以下に図3を参照しながら説明する。
図3は、ストレージアレイ106に接続されて、ストレージアレイにより提供されるストレージリソースを共有するホストコンピュータ104Aと104Bを示す。ホストコンピュータ104Aは、VM220Aと220Bを含む。ホストコンピュータ104Bは、VM220Cと220Dを含む。この例では、ホストコンピュータ上で動作中のVM220Aとホストコンピュータ104B上で動作中のVM220Cは、ある企業の営業部門に属する。ホストコンピュータ104A上で動作中のVM220Bとホストコンピュータ104B上で動作中のVM220Dは、その企業の財務部門に属する。営業部門のVM220Aと220Cは異なる大陸での営業を取り扱っていてもよく、それゆえ、異なる時間帯での要求のピークと谷に基づいて、全体で1,000IOPSの予約が必要である。財務部門のVM220Bと220Dはバックグラウンドでデータ分析を行っていてもよく、それゆえ、重要な営業のVMに対するその影響を削減するために、500IOPSの総スループットに制限される。これに加えて、この500IOPSをVM間でその重要性に基づいて1:2の比率で割り当てたいと思う人がいる場合もある。これは、シェア制御として知られる。本発明の実施形態によるネットワークコンピュータシステム100のQoS管理メカニズムは、異なる集合のVMの要求事項に対応するための共有ストレージリソースのロバストなQoS制御を提供するように設計され、QoSメカニズムを一層複雑化する可能性があり、またシステム全体の不具合をさらに起こしやすくし得る中央集中的なリソーススケジューラを設ける必要がない。後述のように、ネットワークコンピュータシステムのQoS管理メカニズムは、ストレージリソースプール(SRP)の概念を使って、ネットワークコンピュータシステム全体を通じて分散されたクライアントのためのQoSを管理する。それゆえ、ネットワークコンピュータシステムのQoS管理メカニズムは、本明細書において、SRPベースのQoS管理メカニズムと呼ぶ。
SRPベースのQoS管理メカニズムによって、ユーザ、例えばシステム管理者は、スループット予約値(下限)、制限値(上限)、シェア(案分比例的共有)を使って所望のQoSを指定することができる。これらの数値は、リソースプール階層構造のいずれのノード、例えばリソーリソースプール階層構造内の個々のVMおよび/または関係するVMの集合についても設定でき、これらはリソースプール階層構造の中の、VMより高い位置にあるノードによって概念的に指定される。予約値は、リソースプール階層構造の中のノード、例えばVMやVMの集合が受け取らなければならない共有リソースの最低量を明示する絶対的な保証である。制限値は、リソースプール階層構造の中のノードに対して行われるべき最大割り振りを明示する。これらの数値は、そのサービスレベル目標(SLO:service level objective)に基づいて契約により設定されたIOPSに関する厳密な分離の実行とテナント(tenant)の制限に有益である。シェアは、リソースプール階層構造の中のノード間の相対的重要性を表す尺度であり、キャパシティに限りがある場合に、割り振りに優先順位を付けるために使用される。
SRPベースのQoS管理メカニズムによればまた、ユーザはネットワークコンピュータシステム100の中のホストコンピュータ104A、104B...104N上で動作中のクライアントをストレージリソースプール(すなわち、SRP)にグループ分けして、特定のグループまたはSRPの中のクライアントがリソース割り振りの単独のユニットとして扱えるようにすることができる。その後、これらのユニットを合体させて、より大きなリソースプールまたはグループにし、リソースプール階層構造を作ることができる。クライアントのクループ分けは、クライアントが動作中の基本のホストコンピュータに関係なく行うことができる。それゆえ、ある特定のホストコンピュータ上で動作中のクライアントは、異なるリソースプールまたはグループに属していてもよい。このような分散型アーキテクチャは、仮想化データセンタにおいて非常に一般的である。リソースプール階層構造を定義する情報はストレージアレイ106の中に保存された共有ファイルの中に保存されてもよく、それによってネットワークコンピュータシステム内の各ホストコンピュータはこの情報にアクセスできる。あるいは、リソースプール階層構造の情報はネットワークコンピュータシステム内の他のホストコンピュータにブロードキャストされてもよく、それによって各ホストコンピュータが他のすべてのホストコンピュータからのこれらの数値を把握できる。
VM220A、220B、220C、および220Dを有するリソースプール階層構造の例が図4に示されている。図4に示されるリソースプール階層構造は、4つのVM220A、220B、220C、および220Dを含み、これらはリソースプール階層構造の最も下位のノードとして見ることができる。この例では、VM220Aと220Cがノード402Aにより示されるように1つにまとめられ、これは2つのVM220Aと220Cの親ノードとして見ることができる。それゆえ、2つのVM220Aと220Cはノード402Aの子供、すなわち子ノードとして見ることができる。同様に、VM220Bと220Dは、他のノード402Bにより示されているように1つにまとめられ、これは2つのVM220Bと220Dの親ノードとして見ることができる。それゆえ、2つのVM 220Bと220Dはノード402Bの子供、すなわち子ノードとして見ることができる。2つのノード402Aと402Bはさらに、ノード404で示されているように1つにまとめられ、これはリソースプール階層構造のルートノードである。ノード404はまた、2つのノード402Aと402Bの親ノードとして見ることができ、反対に、2つのノード402Aと402Bはノード404の子供、すなわち子ノードとして見ることができる。このリソースプール階層構造は、組織構造、例えば業務用に1つまたは複数のVMを使用する部門または部署を有する企業等を概念的に表していてもよい。企業を表す場合、リソースプール階層構造のルートノード404はその企業全体を表してもよく、2つのノード402Aと402Bはその企業の部門または部署、例えばそれぞれ営業および財務部門を表してもよく、VM220Aと220Cは営業部門のために動作し、VM220Bと220Dは財務部門のために動作する。
SRPベースのQoS管理メカニズムは、ストレージリソースプール(SRP)モジュール238とローカルスケジューリングモジュール240を使用し、これらは図2に示されるように、ネットワークコンピュータシステム100の中の各ホストコンピュータに含まれる。各ホストコンピュータの中のSRPモジュールはネットワークコンピュータシステムの他のホストコンピュータのSRPモジュールと協働して、ストレージアレイ106のキャパシティのうちのどれだけをそのホストコンピュータに提供するべきかを判断し、これは少なくとも、そのホストコンピュータのクライアントによるストレージアレイへの要求全体と、ストレージアレイの平均レイテンシに基づく。SRPモジュールは次に、ホストコンピュータに割り振られるストレージキャパシティのうちのどれだけをそのホストコンピュータの各クライアント、例えば各VMに提供するべきかを判断する。SRPモジュールはまた、リソースプール階層構造のルートノードにおける全体的な予約値、全体的な制限値、シェアを、共有ストレージリソース、その静的な予約、制限、シェアの値に基づいてクライアントへと分配する。本明細書において、シェア値は、割り当てられたシェアの数と同等である。これに加えて、本明細書において、静的な値は、ユーザ、例えばシステム管理者、またはネットワークコンピュータシステム100の中のいずれかのコンピュータ上で実行中の管理プログラムによって設定される値である。これらの静的な値は、ストレージアレイ106の中に保存された共有ファイルの中に保存されてもよく、これによってネットワークコンピュータシステムの中の各ホストコンピュータはこの情報にアクセスできる。あるいは、これらの静的な値はネットワークコンピュータシステム内の他のホストコンピュータにブロードキャストされてもよく、それによって各ホストコンピュータが他のホストコンピュータからのこれらの数値を把握できる。分配の結果として、各クライアントには、現在のモニタリング時間間隔についての動的な予約値、動的な制限値、動的なシェア値が割り当てられる。次いで、これらの動的な値のほか、クライアントへのストレージキャパシティの割り振りは、毎回次のモニタリング時間間隔について再計算される。
各ホストコンピュータのローカルスケジューラ240は、そのホストコンピュータのクライアント、例えばVMによるIOリクエストのスケジュールを、ホストコンピュータ内のSRPモジュール238によって計算された動的な予約値、動的な制限値、動的なシェア値に従って決定するように動作する。図2ではローカルスケジューラとSRPモジュールが仮想マシンモニタ230と別に示されているが、これらの構成要素の一方または両方を仮想マシンモニタの一部として実装してもよい。いくつかの実施形態において、SRPモジュールとローカルスケジューラはホスコンピュータ上で実行されるソフトウェアプログラムとして実装される。しかしながら、他の実施形態では、SRPモジュールとローカルスケジューラはソフトウェアとハードウェアのいずれかの組み合わせを使って実装してもよい。
次に、図5を参照すると、本発明のある実施形態によるSRPモジュール238の構成要素が示されている。図5に示されるように、SRPモジュールは、要求更新構成要素502と、ストレージキューデプス更新構成要素504と、ストレージIOPSキャパシティ計算構成要素506と、配分構成要素508と、ホストキューデプス調整構成要素510と、を含む。図の実施形態では、SRPモジュールのこれらの構成要素が別々の要素として示されている。しかしながら、他の実施形態では、これらの構成要素の1つまたは複数を他の構成要素と組み合わせてもよく、および/またはこれらの構成要素の1つまたは複数をさらに細かい下位の構成要素に分割してもよい。SRPモジュールがソフトウェアモジュールとして実装されるある実施形態において、SRPモジュールの構成要素は、そのソフトウェアモジュールの処理ブロックとして見ることができる。SRPモジュールの構成要素に関する以下の説明文では、ホストコンピュータ104AのクライアントがVMとして説明される。しかしながら、前述のように、これらのクライアントは、共有ストレージリソースのためのストレージアレイ106にアクセスできる任意のエンティティとすることができる。
SRPモジュール238のリソース要求更新構成要素502は、ホストコンピュータ104Aの各VMの共有ストレージリソースに対する要求と、ホストコンピュータに関する合算VM要求、すなわちホストコンピュータ内のすべてのVMの要求の合計を更新するように動作する。リソース要求更新構成要素は、ホストコンピュータの平均レイテンシ(「avgLatency」)と平均測定IOPS(「avgIops」)を、ホストコンピュータ、例えばホストコンピュータ上で動作中の仮想マシンモニタ230またはハイパーバイザによって保持される統計を使って判断する。ホストコンピュータが保持するこれらの統計には、モニタリング間隔中の合算レイテンシとホストコンピュータの各VMにより実行されるIO総数が含まれる。次に、リソース要求更新構成要素は、ホストコンピュータの各VMの要求を、リトルの法則から得られる次の方程式を使って、平均未処理IO数(「demandOIO」)として計算する。
demandOIO=avgLatency×avgIops (方程式1)
これらの数値は次に、ネットワークコンピュータシステム100内の各ホストコンピュータがこれらのVM要求値を未処理のIO(OIO:outstanding IO)として得ることができるように、利用可能な状態とされる。ある実施形態において、これらの値はストレージアレイ106に保存された共有ファイルの中で更新される。それゆえ、ネットワークコンピュータシステム内の各ホストコンピュータは共有ファイルにアクセスして、ネットワークコンピュータシステム内の他のホストコンピュータのdemandOIOを呼び出すことができる。他の実施形態において、これらの値はネットワークコンピュータシステム内の他のホストコンピュータにブロードキャストされてもよく、それによって各ホストコンピュータが他のすべてのホストコンピュータからのこれらの値を把握できる。
リソース要求更新構成要素502は次に、demandOIOの値を、以下の方程式を使い、ストレージデバイス輻輳閾値レイテンシ(storage device congestion threshold latency : 「L」)に基づく正規化要求IOPS値(「demandIops」)に変換する。
demandIops=demandOIO/L (方程式2)
輻輳閾値は、ストレージデバイスが動作する最大レイテンシである。リソース要求更新構成要素は、ストレージキューデプス(storage queue depth)、すなわちリクエストキュー112のデプス(図1に示される)を制御して、レイテンシをLに近い状態に保ち、それによってストレージアレイ106は効率的に利用される。これは、局所的なレイテンシの変化に基づくVMの要求の過大評価を回避するのに役立つ。例えば、輻輳閾値は一般に、30ミリ秒に設定できる。SSD追加LUN(SSD-backed LUN)の場合、Lはこれより低い値、例えば5〜10ミリ秒に設定できる。
リソース要求更新構成要素502は次に、この値が各VMの予約と制限の設定値により表される下限と上限の間に確実に含まれるように、次の方程式を使ってdemandIopsの値を調整する。
demandIops=min(max(demandIops,R).L) (方程式3)
次にホストコンピュータについての要求を合算するように、VMのdemandIopsの値を加算してから、ホストコンピュータ104Aで境界チェックを適用し、合算値がそのホストコンピュータに関する予約と制限の設定により表される下限と上限の中に確実に含まれるようにする。
SRPモジュール238のストレージキューデプス更新構成要素504は、ストレージアレイのキャパシティを、ストレージアレイ106のストレージキューデプスとして更新するように動作し、これが次に、そのSRPモジュールが動作中のホストコンピュータ104Aを含む、ネットワークコンピュータシステム100の中の各ホストコンピュータに割り振られる。ストレージキューデプス更新構成要素は、以下の方程式を使ってストレージキューデプスを調整し、測定されたレイテンシが輻輳閾値内に保持されるようにする。
上の方程式において、Q(t)は時間tでのストレージキューデプスを示し、L(t)はすべてのホストコンピュータの現在の平均レイテンシであり、γ∈[0,1]は平滑化パラメータであり、Lcはデバイス輻輳閾値である。
SRPモジュール238のストレージIOPSキャパシティ計算構成要素506は、ストレージアレイ106のIOPSキャパシティを計算するように動作する。ストレージIOPSキャパシティ計算構成要素は、ストレージキューデプス計算構成要素504により計算された更新アレイキューデプスの値を、リトルの法則を使って得られる次の方程式を使って同等のストレージIOPSキャパシティに変換する。
arrayIOPS=Q(1+l)/L (方程式5)
キューデプスのIOPSへの変換は、配分構成要素508によって行われる配分動作の中で使用されるリソースプール設定が、後述のように、より透明性の低いOIOの値ではなく、ユーザにとってなじみのあるIOPSで示されるために行われる。
SRPモジュール238の配分構成要素508は、現在の要求の分布を反映するVMの動的な予約、制限、シェアの値のほか、計算されたarrayIOPSの値に関するVMのエンタイトルメントを計算するように動作する。配分構成要素は、入力として、リソースプール階層構造の構造、リソースプール階層構造のノード(例えば、図4に示されるノード402A、402B、および404C)の静的な予約、制限、シェアの設定のほか、VMとノードの要求を取る。配分構成要素は次に、リソースプール階層構造のルートノードでの予約、制限、アレイIOPSとシェアの値をVMへと分配するように動作する。
リソースプール階層構造のルートノードは、リソースプール(RP:resource pool)階層構造のノード間で分割または分配する必要のある4つのリソースタイプを保持する。
(1)予約されたRPキャパシティ(R)、
(2)RP制限(L)、
(3)アレイIOPS(I)、
(4)合計RPシェア(S)。
配分構成要素508は、リソースプール階層構造のレベルごとのパスを行い、ルートノードから始めてリソースプール階層構造の各レベルでリソースを分ける。リソースプール階層構造の各ノードについて、分配構成要素はそのノードのリソースを、その子供、すなわち子ノード間で分ける。本明細書において、R−配分動作、L−配分動作、I−配分動作、およびS−配分動作は、配分構成要素がそれぞれR、L、I、Sの数値を分配するために実行する動作である。
リソースプール階層構造のルートノードのR、L、I、およびSの値は本明細書において、全体的なR、L、I、およびS値と呼ばれることもある。
R−配分動作、L−配分動作、およびS−配分動作後に得られるVMのR、L、Sの値は、次のモニタリング時間間隔中のVMの動的なR、L、S設定として使用される。I−配分の中でVMごとに得られるIの値は、そのVMのエンタイトルメント(entitlement)として知られる。R−配分動作、L−配分動作、およびI−配分動作中、ノードがR、L、およびIの値のシェアを受ける限度は、一時的にそれらの合算要求が上限とされ、これによってリソースを現時点でより要求の高いVMに向けることができる。
R−配分動作に関して、配分構成要素508はまず、ルートノードで予約されたRPキャパシティRをその子供、すなわち子ノードに配分する。各子ノードにおいて、そこに割り当てられた予約がその子供間で配分されるキャパシティとして使用される。この工程は、ネットワークコンピュータシステム100のすべてのVMがその更新されたRのシェアを受け取るまで繰り返される。L−配分動作およびI−配分動作に関して、配分構成要素は同様の手順に従って「RP制限L」と「アレイIOPS I」を配分し、各VMが新しい動的な制限設定とエンタイトルメントEを受け取るようにする。S−配分動作に関して、配分構成要素はルートノードでの合計RPシェアSを、子ノードの静的なシェア値に基づいてその子供、すなわち子ノード間で配分する。各子ノードでは、その割り振られたシェアを次に、その子供間で、子供のシェア設定の比率により分けられる。
配分構成要素508は、R−配分動作、L−配分動作、I−配分動作、およびS−配分動作を実行して、各子ノードに親のキャパシティの一部を、それらの予約と制限による制約を前提として、そのシェアに応じて与えようと試みる。この目的を達成するための1つのアルゴリズムは、親キャパシティの小さい固定量を選択された子ノードに逐次的に与え、親のキャパシティ全体が子供に分配されるようにすることである。このアルゴリズムを説明するために、aが配分工程のある段階で子供iに対して行われる割り振りを示し、sがそのシェア値であるものとする。このアルゴリズムでは、配分工程はまず、各子ノードにその予約を与え、すなわちaの初期値は子iの静的な予約値である。リソースの次の数量について、配分工程は子供の中から、その静的な制限値以下の最も小さい正規化割り振り(smallest normalized allocation)(a/s)の子ノードを選択し、その割り振りを少量δだけ増やす。この工程は、親のキャパシティ全体がすべて配分されるまで続く。このアルゴリズムの問題は、それがn個のVM分のランタイムO(log ncapacity/δ)を有し、これはキャパシティの値が大きいと非常に長くなる可能性があることである。他の問題は、適正な値δを見つけることである。それゆえ、配分構成要素は、他の分散アルゴリズムを使って、親ノードのリソースをその子ノードに、より効率的な方法で分けることができる。
例えば、R−配分動作、L−配分動作、およびI−配分動作のために配分構成要素508が使用できる1つの分散アルゴリズムは、分散工程中にその一時的な制限(l)の値としてノードの要求を用いることを含み、rとsの値はそれぞれ、静的な予約とシェアの値である。子ノードの要求の合計が親で配分されるキャパシティより小さい場合、子ノードの静的な制限がその要求の代わりに使用される。R−配分動作に関して、ルートノードの予約の設定(R)が配分すべきキャパシティとして使用され、その一方で、L−配分動作およびI−配分動作に関しては、キャパシティはそれぞれ、ルートの制限の設定(L)とアレイIOPS(I)である。S−配分動作に関して、親のシェア値は単純に子供のシェアの比率で分けられる。この分配アルゴリズムの擬似コードを以下に示す。
データ:C:配分すべきキャパシティ
子c、1≦i≦n、パラメータr、l、s
結果:a:子cについて計算された割り振り
可変数:
V:集合
からの要素の順序付集合{v,v,...v2n,v≦vi+1
index[i]:vがrまたはlのいずれかの場合、kと等しい
type[i];vが制限(予約)である場合、L(R)と等しい
集合:RB={1,...n},LB={},PS={}
各k=1,...,2nについて、以下を行う。
PSの要素の割り振りをvまで増やせるか?
(PSwt+LBcap+RBcap>C)であれば、
|_break
type[k]がPS内のある子の制限であれば、その子をPS集合からLB集合に移行させる
(type{k}=L)であれば、
LB=LB∪{index[k]}
LBcap=LBcap+lindex[k]
PS=PS−{index[k]}
PSwt=PSwt+windex[k]
上記以外であれば、
type[k]=R:子をRBからPSに移行*/
PS=PS∪{index[k]}
PSwt=PSwt+windex[k]
RB=RB−{index[k]}
RBcap=RBcap+rindex[k]
i∈RBであれば、a=r;/割り振りは予約と等しい
i∈LBであれば、a=l;/割り振りは制限と等しい
PS要素はキャパシティの残りをシェアの比率で得る
i∈PSであれば、a=(w/Σj∈PS)×(C−LBcap−RBcap):
上記のアルゴリズムはn個のVM分のランタイムO(nlog n)を持ち、時間により分けられて、分別されたシーケンスVが作られる。工程の終わりに、いくつかの子供はその制限で上限が定められ(LB集合)、またいくつかはその予約以上には割り振りを受けておらず(RB集合)、残りはそのシェアに比例する割り振りを受けている(PS集合)。
配分構成要素508によって実行される配分工程の一例をここで、図6を参照しながら説明するが、これは図4に示すものと同じリソースプール階層構造を示している。しかしながら、図6では、リソースプール階層構造の各ノードの静的な予約、制限、シェアの値が示されている。これに加えて、VM220A、220B、220C、および220Dの計算された要求も示されている。さらに、配分工程の結果、すなわち動的な予約、制限、シェアの値がノード402Aおよび402B、ならびにVMについて示されている。図6において、タプルUは静的な設定または値を示し、タプルDは予約、制限、シェアの値の動的な配分結果を示す。この例では、上述の効率的な分配アルゴリズムが配分工程に使用されている。
R−配分動作に関して、配分構成要素508は、リソース要求更新構成要素502によって更新されたVMの要求を、リソースプール階層構造のノードにおける制限設定の一時的な上限として使用する。VMの要求がそれぞれ600、400、400、および100であるため、VMの制限の一時的上限はそれぞれ600、400、400、および100に設定される。配分構成要素はまた、VMの要求を合算して、ノード402Aと402Bに関する要求の値を得る。この例において、ノード402Aと402Bの合算要求は、それぞれ1,000および500であり、これはVM 220Aと220Cの要求の合計が1,000であり、VM220Bと200Dの要求の合計が500であるからである。それゆえ、ノード402Aと402Bの制限の一時的な上限は、それぞれ1,000および500に設定される。
配分構成要素508は次に、ルートノード404からVM220A、220B、220C、および220Dとレベルごとに進み、親の予約を子供間で配分する。リソースプール階層構造のルートノード404では、ユーザによって1,200に設定されている予約値Rがノード402Aと402Bの間でそれぞれのシェアの比率(3:1)で配分され、その結果、それぞれの割り振りは900と300になる。これらの値はノード402Aと402Bの予約と制限の値の間にあるため、これらはルートノードでのR−配分動作の最終的な結果となる。
リソースプール階層構造の次のレベルでは、ノード402Aの予約R=900がVM220Aと220Cの間で配分される。そのシェアの比率(1:2)に基づいて、VM220Aはその予約値に300が割り振られ、これはその予約400より小さい。したがって、配分構成要素508は実際に、VM220Aにユーザが設定した予約の数量400を与え、VM220Cは残り、すなわち500の値を得る。VM220Bと220Dに関して、ノード402Bの予約R=300は、VM220Bと220Dの間でそのシェアの比率(1:1)に基づいて均等に配分される。しかしながら、VM220Dの制限が一時的にその要求を上限とされているため、VM220Dには100が与えられ、その一方で、VM220Bは残りの数量200を得る。
L−配分動作に関して、配分構成要素508は同様に、親の制限の値をレベルごとにその子供間で分ける。ルートノード404でユーザが設定した制限L=2300はノード420Aと402Bの間でそのシェアの比率(3:1)で分けられる。しかしながら、ノード402Bへの割り振りは、その制限の設定値500が上限となり、その結果、1,800と500がそれぞれノード402Aと402Bに割り振られる。
次のレベルで、ノード402Aの制限L=1800がVM220Aと220Cの間で配分される。そのシェアの比率(1:2)に基づいて、VM220Aにはその制限の値に600が割り振られ、VM220Cにはその制限の値に1,200が割り振られる。VM220Bと220Dに関して、制限L=500が、VM220Bと220Dの間でそのシェアの比率(1:1)に基づいて均等に配分される。しかしながら、VM220Dに関する制限が一時的にその要求を上限とされているため、VM220Dには100が与えられ、その一方で、VM220Bは残りの数量400を得る。
S−配分動作に関して、リソースプール階層構造の各レベルで、配分構成要素508は単純に親ノードのシェアをその子ノード間でそのシェアの比率により分ける。それゆえ、ルートノード404でユーザが設定したシェアS=1,000がノード402Aと402Bの間でそのシェアの比率(3:1)により分けられ、その結果、750と250がそれぞれノード402Aと402Bに割り振られる。次のレベルでは、ノード402Aのシェアの値S=750がVM 220Aと220Cの間でそのシェアの割合(1:2)に基づいて配分され、その結果、250と500がそれぞれVM 220Aと220Cに割り振られる。これに加えて、ノード402Bのシェアの値S=250がVM220Bと220Dの間でそのシェアの比率(1:1)に基づいて配分され、その結果、125と125がそれぞれVM220Bと220Dに割り振られる。
上記の例では、VM220Bと220Dの静的な設定値は同じである。しかしながら、その要求の差によって、結果として得られる動的な設定値はVM220Bと220Dの間で異なる。VM220Aと220Cに関して、VM220CにはVM220Aより多くの予約が与えられており、これはVM220Aのシェアの値のほうが大きいからである。しかしながら、VM220Aについてユーザが設定した予約に適合するために、VM220CはVM220Aの予約の2倍未満を受け取っている。
図5に戻ると、SRPモジュール238のホストキューデプス調整構成要素510は、新しいホストキューデプスの値、すなわち命令発行キュー236のデプスを、配分構成要素508により計算されたアレイIOPSに関するホストコンピュータ104AのVM220A、220B...220Nのエンタイトルメントに基づいて計算するように動作する。ホストキューデプス調整構成要素は、ホストキューデプスを調整するために、以下の方程式を用いて新しいホストキューデプスを計算する。
式中、Q(t+1)はアレイキューデプスの値、arrayIOPSはアレイのIOPSキャパシティ、EはホストコンピュータのVMのエンタイトルメントである。
図2に戻ると、ローカルスケジューラ240は、ホストコンピュータ104Aのアレイキャパシティのシェア、すなわちSRPモジュール238のホストキューデプス調整構成要素510によって計算された新しいホストキューデプスの値を、VM 220A、220B...220Nの間で割り振るように動作する。ローカルスケジューラは、SRPモジュールによって計算されたVMの動的な予約、制限、シェアの設定を使用して、VMからのIOリクエストのスケジュールを立てる。ローカルスケジューラは、新しいホストキューデプスの値によって定義される制限をホストコンピュータでの未処理のIOの総数に適用する。ある実施形態において、ローカルスケジューラは、アジャイ・グラティ(Ajay Gulati)、アリフ・マーチャント(Arif Merchant)、ピーター・バーマン(Peter Varman)の「mClock:ハイパーバイザIOスケジューリングのスループット可変性の扱い(mClock:Handling Throughput Variability for Hypervisor IO Scheduling)」に記載されているmClockスケジューラである。しかしながら、他の実施形態では、SRPモジュールにより計算されたVMの動的な予約、制限、シェアの設定を使い、その一方でホストキューデプスの値により定義される制限に従い、ホストコンピュータのIOリクエストのスケジュールを立てることができる任意のIOスケジューラを、ローカルスケジューラとして使用できる。
このようにして、ネットワークコンピュータシステム100の中の各ホストコンピュータは、ストレージの平均レイテンシに基づいて、ストレージ106のキャパシティ全体の一部をそれ自体に独立して割り振り、共有ストレージリソースに対するクライアントの要求に基づいて計算された動的な予約、制限、シェアの値の計算結果を使って、そのホストコンピュータ上で動作中のクライアント間で割り振られたストレージリソースを管理できる。それゆえ、ネットワークコンピュータシステムが共有ストレージリソースを効率的に割り当てるために中央集中的なQoSマネージャ/スケジューラは必要とならない。
いくつかの実施形態において、ホストコンピュータ104A、104B...104N上で動作中のクライアントは、同様に共有ストレージリソースを必要とする下位の構成要素を含んでいてもよい。それゆえ、これらの実施形態では、このような下位の構成要素を、共有ストレージリソースを消費する「クライアント」と考えてもよい。例えば、ホストコンピュータの1つで動作中のVMは、ストレージ106に保存される1つまたは複数の仮装マシンファイル、例えば仮想マシンディスク(VMDK:virtual machine disk)に関連付けられていてもよい。これらのVMのVMDKは共有ストレージリソースを消費し、それゆえ、それにはリソースを効率的に共有するために、予約、制限、シェアの値が割り当てられる。ある実施形態において、VMのVMDKはまた、リソースプール階層構造の中に含められ、QOS制御のために、各ホストコンピュータのSRPモジュール238とローカルスケジューラ240によって考慮される。
VMDKを含むリソースプール階層構造700の例が図7に示されている。図7に示されるように、階層構造700はルートノード702と、ノード704Aおよび704Bと、VM706A、706B、706C、706D、および706Eと、VMDK708A、708B、708C、708D、708E、708F、708G、および708Hと、を含む。このリソースプール階層構造では、各ホストコンピュータのSRPモジュール238とローカルスケジューラ240は、単純にストレージ106のキャパシティとルートノード702に割り当てられた全体的な予約、制限、シェアの値を上述の方法でVMDKへと分配する。状況によっては、VMDKは異なるデータストアで保存されてもよい。例えば、VMDK708A、708B、708D、708E、および708Hはデータストア1に保存されてもよく、VMDK708C、708F、および708Gはデータストア2に保存されてもよい。このような状況では、ホストコンピュータ104A、140B...104Nの各々におけるSRPモジュールは、リソースプール階層構造を、ユーザが提供できるデータストアの情報を使ってデータストアごとのリソースプール階層構造に分割するように構成されていてもよい。例えば、リソースプール階層構造700は、それぞれデータストア1と2に対応するリソースプール階層構造750Aと705Bに分割されてもよい。次いで、各ホストコンピュータのSRPモジュールは、データストアごとのリソースプール階層構造750Aと750Bの各々を上述の方法で動作させて、QoS制御を提供する。
本発明のある実施形態による、共通リソースにアクセスするためにホストコンピュータ上で動作中のクライアントのためにクオリティ・オブ・サービス(QoS)を提供する方法を、図8のフロー図を参照しながら説明する。ブロック802では、共通リソースの現在のキャパシティが、クライアントが共通リソースにアクセスする際のレイテンシの全体的な平均に基づいて計算される。ブロック804では、共通リースに関する各クライアントのエンタイトルメントが、計算された現在のキャパシティと共通リソーに対するクライアントの要求に基づいて計算される。ブロック806では、共有リソースの計算された現在のキャパシティの一部が特定のホストコンピュータに、その特定のホストコンピュータ上で動作中の各クライアントの計算されたエンタイトルメントを使って割り当てられる。ブロック808では、計算された現在のキャパシティの一部が、その特定のホストコンピュータ上で動作中のクライアント間で割り振られる。
本明細書の方法の動作は特定の順序で示され、説明されているが、各方法の動作の順序を変更して、特定の動作を逆の順序で行ってもよく、または特定の動作を少なくとも部分的に他の動作と同時に実行してもよい。他の実施形態では、別々の動作の命令または下位の動作を間欠的および/または交互に実施してもよい。
この方法のための動作の少なくとも一部は、コンピュータにより実行されるためのコンピュータ使用可能なストレージ媒体に保存されたソフトウェア命令を使って実装してもよいことにも留意すべきである。例えば、コンピュータプログラム製品のある実施形態は、コンピュータにより実行されると、コンピュータに本明細書に記載された動作を実行させるようなコンピュータ可読ブログラムを保存する、コンピュータ使用可能なストレージ媒体を含む。
さらに、本発明の少なくとも一部の実施形態は、コンピュータまたはいずれかの命令実行システムによって、またはこれに関連して使用するためのプログラムコードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラムの形態をとることができる。この説明の解釈において、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはこれに関連して使用するためのプログラムを含み、保存し、通信し、伝播し、または転送する任意の装置とすることができる。
コンピュータ使用可能またはコンピュータ可読媒体は、電子、磁気、光、電磁気、赤外線、または半導体システム(もしくは装置もしくはデバイス)または伝播媒体とすることができる。コンピュータ可読媒体の一例は、半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM:read−only memory)、リジッド磁気ディスク、光ディスクを含む。光ディスクの現時点での例には、コンパクトディスク読み出し専用メモリ(CD−ROM)、コンパクトディスクリード/ライト(CD−R/W)、デジタルビデオディスク(DVD)、およびブルーレイディスクが含まれる。
上記の説明において、各種の実施形態の具体的な詳細が提供されている。しかしながら、いくつかの実施形態はこれらの具体的な詳細のすべてがなくても実施できる。他の例では、特定の方法、手順、構成要素、構造および/または機能は、簡潔性と明瞭性のために、本発明の各種の実施形態を可能にする程度以上に詳細には説明されていない。
本発明の具体的な実施形態を説明し、示したが、本発明は説明され、示された部品の具体的な形態または配置に限定されない。本発明の範囲は、添付の特許請求の範囲とその均等物によって定義されるものとする。

Claims (18)

  1. 共通リソースにアクセスするためにホストコンピュータ上で動作中のクライアントのためのクオリティ・オブ・サービス(QoS)を提供する方法であって、
    前記共通リソースの現在のキャパシティを、前記クライアントが前記共通リソースにアクセスする際のレイテンシの全体的な平均に基づいて計算すること、
    前記共通リソースの全体的な予約値をクライアント間で分配して前記ホストコンピュータ上で動作中のクライアントの動的な予約値を計算することにより、各クライアントの動的な予約値を取得することであって、前記分配することは、クライアントに分配される全体的な予約値を、共通リソースに対するクライアントの要求応じて一時的に制限することを含む、前記動的な予約値を取得すること、
    計算された現在のキャパシティを、前記クライアントの動的な予約値を用いて前記ホストコンピュータ上で動作中のクライアント間で割り振ることを備え、
    前記クライアント間の共通リソースに対する前記全体的な予約値を分配することは、
    親ノードおよび子ノードの階層構造を通じて、前記階層構造のルートノードの全体的な予約値が、前記階層構造のレベルごとの分配処理で前記階層構造のより下位のノードに分配されるように、前記全体的な予約値を分配することを含む、方法。
  2. 請求項1に記載の方法であって、
    前記共通リソースの計算された現在のキャパシティを割り振ることは、
    前記共通リソースの計算された現在のキャパシティを前記クライアント間で、前記クライアントに割り当てられたシェアに基づいて分配することを含む、方法。
  3. 請求項1に記載の方法であって、
    特定のホストコンピュータ上で動作中の各クライアントの前記要求を、前記特定のホストコンピュータから前記共通リソースにアクセスする際の特定のホストコンピュータのレイテンシの平均と、前記クライアントから前記共通リソースにアクセスするリクエストに応答する入力または出力の平均回数を使って計算することをさらに備える方法。
  4. 請求項3に記載の方法であって、
    前記計算された要求を、前記ホストコンピュータの各々によってアクセス可能な共有ファイルに保存すること、または前記計算された要求を、前記特定のホストコンピュータと接続された他のホストコンピュータに転送することをさらに備える方法。
  5. 請求項1に記載の方法であって、
    前記共通リソースの計算された現在のキャパシティを特定のホストコンピュータに割り当てることをさらに備え、
    該割り当てることは、
    前記特定のホストコンピュータのホストキューのデプスを調整することを含み、
    前記ホストキューが、前記特定のホストコンピュータ上で動作中の前記クライアントからの前記共通リソースに対する未処理のリクエストを保存するために使用される、方法。
  6. 請求項1に記載の方法であって、
    前記共通リソースの前記現在のキャパシティを計算することは、
    前記共通リソースの前記現在のキャパシティを、前記レイテンシの全体的な平均、平滑化パラメータ、およびリソース輻輳閾値を使って計算することを含
    前記平滑化パラメータは、計算される前記現在のキャパシティの以前の値と比較した計算される前記現在のキャパシティの変動を平滑化するためのパラメータであり、
    前記リソース輻輳閾値は、共通リソースの最大レイテンシを示す、方法。
  7. システムであって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに動作的に接続された複数のクライアントと、
    共通リソースにアクセスするための前記クライアントからのリクエストを保存するホストキューを備えるリソースインタフェースと、
    前記少なくとも1つのプロセッサに動作的に接続されたリソースプールモジュールであって、
    前記クライアントが前記共通リソースにアクセスする際のレイテンシの全体的な平均に基づいて前記共通リソースの現在のキャパシティを計算するように構成された第一の構成要素と、
    前記共通リソースの全体的な予約値をクライアント間で分配して各クライアントの動的な予約値を計算することにより、各クライアントの動的な予約値を取得するように構成された第二の構成要素であって、前記分配することは、クライアントに分配される全体的な予約値を、共通リソースに対するクライアントの要求応じて一時的に制限することを含み、前記第二の構成要素は、親ノードおよび子ノードの階層構造を通じて、前記階層構造のルートノードの全体的な予約値が、前記階層構造のレベルごとの分配処理で前記階層構造のより下位のノードに分配されるように、前記全体的な予約値を分配するようにさらに構成されている、前記第二の構成要素と、
    を含む前記リソースプールモジュールと、
    前記リソースプールモジュールに動作的に接続されたスケジューラであって、計算された現在のキャパシティを、前記クライアントの動的な予約値を用いて割り振るように構成されているスケジューラと
    を備える、システム。
  8. 請求項7に記載のシステムであって、
    前記スケジューラが、前記共通リソースの計算された現在のキャパシティを前記クライアント間で、前記クライアントに割り当てられたシェアに基づいて分配するように構成されている、システム。
  9. 請求項7に記載のシステムであって、
    前記リソースプールモジュールが、各クライアントの前記要求を、ホストコンピュータから前記共通リソースにアクセスする際の特定のホストコンピュータのレイテンシの平均と、前記クライアントからの前記共通リソースにアクセスするリクエストに応答した入力または出力の平均回数を使って計算するように構成されている、システム。
  10. 請求項9に記載のシステムであって、
    前記リソースプールモジュールが、計算された要求を、前記他のホストコンピュータによってアクセス可能な共有ファイルの中に保存するようにさらに構成されているか、または前記計算された要求を前記ホストコンピュータに接続された他のホストコンピュータに転送するように構成されている、システム。
  11. 請求項7に記載のシステムであって、
    前記リソースプールモジュールが、ホストコンピュータのホストキューのデプスを、前記共通リソースの前記計算された現在のキャパシティの一部を前記ホストコンピュータに割り当てるために調節するように構成され、
    前記ホストキューが、前記クライアントからの前記共通リソースに対する未処理のリクエストを保存するために使用される、システム。
  12. 請求項7に記載のシステムであって、
    前記リソースプールモジュールが、前記共通リソースの前記現在のキャパシティを、前記レイテンシの全体的な平均、平滑化パラメータ、およびリソース輻輳閾値を使って計算するように構成され、
    前記平滑化パラメータは、計算される前記現在のキャパシティの以前の値と比較した計算される前記現在のキャパシティの変動を平滑化するためのパラメータであり、
    前記リソース輻輳閾値は、共通リソースの最大レイテンシを示す、システム。
  13. 共通リソースにアクセスするためにホストコンピュータにおけるクライアントのためのクオリティ・オブ・サービスを提供するプログラム命令を含むコンピュータ可読ストレージ媒体であって、
    前記ホストコンピュータの1つまたは複数のプロセッサにより前記プログラム命令が実行されると、前記1つまたは複数のプロセッサに、
    前記共通リソースの現在のキャパシティを、前記クライアントが前記共通リソースにアクセスする際のレイテンシの全体的な平均に基づいて計算すること、
    前記共通リソースの全体的な予約値をクライアント間で分配して前記ホストコンピュータ上で動作中のクライアントの動的な予約値を計算することにより、各クライアントの動的な予約値を取得することであって、前記分配することは、クライアントに分配される全体的な予約値を、共通リソースに対するクライアントの要求応じて一時的に制限することを含む、前記動的な予約値を取得すること、
    前記計算された現在のキャパシティを、前記クライアントの動的な予約値を用いて前記ホストコンピュータ上で動作中のクライアント間で割り振ること
    を含むステップを実行させ、
    前記クライアント間の共通リソースに対する前記全体的な予約値を分配することは、
    親ノードおよび子ノードの階層構造を通じて、前記階層構造のルートノードの前記全体的な予約値が、前記階層構造のレベルごとの分配処理で前記階層構造のより下位のノードに分配されるように、前記全体的な予約値を分配することを含む、コンピュータ可読ストレージ媒体。
  14. 請求項13に記載のコンピュータ可読ストレージ媒体であって、
    前記共通リソースの前記計算された現在のキャパシティを割り振ることは、
    前記共通リソースを前記クライアント間で、前記クライアントに割り当てられたシェアに基づいて分配することを含む、コンピュータ可読ストレージ媒体。
  15. 請求項13に記載のコンピュータ可読ストレージ媒体であって、
    前記ステップが、
    特定のホストコンピュータ上で動作中の各クライアントの前記要求を、前記特定のホストコンピュータから前記共通リソースにアクセスする際の特定のホストコンピュータのレイテンシの平均と、前記クライアントから前記共通リソースにアクセスするリクエストに応答する入力または出力の平均回数を使って計算することをさらに含む、コンピュータ可読ストレージ媒体。
  16. 請求項13に記載のコンピュータ可読ストレージ媒体であって、
    前記ステップが、
    前記ホストコンピュータの各々によってアクセス可能な共有ファイル内の前記計算された要求を記憶することをさらに含む、コンピュータ可読ストレージ媒体。
  17. 請求項13に記載のコンピュータ可読ストレージ媒体であって、
    前記ステップは、
    前記共通リソースの前記計算された現在のキャパシティの一部を特定のホストコンピュータに割り当てることをさらに備え、
    前記割り当てることは、
    前記特定のホストコンピュータのホストキューのデプスを調整することを含み、
    前記ホストキューが、前記特定のホストコンピュータ上で動作中の前記クライアントからの前記共通リソースに対する未処理のリクエストを保存するために使用される、コンピュータ可読ストレージ媒体。
  18. 請求項13に記載のコンピュータ可読ストレージ媒体であって、
    前記共通リソースの前記現在のキャパシティを計算することは、
    前記共通リソースの前記現在のキャパシティを、前記レイテンシの全体的な平均、平滑化パラメータ、およびリソース輻輳閾値を使って計算することを含
    前記平滑化パラメータは、計算される前記現在のキャパシティの以前の値と比較した計算される前記現在のキャパシティの変動を平滑化するためのパラメータであり、
    前記リソース輻輳閾値は、共通リソースの最大レイテンシを示す、コンピュータ可読ストレージ媒体。
JP2015515211A 2012-05-31 2013-05-30 リソースプーリングを利用した、要求ベースによるストレージの分散型クオリティ・オブ・サービス管理 Active JP6017684B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/485,615 2012-05-31
US13/485,615 US9244742B2 (en) 2012-05-31 2012-05-31 Distributed demand-based storage quality of service management using resource pooling
PCT/US2013/043473 WO2013181464A1 (en) 2012-05-31 2013-05-30 Distributed demand-based storage quality of service management using resource pooling

Publications (3)

Publication Number Publication Date
JP2015525397A JP2015525397A (ja) 2015-09-03
JP2015525397A5 JP2015525397A5 (ja) 2015-12-10
JP6017684B2 true JP6017684B2 (ja) 2016-11-02

Family

ID=49671702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015515211A Active JP6017684B2 (ja) 2012-05-31 2013-05-30 リソースプーリングを利用した、要求ベースによるストレージの分散型クオリティ・オブ・サービス管理

Country Status (5)

Country Link
US (2) US9244742B2 (ja)
EP (1) EP2856721A4 (ja)
JP (1) JP6017684B2 (ja)
AU (1) AU2013267279B2 (ja)
WO (1) WO2013181464A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477529B2 (en) 2012-06-20 2016-10-25 International Business Machines Corporation Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes
EP2865140A4 (en) * 2012-06-22 2016-03-02 Hewlett Packard Development Co OPTIMUM ALLOCATION OF VIRTUAL MACHINES AND VIRTUAL HARD DRIVES WITH A MULTIARY TREE
US9052932B2 (en) * 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9477710B2 (en) * 2013-01-23 2016-10-25 Microsoft Technology Licensing, Llc Isolating resources and performance in a database management system
US9282053B1 (en) * 2013-04-05 2016-03-08 Emc Corporation Techniques for dynamic resource partitioning
GB2528584A (en) * 2013-05-15 2016-01-27 Hitachi Ltd Computer system, and resource management method
JP6190898B2 (ja) * 2013-10-28 2017-08-30 株式会社日立製作所 サーバに接続されるシステム及び仮想マシンが動作しているサーバに接続されたシステムによる方法
US9875145B2 (en) * 2013-12-05 2018-01-23 International Business Machines Corporation Load based dynamic resource sets
JP6362080B2 (ja) * 2014-04-16 2018-07-25 キヤノン株式会社 管理システムおよび管理方法
JP2015204087A (ja) 2014-04-16 2015-11-16 キヤノン株式会社 管理システム及び管理方法
US9710039B2 (en) * 2014-07-17 2017-07-18 International Business Machines Corporation Calculating expected maximum CPU power available for use
US9521089B2 (en) * 2014-08-30 2016-12-13 International Business Machines Corporation Multi-layer QoS management in a distributed computing environment
US9563475B2 (en) * 2014-09-30 2017-02-07 International Business Machines Corporation Merging connection pools to form a logical pool of connections during a preset period of time thereby more efficiently utilizing connections in connection pools
US10394606B2 (en) 2014-09-30 2019-08-27 Hewlett Packard Enterprise Development Lp Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US10545791B2 (en) 2014-09-30 2020-01-28 Hewlett Packard Enterprise Development Lp Methods to apply IOPS and MBPS limits independently using cross charging and global cost synchronization
US9483187B2 (en) 2014-09-30 2016-11-01 Nimble Storage, Inc. Quality of service implementation in a networked storage system with hierarchical schedulers
US10534542B2 (en) 2014-09-30 2020-01-14 Hewlett Packard Enterprise Development Lp Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
US9800518B2 (en) * 2015-03-11 2017-10-24 International Business Machines Corporation Managing application, middleware, and virtual mechanism density in a cloud
US10198192B2 (en) * 2015-03-31 2019-02-05 Veritas Technologies Llc Systems and methods for improving quality of service within hybrid storage systems
EP3076283B1 (en) * 2015-03-31 2019-08-14 Advanced Digital Broadcast S.A. System and method for managing content deletion
US9575664B2 (en) * 2015-04-08 2017-02-21 Prophetstor Data Services, Inc. Workload-aware I/O scheduler in software-defined hybrid storage system
EP3281108A1 (en) * 2015-04-08 2018-02-14 Tintri Inc. Native storage quality of service for virtual machines
US10410155B2 (en) 2015-05-01 2019-09-10 Microsoft Technology Licensing, Llc Automatic demand-driven resource scaling for relational database-as-a-service
US10785295B2 (en) * 2016-06-30 2020-09-22 Intel Corporation Fabric encapsulated resilient storage
CN107918613B (zh) * 2016-10-08 2022-01-21 上海宝存信息科技有限公司 因应服务质量的固态硬盘访问方法以及使用该方法的装置
US11436058B2 (en) * 2016-11-17 2022-09-06 International Business Machines Corporation Workload balancing to achieve a global workload balance
US10474499B2 (en) * 2017-03-01 2019-11-12 The Toronto-Dominion Bank Resource allocation based on resource distribution data from child node
US10516583B1 (en) * 2017-03-28 2019-12-24 Veritas Technologies Llc Systems and methods for managing quality of service
US10387051B2 (en) * 2017-08-24 2019-08-20 Hewlett Packard Enterprise Development Lp Acquisition of IOPS and MBPS limits independently at a scheduler in a scheduler hierarchy
WO2019118628A1 (en) * 2017-12-12 2019-06-20 Arch Systems Inc. System and method for physical machine monitoring and analysis
US11144473B2 (en) * 2018-06-13 2021-10-12 Advanced Micro Devices, Inc. Quality of service for input/output memory management unit
US11029999B1 (en) * 2018-09-06 2021-06-08 Amazon Technologies, Inc. Lottery-based resource allocation with capacity guarantees
US20200174844A1 (en) * 2018-12-04 2020-06-04 Huawei Technologies Canada Co., Ltd. System and method for resource partitioning in distributed computing
US10892971B2 (en) 2019-03-12 2021-01-12 Arch Systems Inc. System and method for network communication monitoring
US10942875B2 (en) * 2019-08-02 2021-03-09 EMC IP Holding Company, LLC System and method for regulating host IOs and internal background operations in a storage system
CN111131242B (zh) * 2019-12-24 2023-01-03 北京格林威尔科技发展有限公司 一种权限控制方法、装置和系统
US10860381B1 (en) * 2020-05-14 2020-12-08 Snowflake Inc. Flexible computing
KR20230100010A (ko) * 2021-12-28 2023-07-05 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그 동작 방법
CN114629958B (zh) * 2022-03-15 2024-01-30 抖音视界有限公司 资源分配方法、装置、电子设备及存储介质
CN115413041B (zh) * 2022-08-23 2024-07-26 中科南京移动通信与计算创新研究院 一种集中式的无线自组网资源分配方法及系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054943B1 (en) * 2000-04-28 2006-05-30 International Business Machines Corporation Method and apparatus for dynamically adjusting resources assigned to plurality of customers, for meeting service level agreements (slas) with minimal resources, and allowing common pools of resources to be used across plural customers on a demand basis
US7788354B2 (en) 2000-07-28 2010-08-31 Siddhartha Nag End-to-end service quality in a voice over Internet Protocol (VoIP) Network
IL150911A0 (en) * 2002-07-25 2003-02-12 Sphera Technologies Ltd A method and apparatus for dynamically allocating and managing resources in a computerized system having multiple consumers
US20040083287A1 (en) * 2002-10-25 2004-04-29 Xia Gao Terminal-based resource reservation protocol
US20060294238A1 (en) 2002-12-16 2006-12-28 Naik Vijay K Policy-based hierarchical management of shared resources in a grid environment
US7917903B2 (en) * 2003-03-27 2011-03-29 Hewlett-Packard Development Company, L.P. Quality of service controller and method for a data storage system
US7480912B2 (en) * 2003-05-29 2009-01-20 International Business Machines Corporation Method for policy-based, autonomically allocated storage
US7437730B2 (en) * 2003-11-14 2008-10-14 International Business Machines Corporation System and method for providing a scalable on demand hosting system
US8091088B2 (en) * 2005-02-22 2012-01-03 Microsoft Corporation Method and system for hierarchical resource management involving hard and soft resource limits
US8336054B2 (en) * 2006-07-20 2012-12-18 Hewlett-Packard Development Company, L. P. System and method for allocating capacity of shared resources to a workload
US7694082B2 (en) 2005-07-29 2010-04-06 International Business Machines Corporation Computer program and method for managing resources in a distributed storage system
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US7764615B2 (en) * 2006-07-10 2010-07-27 International Business Machines Corporation Distributing rate limits and tracking rate consumption across members of a cluster
US7630314B2 (en) 2006-12-05 2009-12-08 Latitue Broadband, Inc. Methods and systems for dynamic bandwidth management for quality of service in IP Core and access networks
US9632827B2 (en) * 2006-12-21 2017-04-25 International Business Machines Corporation Resource manager for managing the sharing of resources among multiple workloads in a distributed computing environment
US9081627B1 (en) * 2007-07-31 2015-07-14 Hewlett-Packard Development Company, L.P. Workload management with resource transfer sequence planned as a function of ranking of resource allocations
WO2009061432A1 (en) * 2007-11-06 2009-05-14 Credit Suisse Securities (Usa) Llc Predicting and managing resource allocation according to service level agreements
US8250197B2 (en) 2008-10-28 2012-08-21 Vmware, Inc. Quality of service management
US9542222B2 (en) * 2008-11-14 2017-01-10 Oracle International Corporation Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement
US20100211958A1 (en) * 2009-02-17 2010-08-19 Sun Microsystems, Inc. Automated resource load balancing in a computing system
US9424094B2 (en) * 2009-06-01 2016-08-23 International Business Machines Corporation Server consolidation using virtual machine resource tradeoffs
US8301805B2 (en) * 2009-09-15 2012-10-30 Hewlett-Packard Development Company, L.P. Managing I/O request in a storage system
US9037717B2 (en) * 2009-09-21 2015-05-19 International Business Machines Corporation Virtual machine demand estimation
US8352609B2 (en) * 2009-09-29 2013-01-08 Amazon Technologies, Inc. Dynamically modifying program execution capacity
US8463908B2 (en) * 2010-03-16 2013-06-11 Alcatel Lucent Method and apparatus for hierarchical management of system resources
US8332517B2 (en) 2010-03-31 2012-12-11 Incnetworks, Inc. Method, computer program, and algorithm for computing network service value pricing based on communication service experiences delivered to consumers and merchants over a smart multi-services (SMS) communication network

Also Published As

Publication number Publication date
WO2013181464A1 (en) 2013-12-05
US9244742B2 (en) 2016-01-26
US20160218994A1 (en) 2016-07-28
AU2013267279A1 (en) 2014-11-27
US10686724B2 (en) 2020-06-16
EP2856721A1 (en) 2015-04-08
US20130326064A1 (en) 2013-12-05
AU2013267279B2 (en) 2015-11-26
JP2015525397A (ja) 2015-09-03
EP2856721A4 (en) 2016-03-30

Similar Documents

Publication Publication Date Title
JP6017684B2 (ja) リソースプーリングを利用した、要求ベースによるストレージの分散型クオリティ・オブ・サービス管理
US10212098B2 (en) Performance-driven resource management in a distributed computer system
US11068946B2 (en) NUMA-based client placement
US10298512B2 (en) System and method for performing resource allocation for a host computer cluster
US9529642B2 (en) Power budget allocation in a cluster infrastructure
EP2888676B1 (en) Client placement in a computer network system using dynamic weight assignments on resource utilization metrics
US9379995B2 (en) Resource allocation diagnosis on distributed computer systems based on resource hierarchy
US9389924B2 (en) System and method for performing resource allocation for a host computer cluster
Gulati et al. Demand Based Hierarchical {QoS} Using Storage Resource Pools
US11307802B2 (en) NVMe queue management multi-tier storage systems
Liu et al. Towards a multi-QoS human-centric cloud computing load balance resource allocation method
US20160070587A1 (en) Load balancing of cloned virtual machines
US10581757B2 (en) Pooling public cloud resources from different subscriptions using reservations
US20220035662A1 (en) Scheduling workloads on a common set of resources by multiple schedulers operating independently
WO2016041446A1 (zh) 一种资源分配方法、装置及设备
WO2016103471A1 (ja) 計算機システムおよび管理プログラム
Prajapati et al. Comparison of virtual machine scheduling algorithms in cloud computing
Lee et al. Distributed resource allocation in federated clouds
Komarasamy et al. ScHeduling of jobs and Adaptive Resource Provisioning (SHARP) approach in cloud computing
US20140059008A1 (en) Resource allocation analyses on hypothetical distributed computer systems
Makwe et al. A Survey of Scheduling Policies in Cloud Computing Environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151021

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151021

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20151021

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160622

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160928

R150 Certificate of patent or registration of utility model

Ref document number: 6017684

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531