(57)【特許請求の範囲】
【請求項１】
コンピューティング・ストレージ環境におけるプロセッサ・デバイスによる実行時動的性能スキュー排除のための方法であって、
帯域幅（ＢＷ）および１秒当たりの入出力数（ＩＯＰＳ）測定基準を含めて、エクステント粒度で収集した複数の細粒度の統計データを用いることによって、複数のランク・ヒートを計算することと、
データを再配置するための適応データ配置プランを発生することと、
前記データを複数のデータ・ストレージ・ランクにわたって配置することと、
前記適応データ配置プランに従って前記複数のデータ・ストレージ・ランクを均衡化することと、
を含み、
降順および昇順の１つに従って前記複数のランク・ヒートをソートすることと、
前記複数のランク・ヒートから平均および標準偏差ランク・ヒートの１つを計算することと、
実際のランク・ヒート（ＡＲＨ）よりも大きい予測ランク・ヒート（ＰＲＨ）を有する複数のホット・ランク（Ｈ）を識別することと、
前記複数のホット・ランクおよび複数のターゲット・ランクが存在する間、最もホットなランクとしてソース・ランクを指定し、前記ソース・ランクからの最もホットなエクステントの１つとしてソース・エクステントを指定することと、
前記複数のターゲット・ランクのうち、前記ＰＲＨがランク・ヒートの平均値（ＡＶＥ）未満であり、前記ＰＲＨが前記複数のデータ・ストレージ・ランクの入出力（Ｉ／Ｏ）閾値未満であるものを、コールド・ランク（Ｃ）として識別することと、
の少なくとも１つを実行することを更に含み、
前記複数のターゲット・ランクのうちのものをコールド・ランクとして指定することが、前記ソース・エクステントおよび前記ＰＲＨが前記ＡＶＥ未満である場合に、
前記複数のターゲット・ランク上に余分な容量が存在する場合、前記ソース・エクステントを前記複数のターゲット・ランクの１つに移動させることと、その他の場合に、
前記複数のターゲット・ランクの１つにおいて最もコールドなエクステントと等しいものとしてターゲット・エクステントを識別することと、
前記ターゲット・エクステントを前記ソース・エクステントとスワップし、前記ソース・ランクおよび前記ターゲット・ランクの前記ＰＲＨを更新する、ことと、
を含む、方法。
【請求項２】
前記複数のデータ・ストレージ・ランク間の平均ヒート・ランク、ＩＯＰＳ待ち時間曲線、および前記適応データ配置プランを発生するための複数の相関係数の１つを用いることを更に含む、請求項１に記載の方法。
【請求項３】
前記複数のデータ・ストレージ・ランクにおける複数のターゲットの１つに前記データを配置することと、
性能スキューおよび複数のイベントの存在によって前記適応データ配置プランのためのプランニング・プロセスをトリガすることと、
の少なくとも１つを実行することを更に含む、請求項１に記載の方法。
【請求項４】
前記帯域幅（ＢＷ）および１秒当たりの入出力数（ＩＯＰＳ）測定基準の少なくとも１つの複数の次元にわたる複数のスキューを識別することと、
前記複数の次元の利用百分率を適用することと、
前記データを配置するために複数のターゲットの位置を特定することと、
複数の要約測定値を用いて複数のピークを説明することと、
フィードバック機構を適用して前記データの配置を調整することと、
の少なくとも１つを実行することを更に含む、請求項１に記載の方法。
【請求項５】
前記複数のデータ・ストレージ・ランク間に前記データを配置する時に複数のターゲットが過負荷になるのを防ぐことと、
マイグレーションの時に最大限の利用のために前記複数のデータ・ストレージ・ランクを適合することと、
の少なくとも１つを実行することを更に含む、請求項１に記載の方法。
【請求項６】
コンピューティング・ストレージ環境における実行時動的性能スキュー排除のためのシステムであって、
前記コンピューティング・ストレージ環境において動作可能であり、請求項１から５のステップを実行するように適合されたプロセッサ・デバイスを含む、システム。
【請求項７】
プロセッサ・デバイスによるコンピューティング・ストレージ環境における実行時動的性能スキュー排除のためのコンピュータ・プログラムであって、コンピュータ読み取り可能プログラム・コード部分がコンピュータによって実行されると前記コンピュータに請求項１から５のいずれかのステップを実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータに関し、更に具体的には、コンピューティング・ストレージ環境における実行時動的性能スキュー排除（runtime dynamic performance skewelimination）に関する。
【背景技術】
【０００２】
今日の社会において、コンピュータ・システムは一般化している。コンピュータ・システムは、職場、家庭、または学校で見ることができる。コンピュータ・システムは、データを処理し記憶するためのデータ・ストレージ・システムまたはディスク・ストレージ・システムを含む場合がある。ストレージ・システムは１つ以上のディスク・ドライブを含むことがある。ディスク・ドライブは、ＲＡＩＤ（Redundant Array of IndependentDisks）トポロジー等のアレイに構成することで、ハードウェアまたはソフトウェアの故障の場合にデータ・セキュリティを提供することができる。データ・ストレージ・システムは、メインフレーム・コンピュータ等のホストに接続することができる。多くのデータ・ストレージ・システムにおけるディスク・ドライブは一般に、直接アクセス・ストレージ・デバイス（ＤＡＳＤ：Direct Access Storage Device）として知られている。ＤＡＳＤデバイスは典型的に、ディスクの表面上の円形経路であるトラック上にデータを記憶する。情報はこのディスクに記録されると共に、このディスクから記録情報が読み取られる。多数の並行ＩＯ要求を同時に処理するシステムにおいてスループットの向上を達成するために、多数の物理デバイス（ディスク・ドライブ、アダプタ等）にまたがってデータを分散させることにより、異なるデータ・ロケーションにアクセスする要求に同時に対応することを可能とする。しかしながら、時間が経つにつれて、作業負荷は、デバイスのいくつかは過剰使用されるがいくつかは利用不足になる場合がある。更に、データ・ストレージ・システムにおいて、ディスク・ストレージ・サブシステムの作業負荷は時間と共に変動して固有のスキュー（複数のスキュー）を生じる恐れがある。スキューは、帯域幅（ＢＷ）および１秒当たりの入出力数（Ｉ／Ｏ）（ＩＯＰＳ：input/output per second）の双方の次元に沿って不均衡を引き起こし、このため許容可能な性能が得られない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
様々なストレージ・デバイスを用いるデータ処理システムにおいて、ストレージ・デバイスのいくつかの性能が他のものよりも高い場合、ストレージ・システムは固有のスキューを生じ、帯域幅および１秒当たりの入出力数（Ｉ／Ｏ）（ＩＯＰＳ）次元の双方に沿って不均衡となる場合がある。コンピューティング環境内でスキューが生じると、性能およびシステム処理が低下する。
【課題を解決するための手段】
【０００４】
従って、前述のことに鑑み、コンピュータ環境における実行時動的性能スキュー排除のための様々な例示的な方法、システム、およびコンピュータ・プログラムの実施形態を提供する。一実施形態において、コンピュータ環境は、帯域幅（ＢＷ）および１秒当たりの入出力数（ＩＯＰＳ）測定基準を含めて、エクステント（extent）粒度で収集した複数の細粒度の統計データを用いることによって、複数のランク・ヒートを計算するように構成されている。データを再配置するために適応データ配置プランを発生する。データを複数のデータ・ストレージ・ランクにわたって配置する。適応データ配置プランに従ってデータ・ストレージ・ランクを均衡化する。
【０００５】
前述の例示的な実施形態に加えて、様々な他のシステムおよびコンピュータ・プログラムの実施形態を提供し、関連する利点を与える。前述の概要は、「発明を実施するための形態」において以下で更に説明するいくつかの選択された概念を簡略化形態で紹介するために与えたものである。この「概要」は、特許請求する主題の重要な特性（feature）または不可欠な特性を識別することは意図しておらず、特許請求する主題の範囲の決定を促進するために用いることも意図していない。特許請求する主題は、「背景技術」において明記した全ての欠点を解決する実施に限定されるものではない。
【０００６】
これより、添付図面を参照して、一例としてのみ本発明の実施形態（複数の実施形態）を説明する。
【図面の簡単な説明】
【０００７】
【図１】本発明の態様を実現可能である例示的なストレージ・デバイスを有するコンピュータ・ストレージ環境を示す。
【図２】本発明の態様を実現可能であるコンピュータ・システムにおけるデータ・ストレージ・システムのハードウェア構造を示す例示的なブロック図を示す。
【図３】実行時動的性能スキュー排除の例示的な方法を示すフローチャートである。
【図４】本発明の態様を実現可能である待ち時間曲線を示す例示的な図である。
【図５】本発明の態様を実現可能である追加ランク使用の場合を示す例示的な図である。
【図６】本発明の態様を実現可能である追加ランクの代替的なフローを示す例示的な図である。
【図７】本発明の態様を実現可能である性能スキュー使用の場合を示す例示的な図である。
【図８】本発明の態様を実現可能である性能スキュー排除機構を示す例示的な図である。
【図９】データ・ストレージ・ランク間の実行時動的性能スキューのための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【０００８】
ストレージ・システムは、いくつかの要因の組み合わせによって、固有のスキューを生じ、帯域幅および１秒当たりの入出力数（Ｉ／Ｏ）（ＩＯＰＳ）次元の双方に沿って不均衡となり、許容可能な性能が得られない場合がある。これらの要因に含まれ得るものは、（１）データ配置、すなわち同一のデバイス（ランク等）上に「同時にアクセスされるホット・データ」を配置すること、（２）作業負荷の変化によって、以前は最適であった配置が次善かつ許容不可能な性能を与えるようになること、（３）ハードウェアの追加／削除／劣化およびシステムが構成の変更に適合できなこと、（４）ボリュームの生成／削除／マイグレーション等の他のマイグレーション・アクティビティまたは構成の変更、および（５）システムにおける新しいハードウェアおよび劣化したハードウェアのマイグレーション、追加は全て性能のスキューの一因となり得る。固有のスキューに対処するための既存の手法は、ストライピングまたはランダム配置等の技法を用いる。しかしながら、かかる手法は、アクセス・パターンが現れる前に配置を割り当てるので、スキューの確率を低下させるに過ぎない。かかる手法では、スキューは排除されず、スキューの最初の発生時にスキューは補正されない。他の技法では、作業負荷再均衡化手法が用いられ、一次ロケーションが過負荷である場合にデータの冗長的な二次ロケーションへと作業負荷を方向変更する。この場合も、かかる手法では、実行時にストレージ・サブシステム内のスキューは排除されず、二次ロケーションが利用可能でない場合には問題は対処されない。これらの手法では、システム内のいくつかのランクが過剰負荷でありいくつかのランクが利用不足であるために生じるストレージ・サブシステム・レベルでの性能劣化は効果的に対処されない。このように問題に対処することができないことの主な要因は、これらの手法が、ストレージ・サブシステムによって必要とされる細かい粒度（fine-granularity）で課題に対処しないことであり、もしもそうである場合でも静的にそうするに過ぎないことである。
【０００９】
一実施形態において、例示した実施形態の機構は、データ・ストレージ・ランク間で適応的にデータを配置することによって実行時動的性能スキュー排除を提供する。適応アルゴリズムは作業負荷および構成に基づいている。
【００１０】
一実施形態において、例示した実施形態の機構は、ハードウェアの帯域幅およびＩＯＰＳの双方の特性ならびに作業負荷特徴を考慮に入れながら、エクステント粒度で収集した細粒度の統計データを利用してランク・ヒート（複数のヒート）を計算する。ランク間の平均ランク・ヒートを用いて（変形はＩＯＰＳ待ち時間曲線および補正係数の使用を含む）、突然の反射的な反応なしでシステムにおける長期性能スキューを低減するためにエクステントを再配置するプランを発生する。これに従ってマイグレーションのペースを調整する。プランニング・プロセスをトリガするのは、性能スキューの存在、ならびに、ハードウェアの追加／削除／劣化、ボリュームの生成／削除／再構成、および他のかかる構成イベント（プールのマージ等）等の他のイベントの双方である。
【００１１】
図１に移ると、本発明の態様を実現可能である例示的なコンピュータ・システム１０が示されている。コンピュータ・システム１０は中央処理装置（ＣＰＵ）１２を含み、これは大容量ストレージ・デバイス（複数のデバイス）１４およびメモリ・デバイス１６に接続されている。大容量ストレージ・デバイスは、ハード・ディスク・ドライブ（ＨＤＤ）・デバイス、固体デバイス（ＳＳＤ）等を含むことができ、これらはＲＡＩＤに構成することができる。システム１０または他の場所に位置するデバイス（複数のデバイス）１４上で、更に記載するバックアップ動作を実行することができる。メモリ・デバイス１６は、電気的消去可能書き込み可能ＲＯＭ（ＥＥＰＲＯＭ）または関連デバイスのホスト等のメモリを含むことができる。メモリ・デバイス１６および大容量ストレージ・デバイス１４は信号担持媒体を介してＣＰＵ１２に接続されている。更に、ＣＰＵ１２は通信ポート１８を介して通信ネットワーク２０に接続されており、これには追加の複数のコンピュータ・システム２２および２４が接続されている。
【００１２】
図２は、本発明によるコンピュータ・システムにおけるデータ・ストレージ・システムのハードウェア構造を示す例示的なブロック図２００である。図２を参照すると、ホスト・コンピュータ２１０、２２０、２２５が示されており、これらは各々、データ・ストレージ・システム２００の一部のデータ処理を実行するための中央処理装置として作用する。ホスト（物理または仮想デバイス）２１０、２２０、および２２５は、データ・ストレージ・システム２００において本発明の目的を達成するための１つ以上の新しい物理デバイスまたは論理デバイスとすることができる。一実施形態では、一例に過ぎないが、データ・ストレージ・システム２００は、ＩＢＭ（Ｒ）Ｓｙｓｔｅｍ  Ｓｔｏｒａｇｅ（ＴＭ）ＤＳ８０００（ＴＭ）として実施することができる。ネットワーク接続２６０は、ファイバ・チャネル・ファブリック、ファイバ・チャネル・ポイント・ツー・ポイント・リンク、イーサネット・ファブリックまたはポイント・ツー・ポイント・リンク上のファイバ・チャネル、ＦＩＣＯＮまたはＥＳＣＯＮ  Ｉ／Ｏインタフェース、他のいずれかのＩ／Ｏインタフェース・タイプ、無線ネットワーク、有線ネットワーク、ＬＡＮ、ＷＡＮ、ヘテロジニアス、ホモジニアス、公設（すなわちインターネット）、私設、またはそれらのいずれかの組み合わせとすることができる。ホスト２１０、２２０、および２２５は、ローカルとするかまたは１つ以上のロケーション間に分散させることができ、更に、ファイバ・チャネル、ＦＩＣＯＮ、ＥＳＣＯＮ、イーサネット、光ファイバ、無線、または同軸アダプタ等のストレージ・コントローラ２４０に対するいずれかのタイプのファブリック（またはファブリック・チャネル）（図２には図示せず）またはネットワーク・アダプタ２６０を備えることができる。従って、データ・ストレージ・システム２００は、通信を行うための適切なファブリック（図２には図示せず）またはネットワーク・アダプタ２６０を備える。データ・ストレージ・システム２００は、ストレージ・コントローラ２４０およびストレージ２３０を含むものとして図２に示す。
【００１３】
本明細書に記載する方法の明確な理解を容易にするため、図２には単一の処理ユニットとしてストレージ・コントローラ２４０を示し、これは以下で更に詳細に説明するマイクロプロセッサ２４２、システム・メモリ２４３、および不揮発性ストレージ（「ＮＶＳ」）２１６を含む。いくつかの実施形態では、ストレージ・コントローラ２４０は多数の処理ユニットから成り、それらの各々が自身のプロセッサ複合体およびシステム・メモリを有し、データ・ストレージ・システム２００内の専用ネットワークによって相互接続されていることに留意すべきである。ストレージ２３０は、ストレージ・アレイ等の１つ以上のストレージ・デバイスから成ることができ、これらはストレージ・ネットワークによってストレージ・コントローラ２４０に接続されている。
【００１４】
いくつかの実施形態において、ストレージ２３０に含まれるデバイスはループ・アーキテクチャで接続することができる。ストレージ・コントローラ２４０は、ストレージ２３０を管理し、ストレージに意図された書き込みおよび読み取り要求の処理を容易にする。ストレージ・コントローラ２４０のシステム・メモリ２４３はプログラム命令およびデータを記憶しており、プロセッサ２４２はこれらにアクセスすることで、ストレージ２３０の管理に関連した機能および方法ステップを実行し、コンピュータ・ストレージ環境における実行時動的性能スキュー排除のための本発明のステップおよび方法を実行することができる。一実施形態では、システム・メモリ２４３は、本明細書に記載する方法および動作を含むコンピュータ・ストレージ環境における実行時動的性能スキュー排除のための動作ソフトウェア２５０を含むか、これに関連付けられているか、またはこれと通信状態にある。図２に示すように、システム・メモリ２４３は、ストレージ２３０のためのキャッシュ２４５を含むかこれと通信状態にあることができ、これは本明細書において「キャッシュ・メモリ」とも称され、書き込み／読み取り要求およびそれらの関連データをそれぞれ指す「書き込みデータ」および「読み取りデータ」をバッファするためのものである。一実施形態では、キャッシュ２４５はシステム・メモリ２４３の外部のデバイスに割り当てられているが、マイクロプロセッサ２４２によってアクセス可能であり、本明細書に記載するような動作を実行することに加えてデータ喪失に対する追加のセキュリティを提供するように機能することができる。
【００１５】
いくつかの実施形態において、キャッシュ２４５は、揮発性メモリおよび不揮発性メモリによって実施され、データ・ストレージ・システム２００の性能向上のためにローカル・バス（図２には図示せず）を介してマイクロプロセッサ２４２に結合されている。データ・ストレージ・コントローラに含まれるＮＶＳ２１６は、マイクロプロセッサ２４２によってアクセス可能であり、他の図に記載するように本発明の動作および実行のための追加のサポートを提供するように機能する。ＮＶＳ２１６は、「永続的」キャッシュまたは「キャッシュ・メモリ」とも称することができ、記憶しているデータを保持するために外部電力を利用する場合も利用しない場合もある不揮発性メモリによって実施されている。ＮＶＳは、本発明の目的を達成するのに適したいずれかの目的のためにキャッシュ２４５内にまたはキャッシュ２４５と共に記憶されている場合がある。いくつかの実施形態では、バッテリ等のバックアップ電源（図２には図示せず）がＮＶＳ２１６に充分な電力を供給して、データ・ストレージ・システム２００に対する電力が喪失した場合に記憶データを保持する。いくつかの実施形態では、ＮＶＳ２１６の容量はキャッシュ２４５の全容量以下である。
【００１６】
ストレージ２３０は、ストレージ・アレイ等の１つ以上のストレージ・デバイスから物理的に構成することができる。ストレージ・アレイは、ハード・ディスク等の個別のストレージ・デバイスの論理的な集まりである。いくつかの実施形態では、ストレージ２３０はＪＢＯＤ（Just a Bunch of Disks）アレイまたはＲＡＩＤアレイから成る。更に、物理ストレージ・アレイの集合を組み合わせてランクを形成することができる。これは物理ストレージを論理構成とは切り離す。ランクにおけるストレージ空間は論理ボリュームに割り当てることができ、これは書き込み／読み取り要求に指定されたストレージ・ロケーションを規定する。一実施形態では、一例に過ぎないが、図２に示すようなストレージ・システムは論理ボリュームまたは単に「ボリューム」を含むことができ、異なる種類の割り当てを有し得る。データ・ストレージ・システム２００におけるランクとしてストレージ２３０ａ、２３０ｂ、および２３０ｎを示し、これらを本明細書ではランク２３０ａ、２３０ｂ、および２３０ｎと称する。ランクはデータ・ストレージ・システム２００にローカルとすることができ、または物理的にリモートの位置に配置することも可能である。換言すると、ローカルなストレージ・コントローラは、リモートのストレージ・コントローラと接続することができ、リモート位置のストレージを管理することができる。ランク２３０ａは、２つの完全なボリューム２３４および２３６ならびに１つの部分的なボリューム２３２ａにより構成されているものとして示す。ランク２３０ｂには、別の部分的なボリューム２３２ｂが示されている。従って、ボリューム２３２はランク２３０ａおよび２３０ｂにまたがって割り当てられている。ランク２３０ｎは全体的にボリューム２３８に割り当てられているものとして示す。すなわち、ランク２３０ｎはボリューム２３８のための完全な物理ストレージを意味する。上述の例から、１つのランクは１つ以上の部分的または全体的あるいはその両方のボリュームを含むように構成可能であることが認められよう。ボリュームおよびランクは、固定ストレージ・ブロックを表すいわゆる「トラック」に更に分割することも可能である。従ってトラックには、所与のボリュームを関連付け、所与のランクを付与することができる。
【００１７】
ストレージ・コントローラ２４０は、コンピュータ・ストレージ環境において実行時動的性能スキュー排除を促進するために、性能スキュー排除モジュール２５５およびランク・ヒート・モジュール２４７を含むことができる。性能スキュー排除モジュール２５５およびランク・ヒート・モジュール２４７は、ストレージ・コントローラ２４０、ホスト２１０、２２０、および２２５、ならびにストレージ・デバイス２３０の各コンポーネントと連携して動作することができる。性能スキュー排除モジュール２５５およびランク・ヒート・モジュール２４７の双方は、コンピュータ・ストレージ環境における実行時動的性能スキュー排除のために、共に連携して動作する構造的に１つの完全なモジュールとするか、または個別のモジュールとすることができる。また、性能スキュー排除モジュール２５５およびランク・ヒート・モジュール２４７は、本発明の目的を達成するために、キャッシュ２４５またはストレージ・コントローラ２４０の他のコンポーネント内に位置することも可能である。
【００１８】
ストレージ・コントローラ２４０は、ホスト・コンピュータ２１０、２２０、２２５に対するファイバ・チャネル・プロトコルを制御するための制御スイッチ２４１、ストレージ・コントローラ２４０全体を制御するためのマイクロプロセッサ２４２、ストレージ・コントローラ２４０の動作を制御するためのマイクロプログラム（動作ソフトウェア）２５０、制御のためのデータ、および後述する各テーブルを記憶するための不揮発性制御メモリ２４３、データを一時的に記憶する（バッファする）ためのキャッシュ２４５、キャッシュ２４５のデータの読み取りおよび書き込みを支援するためのバッファ２４４、ストレージ・デバイス２３０との間のデータ転送を制御するプロトコルを制御するための制御スイッチ２４１、性能スキュー排除モジュール２５５、ならびに情報を設定することができるランク・ヒート・モジュール２４７によって構築することができる。本発明によって多数のバッファ２４４を実施して、コンピュータ・ストレージ環境における実行時動的性能スキュー排除を促進することができる。
【００１９】
一実施形態においては、一例に過ぎないが、ホスト・コンピュータまたは１つ以上の物理もしくは仮想デバイス２１０、２２０、２２５およびストレージ・コントローラ２４０は、インタフェースとしてのネットワーク・アダプタ（これはファイバ・チャネルである場合がある）２６０によって、「ファブリック」と呼ばれるスイッチを介して接続されている。一実施形態において、単に一例として、図２に示すシステムの動作を説明する。マイクロプロセッサ２４２は、ホスト・デバイス（物理または仮想）２１０からのコマンド情報およびホスト・デバイス（物理または仮想）２１０を識別するための情報を記憶するようにメモリ２４３を制御することができる。制御スイッチ２４１、バッファ２４４、キャッシュ２４５、動作ソフトウェア２５０、マイクロプロセッサ２４２、メモリ２４３、ＮＶＳ２１６、性能スキュー排除モジュール２５５、およびランク・ヒート・モジュール２４７は、相互に通信状態にあり、別個のまたは１つの個別のコンポーネント（複数のコンポーネント）とすることができる。また、コンポーネントの全てではないが、動作ソフトウェア２４５等のいくつかのものは、コンピュータ・ストレージ環境における実行時動的性能スキュー排除のためにメモリ２４３と共に含ませることができる。一実施形態では、一例に過ぎないが、ストレージ・デバイス内のコンポーネントの各々を連結することができ、本発明に適した目的のために相互に通信状態とすることができる。
【００２０】
図３は、実行時動的性能スキュー排除のための例示的な方法３００を示すフローチャートである。例示した実施形態の機構は、システム内の異なるランク間で作業負荷を均等に分散させた均衡化エクステント・プールを維持し、構成変更を考慮に入れることによって、全体的なシステム性能および並行性を向上させるように機能する。データはストレージ・ランク（デバイス）間で適応的に配置される。適応データ・アルゴリズムは作業負荷およびシステム構成に基づいている。更に、例示する実施形態の機構は、エクステント粒度で収集した細粒度の統計データを利用して計算されるランク・ヒートを用いる。ランク間の平均ランク・ヒートを用いて、最適な性能のためにエクステントを再配置するプランを発生する。エクステントはデータ配置の単位とすることができる。例えば、ＤＳ８０００システムにおいては、エクステントは１Ｇの固定サイズとすることができ、これはデータ・マイグレーションの単位ともすることができる。このアルゴリズムは、システムがサポートするデータ配置／マイグレーションのいずれかの他の単位にも適用可能である。
【００２１】
方法３００が開始する（ステップ３０２）と、帯域幅（ＢＷ）および１秒当たりの入出力数（ＩＯＰＳ）測定基準を考慮することを含めて、エクステント粒度で収集した細粒度の統計データを利用することによって１つ以上のランク・ヒートを計算する（ステップ３０４）。データを再配置するために適応データ配置プランを発生する（ステップ３０６）。データはエクステントまたはデータ・セグメントとして反映させることができる。データ・ストレージ・ランク間にデータを配置する（ステップ３０８）。適応データ配置プランに従ってデータ・ストレージ・ランクを均衡化する（ステップ３１０）。例えば、適応データ配置プランは、再均衡化アルゴリズム（計算）、１つ以上のランク・ヒート（複数のヒート）、決定ウィンドウ、またはシステムによって許容可能であるスキューの閾値あるいはそれら全ての１つ以上に基づくものとすることができる。方法３００は終了する（ステップ３１２）。
【００２２】
上述のように、ディスク・ストレージ・サブシステムの作業負荷を軽減するための１つの方法は、必要な場合に、頻繁にアクセスされるデータを、もっと許容可能なデバイス上に移動、配置、または「マイグレーション」することである。適応データ配置決定自体は複雑であり、以下の要素を考慮に入れることができる。すなわち、（１）平均およびピークの挙動を含む経時的な作業負荷および変動（主な問題は、ローカリティおよびデータ間の関係が作業負荷挙動によって動的に生成され、アプリオリに知られず、または「前もって」知られないことである）、（２）ＢＷ、ＩＯＰＳ特性（測定基準）等のデバイス特徴、および（３）ランク割り当て等のシステム構成である。適応データ配置プランに基づいたデータのマイグレーションは、瞬間のアクティビティでない場合があり、利用可能な帯域幅によって制約されることがある。
【００２３】
再均衡化に要求されるのは、スケーラブルであること（すなわち、システムを再均衡化しスキューを排除するために必要なリソースは再均衡化されるデータ量に比例しなければならない）、作業負荷の短期間の変動に対してロバストであること、動的であること、すなわち構成変更等の作業負荷またはシステムにおける新しいイベントおよび変化に適応すること、作業負荷およびデータ配置の変更等の将来のイベントを予想して分析と実行との間に相当な遅れがあり得ることに対処可能であること、ならびに包括的であること、すなわち異なるベンダーからの様々なデバイス・タイプおよび異なる作業負荷挙動（ランダム、順次、または混合型あるいはそれら全て）をサポートすることであるはずである。
【００２４】
実行時動的性能スキュー排除の目的の１つは、システム内のランク間で作業負荷を均等に分散させた均衡化エクステント・プールを維持することによってシステムの性能および並行性を向上させることである。エクステント・プールは、所与のランク・グループに関連付けた同一のタイプのエクステント・セットを管理するために使用可能な論理構造物とすることができる。エクステント・プールが規定されると、これにランク・グループおよびエクステント・タイプを割り当てることができる。同一のエクステント・タイプを有する１つ以上のランクを１つのエクステント・プールに割り当てることができるが、１つのランクは１つのエクステント・プールにのみ割り当てることができる。エクステント・プールはランクと同じ数だけ存在することができる。エクステント・プールに割り当てられるランクの数またはサイズに制約はない。１つのエクステント・プールに割り当てられたランクの全エクステントは、そのエクステント・プールに関連付けられた論理ボリュームに割り当てるために別個に利用可能である。この機構は、ヒート測定基準計算、決定ウィンドウ、プラン・サイズ推定、または実行時動的性能スキュー排除アルゴリズムあるいはそれら全てによってスキューの排除を容易にする重要なコンポーネントを適用する。
【００２５】
ヒート測定基準を用いてランク・ヒート（複数のヒート）を計算することができる。ランク・ヒートは、エクステント・ヒート測定値から再構築される。エクステント・ヒート測定値は、基礎にあるシステムから周期的に収集される。この機構によるエクステント統計データの使用は二通りである。すなわち、（１）実行時動的性能スキュー排除はエクステント・ヒート測定値を用いてランク・ヒートを計算する、および（２）実行時動的性能スキュー排除機構はエクステント・ヒート測定値を用いてソース・ランクにおけるホット・エクステントを識別し、スワップ動作の場合には、ターゲット・ランク上のコールド・エクステントの識別またはスワップあるいはその両方を行う。ランク・ヒートは、エクステント・ヒート（複数のヒート）の指数移動平均（ＥＭＡ）（要約測定値）および瞬時ランク構成（すなわちランクにおける現在のエクステント・セット）に基づいた瞬時ランク・ヒートとすることができる。一実施形態では、一例に過ぎないが、以下の式を考慮してランク・ヒートおよびエクステント・ヒートを計算することができる。
Ｒｈ＝ΣＥＭＡ（Ｈｅｘｔｅｎｔ）    （１）
【００２６】
ここで、Ｒｈはランク・ヒートであり、ＥＭＡは指数移動平均であり、Ｈｅｘｔｅｎｔはエクステント・ヒートである。エクステントは瞬時ランク構成（ランクにおける現在のエクステント・セット）に属する。エクステント・ヒート自体は、以下のようなランダムおよび順次ＩＯ計数の何らかの線形の組み合わせとして計算することができる。
ＥＭＡ（Ｈｅｘｔｅｎｔ）＝ＥＭＡ（ＲＩＯＣ）＋ＥＭＡ（ＳＩＯＣ）    （２）
ここで、ＲＩＯＣはランダム入出力計数であり、ＳＩＯＣは順次入出力計数である。エクステント・ヒートのＥＭＡは、ランク内のホット・エクステントを識別するために維持されている。ランク・ヒートを計算するための他の可能な変形には、デバイス特性、待ち時間測定基準等に応じてランダムおよび順次アクセスのための重み付け測定基準を用いることが含まれる。
【００２７】
実行時動的性能スキュー排除機構の目標の１つは、選択した測定基準について均衡化した状態にシステムを維持することである。これは、決定ウィンドウの計算を用いることによって達成可能である。決定ウィンドウは、適応データ配置プランを発生させる頻度を表す。決定ウィンドウの長さは、限定ではないが、作業負荷特徴、利用可能なマイグレーション帯域幅、および他の適用可能なハードウェアおよび作業負荷特徴を含む様々な要素に基づいて選択することができる。
【００２８】
決定ウィンドウの機能性を例示するため、以下の説明は全ての状況に当てはめることは意図しておらず、適応データ・プランを発生させる頻度を表し、前述の様々な要素を適用することの実際的な理解を得ようとするものである。一実施形態において、この機構は必要に応じて多数の決定ウィンドウを選択可能とし、例えば決定ウィンドウは６時間の決定ウィンドウとすることができる。各決定ウィンドウにおいて、マイグレーション・アドバイスを発生する。アドバイスは、マイグレーションのためのプランを表し、マイグレーションする必要があるエクステント・セット、ソース・ランク、およびターゲット・ランクを含む。アドバイス・サイズは、かかる発生させたマイグレーション・プランの数を示す。アドバイス・サイズを計算するために、システム内のアクティブなエクステントの数、利用可能なマイグレーション帯域幅の量、システムに対する現在の負荷、および決定ウィンドウの長さ等の多数の要素を用いて、マイグレーション・アドバイス・サイズを計算することができる。
【００２９】
例えば、コストおよびマイグレーション・アドバイス・サイズの計算を含むいくつかの計算を用いることによって、決定ウィンドウのロジスティック動作を示すことができる。これらの計算は、全ての状況に当てはめることは意図しておらず、決定ウィンドウ計算のいくつかを実証する目的で例示する。
コストの計算では、Ｔｍ＝決定ウィンドウ当たりのマイグレーションにかかる時間とする。    （３）
【００３０】
再均衡化状態である持続時間をＴｍ未満として、マイグレーションに用いられるリソース、例えば４Ｔｍを正当化することができる。この増大は、再均衡化の決定が長さ４Ｔｍの決定ウィンドウに基づくことを意味する。上述の例を用いて、２日の決定ウィンドウを想定すると、ウィンドウごとに７２０分のマイグレーション・アクティビティを実行可能である。５分ごとにマイグレーションが４のレートでは、決定ウィンドウ当たり５７６のマイグレーションを実行可能である。決定ウィンドウ当たり再均等化されるランク数は以下の通りとすることができる。すなわち、再均等化のためにホット・ランクの１０％をマイグレーションする必要があると想定する（ＳＡＳ（serial attached small computersystem interface）／ＳＳＤ（solid-state drive）ランクに８０のエクステント、およびシリアルＡＴＡ（ＳＴＡ：serial advanced technologyattachment）ランクに２００のエクステント）。「移動」動作のみによって、７．２のＳＡＳ／ＳＳＤランクおよび２．８８のＳＡＴＡランクを再均等化することができる。「スワップ」動作のみによって、決定ウィンドウごとに３．６のＳＡＳ／ＳＳＤランクおよび１．４４のＳＡＴＡランクを再均等化することができる。
【００３１】
マイグレーション・アドバイス・サイズについては、Ｍａｘ  Ａｄｖ  Ｓｉｚｅ＝Ｍｉｎｉｍｕｍ（アクティブ・エクステントに基づく上限、帯域幅に基づく上限）である。
（４）
ここで、Ｍａｘ  Ａｄｖ  Ｓｉｚｅは最大アドバイス・サイズであり、Ｍｉｎｉｍｕｍはアクティブ・エクステントに基づく上限および帯域幅に基づく上限である。
Ａｃｔ  ｅｘｔｅｎｔｕｐ  ＝  ＃ｅｘｔｅｎｔｓｔｉｅｒ／２    （５）
ここで、Ａｃｔ  ｅｘｔｅｎｔｕｐはアクティブ・エクステントに基づく上限であり、＃ｅｘｔｅｎｔｓｔｉｅｒは層（ｔｉｅｒ）におけるエクステント数である。
【数１】
0005466794.tif 000002
ここで、ＢＷｕｐは帯域幅ベースの上限であり、＃ｒａｎｋｓｔｉｅｒは層におけるランク数であり、ｒａｎｋＢＷｔｈｒｅｓｈｏｌｄはランク帯域幅閾値であり、＃ＢＷｍｉｇはマイグレーションに利用可能な帯域幅の百分率であり、ＤＷＤは決定ウィンドウの持続時間であり、ｅｘｔｅｎｔＭＢはメガバイト（ＭＢ）単位のエクステント・サイズである。
【００３２】
このため、これらの計算を決定ウィンドウ内で利用して、選択した測定基準について均等化した状態にシステムを維持することによって、実行時動的性能スキュー排除の目標を達成することができる。
【００３３】
前述のように、この機構は、確率論的なアルゴリズムを適用して、データ配置アクティビティの潜在的なターゲットを識別することができると共に、マイグレーション時にターゲットが過負荷にならないことを保証する。同時に、適応データ・アルゴリズムによって、デバイス（ランク）が利用不足にならないことを保証する。一実施形態では、現在のエクステント・プールの各層について、以下のように計算および適応データ・アルゴリズム・フローを説明することができる。第１に、この機構は各ランクについてランク・ヒートを計算することができ、ここで予測ランク・ヒート（ＰＲＨ：projected rank heat）は実際のランク・ヒート（ＡＲＨ：actual rank heat）に等しくすることができる。第２に、ランク・ヒート（複数のヒート）をランク・ヒートの降順に記憶する。コンピューティング・システムの必要性または望まれる好みに従って、ランク・ヒートは１つの単一のランク・ヒートである場合があり、または多数のランク・ヒートを含む場合があることに留意すべきである。更に、システムに応じて、ランク・ヒート（複数のヒート）は昇順で記憶することも可能である。第３に、再均衡化されるランク・セット間でランク・ヒートの平均値（ＡＶＥ）および標準偏差（ＳＴＤＥＶ）を計算する。第４に、この機構は、ホット・ランクのセット（複数のセット）Ｈを識別することができる（ここでＰＲＨはＡＶＥよりも大きい）。第５に、ホット・ランクが存在しターゲット・ランクが存在する間、この機構はホット・ランクをソース・ランクとして、そのエクステントの１つをソース・ランクからのソース・エクステントとして指定することができる。第６に、この機構は、多数のターゲット・ランク（コールド・ランクまたは単に「Ｃ」）を識別することができる（ここで、ＰＲＨはＡＶＥ未満であり、ＰＲＨはランクの入出力（Ｉ／Ｏ）閾値未満である）。ランクの閾値はデバイス較正に基づいて静的に決定して、待ち時間が許容可能性能を超える前にランクに対する最大許容可能負荷がどれほどであるかを調べることができる。ヒート（ソース・エクステント）にＰＲＨ（ターゲット・ランク）を加えたものがＡＶＥ未満である場合、ターゲット・ランクに余分の容量が存在するか否かを判定し、ソース・エクステントをターゲット・ランクに移動させる。他の場合は、ターゲット・ランク内の最もコールドなエクステントに等しいものとしてターゲット・エクステントを識別し、ターゲット・エクステントをソース・エクステントとスワップし、その後、ソース・ランクおよびターゲット・ランクのＰＲＨを更新する。この機構は、ランク・ヒート（複数のヒート）の降順／昇順でランク・ヒートのソートを繰り返すことができる。更に、ランク・ヒート（複数のヒート）間で標準偏差を小さくしようとすることによってシステムにおけるスキューの最小化を目指す適応アルゴリズムを用いることができる。アルゴリズムの他の変形はスキューを低減させるように機能する。これについては以下で述べる。
【００３４】
図４は、本発明を実現可能である待ち時間曲線４００を示す例示的な図である。例えば図１および図２の、データ・ストレージ・システム内のデバイスにおいて、図４の待ち時間曲線（曲線）４００に類似した待ち時間ＩＯＰＳ曲線はアプリオリに知ることができる。待ち時間曲線４００の縦軸４１０はシステムの待ち時間を表し、横軸４１２はＩＯＰＳ４０６を表す（図４に４０６Ａ〜４０６Ｂとして示す）。曲線は、ホット領域４０２（格子状パターンで示す）およびコールド領域４０４（斜線で示す）を示すと共に、ＩＰＯＳＡ４０６Ａを「Ａ」で標示し、ＩＯＰＳＢ４０６Ｂを「Ｂ」で標示する。いったんＩＯＰＳＢがわかると、ランク閾値を計算することができる。
【００３５】
一実施形態では、実行時動的性能スキュー排除のためのアルゴリズムのあり得る変形は、ＩＯＰＳ待ち時間曲線４００を用い、前述のオリジナルのアルゴリズムと同様であるが、異なる点は、予測ランク・ヒート（ＰＲＨ）がランクのＩＯＰＳＢ閾値より大きい場合にランクを「ホット」すなわちソース・ランクとして分類することである。一実施形態では、ＰＲＨがＩＯＰＳＢ未満である場合にランクを「コールド」すなわちターゲット・ランクとして分類することができる。ＩＯＰＳＢは、デバイス・タイプのＩＯＰＳＢポイント、ランク内のドライブ数、およびＲＡＩＤスキームに基づいて計算することができる。
【００３６】
一実施形態では、適応データ・アルゴリズムの第３の変形は、相関係数を用いて密接に相関するホット・エクステントを識別し、エクステントを再分散させて、ランクを過負荷にする作業負荷スパイクを低減する。一実施形態では、この機構はスキュー排除のために考慮しているエクステント・プールにおける最もホットなエクステントの上位Ｎ％を識別する。プール内のエクステントの総数が大きい場合があるので、効率のため、この機構は再均衡化動作を最もホットなエクステントの上位Ｎ％（これはＥＭＡ（エクステント−ヒート）に基づいて決定される）に限定することができる。これらのエクステント間で相互の相関係数を計算する。単純な相関クラスタリング機構を用いて、この機構はエクステントを、正に相関するエクステントのクラスタへと分割する。各クラスタで、エクステント・ヒートに従ってエクステントをソートすることができる。層において利用可能なランク間で、ストライピングを用いてエクステントを再分配する。
【００３７】
図５から図８は、性能スキュー排除のための様々な処理および機構を示す例示的な図である。図５は、本発明の態様を実現可能である追加ランク使用の場合を示す例示的な図５００である。図５から図８は各々、いくつかのランク５０２を示す。各ランク５０２Ａ内にいくつかのエクステントがある。すなわち、ホット・エクステント５１０またはコールド・エクステント５１２のいずれかである。ランク５０２は、ホット・エクステント５１０またはコールド・エクステント５１２あるいはその両方のマイグレーションを示す目的のために、ホット・ランク５０２Ａおよびターゲット・ランク５０２Ｂに分割されている。図５では、同一の層に多数のランクが存在する前提条件を認識することができる。いくつかの追加の前提条件は以下を含むことができる。すなわち、（１）ランク統計データの可用性およびランクをソートする能力、ならびに（２）ランク・マッピング等のランク構成の可用性である。
【００３８】
一実施形態では、この機構は、既存のランクを用いて層内に新しいランクを追加することによってトリガされる。トリガされると、機構はその層内の全ランクについてヒートを計算することができる。性能スキューが、システム内の許容可能スキュー量として規定することができる閾値を超えている間、機構はホット・ランク（ヒートが閾値を超えている）を識別することができる。ターゲット・ランク５０２Ｂは、新たに追加されたランクに等しくすることができる。ホット・ランク５０２Ａが存在する場合、機構はホット・ランク５０２Ａからターゲット・ランク５０２Ｂにホット・エクステント（５１０）をマイグレーションすることができる。例えば、ホット・ランク５０２Ａ内のホット・エクステント５１０をターゲット・ランク５０２Ｂにマイグレーションする。以降のマイグレーションで示される新しいホット・ランク５０２Ａには、マイグレーションしたホット・エクステント５１０は存在しない。マイグレーションしたホット・エクステント５１０はターゲット・ランク５０２Ｂに現れている。図５は空であるターゲット・ランク５０２Ｂを示し、ホット・エクステント５１０がマイグレーションされた後は、ターゲット・ランクは１つのホット・エクステント５１０を含む。
【００３９】
図６は、本発明を実現可能である追加ランクの代替的なフローを示す例示的な図である。図６内で、３つの状況５２０、５２２、および５２４は、代替的なフローを用いた追加ランクを示す。第１の状況５２０では、ホット・エクステント５１０の１つがホット・ランク５０２Ａからターゲット・ランク５０２Ｂにマイグレーションされる。マイグレーションは新たに追加したランクに対して発生する。第２の状況５２２では、ホット・ランク５０２Ａにホット・エクステント（５１０）は存在せず、ホット・ランク５０２Ａにはコールド・エクステント５１２のみが見られる。性能スキューが閾値を超えていないので、ホット・ランク５０２Ａからターゲット・ランク５０２Ｂへのマイグレーションは行われない。第３の状況５２４では、ホット・ランク５０２Ａにホット・エクステント（５１０）が存在するにもかかわらず、ソース・ランクが充分にホットでないために、ホット・ランク５０２Ａからターゲット・ランク５０２Ｂへのマイグレーションは行われない。
【００４０】
図７は、本発明を実現可能である性能スキュー使用の場合を示す例示的な図である。一実施形態では、同一の層内に多数のランクが存在する前提条件を認識することができる。いくつかの追加の前提条件は以下を含むことができる。すなわち、（１）ランク統計データの可用性およびランクをソートする能力、および（２）ランク・マッピング等のランク構成の可用性である。
【００４１】
一実施形態では、この機構は、現在のタイム・サイクルが決定ウィンドウにあることによってトリガされる。トリガされると、機構は層内の全ランクについてランク・ヒートを計算することができる。性能スキューが、システム内の許容可能スキュー量として規定することができる閾値を超えている間、例示した実施形態の機構はホット・ランク（ヒートは閾値を超えている）を識別することができる。ホット・ランク５０２Ａが存在する場合、例示した実施形態の機構はランク５０２Ｂをターゲットにすることができる（ソースとターゲットとの間のスキューは最大である）。ターゲット・ランク５０２Ｂに余分の容量がある場合、機構はホット・ランク５０２Ａからターゲット・ランク５０２Ｂにホット・エクステント５１０を移動させることができる。そうでない場合、機構は、ホット・ランク５０２Ａからのホット・エクステント５１０をターゲット・ランク５０２Ｂからのコールド・エクステント５１２とスワップすることができる。例えば、ホット・ランク５０２Ａからマイグレーションしたホット・エクステント５１０はターゲット・ランク５０２Ｂに現れている。図７が示すターゲット・ランク５０２Ｂは、マイグレーションの前はコールド・エクステント５１２のみを含み、マイグレーションの後はターゲット・ランク５０２Ｂにホット・エクステント５１０が配置され、このためターゲット・ランク５０２Ｂは１つのホット・エクステント５１０および１つのコールド・エクステント５１２を含む。
【００４２】
図８は、本発明を実現可能である代替的なフローを用いた性能スキュー排除機構を示す例示的な図である。図８内では、３つの状況５３０、５３２、および５２４が、代替的なフローによる性能スキュー使用の場合を示す。第１の状況５３０では、ホット・ランク５０２Ａに１つのみのホット・エクステント５１０が存在し、更にいくつかのコールド・エクステント５１２も存在する。ソース・ランクが充分にホットでないため、ホット・ランク５０２Ａからターゲット・ランク５０２Ｂへのマイグレーションは発生しない。ホット・ランクからコールド・ランクへとエクステントをマイグレーションしないための別の条件は、マイグレーションによってコールド・ランクが再均衡化しているランクのＡＶＥヒートを超えるか否か、または、マイグレーションによってコールド・ランク負荷がデバイス閾値を超えるか否かである。第２の状況５３２では、ターゲット・ランク５０２Ｂにはホット・エクステント５１０およびコールド・エクステント５１２の双方が存在し、ホット・ランク５０２Ａにはホット・エクステント５１０のみが存在する。性能スキューが閾値を超えていないのでマイグレーションは行われない。第３の状況５３４では、ホット・ランク５０２Ａは完全にホット・エクステント（５１０）で一杯であり、ターゲット・ランク５０２Ｂは完全にコールド・エクステント５１２で一杯である。ホット・ランク５０２Ａからターゲット・ランク５０２Ｂへのマイグレーションが行われるか、またはホット・エクステント５１０のいくつかがコールド・エクステント５１２のいくつかによって「スワップ」される。ホット・ランク５０２Ａにもコールド・ランク５０２Ｂにも余分の容量がないからである。
【００４３】
図９は、データ・ストレージ・ランク間の実行時動的性能スキューのための例示的な方法６００を示すフローチャートである。一実施形態では、例示する実施形態の機構は、多数の次元／測定基準（ＢＷおよびＩＯＰＳ）にわたる長期スキュー（複数のスキュー）を識別し、安定した非侵入でスケーラブルな戦略を与えて、多層システムの単一層内のランク間でスキューを排除する。ＩＯＰＳおよびＢＷリソースの利用百分率を用いることによって、アルゴリズムを発生することができ、多数のベンダーのデバイスに自動的に適用することができる。更に、指数移動平均（ＥＭＡ）等の要約測定値を用いることによって、アルゴリズムは、反射的な反応なしの鋭いピークを説明することができる。確率論的アルゴリズムを用い採用することで、データ配置アクティビティのための潜在的なターゲットを識別すると共に、マイグレーション時またはマイグレーション・プランの実行後にターゲットがすでに過負荷でないことを保証し、同時にアルゴリズムは、デバイス（ランク）が利用不足でないことを保証する。一実施形態では、いくつかのフィードバック機構を用いて、システム・アクティビティに応じて発生される配置アドバイス量を調節し、システム内の「ホット」と「コールド」との間の切り換えを識別して、解決することができない状況が識別されると自動的にアドバイス発生を停止する。
【００４４】
この方法は開始する（６０２）と、性能スキューおよびイベントの存在によってプランニング・プロセスをトリガする（ステップ６０３）。方法６００は、ランク・ヒートを計算するためにエクステント粒度で収集した統計データを用いる（ステップ６０４）。細粒度の統計データは統計データに含まれる。方法６００は、多数の次元（帯域幅および１秒当たりの入出力数等）および作業負荷特徴に沿って様々なハードウェア・デバイスの特性を考慮する（ステップ６０６）。多数の次元にわたる長期および短期のスキューを識別する（ステップ６０７）。方法６００は、それらの次元の利用百分率を適用する（ステップ６０８）。プランを発生するためにランク間の平均ヒートを用いる（ステップ６０９）。データを適応的に配置するためにターゲットの位置を特定する（ステップ６１０）。データのマイグレーション時およびマイグレーション命令の実行後に、ターゲット（ターゲット・デバイス）が過負荷になることを防ぐ（ステップ６１１）。エクステントの再配置、マイグレーション、および配置のためのプランを発生する（ステップ６１２）。この方法は、プラン内に、例えば多層システムの単一層のランク間でスキューを排除するための安定した非侵入でスケーラブルな戦略を含む（ステップ６１３）。１つ以上のエクステントをマイグレーションする（ステップ６１４）。方法６００は、マイグレーションしたエクステントをターゲット・ランクに配置する（ステップ６１６）。いくつかの測定値を用い採用して、鋭いピークを説明する（ステップ６１８）。方法は、均衡化エクステント・プールを維持しながら、フィードバック機構を適用してデータの配置を調節する（ステップ６２０）。方法６００は、マイグレーション時に最大限に利用するためにデータ・ストレージ・ランクを適合させる（ステップ６２２）。方法６００は終了する（ステップ６２４）。
【００４５】
前述のように、この機構は、ハードウェアの帯域幅およびＩＯＰＳの双方の特性ならびに作業負荷特徴を考慮に入れながら、エクステント粒度で収集した細粒度の統計データを利用してランク・ヒートを計算する。ランク間の平均ランク・ヒートを用いて（変形はＩＯＰＳ待ち時間曲線および相関係数の使用を含む）、この機構は、突然の反射的な反応なしでシステムにおける長期性能スキュー（複数のスキュー）を低減するためにエクステントを再配置するプランを発生することができる。データ（エクステント）のマイグレーションのペースを調整する。適応データ・プランのためのプラニング・プロセスをトリガするのは、性能スキューの存在、ならびに、ハードウェアの追加／削除／劣化、ボリュームの生成／削除／再構成、および他のかかる構成イベント（プールのマージ等）等の他のイベントの双方である。
【００４６】
「義務的な」、「必須の」、「必要とする」、および「しなければならない」等の用語は、明確さのために本明細書において記載した特定の実施または適用の文脈内で行われる実施の選択を指しており、限定を意図したものではないことは認められよう。代替的な注入、動作、構築、または実施では、同一の要素を、義務的でなく必須でないものとして規定することができ、または全体的に排除することも可能であるからである。更に、単数の文脈において本明細書に述べて記載したコンポーネントまたは構造は、明確さのためにおよび一例として特定の実施または適用において記載するに過ぎず、限定を意図したものではない。本明細書に記載した方法およびシステムの代替的な注入、動作、構築、または実施あるいはそれら全てにおいては、多数のコンポーネントまたは構造を利用可能であるからである。
【００４７】
当業者によって認められるように、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の態様は、具現化されたコンピュータ使用可能プログラム・コードを有する１つ以上のコンピュータ読み取り可能媒体（複数の媒体）において具現化されたコンピュータ・プログラムの形態を取ることも可能である。
【００４８】
１つ以上のコンピュータ読み取り可能媒体（複数の媒体）のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。コンピュータ読み取り可能ストレージ媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能ストレージ媒体の更に具体的な例（非網羅的な列挙）は、以下を含む。すなわち、１本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能ストレージ媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能ないずれかの有形の媒体とすることができる。
【００４９】
コンピュータ読み取り可能媒体上で具現化されるプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて伝送することができる。本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む１つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で、実行することができる。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、（例えばインターネット・サービス・プロバイダを用いてインターネットを介して）外部コンピュータに対して行うことができる。
【００５０】
本発明の実施形態に従った方法、装置（システム）、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様について以下に記載する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施するための手段を生成するようになっている。
【００５１】
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施する命令を含む製造品を生成するようになっている。また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施するためのプロセスを提供するようになっている。
【００５２】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を例示する。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能（複数の機能）を実施するための１つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した２つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
【００５３】
本発明の１つ以上の実施形態について詳細に例示したが、以下の特許請求の範囲に述べたような本発明の範囲から逸脱することなくこれらの実施形態に対する変形および適合を実施可能であることは当業者にはみとめられよう。
【図１】
0005466794.tif 000003
【図２】
0005466794.tif 000004
【図３】
0005466794.tif 000005
【図４】
0005466794.tif 000006
【図５】
0005466794.tif 000007
【図６】
0005466794.tif 000008
【図７】
0005466794.tif 000009
【図８】
0005466794.tif 000010
【図９】
0005466794.tif 000011