(57)【特許請求の範囲】
【請求項１】
ダイナミックストレージ階層化（DST）メカニズムを介してストレージシステムにデータエレメントの配置を提供するための方法であって、
ストレージシステムの複数のストレージプールを、該ストレージプールの相対的な性能レベルに基づいて、階層に組織化するステップと、
複数のデータエレメントを、該データエレメントの相対的なアクティビティレベルに基づいて、複数のストレージプールに配置するステップと、
ストレージシステムの複数のデータエレメント及び複数のストレージプールをモニタするステップと、
複数のデータエレメントに含まれる第１のデータエレメントの負荷を決定するステップと、
第１のデータエレメントと第１のストレージプール間の不適合性のレベルを求めるために第１のデータエレメントの負荷を用いるステップと、
不適合性のレベルを不適合性基準と比較するステップと、
を含んでいることを特徴とする方法。
【請求項２】
請求項１記載の方法において、該方法はさらに、複数のストレージプールに含まれる第１のストレージプールに関する負荷レンジを決定するステップを含み、第１のデータエレメントは第１のストレージプールに位置し、第１のストレージプールは第１の性能レベルを有していることを特徴とする方法。
【請求項３】
請求項２記載の方法において、該方法はさらに、第１のデータエレメントの負荷と第１のストレージプールの負荷レンジを比較するステップを含んでいることを特徴とする方法。
【請求項４】
請求項３記載の方法において、該方法はさらに、第１のデータエレメントの負荷と第１のストレージプールの負荷レンジとの比較の結果、第１のデータエレメントの負荷が第１のストレージプールの負荷レンジの上限閾値よりも大きい場合に、複数のストレージプールに含まれる第２のストレージプールに関する負荷レンジを決定するステップを含み、第２のストレージプールは第２の性能レベルを有し、第２の性能レベルは第１の性能レベルよりも高いことを特徴とする方法。
【請求項５】
請求項４記載の方法において、該方法はさらに、第１のデータエレメントの負荷と第２のストレージプールの負荷レンジを比較するステップを含んでいることを特徴とする方法。
【請求項６】
請求項５記載の方法において、該方法はさらに、第１のデータエレメントの負荷と第２のストレージプールの負荷レンジとの比較の結果、第１のデータエレメントの負荷が第２のストレージプールの負荷レンジの範囲内である場合に、第１のデータエレメントを移動してよいかどうかを決定するための、データエレメントの移動クライテリアを評価するステップを含み、評価されるデータエレメントの移動クライテリアは、第２のストレージプールの空き容量、不適合性基準に対する第１のデータエレメント及び第１のストレージプール間の不適合性のレベル、ストレージシステム上の全負荷、ストレージシステムに関するアクティブDSTの移動動作の数、第１のデータエレメントのサイズ、及びストレージシステムのポリシー制限のうち、少なくとも１つを含むことを特徴とする方法。
【請求項７】
請求項６記載の方法において、該方法はさらに、データエレメントの移動クライテリアの評価が、第１のデータエレメントを移動してよいことを示す場合に、第１のデータエレメントを第２のストレージプールに移動するステップを含んでいることを特徴とする方法。
【請求項８】
請求項7記載の方法において、該方法はさらに、第１のデータエレメントが第２のストレージプールに移動され、且つ、第１のデータエレメントの負荷が第２のストレージプールの負荷レンジの下限閾値を下回り、且つ第１のストレージプールの負荷レンジの範囲内にある場合に、第１のデータエレメントを第１のストレージプールに移動するステップを含んでいることを特徴とする方法。
【請求項９】
請求項６記載の方法において、該方法はさらに、データエレメントの移動クライテリアの評価が、第２のストレージプールの空き容量は第１のデータエレメントを第２のストレージプールに移動するには不十分であることを示す場合に、第２のストレージプールに存在する第２のデータエレメントの負荷を第１のデータエレメントの負荷と比較するステップを含んでいることを特徴とする方法。
【請求項１０】
請求項９記載の方法において、該方法はさらに、第２のデータエレメントの負荷が第１のデータエレメントの負荷よりも小さく、第２のデータエレメントを排除することにより第２のストレージプールに第１のデータエレメントを受け取るのに充分な空き容量を提供できる場合に、第２のデータエレメントを第２のストレージプールから排除し、かつ第１のデータエレメントを第２のストレージプールに移動するステップを含んでいることを特徴とする方法。
【請求項１１】
非一時的コンピュータ可読記憶媒体を備えるコンピュータプログラムであって、記憶媒体が、
ストレージシステムの複数のストレージプールを、該ストレージプールの相対的な性能レベルに基づいて、階層に組織化するよう構成されるコンピュータ使用可能コードと、
複数のデータエレメントを、データエレメントの相対的アクティビティレベルに基づいて、複数のストレージプールに配置するよう構成されるコンピュータ使用可能コードと、
ストレージシステムの複数のデータエレメント及び複数のストレージプールをモニタするよう構成されるコンピュータ使用可能コードと、
複数のデータエレメントに含まれる第１のデータエレメントの負荷を決定するよう構成されるコンピュータ使用可能コードと
第１のデータエレメントの負荷を用いて第１のデータエレメントと第１のストレージプール間の不適合性のレベルを求めるように構成されたコンピュータ使用可能コードと、
不適合性のレベルを不適合性基準と比較するよう構成されたコンピュータ使用可能コードと、を記憶していることを特徴とする、コンピュータプログラム。
【請求項１２】
請求項１１記載のコンピュータプログラムにおいて、記憶媒体はさらに、
複数のストレージプールに含まれる第１のストレージプールに関する負荷レンジを決定するよう構成されるコンピュータ使用可能コードであって、第１のデータエレメントは第１のストレージプールに位置し、第１のストレージプールは第１の性能レベルを有する、
コンピュータ使用可能コードと、
第１のデータエレメントの負荷と第１のストレージプールの負荷レンジを比較するよう構成されるコンピュータ使用可能コードと
を記憶していることを特徴とする、コンピュータプログラム。
【請求項１３】
請求項１２記載のコンピュータプログラムにおいて、記憶媒体はさらに、
第１のデータエレメントの負荷と第１のストレージプールの負荷レンジとの比較の結果、第１のデータエレメントの負荷が第１のストレージプールの負荷レンジの上限閾値よりも大きい場合に、複数のストレージプールに含まれる第２のストレージプールに関する負荷レンジを決定するよう構成されるコンピュータ使用可能コードであって、第２のストレージプールは第２の性能レベルを有し、第２の性能レベルは第１の性能レベルよりも高い、コンピュータ使用可能コードと、
第１のデータエレメントの負荷と第２のストレージプールの負荷レンジを、比較するよう構成されるコンピュータ使用可能コードと、
第１のデータエレメントの負荷と第２のストレージプールの負荷レンジとの比較の結果、第１のデータエレメントの負荷は第２のストレージプールの負荷レンジの範囲内にある場合に、第１のデータエレメントを移動してよいかどうかを決定するためのデータエレメントの移動クライテリアを評価するよう構成されるコンピュータ使用可能コードであって、評価されるデータエレメントの移動クライテリアは、第２のストレージプールの空き容量、不適合性基準のレベルに対する第１のデータエレメント及び第１のストレージプール間の不適合性レベル、ストレージシステム上の全負荷、ストレージシステムに対するアクティブDSTの移動動作の数、第１のデータエレメントのサイズ、及びストレージシステムのポリシー制限のうち、少なくとも１つを含むコンピュータ使用可能コードと
を記憶していることを特徴とする、コンピュータプログラム。
【請求項１４】
請求項１３記載のコンピュータプログラムにおいて、記憶媒体はさらに、
データエレメントの移動クライテリアの評価が、第１のデータエレメントを移動してよいことを示す場合に、第１のデータエレメントを第２のストレージプールに移動するよう構成されるコンピュータ使用可能コードと、
第１のデータエレメントが第２のストレージプールに移動され、かつ、第１のデータエレメントの負荷が第２のストレージプールの負荷レンジの下限閾値を下回り、第１のストレージプールの負荷レンジの範囲内にある場合に、第１のデータエレメントを第１のストレージプールに移動するよう構成されるコンピュータ使用可能コードと
を記憶していることを特徴とする、コンピュータプログラム。
【請求項１５】
請求項１３記載のコンピュータプログラムにおいて、信号記憶媒体はさらに、
データエレメントの移動クライテリアの評価が、第２のストレージプールの空き容量は第１のデータエレメントを第２のストレージプールに移動するには不十分であることを示す場合に、第２のデータエレメントの負荷を第１のデータエレメントの負荷と比較するよう構成されるコンピュータ使用可能コードであって、第２のデータエレメントは第２のストレージプールに存在する、コンピュータ使用可能コードと、
第２のデータエレメントの負荷が第１のデータエレメントの負荷よりも低く、第２のデータエレメントを排除することにより第２のストレージプールに第１のデータエレメントを受け取るのに充分な空き容量を提供できる場合に、第２のデータエレメントを第２のストレージプールから取り除き、第１のデータエレメントを第２のストレージプールに移動するよう構成されるコンピュータ使用可能コードと
を記憶していることを特徴とする、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージ（記憶）システムによるデータ管理の分野に関するものであり、より詳細には、継続中の負荷の測定及びランク付けを用いて、仮想ボリュームのホットスポットをストレージプールに配置するための方法に関する。
【背景技術】
【０００２】
データストレージシステムにおけるデータ管理を提供するための現在利用可能な方法は、所望のレベルの性能を提供していない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、現在利用可能な方法の上述の短所に対処できるような、データシステムにおけるデータ管理を提供するため方法を提供する。
【課題を解決するための手段】
【０００４】
本発明は、ダイナミックストレージティアリング（DST）メカニズムを介して、ストレージシステムにデータエレメントの配置を提供するための方法を提供する。該方法は、ストレージシステムの複数のストレージプールを、ストレージプールの相対的な性能レベルに基づいて階層に組織化するステップと、複数のデータエレメントを、データエレメントの相対的なアクティビティレベルに基づいて複数のストレージプールに配置するステップと、ストレージシステムの複数のデータエレメント及び複数のストレージプールをモニタするステップと、複数のデータエレメントに含まれる第１のデータエレメントの負荷を決定するステップと、複数のストレージプールに含まれる第１のストレージプールに関する負荷レンジを決定するステップであって、第１のデータエレメントは第１のストレージプールに位置し、第１のストレージプールは第１の性能レベルを有する、ステップと、第１のデータエレメントの負荷と第１のストレージプールの負荷レンジを比較するステップと、第１のデータエレメントの負荷と第１のストレージプールの負荷レンジとの比較が、第１のデータエレメントの負荷の方が第１のストレージプールの負荷レンジの上限閾値よりも大きいことを示す場合に、複数のストレージプールに含まれる第２のストレージプールに関する負荷レンジを決定するステップであって、第２のストレージプールは第２の性能レベルを有する、ステップと、第１のデータエレメントの負荷と第２のストレージプールの負荷レンジを比較するステップと、第１のデータエレメントの負荷と第２のストレージプールの負荷レンジとの比較の結果、第１のデータエレメントの負荷が第２のストレージプールの負荷レンジの範囲内である場合に、第１のデータエレメントを移動してもよいかどうかを決定するためのデータエレメントの移動クライテリアを評価するステップであって、評価されるデータエレメントの移動クライテリアは、第２のストレージプールの空き容量、事前に決定された不適合性クライテリアのレベルに対する第１のデータエレメント及び第１のストレージプール間の不適合性のレベル、ストレージシステム上の全負荷、ストレージシステムに関するアクティブＤＳＴの移動動作の数、第１のデータエレメントのサイズ、及びストレージシステムのポリシー制限の少なくとも１つを含むステップと、データエレメントの移動クライテリアの評価が、第１のデータエレメントを移動してよいことを示す場合に、第１のデータエレメントを第２のストレージプールに移動するステップとを備える。
【０００５】
本発明はさらに、信号記憶媒体を含んだコンピュータプログラム製品を提供し、信号記憶媒体は、ストレージシステムの複数のストレージプールを、ストレージプールの相対的な性能レベルに基づいて階層に組織化するためのコンピュータ使用可能コードと、複数のデータエレメントを、データエレメントの相対的アクティビティレベルに基づいて、複数のストレージプールに配置するためのコンピュータ使用可能コードと、ストレージシステムの複数のデータエレメント及び複数のストレージプールをモニタするためのコンピュータ使用可能コードと、複数のデータエレメントに含まれる第１のデータエレメントの負荷を決定するためのコンピュータ使用可能コードと、複数のストレージプールに含まれる第１のストレージプールに関する負荷レンジを決定するためのコンピュータ使用可能コードであって、第１のデータエレメントは第１のストレージプールに位置し、第１のストレージプールは第１の性能レベルを有する、コンピュータ使用可能コードと、第１のデータエレメントの負荷と第１のストレージプールの負荷レンジを比較するためのコンピュータ使用可能コードと、第１のデータエレメントの負荷と第１のストレージプールの負荷レンジとの比較が、第１のデータエレメントの負荷の方が第１のストレージプールの負荷レンジの上限閾値よりも大きいことを示す場合に、複数のストレージプールに含まれる第２のストレージプールに関する負荷レンジを決定するためのコンピュータ使用可能コードであって、第２のストレージプールが第２の性能レベルを有し、第２の性能レベルが第１の性能レベルよりも高い、コンピュータ使用可能コードと、第１のデータエレメントの負荷と第２のストレージプールの負荷レンジを比較するためのコンピュータ使用可能コードと、第１のデータエレメントの負荷と第２のストレージプールの負荷レンジとの比較が、第１のデータエレメントの負荷が第２のストレージプールの負荷レンジの範囲内であることを示す場合に、第１のデータエレメントを移動してよいかどうかを決定するためにデータエレメントの移動クライテリアを評価するためのコンピュータ使用可能コードであって、評価されるデータエレメントの移動クライテリアは、第２のストレージプールの空き容量、事前に決定された不適合性クライテリアのレベルに対する第１のデータエレメント及び第１のストレージプール間の不適合性レベル、ストレージシステム上の全負荷、ストレージシステムに対するアクティブＤＳＴの移動動作の数、第１のデータエレメントのサイズ、及びストレージシステムのポリシー制限のうち、少なくとも１つを含むコンピュータ使用可能コードと、データエレメントの移動クライテリアの評価が、第１のデータエレメントを移動してよいことを示す場合に、第１のデータエレメントを第２のストレージプールに移動するためのコンピュータ使用可能コードと、を保持する。
【０００６】
前述の一般的な説明及び後述の詳細な説明は両方とも、単なる例示であって、特許請求された発明を必ずしも限定するものではない。本明細書に援用され且つその一部を構成する添付図面は、本発明の実施形態を図示し、本発明の概要とともに、本発明の原理を説明するものである。
【図面の簡単な説明】
【０００７】
【図１Ａ】本発明の実施形態による、ダイナミックストレージ階層化（ＤＳＴ：Dynamic Storage Tiering）メカニズムを介して（例：アルゴリズムを介して）ストレージシステムにデータエレメントの配置を提供するための方法を説明するフロー図を示す。
【図１Ｂ】本発明の実施形態による、ダイナミックストレージ階層化メカニズムを介して（例：アルゴリズムを介して）ストレージシステムにデータエレメントの配置を提供するための方法を説明するフロー図であり、図１Aに続くフロー図である。
【図２】本発明の実施形態例による、データエレメントの配置を提供するための方法（例：図１A及び図１Bで示される方法等）が実現されるシステム（例：ストレージシステム）のブロック図である。
【発明を実施するための形態】
【０００８】
本発明の現在好適である実施形態を、添付した図面を参照して詳細に説明する。
【０００９】
ダイナミックストレージ階層化（DST）は、ストレージシステムのストレージ装置をそれぞれの特性に応じて階層的にグループ化し、且つストレージ装置の特定の機能にレバレッジをかけるためにダイナミックにデータを再配置するという概念である。このような再配置には、DTSメカニズムがデータの特定エレメントを最適な階層に配置できるような方法で、データが分類される必要がある。DTSは、ストレージ階層のいくつかの異なるクオリティオブサービス（QoS）属性に適用される。本発明は、DSTベースのストレージシステムの性能管理に関するものである。
【００１０】
性能管理に関して、本発明のDSTメカニズムの目的は、高アクティビティレベルを有するデータを特定し、高性能のストレージ階層（例：高性能ストレージプール）に配置することである。同じく重要なことは、低アクティビティレベルのデータ（例：高アクティビティレベルのデータよりも低いアクティビティレベルを有するデータ）を特定し、低性能のストレージ階層（例：低性能ストレージプール）に配置し、低性能のストレージ階層が高性能のストレージ階層よりも低い性能レベルを有する状態であることである。低アクティビティレベルのデータを低性能のストレージ階層に配置することで、低アクティビティレベルのデータが高性能のストレージ階層でストレージ容量を占めることを避けることができる。DSTメカニズムは、任意のホストデータをオフラインにすることなく、このようなデータ特定及び配置を実行することができる。
【００１１】
さらに、本発明のDSTメカニズムは、高性能のストレージ階層において、より高価なストレージ装置（例：高性能ストレージ装置）の利用を最大化するために、高性能のストレージ階層の最大限の使用を促進するものである。しかしながら、DSTメカニズムは高性能の階層に負荷をかけ過ぎることにより、その実効性能が低性能の階層を下回ることないよう構成する必要がある。過負荷は、高性能の階層におけるストレージ装置が飽和状態である（例：高性能の階層におけるストレージ装置のストレージ容量が飽和状態である）場合に生じる。
【００１２】
本発明のDSTメカニズムは、ストレージシステムの最適化のために、データエレメントの適切なストレージ階層への配置及び保持を連続的に実行できる。従来のソリューションは、本発明のDSTメカニズムの上述の機能を提供することができない。従来のソリューションの多くは、I/Oの振る舞いが高精度で予測できるという理論仮定に基づいている。しかし、I/Oの振る舞いを高精度に予測する方が、実際にははるかに困難であることが実証されている。従来の他のソリューションは、高度先進の統計的計算能力が必要である。DSTの難しい面は、場合によっては、データエレメントを第１のストレージ階層（例：高性能のストレージ階層）に移動することにより、そのストレージ階層の性能レベルが、第２のストレージ階層（例：低性能／より性能の低いストレージ階層）の実効性能を下回るようなレベルに変わる可能性があることである。継続的にストレージ階層の性能を測定することにより、データを第１のストレージ階層へ移動した後に、この観点／問題を検出することができるが、移動前には容易に予測できない。
【００１３】
外部ストレージアレイ（例：ストレージシステム）では、ストレージ仮想化マネージャ（SVM）がストレージアレイに配置される場合、各小型計算機システムインターフェース（SCSI）論理ユニット（LU）が仮想ボリュームにマッピングされる。仮想ボリュームは、ストレージアレイの１又は複数のストレージ階層（例：ストレージプール）における容量により提供される。例えば、各ストレージプールは、基本的には、ストレージ階層に対応している。ストレージプールは１又は複数の仮想ドライブ（例えば、RAIDボリューム：Redundant Array of Inexpensive Disks Volume）を備えている。仮想ボリュームが１又は複数のストレージプールから提供されると、仮想ボリューム論理ブロックアドレス（LBA）レンジの仮想ドライブLBAレンジへの各マッピングに対して、仮想ボリュームのセグメントが作成される。このように、仮想ボリュームからなる一組の仮想ボリュームセグメントが、仮想ボリューム構成を形成する。
【００１４】
SCSI  LUに関して、高アクティビティレベルを有すると測定されたデータは、LU内のLBAレンジとして特定される。例えば、特定されたLBAレンジと関連付けられた高アクティビティレベルのデータは、残りのLUと比べてかなり高いアクティビティを有しており、ホットスポットと称される。LUは２以上のホットスポットを有している。この測定されたデータのアクティビティレベルはLBAレンジの負荷とも称される。
【００１５】
ホットスポットは、１つの仮想ボリュームセグメントに完全に含まれるか、又は２以上の仮想ボリュームセグメントにわたっている。このように、DSTの目的を満たすための１つの方法は、ホットスポットを含む仮想ボリュームセグメントをより性能の高いストレージプール（高性能ストレージ階層）に移動することである。しかし、仮想ボリュームセグメントは仮想ボリュームよりは小さいが、それでも非常に大きいものであり、且つホットスポットは、移動する仮想ボリュームセグメントのわずかな割合しか占めていない。本発明のDSTメカニズムはさらに、仮想ボリュームの構成(例：仮想ボリュームセグメント)をダイナミックに変更できるので、結果としてホットスポットは、ホットスポットより大き過ぎることのない１又は複数のより小さい仮想ボリュームセグメントに含まれることになる。本発明のDSTメカニズムは実質的に、ホットスポットを備えるこれらのより小さい仮想ボリュームセグメントを、本発明のDSTメカニズム内に又はメカニズムによって実現されるアルゴリズムに基づいて、適切なストレージプールに移動する。
【００１６】
ホットスポット検出メカニズムは、仮想ボリュームのLBAレンジを同サイズのクラスタに組織化し、そのクラスタに対してストレージシステムが継続的に負荷／アクティビティを測定する。例えば、性能統計（例：負荷測定値）が個々のクラスタに関して収集される。クラスタは、仮想ボリュームの総容量のパーセンテージ、及び固定サイズ（例：メガバイト（MBｓ）の所定数）のいずれかとして定義される。ストレージシステムは、トラッキングする必要のあるメタデータ／統計の量を制限するために、最小のクラスタサイズを有している。しかし、クラスタサイズは仮想ボリュームセグメントよりもかなり小さいことが通常である。ホットスポットは、残りの仮想ボリュームと比較して（かつ、DST管理下の別の仮想ボリュームと比較されて）高レベルのアクティビティを有する単一クラスタ又は隣接クラスタを介して特定される。それから仮想ボリュームの構成は、ホットスポットに対応するクラスタが１又は複数の仮想ボリュームセグメントに存在するように変更され、それによって、DSTメカニズムははるかに小さいクラスタを移動することができる。
【００１７】
ストレージシステムのSVMは、仮想ボリュームに関して１又は複数のポイントインタイム（PiT：Point-in-Time）コピーを作成するスナップショットメカニズムをサポートしている。PiTコピー（第１のPiT）が仮想ボリューム上で作成される場合、仮想ボリュームは凍結し、かつPiTの作成後に仮想ボリュームに加えられた変更の全てを保持するPiTテンポラリ仮想ボリューム（PTVV）が作成される。その結果、仮想ボリュームの元のコンテンツはPiTが作成された時点で保護される。この種のスナップショットメカニズムは、アロケートオンライト（allocate-on-write）又は、リダイレクトオンライト(re-direct-on-write)と称されるものであって、より一般的なコピーオンライトスナップショットメカニズムではない。別のPiT(第２のPiT)が第１のPiTの作成後に作成される場合は、第１のPiTのPTVV（例：現在のPTVV）が凍結され、新たなPTVV（例：第２のPiTのPTVV）が作成される。そして、最後に作成されたPiT（第２のPiT）は、作成されるとアクティブPiTになる。該システムは、全ての書き込みがアクティブPiTのPTVVに向けられるよう構成される。
【００１８】
仮想ボリュームのLBAレンジは、同じサイズのチャンクに概念的に分割される。チャンクのサイズはPiTの粒度であり、これは仮想ボリュームの属性である。仮想ボリュームの各チャンクのためのエントリを備えるリアロケーションテーブル（RT）が各PiTに関して作成され、PTVVの先頭に記憶される。Pitの作成後にホストによってチャンクが書き込まれると、アクティブPiTに関するRTの対応するエントリが割り当て済みとして区別され、該チャンクはPTVVの次に利用可能なLBAに配置される。PiTが削除される際には、削除されるPiTに対応するPTVVにあるチャンクは、以前のPiTに再統合されるか又は他にPiTがない場合は仮想ボリューム自身に再統合される。読み出しI/O動作が仮想ボリューム上で受け取られると、アクティブPiTに関するRTは常にそのチャンク（有効チャンク）の最新バージョンをポインティングする。有効チャンクは、アクティブPiT自身に関するPTVVに位置するか、古いPiTに関するPTVVに位置する、又はオリジナルボリュームに位置する。
【００１９】
読み出しホットスポットは、そこでのI/O動作の大部分が読み込み動作であるようなホットスポットと定義される。書き込みホットスポットは、そこでのI/O動作の大部分が書き込み動作であるようなホットスポットと定義される。ホットスポットが書き込みホットスポットである場合、I/Oアクティビティがアクティブ（最新の作成の）PiTに関するPTVVに集中している状態である。ホットスポットは、移動先ストレージプールに仮想ボリュームに対する新しいPiTを単に作成することで、移動先ストレージプールへ移動される。書き込みI/OアクティビティはアクティブPiTに引き続き集中するが、この時点でこのPiTは移動先ストレージプールに存在している。ホットスポットが落ち着く（アクティビティレベルが下がる）と、DSTは該PiTを単純に削除し、削除されたPiTのコンテンツを直前に作成の旧PiT/PTVVと再統合し、これによって、直前に作成の旧PiT/PTVVを再度アクティブにする。
【００２０】
ホットスポットが読み出しホットスポットである場合、問題となるLBAレンジが仮想ボリュームと関連付けられた多数のPiTにわたって分配されているため、少々複雑である。すなわち、移動先ストレージプールに新たなPiTを作成するだけでは不十分である。読み出しホットスポットが単一PiT内に含まれていても、チャンクのLBAレンジはPTVVにおいて連続しているとは期待できない（例えば、読み出しホットスポットを構成するチャンクはPTVV全体に広がっている）。PTVV自身は非常に大きい場合もあるので、PTVV全体を移動先ストレージプールに移動することは実現不可能である。読み出しホットスポットに関しては、DST（DSTメカニズム）は上述のように移動先ストレージプールにやはり新たなPiTを作成するが、それに加えて、読み出しホットスポットを含むLBAレンジを移動先ストレージプールの新たなPTVVへコピーするステップを実行する。この結果として、読み出しホットスポットに対応するチャンクの全てが、移動先ストレージプールのPTVVに配置される。したがって、仮想ボリューム内のホットスポットで読み出しが受け取られると、読み出しは、移動先ストレージプール（速い方のストレージプール）のPTVVにあるチャンクに向かうことになる。
【００２１】
上述のコピー処理の間に、新たなPTVV(移動先PTVV)でホストが書き込んだ任意のチャンクに対する上書きを回避することが重要である。DSTがホットスポットのLBAレンジにある全てのチャンクを移動先PTVVに単純に書き込みできないのは、コピー処理が行われていた間に同じLBAレンジにホストが書き込みしたデータがあれば、それが上書きされてしまうからである。したがって、読み出しホットスポットは、PiT追加コピー(Pit additive copy)と称されるプロセスを用いて、移動先ストレージプールに移動され、そのプロセスは、移動先PTVVにチャンクがまだ一つもない場合に、読み出しホットスポットのLBAレンジ内のチャンクのみがソースから移動先PTVVにコピーされるものである。このように、仮想ボリュームにおけるPiTの有無、及びホットスポットが読み出しホットスポットか書き込みホットスポットかを問わず、DSTはホットスポットを検出し、かつ別のストレージプールへ移動をするためのメカニズムを有する。
【００２２】
本発明の実施形態例では、DSTメカニズムは、DST配置アルゴリズムを実装し、ヒューリスティック(heuristic：発見的方法)を用いて、どのストレージシステムのストレージプールに各ホットスポットを配置すべきかを決定する。これらのヒューリスティックに含まれる第１のヒューリスティックは、ストレージシステムの高性能ストレージプール（より高性能なストレージプール）の利用を最大化するものである。第１のヒューリスティックは、より高性能なストレージプールがシステムの最も高価／より高価なストレージ装置を含むのだから、システムのユーザはこれらの高性能なストレージプールを最大限に利用することを望むはずである、という仮定に基づいている。さらに、これらの高性能な（より速い）ストレージプールの利用を増大すれば、ストレージシステム全体としての見かけ上の性能が大いに向上する。例えば、上述の第１のヒューリスティックを実現する／に従うことにより、ストレージシステムのストレージ装置の全てが、事実に反してあたかもより高価なタイプ（より高性能な／最も高性能なストレージプールに含まれるタイプの装置）であるようになる。
【００２３】
本発明のさらなる実施形態では、この第１のヒューリスティックに基づいて、DSTメカニズム（DST配置アルゴリズム）は、ホットスポットをストレージプールの性能ランクの高い順に（下降型で／最高性能から最低性能へ）ストレージプールに配置する。例えば、最もランクの高いストレージプール（最高性能のストレージプール）が最初に埋まり、２番目にランクの高いストレージプールが２番目に埋まり、３番目にランクの高いストレージプールが３番目に埋まる、等である。さらに、DST（DST配置アルゴリズム）は、次の条件を維持しようとする。
条件１：
任意のホットスポットi及びホットスポットjに関して、ランク（ストレージプール（ホットスポットi））＜ランク（ストレージプール（ホットスポットj））であるならば、負荷（ホットスポットi）＜負荷（ホットスポットj）である。
上記によると、条件１が維持されていれば、第１のホットスポット（ホットスポットi）を含むストレージプールの性能ランク／レベルが第２のホットスポット（ホットスポットj）を含むストレージプールの性能ランクよりも低い場合は、第１のホットスポット（ホットスポットi）の負荷は第２のホットスポット（ホットスポットj）の負荷よりも少ない。したがって、条件１が維持されている場合は、高いアクティビティレベル／負荷を有するホットスポットは、低いアクティビティレベル／負荷を有するホットスポットよりも高性能なストレージプールに配置されることになる。
【００２４】
本発明の実施形態例では、各ストレージプールは負荷の上限閾値及び負荷の下限閾値と関連付けされている。ストレージプールの負荷上限閾値は、ストレージプールにおいて最も高い負荷を有するホットスポットの負荷と定義される。ストレージプールの負荷下限閾値は、ストレージプールにおいて最低負荷を有するホットスポットの負荷と定義される。
定義１
ストレージプール（ホットスポットi）＝ストレージプール（ホットスポットj）＝SPであり、かつ、i!=jであるSPにおける任意のホットスポットjに関して、負荷（ホットスポットI）＜負荷（ホットスポットj）を満足するiが存在するならば、下限閾値（SP）＝ホットスポットIの負荷である。
定義２
ストレージプール（ホットスポットi）＝ストレージプール(ホットスポットj)＝SPであり、かつ、k!=jであるSPにおける任意のホットスポットjに関して、負荷（ホットスポットｋ）＞負荷（ホットスポットj）を満足するiが存在するならば、上限閾値（SP）＝負荷（ホットスポットｋ）である。
【００２５】
本発明のさらなる実施形態では、DSTはストレージプールの閾値が重なるのを回避しようとする。例えば、DSTは以下に記す条件を維持するような方法で、ホットスポットをストレージプールに配置する。
条件２
ランク（SPn）＞ランク（SPm）であれば、下限閾値SPn＞上限閾値(SPm)である。
上記によれば、システムが第１のストレージプール(SPn)及び第２のストレージプール(SPm)を有し、第１のストレージプールの性能ランクが第２のストレージプールの性能ランクよりも高い場合、第１のストレージプールの下限閾値が第２のストレージプールの上限閾値よりも大きければ、条件２が維持されることになる。
【００２６】
本発明の実施形態例では、DSTはレンジから最も外れているホットスポットを求めて、そのホットスポットの現在のストレージプールに関して継続的に検索をする。ホットスポットの現在のストレージプールで、常にレンジ外にあるホットスポットが特定されると、そのホットスポットをそれに見合うストレージプールに移動できるかどうかを、DSTは評価する。本発明のこの実施形態では、上述の評価を行う際に多数のファクタが考慮される。まず、DSTは評価対象のホットスポットのために移動先プール候補を特定する。例えば、移動先プール候補は、評価対象のホットスポットの負荷の値が移動先プール候補の閾値の上限及び下限の範囲内にあたる（又は閾値の上限値又は下限値と一致する）ようなストレージプールである。さらに、DSTは評価対象ホットスポットのサイズを移動先プール候補のストレージ容量と比較して、評価対象のホットスポットを受け入れるのに充分な容量を、移動先プール候補が有しているかを決定する。
【００２７】
さらなる実施形態では、DSTはホットスポット及びその現在のストレージプールとの不適合性を評価する。例えば、DSTはホットスポット上の負荷を特定し、その負荷をホットスポットの現在のストレージプールの上限閾値及び下限閾値と比較する。この比較は、ホットスポット及び現在のストレージプール間に、どのくらい「ひどい」不一致が現在あるかを決定する。この不一致は最小限の差異よりも大きいものでないと、DSTはホットスポットの移動を検討しない。上述の最小限の差異は、評価対象のホットスポットを移動するか否かを決定するために、システムによって事前に決定された又は構成された最小限の差異である。ホットスポットを別のストレージプールに移動することができるか（望ましいか）否かを評価する際に、本発明のDSTメカニズムによって考慮されるべき別のファクタ又はクライテリアは、ストレージシステム（ストレージシステム全体）上の現在の負荷についての決定、ストレージシステムに関する中央処理装置の利用についての決定、ストレージシステムに関する実行中のバックグランド動作の数についての決定、すでに実行中／アクティブ状態のDSTによるホットスポット移動動作がいくつあるかについての決定、移動すべきホットスポットのサイズについての決定（大きいホットスポットほど移動時間もかかるため、移動の可能性ありと評価された同程度の負荷を有するホットスポットが２つある場合、DSTは候補である２つのホットスポットのうちで小さい方を先に移動するよう選択する）、移動を禁止するポリシー制限があるかについての決定（ストレージプールにわたるデータエレメントの指定構造の準備段階（pre-staging）、を含む。DSTが上記のクライテリアに対する評価に基づいて、移動候補として分析されているホットスポットがクライテリアを満たしていないためそのホットスポットをその時点では移動すべきではないと決定する場合、DSTは上記のクライテリアで、次のエレメント（例：次のホットスポット）を、DSTが構成した現在のストレージプールに適合しないホットスポットの候補リストから選択し、かつ次のホットスポットを上記のクライテリアで評価する、等である。DSTは、現在のストレージプールに適合しないホットスポット候補のリストを継続的に更新し、上述のクライテリアでホットスポットを評価／再評価して、それらを他のストレージプールに移動できるか及び／又は移動すべきかを決定するために、定期的に常にリストを確認する。
【００２８】
本発明の実施形態例では、DSTメカニズムは、ホットスポットがDSTによって以前に移動された場合、ホットスポットの負荷が大きく変化しないかぎりは再度移動しないよう構成される。スラッシングを回避するために、移動されたばかりのホットスポットには猶予期間(grace time period)が課される。例えば、猶予期間内にホットスポットの負荷が大きく変化しなければ、再び移動の対象とならない。さらに、猶予期間の終了後も、以前の移動からホットスポットの負荷に大きな変化がなければ、元々のストレージプールに戻されることもできない。
【００２９】
本発明のさらなる実施形態では、ホットスポットが落ち着くと（ホットスポットの負荷がそのストレージプールの下限閾値を下回ると）、ホットスポットは、よりランクの低いストレージプールに移動されるか又は残りの仮想ボリュームを含むストレージプールに戻される場合もある（ホットスポットが自身の仮想ボリュームに再統合されて戻る）。このように落ち着いたホットスポットがランクの高いストレージプールから移動することにより、ランクの高いストレージプールはより高い負荷を有する新たなホットスポットのために容量を解放することができる。
【００３０】
本発明の実施形態では、DSTは、第１のストレージプール(SPn)へ配置するのにふさわしい新たなホットスポットを検出する。しかしながら、第１のストレージプールは、新たなホットスポットを保持できるほどの空き容量が残っていない場合もある。その場合にDSTは、別のホットスポットを第１のストレージプール(SPn)から、よりランクの低いストレージプールへ移動して、新たなホットスポットのために容量を解放する。これは、DSTが第１のストレージプール(SPn)に、新たなホットスポットよりも低い負荷を有する１又は複数のホットスポットであって、合わせた容量が新たなホットスポットに必要な容量と同じ又はより高いホットスポットを発見できる場合に、有効である。
【００３１】
上述のように、DSTは継続的にストレージプールの性能をモニタし、そして高いランクのストレージプールの平均応答時間性能が、一つ下のランクのストレージプールと同程度まで低減（一つ下のランクのストレージプールの事前に構成された所定の割合以内）すると、高いランクのプールは、そこから別のホットスポットが移動していかなければ、さらなるホットスポットを受け入れることができなくなる。本発明のこの実施形態では、ランクの高いストレージプールは受け入れができない状態であるが、ランクの高いストレージプールに第１のホットスポット（ホットスポットj）が存在し、それよりも高い負荷を有する第２のホットスポット（ホットスポットj）がDSTによって移動されようとしている。したがって、第２のホットスポットを低性能のストレージプールに移動することは、上述の条件１に反する。この場合、以下の条件が真ならば、ホットスポットiが先に一つ下の性能のストレージプールに移動される。a）第１のホットスポット（ホットスポットi）の移動で第２のホットスポット（ホットスポットj）のためにより高性能なストレージプールに十分な容量が解放される、及びb）第２のホットスポットのための十分な空き容量が一つ下の性能のストレージプールにある。両方の条件（条件a及びb）が満たされるならば、第１のホットスポットが一つ下の性能のストレージプールに移動され、次に第２のホットスポットは性能が高い方のストレージプールに移動される。条件の両方（条件a及びb）が性能の高い方のストレージプールにおいて任意のホットスポットに関して満たされていない場合は、第２のホットスポットは一つ下の性能のストレージプールに移動され、且つDSTは上記の条件（条件a及びb）に対して違反があったという表示／通知を記録及び／又は提供する。このような違反は、ストレージシステムの構成が変わるにつれて、後に解消される。
【００３２】
本発明のさらなる実施形態では、DSTが移動の必要がある多数のホットスポットを検出した場合、最も高い絶対負荷を有するホットスポットを選択して、まずはそれを移動する。それから、選択されたホットスポット（最も高い絶対負荷を有するホットスポット）のための容量を解放するために、他のホットスポットをよりランクの低いストレージプールに移動する必要があると決定すると、このような他の移動動作も、選択されたホットスポット（より高い／最も高い負荷のホットスポット）を配置するための動作全体の一部とみなされる。
【００３３】
実施形態では、DSTは、よりランクの高いストレージプールにホットスポットのための容量を生成／解放するために、仮想ボリューム全体をよりランクの低いプールへ移動する。この状況は、他に待機中又は実行中のホットスポット移動動作がない場合、よりランクの低いストレージプールに充分な空き容量がある場合、及び仮想ボリューム上の平均負荷−（マイナス）任意のホットスポットの負荷が、より低いランクのプール内に適合する（任意の隣接するストレージプールの閾値とオーバーラップしない状態でよりランクの低いプールの上限閾値及び下限閾値以内に当たる）場合である。
【００３４】
このように、本発明のDTSメカニズムは、ストレージシステムのために以下の機能を実行する。すなわち、LBAレンジ上の負荷を測定することによるホットスポットの検出、ホットスポットの相対負荷に基づくホットスポットのランク付け、測定された性能に基づくストレージプールのランク付け、ホットスポットのストレージプールへの降順による配置（より高性能なストレージプールへ最初に配置）、及びホットスポットが落ち着いた場合にランクの低いストレージプールへのホットスポットの移動、を実行する。
【００３５】
さらに、本発明のDSTメカニズムは、次のような利点を提供する。すなわち、DST／DSTメカニズムを提供する際に実現されるアルゴリズムが簡単に実現でき、かつプロトタイプである、DSTメカニズムがシステム上でCPUサイクルを過剰に消費しない、より高性能なストレージプールの利用を最大化する、システム上で変化する負荷条件に自動的に対応する、という利点である。
【００３６】
図１A及び図１Ｂの方法１００により、本発明の実施形態例による、ダイナミックストレージ階層化（DST）メカニズムを用いて（アルゴリズムを用いて）ストレージシステム（図２に示されるシステム２００）にデータエレメントの配置を提供する。方法１００は、ストレージシステムの複数のストレージプールを、ストレージプールの相対的な性能レベル（標準応答時間性能）に基づいて階層に組織化するステップ１０２を含む。方法１００はさらに、複数のデータエレメントを、データエレメントの相対的なアクティビティレベルに基づいて、複数のストレージプールに配置するステップ１０４を含む。方法１００はさらにまた、ストレージシステムの複数のデータエレメント及び複数のストレージプールをモニタするステップ１０６を含む。方法１００はまた、複数のデータエレメントに含まれる第１のデータエレメントの負荷を決定するステップ１０８を含む。
【００３７】
本発明のさらなる実施形態では、方法１００はさらに、複数のストレージプールに含まれる第１のストレージプールに関する負荷レンジを決定するステップ１１０を含み、第１のデータエレメントは第１のストレージプールに位置し、第１のストレージプールは第１の性能レベルを有する。該方法はさらに、第１のデータエレメントの負荷を第１のストレージプールの負荷レンジと比較するステップ１１２を含む。方法１００はさらにまた、上記の第１のデータエレメントの負荷と第１のストレージプールの負荷レンジとの比較で、第１のデータエレメントの負荷が第１のストレージプールの負荷レンジの上限閾値（負荷上限閾値）よりも大きいことが示される場合に、複数のストレージプールに含まれる第２のストレージプールに関する負荷レンジを決定するステップを含む。第２のストレージプールは第２の性能レベルを有し、第２の性能レベルは第１の性能レベルより高いものである。方法１００はさらにまた、第１のデータエレメントの負荷を第２のストレージプールの負荷レンジと比較するステップ１１６を含む。
【００３８】
本発明の実施形態では、方法１００はさらに、第１のデータエレメントの負荷と第２のストレージプールの負荷レンジとの比較で、第１のデータエレメントの負荷が第２のストレージプールの負荷レンジの範囲内であることが示された場合に、第１のデータエレメントを移動してよいかを決定するために、データエレメントの移動クライテリアを評価するステップ１１８を含む。評価されるデータエレメントの移動クライテリアは、少なくとも第２のストレージプールの空き容量、事前に決定された不適合性基準のレベルに対する（移動対象とされるためにデータエレメントに要求される事前に設定／構成された最小限の差異に対する）第１のデータエレメント及び第１のストレージプール間の不適合性レベル、ストレージシステム上の全負荷、ストレージシステムに関するアクティブDSTの移動動作の数、第１のデータエレメントのサイズ、及びストレージシステムのポリシー制限のうち、少なくとも１つを含む。方法１００はさらに、データエレメントの移動クライテリアの評価が、第１のデータエレメントを移動してよいことを示す場合に、第１のデータエレメントを第２のストレージプールに移動させるステップ１２０を含む。方法１００はさらに、第１のデータエレメントが第２のストレージプールに移動され、且つ、第１のデータエレメントの負荷が第２のストレージプールの負荷レンジの下限閾値を下回り、且つ第１のストレージプールの負荷レンジの範囲内にある場合に、第１のデータエレメントを第１のストレージプールに移動させるステップ１２２を含む。
【００３９】
本発明のさらなる実施形態では、方法１００はさらに、上述のデータエレメントの移動クライテリアの評価で、第２のストレージプールの空き容量は第１のデータエレメントを第２のストレージプールに移動するには不十分であると示された場合に、第２のデータエレメントの負荷を第１のデータエレメントの負荷と比較するステップ１２４を含む。第２のデータエレメントは第２のストレージプールに位置している。方法１００はさらに、第２のデータエレメントの負荷が第１のデータエレメントの負荷よりも低く、且つ第２のデータエレメントを排除することで、第２のストレージプールに第１のデータエレメントを受け取るのに充分な空き容量を提供できる場合に、第２のデータエレメントを第２のストレージプールから取り除き、且つ第１のデータエレメントを第２のストレージプールに移動するステップ１２６を含む。
【００４０】
本発明による前述された実施形態は、本明細書の教示に従ってプログラムされた従来の汎用デジタルコンピュータを用いて、簡便に実現できることは、コンピュータ技術の当業者には明らかであろう。適切なソフトウェアコーディングが、本開示の教示に基づいて熟練のプログラマによって容易に準備されることも、ソフトウェア技術の当業者には明らかであろう。
【００４１】
本発明は、ソフトウェアパッケージの形態で、簡便に実現できる。ソフトウェアパッケージは、開示された本発明の機能及びプロセスをコンピュータが実行するようプログラムするために用いられる、記憶されたコンピュータコードを備えたコンピュータ可読記憶媒体を採用している、コンピュータプログラム製品である。コンピュータ可読記憶媒体は、任意のタイプの従来型フロッピディスク、光ディスク、CD-ROM、磁気ディスク、ハードディスクドライブ、光磁気ディスク、ROM、RAM、EPROM、EEPROM、磁気又は光カード、あるいは電子指示を記憶するための任意の適宜の媒体であるが、それに限定するものではない。
【００４２】
前述で開示された方法におけるステップの、具体的な順序又は階層は、アプローチ例の例示である。設計の好みによって、該方法におけるステップの具体的な順序又は階層は、本発明の範囲内において再変更が可能である。添付の方法クレームは、見本的な順序でさまざまなステップの要素を提示したものであり、提示された具体的な順序又は階層に限定するものではない。
【００４３】
本発明及びそれに付随する多数の利点は、前述の記載によって理解されるであろう。また、本発明の精神および範囲を逸脱しない限りは、又はマテリアルアドバンテージの全てを犠牲にすることなしに、これに関する部品の形態、構造、及び配置において、多くの変更が可能である。前述された形式は、本発明の実施形態例にすぎないので、このような変更に関しては、以下に記載の特許請求の範囲に包含されるものとする。
【図１Ａ】
0005629919.tif 000002
【図１Ｂ】
0005629919.tif 000003
【図２】
0005629919.tif 000004