JP5328772B2 - 大規模なストレージ・コントローラの集合におけるスケーラブルな性能ベースのボリューム割り振りのための、方法、システム、およびコンピュータ・プログラム - Google Patents

大規模なストレージ・コントローラの集合におけるスケーラブルな性能ベースのボリューム割り振りのための、方法、システム、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP5328772B2
JP5328772B2 JP2010507923A JP2010507923A JP5328772B2 JP 5328772 B2 JP5328772 B2 JP 5328772B2 JP 2010507923 A JP2010507923 A JP 2010507923A JP 2010507923 A JP2010507923 A JP 2010507923A JP 5328772 B2 JP5328772 B2 JP 5328772B2
Authority
JP
Japan
Prior art keywords
node
global resource
resource tree
gap value
nodes
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.)
Expired - Fee Related
Application number
JP2010507923A
Other languages
English (en)
Other versions
JP2010530564A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010530564A publication Critical patent/JP2010530564A/ja
Application granted granted Critical
Publication of JP5328772B2 publication Critical patent/JP5328772B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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
    • 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]
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

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

Description

本発明は、大規模なコンピュータ・ストレージ・コントローラの集合に関する。とりわけ本発明は、ストレージ・コントローラの集合における性能ベースのボリューム割り振りに関する。
性能ベースのボリューム割り振りは、スペースおよび性能の要件に関した作業負荷プロファイル、ならびにストレージ・コントローラの様々なコンポーネントでの現在の性能数(performance number)に基づいて、作業負荷に関するボリュームの割り振り先を決定するタスクである。コントローラ1台あたりのディスク数の増加およびコントローラ数の増加に伴って、ストレージ・サイズが増大を続ける中、このタスクはますます困難になってきている。現在の単一コントローラ・アルゴリズムは、サイズの増大に合わせてスケール変更しないため、大規模な動的ストレージ制御シナリオには適さない。さらに従来のコントローラ・アルゴリズムは、システム・コンポーネント間に大規模なばらつき(variance)を招く。
現在のストレージ・コントローラは、各コンポーネントがその性能制約を有するコンポーネントの階層としてモデル化可能な、高度なデバイスである。ストレージ・コントローラをコンポーネントの階層、すなわちリソース・グラフ・モデルとしてモデル化することによって、ストレージ・コントローラ内のハードウェア・コンポーネント間の依存性をとらえることができる。階層内に過負荷のコンポーネントがないことを保証するために、各コンポーネントに関する現在のスペースおよび性能数が取得され、階層内の単一コンポーネントの過負荷は、そのコンポーネントに関連付けられたストレージ・プールに割り当てられる作業負荷を混乱させる可能性がある。新しい作業負荷に関する作業負荷プロファイルを使用して、新しい作業負荷に関するスペースおよび性能要件を予測することができる。最小および最大の許容または必要論理ボリューム・サイズなどの他の要素も、作業負荷割り当て決定プロセスに影響を与える可能性がある。既存の性能数ならびに作業負荷プロファイルおよび前述の他の要素を考慮に入れて、新しい作業負荷割り当て用のボリュームを作成するために好適なストレージ・コントローラ・コンポーネントを決定することができる。
ストレージ・ボリューム割り振りのための従来のアルゴリズムは非常に低速であり、ストレージ・システム・サイズの増大に合わせてスケール変更されないため、多くの大規模な動的ストレージ・シナリオには不適格である。さらに、システム・コンポーネント間に大幅なばらつきを招く可能性があり、これはストレージ・コントローラのリソース階層内にある一部のコンポーネントへの大量の負荷につながる。他の貪欲(greedy)またはランダム割り当てアルゴリズムは不十分な割り振りにつながり、リソース・グラフ階層内の高位ノードに対する負荷均衡を考慮しないため、結果として不均衡なシステムが生じる。リソース・グラフ階層内の高位ノードは、階層内の低位ノードに比べて大量のそれらの下の作業負荷に対する責務を負うため、これらノードの過負荷は即時にシステム全体の性能低下につながる可能性がある。システムおよび方法の中には、ストレージ制御およびリソース割り振りの領域で開発されてきたものもある。
2006年9月7日公開のHunter等による米国特許出願公開第2006/0200400号明細書は、所望の信頼性ポートフォリオに必要なだけのポートフォリオ資産を割り振る信頼性決定エンジンを備える、改良されたリソース割り振りシステムについて開示している。信頼性決定エンジンは、基本信頼性決定エンジンと強固な信頼性決定エンジンとの、2つの信頼性決定エンジンを含む。強固な最適化を使用することによって、最適化されたポートフォリオの感度を決定することができる。シナリオは、ユーザが直接指定するか、またはユーザの選択に応答してシステムが自動的に生成することができる。入力は基本的な基本信頼性決定エンジンに適用され、入力は強固な信頼性決定エンジンに適用される。
2006年6月22日公開のLe等による米国特許出願公開第2006/0136684号明細書は、データ・ストレージ・システムにおいてアクセス用のデータ・ユニットを作成する方法について開示している。データ・ストレージ・システムは、データ・ユニットを有する複数のストレージ・デバイスを含む。データ・ストレージ・システムのすべてのストレージ・デバイスが同時に電源投入されることはない。この方法は、補助データの作成および格納も含む。補助データは、データ・ユニットのアクセス要求時には電源切断されることになるストレージ・デバイス上で、データ・ユニット用に作成される。補助データはストレージ・デバイス上に格納されるため、結果として補助データは、データ・ユニットがアクセス要求の対象である場合、電源投入されたストレージ・デバイス上で使用可能である確率が高い。
2001年6月12日発行のMuller等による米国特許第6,247,077号明細書は、高度にスケーラブルな並列処理コンピュータ・システム・アーキテクチャについて開示している。並列処理システムは、アプリケーションを実行するための複数の計算ノードと、それぞれが複数のストレージ・リソースに通信的に結合された複数のI/Oノードと、任意の計算ノードと任意のI/Oノードとの間に通信を提供する相互接続ファブリックとを備える。相互接続ファブリックは、計算ノードとI/Oノードとを接続するためのネットワークを備え、このネットワークは、g(log N)を超える交換ノード・ステージに配置構成された複数の交換ノードを備え、ここでbは交換ノード入出力ポートの合計数であり、g(x)は引数x以上の最小整数を与える天井関数を示し、交換ノード・ステージはそれによって任意のネットワーク入力ポートとネットワーク出力ポートの間に複数のパスを提供する。
米国特許出願公開第2006/0200400号明細書 米国特許出願公開第2006/0136684号明細書 米国特許第6,247,077号明細書
上記に鑑みて、当分野では、分散ストレージ・システム内にストレージ・ボリュームを割り振るための、性能が向上したプログラム、方法、およびシステムが求められている。さらに、こうしたプログラム、方法、およびシステムで、大規模なストレージ・コントローラの集合においてボリュームを割り振るための、スケーラブルであり性能ベースのアルゴリズムを採用することも求められている。これらおよび他のニーズは、以下で詳細に説明するように、本発明によって満たされる。
本発明の諸実施形態は、大規模なストレージ・コントローラの集合で適用可能な、スケーラブルであり性能ベースのボリューム割り振り技法から導出される。本発明の諸実施形態は、ボトムアップ推定プロセスとトップダウン選択プロセスとの組み合わせに基づくものとすることができる一方で、ボリューム割り振り時に(異なる階層レベルにある)システムのすべてのコンポーネントにかかる均衡負荷を生み出す正確さも維持する。したがってこのアルゴリズムは、システム・コンポーネントにその性能限界を超える過負荷がかけられないことを保証する。ストレージ・システムの相互接続されたコンポーネントを表す複数ノードのグローバル・リソース・ツリーを分析して、各ノードに関するギャップ値を生み出すことができる(このステップは、ボトムアップ式で進行する)。各ノードに関するギャップ値は、非葉ノード(non-leaf node)についてのスループット限界または葉ノードについての容量限界に対応する。各ノードに関するギャップ値は、サブツリー内のいかなるノードでの性能およびスペース境界をも超えることなく、そのノードのサブツリー内で割り振り可能な新しい作業負荷のGB単位の推定量を備えることが可能である。さらにグローバル・リソース・ツリーのギャップ値を分析して、ストレージ・システムのボリュームの順序付き割り振りリストを生成する(このステップはトップダウン式で進行する)。このボリュームを、割り振りリストの順にストレージ作業負荷に割り振ることが可能であり、ギャップ値およびリストは更新される。
本発明の典型的な実施形態は、ストレージ・システムに関するグローバル・リソース・ツリーの各ノードについてギャップ値を決定するためのプログラム命令と、各葉ノードに関するギャップ値による葉ノードの順序付けに基づいて、ストレージ・システムのグローバル・リソース・ツリーの複数の葉ノード上のボリュームの順序付き割り振りリストを生成するためのプログラム命令と、を含む、コンピュータ読み取り可能媒体上に具体化されたコンピュータ・プログラムを備える。各ノードに関するギャップ値は、そのノードのいかなるサブツリー・ノードの性能およびスペース限界をも超えることなく、そのノードの1つまたは複数のサブツリー・ノードに割り振り可能な新しい作業負荷の推定量に対応する。各ノードに関するギャップ値は、グローバル・リソース・ツリー全体にわたるボトムアップ推定プロセスを通じて決定可能であり、複数の葉ノードのボリュームの順序付き割り振りリストは、トップダウン選択プロセスから生成可能である。グローバル・リソース・ツリーのボリュームの順序付き割り振りリストの少なくとも一部に作業負荷を割り振った後に、ギャップ値を更新するため、および、順序付き割り振りリストを再順序付けするための、プログラム命令も含めることができる。
他の実施形態では、各ノードに関するギャップ値の決定は、ノード特有の性能限界推定の計算を含むことができる。各ノードに関するノード特有の性能限界の推定は、各ノードに関する残りの性能容量の計算を含むことができる。この場合、残りの性能容量は、残りの使用率値を各ノードに関する名目コスト(nominal cost)で割ることで決定され、ここで名目コストは、各ノードに関する任意の関連する下位ボリュームで使用されるスペースあたりの性能使用率を含む。
本発明の一部の実施形態では、各ノードに関するギャップ値は、親ノードに関するノード特有の性能限界推定と、親ノードに対するすべての子ノードに関するノード特有の性能限界推定の合計とのうちの、少ない方として決定することができる。さらに本発明の一部の実施形態では、各ノードの任意の非葉子ノードを、非葉子ノードのギャップ値の減少順にソートされた順序で処理することができる。別の方法として、各ノードの任意の非葉子ノードを、ユーザ定義のコスト関数によるソート順に処理することもできる。
同様に、本発明の典型的な方法実施形態は、ストレージ・システムに関するグローバル・リソース・ツリーの各ノードについてギャップ値を決定するステップと、各葉ノードに関するギャップ値による葉ノードの順序付けに基づいて、ストレージ・システムのグローバル・リソース・ツリーの複数の葉ノード上のボリュームの順序付き割り振りリストを生成するステップとを含む。各ノードに関するギャップ値は、そのノードのいかなるサブツリー・ノードの性能およびスペース限界をも超えることなく、そのノードの1つまたは複数のサブツリー・ノードに割り振り可能な新しい作業負荷の推定量に対応する。本発明の方法実施形態は、本明細書で説明されるプログラムおよびシステムに従ってさらに変更することができる。
同様に、本発明の典型的なストレージ・システム実施形態は、ストレージ・システムに関する異なる相互接続されたストレージ・コンポーネントに対応する複数のノードを備えるグローバル・リソース・ツリーとして表される、相互接続されたストレージ・コンポーネントの階層と、グローバル・リソース・ツリーの各ノードについてギャップ値を決定するため、および、各葉ノードに関するギャップ値による葉ノードの順序付けに基づいて、グローバル・リソース・ツリーの複数の葉ノード上のボリュームの順序付き割り振りリストを生成するための、プロセッサと、を含む。ここでも、各ノードに関するギャップ値は、そのノードのいかなるサブツリー・ノードの性能およびスペース限界をも超えることなく、そのノードの1つまたは複数のサブツリー・ノードに割り振り可能な新しい作業負荷の推定量に対応する。同様に、本発明のシステム実施形態は、本明細書で説明されるプログラムおよび方法に従ってさらに変更することができる。
次に図面を参照するが、ここで同じ番号は、図面全体を通じて対応する部分を表す。
ストレージ・システムの様々な相互接続されたハードウェア要素間の依存性のツリー型階層を視覚的に表す、例示的なグローバル・リソース・グラフを示す図である。 本発明の諸実施形態を実装するために使用可能な、例示的コンピュータ・システムを示す図である。 本発明の典型的実施形態で採用可能な、典型的な分散コンピュータ・システムを示す図である。 本発明の実施形態を実装する典型的なストレージ・システムを示す図である。 本発明のボリューム割り振りアルゴリズム実施形態の例示的諸ステップを示す流れ図である。 例示的なボトムアップ推定プロセスを示す流れ図である。 例示的なトップダウン選択プロセスを示す流れ図である。 本発明の例示的実施形態と他のアルゴリズムとの性能比較を示すグラフである。 本発明の例示的実施形態と他のアルゴリズムとの性能比較を示すグラフである。 本発明の例示的実施形態と他のアルゴリズムとの性能比較を示すグラフである。 本発明の例示的実施形態と他のアルゴリズムとの性能比較を示すグラフである。 本発明の例示的実施形態と他のアルゴリズムとの性能比較を示すグラフである。
概要
ストレージ・コントローラに新しい作業負荷をかけるには、現在の作業負荷に基づくストレージ・コントローラの集合のうちの様々なコンポーネントの使用可能なスペースおよび性能などの要素について、注意深く考察する必要がある。現在のアルゴリズムは、大規模なストレージ・コントローラの集合について様々なコンポーネントの性能を適切に均衡させる点で、不適当であることが証明できる。コントローラの様々なコンポーネントでのスペースおよび性能負荷を考慮して、複数のストレージ・コントローラに作業負荷ボリュームを与えるための新しいアルゴリズムが提供される。ストレージ・コントローラの集合の様々なコンポーネント全体にわたって負荷を均衡させることに関して、この新しいアルゴリズムが既存のアルゴリズムをしのぐ可能性があり、その結果として、データのボリュームを割り振るためのより高速でスケーラブルなメカニズムが生じることが、実験によって示されている。この方法は、貪欲、ランダム、および現時点で最高の方法と比較すると、(リソース・グラフ階層の様々なレベルで)システム・コンポーネント全体にわたって生じるばらつきを少なくすることが可能であり、これはより良い品質の測度である。新しいアルゴリズムは、リソース・ボリューム割り振りの問題を解決するための他の知られた方法よりもかなり高速な可能性がある。このアルゴリズムの速度は、平均して、以前の最新の方法の3倍から4倍の速さとすることができる。この速度は、ストレージ・システム・サイズが大きくなるにつれて、さらに高速化することができる(たとえば、6倍から9倍)。したがってこの方法は、より高品質の性能ベースのボリューム割り振りに関するより高速でスケーラブルなメカニズムを提供することができる。
図1は、ストレージ・システムの様々な相互接続されたハードウェア要素間での依存性のツリー型階層を視覚的に表す、例示的なグローバル・リソース・グラフ100を示す。グローバル・リソース・グラフ100のツリー構造の頂部にあるノードはルート・ノード102であり、これに接続された様々なストレージ・コンポーネント104A、104B、および104Cに関するすべてのコントローラを有する。ルート・ノード102は、グローバル・リソース・グラフ100によって表されるストレージ・システムのすべての入出力データのための、中央アクセス・ポイントである。ストレージ・コントローラ104A、104B、および104C、ならびにそのそれぞれの下にあるサブツリーは、コントローラ・リソース・グラフと呼ぶことができる。この例では、グローバル・リソース・グラフ100の最下位の葉ノード(ランク)までの完全な分岐が1つしか示されていないことに留意されたい。葉ノード(ランク)は、アルゴリズムによって割り振られることになるボリュームのうちの1つまたは複数を備えることができることにも留意されたい。共通のルート・ノード102の下のコントローラ・リソース・グラフの組み合わせが、グローバル・リソース・グラフ100を形成する。この例では、ストレージ・コントローラ104Aが、ホスト・システムをストレージ・デバイスに接続するホスト・アダプタ106Aおよび106Bに通信的に結合される。ホスト・アダプタ106Aは、ストレージ・システムに対する管理を提供するクラスタ108Aに接続される。クラスタ108Aは、クラスタ108Aとストレージ・デバイス114A〜114Gとの間に通信を提供する、デバイス・アダプタ110Aと接続される。ストレージ・プール112A、112B、および112Cは、どのボリュームまたはストレージ・デバイス114A〜114Gがコントローラによって管理されるべきであるかを識別する。当業者であれば理解されるように、示されたグローバル・リソース・グラフ100は単なる例であり、異なるグラフによって異なるストレージ・システムが表されることを理解されたい。たとえば、特定のストレージ・システム・アーキテクチャに依存して、他のシステムが異なる数のホスト・アダプタにコントローラを結合すること、あるいはデバイス・アダプタがそれらの下で異なる数のプールおよびランクを監視すること、またはその両方が可能である。本発明の諸実施形態で、異なるコンポーネント・レイヤを有するまったく異なるアーキテクチャも実装可能であり、当業者であれば理解されるように、グローバル・リソース・グラフ100を使用して、特定のハードウェアまたはアーキテクチャにこだわらずに、相互接続されたノードの配置構成の包括的な性能特徴がとらえられる。
本発明の諸実施形態は、ボトムアップ推定プロセスおよびトップダウン選択プロセスという、2つの重要なプロセスを使用して動作することができる。ボトムアップ推定プロセスは、ストレージ・コンポーネントからの性能数と共に使用されるコントローラ・リソース・グラフからのグローバル・リソース・グラフのコンパイルによって駆動される。コントローラ・リソース・グラフからグローバル・リソース・グラフのこの構造が、推定プロセスをボトムアップであるとして特徴付けることができる理由でもある。ボトムアップ構造とは、より小さな、より特異的な情報片がまとめて構成され、より大きなシステムの全体図が形成されるものである。このプロセスは、すべての子ノードが親ノードと同じ量の負荷をサポートできるかどうかを判別するために使用される。すべての子ノードがサポートできる負荷の合計が、親ノードがサポートできる量よりも少ない場合、親ノードに関する推定を、その子ノードがサポートできる負荷の合計の推定まで減らす必要がある。トップダウン選択プロセスは、ボトムアップ推定の分析に基づく。これは、アルゴリズムがグローバル・リソース・グラフの各レベルをトラバースし、最後の最も特異的なノードにボリュームが割り振られるため、「トップダウン」と呼ばれる。
ハードウェア環境
図2は、本発明の諸実施形態を実装するために使用可能な、例示的コンピュータ・システム200を示す。コンピュータ202は、プロセッサ204と、ランダム・アクセス・メモリ(RAM)などのメモリ206とを備える。コンピュータ202は、グラフィカル・ユーザ・インターフェース218上でウィンドウなどのイメージをユーザに提示するディスプレイ222に、動作的に結合される。コンピュータ202は、キーボード214、マウス・デバイス216、プリンタ228などの他のデバイスに結合することができる。もちろん、当業者であれば理解されるように、前述のコンポーネントの任意の組み合わせ、または、任意数の異なるコンポーネント、周辺装置、および他のデバイスが、コンピュータ202と共に使用可能である。
一般に、コンピュータ202は、メモリ206内に格納されたオペレーティング・システム208(たとえば、z/OS、OS/2、LINUX、UNIX、WINDOWS、MAC OS)の制御の下で動作し、入力およびコマンドを受け入れるため、ならびに、たとえばグラフィカル・ユーザ・インターフェース(GUI)モジュール232を介して、結果を提示するために、ユーザとインターフェースする。GUIモジュール232は別々のモジュールとして示されているが、GUI機能を実行する命令は、オペレーティング・システム208、コンピュータ・プログラム210内に常駐または分散すること、あるいは、特定用途向けのメモリおよびプロセッサで実装することが可能である。
コンピュータ202は、COBOL、PL/1、C、C++、JAVA、ADA、BASIC、VISUAL BASIC、または任意の他のプログラミング言語などの、プログラミング言語で書かれた1つまたは複数のアプリケーション・プログラム210を、プロセッサ204によって読み取り可能なコードに変換できるようにする、コンパイラ212も実装する。完了後、コンピュータ・プログラム210は、コンパイラ212を使用して生成された関係および論理を使用して、コンピュータ202のメモリ206内に格納されたデータにアクセスし、これを操作する。コンピュータ202は、オプションで、たとえばインターネットまたは他のネットワークを介して、他のコンピュータと通信するための、モデム、衛星リンク、イーサネット・カード、無線リンク、または他のデバイスなどの、外部データ通信デバイス230も備える。
オペレーティング・システム208、コンピュータ・プログラム210、およびコンパイラ212を実施する命令は、総称的にフレキシブルディスク224として表された、ジップ・ドライブ、フレキシブルディスク224、ハード・ドライブ、DVD/CD−ROM、デジタル・テープなどの、1つまたは複数の固定または取り外し可能のデータ・ストレージ・デバイスを含むことが可能な、たとえばデータ・ストレージ・デバイス220などのコンピュータ読み取り可能媒体内に、確実に記録することができる。さらに、オペレーティング・システム208およびコンピュータ・プログラム210は、コンピュータ202によって読み取りおよび実行された場合、本発明の実装あるいは使用またはその両方に必要なステップをコンピュータ202に実行させる、命令を備える。コンピュータ・プログラム210あるいはオペレーティング・システム208またはその両方の命令は、メモリ206内に確実に記録すること、あるいは、データ通信デバイス230を介して伝送されるかまたはこれによってアクセスされること、またはその両方も可能である。したがって、本明細書で使用される「製品」、「プログラム・ストレージ・デバイス」、および「コンピュータ・プログラム製品」という用語は、任意のコンピュータ読み取り可能デバイスまたは媒体からアクセス可能あるいは動作可能またはその両方である、コンピュータ・プログラムを包含することが意図される。
本発明の諸実施形態は、一般に、複数の別々のストレージ・デバイスからなるストレージ・システムへのデータ・オブジェクト(すなわちファイル)アクセスを管理する、ソフトウェア・アプリケーション・プログラム210を対象とする。プログラム210は、単一のコンピュータ202内で、または、コンピューティング・デバイスおよびストレージ・デバイスのネットワークを備える分散コンピュータ・システムの一部として、動作可能である。ネットワークは、ローカル・エリア・ネットワークあるいは(たとえばVPN接続を介した、公衆またはセキュアとすることが可能な)インターネット接続またはその両方を介して接続された、1つまたは複数のコンピュータ/ストレージ・デバイスを包含することができる。
図3は、本発明の典型的実施形態で採用可能な、典型的な分散コンピュータ・システムを示す。こうしたシステム250は、ネットワーク252内のそれぞれの通信デバイス230を介して相互接続された複数のコンピュータ202を備える。ネットワーク252は、完全に専用(事業所内のローカル・エリア・ネットワークなど)であること、あるいは、ネットワーク252の一部またはすべてが公開(インターネット上で動作する仮想私設ネットワーク(VPN)を介するなど)で存在することが可能である。さらに、コンピュータ202のうちの1つまたは複数は、残りのクライアント・コンピュータ256への様々なサービスの提供を容易にするサーバまたはホスト254として機能するように、特別に設計することができる。一例では、1つまたは複数のホストをメインフレーム・コンピュータ258とし、ここでクライアント・コンピュータ256に関する重要な処理が実行できるようにすることが可能である。メインフレーム・コンピュータ258は、他のネットワーク化コンピュータ202(サーバ254あるいはクライアント256またはその両方)に関するいくつかのデータベース・プロシージャを実施する要求ハンドラ262に結合された、データベース260を備えることができる。要求ハンドラ262は、SANを備えるネットワーク化ストレージ・デバイス268へのアクセスを容易にするストレージ/バックアップ・サブシステム266を介したデータ・アクセスを指示する、リソース・マネージャ264にも結合される。したがって、コンピュータ258上のストレージ/バックアップ・サブシステム266は、分散ストレージ・システム内のネットワーク化ストレージ・デバイス268上に格納された、クライアント・コンピュータ256からのバックアップ・データ・オブジェクトを管理する、バックアップ・サーバを備える。SANは、別個の物理ストレージ・デバイス268A〜268Cとして示された、直接アクセス・ストレージ・デバイス(DASD)、光ストレージ、あるいはテープ・ストレージ、またはそれらすべてなどの、デバイスを含む。様々な既知のアクセス方法(たとえばVASM、BSAM、QSAM)が、ストレージ/バックアップ・サブシステム266の一部として機能することができる。
図4は、本発明の実施形態を実装する典型的なストレージ・システム270を示す。たとえば、ストレージ・システム270は、図3の分散コンピュータ・システム250内のストレージ/バックアップ・サブシステム266およびストレージ・デバイス268の一部として動作することができる。本発明の典型的な実装は、ストレージ・サブシステム272(たとえば、図3のコンピュータ258のストレージ/バックアップ・サブシステム)上で動作するプログラムを備える。ストレージ・サブシステム272は、複数のストレージ・デバイス274A〜274Cに結合される。1つのストレージ・デバイス247Aについてのみ詳細に説明するが、他のストレージ・デバイス274B、274Cも同様に構成可能であることを理解されたい。コントローラ276は、ストレージ・デバイス274A内でのデータの進行先を指示する。データは、ストレージ・サブシステム272を通過するストレージ作業負荷の少なくとも一部である。通常、1つまたは複数のホスト・アダプタ278が、1つまたは複数のホスト・アダプタ278から入信する入力および出力を処理するクラスタ・プロセッサ複合体280に結合されたシステムに対する、外部インターフェースとして動作する。クラスタ・プロセッサ複合体280は、ランク284A〜Eを、それらを制御するシステムに接続する、デバイス・アダプタ282Aおよび282Bに接続される。ランク284A〜Eは、データがストレージ・デバイス274A内に物理的に格納され、クラスタ・プロセッサ複合体280に結合された1つまたは複数のデバイス・アダプタ282A、282Bを介してアクセスされる、物理ディスクを備える。ランク284A〜Eは、所与のデバイス・アダプタ282Aの下で1つまたは複数のプール286A、286Bに編成することができる。説明したハードウェア・アーキテクチャは単なる例であり、当業者であれば、任意数の異なるデバイス(たとえばコントローラ、ホスト・アダプタ、クラスタ・プロセッサ、デバイス・アダプタ、およびデータ・ボリュームを備える物理ディスク)を、本発明の範囲内の代替アーキテクチャ内でまとめて結合できることを理解されよう。
当業者であれば、本発明の範囲を逸脱することなく、このハードウェア環境に対して多くの変更が可能であることを理解されよう。たとえば当業者であれば、本明細書で説明された本発明の様々な実施形態をサポートおよび実装するための機能要件に合致する、前述のコンポーネントの任意の組み合わせ、あるいは任意数の異なるコンポーネント、周辺装置、および他のデバイスが、本発明と共に使用可能であることを理解されよう。
アルゴリズムの入力および出力
本発明の典型的な実施形態は、データ作業負荷のストレージをストレージ・システムの様々なボリュームに向けて送るように動作する、プログラム化アルゴリズムとして特徴付けることができる。このアルゴリズムは、各ノードの作業負荷プロファイルおよびある種の性能測定を入力情報として必要とし、ボリュームが作業負荷に適用されるべき順序をランク付けしたボリューム・リストを、出力情報として生成する。たとえば、アルゴリズムへの入力は、作業負荷プロファイルおよび(コントローラの各ノードに関する、たとえばスループット・レートなどの性能速度を示す)コントローラ・リソース・グラフを備えることができる。
作業負荷プロファイルは、格納されることになる合計作業負荷サイズ(たとえばGB単位)および各ノードでの名目コスト値などの情報を含むことができる。名目コスト値とは、特定ノードに関連付けられた任意のプールの作業負荷のGBあたりの、ノードで経験された性能使用率の増加の測度である。いずれのノードも、リソース・グラフ階層内のそのすべての下位プールに関連付けられる。
コントローラ・リソース・グラフは、ストレージ・システム内の異なるストレージ・コントローラの構造を記述する。この構造は、コントローラ設計に依存して異なるコントローラごとに変化する可能性があり、異なるコントローラは、記述された階層(または任意の代替階層)内で異なる数のコンポーネントを有する。システムの異なるコンポーネントに関する特定の性能数(たとえば、100%使用率スループット・レート)も、アルゴリズムへの入力として与えられる。
加えて、最大および最小の許容論理ボリューム・サイズも識別可能である。最大および最低のボリューム・サイズ制約は、システム管理者によって、またはシステム内で適用された何らかの他の制約を介して、決定されたものとすることができる。非常に小さいかまたは非常に大きいボリューム・サイズは、おそらく採用不可能であり、小さなボリューム・サイズは過度の断片化につながる可能性があり、大きなボリューム・サイズは結果としてシステム内に不均衡を生じさせる可能性がある。
図5は、本発明のボリューム割り振りアルゴリズム300実施形態の例示的諸ステップの流れ図である。アルゴリズム300は、ステップ302で、コントローラ・リソース・グラフ(リソース・グラフの各ノードに関する性能値を含む)、作業負荷プロファイル(格納されることになる合計作業負荷サイズおよび各ノードでの名目コスト値を含む)、ならびに、最小および最大ボリューム・サイズの、入力によって開始することができる。ステップ304では、ストレージ・システムについて、グローバル・リソース・ツリーの各ノードに関するギャップ値が、たとえばボトムアップ推定プロセスを介して決定される。各ノードに関するギャップ値は、ノードのいかなるサブツリー・ノードの性能およびスペース限界をも超えることなく、ノードの1つまたは複数のサブツリー・ノード内で割り振り可能な、新しい作業負荷の推定量に対応する。次に、ステップ306では、ストレージ・システムのグローバル・リソース・ツリーの複数の葉ノード上にあるボリュームの順序付き割り振りリストが、各葉ノードに関するギャップ値による葉ノードの順序付けに基づいて、たとえばトップダウン選択プロセスを介して生成される。最後に、ステップ308では、割り振られることになるボリュームの順序付き割り振りリストを、アルゴリズム300から出力することができる。
前述のように、本発明の諸実施形態は、ストレージ・コントローラの集合に新しい作業負荷を提供するスケーラブルなボリュームに関するアルゴリズムとして実施可能である。より良く均衡のとれた割り振りは、結果として、他の従来のストレージ割り振りアルゴリズムに関連付けられた弱点に陥ることがない。スケーラブルな性能ベースのボリューム割り振り(SPVA)アルゴリズムと呼ぶことのできる例示的なアルゴリズムについての擬似コードを、以下に示す。
Figure 0005328772
ボトムアップ推定およびトップダウン選択を実行した後の本発明の出力は、割り振られることになるボリュームのリストである。このアルゴリズムの目的は、様々なコンポーネント間に作業負荷を分散させることによる割り振りのためのボリュームの順序付きリストを提供する一方で、これらのコンポーネント全体にわたってすべての負荷の均衡を維持することである。最適化されたプールへのデータの配置は、高位レベルでもストレージ・システム内のデータを処理するため、高位レベルでの性能使用率の増加につながる可能性もある。前述の例示的アルゴリズム300のボトムアップ推定およびトップダウン選択のプロセスについて、以下の項でさらに詳細に説明する。
ボトムアップ推定プロセス
図6は、ボトムアップ推定プロセス・アルゴリズム400を示し、ステップ402で、単一ルート・ノードの下で入力として与えられたすべてのコントローラ・リソース・グラフを組み合わせることによる、グローバル・リソース・グラフの構成で開始される。グローバル・リソース・グラフのこの構成により、サブツリーとしての異なるストレージ・コントローラに関するリソース・グラフを伴う、ツリー型構造としてのストレージ・システム全体のビューが可能である。このアルゴリズムは、このグローバル・リソース・グラフ上で動作する。階層を表示するためのツリー型構造では、ツリーの頂部が「ルート」ノードと呼ばれ、単一ノードから分岐するノードは単一の「親」ノードの「子」と呼ばれ、ツリーの底部では、子ノードを有する最後のノードが「葉」ノードと呼ばれる。
グローバル・リソース・グラフが作成された後、ステップ404で、アルゴリズム400は、ノードの現在の性能使用率およびそのノードでの名目コストに基づいて、新しい作業負荷の最大許容サイズの推定、すなわちノード特有の性能限界の推定を算出する。アルゴリズムは、グラフ内のすべてのノードのこれらの初期のノード特有の性能限界の推定を、lgap(v)として示し、ここでvは測定中のノードである。言い換えれば、lgapは、あるノードが何ギガバイトの作業負荷を処理できるかを示す。
lgapを決定するのに好適な任意の公式が使用可能であるが、このアルゴリズムについては以下の公式が最適である。
Figure 0005328772
この公式は、ノードの性能使用率およびノードの名目コストを計算に入れ、最小許容ボリューム・サイズに基づいてlgapを訂正することができる。算出されたlgapが最小のボリューム・サイズであっても処理できない場合、最小よりも小さいボリューム・サイズは設定できないため、この値はゼロに設定される。この公式は、ノードの性能使用率およびノードの名目コストを計算に入れ、ここで名目コストは、1GB単位の新しい作業負荷が割り振られた場合、このノードにどれだけの割合の性能使用率が生じるかを表す。名目コストは、相対的なIOスループットおよびそれらのノードを通過する帯域幅転送に依存して、ディスク・アダプタ、クラスタ、ランクなどで異なる可能性がある。算出されたlgapが最小のボリューム・サイズであっても処理するのに不十分である場合、最小よりも小さいボリューム・サイズは設定できないため、この値はゼロに設定される。
lgap値が決定されると、ステップ406で値の平滑化が実行できる。アルゴリズム400は、各ノードのlgap値と子ノードのlgap値の合計とを比較して、各ノードに関する後行順トラバースを実行することができる。2つの値のうち小さい方が選択され、ここでノードのギャップ値と呼ばれる。リソース・グラフ内の各ノードvについて、gap(v)は、vのサブツリー内のいかなるノードでの性能またはスペース境界をも超えることなく、vのサブツリー内に入れることのできる新しい作業負荷のGB単位の量である。この論理によれば、グローバル・リソース・グラフのルート・ノードのギャップ値は、システム内で処理可能な合計作業負荷(GB単位)の良好な推定値でなければならない。
後行順トラバースは、ツリー構造が処理可能な系統的手法を含み、すべてのノードが分析されることを保証する。トラバースはツリーのルート・ノードで開始され、左のノードがnull値であるかどうかをチェックする。これがnull値である場合、右のノードがnull値であるかどうかがチェックされる。すべての子がnullの場合、そのノードにアクセスする(visit)ことができる。左の子がnullでない場合、左のノードで後行順トラバースが実行される。同様に、右のノードがnullでない場合、ここでも後行順トラバースが実行される。すべての後行順トラバースの場合、左のノードが常に最初にチェックされる。一般に、後行順トラバースにおける動作の順序は、左、右、アクセスであり、トラバースを左ノードに適用し、トラバースを右ノードに適用し、それらが完了した場合、現在のノードにアクセスする。
トップダウン選択プロセス
図7は、本発明の例示的実施形態のトップダウン選択部分を表すプロセスを示す。トップダウン選択アルゴリズム500は、ステップ502で、たとえば図6のボトムアップ推定アルゴリズム400によって生成される、葉ノードの順序付きリストから第1のノードを選択して開始することができる。この第1のノードは、最高のギャップ値を伴うノードであり、最も多くの作業負荷を処理することができる。このノードが選択されると、アルゴリズム500は、どれだけのボリュームを葉ノードに割り振ることができるかを決定する。ギャップ値は、最小許容ボリューム・サイズよりも大きく、最大許容ボリューム・サイズよりも小さくなければならない。この場合、ステップ504で、アルゴリズムは、選択されたノードにできる限り多くのボリュームを割り振る。ステップ506で、割り振られることになるボリュームが順序付きリストに追加され、これがアルゴリズムの出力になる。これまでどれだけ割り振られたかを追跡する変数が更新され、すべてのノードに関するギャップ値も更新される。このギャップ値の更新中に、ノードをソート順で維持するリストも割り振り後のギャップ値を反映するように更新される。
それ以上割り振る作業負荷がなくなるまで、または、それらを割り振る場所がなくなるまで、アルゴリズム全体でこのトップダウン選択を再帰的に実行する。前述のように、プロセスの最後のアルゴリズムの出力は、割り振られることになるボリュームのリストである。
ボトムアップ推定プロセスおよびトップダウン選択プロセスの両方を含む本発明の例示的実施形態について、以下でさらに詳細に説明する。上記のセクション3にリストアップされた例示的アルゴリズムが参照される。初期の計算を実行した後、アルゴリズムを割り振りプロセスで開始し、割り振られることになる好適なボリュームを発見するために再帰的に試行することができる。アルゴリズムは、リソース・グラフのルート・レベルから開始し、vの好適な子を発見するよう試行しながら、グラフを下方にトラバースすることができる。vの子は、gap(v)値の減少順に順序付けされたソート順に維持されることが必要である。アルゴリズムは、最高のgap(v)値を備える子を選択する。ユーザ定義のコスト関数またはポリシー・メカニズムを許可する他のスキームを使用して(すなわち、raidレベルに依存するなど)、どの子ノードを選択するかを決定することもできることに留意されたい。このプロセスは、アルゴリズムがグローバル・リソース・グラフの葉レベルでノードに遭遇するまで、再帰的に実行される。葉レベルでボリュームを割り当てるために、アルゴリズムは、この葉レベルで割り振られることになる好適なボリューム・サイズを決定する。アルゴリズムの例からわかるように、ボリューム・サイズは、最大許容ボリューム・サイズより小さく、最小許容ボリューム・サイズよりも大きくなければならない。さらにボリューム・サイズは、葉ノードでの最小gap(v)値および未割り振りの作業負荷サイズ(すなわち、Required SpaceがAllocated Spaceより小さい)でなければならない。
前述の制約を考慮し、アルゴリズムは、この葉ノード上に(すなわちプール・レベルで)サイズL’のボリュームを(たとえば、アルゴリズム例のステップ8のように)割り振る。割り振られたボリュームは、その後、順序付き割り振りリストに追加され、合計割り振りスペースは割り振られたボリュームのサイズだけ増分される。この割り振りの実現可能性は、関連する計算によって保証されることに留意されたい。次のステップ(たとえば、アルゴリズム例のステップ9)は、gap(v)値の更新を含む。これは、それぞれの適切な割り振り後にUpdateGap()関数(以下に記載)を使用して実施可能である。割り当てられたボリュームのサイズを使用して、ステップ6で選択された葉ノードvのそれぞれの祖先に関するgap(v)値が再計算される。
葉ノードvのそれぞれの祖先uについて、例示的アルゴリズムは、割り振られたボリュームのサイズ(L’)だけlgap値を減分する。uのchildSumも同じ値だけ減分され、newvalが最小のlgap(u)およびchildSum(u)として計算される。アルゴリズム例は、newvalが最小ボリューム・サイズ以上である(さもなければゼロに設定される)ことを保証し、newvalの値を新しいgap(u)値として割り当てる。減分の値は、高位レベルでの計算のために、gap(u)引くnewvalに等しい減分として改訂される。このプロセスは、ルート・レベルで更新が実行されるまで反復的に繰り返される。すべてのギャップ値は、この関数を使用して適切に更新される。gap()値に従ったノードの順序付けを維持するために、以下のUpdateGap()関数は適切な再挿入を実行しなければならない。
Figure 0005328772
その後アルゴリズムは、必要なスペースが割り振られるまで、または、システム上に割り振り可能な新しい好適なボリュームがない旨をアルゴリズムが決定するまで、ステップ5〜10を繰り返す。
さらに、ユーザは、ノードを編成するための順序を指定するオプションを有する。本明細書でこれまで説明したように、アルゴリズムにとってのデフォルトは、ギャップ値の減少順にノードをソートすることである。しかしながら、ユーザがそれらを何らかの他の方法で順序付けしたい場合、この順序を調整することができる。擬似コードにおける仮定は、ギャップ値の減少に従って値が順序付けされることである。
既存のアルゴリズムとの推定性能比較
図8から図12は、本発明の例示的実施形態である、スケーラブルな性能ベースのボリューム割り振り(SPVA)アルゴリズムと、従来の性能ベースの単一コントローラ・アルゴリズム(VPA)、貪欲アルゴリズム(その時点での最高の選択肢を選択し、その後の処理が生じる可能性のある後続の問題点を残す)、およびランダム・アルゴリズム(その名前が示唆するように、ボリューム割り振りの割り当てがランダムである)とを、比較する。
図8は、例示的SPVAアルゴリズム600A、従来のVPAアルゴリズム600B、貪欲アルゴリズム600C、およびランダム・アルゴリズム600Dという、4つのアルゴリズムの、逐次作業負荷配置に関する実行時間を比較する。従来の性能ベースの単一コントローラ・アルゴリズムのみが、作業負荷の数が増加するにつれて、作業負荷の配置に要する時間が影響を受ける。図9は、同じ4つのアルゴリズム、例示的SPVAアルゴリズム602A、従来のVPAアルゴリズム602B、貪欲アルゴリズム602C、およびランダム・アルゴリズム602Dの、システム・レベルでの性能使用率のばらつきを比較する。SPVA 602Aのみが、作業負荷が増加してもばらつきに影響されないアルゴリズムである。図10は、4つのアルゴリズム、例示的SPVAアルゴリズム604A、従来のVPAアルゴリズム604B、貪欲アルゴリズム604C、およびランダム・アルゴリズム604Dの、初期に不均衡であったシステムに関するシステム・レベルでの性能使用率のばらつきを比較する。ここでも、作業負荷が増加するにつれて、SPVA 604Aを除くすべてのアルゴリズムで高いばらつきが残される。図11は、4つのアルゴリズム、例示的SPVAアルゴリズム606A、従来のVPAアルゴリズム606B、貪欲アルゴリズム606C、およびランダム・アルゴリズム606Dの、逐次作業負荷配置に関する実行時間を比較する。図8とほぼ同様に、コントローラ数の増加によって影響を受けたアルゴリズムはVPA 606Bのみであった。最後に、図12は、6コントローラを備えたSPVA 608Aおよび12コントローラを備えたSPVA 608B、ならびに6コントローラを備えたVPA 610Aおよび12コントローラを備えたVPA 610Bを比較する。図に示されるように、作業負荷が増加するにつれて、システム・レベルでの性能使用率のばらつきが影響されたのは、6コントローラおよび12コントローラを備えたVPAのみであった。6および12コントローラのSPVAは、作業負荷数の増加による影響をほとんど受けない。
リソース・グラフ階層内の異なるレベルでの性能使用率のばらつきは、特に、プール・レベル(階層内の最下位レベル)およびストレージ・コントローラまたはシステム・レベル(階層内の上位レベル)で測定することができる。この負荷均衡化特性は、初期に均衡なシステムおよび初期に不均衡なシステムについて観察可能である。
以上で、本発明の好ましい諸実施形態を含む説明を終える。本発明の好ましい実施形態を含む前述の説明は、例示および説明の目的で提示してきた。本発明を網羅すること、または本発明を開示された精密な形に限定することは、意図されていない。前述の教示の範囲内で、多くの変更および変形が可能である。以下の特許請求の範囲で示される発明の概念から逸脱することなく、本発明の追加の変形が考案可能である。

Claims (7)

  1. コンピュータの処理により実行される方法であって、
    ストレージ・システムに関する異なる相互接続されたストレージ・コンポーネントに対応する複数のノードを備えるグローバル・リソース・ツリーとして表される、相互接続されたストレージ・コンポーネントの階層をもつ、グローバル・リソース・ツリーの各ノードについて、前記グローバル・リソース・ツリー全体にわたるボトムアップ推定プロセスを通じて決定されるギャップ値を決定するステップと、
    各葉ノードに関する前記ギャップ値による前記葉ノードの順序付けに基づいて、トップダウン選択プロセスにより、前記ストレージ・システムの前記グローバル・リソース・ツリーの複数の葉ノード上のボリュームの順序付き割り振りリストを生成するステップと、を含み、
    前記グローバル・リソース・ツリーは、前記相互接続されたストレージ・コンポーネントの階層の間の依存性を示し、
    各ノードに関する前記ギャップ値が、前記ノードのいかなるサブツリー・ノードの性能およびスペース限界をも超えることなく、前記ノードの1つまたは複数のサブツリー・ノードに割り振り可能な、前記ボトムアップ推定プロセスを介して決定された、新しい作業負荷の推定量を備える、
    方法。
  2. 前記グローバル・リソース・ツリーのボリュームの前記順序付き割り振りリストの少なくとも一部に作業負荷を割り振った後に、前記ギャップ値を更新するステップと、前記順序付き割り振りリストを再順序付けするステップとの両方をさらに含む、請求項1または請求項1に記載の方法。
  3. 各ノードに関する前記ギャップ値が、親ノードに関する前記ノード特有の性能限界推定と、前記親ノードに対するすべての子ノードに関する前記ノード特有の性能限界推定の合計とのうちの、少ない方として決定される、請求項1または請求項2に記載の方法。
  4. 各ノードの任意の非葉子ノードが、前記非葉子ノードのギャップ値の減少順に、またはユーザ定義のコスト関数によって、ソートされた順序で処理される、請求項1から請求項3のいずれか一項に記載の方法。
  5. ストレージ・システムに関する異なる相互接続されたストレージ・コンポーネントに対応する複数のノードを備えるグローバル・リソース・ツリーとして表される、相互接続されたストレージ・コンポーネントの階層と、
    前記グローバル・リソース・ツリーの各ノードについて、前記グローバル・リソース・ツリー全体にわたるボトムアップ推定プロセスを通じてギャップ値を決定するため、および、トップダウン選択プロセスにより、前記各葉ノードに関する前記ギャップ値による前記葉ノードの順序付けに基づいて、前記グローバル・リソース・ツリーの複数の葉ノード上のボリュームの順序付き割り振りリストを生成するための、プロセッサと、を備え、
    前記グローバル・リソース・ツリーは、前記相互接続されたストレージ・コンポーネントの階層の間の依存性を示し、
    各ノードに関するギャップ値が、前記ノードのいかなるサブツリー・ノードの性能およびスペース限界をも超えることなく、前記ノードの1つまたは複数のサブツリー・ノードに割り振り可能な、前記ボトムアップ推定プロセスを介して決定された、新しい作業負荷の推定量を備える、
    ストレージ・システム。
  6. コンピュータの処理により実行されるプログラムであって、
    前記コンピュータに、
    ストレージ・システムに関する異なる相互接続されたストレージ・コンポーネントに対応する複数のノードを備えるグローバル・リソース・ツリーとして表される、相互接続されたストレージ・コンポーネントの階層をもつ、グローバル・リソース・ツリーの各ノードについて、前記グローバル・リソース・ツリー全体にわたるボトムアップ推定プロセスを通じて決定されるギャップ値を決定するステップと、
    各葉ノードに関する前記ギャップ値による前記葉ノードの順序付けに基づいて、トップダウン選択プロセスにより、前記ストレージ・システムの前記グローバル・リソース・ツリーの複数の葉ノード上のボリュームの順序付き割り振りリストを生成するステップとを実行させ、
    前記グローバル・リソース・ツリーは、前記相互接続されたストレージ・コンポーネントの階層の間の依存性を示し、
    各ノードに関する前記ギャップ値が、前記ノードのいかなるサブツリー・ノードの性能およびスペース限界をも超えることなく、前記ノードの1つまたは複数のサブツリー・ノードに割り振り可能な、前記ボトムアップ推定プロセスを介して決定された、新しい作業負荷の推定量を備える、
    プログラム。
  7. 前記グローバル・リソース・ツリーのボリュームの前記順序付き割り振りリストの少なくとも一部に作業負荷を割り振った後に、前記ギャップ値を更新するため、および前記順序付き割り振りリストを再順序付けするためのステップをさらに前記コンピュータに実行させる、請求項6に記載のコンピュータ・プログラム。
JP2010507923A 2007-05-17 2008-05-15 大規模なストレージ・コントローラの集合におけるスケーラブルな性能ベースのボリューム割り振りのための、方法、システム、およびコンピュータ・プログラム Expired - Fee Related JP5328772B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/750,076 2007-05-17
US11/750,076 US7917705B2 (en) 2007-05-17 2007-05-17 Scalable performance-based volume allocation in large storage controller collections
PCT/EP2008/055991 WO2008142005A1 (en) 2007-05-17 2008-05-15 Scalable performance-based volume allocation in large storage controller collections

Publications (2)

Publication Number Publication Date
JP2010530564A JP2010530564A (ja) 2010-09-09
JP5328772B2 true JP5328772B2 (ja) 2013-10-30

Family

ID=39745243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010507923A Expired - Fee Related JP5328772B2 (ja) 2007-05-17 2008-05-15 大規模なストレージ・コントローラの集合におけるスケーラブルな性能ベースのボリューム割り振りのための、方法、システム、およびコンピュータ・プログラム

Country Status (5)

Country Link
US (2) US7917705B2 (ja)
JP (1) JP5328772B2 (ja)
KR (1) KR101107953B1 (ja)
CN (1) CN101681275B (ja)
WO (1) WO2008142005A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914774B1 (en) 2007-11-15 2014-12-16 Appcelerator, Inc. System and method for tagging code to determine where the code runs
US8954989B1 (en) 2007-11-19 2015-02-10 Appcelerator, Inc. Flexible, event-driven JavaScript server architecture
US8260845B1 (en) 2007-11-21 2012-09-04 Appcelerator, Inc. System and method for auto-generating JavaScript proxies and meta-proxies
US8719451B1 (en) 2007-11-23 2014-05-06 Appcelerator, Inc. System and method for on-the-fly, post-processing document object model manipulation
US8566807B1 (en) 2007-11-23 2013-10-22 Appcelerator, Inc. System and method for accessibility of document object model and JavaScript by other platforms
US8819539B1 (en) 2007-12-03 2014-08-26 Appcelerator, Inc. On-the-fly rewriting of uniform resource locators in a web-page
US8806431B1 (en) 2007-12-03 2014-08-12 Appecelerator, Inc. Aspect oriented programming
US8756579B1 (en) 2007-12-03 2014-06-17 Appcelerator, Inc. Client-side and server-side unified validation
US8527860B1 (en) 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US8938491B1 (en) 2007-12-04 2015-01-20 Appcelerator, Inc. System and method for secure binding of client calls and server functions
US8335982B1 (en) 2007-12-05 2012-12-18 Appcelerator, Inc. System and method for binding a document object model through JavaScript callbacks
US8639743B1 (en) 2007-12-05 2014-01-28 Appcelerator, Inc. System and method for on-the-fly rewriting of JavaScript
US8285813B1 (en) 2007-12-05 2012-10-09 Appcelerator, Inc. System and method for emulating different user agents on a server
US8423584B2 (en) * 2008-05-08 2013-04-16 International Business Machines Corporation Conditional inclusion of resources in a computer system configuration
US8291079B1 (en) 2008-06-04 2012-10-16 Appcelerator, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8880678B1 (en) * 2008-06-05 2014-11-04 Appcelerator, Inc. System and method for managing and monitoring a web application using multiple cloud providers
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8214842B2 (en) * 2009-02-27 2012-07-03 International Business Machines Corporation Visualization-centric performance-based volume allocation
US8413157B2 (en) * 2009-08-06 2013-04-02 Charles Palczak Mechanism for continuously and unobtrusively varying stress on a computer application while processing real user workloads
US8909890B2 (en) * 2010-02-22 2014-12-09 International Business Machines Corporation Scalable performance-based volume allocation for time-based storage access services
CN103124279B (zh) * 2011-11-18 2015-12-02 浪潮(北京)电子信息产业有限公司 资源信息的输出方法和系统
US9753778B2 (en) * 2012-07-20 2017-09-05 Microsoft Technology Licensing, Llc Domain-agnostic resource allocation framework
US9158477B2 (en) * 2012-10-15 2015-10-13 International Business Machines Corporation Preventing access loss when device adapter affinity to a node changes
US9418131B1 (en) * 2013-09-24 2016-08-16 Emc Corporation Synchronization of volumes
US9378106B1 (en) 2013-09-26 2016-06-28 Emc Corporation Hash-based replication
WO2015052690A1 (en) * 2013-10-10 2015-04-16 Yandex Europe Ag Methods and systems for indexing references to documents of a database and for locating documents in the database
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US9396243B1 (en) 2014-06-27 2016-07-19 Emc Corporation Hash-based replication using short hash handle and identity bit
US10025843B1 (en) 2014-09-24 2018-07-17 EMC IP Holding Company LLC Adjusting consistency groups during asynchronous replication
GB2533405A (en) 2014-12-19 2016-06-22 Ibm Data storage resource assignment
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10324635B1 (en) 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10310951B1 (en) 2016-03-22 2019-06-04 EMC IP Holding Company LLC Storage system asynchronous data replication cycle trigger with empty cycle detection
US9959073B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Detection of host connectivity for data migration in a storage system
US9959063B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Parallel migration of multiple consistency groups in a storage system
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US10095428B1 (en) 2016-03-30 2018-10-09 EMC IP Holding Company LLC Live migration of a tree of replicas in a storage system
US10362109B2 (en) 2016-03-30 2019-07-23 Task Performance Group, Inc. Cloud operating system and method
US9983937B1 (en) 2016-06-29 2018-05-29 EMC IP Holding Company LLC Smooth restart of storage clusters in a storage system
US10152232B1 (en) 2016-06-29 2018-12-11 EMC IP Holding Company LLC Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system
US10083067B1 (en) 2016-06-29 2018-09-25 EMC IP Holding Company LLC Thread management in a storage system
US10013200B1 (en) 2016-06-29 2018-07-03 EMC IP Holding Company LLC Early compression prediction in a storage system with granular block sizes
US10048874B1 (en) * 2016-06-29 2018-08-14 EMC IP Holding Company LLC Flow control with a dynamic window in a storage system with latency guarantees
US11436058B2 (en) 2016-11-17 2022-09-06 International Business Machines Corporation Workload balancing to achieve a global workload balance
US11025561B2 (en) * 2017-09-13 2021-06-01 Walmart Apollo, Llc Systems and methods for computing infrastructure resource allocation
US11163773B2 (en) * 2018-01-29 2021-11-02 Sap Se Effective partition pruning using globally encoded partitions
CN110909390B (zh) * 2019-12-03 2022-06-24 北京百度网讯科技有限公司 一种任务审核方法、装置、电子设备及存储介质
US11513860B2 (en) * 2020-01-31 2022-11-29 Red Hat, Inc. Serverless function colocation with storage pools
US20220329478A1 (en) * 2021-04-09 2022-10-13 At&T Intellectual Property I, L.P. Adaptive spare equipment allocation techniques

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247077B1 (en) 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
US6366931B1 (en) 1998-11-20 2002-04-02 Hewlett-Packard Company Apparatus for and method of non-linear constraint optimization in storage system configuration
JP2003296039A (ja) * 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法
KR20060035627A (ko) 2003-06-20 2006-04-26 스트래티직 캐피탈 네트워크, 엘엘씨 개선된 리소스 할당 방법
US7330931B2 (en) 2003-06-26 2008-02-12 Copan Systems, Inc. Method and system for accessing auxiliary data in power-efficient high-capacity scalable storage system
EP1533699B1 (en) 2003-11-21 2012-08-08 Sap Ag A method of assigning objects to processing units
JP4203001B2 (ja) * 2004-01-28 2008-12-24 株式会社東芝 並列計算方法、並列計算プログラム及び計算機
US7836451B2 (en) * 2004-12-14 2010-11-16 International Business Machines Corporation Method, system and program product for approximating resource consumption of a computer system
US20060161753A1 (en) * 2005-01-18 2006-07-20 Aschoff John G Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem
US8555288B2 (en) * 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency

Also Published As

Publication number Publication date
KR101107953B1 (ko) 2012-01-31
US20110161617A1 (en) 2011-06-30
JP2010530564A (ja) 2010-09-09
KR20090117698A (ko) 2009-11-12
CN101681275A (zh) 2010-03-24
US8412890B2 (en) 2013-04-02
US7917705B2 (en) 2011-03-29
WO2008142005A1 (en) 2008-11-27
US20080288739A1 (en) 2008-11-20
CN101681275B (zh) 2012-12-26

Similar Documents

Publication Publication Date Title
JP5328772B2 (ja) 大規模なストレージ・コントローラの集合におけるスケーラブルな性能ベースのボリューム割り振りのための、方法、システム、およびコンピュータ・プログラム
US9740365B2 (en) Visualization-centric performance-based volume allocation in a data storage system
US11593179B2 (en) Capacity and load analysis using storage attributes
US9635101B2 (en) Proposed storage system solution selection for service level objective management
US12021885B2 (en) Aggregating results from multiple anomaly detection engines
US9406029B2 (en) Modeler for predicting storage metrics
US8386610B2 (en) System and method for automatic storage load balancing in virtual server environments
US9613037B2 (en) Resource allocation for migration within a multi-tiered system
US8327370B2 (en) Dynamic policy manager method, system, and computer program product for optimizing fractional resource allocation
US9122739B1 (en) Evaluating proposed storage solutions
US20160349993A1 (en) Data-driven ceph performance optimizations
US8909890B2 (en) Scalable performance-based volume allocation for time-based storage access services
US8732654B2 (en) Dependency-based impact analysis using multidimensional models of software offerings
US11924117B2 (en) Automated local scaling of compute instances
JP7566025B2 (ja) マルチクラウド環境におけるワークロードの実施
WO2023183704A1 (en) Customized cross-premise resource selection for containerized applications
US11641306B1 (en) Dynamic runtime application integration
JP6630442B2 (ja) 適切なitリソース上にアプリケーションを配備するための管理コンピュータ及び非一時的なコンピュータ可読媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110422

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130723

R150 Certificate of patent or registration of utility model

Ref document number: 5328772

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees