0064 以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として(但し限定ではない)示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する(以下に説明し、かつ図面で示される通り)が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ/又はブロック図において図示している場合もある。
0065 さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は(必ずしもそうではないが)、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
0066 本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置(ROM)、ランダムアクセスメモリ(RAM)、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等(但し、これらに限定されない)のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置(CPU)、プロセッサ、又はコントローラによって実行され得る。
0067 以下により詳細に示す本発明の例示的実施形態は、疎結合複数ストレージ環境のための階層式ストレージプール管理又は制御のための装置、方法、及びコンピュータプログラムを提供する。
0068 本発明の多様な態様は、シンプロビジョニングについてのキャメロンの米国特許第6,823,442号、外部ボリュームのマウントについてのヤマモト等の米国特許第7,711,896号、ページ単位の階層式ストレージ管理についてのナガイ(Nagai)等による米国公報第2007/0055713号、非分断ボリューム移動についてのオタニ等による米国特許公報第2010/0070722号、及び2つのストレージモジュールの間のマッピング情報移動についてのKawaguchi による米国特許公報第2008/0184000号のストレージシステム技術を利用している。これらの開示全体が、参照することによって本明細書中に組み込まれる。
0069 A.システムの管理図
0070 図1は、本発明の方法及び装置が適用され得る情報システムの管理図の一例を示す。この図は、システムの構成及び機能性の概要を示す。この情報システムは、データを格納するための複数のフロントエンドストレージサブシステム100と、ストレージデータのための複数のバックエンドストレージサブシステム200と、複数のホスト500とを含む。各ホスト500は、一つ以上のホストボリューム131に接続し、ホストボリューム131にI/Oを送信する。いくつかのホストボリューム131は、複数のホスト500によって共有されてもよい。各ホストボリューム131は、データ記憶領域を提供し、かつ統合又はシステムストレージプール600から供給される。ホストボリューム131のデータは、フロントエンドストレージサブシステム100及び/又はバックエンドストレージサブシステム200に格納される。
0071 統合ストレージプール600は、フロントエンドストレージサブシステム100と、バックエンドストレージサブシステム200とを含む。統合ストレージプール600は、ホスト500にホストボリューム131を提供する。ホストボリューム131とデータが位置するストレージとの関係は、統合ストレージプール600によってユーザから隠されている。統合ストレージプール600は、オンデマンドで、一つ以上のフロントエンドストレージサブシステム100及び/又は一つ以上のバックエンドストレージサブシステム200を追加することができる。除去の後で統合ストレージプール600のリソースが不足にならない限り、オンデマンドで、一つ以上のフロントエンドストレージサブシステム100及び/又は一つ以上のバックエンドストレージサブシステム200を除去することもできる。統合ストレージプール600は、フロントエンドストレージサブシステム100とバックエンドストレージサブシステム200の間で自身のリソースのバランスをとることができる。バランシングプロセスは、ホスト500からは隠されている。下記でより詳細に説明するように、管理サーバ300は、前記複数のストレージサブシステムに割り当てられた記憶媒体の情報を収集し、収集された情報の記憶媒体の特徴に基づいて、前記複数のストレージサブシステムに割り当てられた記憶媒体を含むシステムプール600のための複数のシステム階層を動的に決定する。本明細書中で用いられる「動的」という表現は、管理サーバ300によるオンライン操作の間に(例えばシステム階層を決定する際に)、前記複数のストレージサブシステムがホストコンピュータからI/O要求を受信できることを意味する。
0072 B.システムの構成
0073 B1.システムの論理構成
0074 図2は、図1の情報システムの論理構成の一例を示す。情報システムは、フロントエンドストレージサブシステム100と、バックエンドストレージサブシステム200と、統合ストレージプール管理サーバ300と、ネットワーク400及び401と、ホスト500とを含む。
0075 フロントエンドストレージサブシステム100は、データを格納する。データは、個別のプールとしての階層式シンプロビジョニングプール110内に存在する。フロントエンドストレージサブシステム100は、ホスト500にホストボリューム131を提供し、他のフロントエンドストレージサブシステム100にクロスマウントボリューム132を提供する。フロントエンドストレージサブシステム100は、ホスト500及び統合ストレージプール管理サーバ300に接続される。フロントエンドストレージサブシステム100は、バックエンドストレージサブシステム200に接続し、かつネットワーク401を介してバックエンドストレージサブシステム200に/からデータを転送することができる。詳細は、下記の図4で説明する。バックエンドストレージサブシステム200は、フロントエンドストレージサブシステム100に接続され、フロントエンドストレージサブシステム200にバックエンドボリューム231を提供する。
0076 統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100、バックエンドストレージサブシステム200、及びホスト500に接続する。統合ストレージプール管理サーバ300は、ストレージリソース、及びフロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200の構成、並びにホスト500とフロントエンドストレージサブシステム100の間の接続を管理する。詳細は、下記の図10で説明する。
0077 ネットワーク400は、ホスト500、フロントエンドストレージサブシステム100、及び統合ストレージプール管理サーバ300の間でデータ、情報、及び命令を転送する。ネットワーク401は、フロントエンドストレージサブシステム100、バックエンドストレージサブシステム200、及び統合ストレージプール管理サーバ300の間でデータ、情報、及び命令を転送する。ネットワーク400とネットワーク401は、統合することができる。ホスト500は、フロントエンドストレージサブシステム100に接続される。各ホスト500のパス構成は、ホスト500のパス管理モジュール501で定義される。I/Oパスは、この構成に従う。
0078 図3は、各フロントエンドストレージサブシステムの階層式シンプロビジョニングプール110の構成、及びフロントエンドストレージサブシステム100間の関係を示す。階層式シンプロビジョニングプール110は、一つ以上のRAIDグループ112を含む。RAIDグループ112は、一つ以上のタイプの階層、例えばRAIDグループ112−1、112−2、112−3、112−4、112−6等に分類することができる。RAIDグループの各タイプは、信頼性、可用性、性能、容量、費用、接続プロトコル、及び物理的性質における特定の特徴を有する。例としては、RAIDレベル、HDDのRPM、媒体のタイプ、位置(内部/外部)等を含む。フロントエンドストレージサブシステム100は、外部ストレージサブシステム上のボリュームを、外部ボリュームマウント機能によって自身のRAIDグループとして使用することができる。図3で分かるように、バックエンドボリューム231は、外部ボリュームマウント機能によってRAIDグループ112−5としてマウントされ、クロスマウントボリューム132は、外部ボリュームマウント機能によってRAIDグループ112−6としてマウントされる。階層式シンプロビジョニングプール110は、複数の階層に分割される。構成及び制御方法の詳細は、下記の図8及び図9で説明する。
0079 ホストボリューム131及びクロスマウントボリューム132は、階層構成を備える階層式シンプロビジョニングプール110から供給される。ホストボリューム131は、ホスト500によって接続され、クロスマウントボリューム132は、他のフロントエンドストレージサブシステム100によって接続される。
0080 B2.フロントエンドストレージサブシステムの物理構成
0081 図4は、フロントエンドストレージサブシステム100の典型的な構成を示す。これは、ストレージコントローラ101及びディスク106を含む。ストレージコントローラ101は、CPU102と、メモリ103と、ホストインタフェース104と、ディスクインタフェース105と、管理サーバインタフェース107と、ディスク106とを備える。CPU102は、メモリ103の制御プログラム及び制御テーブルを使用してストレージサブシステムを制御する。メモリ103は、データ、プログラム、及びテーブルを格納し、キャッシュ領域103−0、ディスク管理テーブル103−1、階層式プール管理テーブル103−2、ボリューム管理テーブル103−3、ページ管理テーブル103−4、性能モニタプログラム103−5、ボリュームI/O制御プログラム103−6、ディスクI/O制御プログラム103−7、ページ制御プログラム103−8、及びボリューム移動制御プログラム103−9を含む。
0082 メモリ103は、読み出し及び書き込みキャッシュデータを格納するためのキャッシュ領域103−0を有する。ディスク管理テーブル103−1は、RAIDグループの構成を管理する(図5を参照)。階層式プール管理テーブル103−2は、階層式シンプロビジョニングプール110の階層の構成を管理する(図6を参照)。ボリューム管理テーブル103−3は、ホストボリューム131及びクロスマウントボリューム132の設定を管理する(図7を参照)。ページ管理テーブル103−4は、シンプロビジョニング機能のページ割り当てを管理する。性能モニタプログラム103−5は、ストレージ構成及び作業負荷情報を収集し、これを統合ストレージプール管理サーバ300に送信する。ボリュームI/O制御プログラム103−6は、ホスト500及びフロントエンドストレージサブシステム100からの読み出し及び書き込みI/Oを制御する。ディスクI/O制御プログラム103−7は、ディスク106、フロントエンドストレージサブシステム100、及びバックエンドストレージサブシステム200への読み出し及び書き込みI/Oを制御する。ページ制御プログラム103−8は、シンプロビジョニングページの割り当て及び再割り当てを制御する。書き込みI/Oが発生した時に、ページ割り当てプロセスが実行される。リソースのアンバランシングが発生した時に、ページ再割り当てプロセスが実行されて、リバランシングが行われる。RAIDグループの除去が発生した時に、ページ再割り当てプロセスも実行されて、除去されたRAIDグループからページが無くなる。ボリューム移動制御プログラム103−9は、ボリュームを移動するために、フロントエンドストレージサブシステム100からの/へのボリュームデータ、ボリューム構成、及びボリューム属性の移動を制御する。
0083 ホストインタフェース104は、ホスト500に接続するためのインタフェースであり、ホスト500からホストI/Oを受信し、これをCPU102に転送する。ディスクインタフェース105は、ディスク106に接続するためのインタフェースであり、CPU102から受信されたディスクI/Oをディスク106に送信する。管理サーバインタフェース107は、統合ストレージプール管理サーバ300に接続するためのインタフェースである。管理サーバインタフェース107は、CPU102から受信されたストレージ情報を統合ストレージプール管理サーバ300に送信し、かつ統合ストレージプール管理サーバ300から命令を受信し、これをCPU102に転送する。
0084 ディスクは、ストレージデータを格納する。図4で分かるように、ディスク106−1、ディスク106−2、ディスク106−3、及びディスク106−4を含む複数のタイプのディスク106が存在する。複数のディスク106がRAIDグループを構成する。RAIDグループは、図3のRAIDグループ112である。
0085 B3.フロントエンドストレージサブシステムのテーブル構造
0086 図5は、フロントエンドストレージサブシステム100のRAIDグループ112の構成を管理する、ディスク管理テーブル103−1の一例を示す。このテーブルは、RAIDグループID103−1−1、容量情報103−1−2、属性情報103−1−3、内部/外部位置情報103−1−4、RAIDレベル情報103−1−5、及びディスクID103−1−6の欄を有する。RAIDグループID103−1−1は、フロントエンドストレージサブシステム100の固有の番号である。容量情報103−1−2は、RAIDグループの使用可能容量を含む。属性情報103−1−3は、RAIDグループのタイプを提供し、RAIDグループの媒体タイプ及び接続タイプを格納する。これは、RAIDグループが外部ボリュームであるか否かを示す。ストレージサブシステムのタイプ及びマウントされたボリュームの階層構成等の構成が、統合ストレージプール管理サーバ300から伝えられる。位置情報103−1−4は、接続タイプについての情報(内部又は外部)を示す。RAIDレベル情報103−1−5は、RAIDレベルに関する情報を提供する。ディスクIDは、RAIDグループの各ディスクのIDを含む。ディスクが内部ディスクである場合は、ディスクIDは、フロントエンドストレージサブシステム100のディスクIDを格納する。ディスクが外部ボリュームである場合は、ディスクIDは、例えばWWN(ワールドワイドネーム)又はLUN(論理ユニット番号)を含む、システムで識別できるボリューム情報を格納する。
0087 図6は、シンプロビジョニングプール110の階層の構成を管理する階層管理テーブル103−2の一例を示す。テーブルは、階層ID103−2−1、総容量情報103−2−2、使用容量情報103−2−3、階層構成設定103−2−4、RAIDグループID103−2−5、及び階層優先順位設定103−2−6の欄を有する。階層ID103−2−1は、階層式シンプロビジョニングプール110の固有の番号である。総容量情報103−2−2は、この階層に属するRAIDグループの総容量を提供する。使用容量情報103−2−3は、割り当てられたページ容量を、階層からホストボリューム131及びクロスマウントボリューム132に提供する。階層構成設定103−2−4は階層の定義であり、階層に属するRAIDグループのタイプに関する情報を含む。RAIDグループID103−2−5は、階層に属するRAIDグループのIDを含む。選択は、階層構成設定103−2−4の情報に基づいている。階層優先順位設定103−2−6は、階層優先順位の構成を含む。ページ制御プログラム103−8は、この情報及びボリューム管理テーブル103−3に基づいてページの割り当て及び再割り当てを行う。
0088 図7は、ホストボリューム131及びクロスマウントボリューム132の設定を管理するボリューム管理テーブル103−3の一例を示す。このテーブルは、ボリュームID103−3−1、ボリューム容量103−3−2、割り当てられた容量103−3−3、使用可能階層設定103−3−4、及びボリュームタイプ情報103−3−5の欄を有する。ボリュームID103−3−1は、ボリュームのIDである。ボリューム容量103−3−2は、ボリュームの容量を提供する。割り当てられた容量103−3−3は、ボリュームに割り当てられたページの総容量である。階層設定103−3−4は、ボリュームがそこからページを割り当てることができる階層である。ボリュームがクロスマウントボリューム132である場合は、それは、クロスマウントボリューム132が、他のフロントエンドストレージサブシステムが提供する外部ボリュームを有する階層を使用することを防ぐことによって、複数のフロントエンドストレージサブシステム100の間の循環ページ割り当てを防ぐことができる。ボリュームタイプ情報103−3−5は、ボリュームにアクセスする装置情報を含む。
0089 B4.階層式シンプロビジョニング機能の論理構成
0090 図8は、階層式シンプロビジョニングプール110と、RAIDグループ112と、階層111との関係の一例を示す。階層式シンプロビジョニングプール110は、複数の階層111を含む。各階層111は、RAIDグループID103−2−5にリストされるRAIDグループのグループである。RAIDグループの選択は、階層構成設定103−3−4の情報に基づいている。図8は、階層111−1、階層111−2、階層111−3、階層111−4、階層111−5、階層111−6等の異なるタイプの媒体を備える複数の階層を示す。各階層は、優先順位設定を有する。この情報は、階層優先順位設定103−2−5に格納される。
0091 図9は、ホストボリューム131と、クロスマウントボリューム132と、階層式シンプロビジョニング110と、ページとの関係の一例を示す。ボリュームがシンプロビジョニング機能を使用する場合、ボリュームは、容量ページ131−2を、階層式シンプロビジョニングプール110から、書き込みI/Oが発生したアドレスをカバーするボリュームページ131−1に割り当てる。ボリュームページ131−1と容量ページ131−2の関係は、ページ管理テーブル103−4に格納される。他の容量ページに割り当てられた容量ページ131−2との間のデータコピー、及びボリュームページ131−1と容量ページ131−2の間のマッピング情報の変更によって、割り当てを変更することができる。フロントエンドストレージサブシステム100は、性能情報、作業負荷情報、ストレージ構成、残りの階層容量、階層優先順位設定103−2−5の階層優先順位設定、及びボリュームタイプ情報103−3−5のボリュームQoS設定に依存する割り当てを自動的に変更する。
0092 B5.統合ストレージプール管理サーバの物理構成
0093 図10は、統合ストレージプール管理サーバ300の構成の一例を示す。これは、CPU301、システム管理インタフェース302、メモリ303、入力装置304、及びディスプレイ305を含む。CPU310は、メモリ303の制御プログラム及び制御テーブルを使用することによってサーバ300を制御する。システム管理インタフェース302は、フロントエンドストレージサブシステム100、バックエンドストレージサブシステム200、及びホスト500に接続するためのインタフェースである。システム管理インタフェース302は、その構成を変更するために、フロントエンドストレージサブシステム100、バックエンドストレージサブシステム200、及びホスト500にコマンドを送信する。それは、フロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200からストレージ性能及び作業負荷及び構成情報を受信する。
0094 メモリ303は、データ、プログラム、及びテーブルを格納する。統合ストレージプール階層管理テーブル303−1は、統合ストレージプール600の階層構成及び状態情報を格納する。構造の詳細は、図11に示される。ストレージサブシステム管理テーブル303−2は、各フロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200の構成及び状態情報を格納する。この構造の詳細は、図12に示される。システム情報テーブル303−3は、記憶装置以外のシステムのIT装置の構成、性能、及び作業負荷情報を格納する。この構造の詳細は、図13に示される。統合ストレージプール拡張制御プログラム303−4は、新しいフロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200を統合ストレージプール600にインストールする。このプログラムは、統合ストレージプール階層管理テーブル303−1の情報に基づいて、階層構成をフロントエンドストレージサブシステム100に設定し、外部ボリュームマウント及びクロスマウント構成を設定する。このプロセスの詳細は、図14に示される。統合ストレージプール削減制御プログラム303−5は、統合ストレージプール600から古いフロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200を除去する。このプログラムは、除去されたフロントエンドストレージサブシステム100に対して、ストレージリソースを解放するように命令し、除去されないフロントエンドストレージサブシステム100に対して、除去されたフロントエンドストレージサブシステム100のデータ及びリソースを引き継ぐように命令する。このプロセスの詳細は、図15に示される。統合ストレージプール階層構成制御プログラム303−6は、統合ストレージプール階層管理テーブル303−1の情報に基づいて、各フロントエンドストレージサブシステム100の階層構成を設定かつ/又は変更する。このプロセスの詳細は図16に示される。統合ストレージプールボリューム制御プログラム303−7は、フロントエンドストレージサブシステム100を選択し、フロントエンドストレージサブシステム100に対して、QoS設定及びホストパス設定を備えるボリュームを供給するように命令する。このプロセスの詳細は、図17に示される。統合ストレージプールリソース制御プログラム303−8は、許容できないリソースのアンバランスを見つけるためにリソースをチェックする。プログラムがアンバランスを見つけた場合は、フロントエンドストレージサブシステム100に対して、統合ストレージプール600のリソースをリバランスするように命令する。このプロセスの詳細は、図18に示される。統合ストレージプールモニタプログラム303−9は、構成、性能、及び作業負荷情報を収集し、各フロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200に警告する。
0095 入力装置304によって、ユーザは、ストレージ構成設定を入力することができる。ディスプレイ305は、ユーザのための出力装置であり、ポインタ305−0は、ユーザに対して現在の入力領域を示す。ディスプレイ305は、いくつかのマネージャを示す。統合ストレージプール要素マネージャ305−1は、統合ストレージプール600への新しいフロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200のインストールを命令するために、ユーザインタフェースとしてウィンドウを提示する。このウィンドウの詳細なイメージは、図20に示される。統合ストレージプール階層マネージャ305−2は、統合ストレージプール600の階層の構成を設定するために、ユーザインタフェースとしてウィンドウを提示する。このウィンドウの詳細なイメージは、図21に示される。統合ストレージプールボリュームマネージャ305−3は、新しいホストボリューム131を供給し、かつ統合ストレージプール600の既存のホストボリューム131の構成を変更するために、ユーザインタフェースとしてウィンドウを提示する。
0096 B6.統合ストレージプール管理サーバのテーブル構造
0097 図11は、統合ストレージプール階層管理テーブル303−1のテーブル構造の一例を示す。このテーブルは、統合ストレージプール600の各階層の構成を管理する。統合ストレージプール拡張制御303−4は、登録時にこのテーブルから、新しいフロントエンドストレージサブシステム100の階層式シンプロビジョニングプール110の階層の構成を生成する。統合ストレージプールボリューム制御303−7は、ボリュームプロビジョニングで、ボリュームの構成及び位置を生成する。
0098 統合ストレージプール階層管理テーブル303−1は、以下の欄を有する。階層ID303−1−1は、統合ストレージプール600における固有の番号である階層のIDである。階層構成設定303−1−2は、フロントエンドストレージサブシステム100のシンプロビジョニングプール110に属する階層のタイプを含む、階層の定義を提供する。ユーザは、統合ストレージプール階層マネージャ305−2からこれらの設定を入力する。フロントエンドストレージサブシステム100がバックエンドストレージサブシステム200の内部RAIDグループ又は外部ボリュームを使用する時に、内部階層優先順位設定303−1−3は、階層使用の優先順位情報を提供する。ユーザは、統合ストレージプール階層マネージャ305−2からこれらの設定を入力する。統合ストレージプール管理サーバ300が階層式シンプロビジョニングプール110の内部RAIDグループ階層に階層設定を変更又は適用する場合、階層の優先順位設定は、この情報及び外部階層優先順位設定303−1−4に基づいている。フロントエンドストレージサブシステム100が他のフロントエンドストレージサブシステム100の外部ボリュームを使用する場合、外部階層の優先順位設定303−1−4は、階層使用の優先順位情報を提供する。統合ストレージプール管理サーバ300は、内部階層優先順位設定303−1−3の優先順位情報、及びシステム情報テーブル303−3のレイテンシ及び作業負荷情報でこの値を計算する。統合ストレージプール管理サーバ300がフロントエンドストレージサブシステム100からの外部ボリューム階層で構成される階層式シンプロビジョニングプール110の階層に階層設定を変更又は適用する場合、階層の優先順位設定は、この情報及び外部階層優先順位設定303−1−4に基づいている。
0099 ストレージサブシステムID303−1−5は、統合ストレージプール600に属するフロントエンドストレージサブシステム100のIDを提供する。この情報は、統合ストレージプール拡張制御303−4によって登録される。シンプロビジョニングプール階層ID303−1−6は、統合ストレージプール600の階層に関連するシンプロビジョニングプール110の階層のIDを提供する。この情報は、統合ストレージプール拡張制御303−4によって登録される。ストレージサブシステム階層総容量303−1−7は、フロントエンドストレージサブシステム100の外部ボリューム階層を除く、階層式シンプロビジョニングプール110の階層の総容量を提供する。この情報は、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。ストレージサブシステム階層の使用容量303−1−8は、フロントエンドストレージサブシステム100の外部ボリューム階層を除く、階層式シンプロビジョニングプール110の階層の使用容量を提供する。この情報は、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。ストレージサブシステム階層限界作業負荷303−1−9は、階層式シンプロビジョニングプール110の階層の性能情報を提供する。この情報は、例えば、ディスクの数、媒体のタイプ、RAIDレベル等の階層の構成から計算される。構成情報は、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。ストレージサブシステム階層現在作業負荷303−1−10は、階層式シンプロビジョニングプール110の階層の作業負荷情報を提供する。この情報は、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。
0100 図12は、ストレージサブシステム管理テーブル303−2のテーブル構造の一例を示す。このテーブルは、フロントエンドストレージサブシステム100、フロントエンドストレージサブシステム100のボリューム133、当該ボリュームに接続するホスト500、及びホストとボリュームをリンクするネットワーク400の構成及び状態を管理する。ボリューム容量情報303−2−6、ボリューム使用容量情報303−2−7、ボリューム作業負荷情報303−2−8、及びキャッシュヒット率情報303−2−9は、フロントエンドストレージサブシステム100間のリソースリバランシングのためのボリュームを選択するために重要である。
0101 ストレージサブシステム管理テーブル303−2は、以下の欄を有する。ストレージID303−2−1は、システムの固有の番号としてフロントエンドストレージサブシステム100のIDを提供する。ボリュームID303−2−2は、フロントエンドストレージサブシステム100における固有の番号としてホストボリューム131のIDを提供する。ホストID303−2−3は、システムにおける固有の番号として、ボリュームに接続するホスト500のIDを提供する。ネットワークゾーンID303−2−4は、ホスト及びボリュームが使用する、システムにおける固有の番号としてのネットワークゾーンのIDを提供する。階層ID303−2−5は、ボリュームがそこからページの割り当て/再割り当てを行うことができる階層式シンプロビジョニングプール110における固有の番号としての、階層式シンプロビジョニングプール110における階層のIDを提供する。ボリューム容量情報303−2−6は、ボリュームの容量情報を提供し、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。ボリューム使用容量情報303−2−7は、ボリュームの使用容量情報を提供し、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。ボリューム作業負荷情報303−2−8は、ボリュームの作業負荷情報を提供し、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。キャッシュヒット率情報303−2−9は、ボリュームのキャッシュヒット/ミス情報を提供し、統合ストレージプールモニタプログラム303−9によって収集され、かつ格納される。
0102 図13は、システム情報テーブル303−3のテーブル構造の一例を示す。このテーブルは、ストレージ以外のシステムの実性能及び現在作業負荷に関する情報を格納する。この情報は、フロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200の間のストレージリソースをリバランスするための方法を選択するのに有用である。
0103 システム情報テーブル303−3は、以下の欄を有する。インデックス303−3−1は、システムの性能のインデックスを提供する。性能情報303−3−2は、実性能に関する情報を提供する。この値は、ユーザが通知することができる。作業負荷情報303−3−3は、構成要素の現在作業負荷を提供する。この値は、統合ストレージプールモニタプログラム303−9によって収集され、ホスト500及びネットワーク400によって入力され、又は計算される。
0104 B7.統合ストレージプール管理サーバのプログラムのプロセス
0105 図14は、統合ストレージプール拡張制御プログラム303−4のプロセスを示す流れ図の一例である。ユーザが統合ストレージプール600に新しいストレージサブシステムを追加する時に、このプログラムは実行される。操作命令は、統合ストレージプール要素マネージャ305−1から発せられる。
0106 このプログラムは、ステップ303−4−1で開始する。ステップ303−4−2において、ユーザは、ストレージプール要素マネージャ305−1に、新しいストレージサブシステム情報のためのプール追加入力を提供する。ステップ303−4−3において、プログラムは、新しいストレージサブシステムの構成情報(例えばRAIDグループ構成)を収集する。プログラムは、統合ストレージ階層管理テーブル303−1を参照し、新しいストレージサブシステムのRAIDグループを複数の階層に分類する。ステップ303−4−4では、プログラムは、収集された情報から、新しいストレージサブシステムの構成を生成する。ストレージサブシステムがバックエンドストレージサブシステム200に適切である場合は、プログラムは、接続するためのフロントエンドストレージサブシステム100を選択する。ステップ303−4−5では、プログラムは、新しいストレージサブシステムに外部ボリューム設定を適用する。新しいストレージサブシステムがバックエンドストレージサブシステム200である場合は、プログラムは、フロントエンドストレージサブシステム100に対して、ボリュームを外部ボリュームとしてマウントし、かつ階層式シンプロビジョニングプール110にインストールするように命令する。ステップ303−4−6では、プログラムは、新しいストレージサブシステムに、生成された階層構成を適用する。新しいストレージサブシステムがフロントエンドストレージサブシステム100である場合は、プログラムは、新しいストレージサブシステムに対して、そのシンプロビジョニングプール110のために生成された階層を設定するように命令する。ステップ303−4−7では、プログラムは、統合ストレージプールの全ストレージサブシステムにクロスマウントボリューム設定を適用する。新しいストレージサブシステムがフロントエンドストレージサブシステム100である場合は、プログラムは、QoS設定を備えるクロスマウントボリューム132を確立するように命令し、かつ他のフロントエンドストレージサブシステム100に対して、新しいフロントエンドストレージサブシステム100のクロスマウントボリューム132を外部ボリュームとしてマウントするように命令する。プログラムは、ステップ303−4−8で終了する。
0107 図15は、統合ストレージプール削減制御プログラム303−5のプロセスを示す流れ図の一例である。ユーザが既存のストレージサブシステムを統合ストレージプール600から除去する時に、このプログラムは実行される。操作命令は、統合ストレージプール要素マネージャ305−1から発せられる。
0108 プログラムは、ステップ303−5−1で開始する。ステップ303−5−2では、ユーザは、除去されたストレージサブシステムの情報のプール削減入力を、ストレージプール要素マネージャ305−1に提供する。ステップ303−5−3では、プログラムは、新しいストレージサブシステムの構成情報(例えばRAIDグループ構成及びボリューム構成)を収集する。プログラムは、統合ストレージプール600の現在の構成を知るために、統合ストレージ階層管理テーブル303−1を参照する。ステップ303−5−4では、プログラムは、収集された情報から、各残りのストレージサブシステムの構成を生成する。ステップ303−5−5では、プログラムは、除去されたストレージサブシステム及び残りのストレージサブシステムに対して、それらの間でデータを移動するように命令する。より具体的には、データは、削減されたストレージサブシステムから他のストレージサブシステムに移動される。ボリューム移動制御プログラム103−9及び/又はページ制御プログラム103−8は、この操作によって、フロントエンドストレージサブシステム100で実行される。ステップ303−5−6では、除去されたストレージサブシステムがフロントエンドストレージ100であり、かつバックエンドストレージサブシステム200のボリュームをマウントした場合は、プログラムは、除去されたストレージサブシステムに対して、外部ボリュームをアンマウントするように命令する。ステップ303−5−7では、除去されたストレージサブシステムがフロントエンドストレージサブシステムである場合、プログラムは、残りのストレージサブシステムに対して、除去されたストレージサブシステムがマウントしたバックエンドストレージサブシステム200のボリュームをマウントするように命令する。ステップ303−5−8では、除去されたストレージサブシステムがフロントエンドストレージサブシステムである場合、プログラムは、残りのストレージサブシステムに対して、除去されたストレージサブシステムによって提供されるクロスマウントボリュームをアンマウントするように命令する。ページ制御プログラム103−8は、この操作によって、残りのストレージサブシステムで実行される。ステップ303−5−9では、ユーザは、除去されたストレージサブシステムをネットワークから切断し、これを除去する。プログラムは、ステップ303−5−10で終了する。
0109 図16は、統合ストレージプール階層構成制御プログラム303−6のプロセスを示す流れ図の一例である。ユーザが統合ストレージプール600の階層構成を変更する時に、このプログラムは実行される。操作命令は、統合ストレージプール階層マネージャ305−2から発せられる。
0110 プログラムは、ステップ303−6−1で開始する。ステップ303−6−2では、プログラムは、各ストレージサブシステムの構成情報を収集する。プログラムは、統合ストレージプール600の現在の構成を取得するために、統合ストレージ階層管理テーブル303−1を参照する。プログラムは、ユーザに対して統合ストレージプール600の全情報を示す。統合ストレージプール600の階層リソースの量(例えば容量)は、各フロントエンドストレージサブシステム100の階層式シンプロビジョニングプール110内の関連する階層の量の合計である。このようにして、ユーザは、システムの各階層のための全リソース及び残りのリソースの量を知ることができる。ステップ303−6−3では、ユーザは、ストレージプール階層マネージャ305−2から、統合ストレージプール600の新しい階層構成を入力する。ステップ303−6−4では、プログラムは、階層優先順位及び分類等の新しい設定のために構成を生成する。ステップ303−6−5では、プログラムは、各フロントエンドストレージサブシステム100に対して、階層式シンプロビジョニングプール110の階層構成を変更するように命令する。ページ制御プログラム103−8は、この操作によって、フロントエンドストレージサブシステム100で実行される。プログラムは、ステップ303−6−6で終了する。
0111 図17は、統合ストレージプールボリューム制御プログラム303−7のプロセスを示す流れ図の一例である。ユーザが統合ストレージプール600の既存のボリュームの変更構成の新しいボリュームを供給する時に、このプログラムは実行される。操作命令は、統合ストレージプールボリュームマネージャ305−3から発せられる。
0112 このプログラムは、ステップ303−7−1で開始する。プログラムは、統合ストレージプール600の現在の構成を取得するために統合ストレージ階層管理テーブル303−1を参照する。ステップ303−7−2では、プログラムは、ユーザに対して統合ストレージプール600の全情報を示す。統合ストレージプール600の階層リソースの量(例えば容量)は、各フロントエンドストレージサブシステム100の階層式シンプロビジョニングプール110内の関連する階層の量の合計である。このようにして、ユーザは、システムの各階層のための全リソース及び残りのリソースの量を知ることができる。ステップ303−7−3では、ユーザは、ストレージプールボリュームマネージャ305−3から統合ストレージプール600の新しいボリューム構成(例えば、ボリュームの容量、ボリュームに接続するホスト、及びQoS設定を含む)を入力する。ステップ303−7−4では、プログラムは、どの操作が発生するかをチェックする。それがボリュームプロビジョニングである場合は、プログラムはステップ303−7−5に進む。これがボリューム再構成である場合は、プログラムはステップ303−7−7に進む。ステップ303−7−5では、プログラムは、ホストボリューム131を供給するために適切なフロントエンドストレージサブシステム100を選択する。この選択は、残りのリソース、ネットワークの変換可能性、及びボリュームの要件から生成される。このプログラムは、ストレージプールボリュームマネージャ305−3からの入力、及び選択されたフロントエンドストレージサブシステム100の現在の構成に基づいてQoS設定を生成する(階層設定を使用して)。ステップ303−7−6では、プログラムは、フロントエンドストレージサブシステム100に対して、容量及びQoS設定を備えるホストボリューム131を供給するように命令する。プログラムは、ホスト500に対して、供給されたホストボリューム131に接続するように命令する。ステップ303−7−7では、プログラムは、ストレージプールボリュームマネージャ305−3からの入力、及び選択されたフロントエンドストレージサブシステム100の現在の構成に基づいてQoS設定を生成する(階層設定を使用して)。ステップ303−7−8では、プログラムは、フロントエンドストレージサブシステム100に対して、ホストボリューム131の容量及びQoS設定を変更するように命令する。接続するホスト500が変更される場合、プログラムは、現在のホスト500に対して、ボリュームから切断するように命令し、選択されたホストに対して、ボリュームに接続するように命令する。プログラムは、ステップ303−7−9で終了する。
0113 図18は、統合ストレージプールリバランシング制御プログラム303−8のプロセスを示す流れ図の一例である。このプログラムは定期的に実行される。プログラムは、ステップ303−8−1で開始する。ステップ303−8−2では、プログラムは、統合ストレージプール600の現在の構成及び使用を取得するために統合ストレージ階層管理テーブル303−1及びストレージサブシステム管理テーブル303−2を参照する。ステップ303−8−3では、プログラムは、統合ストレージプール600における階層の許容できないアンバランスな使用をチェックする。バランスがとれている場合は、プログラムは、ステップ303−8−11で終了する。バランスがとれていない場合は、ステップ303−8−4で、プログラムは、アンバランスを解決するための以下のリバランシング方法を生成する。
0114 一つのアプローチは、2つのフロントエンドストレージサブシステムの間にバックエンド外部ボリュームを割り当てることである(図39を参照)。もう一つのアプローチは、2つのフロントエンドストレージサブシステムの間のボリューム移動である(図46を参照)。さらにもう一つのアプローチは、2つのフロントエンドストレージサブシステムの間のクロスマウントボリュームによる容量貸与を含む(図43を参照)。ステップ303−8−5では、プログラムは、ステップ303−8−4の方法から最適な方法を選択する。この選択は、効果、システム作業負荷、及び変更時間に基づいて決定される。パラメータは、システム情報テーブル303−3、統合ストレージ階層管理テーブル303−1、及びストレージサブシステム管理テーブル303−2から生成される。ステップ303−8−6では(第1の選択)、プログラムは、リソースが十分なフロントエンドストレージサブシステム100に対して、バックエンドストレージサブシステム200の外部ボリュームをアンマウントするように命令する。このアンマウント操作によって、ページ制御プログラム103−8は、割り当てられた容量ページ131−2を他のRAIDグループに退避させるために、リソースがないフロントエンドストレージサブシステム100において実行される。ステップ303−8−7では、プログラムは、リソースがないフロントエンドストレージサブシステム100に対して、アンマウントされたボリュームを外部ボリュームとしてマウントし、かつマウントされたボリュームを適切な階層にインストールするように命令する。ステップ303−8−8では(第2の選択)、プログラムは、リソースがないフロントエンドストレージサブシステム100に対して、ホストボリューム131をリソースが十分なフロントエンドストレージサブシステム100に移動するように命令する。この移動操作によって、ボリューム移動制御プログラム103−9は、リソースがないフロントエンドストレージサブシステム100及びリソースが十分なフロントエンドストレージサブシステム100において実行される。ステップ303−8−9では(第3の選択)、プログラムは、リソースがないフロントエンドストレージサブシステム100に容量を供給するために、リソースが十分なフロントエンドストレージサブシステム100に対して、クロスマウントボリューム132を供給するように命令する。ステップ303−8−10では、プログラムは、リソースが十分なフロントエンドストレージサブシステム100に対して、リソースが十分なフロントエンドストレージサブシステム100が供給したクロスマウントボリューム132をマウントするように命令する。プログラムは、ステップ303−8−11で終了する。
0115 図19は、統合ストレージプールモニタプログラム303−8のプロセスを示す流れ図の一例である。このプログラムは定期的に実行される。プログラムは、ステップ303−9−1で開始する。ステップ303−9−2では、プログラムは、フロントエンドストレージサブシステム100及びバックエンドストレージサブシステム200から構成及び作業負荷情報を受信する。ステップ303−9−3では、プログラムは、受信された情報を、システム情報テーブル303−3、統合ストレージ階層管理テーブル303−1、及びストレージサブシステム管理テーブル303−2に格納する。プログラムは、ステップ303−9−4で終了する。
0116 B8.統合ストレージプール管理サーバのディスプレイイメージ
0117 図20は、ユーザのための入出力(I/O)インタフェースとしての統合ストレージプール要素マネージャ305−1の一例を示す。このI/Oインタフェースを使用して、ユーザは、統合ストレージプール600に追加されるべき新しいストレージサブシステムを入力し、統合ストレージプール600から除去されるべき既存のストレージサブシステムを入力し、かつ現在のリソース情報及び統合ストレージプール600の修正後のリソース情報をチェックすることができる。I/Oインタフェースは、以下の特徴を含む。プール階層リソース情報パネル305−1−1は、ユーザに各階層の現在のリソース量を示す。ユーザが統合ストレージプール600への/からのストレージサブシステムの追加及び/又は除去を設定する時に、パネルは、修正後のリソース情報を示す。プール状態情報パネル305−1−2は、統合ストレージプール600の現在の状態を示す。プール構成情報パネル305−1−3は、ユーザに対して統合ストレージプール600のストレージサブシステムのリストを示す。ユーザは、統合ストレージプール600から除去するストレージサブシステムを、このリストから選択することができる。ストレージサブシステム情報パネル305−1−4は、ユーザに対して、統合ストレージプール600には存在しないが追加できるストレージサブシステムのリストを示す。ユーザは、統合ストレージプール600に追加するストレージサブシステムを、このリストから選択することができる。追加ボタン305−1−4を使用して、ユーザは、ストレージサブシステム情報パネル305−1−4からストレージサブシステムを選択した後でこのボタンを押すことによって、統合ストレージプール600へのストレージサブシステムの追加を設定することができる。除去ボタン305−1−5を使用して、ユーザは、プール構成情報パネル305−1−3からストレージサブシステムを選択した後でこのボタンを押すことによって、統合ストレージプール600からのストレージサブシステムの除去を設定することができる。適用ボタン305−1−7を使用して、ユーザは、このボタンを押すことによって、ストレージサブシステムを統合ストレージプール600に追加するようにという、統合ストレージプール拡張制御プログラム303−4の命令を送信することができる。さらに又はあるいは、ユーザは、このボタンを押すことによって、ストレージサブシステムを統合ストレージプール600に追加するようにという、統合ストレージプール削減制御プログラム303−5の命令を送信することができる。ユーザは、取消ボタン305−1−8を押すことによって、構成を現在の状態に戻す。
0118 図21は、ユーザのためのI/Oインタフェースとしての統合ストレージプール階層マネージャ305−2の一例を示す。ユーザは、統合ストレージプール600の階層構成を入力することができ、かつこのインタフェースで現在のリソース情報及び統合ストレージプール600の修正後のリソース情報をチェックすることができる。インタフェースは、以下の特徴を含む。プール階層リソース情報パネル305−2−1は、ユーザに各階層の現在のリソース量を示す。ユーザが階層構成の変更を統合ストレージプール600に設定する時に、このパネルは、修正後のリソース情報を示す。プール状態情報パネル305−1−2は、統合ストレージプール600の現在の状態を示す。階層構成情報パネル305−2−3は、ユーザに対して、統合ストレージプール600の階層のリストを示す。ユーザは、統合ストレージプール600の階層構成を変更することができる。ユーザは、適用ボタン305−2−7を押すことによって、統合ストレージプール600の階層構成を変更するようにという統合ストレージプール階層構成制御プログラム303−6の命令を送信することができる。ユーザは、取消ボタン305−2−8を押すことによって、構成を現在の状態に戻すことができる。
0119 図22は、ユーザのためのI/Oインタフェースとしての統合ストレージプールボリュームマネージャ305−3の一例を示す。ユーザは、統合ストレージプール600のボリューム構成を入力することができ、かつこのインタフェースで、統合ストレージプール600の現在のリソース情報をチェックすることができる。インタフェースは、以下の特徴を含む。プール階層リソース情報パネル305−3−1は、ユーザに各階層の現在のリソース量を示す。プール状態情報パネル305−3−2は、統合ストレージプール600の現在の状態を示す。ボリューム構成情報パネル305−3−3は、ユーザに統合ストレージプール600のボリュームのリストを示す。ユーザは、統合ストレージプール600のボリューム構成を変更することができる。ユーザは、適用ボタン305−3−7nを押すことによって、統合ストレージプール600のボリューム構成を変更するようにという、統合ストレージプールボリューム制御プログラム303−6の命令を送信することができる。ユーザは、取消ボタン305−3−8を押すことによって、構成を現在の状態に戻すことができる。
0120 B9.シンプロビジョニングプール階層と統合ストレージプール階層の関係
0121 図23は、シンプロビジョニングプール110の階層と統合ストレージプール600の階層との間の関係を示す。統合ストレージプール600は階層611を有し、これらは、媒体タイプ、RAIDレベル、コスト等によって分類される。それらは、階層611−1、階層611−2、階層611−3、階層611−4、階層611−5等に分類される。この分類は、統合ストレージプールの階層管理テーブル303−1の設定に基づいている。統合ストレージプール600の各階層611は、フロントエンドストレージサブシステム100の各シンプロビジョニングプール110の階層111を有する。各階層611は、統合ストレージプール階層管理テーブル303−1からの優先順位設定を有する。
0122 C.システムの操作手順
0123 C1.統合ストレージプール拡張
0124 図24は、ストレージサブシステムのインストール及び統合ストレージプール600の拡張のシーケンスの一例を示す。このシーケンスは以下の手順を含む。手順S1−1では、ユーザは、新しいフロントエンドストレージサブシステム100a及び100bを導入し、フロントエンドストレージサブシステム100a及び100bのRAIDグループ構成及びネットワーク構成を設定する。この手順によって、フロントエンドストレージサブシステム100a及び100bは、S1−2の構成を変更する。ユーザは、統合ストレージプール600に対して、フロントエンドストレージサブシステム100a及び100bで拡張するように命令する。この手順によって、統合ストレージプール600は、S1−3の構成を変更する。手順S1−2では、フロントエンドストレージサブシステム100は、RAIDグループ112を確立し、ネットワーク情報及びネットワークへのログインを取得する。手順S1−3では、最初に、統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100a及び100bに対して、S1−4に進んで、バックエンドストレージサブシステム100の外部ボリュームをマウントし、階層式シンプロビジョニングプール110を確立し、そして階層式シンプロビジョニングプール110の階層を確立してS−14に進むように命令する。次に、統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステムに対して(S1−6に進む)に、QoS設定を備える階層式シンプロビジョニングプール110からクロスマウントボリューム132を供給するように命令する。次に、統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステムに対して(S1−6に進む)、他のフロントエンドストレージサブシステム100の供給されたクロスマウントボリューム132をマウントし、S1−8に進むように命令する。
0125 手順S1−4では、フロントエンドストレージサブシステム100は、階層式シンプロビジョニングプール110を確立する。フロントエンドストレージサブシステム100は、バックエンドストレージサブシステム200の指定された外部ボリュームをマウントし、かつ外部ボリュームを階層式シンプロビジョニングプール110にインストールする。フロントエンドストレージサブシステム100は、階層111の指定された構成を設定する。手順S1−5では、階層式シンプロビジョニングプール110のRAIDグループ112は、階層111に分類される。手順S1−6では、フロントエンドストレージサブシステム100は、指定されたQoS設定を備えるクロスマウントボリューム132を作成する。手順S1−7では、クロスマウントボリューム132が供給される。手順S1−8では、フロントエンドストレージサブシステム100は、いくつかの他のフロントエンドストレージサブシステム100の指定されたクロスマウントボリューム132をマウントする。手順S1−9では、クロスマウントボリューム132の外部ボリュームは、RAIDグループとしてマウントされる。
0126 図25は、手順S1−5の後のシステムの状態を示す。バックエンドストレージサブシステム200の外部ボリューム231は、フロントエンドストレージサブシステム100によってマウントされる。各フロントエンドストレージサブシステム100は、内部RAIDグループ112及びマウントされた外部ボリューム231を備える階層式シンプロビジョニングプール110を有する。
0127 図26は、図25の状態を達成するためのデータ、情報、及び命令の流れを示す。統合ストレージプール拡張制御プログラム303−4は、ストレージサブシステム管理テーブル303−2及び統合ストレージプール階層管理テーブル303−1から統合ストレージプール600の現在の構成を取得する。統合ストレージプール拡張制御プログラム303−4は、統合ストレージプール600の新しい構成を生成し、新しい構成を各テーブルに格納する。統合ストレージプール拡張制御プログラム303−4は、階層式プール管理テーブル103−2に対して、階層式シンプロビジョニングプール110の情報を、生成された新しい設定として設定するように命令する。統合ストレージプール拡張制御プログラム303−4は、ディスク管理テーブル103−1に対して、マウントされた外部ボリュームを、生成された新しい設定として設定するように命令する。統合ストレージプール拡張制御プログラム303−4は、バックエンドストレージサブシステム200のボリューム231に対して、マウントするフロントエンドストレージサブシステム100からのI/Oを許可するように命令する。
0128 図27は、手順S1−9の後のシステムの状態を示す。フロントエンドストレージサブシステム100のクロスマウントボリューム132は、階層式シンプロビジョニングプール110から供給される。フロントエンドストレージサブシステム100のクロスマウントボリューム132は、他のフロントエンドストレージサブシステム100によってマウントされる。
0129 図28は、図27の状態を達成するためのデータ、情報、及び命令の流れを示す。統合ストレージプール拡張制御プログラム303−4は、ストレージサブシステム管理テーブル303−2及び統合ストレージプール階層管理テーブル303−1から、統合ストレージプール600の現在の構成を取得する。統合ストレージプール拡張制御プログラム303−4は、統合ストレージプール600の新しい構成を生成し、かつ新しい構成を統合ストレージプール階層管理テーブル303−1に格納する。統合ストレージプール拡張制御プログラム303−4は、ボリューム管理テーブル103−3に対して、供給されたクロスマウントボリューム132を設定するように命令する。統合ストレージプール拡張制御プログラム303−4は、ディスク管理テーブル103−1に対して、他のフロントエンドストレージサブシステム100のマウントされたクロスマウントボリューム132を設定するように命令する。統合ストレージプール拡張制御プログラム303−4は、階層式プール管理テーブル103−2に対して、マウントされたクロスマウントボリューム132の階層を設定するように命令する。
0130 C2.統合ストレージプールボリュームプロビジョニング
0131 図29は、統合ストレージプール600からのボリュームプロビジョニングのシーケンスの一例を示す。このシーケンスは以下の手順を含む。手順S2−1では、ユーザは、統合ストレージプール管理サーバ300にボリューム構成(例えば、容量、QoS(階層611の選択)、及び接続されたホスト構成を含む)を入力する。手順S2−2では、統合ストレージプール管理サーバ300は、各フロントエンドストレージサブシステム100の現在のリソース状態から、ネットワークゾーンの設定、適切なストレージサブシステム、及び適切な階層(階層111)を選択する。統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100a及び100bに対して、前記生成された構成の構成を備えたホストボリューム131を供給するように命令する。統合ストレージプール管理サーバ300は、ホスト500に対して、供給されたホストボリューム131をマウントするように命令する。手順S2−3では、フロントエンドストレージサブシステム100は、階層式シンプロビジョニングプール110の構成情報を転送する。手順S2−4では、フロントエンドストレージサブシステム100は、指定された構成を備えるホストボリューム131を確立する。手順S2−5では、ホストボリューム131が供給される。手順S2−6では、ホスト500は、指定されたホストボリューム131とのボリューム接続を確立する。
0132 図30は、図29のシーケンス後のシステムの状態を示す。フロントエンドストレージサブシステム100のホストボリューム131は、階層式シンプロビジョニングプール110から供給される。フロントエンドストレージサブシステム100のホストボリューム131は、ホスト500から接続される。
0133 図31は、図30の状態を達成するためのデータ、情報、及び命令の流れを示す。統合ストレージプールボリューム制御プログラム303−7は、ストレージサブシステム管理テーブル303−2及び統合ストレージプール階層管理303−1からリソース構成を取得する。統合ストレージプールボリューム制御プログラム303−7は、供給されたホストボリューム131の情報をストレージサブシステム管理テーブル303−2に格納する。統合ストレージプールボリューム制御プログラム303−7は、ボリューム管理テーブル103−3に対して、供給されたホストボリューム131を設定するように命令する。統合ストレージプール拡張制御プログラム303−4は、パス管理モジュール501に対して、ホストボリューム131への接続を設定するように命令する。
0134 C3.ホストI/O
0135 図32は、ホスト500からホストボリューム131へのI/Oのシーケンスの一例を示す。このシーケンスは以下の手順を含む。手順S3−1では、ホスト500は、フロントエンドストレージサブシステム100のホストボリューム131に書き込みI/Oを送信する。手順S3−2では、フロントエンドストレージサブシステム100は、データを受信する。手順S3−3では、ホストボリューム131は、受信されたデータをキャッシュ領域に格納する。手順S3−4では、フロントエンドストレージサブシステム100はキャッシュ状態を定期的にチェックし、デステージされていないデータを見つけた場合は、フロントエンドストレージサブシステム100は、データをディスクに格納する。フロントエンドストレージサブシステム100が、まだデータに対して容量ページを割り当てていない場合は、新しい容量ページを割り当てる。手順S3−5では、ホストボリューム131は、必要な場合は、容量ページの割り当てによってデータをデステージする。手順S3−6では、RAIDグループ112は、書き込みデータをディスクに格納する。手順S3−7では、ホスト500は、フロントエンドストレージサブシステム100のホストボリューム131に読み出しI/Oを送信する。手順S3−8では、フロントエンドストレージサブシステム100は、データを送信する。手順S3−9では、ホストボリューム131は、読み出しデータをディスクからキャッシュ領域にステージする。手順S3−10では、RAIDグループ112は、データをディスクからキャッシュ領域に転送する。
0136 図33は、図32の書き込みI/Oの後のシステムの状態を示す。ホストボリューム131上のボリュームページ131−1は、容量ページ131−2に割り当てられる。容量ページ131−2の実体は、他のフロントエンドストレージサブシステム100の内部RAIDグループ112−4、外部ボリューム231、又は内部RAIDグループ112−4に存在する。
0137 図34は、図33の状態を達成するためのデータ、情報、及び命令の流れを示す。ホスト500は、I/O要求及びデータをボリュームI/O制御プログラム103−6に送信する。ボリュームI/O制御プログラム103−6は、ボリューム構成を取得するためにボリューム管理テーブル103−3を参照する。ボリュームI/O制御プログラム103−6は、データをキャッシュ領域103−0に格納する。ディスク制御プログラム103−7は、ダーティデータを見つけるために、キャッシュ領域103−0の状態をチェックする。ディスク制御プログラム103−7は、領域が容量ページを割り当てる必要があるか否かを判定するために、ページ管理テーブル103−4を参照する。容量ページの割当が必要な場合、ディスク制御プログラム103−7は、容量ページがそこから割り当てられるべき階層を見つけるために、階層式プール管理テーブル103−2を参照する。ディスク制御プログラム103−7はさらに、ボリュームページと容量ページの関係情報をページ管理テーブル103−4に格納する。ディスク制御プログラム103−7は、ページ管理テーブル103−4及びディスク管理テーブル103−1からダーティデータのディスク及びアドレス情報を見つけ、このデータをディスク106又は外部ボリューム231に転送する。
0138 C4.フロントエンドストレージサブシステムの自動階層式ストレージ管理
0139 図35は、階層式ストレージ管理のシーケンスの一例を示す。手順S4−1では、フロントエンドストレージサブシステム100は、各割り当てられたボリュームページの階層構成を定期的にチェックする。フロントエンドストレージサブシステム100は、I/O作業負荷交代及び/又はユーザ要件(すなわち、階層構成の変更)の後で、割り当てられた階層を変更する。再割り当ての方法は、新しい容量ページを選択すること、容量ページ上のデータを既存の容量ページから新しく割り当てられた容量ページにコピーすること、及びページ管理テーブル103−4上のマッピング情報を新しく割り当てられた容量ページに変更することを含む。手順S4−2では、RAIDグループ112は、データをコピーする。手順S4−3では、ホストボリューム132は、ボリュームページのマッピング情報を変更する。
0140 図36は、ページ移動中のシステムの状態を示す。容量ページ131−2a上のデータは、他の容量ページ131−2bにコピーされる。ボリュームページ131−1は、マッピングを容量ページ131−2a上のデータから容量ページ131−2b上のデータに変更する。
0141 図37は、階層交代の必要性を見つけるためのデータ、情報、及び命令の流れを示す。性能モニタプログラム103−5は、ボリュームI/O制御プログラム103−6、キャッシュ領域103−0、ディスク制御プログラム103−7、及び階層式プール管理テーブル103−2から作業負荷及び性能情報をチェックする。ボリュームI/O制御プログラム103−6は、I/O作業負荷及びI/Oレイテンシ情報及び読み出し/書き込み率を提供する。キャッシュ領域103−0は、キャッシュヒット率情報を提供する。ディスク制御プログラム103−7は、ディスク作業負荷及びディスクレイテンシ情報を提供する。階層式プール管理テーブル103−2は、階層状態及び使用情報を提供する。
0142 図38は、階層を変更するために容量ページを移動するためのデータ、情報、及び命令の流れを示す。性能モニタプログラム103−5は、ページ制御プログラム103−8に移動を開始するように通知又は指示する。ページ制御プログラム103−8は、階層式プール管理テーブル103−2をチェックすることによって、適切な階層から新しい容量ページを割り当てる。ページ制御プログラム103−8は、ディスク制御プログラム103−7に対して、データを2つの容量ページの間でコピーするように命令して、ページ管理テーブル103−4上のマッピング情報を変更する。ディスク制御プログラム103−7は、データをコピーする。ディスク制御プログラム103−7は、RAIDグループの構成を取得するために、ディスク管理テーブル103−1を参照する。コピープロセスには、データを転送するために、キャッシュ領域103−0を使用する。ディスク制御プログラム103−7は、データをディスク106又は外部ボリューム231に格納する。
0143 C5.リソース情報収集
0144 図39は、各フロントエンドストレージサブシステム100からのリソース情報収集のシーケンスの一例を示す。手順S5−1では、統合ストレージプール管理サーバ300は、定期的に、各フロントエンドストレージサブシステム100からリソース情報を要求する。手順S5−2では、フロントエンドストレージサブシステム100は、リソース情報を統合ストレージプール管理サーバ300に報告する。この情報は、I/O作業負荷(トランザクション等)、階層使用(容量、I/O局所性等)、及びI/O性能(I/O率、キャッシュヒット率等)を含む。
0145 図40は、階層を変更するために容量ページを移動するためのデータ、情報、及び命令の流れを示す。性能モニタプログラム103−5は、作業負荷及び実性能情報を統合ストレージプールモニタプログラム303−1に報告する。この情報は、I/O作業負荷、I/Oレイテンシ、読み出し/書き込み率、ヒット率、及びディスクレイテンシを含む。階層式プール管理テーブル103−2は、各階層のリソース使用情報を統合ストレージプールモニタプログラム303−1に報告する。この情報は、階層状態及び階層使用を含む。ボリューム管理テーブル103−3は、各ボリュームのリソース使用情報を統合ストレージプールモニタプログラム303−1に報告する。この情報は、ボリューム状態、ボリューム使用、及びボリューム作業負荷を含む。
0146 C6.他のストレージサブシステムによる外部ボリュームのリマウント
0147 図41は、フロントエンドストレージサブシステム100間で外部ボリュームのマウントを変更するシーケンスの一例を示す。このシーケンスは、ステップ303−8−6及びステップ303−8−7で実行される。手順S6−1では、統合ストレージプール管理サーバ300は、マウントするフロントエンドストレージサブシステム100bを変更するために外部ボリューム231を選択し、かつリマウントするフロントエンドストレージサブシステム100aを選択する。統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100bに対して、外部ボリューム231を除去するように命令する。除去操作の後で、統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100aに対して、アンマウントされた外部ボリューム231をマウントし、かつその階層式シンプロビジョニングプール110をインストールするように命令する。手順S6−2では、フロントエンドストレージサブシステム100bは、指定された外部ボリューム231上の既に割り当てられた容量ページを他のRAIDグループに移動する。手順S6−3では、外部ボリュームを含むRAIDグループ132は、データを、指定された外部ボリューム231から他のRAIDグループにコピーする。手順S6−4では、ホストボリューム131及びクロスマウントボリューム132は、コピーされた容量ページのマッピング情報を変更する。手順S6−5では、フロントエンドストレージサブシステム100bは、指定された外部ボリューム231をアンマウントする。手順S6−6では、アンマウントされた外部ボリューム231は、階層式シンプロビジョニングプール110から離れる。手順S6−7では、フロントエンドストレージサブシステム100aは、アンマウントされた外部ボリューム231をマウントする。手順S6−8では、マウントされた外部ボリューム231は、階層式シンプロビジョニングプール110に加わる。
0148 図42は、リマウントプロセスの間のシステムの状態を示す。フロントエンドストレージサブシステム100bは、外部ボリューム231をマウントするRAIDグループ112−5上に存在する容量ページ131−1を他のRAIDグループ112に移動し、外部ボリューム231をアンマウントする。フロントエンドストレージサブシステム100aは、外部ボリューム231をマウントし、これを階層式シンプロビジョニングプール110に設定する。
0149 図43は、外部ボリューム231をリマウントするためのデータ、情報、及び命令の流れを示す。統合ストレージリソース制御プログラム303−8は、ストレージサブシステム管理テーブル303−2をチェックすることによって、リソースのアンバランスを見つける。統合ストレージリソース制御プログラム303−8は、ストレージサブシステム管理テーブル303−2、統合ストレージ階層管理テーブル303−1、及びシステム情報テーブル303−3を参照することによって、リバランスする最善の方法を考慮する。その結果、統合ストレージリソース制御プログラム303−8は、外部ボリュームのマウントを、フロントエンドストレージサブシステム100bからフロントエンドストレージサブシステム100aに変更する方法を選択する。統合ストレージリソース制御プログラム303−8は、フロントエンドストレージサブシステム100b上の階層式プール管理テーブル103−2に対して、階層式シンプロビジョニングプール110から、外部ボリューム231をマウントするRAIDグループ112を除去するように命令する。統合ストレージリソース制御プログラム303−8は、フロントエンドストレージサブシステム100b上のディスク管理テーブル103−1に対して、外部ボリューム231をアンマウントするように命令する。フロントエンドストレージサブシステム100b上のページ制御プログラム103−8は、階層式プール管理テーブル103−2をチェックすることによって、適切な階層から新しい容量ページを割り当てる。ページ制御プログラム103−8は、ディスク制御プログラム103−7に対して、データを2つの容量ページの間でコピーするように命令し、ページ管理テーブル103−4上のマッピング情報を変更する。
0150 フロントエンドストレージサブシステム100b上のディスク制御プログラム103−7は、RAIDグループの構成を取得するためにディスク管理テーブル103−1を参照し、データを転送するためにキャッシュ領域103−0を使用し、かつデータをディスク106又は外部ボリューム231に格納することによって、データをコピーする。統合ストレージリソース制御プログラム303−8は、外部ボリューム231に対して、パスを、フロントエンドストレージサブシステム100bからフロントエンドストレージサブシステム100aに変更するように命令する。統合ストレージリソース制御プログラム303−8は、フロントエンドストレージサブシステム100a及びディスク管理テーブル103−1に対して、外部ボリューム231をRAIDグループ112としてマウントするように命令する。統合ストレージリソース制御プログラム303−8は、フロントエンドストレージサブシステム100a及び階層式プール管理テーブル103−2に対して、外部ボリューム231をマウントするRAIDグループ112を階層式シンプロビジョニングプール110に加えるように命令する。
0151 C7.他のストレージからの貸与容量の追加
0152 図44は、他のフロントエンドストレージサブシステム100から容量をマウントするためのインクリメントのシーケンスの一例を示す。このシーケンスは、ステップ303−8−9及びステップ303−8−10で実行される。このシーケンスは以下の手順を含む。手順S7−1では、統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100aに容量を貸与するために、フロントエンドストレージサブシステム100bを選択する。統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100bに対して、クロスマウントボリューム132を供給するように命令する。プロビジョニング操作の後で、統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100aに対して、クロスマウントボリューム132をマウントし、その階層式シンプロビジョニングプール110をインストールするように命令する。手順S7−2では、フロントエンドストレージサブシステム100bは、クロスマウントボリューム132の用のQoS設定を備えた自己の階層式シンプロビジョニングプール110からクロスマウントボリューム132を供給する。手順S7−3では、クロスマウントボリューム132が確立される。手順S7−4では、フロントエンドストレージサブシステム100aは、フロントエンドストレージサブシステム100bの供給されたクロスマウントボリューム132をRAIDグループ112−6としてマウントし、RAIDグループ112−6を階層式シンプロビジョニングプール110にインストールする。手順S7−5では、クロスマウントボリューム132をマウントするRAIDグループ112−6は、階層式シンプロビジョニングプール110に結合される。
0153 図45は、追加プロセス後のシステムの状態を示す。フロントエンドストレージサブシステム100aは、フロントエンドストレージサブシステム100bのクロスマウントボリューム132をマウントする。フロントエンドストレージサブシステム100aは、階層式シンプロビジョニングプール110のリソースのために、マウントされたクロスマウントボリューム132を使用する。
0154 図46は、外部ボリューム231をリマウントするためのデータ、情報、及び命令の流れを示す。統合ストレージリソース制御プログラム303−8は、ストレージサブシステム管理テーブル303−2をチェックすることによって、リソースのアンバランスを見つける。統合ストレージリソース制御プログラム303−8は、ストレージサブシステム管理テーブル303−2、統合ストレージ階層管理テーブル303−1、及びシステム情報テーブル303−3を参照することによってリバランスする最善の方法を考慮する。その結果、統合ストレージリソース制御プログラム303−8は、容量をフロントエンドストレージサブシステム100bからフロントエンドストレージサブシステム100aに貸与する方法を選択する。統合ストレージリソース制御プログラム303−8は、フロントエンドストレージサブシステム100b上のボリューム管理テーブル103−3に対して、クロスマウントボリューム231を供給するように命令する。統合ストレージリソース制御プログラム303−8は、フロントエンドストレージサブシステム100a上のディスク管理テーブル103−1に対して、クロスマウントボリュームをフロントエンドストレージサブシステム100bにマウントし、かつマウントされたクロスマウントボリューム132を階層式シンプロビジョニングプール110に結合するように命令する。
0155 C8.他のストレージへのボリューム移動
0156 図47は、2つのストレージサブシステムの間のボリューム移動のシーケンスの一例を示す。このシーケンスは、ステップ303−8−8で実行される。手順S8−1では、統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100aからフロントエンドストレージサブシステム100bに移動するために、ホストボリューム131を選択する。統合ストレージプール管理サーバ300は、フロントエンドストレージサブシステム100aからフロントエンドストレージサブシステム100bに移動するように命令する。手順S8−2では、フロントエンドストレージサブシステム100bは、フロントエンドストレージサブシステム100a上の指定されたホストボリューム131の構成及びデータをコピーする。手順S8−3では、フロントエンドストレージサブシステム100aは、ホストボリューム131のデータ及び構成を転送する。手順S8−4では、フロントエンドストレージサブシステム100a上のホストボリューム131は、データを転送する。手順S8−5では、フロントエンドストレージサブシステム100b上のホストボリューム131が供給され、データを格納する。手順S8−6では、ホスト500は、パスを、フロントエンドストレージサブシステム100a上のホストボリューム131からフロントエンドストレージサブシステム100b上のホストボリューム131に変更する。手順S8−7では、フロントエンドストレージサブシステム100aは、ホストパスを切断する。手順S8−8では、フロントエンドストレージサブシステム100bは、ホストパスを接続する。手順S8−9では、フロントエンドストレージサブシステム100aは、移動されたホストボリューム131を削除する。手順S8−10では、移動されたホストボリューム131は、割り当てられた容量ページを解放する。
0157 図48は、移動プロセス中のシステムの状態を示す。フロントエンドストレージサブシステム100aは、ホストボリューム131をフロントエンドストレージサブシステム100bに移動する。ホスト500は、パスを、フロントエンドストレージサブシステム100aからフロントエンドストレージサブシステム100bに変更する。
0158 図49は、外部ボリューム231をリマウントするためのデータ、情報、及び命令の流れを示す。統合ストレージリソース制御プログラム303−8は、ストレージサブシステム管理テーブル303−2をチェックすることによって、リソースのアンバランスを見つける。統合ストレージリソース制御プログラム303−8は、ストレージサブシステム管理テーブル303−2、統合ストレージ階層管理テーブル303−1、及びシステム情報テーブル303−3を参照することによって、リバランスする最善の方法を考慮する。その結果、統合ストレージリソース制御プログラム303−8は、オンラインボリュームをフロントエンドストレージサブシステム100aからフロントエンドストレージサブシステム100bに移動する方法を選択する。
0159 統合ストレージリソース制御プログラム303−8は、ボリューム移動制御プログラム103−9に対して、ホストボリューム131をフロントエンドストレージサブシステム100bに移動するように命令する。フロントエンドストレージサブシステム100a上のボリューム移動制御プログラム103−9は、ボリューム管理テーブル103−3、階層式プール管理テーブル103−2、及びページ管理テーブル103−4からホストボリューム131の構成を収集する。ページ管理テーブル103−4から割り当て情報を知ることが特に重要である。この情報が、ページ未割り当て領域のためのコピーを除外又は排除することによって、移動のための帯域幅を減らすのに有用であるためである。フロントエンドストレージサブシステム100a上のボリューム移動制御プログラム103−9は、ディスク制御プログラム103−7に対して、外部ボリューム231及び/又はディスク106からキャッシュ領域103−3にデータを転送するように命令する。フロントエンドストレージサブシステム100a上のボリューム移動制御プログラム103−9は、キャッシュ領域103−0からデータを読み出し、データ及び構成を、フロントエンドストレージサブシステム100b上のボリューム移動制御プログラム103−9に転送する。フロントエンドストレージサブシステム100b上のボリューム移動制御プログラム103−9は、ボリューム管理テーブル103−9に前記構成を備えるホストボリューム131を適用することによって、前記構成を備えるホストボリューム131を供給し、かつデータをキャッシュ領域103−0に格納する。ディスク制御プログラム103−7は、ページ管理テーブル103−4を変更することによって容量ページを割り当てる。ディスク制御プログラム103−7は、ディスク管理テーブル103−1でマッピングを解決することによって、キャッシュ領域103−0上のデータを外部ボリューム231又はディスク106に格納する。
0160 C9.統合ストレージプール削減
0161 図50は、ストレージサブシステムの除去による、統合ストレージプール600の削減のシーケンスの一例を示す。手順S9−1では、ユーザは、統合ストレージプールから除去されるべきストレージサブシステムを指定する。プール削減プロセスが完了した後で、ユーザは、システムからストレージを除去する。手順S9−2では、統合ストレージプール管理サーバ300は、指定されたストレージサブシステムの構成をチェックする。
0162 ストレージサブシステムがバックエンドストレージサブシステム200である場合は、以下が生じる。除去されたバックエンドストレージサブシステム200をマウントするフロントエンドストレージサブシステム100は、容量ページを外部ボリューム216から他のRAIDグループ112に再割り当てする。フロントエンドストレージサブシステム100は、外部ボリューム216をアンマウントする。
0163 ストレージサブシステムがフロントエンドストレージサブシステム100である場合は、以下が生じる。フロントエンドストレージサブシステム100aは、ホストボリューム131のデータ及び構成を他のフロントエンドストレージサブシステム100にコピーする。コピーされたホストボリューム131に接続するホスト500は、ターゲットホストボリューム131をコピーするためのパスを変更する。フロントエンドストレージサブシステム100aは、コピー元ホストボリューム131を削除する。除去されたフロントエンドストレージサブシステム100aを含まないフロントエンドストレージサブシステム100bは、除去されたフロントエンドストレージサブシステム100上にクロスマウントボリューム132をマウントするRAIDグループから容量ページを再割り当てする。除去されたフロントエンドストレージサブシステム100aを含まないフロントエンドストレージサブシステム100bは、除去されたフロントエンドストレージサブシステム100aのクロスマウントボリューム132をアンマウントする。除去されたフロントエンドストレージサブシステム100は、外部ボリューム231をアンマウントする。除去されたフロントエンドストレージサブシステム100aを含まないフロントエンドストレージサブシステム100bは、アンマウントされた外部ボリューム231をマウントする。
0164 手順S9−3では、フロントエンドストレージサブシステム100は、すべてのホストボリューム131の構成及びデータを読み出す。手順S9−4では、ホストボリューム131は、データを転送する。手順S9−5では、フロントエンドストレージサブシステム100aは、ホストボリューム131のデータ及び構成をフロントエンドストレージサブシステム100aに転送する。手順S9−6では、フロントエンドストレージサブシステム100b上のホストボリューム131は供給され、データを格納する。手順S9−7では、ホスト500は、パスを、フロントエンドストレージサブシステム100aからフロントエンドストレージサブシステム100bに変更する。手順S9−8では、フロントエンドストレージサブシステム100a上のホストボリューム131は、ホストパスを切断する。手順S9−9では、フロントエンドストレージサブシステム100b上のホストボリューム131は、ホストパスを接続する。手順S9−10では、フロントエンドストレージサブシステム100aは、すべてのホストボリューム131を削除する。手順S9−11では、ホストボリューム131が削除される。手順S9−12では、フロントエンドストレージサブシステム100bは、外部ボリューム231をマウントするRAIDグループ上の容量ページを他のRAIDグループに再割り当てする。手順S9−13では、RAIDグループは、データを他のRAIDグループ112にコピーする。手順S9−14では、クロスマウントボリューム132は、容量ページのためのマッピングを変更する。手順S9−15では、フロントエンドストレージサブシステム100bは、階層式シンプロビジョニングプール110から、クロスマウントボリューム132をマウントするRAIDグループ112を除去する。フロントエンドストレージサブシステム100bは、マウントされたクロスマウントボリューム132をアンマウントする。手順S9−16では、フロントエンドストレージサブシステム100a上のクロスマウントボリューム132がアンマウントされる。手順S9−17では、フロントエンドストレージサブシステム100aは、外部ボリューム216をアンマウントする。手順S9−18では、RAIDグループ112は、外部ボリューム216をアンマウントする。手順S9−19では、フロントエンドストレージサブシステム100bは、フロントエンドストレージサブシステム100aにマウントされた外部ボリューム216をマウントする。手順S9−20では、RAIDグループ112は、外部ボリューム216をマウントする。手順S9−21では、フロントエンドストレージサブシステム100aがシステムから除去される。
0165 図51は、統合ストレージプール600の削減プロセスの間のシステムの状態を示す。フロントエンドストレージサブシステム100aは、ホストボリューム131をフロントエンドストレージサブシステム100bに移動する。フロントエンドストレージサブシステム100bは、フロントエンドストレージサブシステム100aがマウントした外部ボリューム213をマウントする。フロントエンドストレージサブシステム100bによってマウントされたフロントエンドストレージサブシステム100aのクロスマウントボリューム132への接続が切断される。ホスト500からフロントエンドストレージサブシステム100aのホストボリューム131への接続は、フロントエンドストレージサブシステム100bに引き継がれ又は切り替えられる。
0166 当然のことながら、図1、図4、図10、図13及び図21に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のI/O装置(例えば、CD及びDVDドライブ、フロッピーディスクドライブ、ハードドライブ等)も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネット)、無線ネットワーク、ストレージエリアネットワーク等を含む。
0167 説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
0168 当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置(ハードウェア)を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体(ソフトウェア)上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータ等のプロセッサによって実行され得る。望ましい場合には、圧縮及び/又は暗号化形式で命令を媒体に記憶することができる。
0169 上記により、本発明が、疎結合複数ストレージ環境のための階層式ストレージプール管理及び制御の方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。