(57)【特許請求の範囲】
【請求項１】
メモリと；
複数の第二コンピュータに提供される、複数の物理ストレージシステムによって形成され、複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む仮想ストレージシステムを管理するように作動可能なプロセッサと、
を含み、
前記プロセッサが、前記複数の仮想ボリュームのパフォーマンスをモニターするように作動可能であり、ならびに、前記仮想ストレージシステムへの前記複数の第二コンピュータからのアクセスを伴い前記複数の物理ストレージシステムが作動し、
モニターされた前記複数の仮想ボリュームのパフォーマンスに基づいて前記仮想ストレージシステムに追加で割り当てられる前記複数の他のタイプの仮想要素の量を計算するように作動可能であり、
前記複数の他のタイプの仮想要素は、前記複数の物理ストレージシステムが有する物理ストレージリソースから形成され、仮想ポート、仮想キャッシュ、または仮想容量リソースの少なくとも１つを含み、
前記複数の他のタイプの仮想要素が前記仮想ポートを含み、前記モニターされたパフォーマンスに基づき、前記仮想ポートの帯域幅が事前設定された帯域幅の閾値を超える場合に、前記プロセッサが、前記仮想ストレージシステムに追加で割り当てられる前記仮想ポートの量を計算するように作動可能であり；
前記複数の他のタイプの仮想要素が前記仮想キャッシュを含み、前記モニターされたパフォーマンスに基づき、前記仮想キャッシュのキャッシュヒット率が事前設定されたキャッシュヒット率の閾値を超える場合に、前記プロセッサが、前記仮想ストレージシステムに追加で割り当てられる前記仮想キャッシュの量を計算するように作動可能であり；ならびに、
前記複数の他のタイプの仮想要素が前記仮想容量リソースを含み、前記モニターされたパフォーマンスに基づき、前記仮想容量リソースの容量が事前設定された容量の閾値を超える場合に、前記プロセッサが、前記仮想ストレージシステムに追加で割り当てられる前記仮想容量リソースの量を計算するように作動可能である、第一コンピュータ。
【請求項２】
前記プロセッサが、各仮想ボリュームに対して、割り当てられる前記他のタイプの仮想要素の量、使用される前記他のタイプの仮想要素の量、ストレージプールのストレージプール識別番号、構成される前記物理ストレージリソース、ならびに、前記仮想ストレージシステムに前記他のタイプの仮想要素を提供するために前記ストレージプールにプロビジョニングされる前記物理ストレージリソース、を示す仮想ストレージテーブルを作成するように作動可能であり；ならびに、
前記仮想ストレージテーブルが、前記仮想ストレージシステムに追加で割り当てられる前記複数の他のタイプの仮想要素の量を計算するために使用される、請求項１に記載の第一コンピュータ。
【請求項３】
前記物理ストレージリソースが、前記複数の物理ストレージシステムに対応する複数の前記ストレージプールからプロビジョニングされる、請求項２に記載の第一コンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
本発明は、概して、仮想ストレージシステム、とりわけ、仮想ストレージシステムのシン・プロビジョニングに関する。
【０００２】
仮想化技術は、物理的制約を避けるために広く使用されている。ストレージの分野では、シン・プロビジョニングなどの容量仮想化技術に加えて、ストレージシステム仮想化技術が出現している。現在、仮想ストレージシステム技術は、以下の特徴：（ａ）物理的ストレージシステムの制約を避けるため、仮想ストレージシステムが物理的ストレージシステムから構成され、（ｂ）ボリュームが仮想ストレージシステムから作成され；ならびに（ｃ）作成されたボリュームは、オペレーティングシステムまたはアプリケーションに割り当てられることからなる。現在の技術の問題の１つは、物理ストレージシステムにおいてオーバープロビジョニングができないということである。さらに、現在の解決策は、物理ストレージシステムの制約および接続性を考慮していない。したがって、ポートおよびキャッシュなどのリソースを効率的に使用することが困難である。
【０００３】
特許文献１において、第一ストレージコントローラは、ＬＵＮから接続されたＬＤＥＶ（論理デバイス）およびより低位のＬＤＥＶに接続されたＶＤＥＶ（仮想デバイス）によって構成される多層記憶階層を有する。ＶＤＥＶの少なくとも１つは、外部ストレージコントローラに配置されたメモリリソースをマッピングすることによって構成される。ストライプ、ＲＡＩＤなどの機能は、マッピングにおいて追加することができる。運用の自由度が上がるように仮想内部メモリリソースとして外部メモリリソースを使用することによって、通常の内部ボリュームに適用可能な様々な種類の機能（リモートコピー、可変ボリューム機能など）も、仮想内部ボリュームにおいて使用することができる。
【０００４】
特許文献２において、データストレージシステムは、データストレージ設備へのアクセスを提供するための複数のノードを含む。各ノードは、ノードのための汎用コンピューティングを提供するためのコンピュータ−メモリ複合体、それぞれのノードを介したデータ転送を制御するためのノードコントローラ、およびデータ転送のためにデータをバッファするためのクラスタメモリ、を有する。複数の通信経路がノードを相互接続し、データストレージシステムの各２つのノードに対して別個の通信経路が提供される。
【０００５】
特許文献３において、システムは、ホストコンピュータからのインプット／アウトプットコマンドを受け取って当該ホストコンピュータに対して第一ストレージボリュームを提供する、第一ストレージコントローラを含む第一ストレージシステムと、ホストコンピュータからのインプット／アウトプットコマンドを受け取ってホストコンピュータに対して第二ストレージボリュームを提供する、第二ストレージコントローラを含む第二ストレージシステムとを備える。第一ストレージボリュームのうちの１つにおける第一データ記憶領域は、第一ストレージコントローラによって第一プールから割り当てられる。第一ストレージボリュームのうちの別の１つにおける第二データ記憶領域は、第一ストレージコントローラによって第二プールから割り当てられる。第二ストレージボリュームのうちの１つにおける第三データ記憶領域は、第二ストレージコントローラによって第一プールから割り当てられる。第二ストレージボリュームのうちの別の１つにおける第四データ記憶領域は、第二ストレージコントローラによって第二プールから割り当てられる。
【０００６】
上記の３つの参考文献において、例えば、仮想ストレージシステムが構成される場合でさえの物理的ストレージシステムにおけるオーバープロビジョン、ならびに物理ストレージシステムの制約および接続性を考慮することによる、ポートおよびキャッシュなどのストレージリソースの効率的な使用などを含む、本発明の特徴は開示されていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第７，４４１，０９５号明細書
【特許文献２】米国特許第６，６５８，４７８号明細書
【特許文献３】米国特許第８，３５６，１４７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
発明の簡単な概要
本発明の例示的な実施形態は、仮想ストレージシステムが構成される場合でさえの物理的ストレージシステムにおけるオーバープロビジョン、ならびに物理ストレージシステムの制約および接続性を考慮することによる、ポートおよびキャッシュなどのストレージリソースの効率的な使用を含む、ストレージリソースを効率的に利用する方法を提供する。仮想ストレージシステムの設計は厄介である。管理者が仮想ストレージシステムを作成するとき、彼らは、アレイグループおよびキャッシュ／物理ポートの接続性について意識した上で容量設計またはパフォーマンス設計を行わなければならない。
【０００９】
本発明の実施形態により、アレイグループなどのリソースは、仮想化されて管理される。リソースの追加の時点で容量のみが足りない場合、到達可能なアレイグループの容量が割り当てられる。リソースの追加の時点で、容量が足りないことに加えて、パフォーマンスも足りない場合、アレイグループに加えてポートおよびキャッシュも割り当てられる。キャッシュが割り当てられる場合、キャッシュパーティショニング構成も実行される。キャッシュに関しては、すべての容量が使い果たされ得るので、容量による管理が困難である。したがって、キャッシュは、ヒット率またはある種のメトリックスによって管理される。これは、物理構成を意識しない仮想ストレージシステムを実現する。この技術とパフォーマンスモニタリングソフトウェアによって管理される履歴データとを組み合わせることにより、仮想ストレージシステムのシン・プロビジョニングが実現される。その結果として、特にクラウド環境において、アプリケーションを実行するコストの低減が可能である。管理プログラムは、コストを低減する推奨プランを提供する。
【課題を解決するための手段】
【００１０】
本発明の態様に従って、第一コンピュータは、メモリ；および複数の第二コンピュータに提供される、１つまたは複数の物理ストレージシステムによって形成される仮想ストレージシステムを管理するように作動可能なプロセッサを含み、この場合、当該仮想ストレージシステムは、複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む。当該プロセッサは、複数の仮想ボリュームのパフォーマンスをモニターするように作動可能であり、ならびに、仮想ストレージシステムへの複数の第二コンピュータからのアクセスを伴う１つまたは複数の物理ストレージシステムの作動の際に、当該モニターされた複数の仮想ボリュームのパフォーマンスに基づいて仮想ストレージシステムに追加で割り当てられる複数の他のタイプの仮想要素の量を計算するように作動可能である。
【００１１】
いくつかの実施形態において、当該複数の他のタイプの仮想要素は、仮想ポート、仮想キャッシュ、または仮想ストレージ領域のうちの少なくとも１つを含む。仮想ポートの場合、プロセッサは、仮想ポートの帯域幅が事前設定された帯域幅の閾値を超える場合に、モニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる仮想ポートの量を計算するように作動可能である。仮想キャッシュの場合、プロセッサは、仮想ポートのキャッシュヒット率が事前設定されたキャッシュヒット率の閾値を超える場合に、モニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる仮想キャッシュの量を計算するように作動可能である。仮想ストレージ領域の場合、プロセッサは、仮想ストレージ領域の容量が事前設定された容量の閾値を超える場合に、モニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる仮想ストレージ領域の量を計算するように作動可能である。
【００１２】
特定の実施形態において、プロセッサは、各仮想ボリュームに対して、割り当てられる他のタイプの仮想要素の量、使用される他のタイプの仮想要素の量、ストレージプールのストレージプール識別番号、構成される物理ストレージリソース、ならびに、仮想ストレージシステムに当該他のタイプの仮想要素を提供するためにストレージプールにプロビジョニングされる物理ストレージリソース、を示す仮想ストレージテーブルを作成するように作動可能である。当該仮想ストレージテーブルは、仮想ストレージシステムに追加で割り当てられる複数の他のタイプの仮想要素の量を計算するために使用される。仮想ストレージシステムは、１つの物理ストレージシステムによって形成され、ならびに物理ストレージリソースは、当該１つの物理ストレージシステムに対応する１つのストレージプールからプロビジョニングされる。
【００１３】
いくつかの実施形態において、仮想ストレージシステムは、複数の物理ストレージシステムによって形成される。物理ストレージリソースは、当該複数の物理ストレージシステムに対応する複数のストレージプールからプロビジョニングされる。仮想ストレージテーブルは、所定の仮想ボリュームに対して、仮想ストレージシステムに追加で割り当てられる計算された量の複数の他のタイプの仮想要素を提供するためにストレージリソースがそこから使用される当該対応するストレージプールを識別するために使用される。
【００１４】
本発明の別の態様に従って、システムは、複数の第二コンピュータと；複数の物理ストレージシステムと；メモリならびに、当該複数の第二コンピュータに提供される、当該複数の物理ストレージシステムにおける１つまたは複数の物理ストレージシステムによって形成される仮想ストレージシステムを管理するように作動可能なプロセッサを含む第一コンピュータであって、当該仮想ストレージシステムが複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む、第一コンピュータと、を含む。当該プロセッサは、当該複数の仮想ボリュームのパフォーマンスをモニターするように作動可能であり、ならびに、当該仮想ストレージシステムへの複数の第二コンピュータからのアクセスを伴う１つまたは複数の物理ストレージシステムの作動の際に、当該モニターされた複数の仮想ボリュームのパフォーマンスに基づいて、仮想ストレージシステムに対して当該複数の他のタイプの仮想要素のシン・プロビジョニングを実行するように作動可能である。
【００１５】
いくつかの実施形態において、シン・プロビジョニングの実施は、仮想ストレージシステムに追加で割り当てられる複数の他のタイプの仮想要素の量の計算を含む。
【００１６】
本発明の他の態様は、複数のコンピュータに提供される、１つまたは複数の物理ストレージシステムによって形成される仮想ストレージシステムを管理するためにデータプロセッサを制御するための複数の命令を保存する非一時的コンピュータ可読性記憶メディアであって、当該仮想ストレージシステムが複数の仮想ボリュームおよび複数の他のタイプの仮想要素を含む、記憶メディアを対象とする。当該複数の命令は、以下の命令：データプロセッサに、当該複数の仮想ボリュームのパフォーマンスをモニターさせ、ならびに当該仮想ストレージシステムへの複数の第二コンピュータからのアクセスを伴う１つまたは複数の物理ストレージシステムの作動の際に、当該複数の仮想ボリュームにおけるモニターされたパフォーマンスに基づいて、仮想ストレージシステムに追加で割り当てられる他のタイプの仮想要素の量を計算させる命令、を含む。
【００１７】
本発明のこれらおよび他の特徴および利点は、以下の特定の実施形態の詳細な説明から、当業者に明らかとなるであろう。
【図面の簡単な説明】
【００１８】
【図１】本発明の方法および機器を適用することができるシステムのハードウェア構成の例を示す。
【図２】図１のシステムの論理構造を示す。
【図３】仮想ストレージシステムの例を示す。
【図４】物理ストレージシステムの例を示す。
【図５】図１のシステムにおける管理サーバの例を示す。
【図６】カタログテーブルの例を示す。
【図７】メディアテンプレートテーブルの例を示す。
【図８】アプリケーションテーブルの例を示す。
【図９】物理ストレージテーブルの例を示す。
【図１０】第一実施形態による仮想ストレージテーブルの例を示す。
【図１１】パフォーマンス履歴テーブルの例を示す。
【図１２】セルフサービスポータルのプロビジョニングＧＵＩの例を示す。
【図１３】セルフサービスポータルの構成ＧＵＩの例を示す。
【図１４】管理サーバの管理プログラムのプロセスを示すフローダイヤグラムの例を示す。
【図１５】管理サーバの管理プログラムによって図１４のステップ１４０６０においてプランを作成するプロセスを示すフローダイヤグラムの例を示す。
【図１６】第二実施形態による仮想ストレージテーブルの例を示す。
【発明を実施するための形態】
【００１９】
発明の詳細な説明
【００２０】
以下の本発明の詳細な説明において、本開示の一部を形成する添付の図面について言及するが、これには、本発明を実施し得るための例示的実施形態が、限定ではなく例示として示される。当該図面において、同じ番号は、複数の構図を通じて、実質的に同様の構成要素を記述している。さらに、当該詳細な説明は、下記において説明されおよび図面において例示されるような様々な例示的実施形態を提供する一方で、本発明は、本明細書において説明されおよび例示される実施形態に限定されないが、当業者に既知であるかまたは既知となるような他の実施形態にも拡大適用することができることに留意されたい。本明細書において、「一実施形態」、「この実施形態」、または「これらの実施形態」は、実施形態と関連して説明される特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれるが、本明細書の様々な所でのこれらの語句の出現が必ずしもすべて同じ実施形態を参照するわけではないということを意味する。さらに、以下の詳細な説明において、本発明の完全な理解を提供するために、多数の特定の詳細について説明される。しかしながら、これらの特定の詳細は、本発明を実施するために全てが必要というわけではないことは、当業者に明らかであろう。他の状況において、周知の構造、材料、回路、プロセス、およびインタフェースは、詳細には説明されておらず、および／または、これらは、本発明を不明瞭にしないように、ブロックダイヤグラム形態において例示され得る。
【００２１】
さらに、下記の詳細な説明のいくつかの部分は、コンピュータ内での動作のアルゴリズムおよび記号表現に関連して提示される。これらのアルゴリズム的記述および記号表現は、データ処理分野の当業者が当該分野の他の当業者に自分たちの革新のエッセンスを最も効果的に伝えるために、彼らによって使用される手法である。アルゴリズムは、所望の最終状態または結果を生じる一連の定義されたステップである。本発明において、実施されるステップは、具体的な成果を達成するために具体的な量の物理的操作を必要とする。通常、必ずではないが、これらの量は、保存、転送、結合、比較、およびそれ以外の操作を行うことが可能な電気的または磁気的な信号または命令の形態を取る。これらの信号を、ビット、値、要素、記号、文字、用語、数、命令などとして参照することは、主に共通使用の理由から、場合によって便利であることが判明している。しかしながら、これらおよび同様の用語の全ては、適切な物理的量に関連付けられているべきであり、ならびにこれらの量に適用される単に便利なラベルに過ぎないことは、留意されたい。特に明記されない限り、以下の説明から明らかなように、説明全体を通して、「処理」「コンピュータ計算」「計算」「決定」「表示」などの用語を使用する説明は、コンピュータシステムあるいは、コンピュータシステムのレジスタおよびメモリ内の物理的（電気的）量として表されるデータを操作してコンピュータシステムのメモリもしくはレジスタもしくは他の情報保存場所、トランスミッション、または表示装置内の物理的量として同様に表される他のデータへと変換する他の情報処理装置、のアクションおよび処理を含み得ることは認められたい。
【００２２】
本発明はさらに、本明細書おける操作を実施するための装置にも関する。この機器は、必要とされる目的のために特別に構成してもよく、あるいは、１つまたは複数のコンピュータブログラムによって選択的にアクティブ化もしくは再構成される１つまたは複数の汎用コンピュータを備えていてもよい。そのようなコンピュータブログラムは、非一時的メディアを含むコンピュータ読み込み可能記憶メディア、例えば、これらに限定されるわけではないが、光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、ソリッドステートデバイス、または電子情報を保存するのに好適な他のタイプのメディアなど、に保存することができる。本明細書において提示されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータもしくは他の機器に本質的に関連するものではない。本明細書の教示によるプログラムおよびモジュールは様々な汎用システムを使用することができ、または、所望の方法ステップを実施するためのより専門的な機器を構築するためにも好都合であることが判明し得る。さらに、本発明は、任意の特定のプログラム言語への参照で記述されているわけではない。本明細書において説明されるような本発明の教示を実践するために、様々なプログラム言語を使用することができるということは理解されるであろう。プログラム言語の命令は、１つまたは複数の処理装置、例えば、中央処理ユニット（ＣＰＵ）、プロセッサ、または他の制御装置など、によって実行され得る。
【００２３】
本発明の例示的な実施形態は、下記においてより詳細に説明されるように、仮想ストレージシステムのシン・プロビジョニングのための機器、方法、およびコンピュータプログラムを提供する。
【００２４】
実施形態１
【００２５】
第一実施形態は、管理プログラムが仮想ストレージシステムのシン・プロビジョニングをどのように実現するかを開示する。当該管理プログラムは、インフラストラクチャをモニターし、ボリュームのリソース不足を発見した場合には、プランを作成して、それを管理者に提供する。
【００２６】
図１は、本発明の方法および機器を適用することができるシステムのハードウェア構成の例を示している。システム１０００は、管理サーバ４０００、サーバ１４００、およびストレージシステム３０００を含む。サーバ１４００およびストレージシステム３０００は、データネットワーク１０７０を介して接続されている。当該ネットワークは、通常は、ＷＡＮ（広域ネットワーク）であるが、これに限定されるわけではない。管理サーバ４０００、サーバ１４００、およびストレージシステム３０００は、管理ネットワーク１０５０を介して接続されている。当該ネットワークは、通常は、ＷＡＮであるが、これに限定されるわけではない。図示されている実施形態において、管理ネットワークおよびデータネットワークは別々であるが、本発明はこれに限定されるわけではない。図示されている実施形態において、管理サーバ４０００およびサーバ１４００は別々であるが、本発明はこれらに限定されるわけではない。例えば、任意のサーバが管理サーバをホストすることができる。図示されている実施形態において、サーバ１４００およびストレージシステム３０００は別々であるが、本発明はこれらに限定されるわけではない。例えば、サーバおよびストレージシステムは、１つのシステムへと統合することができる。
【００２７】
図２は、図１のシステム１０００の論理構造を示している。アプリケーション１１１０およびＯＳ（オペレーティングシステム）１２１０は、サーバ１４０１上において実行される。アプリケーション１１２０、１１３０、およびＯＳ１２２０、１２３０は、ハイパーバイザ１３１０上で実行される。ハイパーバイザ１３１０は、サーバ１４０２上で実行される。サーバ１４０１は、ボリューム１０１１１を使用する。サーバ１４０２は、ボリューム１０１１２および１０１１３を使用する。ボリューム１０１１１、１０１１２、および１０１１３は、仮想ストレージシステムＡ（２０００）からプロビジョニングされる。ストレージシステム１（３０００）は、物理ストレージシステムである。
【００２８】
図３は、仮想ストレージシステム２０００の例を示している。ボリューム１０１１１および１０１１２は、ストレージプール１０１９１からプロビジョニングされる。ボリューム１０１１３は、ストレージプール１０１９２からプロビジョニングされる。ストレージプール１０１９１および１０１９２は、仮想ストレージシステム２０００上に作成される。仮想ストレージシステム２０００は、ポートリソース１０２０１、１０２０２、１０２０３、１０２０４、１０２０５、１０２０６、１０２０７、および１０２０８、キャッシュリソース１０２２１および１０２２２、ならびに容量リソース１０２４１、１０２４２、１０２４３、および１０２４４を有する。これらは、他のタイプの仮想要素と呼ばれ、すなわち、あるタイプの仮想要素としての仮想ボリューム以外の仮想要素である。１０２０２などの実線のリソースは使用中である。１０２０１などの点線のリソースは非使用中である。
【００２９】
図４は物理ストレージシステム３０００の例を示している。物理ストレージシステム３０００は、ポートリソース９０２１、９０２２、９０２３、９０２４、９０２５、９０２６、９０２７、および９０２８、キャッシュリソース９０４１および９０４２、ならびに容量リソース９０６１、９０６２、９０６３、および９０６４を含む。容量リソースは、通常、アレイグループであるが、これに限定されるわけではない。
【００３０】
図５は、図１のシステム１０００における管理サーバ４０００の例を示している。管理インタフェース４０１０は、管理ネットワーク１０５０のインタフェースである。インプットおよびアウトプットデバイス４０３０は、モニター、キーボード、およびマウスなどのユーザインタフェースである。ローカルディスク４０４０には、管理プログラム４１００、カタログテーブル６０００、およびメディアテンプレートテーブル７０００が保存されている。管理プログラム４１００は、メモリ４０５０にロードされ、プロセッサ４０２０によって実行される。管理プログラム４１００の手順は、図１４および図１５を使用して後ほど開示される。キャッシュテーブル６０００（図６）およびメディアテンプレートテーブル７０００（図７）は、メモリ４０５０にロードされ、管理プログラム４１００によって使用される。メモリ４０５０には、アプリケーションテーブル８０００（図８）、物理ストレージテーブル９０００（図９）、仮想ストレージテーブル１００００（図１０）、およびパフォーマンス履歴テーブル１１０００（図１１）が格納される。
【００３１】
図６は、カタログテーブル６０００の例を示している。このカタログは、セルフサービスポータルを使用することによって管理者がＩＴリソースをプロビジョニングするときに参照される。このテーブルは、ローカルディスク４０４０から管理サーバ４０００のメモリ４０５０へロードされる。列６００５は、カタログの識別番号を示している。列６０１０は、カタログの名前を示しいている。列６０２０および６０３０は、各カタログにとっての必要なＶＭリソースの仕様である。列６０２０は、仮想マシン（ＶＭ）のタイプを示している。列６０３０は、ＶＭの数を示している。列６０４０から６１１０は、各カタログのためのストレージリソースの仕様である。列６０４０は、記憶メディアのタイプを示している。実際のメディアは、メディアテンプレートテーブル７０００を検索することによって決定される。列６０５０、６０６０、および６０７０は、各カタログに対して最終的に割り当てられるリソースである。列６０５０は、各カタログのストレージポートの全帯域幅を示している。列６０６０は、各カタログのストレージキャッシュの全容量を示している。列６０７０は、各カタログのストレージボリュームの全容量を示している。列６０８０は、各カタログの最小キャッシュヒット率を示している。各アプリケーションは、このキャッシュヒット率を超えなければならない。列６０９０、６１００、および６１１０は、各カタログのために開始時に割り当てられるリソースである。列６０９０は、各カタログのストレージポートの初期帯域幅を示している。列６１００は、各カタログのストレージキャッシュの初期容量を示している。列６１１０は、各カタログのストレージボリュームの初期容量を示している。
【００３２】
各行（６２１０から６２６０まで）は、各カタログにとっての必要な仕様を示している。例えば、行６２４０は、ウェブアプリケーションのカタログを示している。このカタログは、３つのタイプのＶＭ：通常のＶＭ６２４２の２つのＶＭ、１つの高メモリＶＭ６２４４、および１つの高ＣＰＵＶＭ６２４６、合計４つのＶＭを有する。例えば、「高メモリ」ＶＭ６２４４は、「中」ストレージを必要とする。このボリュームの完全な仕様は：ポート＝３２Ｇｂｐｓ、キャッシュ＝３２ＧＢ、容量＝５０ＴＢ、および最小キャッシュヒット率は８０％である。このボリュームに対する初期割り当ては：ポート＝１６Ｇｂｐｓ、キャッシュ＝８ＧＢ、容量＝５ＴＢである。
【００３３】
図７は、メディアテンプレートテーブル７０００の例を示している。このテンプレートは、カタログテーブル６０００における各メディアタイプ６０４０のリソース構成を説明している。このテーブルは、ローカルディスク４０４０から、管理サーバ４０００のメモリ４０５０にロードされる。行７１１０は、メディアタイプ６０４０を示している。行７１２０は、メディアを示している。各列（７０１０から７０４０まで）は、各メディアタイプのリソース構成を示している。例えば、行７０１０は、「通常の」メディアの構成を示している。このタイプのメディアは、ＳＡＴＡ  ＨＤＤからなる。
【００３４】
図８は、アプリケーションテーブル８０００の例を示している。このテーブルは、各アプリケーションのインスタンスを示している。このテーブルは、管理プログラム４１００によってメモリ４０５０に作成される。列８０１０は、アプリケーション名を示している。列８０２０は、ＶＭ名を示している。列８０３０は、ストレージシステムの識別番号を示している。列８０４０は、当該ボリュームの識別番号を示している。各行（８１１０から８１８０まで）は、各アプリケーションのボリュームを示している。例えば、行８１１０は、ストレージシステム１０００１のボリューム０１が仮想マシン「Ｍａｉｌ−Ａ−１」によって使用され、この仮想マシンがアプリケーション「Ｍａｉｌ−Ａ」の一部であることを示している。
【００３５】
図９は、物理ストレージテーブル９０００の例を示している。このテーブルは、物理ストレージシステムのリソース構成を説明している。このテーブルは、管理プログラム４１００によってメモリ４０５０に作成される。列９０１０は、ストレージシステムの識別番号を示している。列９０２０は、ストレージポートの識別番号を示している。列９０３０は、ストレージポートの帯域幅を示している。列９０４０は、ストレージキャッシュの識別番号を示している。列９０５０は、キャッシュの容量を示している。列９０６０は、アレイグループの識別番号を示している。列９０７０は、アレイグループのメディアタイプを示している。列９０８０は、アレイグループの容量を示している。各行（９１１０から９１８０まで）は、物理ストレージシステムのリソース構成を示している。例えば、行９１１０、行９１２０、行９１３０、および行９１４０は、４つのポート（Ａ、Ｂ、Ｃ、およびＤ）および４つのアレイグループ（ＡＧ−００１、ＡＧ−００２、ＡＧ−００３、およびＡＧ−００４）は、キャッシュ「Ｃ−０１」を共有する。
【００３６】
図１０は、第一実施形態による仮想ストレージテーブル１００００の例を示している。このテーブルは、管理プログラム４１００によってメモリ４０５０に作成される。行１０１１０は、ボリュームの識別番号を示している。行１０１２０は、メディアタイプを示している。行１０１３０は、割り当てられた帯域幅を示している。このボリュームは、最大限でこの帯域幅を使用することができる。行１０１４０は、使用されている帯域幅を示している。この値は、このボリュームの現在の帯域幅を示している。行１０１５０は、割り当てられたキャッシュを示している。このボリュームは、最大限でこのキャッシュを使用することができる。行１０１６０は、使用されているキャッシュを示している。この値は、このボリュームの、現在使用されているキャッシュを示している。行１０１７０は、割り当てられた容量を示している。このボリュームは、最大限でこの容量を使用することができる。行１０１８０は、使用されている容量を示している。この値は、このボリュームの現在の容量を示している。行１０１９０は、ストレージプールの識別番号を示している。行１０１９５は、仮想ストレージシステムの識別番号を示している。行１０２００は、ストレージプールに構成されたポートと当該構成されポートのそれぞれのための帯域幅を示している。例えば、８ＧｂｐｓのポートＡ、Ｂ、Ｅ、およびＦがプールＰ−０１に構成されるが、これらのポートのすべてが、プロビジョニングされるわけではない。行１０２１０は、プロビジョニングされたポートを示している。例えば、８ＧｂｐｓのポートＥおよびＦがプロビジョニングされている。行１０２２０は、ストレージプールに構成されたキャッシュを示している。例えば、１６０ＧＢのＣ−０１および１２８ＧＢのＣ−０２がプールＰ−０１に構成されるが、キャッシュリソースのすべてがプロビジョニングされるわけではない。行１０２３０は、プロビジョニングされたキャッシュを示している。例えば、１２８ＧＢのＣ−０２がプロビジョニングされている。行１０２４０は、ストレージプールに構成された容量を示している。例えば、３００ＴＢのＡＧ−００２および３００ＴＢのＡＧ−１０２がプールＰ−０１に構成されるが、容量リソースのすべてがプロビジョニングされるわけではない。行１０２５０は、プロビジョニングされた容量を示している。例えば、２００ＴＢのＡＧ−１０２がプロビジョニングされている。行１０２６０は、物理ストレージシステムの識別番号を示している。
【００３７】
各列（１００１０から１００８０まで）は、各ボリュームのリソース構成を示している。例えば、列１００１０は、ボリューム０１のリソース構成を示している。ボリューム０１のメディアタイプはＳＡＳである。ボリューム０１における割り当てられた帯域幅は４Ｇｂｐｓであり、使用されている帯域幅は２Ｇｂｐｓである。ボリューム０１における割り当てられたキャッシュは６４ＧＢであり、使用されているキャッシュは１６ＧＢである。ボリューム０１における割り当てられた容量は８０ＴＢであり、使用されている容量は４２ＴＢである。ボリューム０１は、ストレージプールＰ−０１を使用する。
【００３８】
図１１は、パフォーマンス履歴テーブル１１０００の例を示している。列１１０１０は、ボリュームの識別番号を示している。列１１０２０は、各エントリの識別番号（履歴）を示しているが、これに限定されるわけではない。例えば、これは、各記録のタイムスタンプであってもよい。列１１０３０は、このボリュームにおける使用されている帯域幅を示している。列１１０４０は、このボリュームのキャッシュヒット率を示している。列１１０５０は、このボリュームにおける使用される容量を示している。各行（行群１１１００における行１１１１０から１１１４０まで）は、このボリュームの特定の期間でのリソース利用率を示している。例えば、行１１１２０は、ボリューム０１が１．８Ｇｂｐｓの帯域幅および４０ＴＢの容量を使用し、キャッシュヒット率が期間「１」において８８％であることを示している。管理プログラム４１００が、フローダイヤグラム１４０００（図１４）のステップ１４０３０においてモニタリング結果を得るとき、新しい行が追加されるが、本発明はこれに限定されるわけではない。例えば、新しい行が追加されるとき、最も古いエントリを削除することによりメモリ空間を確保することができる。
【００３９】
図１２は、セルフサービスポータルのプロビジョニングＧＵＩ（グラフィックユーザインタフェース）１２０００−Ａの例を示している。このＧＵＩは、ストレージリソースをプロビジョニングするために管理者によって使用される。管理者は、アプリケーションのタイプ１２０１０、例えば、「Ｍａｉｌ−５００ｂｏｘ」など、を選択する。カタログテーブル６０００のカタログ名６０１０に基づいて、候補が表示される。次いで、管理者は、アプリケーション名１２０２０、例えば、「Ｍａｉｌ−Ａ」など、を入力する。次いで、管理者は、アプリケーションのサイズ１２０３０を選択する。例えば、メールアプリケーションの単位は５００ボックスである。したがって、管理者は、５００の倍数を選択することができる。「キャンセル」ボタン１２１２０が押された場合、管理プログラム４１００は、プロビジョニングプロセスを中止する。「確認」ボタン１２１１０が押された場合、管理プログラム４１００は、確認ＧＵＩ１２０００−Ｂを表示する。
【００４０】
図１３は、セルフサービスポータルの確認ＧＵＩ１２０００−Ｂの例を示している。このＧＵＩは、アプリケーション管理者がセルフサービスポータルのプロビジョニングＧＵＩ１２０００−Ａの「確認」ボタン１２１１０を押したときに表示される。フィールド１３０１０は、アプリケーションのタイプである。フィールド１３０２０はアプリケーション名である。フィールド１３０３０は、アプリケーションのサイズである。フィールド１３２００は、プロビジョニングされるＶＭの情報である。列１３２５０は、ＶＭの名前である。この名前は、管理プログラム４１００によってアプリケーション名１３０２０から作成される。列１３２６０は、ＣＰＵの数およびタイプである。列１３２７０は、メモリの容量である。列１３２８０は、メディアの容量およびタイプである。各行（１３２１０から１３２４０まで）は、各ＶＭの構成を示している。例えば、行１３２１０は、Ｍａｉｌ−Ａ−１の構成を示している。このＶＭは、１６個の高ＣＰＵ、８ＧＢのメモリ、および８０ＴＢのＳＡＳメディアを使用する。「キャンセル」ボタン１３１２０が押された場合、管理プログラム４１００は、プロビジョニングプロセスを中止する。「戻る」ボタン１３１３０が押されると、管理プログラム４１００は、セルフサービスポータルのプロビジョニングＧＵＩ１２０００ーＡを再び表示する。「ＯＫ」ボタン１３１１０が押された場合、管理プログラム４１００は、以下の手順を実行する。最初に、当該プログラムは、リクエストされたボリュームをホストすることができる仮想ストレージシステム上の任意のストレージプールが存在するか否かを仮想ストレージテーブル１００００を使用してチェックする。管理サーバ４１００ が、リクエストされたボリュームをプロビジョニングすることができない場合、管理プログラム４１００は、エラーを管理者に通知する。管理サーバ４１００ が、任意の仮想ストレージシステム上のリクエストされたボリュームをプロビジョニングすることができる場合、それは、選択された仮想ストレージシステム上のストレージリソースをプロビジョニングする。当該プログラムは、仮想ストレージテーブル１００００に新しい行を追加する。
【００４１】
図１４は、管理サーバ４０００の管理プログラム４１００のプロセスを示すフローダイヤグラムの例を示している。プログラムは、ステップ１４０１０から開始する。初期化するためのステップ１４０２０において、管理プログラム４１００は、アプリケーションテーブル８０００、物理ストレージテーブル９０００、仮想ストレージテーブル１００００、およびパフォーマンス履歴テーブル１１０００をメモリ４０５０に作成する。管理プログラム４１００は、カタログテーブル６０００およびメディアテンプレートテーブル７０００をローカルディスク４０４０から管理サーバ４１００のメモリ４０５０にロードする。次いで、当該プログラムは、閾値を設定する。例えば、当該閾値は、９５％に設定されているが、当該値はこれに限定されるわけではない。例えば、帯域幅、容量、およびキャッシュに対して、異なる閾値を設定することができる。この値は、管理サーバ４０００のメモリ４０５０に格納される。次いで、管理者によって仮想ストレージシステムが作成される。管理者は、仮想ストレージシステムのポート、キャッシュ、および容量ならびにそのプールを構成する。この結果は、仮想ストレージテーブル１００００に反映される。
【００４２】
ステップ１４０３０において、プログラムは、各ボリュームからモニタリング結果を得て、パフォーマンス履歴テーブル１１０００を更新する。新しい物理ストレージシステムが追加される場合、管理プログラム４１００は、物理ストレージテーブル９０００を更新する。セルフサービスポータルＧＵＩ１２０００によって新しいアプリケーションがデプロイされる場合、管理プログラム４１００は、アプリケーションテーブル８０００を更新する。ステップ１４０４０において、当該プログラムは、モニターされた値が閾値を超えるか否かを判断する。アプリケーションがデプロイされる時に、モニターされる値が設定された閾値を超える場合、当該プログラムはステップ１４０６０へと進み、そうでない場合は、ステップ１４０５０に進む。
【００４３】
ポートおよび容量は、以下のように判断される。パフォーマンス履歴テーブル１１０００の最新のエントリのスループット１１０３０および使用される容量１１０５０は、仮想ストレージテーブル１００００における使用される帯域幅１０１４０および使用される容量１０１８０に反映される。例えば、この結果は、仮想ストレージテーブル１００００の一部となる。プールＰ−０１の使用される容量の合計は１９２ＴＢである。この値は、プロビジョニングされる容量２００ＴＢの９５％を超える。したがって、当該プログラムはステップ１４０６０へと進む。キャッシュに関しては、準備される全ての容量が消費される。したがって、パフォーマンス履歴テーブル１１０００におけるキャッシュヒット率１１０４０が判断のために使用される。例えば、キャッシュヒット率１１０４０の実際の値がキャッシュヒット率の目標値６０８０を下回る場合、当該プログラムはステップ１４０６０へと進むが、本発明はこれに限定されるわけではない。ステップ１４０５０において、当該プログラムはしばらく待機し、次いで、ステップ１４０３０へと進む。
【００４４】
プランを作成するためのステップ１４０６０において、リソース不足により、プログラムはリソース追加プランを作成しようと試みる。管理プログラム４１００は、閾値を超えているリソースに注目する。リソースタイプは、ポート、キャッシュ、または容量のうちの１つである。割り当てられた全てのリソースが使用されている場合、管理プログラム４１００はこれ以上リソースを割り当てることができないため、プログラムは、ステップ１４０７０へと進む。例えば、ボリューム０１のキャッシュリソースの場合、６４ＧＢのキャッシュが割り当てられている。６４ＧＢのキャッシュは既に使用されていると推測される。この場合、管理プログラム４１００は、追加のキャッシュを案分することができない。すなわち、仮想ストレージシステムに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ１４０７０へと進む。例えば、プールＰ−０１のキャッシュリソースの場合、２８８ＧＢのキャッシュが構成されている。２８８ＧＢのキャッシュは既にプロビジョニングされていると推測される。この場合、管理プログラム４１００は、追加のキャッシュをプロビジョニングすることができない。その一方で、リソースが別の方法で利用可能な場合、管理プログラム４１００は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この説明において、当該ある特定の量は、キャッシュ、ポート、およびボリュームの容量のために割り当てられたリソースの１０％であるが、別のパーセンテージを選択することもできる。例えば、ボリューム０１における割り当てられたキャッシュは６４ＧＢであり、使用されているキャッシュは１６ＧＢである。キャッシュが不足する場合、６．４ＧＢのキャッシュが追加されるが、本発明はこれに限定されるわけではない。有効なプランが作成された場合、プログラムはステップ１４０８０へと進み；そうでなければ、ステップ１４０７０へと進む。警告のためのステップ１４０７０において、管理プログラム４１００は有効なプランをもはや作成することができないため、管理者に対して警告を通知する。次いで、プログラムは、ステップ１４１２０において終了する。
【００４５】
実行を確認するためのステップ１４０８０において、プログラムは、作成されたプランを管理者に提供する。管理者は、直ちの実行か、または予定された実行かを選択することができる。管理者は、必ずしも当該プランを実行しなければならないわけではない。予定された実行が指定された場合、プログラムは、スケジューラに当該プランを登録する。アプリケーション管理者が、提供されたプランを実行したい場合、プログラムはステップ１４０９０へと進み；そうでなければ１４０６０へと進む。
【００４６】
ステップ１４０９０において、プログラムは、作成されたプランを実行する。実行されるプランに基づいて、構成が変更されるであろう。したがって、仮想ストレージテーブル１００００は、ステップ１４１００において更新される。ステップ１４１１０において、プログラムは、ユーザによる終了命令が存在するか否かをチェックする。終了命令が存在する場合、プログラムはステップ１４１２０において終了し；そうでなければ待機するためにステップ１４０５０へと進む。
【００４７】
図１５は、管理サーバ４０００の管理プログラム４１００によって図１４のステップ１４０６０においてプランを作成するためのプロセスを示すフローダイヤグラムの例を示している。プログラムは、ステップ１５０１０から開始する。ステップ１５０２０において、管理プログラム４１００は、容量の閾値が超えられているか否かをチェックする。容量の閾値が超えられている場合、プログラムはステップ１５０３０へと進み；そうでなければ、ステップ１５０４０へと進む。ステップ１５０３０において、管理プログラム４１００は、ボリュームに容量リソースを追加しようと試みる。割り当てられた容量全てが使用されている場合、管理プログラム４１００はこのボリュームにこれ以上容量を割り当てることができないため、プログラムは、ステップ１４０７０へと進む。例えば、ボリューム０１の容量リソースの場合、８０ＴＢの容量が割り当てられている。８０ＴＢの容量は既に使用されていると推測される。この場合、管理プログラム４１００は、追加の容量を案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムは図１４のステップ１４０７０へと進む。例えば、プールＰ−０１のアレイグループリソースの場合、３００ＴＢのＡＧ−００２および３００ＴＢのＡＧ−１０２が構成されている。６００ＴＢの容量は既にプロビジョニングされていると推測される。この場合、管理プログラム４１００は、追加のアレイグループをプロビジョニングすることができない。そうでなければ、管理プログラム４１００は、ある特定の量のリソースをプロビジョニングし、それをボリュームに提供する。この量は、割り当てられたリソースの１０％である。例えば、ボリューム０１における割り当てられた容量は８０ＴＢであり、使用されている容量は１６ＴＢ である。容量が不足する場合、８ＧＢの容量が追加されるが、本発明はこれに限定されるわけではない。８ＴＢのストレージ容量を、プールＰ−０１から割り当てることができない場合、プログラムはステップ１４０７０へと進む。
【００４８】
管理プログラム４１００が容量リソースを割り当てることができる場合、プログラムはステップ１５０４０へと進む。ステップ１５０４０において、管理プログラム４１００は、キャッシュヒット率の閾値が超えられているか否かをチェックする。キャッシュヒット率の閾値が超えられている場合、プログラムはステップ１５０５０へと進み；そうでなければ、ステップ１５０６０へと進む。
【００４９】
ステップ１５０５０において、管理プログラム４１００は、当該ボリュームにキャッシュリソースを追加しようと試みる。割り当てられたキャッシュ全てが使用されている場合、管理プログラム４１００はこのボリュームにこれ以上キャッシュを割り当てることができないため、プログラムは、図１４のステップ１４０７０へと進む。例えば、ボリューム０１のキャッシュリソースの場合、６４ＧＢのキャッシュが割り当てられている。６４ＧＢのキャッシュは既に使用されていると推測される。この場合、管理プログラム４１００は、追加のキャッシュを案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムは図１４のステップ１４０７０へと進む。例えば、プールＰ−０１のキャッシュリソースの場合、１６０ＧＢのＣ−０１および１２８ＧＢのＣ−０２が構成されている。２８８ＧＢのキャッシュは既にプロビジョニングされていると推測される。この場合、管理プログラム４１００は、追加のキャッシュをプロビジョニングすることができない。そうでなければ、管理プログラム４１００は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの１０％である。例えば、ボリューム０１における割り当てられたキャッシュは６４ＧＢであり、使用されたキャッシュは１６ＧＢである。キャッシュが不足する場合、６．４ＧＢのキャッシュが追加されるが、本発明はこれに限定されるわけではない。６．４ＧＢのキャッシュをプールＰ−０１から割り当てることができない場合、プログラムは、図１４のステップ１４０７０へと進む。管理プログラム４１００がキャッシュリソースを割り当てることができる場合、プログラムはステップ１５０６０へと進む。
【００５０】
ステップ１５０６０において、管理プログラム４１００は、ポート帯域幅の閾値が超えられているか否かをチェックする。ポート帯域幅の閾値が超えられている場合、プログラムはステップ１５０７０へと進み；そうでなければ、ステップ１５１００へと進んで、プロセスは終了する。
【００５１】
ステップ１５０７０において、管理プログラム４１００は、当該ボリュームにポートリソースを追加しようと試みる。割り当てられたポート帯域幅全てが使用されている場合、管理プログラム４１００はこのボリュームにこれ以上ポート帯域幅を割り当てることができないため、プログラムは、ステップ１４０７０へと進む。例えば、ボリューム０１のポート帯域幅リソースの場合、４Ｇｂｐｓのポート帯域幅が割り当てられている。４Ｇｂｐｓのポート帯域幅は既に使用されていると推測される。この場合、管理プログラム４１００は、追加のポート帯域幅を案分することができない。そうでなければ、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ１４０７０へと進む。例えば、プールＰ−０１のポート帯域幅リソースの場合、８ＧｂｐｓのポートＡ、８ＧｂｐｓのポートＢ、８ＧｂｐｓのポートＣ、および８ＧｂｐｓのポートＤが構成されている。３２Ｇｂｐｓのポート帯域幅は既にプロビジョニングされていると推測される。この場合、管理プログラム４１００は、追加のポート帯域幅をプロビジョニングすることができない。そうでなければ、管理プログラム４１００は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの１０％である。例えば、ボリューム０１における割り当てられたポート帯域幅は４Ｇｂｐｓであり、使用されている帯域幅は２Ｇｂｐｓである。ポート帯域幅が不足する場合、０．４Ｇｂｐｓのポート帯域幅が追加されるが、本発明はこれに限定されるわけではない。０．４ＧＢのポート帯域幅をプールＰ−０１から割り当てることができない場合、プログラムは、ステップ１４０７０へと進む。管理プログラム４１００がポート帯域幅リソースを割り当てることができる場合、プログラムはステップ１５１００へと進む。
【００５２】
この実施形態において、管理プログラムは、各ボリュームのリソース使用量をモニターする。管理プログラムは、インフラストラクチャをモニターし、ボリュームのリソース不足を発見した場合には、プランを作成して、それを管理者に提供する。これにより、物理構成を意識しない仮想ストレージシステムが実現される。この技術とパフォーマンスモニタリングソフトウェアによって管理される履歴データとを組み合わせることにより、仮想ストレージシステムのシン・プロビジョニングが実現される。この実施形態の目的は、ブロックストレージシステムであるが、これに限定されるわけではない。例えば、目的のストレージシステムが、ＮＦＳ／ＣＩＦＳなどのファイルストレージである場合、本発明のアプローチを適用することが可能である。
【００５３】
実施形態２
【００５４】
実施形態１において、物理ストレージシステムと仮想ストレージシステムの比率は１：１であるが、本発明はこれに限定されるわけではない。例えば、物理ストレージシステムと仮想ストレージシステムの比率がＮ：Ｍである場合において、本発明を適用することは可能である。そのような場合、１つの仮想ストレージテーブルは、１つの物理ストレージシステムのアレイ群からなり得るが、本発明はこれに限定されるわけではない。
【００５５】
図１６は、第二実施形態による仮想ストレージテーブル１０００５の例を示している。このテーブルは、図１０において示された第一実施形態の仮想ストレージテーブル１００００とほとんど同じである。相違点のみを説明する。図１６において、当該システムは、３つの物理ストレージシステム１１００１、１１００２、１１００３および２つの仮想ストレージシステム１０００１、１０００２を有する（図１０のそれぞれ１つの代わりに）。仮想ストレージシステム１０００１は、２つの物理ストレージシステム１１００１および１１００２からなる。この場合、２つの物理ストレージシステムからのリソースは、仮想ストレージシステム１０００１における１つのストレージプールＰ−０１に統合される。したがって、１つの仮想ボリュームは、複数の物理ストレージシステムのリソースを利用することができる。仮想ストレージシステム１０００２は、１つの物理ストレージシステム１１００３からなる。
【００５６】
図１５を参照し、第二実施形態による管理サーバ４０００の管理プログラム４１００によって図１４のステップ１４０６０においてプランを作成するためのプロセスを適用すると、手順は、第一実施形態の手順とほとんど同じである。しかしながら、第二実施形態では、ストレージプールＰ−０１は、複数の物理ストレージシステム１１００１および１１００２から構成される。したがって、管理プログラム４１００は、リソース間の接続性を考慮すべきである。第一実施形態との相違点のみを説明する。
【００５７】
ステップ１５０３０において、管理プログラム４１００は、ストレージプールに容量リソースを追加しようと試みる。割り当てられる容量全てが使用されている場合、管理プログラム４１００はこのボリュームにこれ以上容量を割り当てることができないため、プログラムは、ステップ１４０７０へと進む。例えば、ボリューム１２の容量リソースの場合、１５０ＴＢの容量が割り当てられている。１５０ＴＢの容量は既に使用されていると推測される。この場合、管理プログラム４１００は、追加の容量を案分することができない。すなわち、仮想ストレージシステムに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ１４０７０へと進む。例えば、プールＰ−０１アレイ群リソースの場合、ストレージシステム１１００１における３００ＴＢのＡＧ−００２、３００ＴＢのＡＧ−１０２、ならびにストレージシステム１１００２における２００ＴＢのＡＧ−００１および５０ＴＢのＡＧ−１０１が、図１６に見られるように構成されている。しかしながら、ボリューム１２が閾値を超える場合、ボリューム１２が物理ストレージシステム１１００２のリソースを使用するので、すべてのアレイ群を使用できるわけではない。したがって、管理プログラム４１００は、ストレージシステム１１００２のＡＧ−００１またはＡＧ１０１からしかリソースを割り当てることができない。２００ＴＢのＡＧ−００１および５０ＴＢのＡＧ−１０１は既にプロビジョニングされていると推測される。この場合、管理プログラム４１００は、追加のアレイグループをプロビジョニングすることができない。そうでなければ、管理プログラム４１００は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの１０％である。例えば、ボリューム１２における割り当てられた容量は１５０ＴＢであり、使用されている容量は５０ＴＢである。容量が不足する場合、１５ＴＢの容量が追加されるが、本発明はこれに限定されるわけではない。１５ＴＢのストレージ容量を、プールＰ−０１から割り当てることができない場合、プログラムはステップ１４０７０へと進む。  管理プログラム４１００が容量リソースを割り当てることができる場合、プログラムはステップ１５０４０へと進む。
【００５８】
ステップ１５０４０において、管理プログラム４１００は、キャッシュヒット率の閾値が超えられているか否かをチェックする。容量 の閾値が超えられている場合、プログラムはステップ１５０５０へと進み；そうでなければ、ステップ１５０６０へと進む。
【００５９】
ステップ１５０５０において、管理プログラム４１００は、ストレージプールにキャッシュリソースを追加しようと試みる。割り当てられたキャッシュ全てが使用されている場合、管理プログラム４１００はこのボリュームにこれ以上キャッシュを割り当てることができないため、プログラムは、ステップ１４０７０へと進む。例えば、ボリューム１２のキャッシュリソースの場合、１２８ＧＢのキャッシュが割り当てられている。１２８ＧＢのキャッシュは既に使用されていると推測される。この場合、管理プログラム４１００は、追加のキャッシュを案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ１４０７０へと進む。例えば、プールＰ−０１のキャッシュリソースの場合、ストレージシステム１１００１の１６０ＧＢのＣ−０１および１２８ＧＢのＣ−０２ならびにストレージシステム１１００２の１２８ＧＢのＣ−０１が構成される。しかしながら、ボリューム１２が閾値を超える場合、ボリューム１２が物理ストレージシステム１１００２のリソースを使用するので、すべてのキャッシュを使用できるわけではない。したがって、管理プログラム４１００は、ストレージシステム１１００２のＣ−０１からしかリソースを割り当てることができない。１２８ＧＢのＣ−０１は既にプロビジョニングされていると推測される。この場合、管理プログラム４１００は、追加のキャッシュをプロビジョニングすることができない。そうでなければ、管理プログラム４１００は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの１０％である。例えば、ボリューム１２における割り当てられたキャッシュは１２８ＧＢであり、使用されているキャッシュは９６ＧＢである。キャッシュが不足する場合、１２．８ＧＢのキャッシュが追加されるが、本発明はこれに限定されるわけではない。１２．８ＧＢのキャッシュをプールＰ−０１から割り当てることができない場合、プログラムは、ステップ１４０７０へと進む。管理プログラム４１００がキャッシュリソースを割り当てることができる場合、プログラムはステップ１５０６０へと進む。
【００６０】
ステップ１５０６０において、管理プログラム４１００は、ポート帯域幅の閾値が超えられているか否かをチェックする。ポート帯域幅の閾値が超えられている場合、プログラムはステップ１５０７０へと進み；そうでなければ、ステップ１５１００へと進んで、プロセスは終了する。  
【００６１】
ステップ１５０７０において、管理プログラム４１００は、ボリュームにポートリソースを追加しようと試みる。割り当てられるポート帯域幅全てが使用されている場合、管理プログラム４１００はこのボリュームにこれ以上ポート帯域幅を割り当てることができないため、プログラムは、ステップ１４０７０へと進む。例えば、ボリューム１２のポート帯域幅リソースの場合、８Ｇｂｐｓのポート帯域幅が割り当てられている。８Ｇｂｐｓのポート帯域幅は既に使用されていると推測される。この場合、管理プログラム４１００は、追加のポート帯域幅を案分することができない。すなわち、仮想ストレージシステムのストレージプールに構成された全てのリソースがプロビジョニングされている場合、管理サーバは追加のリソースをプロビジョニングすることができないため、プログラムはステップ１４０７０へと進む。例えば、仮想ストレージシステム１０００１のプールＰ−０１のポート帯域幅リソースの場合、ストレージシステム１１００１の８ＧｂｐｓのポートＡ、８ＧｂｐｓのポートＢ、８ＧｂｐｓのポートＥ、および８ＧｂｐｓのポートＦ、ならびにストレージシステム１１００２の８ＧｂｐｓのポートＣおよび８ＧｂｐｓのポートＤが構成される。しかしながら、ボリューム１２が閾値を超える場合、ボリューム１２が物理ストレージシステム１１００２のリソースを使用するので、すべてのポート帯域幅を使用できるわけではない。したがって、管理プログラム４１００は、ストレージシステム１１００２の８ＧｂｐｓのポートＣおよび８ＧｂｐｓのポートＤからしかリソースを割り当てることができない。ストレージシステム１１００２の８ＧｂｐｓのポートＣおよび８ＧｂｐｓのポートＤは既にプロビジョニングされていると推測される。この場合、管理プログラム４１００は、追加のキャッシュをプロビジョニングすることができない。そうでなければ、管理プログラム４１００は、ある特定の量のリソースをプロビジョニングして、それをボリュームに提供する。この量は、割り当てられたリソースの１０％である。例えば、ボリューム１２における割り当てられたポート帯域幅は８Ｇｂｐｓであり、使用されているポート帯域幅は６Ｇｂｐｓである。ポート帯域幅が不足する場合、０．８Ｇｂｐｓのポート帯域幅が追加されるが、本発明はこれに限定されるわけではない。０．８ＧＢのポート帯域幅をプールＰ−０１から割り当てることができない場合、プログラムは、ステップ１４０７０へと進む。管理プログラム４１００がポート帯域幅を割り当てることができる場合、プログラムはステップ１５１００へと進み、プロセスは終了する。
【００６２】
第二実施形態は、物理ストレージシステムの接続性を考慮することにより、たとえストレージプールが複数の物理ストレージシステムから構成される場合でも、仮想ストレージシステムのシン・プロビジョニングを実現する。
【００６３】
当然のことながら、図１に示されるシステム構成は、純粋に、本発明を実践することができる情報システムの例示であり、本発明は、特定のハードウェア構成に限定されない。本発明を実践するコンピュータおよび保存システムは、上記において説明した本発明を実践するために使用されるモジュール、プログラム、およびデータ構造体を保存および読み出しすることができる、既存のＩ／Ｏ装置（例えば、ＣＤおよびＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブなど）も有し得る。これらのモジュール、プログラム、およびデータ構造体は、そのようなコンピュータ読み込み可能メディアにおいてエンコードすることができる。例えば、本発明のデータ構造体は、本発明において使用されるプログラムが保存されている１つまたは複数のコンピュータ読み込み可能メディアから独立したコンピュータ読み込み可能メディアに保存することができる。当該システムの構成要素は、デジタルデータ通信の任意の形態もしくはメディア（例えば、通信ネットワークなど）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネットなど）、ワイヤレスネットワーク、ストレージエリアネットワークなどが挙げられる。
【００６４】
説明では、本発明の完全な理解を提供するために、説明目的において多数の詳細について述べられている。しかしながら、本発明を実践するためにこれらの特定の詳細のすべてが必要というわけではないことは、当業者には明らかであろう。本発明はプロセスとして説明され、これは、通常、フローチャート、構造図、またはブロックダイヤグラムとして表されることにも留意されたい。フローチャートは、逐次プロセスとして作動を説明し得るが、作動の多くは、平行してもしくは同時に実施することができる。さらに、作動の順序は、再配列してもよい。
【００６５】
当技術分野において既知であるように、上記において説明される作動は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアとによるいくつかの組み合わせによって実施することができる。本発明の実施形態の様々な態様は、回路および論理デバイス（ハードウェア）を使用して実践することができ、その一方で、他の態様は、機械読み込み可能メディアに保存された命令（ソフトウェア）を使用して実践することができ、プロセッサによって実行される場合、それらは、当該プロセッサに本発明の実施形態を実行するための方法を実施させるであろう。さらに、本発明のいくつかの実施形態は、ハードウェアにおいて単独で実行することができ、その一方で、他の実施形態は、ソフトウェアにおいて単独で実行することができる。その上、説明される様々な機能は、単一のユニットにおいて実施することができ、あるいは、様々な方法において多数の構成要素にわたって展開することもできる。当該方法は、ソフトウェアによって実施される場合、コンピュータ読み込み可能メディアに保存された命令に基づいて、汎用コンピュータなどのプロセッサによって実行することができる。所望であれば、当該命令は、圧縮および／または暗号化された形式において当該メディアに保存することができる。
【００６６】
上記から、本発明が、仮想ストレージシステムのシン・プロビジョニングのための、方法、機器、およびコンピュータ読み込み可能メディアに保存されたプログラムを提供することは明らかであろう。さらに、本明細書において特定の実施形態について例示し説明しているが、当業者は、当該開示された特定の実施形態を、同じ目的を達成すると思われる任意の構成で代替させることができることは理解されたい。本開示は、本発明のあらゆる適応例または変形例を包含するものであり、以下の特許請求項において使用される用語は、本明細書において開示される特定の実施形態に本発明を限定すると解釈されるべきではないことは理解されたい。むしろ、本発明の範囲は、そのような特許請求項の権利が認められる同等物の全範囲と共に、クレーム解釈の確立された原則に従って解釈されるべき、以下の特許請求項によって完全に決定されるものである。
【図１】
0006266657.tif 000002
【図２】
0006266657.tif 000003
【図３】
0006266657.tif 000004
【図４】
0006266657.tif 000005
【図５】
0006266657.tif 000006
【図６】
0006266657.tif 000007
【図７】
0006266657.tif 000008
【図８】
0006266657.tif 000009
【図９】
0006266657.tif 000010
【図１０】
0006266657.tif 000011
【図１１】
0006266657.tif 000012
【図１２】
0006266657.tif 000013
【図１３】
0006266657.tif 000014
【図１４】
0006266657.tif 000015
【図１５】
0006266657.tif 000016
【図１６】
0006266657.tif 000017