(57)【特許請求の範囲】
【請求項１】
フロントエンドストレージサブシステムと、他のフロントエンドストレージサブシステムと、を備えるシステムであって、
前記フロントエンドストレージサブシステムは、前記フロントエンドストレージサブシステムに対して外部のストレージサブシステム上のボリュームを外部ボリュームとして使用し、前記フロントエンドストレージサブシステム内である内部ディスクを有するプールと、
ホストコンピュータから入出力（Ｉ／Ｏ）コマンドを受信し、前記ホストコンピュータに前記プールからホストボリュームを提供し、前記他のフロントエンドストレージサブシステムに前記プールからクロスマウントボリュームを提供するストレージコントローラと、を備え、
前記他のフロントエンドストレージサブシステムは、前記他のフロントエンドストレージサブシステムに対して外部のストレージサブシステム上の前記クロスマウントボリュームを含むボリュームを他の外部ボリュームとして使用し、前記他のフロントエンドストレージサブシステム内である他の内部ディスクを有する他のプールと、
ホストコンピュータからＩ／Ｏコマンドを受信し、前記ホストコンピュータに前記他のプールから他のホストボリュームを提供する他のストレージコントローラと、を備え、
前記ホストボリュームは、前記ストレージコントローラによって、前記プールの前記内部ディスクと前記外部ボリュームとの少なくともいずれか一方から１以上のページを割り当てられ、
前記クロスマウントボリュームは、前記ストレージコントローラによって、前記外部ボリュームではなく前記プールの前記内部ディスクから１以上のページを割り当てられ、
前記他のホストボリュームは、前記他のストレージコントローラによって、前記他のプールの前記他の内部ディスクと前記他の外部ボリュームとの少なくともいずれか一方から１以上のページを割り当てられる、システム。
【請求項２】
前記他のフロントエンドストレージサブシステムの前記他のストレージコントローラは、前記フロントエンドストレージサブシステムに前記他のプールから他のクロスマウントボリュームを提供し、
前記フロントエンドストレージサブシステムは、前記他のクロスマウントボリュームを含む外部のストレージサブシステム上のボリュームを前記外部ボリュームとして使用し、
前記他のクロスマウントボリュームは、前記他のストレージコントローラによって、前記他の外部ボリュームではなく前記他のプールの前記他の内部ディスクから１以上のページを割り当てられる、請求項１に記載のシステム。
【請求項３】
前記クロスマウントボリュームは、前記ストレージコントローラによって、前記外部ボリュームから１以上のページを割り当てることが禁止される、請求項１または請求項２に記載のシステム。
【請求項４】
前記他のクロスマウントボリュームは、前記他のストレージコントローラによって、前記他の外部ボリュームから１以上のページを割り当てることが禁止される、請求項２または請求項３に記載のシステム。
【請求項５】
前記外部のストレージサブシステムは、１以上のバックエンドストレージサブシステムを有する、請求項１乃至４のいずれか一項に記載のシステム。
【請求項６】
前記ストレージコントローラは、前記プールのリソースの状態に基づき、前記外部ボリュームとして使用した前記外部のストレージサブシステム上のボリュームを解放する、請求項５に記載のシステム。
【請求項７】
前記他のストレージコントローラによる、前記他のプールのリソースの状態に基づき、前記他の外部ボリュームとして使用した前記外部のストレージサブシステム上のボリュームを解放する、請求項５に記載のシステム。
【請求項８】
前記ストレージコントローラは、前記プールの前記内部ディスクと前記外部ボリュームとを、複数のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）グループとして管理し、
前記他のストレージコントローラは、前記他のプールの前記他の内部ディスクと前記他の外部ボリュームとを、他の複数のＲＡＩＤグループとして管理する、請求項５に記載のシステム。
【請求項９】
管理サーバをさらに備えるシステムであって、
前記管理サーバは、前記プールのリソースの状態に基づき、前記フロントエンドストレージサブシステムに、前記外部ボリュームとして使用した前記バックエンドストレージサブシステムのボリュームを解放させる命令を送信する、請求項５に記載のシステム。
【請求項１０】
管理サーバをさらに備えるシステムであって、
前記管理サーバは、前記プールのリソースの状態に基づき、前記フロントエンドストレージサブシステムに、前記バックエンドストレージサブシステム上のボリュームを前記外部ボリュームとして使用させる命令を送信する、請求項５に記載のシステム。
【請求項１１】
前記管理サーバの命令により、前記フロントエンドストレージサブシステムが使用する前記外部ボリュームは、前記他のフロントエンドストレージサブシステムが解放した前記バックエンドストレージサブシステム上のボリュームである、請求項１０に記載のシステム。
【請求項１２】
管理サーバをさらに備えるシステムであって、
前記管理サーバは、前記プールと前記他のプールの各リソースの状態に基づき、前記フロントエンドストレージサブシステムに、前記他のフロントエンドストレージサブシステムへ前記クロスマウントボリュームを提供させる命令を送信する、請求項５に記載のシステム。
【請求項１３】
前記管理サーバは、前記他のフロントエンドストレージサブシステムに、前記フロントエンドストレージサブシステムから提供された前記クロスマウントボリュームを使用する命令を送信する、請求項１２記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は、一般的にストレージシステムに関し、特に疎結合複数異種ストレージ環境のための階層式ストレージプール管理及び制御に関する。疎結合接続は、標準化されたネットワーク及び広くない（内部バスより狭い）ネットワークを使用し、ネットワークに接続された各デバイスの制御は、他のデバイスの制御から独立している。疎結合接続を使用することによって、異種（マルチベンダ、マルチタイプの製品、及び多世代の製品）の装置を一つのシステムに統合することができる。
【背景技術】
【０００２】
０００２    ストレージ仮想化は、広く使用されている技術である。例えば、シンプロビジョニング及びページ単位階層式ストレージ等を含む。ストレージ仮想化技術の使用は、ストレージの有用性及び効率を向上させることができる。有用性の向上は、内部構成（例えば、ディスク構成、階層構成、データ位置等）を隠すことによる。効率の向上は、ストレージリソース（例えば、ディスク作業負荷、プロセッサ作業負荷、内部バス作業負荷、容量等）の共有による。一般に、これらのストレージ仮想化技術は、一つのストレージコントローラでのみ適用することができる。一つの例外は、「外部ボリュームのマウント」機能が関わる場合であり、外部ボリュームのマウント機能は、高性能ストレージサブシステムと低コストストレージサブシステムの間の階層式管理の状況に適切である。しかし、これは、高性能ストレージサブシステムを高性能ストレージサブシステムに接続することによって、リソースの浪費及び性能の不要なオーバーヘッドを引き起こす。多くのユーザは、そのＩＴ（情報技術）システムに複数のストレージサブシステムを有する。各ストレージサブシステムは、他のストレージサブシステムから独立している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
これによって、システム設計及びシステム操作のために、困難かつ面倒なストレージシステム管理がもたらされる。結果として、２つの高性能ストレージの間のリソース共有が困難であるため、全体的なストレージシステムのリソースが浪費される。複数のストレージサブシステムを含む環境で、総リソース量を管理し、かつ効率を向上させることは困難である。
【課題を解決するための手段】
【０００４】
０００３    本発明の典型的な実施形態は、全体的なストレージシステムの管理可能性を向上させるための方法及び装置を提供するものであり、統合ストレージプール管理が、各階層のリソース量を示す。統合／システムストレージプールは、複数のストレージサブシステムを含む。各階層の量は、各ストレージサブシステムのプールの階層容量の合計である。ストレージシステムの制御を向上させるために、各ストレージサブシステムは、それ自身のリソースを管理する。ストレージサブシステムが他のストレージサブシステムのリソースを使用する必要がある場合は、そのストレージサブシステムは、標準的なＩ／Ｏインタフェースによって当該リソースにアクセスする。ストレージサブシステムは、外部リソースで階層管理制御を実行することができ、外部リソースの階層の優先順位は、ネットワーク及び外部ストレージ性能に左右される。ストレージリソースの効率を向上させるために、統合ストレージ管理は、複数のストレージサブシステムの間でリバランスする方法を選択することができ、ストレージサブシステムは、その選択に従ってリソース及び／又はデータの割り当てを変更する。例えば、ストレージサブシステムの間での容量貸与、ストレージサブシステム間でのオンラインボリューム移動、ストレージサブシステム間での外部ボリュームへのパス変更を含む。リソース割り当ての循環を避けるために、ストレージサブシステムは、別のストレージサブシステムのために他方のストレージサブシステムリソース上にページを割り当てることを禁止し、ストレージサブシステムは、ユーザに、他方のストレージサブシステムから貸与するリソース量を示さない。
【０００５】
０００４    本発明の一態様に従って、システムは、ホストコンピュータから入出力（Ｉ／Ｏ）コマンドを受信するとともに、前記ホストコンピュータに第１のストレージボリュームを提供する第１のストレージコントローラを含む第１のストレージシステムと、ホストコンピュータからＩ／Ｏコマンドを受信するとともに、前記ホストコンピュータに第２のストレージボリュームを提供する第２のストレージコントローラを含む第２のストレージシステムとを備える。前記第１のストレージボリュームのうちの一つの第１のデータ記憶領域は、前記第１のストレージコントローラによって第１のプールから割り当てられる。前記第１のストレージボリュームのうちの他の一つの第２のデータ記憶領域は、前記第１のストレージコントローラによって第２のプールから割り当てられる。前記第２のストレージボリュームのうちの一つの第３のデータ記憶領域は、前記第２のストレージコントローラによって前記第１のプールから割り当てられる。前記第２のストレージボリュームのうちの他の一つの第４のデータ記憶領域は、前記第２のストレージコントローラによって前記第２のプールから割り当てられる。
【０００６】
０００５    いくつかの実施形態では、前記第２のストレージコントローラによる、前記第１のプールからの、前記第１のストレージボリュームのうちの前記他の一つの前記第２のデータ記憶領域の割り当てが禁止される。前記第１のストレージコントローラによる、前記第２のプールからの、前記第１のストレージボリュームのうちの前記他の一つの前記第２のデータ記憶領域の割り当てに応じて、前記第２のストレージコントローラは、前記第２のプールの容量から、前記第１のボリュームに割り当てられた量を減ずる。前記第１のストレージコントローラによる、前記第２のプールからの、前記第１のストレージボリュームのうちの前記他の一つの前記第２のデータ記憶領域の割り当てに応じて、前記第２のストレージコントローラは、前記第２のプールの容量から、前記第１のボリュームに割り当てられた量を減ずる。前記第１のプールは、複数の第１の階層を使用して管理され、前記第２のプールは、複数の第２の階層を使用して管理され、及び第２のデータ記憶領域に割り当てられた前記第２のプールに割り当てられる記憶媒体は、前記複数の第１の階層から独立した階層として管理される。前記独立階層は、使用される前記記憶媒体のネットワーク特性及びアクセス速度によって決定される。前記記憶媒体が前記第１のプールのために使用される記憶媒体と同じである場合は、前記第１のプールのために使用される前記記憶媒体は、前記独立階層と比べて高い優先順位を有する。
【０００７】
０００６    一実施形態では、管理サーバは、前記システムの負荷要件に基づいて、容量を前記第２のプールから前記第１のストレージシステムに貸与するか、又は前記第１及び第２のストレージコントローラの両方に結合された記憶媒体に対して、前記第２のストレージコントローラから前記第１のストレージコントローラに制御を変更するかを選択する。他の実施形態では、管理サーバは、前記システムの負荷要件に基づいて、容量を前記第２のプールから前記第１のストレージシステムに貸与するか、データを前記第１のストレージボリュームから前記第２のストレージボリュームに移動するか、又は前記第１及び第２のストレージコントローラの両方に結合される記憶媒体に対して、前記第２のストレージコントローラから前記第１のストレージコントローラに制御を変更するかを選択する。
【０００８】
０００７    本発明の他の態様に従って、システムは、ホストコンピュータから入出力（Ｉ／Ｏ）コマンドを受信するとともに、前記ホストコンピュータに第１のストレージボリュームを提供する第１のストレージコントローラを含む第１のストレージシステムと、ホストコンピュータからＩ／Ｏコマンドを受信するとともに、前記ホストコンピュータに第２のストレージボリュームを提供する第２のストレージコントローラを含む第２のストレージシステムと、前記第１のプールに割り当てられる記憶媒体とを備える。前記第１のストレージボリュームのうちの一つの第１のデータ記憶領域は、前記第１のストレージコントローラによって第１のプールから割り当てられる。前記第２のストレージボリュームのうちの一つの第２のデータ記憶領域が、前記第２のストレージコントローラによって第２のプールから割り当てられる。管理サーバからのコマンドに応じて、前記第２のストレージコントローラは、前記記憶媒体を前記第２のプールに割り当て、前記第１のストレージコントローラは、前記第１のプールから前記記憶媒体を解放する。
【０００９】
０００８    特定の実施形態では、管理サーバは、前記システムの負荷要件に基づいて、第１のストレージボリュームを第２のストレージボリュームに移動するか、又は前記第１及び第２のストレージコントローラの両方に結合される記憶媒体に対して、前記第２のストレージコントローラから前記第１のストレージコントローラに制御を変更するかを選択する。
【００１０】
０００９    本発明の他の態様に従って、システムは、各ストレージシステムが、ホストコンピュータから入出力（Ｉ／Ｏ）コマンドを受信するとともに、個別のプールからストレージボリュームを供給するストレージコントローラを含む、複数のストレージシステムと、前記複数のストレージシステムに接続された管理サーバとを備える。前記複数のストレージシステムの各々の前記個別のプールが、複数の記憶媒体に割り当てられるとともに、複数の個別の階層を含む。前記管理サーバは、前記複数のストレージシステムに割り当てられた記憶媒体の情報を収集するとともに、前記収集された情報の前記記憶媒体の特徴に基づいて、前記複数のストレージシステムに割り当てられた記憶媒体を含むシステムプールのための複数のシステム階層を動的に決定する。
【００１１】
００１０    いくつかの実施形態では、前記管理サーバは、前記システムプールのための前記複数のシステム階層に関する決定の結果を、前記複数のストレージシステムに通知する。記憶媒体が前記システムプールに追加された後で、前記管理サーバは、前記追加された記憶媒体の追加によって影響を受ける、前記複数のストレージシステムのうちの一つの該当する個別のプールのための前記複数の個別の階層を調整する。ユーザの要求に応じて、前記管理サーバは、前記システムプールのための前記複数のシステム階層を変更する。前記システムプールのための前記複数のシステム階層の変更に応じて、前記複数の個別の階層は自動的に調整される。前記管理サーバは、前記複数のストレージシステムのための前記ストレージコントローラの条件に基づいて、前記ストレージボリュームの構成又は位置の少なくとも一つを決定する。
【００１２】
００１１    特定の実施形態では、前記ストレージシステムのうちの一つの前記個別のプールを解放するようにという要求に応じて、解放されるべき前記個別のプールの内部ストレージボリュームが、前記複数のストレージシステムのうちの他のストレージシステムの前記個別のプールに移動されるか、前記第１のストレージシステムの前記ストレージコントローラによって割り当てられ、かつ直接制御された記憶媒体が、前記複数のストレージシステムのうちの他のストレージシステムの前記ストレージコントローラに割り当てられるか、又は前記複数のストレージシステムのうちの他のストレージシステムの前記ストレージコントローラによって制御される外部ボリュームのデータが、前記外部ボリュームの前記データを制御する前記他のストレージシステムの前記ストレージコントローラによって制御されるストレージボリュームに移動されるかのうち、少なくとも一つが前記システム内で生じる。外部ボリュームの前記データは、前記外部ボリュームの前記データを制御する前記他のストレージシステムの前記ストレージコントローラによって制御された内部ストレージボリュームに移動されるか、又は前記外部ボリュームの前記データを制御する前記他のストレージシステムの前記個別のプール内のストレージボリュームに移動される。
【００１３】
００１２    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１４】
【図１】００１３    図１は、本発明の方法及び装置が適用され得る情報システムの管理図の一例を示す。
【図２】００１４    図２は、図１の情報システムの論理構成の一例を示す。
【図３】００１５    図３は、各フロントエンドストレージサブシステムの階層式シンプロビジョニングプールの構成、及びフロントエンドストレージサブシステム間の関係を示す。
【図４】００１６    図４は、フロントエンドストレージサブシステムの典型的な構成を示す。
【図５】００１７    図５は、ディスク管理テーブルの一例を示す。
【図６】００１８    図６は、階層管理テーブルの一例を示す。
【図７】００１９    図７は、ボリューム管理テーブルの一例を示す。
【図８】００２０    図８は、階層式シンプロビジョニングプールと、ＲＡＩＤグループと、階層との関係の一例を示す。
【図９】００２１    図９は、ホストボリュームと、クロスマウントボリュームと、階層式シンプロビジョニングと、ページとの関係の一例を示す。
【図１０】００２２    図１０は、統合ストレージプール管理サーバの構成の一例を示す。
【図１１】００２３    図１１は、統合ストレージプール階層管理テーブルのテーブル構造の一例を示す。
【図１２】００２４    図１２は、ストレージサブシステム管理テーブルのテーブル構造の一例を示す。
【図１３】００２５    図１３は、システム情報テーブルのテーブル構造の一例を示す。
【図１４】００２６    図１４は、統合ストレージプール拡張制御プログラムのプロセスを示す流れ図の一例である。
【図１５】００２７    図１５は、統合ストレージプール削減制御プログラムのプロセスを示す流れ図の一例である。
【図１６】００２８    図１６は、統合ストレージプール階層構成制御プログラムのプロセスを示す流れ図の一例である。
【図１７】００２９    図１７は、統合ストレージプールボリューム制御プログラムのプロセスを示す流れ図の一例である。
【図１８】００３０    図１８は、統合ストレージプールリバランシング制御プログラムのプロセスを示す流れ図の一例である。
【図１９】００３１    図１９は、統合ストレージプールモニタプログラムのプロセスを示す流れ図の一例である。
【図２０】００３２    図２０は、ユーザのための入出力（Ｉ／Ｏ）インタフェースとしての統合ストレージプール要素マネージャの一例を示す。
【図２１】００３３    図２１は、ユーザのためのＩ／Ｏインタフェースとしての統合ストレージプール階層マネージャの一例を示す。
【図２２】００３４    図２２は、ユーザのためのＩ／Ｏインタフェースとしての統合ストレージプールボリュームマネージャの一例を示す。
【図２３】００３５    図２３は、シンプロビジョニングプールの階層と統合ストレージプールの階層との関係を示す。
【図２４】００３６    図２４は、ストレージサブシステムのインストール及び統合ストレージプールの拡張のシーケンスの一例を示す。
【図２５】００３７    図２５は、図２４の手順Ｓ１−５の後のシステムの状態を示す。
【図２６】００３８    図２６は、図２５の状態を達成するためのデータ、情報、及び命令の流れを示す。
【図２７】００３９    図２７は、図２４の手順Ｓ１−９の後のシステムの状態を示す。
【図２８】００４０    図２８は、図２７の状態を達成するためのデータ、情報、及び命令の流れを示す。
【図２９】００４１    図２９は、統合ストレージプールからのボリュームプロビジョニングのシーケンスの一例を示す。
【図３０】００４２    図３０は、図２９のシーケンスの後のシステムの状態を示す。
【図３１】００４３    図３１は、図３０の状態を達成するためのデータ、情報、及び命令の流れを示す。
【図３２】００４４    図３２は、ホストからホストボリュームへのＩ／Ｏのシーケンスの一例を示す。
【図３３】００４５    図３３は、図３２の書き込みＩ／Ｏの後のシステムの状態を示す。
【図３４】００４６    図３４は、図３３の状態を達成するためのデータ、情報、及び命令の流れを示す。
【図３５】００４７    図３５は、階層式ストレージ管理のシーケンスの一例を示す。
【図３６】００４８    図３６は、図３５のページ移動の間のシステムの状態を示す。
【図３７】００４９    図３７は、階層交代の必要性を見つけるためのデータ、情報、及び命令の流れを示す。
【図３８】００５０    図３８は、階層を変更するために容量ページを移動するためのデータ、情報、及び命令の流れを示す。
【図３９】００５１    図３９は、各フロントエンドストレージサブシステムからのリソース情報収集のシーケンスの一例を示す。
【図４０】００５２    図４０は、階層を変更するために容量ページを移動するためのデータ、情報、及び命令の流れを示す。
【図４１】００５３    図４１は、フロントエンドストレージサブシステムの間の外部ボリュームのマウントを変更するシーケンスの一例を示す。
【図４２】００５４    図４２は、図４１のリマウントプロセスの間のシステムの状態を示す。
【図４３】００５５    図４３は、外部ボリュームをリマウントするためのデータ、情報、及び命令の流れを示す。
【図４４】００５６    図４４は、他のフロントエンドストレージサブシステムから容量をマウントするためのインクリメントのシーケンスの一例を示す。
【図４５】００５７    図４５は、図４４のリマウントプロセスの間のシステムの状態を示す。
【図４６】００５８    図４６は、外部ボリュームをリマウントするためのデータ、情報、及び命令の流れを示す。
【図４７】００５９    図４７は、２つのストレージサブシステムの間のボリューム移動のシーケンスの一例を示す。
【図４８】００６０    図４８は、図４７の移動プロセスの間のシステムの状態を示す。
【図４９】００６１    図４９は、外部ボリュームをリマウントするためのデータ、情報、及び命令の流れを示す。
【図５０】００６２    図５０は、ストレージサブシステムの除去による統合ストレージプールの削減のシーケンスの一例を示す。
【図５１】００６３    図５１は、図５０の統合ストレージプールの削減プロセスの間のシステムの状態を示す。
【発明を実施するための形態】
【００１５】
００６４    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示している場合もある。
【００１６】
００６５    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００１７】
００６６    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１８】
００６７    以下により詳細に示す本発明の例示的実施形態は、疎結合複数ストレージ環境のための階層式ストレージプール管理又は制御のための装置、方法、及びコンピュータプログラムを提供する。
【００１９】
００６８    本発明の多様な態様は、シンプロビジョニングについてのキャメロンの米国特許第６，８２３，４４２号、外部ボリュームのマウントについてのヤマモト等の米国特許第７，７１１，８９６号、ページ単位の階層式ストレージ管理についてのナガイ（Nagai）等による米国公報第２００７／００５５７１３号、非分断ボリューム移動についてのオタニ等による米国特許公報第２０１０／００７０７２２号、及び２つのストレージモジュールの間のマッピング情報移動についてのKawaguchi による米国特許公報第２００８／０１８４０００号のストレージシステム技術を利用している。これらの開示全体が、参照することによって本明細書中に組み込まれる。
【００２０】
００６９    Ａ．システムの管理図
【００２１】
００７０    図１は、本発明の方法及び装置が適用され得る情報システムの管理図の一例を示す。この図は、システムの構成及び機能性の概要を示す。この情報システムは、データを格納するための複数のフロントエンドストレージサブシステム１００と、ストレージデータのための複数のバックエンドストレージサブシステム２００と、複数のホスト５００とを含む。各ホスト５００は、一つ以上のホストボリューム１３１に接続し、ホストボリューム１３１にＩ／Ｏを送信する。いくつかのホストボリューム１３１は、複数のホスト５００によって共有されてもよい。各ホストボリューム１３１は、データ記憶領域を提供し、かつ統合又はシステムストレージプール６００から供給される。ホストボリューム１３１のデータは、フロントエンドストレージサブシステム１００及び／又はバックエンドストレージサブシステム２００に格納される。
【００２２】
００７１    統合ストレージプール６００は、フロントエンドストレージサブシステム１００と、バックエンドストレージサブシステム２００とを含む。統合ストレージプール６００は、ホスト５００にホストボリューム１３１を提供する。ホストボリューム１３１とデータが位置するストレージとの関係は、統合ストレージプール６００によってユーザから隠されている。統合ストレージプール６００は、オンデマンドで、一つ以上のフロントエンドストレージサブシステム１００及び／又は一つ以上のバックエンドストレージサブシステム２００を追加することができる。除去の後で統合ストレージプール６００のリソースが不足にならない限り、オンデマンドで、一つ以上のフロントエンドストレージサブシステム１００及び／又は一つ以上のバックエンドストレージサブシステム２００を除去することもできる。統合ストレージプール６００は、フロントエンドストレージサブシステム１００とバックエンドストレージサブシステム２００の間で自身のリソースのバランスをとることができる。バランシングプロセスは、ホスト５００からは隠されている。下記でより詳細に説明するように、管理サーバ３００は、前記複数のストレージサブシステムに割り当てられた記憶媒体の情報を収集し、収集された情報の記憶媒体の特徴に基づいて、前記複数のストレージサブシステムに割り当てられた記憶媒体を含むシステムプール６００のための複数のシステム階層を動的に決定する。本明細書中で用いられる「動的」という表現は、管理サーバ３００によるオンライン操作の間に（例えばシステム階層を決定する際に）、前記複数のストレージサブシステムがホストコンピュータからＩ／Ｏ要求を受信できることを意味する。
【００２３】
００７２    Ｂ．システムの構成
【００２４】
００７３    Ｂ１．システムの論理構成
【００２５】
００７４    図２は、図１の情報システムの論理構成の一例を示す。情報システムは、フロントエンドストレージサブシステム１００と、バックエンドストレージサブシステム２００と、統合ストレージプール管理サーバ３００と、ネットワーク４００及び４０１と、ホスト５００とを含む。
【００２６】
００７５    フロントエンドストレージサブシステム１００は、データを格納する。データは、個別のプールとしての階層式シンプロビジョニングプール１１０内に存在する。フロントエンドストレージサブシステム１００は、ホスト５００にホストボリューム１３１を提供し、他のフロントエンドストレージサブシステム１００にクロスマウントボリューム１３２を提供する。フロントエンドストレージサブシステム１００は、ホスト５００及び統合ストレージプール管理サーバ３００に接続される。フロントエンドストレージサブシステム１００は、バックエンドストレージサブシステム２００に接続し、かつネットワーク４０１を介してバックエンドストレージサブシステム２００に／からデータを転送することができる。詳細は、下記の図４で説明する。バックエンドストレージサブシステム２００は、フロントエンドストレージサブシステム１００に接続され、フロントエンドストレージサブシステム２００にバックエンドボリューム２３１を提供する。
【００２７】
００７６    統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００、バックエンドストレージサブシステム２００、及びホスト５００に接続する。統合ストレージプール管理サーバ３００は、ストレージリソース、及びフロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００の構成、並びにホスト５００とフロントエンドストレージサブシステム１００の間の接続を管理する。詳細は、下記の図１０で説明する。
【００２８】
００７７    ネットワーク４００は、ホスト５００、フロントエンドストレージサブシステム１００、及び統合ストレージプール管理サーバ３００の間でデータ、情報、及び命令を転送する。ネットワーク４０１は、フロントエンドストレージサブシステム１００、バックエンドストレージサブシステム２００、及び統合ストレージプール管理サーバ３００の間でデータ、情報、及び命令を転送する。ネットワーク４００とネットワーク４０１は、統合することができる。ホスト５００は、フロントエンドストレージサブシステム１００に接続される。各ホスト５００のパス構成は、ホスト５００のパス管理モジュール５０１で定義される。Ｉ／Ｏパスは、この構成に従う。
【００２９】
００７８    図３は、各フロントエンドストレージサブシステムの階層式シンプロビジョニングプール１１０の構成、及びフロントエンドストレージサブシステム１００間の関係を示す。階層式シンプロビジョニングプール１１０は、一つ以上のＲＡＩＤグループ１１２を含む。ＲＡＩＤグループ１１２は、一つ以上のタイプの階層、例えばＲＡＩＤグループ１１２−１、１１２−２、１１２−３、１１２−４、１１２−６等に分類することができる。ＲＡＩＤグループの各タイプは、信頼性、可用性、性能、容量、費用、接続プロトコル、及び物理的性質における特定の特徴を有する。例としては、ＲＡＩＤレベル、ＨＤＤのＲＰＭ、媒体のタイプ、位置（内部／外部）等を含む。フロントエンドストレージサブシステム１００は、外部ストレージサブシステム上のボリュームを、外部ボリュームマウント機能によって自身のＲＡＩＤグループとして使用することができる。図３で分かるように、バックエンドボリューム２３１は、外部ボリュームマウント機能によってＲＡＩＤグループ１１２−５としてマウントされ、クロスマウントボリューム１３２は、外部ボリュームマウント機能によってＲＡＩＤグループ１１２−６としてマウントされる。階層式シンプロビジョニングプール１１０は、複数の階層に分割される。構成及び制御方法の詳細は、下記の図８及び図９で説明する。
【００３０】
００７９    ホストボリューム１３１及びクロスマウントボリューム１３２は、階層構成を備える階層式シンプロビジョニングプール１１０から供給される。ホストボリューム１３１は、ホスト５００によって接続され、クロスマウントボリューム１３２は、他のフロントエンドストレージサブシステム１００によって接続される。
【００３１】
００８０    Ｂ２．フロントエンドストレージサブシステムの物理構成
【００３２】
００８１    図４は、フロントエンドストレージサブシステム１００の典型的な構成を示す。これは、ストレージコントローラ１０１及びディスク１０６を含む。ストレージコントローラ１０１は、ＣＰＵ１０２と、メモリ１０３と、ホストインタフェース１０４と、ディスクインタフェース１０５と、管理サーバインタフェース１０７と、ディスク１０６とを備える。ＣＰＵ１０２は、メモリ１０３の制御プログラム及び制御テーブルを使用してストレージサブシステムを制御する。メモリ１０３は、データ、プログラム、及びテーブルを格納し、キャッシュ領域１０３−０、ディスク管理テーブル１０３−１、階層式プール管理テーブル１０３−２、ボリューム管理テーブル１０３−３、ページ管理テーブル１０３−４、性能モニタプログラム１０３−５、ボリュームＩ／Ｏ制御プログラム１０３−６、ディスクＩ／Ｏ制御プログラム１０３−７、ページ制御プログラム１０３−８、及びボリューム移動制御プログラム１０３−９を含む。
【００３３】
００８２    メモリ１０３は、読み出し及び書き込みキャッシュデータを格納するためのキャッシュ領域１０３−０を有する。ディスク管理テーブル１０３−１は、ＲＡＩＤグループの構成を管理する（図５を参照）。階層式プール管理テーブル１０３−２は、階層式シンプロビジョニングプール１１０の階層の構成を管理する（図６を参照）。ボリューム管理テーブル１０３−３は、ホストボリューム１３１及びクロスマウントボリューム１３２の設定を管理する（図７を参照）。ページ管理テーブル１０３−４は、シンプロビジョニング機能のページ割り当てを管理する。性能モニタプログラム１０３−５は、ストレージ構成及び作業負荷情報を収集し、これを統合ストレージプール管理サーバ３００に送信する。ボリュームＩ／Ｏ制御プログラム１０３−６は、ホスト５００及びフロントエンドストレージサブシステム１００からの読み出し及び書き込みＩ／Ｏを制御する。ディスクＩ／Ｏ制御プログラム１０３−７は、ディスク１０６、フロントエンドストレージサブシステム１００、及びバックエンドストレージサブシステム２００への読み出し及び書き込みＩ／Ｏを制御する。ページ制御プログラム１０３−８は、シンプロビジョニングページの割り当て及び再割り当てを制御する。書き込みＩ／Ｏが発生した時に、ページ割り当てプロセスが実行される。リソースのアンバランシングが発生した時に、ページ再割り当てプロセスが実行されて、リバランシングが行われる。ＲＡＩＤグループの除去が発生した時に、ページ再割り当てプロセスも実行されて、除去されたＲＡＩＤグループからページが無くなる。ボリューム移動制御プログラム１０３−９は、ボリュームを移動するために、フロントエンドストレージサブシステム１００からの／へのボリュームデータ、ボリューム構成、及びボリューム属性の移動を制御する。
【００３４】
００８３    ホストインタフェース１０４は、ホスト５００に接続するためのインタフェースであり、ホスト５００からホストＩ／Ｏを受信し、これをＣＰＵ１０２に転送する。ディスクインタフェース１０５は、ディスク１０６に接続するためのインタフェースであり、ＣＰＵ１０２から受信されたディスクＩ／Ｏをディスク１０６に送信する。管理サーバインタフェース１０７は、統合ストレージプール管理サーバ３００に接続するためのインタフェースである。管理サーバインタフェース１０７は、ＣＰＵ１０２から受信されたストレージ情報を統合ストレージプール管理サーバ３００に送信し、かつ統合ストレージプール管理サーバ３００から命令を受信し、これをＣＰＵ１０２に転送する。
【００３５】
００８４    ディスクは、ストレージデータを格納する。図４で分かるように、ディスク１０６−１、ディスク１０６−２、ディスク１０６−３、及びディスク１０６−４を含む複数のタイプのディスク１０６が存在する。複数のディスク１０６がＲＡＩＤグループを構成する。ＲＡＩＤグループは、図３のＲＡＩＤグループ１１２である。
【００３６】
００８５    Ｂ３．フロントエンドストレージサブシステムのテーブル構造
【００３７】
００８６    図５は、フロントエンドストレージサブシステム１００のＲＡＩＤグループ１１２の構成を管理する、ディスク管理テーブル１０３−１の一例を示す。このテーブルは、ＲＡＩＤグループＩＤ１０３−１−１、容量情報１０３−１−２、属性情報１０３−１−３、内部／外部位置情報１０３−１−４、ＲＡＩＤレベル情報１０３−１−５、及びディスクＩＤ１０３−１−６の欄を有する。ＲＡＩＤグループＩＤ１０３−１−１は、フロントエンドストレージサブシステム１００の固有の番号である。容量情報１０３−１−２は、ＲＡＩＤグループの使用可能容量を含む。属性情報１０３−１−３は、ＲＡＩＤグループのタイプを提供し、ＲＡＩＤグループの媒体タイプ及び接続タイプを格納する。これは、ＲＡＩＤグループが外部ボリュームであるか否かを示す。ストレージサブシステムのタイプ及びマウントされたボリュームの階層構成等の構成が、統合ストレージプール管理サーバ３００から伝えられる。位置情報１０３−１−４は、接続タイプについての情報（内部又は外部）を示す。ＲＡＩＤレベル情報１０３−１−５は、ＲＡＩＤレベルに関する情報を提供する。ディスクＩＤは、ＲＡＩＤグループの各ディスクのＩＤを含む。ディスクが内部ディスクである場合は、ディスクＩＤは、フロントエンドストレージサブシステム１００のディスクＩＤを格納する。ディスクが外部ボリュームである場合は、ディスクＩＤは、例えばＷＷＮ（ワールドワイドネーム）又はＬＵＮ（論理ユニット番号）を含む、システムで識別できるボリューム情報を格納する。
【００３８】
００８７    図６は、シンプロビジョニングプール１１０の階層の構成を管理する階層管理テーブル１０３−２の一例を示す。テーブルは、階層ＩＤ１０３−２−１、総容量情報１０３−２−２、使用容量情報１０３−２−３、階層構成設定１０３−２−４、ＲＡＩＤグループＩＤ１０３−２−５、及び階層優先順位設定１０３−２−６の欄を有する。階層ＩＤ１０３−２−１は、階層式シンプロビジョニングプール１１０の固有の番号である。総容量情報１０３−２−２は、この階層に属するＲＡＩＤグループの総容量を提供する。使用容量情報１０３−２−３は、割り当てられたページ容量を、階層からホストボリューム１３１及びクロスマウントボリューム１３２に提供する。階層構成設定１０３−２−４は階層の定義であり、階層に属するＲＡＩＤグループのタイプに関する情報を含む。ＲＡＩＤグループＩＤ１０３−２−５は、階層に属するＲＡＩＤグループのＩＤを含む。選択は、階層構成設定１０３−２−４の情報に基づいている。階層優先順位設定１０３−２−６は、階層優先順位の構成を含む。ページ制御プログラム１０３−８は、この情報及びボリューム管理テーブル１０３−３に基づいてページの割り当て及び再割り当てを行う。
【００３９】
００８８    図７は、ホストボリューム１３１及びクロスマウントボリューム１３２の設定を管理するボリューム管理テーブル１０３−３の一例を示す。このテーブルは、ボリュームＩＤ１０３−３−１、ボリューム容量１０３−３−２、割り当てられた容量１０３−３−３、使用可能階層設定１０３−３−４、及びボリュームタイプ情報１０３−３−５の欄を有する。ボリュームＩＤ１０３−３−１は、ボリュームのＩＤである。ボリューム容量１０３−３−２は、ボリュームの容量を提供する。割り当てられた容量１０３−３−３は、ボリュームに割り当てられたページの総容量である。階層設定１０３−３−４は、ボリュームがそこからページを割り当てることができる階層である。ボリュームがクロスマウントボリューム１３２である場合は、それは、クロスマウントボリューム１３２が、他のフロントエンドストレージサブシステムが提供する外部ボリュームを有する階層を使用することを防ぐことによって、複数のフロントエンドストレージサブシステム１００の間の循環ページ割り当てを防ぐことができる。ボリュームタイプ情報１０３−３−５は、ボリュームにアクセスする装置情報を含む。
【００４０】
００８９    Ｂ４．階層式シンプロビジョニング機能の論理構成
【００４１】
００９０    図８は、階層式シンプロビジョニングプール１１０と、ＲＡＩＤグループ１１２と、階層１１１との関係の一例を示す。階層式シンプロビジョニングプール１１０は、複数の階層１１１を含む。各階層１１１は、ＲＡＩＤグループＩＤ１０３−２−５にリストされるＲＡＩＤグループのグループである。ＲＡＩＤグループの選択は、階層構成設定１０３−３−４の情報に基づいている。図８は、階層１１１−１、階層１１１−２、階層１１１−３、階層１１１−４、階層１１１−５、階層１１１−６等の異なるタイプの媒体を備える複数の階層を示す。各階層は、優先順位設定を有する。この情報は、階層優先順位設定１０３−２−５に格納される。
【００４２】
００９１    図９は、ホストボリューム１３１と、クロスマウントボリューム１３２と、階層式シンプロビジョニング１１０と、ページとの関係の一例を示す。ボリュームがシンプロビジョニング機能を使用する場合、ボリュームは、容量ページ１３１−２を、階層式シンプロビジョニングプール１１０から、書き込みＩ／Ｏが発生したアドレスをカバーするボリュームページ１３１−１に割り当てる。ボリュームページ１３１−１と容量ページ１３１−２の関係は、ページ管理テーブル１０３−４に格納される。他の容量ページに割り当てられた容量ページ１３１−２との間のデータコピー、及びボリュームページ１３１−１と容量ページ１３１−２の間のマッピング情報の変更によって、割り当てを変更することができる。フロントエンドストレージサブシステム１００は、性能情報、作業負荷情報、ストレージ構成、残りの階層容量、階層優先順位設定１０３−２−５の階層優先順位設定、及びボリュームタイプ情報１０３−３−５のボリュームＱｏＳ設定に依存する割り当てを自動的に変更する。
【００４３】
００９２    Ｂ５．統合ストレージプール管理サーバの物理構成
【００４４】
００９３    図１０は、統合ストレージプール管理サーバ３００の構成の一例を示す。これは、ＣＰＵ３０１、システム管理インタフェース３０２、メモリ３０３、入力装置３０４、及びディスプレイ３０５を含む。ＣＰＵ３１０は、メモリ３０３の制御プログラム及び制御テーブルを使用することによってサーバ３００を制御する。システム管理インタフェース３０２は、フロントエンドストレージサブシステム１００、バックエンドストレージサブシステム２００、及びホスト５００に接続するためのインタフェースである。システム管理インタフェース３０２は、その構成を変更するために、フロントエンドストレージサブシステム１００、バックエンドストレージサブシステム２００、及びホスト５００にコマンドを送信する。それは、フロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００からストレージ性能及び作業負荷及び構成情報を受信する。
【００４５】
００９４    メモリ３０３は、データ、プログラム、及びテーブルを格納する。統合ストレージプール階層管理テーブル３０３−１は、統合ストレージプール６００の階層構成及び状態情報を格納する。構造の詳細は、図１１に示される。ストレージサブシステム管理テーブル３０３−２は、各フロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００の構成及び状態情報を格納する。この構造の詳細は、図１２に示される。システム情報テーブル３０３−３は、記憶装置以外のシステムのＩＴ装置の構成、性能、及び作業負荷情報を格納する。この構造の詳細は、図１３に示される。統合ストレージプール拡張制御プログラム３０３−４は、新しいフロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００を統合ストレージプール６００にインストールする。このプログラムは、統合ストレージプール階層管理テーブル３０３−１の情報に基づいて、階層構成をフロントエンドストレージサブシステム１００に設定し、外部ボリュームマウント及びクロスマウント構成を設定する。このプロセスの詳細は、図１４に示される。統合ストレージプール削減制御プログラム３０３−５は、統合ストレージプール６００から古いフロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００を除去する。このプログラムは、除去されたフロントエンドストレージサブシステム１００に対して、ストレージリソースを解放するように命令し、除去されないフロントエンドストレージサブシステム１００に対して、除去されたフロントエンドストレージサブシステム１００のデータ及びリソースを引き継ぐように命令する。このプロセスの詳細は、図１５に示される。統合ストレージプール階層構成制御プログラム３０３−６は、統合ストレージプール階層管理テーブル３０３−１の情報に基づいて、各フロントエンドストレージサブシステム１００の階層構成を設定かつ／又は変更する。このプロセスの詳細は図１６に示される。統合ストレージプールボリューム制御プログラム３０３−７は、フロントエンドストレージサブシステム１００を選択し、フロントエンドストレージサブシステム１００に対して、ＱｏＳ設定及びホストパス設定を備えるボリュームを供給するように命令する。このプロセスの詳細は、図１７に示される。統合ストレージプールリソース制御プログラム３０３−８は、許容できないリソースのアンバランスを見つけるためにリソースをチェックする。プログラムがアンバランスを見つけた場合は、フロントエンドストレージサブシステム１００に対して、統合ストレージプール６００のリソースをリバランスするように命令する。このプロセスの詳細は、図１８に示される。統合ストレージプールモニタプログラム３０３−９は、構成、性能、及び作業負荷情報を収集し、各フロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００に警告する。
【００４６】
００９５    入力装置３０４によって、ユーザは、ストレージ構成設定を入力することができる。ディスプレイ３０５は、ユーザのための出力装置であり、ポインタ３０５−０は、ユーザに対して現在の入力領域を示す。ディスプレイ３０５は、いくつかのマネージャを示す。統合ストレージプール要素マネージャ３０５−１は、統合ストレージプール６００への新しいフロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００のインストールを命令するために、ユーザインタフェースとしてウィンドウを提示する。このウィンドウの詳細なイメージは、図２０に示される。統合ストレージプール階層マネージャ３０５−２は、統合ストレージプール６００の階層の構成を設定するために、ユーザインタフェースとしてウィンドウを提示する。このウィンドウの詳細なイメージは、図２１に示される。統合ストレージプールボリュームマネージャ３０５−３は、新しいホストボリューム１３１を供給し、かつ統合ストレージプール６００の既存のホストボリューム１３１の構成を変更するために、ユーザインタフェースとしてウィンドウを提示する。
【００４７】
００９６    Ｂ６．統合ストレージプール管理サーバのテーブル構造
【００４８】
００９７    図１１は、統合ストレージプール階層管理テーブル３０３−１のテーブル構造の一例を示す。このテーブルは、統合ストレージプール６００の各階層の構成を管理する。統合ストレージプール拡張制御３０３−４は、登録時にこのテーブルから、新しいフロントエンドストレージサブシステム１００の階層式シンプロビジョニングプール１１０の階層の構成を生成する。統合ストレージプールボリューム制御３０３−７は、ボリュームプロビジョニングで、ボリュームの構成及び位置を生成する。
【００４９】
００９８    統合ストレージプール階層管理テーブル３０３−１は、以下の欄を有する。階層ＩＤ３０３−１−１は、統合ストレージプール６００における固有の番号である階層のＩＤである。階層構成設定３０３−１−２は、フロントエンドストレージサブシステム１００のシンプロビジョニングプール１１０に属する階層のタイプを含む、階層の定義を提供する。ユーザは、統合ストレージプール階層マネージャ３０５−２からこれらの設定を入力する。フロントエンドストレージサブシステム１００がバックエンドストレージサブシステム２００の内部ＲＡＩＤグループ又は外部ボリュームを使用する時に、内部階層優先順位設定３０３−１−３は、階層使用の優先順位情報を提供する。ユーザは、統合ストレージプール階層マネージャ３０５−２からこれらの設定を入力する。統合ストレージプール管理サーバ３００が階層式シンプロビジョニングプール１１０の内部ＲＡＩＤグループ階層に階層設定を変更又は適用する場合、階層の優先順位設定は、この情報及び外部階層優先順位設定３０３−１−４に基づいている。フロントエンドストレージサブシステム１００が他のフロントエンドストレージサブシステム１００の外部ボリュームを使用する場合、外部階層の優先順位設定３０３−１−４は、階層使用の優先順位情報を提供する。統合ストレージプール管理サーバ３００は、内部階層優先順位設定３０３−１−３の優先順位情報、及びシステム情報テーブル３０３−３のレイテンシ及び作業負荷情報でこの値を計算する。統合ストレージプール管理サーバ３００がフロントエンドストレージサブシステム１００からの外部ボリューム階層で構成される階層式シンプロビジョニングプール１１０の階層に階層設定を変更又は適用する場合、階層の優先順位設定は、この情報及び外部階層優先順位設定３０３−１−４に基づいている。
【００５０】
００９９    ストレージサブシステムＩＤ３０３−１−５は、統合ストレージプール６００に属するフロントエンドストレージサブシステム１００のＩＤを提供する。この情報は、統合ストレージプール拡張制御３０３−４によって登録される。シンプロビジョニングプール階層ＩＤ３０３−１−６は、統合ストレージプール６００の階層に関連するシンプロビジョニングプール１１０の階層のＩＤを提供する。この情報は、統合ストレージプール拡張制御３０３−４によって登録される。ストレージサブシステム階層総容量３０３−１−７は、フロントエンドストレージサブシステム１００の外部ボリューム階層を除く、階層式シンプロビジョニングプール１１０の階層の総容量を提供する。この情報は、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。ストレージサブシステム階層の使用容量３０３−１−８は、フロントエンドストレージサブシステム１００の外部ボリューム階層を除く、階層式シンプロビジョニングプール１１０の階層の使用容量を提供する。この情報は、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。ストレージサブシステム階層限界作業負荷３０３−１−９は、階層式シンプロビジョニングプール１１０の階層の性能情報を提供する。この情報は、例えば、ディスクの数、媒体のタイプ、ＲＡＩＤレベル等の階層の構成から計算される。構成情報は、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。ストレージサブシステム階層現在作業負荷３０３−１−１０は、階層式シンプロビジョニングプール１１０の階層の作業負荷情報を提供する。この情報は、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。
【００５１】
０１００    図１２は、ストレージサブシステム管理テーブル３０３−２のテーブル構造の一例を示す。このテーブルは、フロントエンドストレージサブシステム１００、フロントエンドストレージサブシステム１００のボリューム１３３、当該ボリュームに接続するホスト５００、及びホストとボリュームをリンクするネットワーク４００の構成及び状態を管理する。ボリューム容量情報３０３−２−６、ボリューム使用容量情報３０３−２−７、ボリューム作業負荷情報３０３−２−８、及びキャッシュヒット率情報３０３−２−９は、フロントエンドストレージサブシステム１００間のリソースリバランシングのためのボリュームを選択するために重要である。
【００５２】
０１０１    ストレージサブシステム管理テーブル３０３−２は、以下の欄を有する。ストレージＩＤ３０３−２−１は、システムの固有の番号としてフロントエンドストレージサブシステム１００のＩＤを提供する。ボリュームＩＤ３０３−２−２は、フロントエンドストレージサブシステム１００における固有の番号としてホストボリューム１３１のＩＤを提供する。ホストＩＤ３０３−２−３は、システムにおける固有の番号として、ボリュームに接続するホスト５００のＩＤを提供する。ネットワークゾーンＩＤ３０３−２−４は、ホスト及びボリュームが使用する、システムにおける固有の番号としてのネットワークゾーンのＩＤを提供する。階層ＩＤ３０３−２−５は、ボリュームがそこからページの割り当て／再割り当てを行うことができる階層式シンプロビジョニングプール１１０における固有の番号としての、階層式シンプロビジョニングプール１１０における階層のＩＤを提供する。ボリューム容量情報３０３−２−６は、ボリュームの容量情報を提供し、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。ボリューム使用容量情報３０３−２−７は、ボリュームの使用容量情報を提供し、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。ボリューム作業負荷情報３０３−２−８は、ボリュームの作業負荷情報を提供し、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。キャッシュヒット率情報３０３−２−９は、ボリュームのキャッシュヒット／ミス情報を提供し、統合ストレージプールモニタプログラム３０３−９によって収集され、かつ格納される。
【００５３】
０１０２    図１３は、システム情報テーブル３０３−３のテーブル構造の一例を示す。このテーブルは、ストレージ以外のシステムの実性能及び現在作業負荷に関する情報を格納する。この情報は、フロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００の間のストレージリソースをリバランスするための方法を選択するのに有用である。
【００５４】
０１０３    システム情報テーブル３０３−３は、以下の欄を有する。インデックス３０３−３−１は、システムの性能のインデックスを提供する。性能情報３０３−３−２は、実性能に関する情報を提供する。この値は、ユーザが通知することができる。作業負荷情報３０３−３−３は、構成要素の現在作業負荷を提供する。この値は、統合ストレージプールモニタプログラム３０３−９によって収集され、ホスト５００及びネットワーク４００によって入力され、又は計算される。
【００５５】
０１０４    Ｂ７．統合ストレージプール管理サーバのプログラムのプロセス
【００５６】
０１０５    図１４は、統合ストレージプール拡張制御プログラム３０３−４のプロセスを示す流れ図の一例である。ユーザが統合ストレージプール６００に新しいストレージサブシステムを追加する時に、このプログラムは実行される。操作命令は、統合ストレージプール要素マネージャ３０５−１から発せられる。
【００５７】
０１０６    このプログラムは、ステップ３０３−４−１で開始する。ステップ３０３−４−２において、ユーザは、ストレージプール要素マネージャ３０５−１に、新しいストレージサブシステム情報のためのプール追加入力を提供する。ステップ３０３−４−３において、プログラムは、新しいストレージサブシステムの構成情報（例えばＲＡＩＤグループ構成）を収集する。プログラムは、統合ストレージ階層管理テーブル３０３−１を参照し、新しいストレージサブシステムのＲＡＩＤグループを複数の階層に分類する。ステップ３０３−４−４では、プログラムは、収集された情報から、新しいストレージサブシステムの構成を生成する。ストレージサブシステムがバックエンドストレージサブシステム２００に適切である場合は、プログラムは、接続するためのフロントエンドストレージサブシステム１００を選択する。ステップ３０３−４−５では、プログラムは、新しいストレージサブシステムに外部ボリューム設定を適用する。新しいストレージサブシステムがバックエンドストレージサブシステム２００である場合は、プログラムは、フロントエンドストレージサブシステム１００に対して、ボリュームを外部ボリュームとしてマウントし、かつ階層式シンプロビジョニングプール１１０にインストールするように命令する。ステップ３０３−４−６では、プログラムは、新しいストレージサブシステムに、生成された階層構成を適用する。新しいストレージサブシステムがフロントエンドストレージサブシステム１００である場合は、プログラムは、新しいストレージサブシステムに対して、そのシンプロビジョニングプール１１０のために生成された階層を設定するように命令する。ステップ３０３−４−７では、プログラムは、統合ストレージプールの全ストレージサブシステムにクロスマウントボリューム設定を適用する。新しいストレージサブシステムがフロントエンドストレージサブシステム１００である場合は、プログラムは、ＱｏＳ設定を備えるクロスマウントボリューム１３２を確立するように命令し、かつ他のフロントエンドストレージサブシステム１００に対して、新しいフロントエンドストレージサブシステム１００のクロスマウントボリューム１３２を外部ボリュームとしてマウントするように命令する。プログラムは、ステップ３０３−４−８で終了する。
【００５８】
０１０７    図１５は、統合ストレージプール削減制御プログラム３０３−５のプロセスを示す流れ図の一例である。ユーザが既存のストレージサブシステムを統合ストレージプール６００から除去する時に、このプログラムは実行される。操作命令は、統合ストレージプール要素マネージャ３０５−１から発せられる。
【００５９】
０１０８    プログラムは、ステップ３０３−５−１で開始する。ステップ３０３−５−２では、ユーザは、除去されたストレージサブシステムの情報のプール削減入力を、ストレージプール要素マネージャ３０５−１に提供する。ステップ３０３−５−３では、プログラムは、新しいストレージサブシステムの構成情報（例えばＲＡＩＤグループ構成及びボリューム構成）を収集する。プログラムは、統合ストレージプール６００の現在の構成を知るために、統合ストレージ階層管理テーブル３０３−１を参照する。ステップ３０３−５−４では、プログラムは、収集された情報から、各残りのストレージサブシステムの構成を生成する。ステップ３０３−５−５では、プログラムは、除去されたストレージサブシステム及び残りのストレージサブシステムに対して、それらの間でデータを移動するように命令する。より具体的には、データは、削減されたストレージサブシステムから他のストレージサブシステムに移動される。ボリューム移動制御プログラム１０３−９及び／又はページ制御プログラム１０３−８は、この操作によって、フロントエンドストレージサブシステム１００で実行される。ステップ３０３−５−６では、除去されたストレージサブシステムがフロントエンドストレージ１００であり、かつバックエンドストレージサブシステム２００のボリュームをマウントした場合は、プログラムは、除去されたストレージサブシステムに対して、外部ボリュームをアンマウントするように命令する。ステップ３０３−５−７では、除去されたストレージサブシステムがフロントエンドストレージサブシステムである場合、プログラムは、残りのストレージサブシステムに対して、除去されたストレージサブシステムがマウントしたバックエンドストレージサブシステム２００のボリュームをマウントするように命令する。ステップ３０３−５−８では、除去されたストレージサブシステムがフロントエンドストレージサブシステムである場合、プログラムは、残りのストレージサブシステムに対して、除去されたストレージサブシステムによって提供されるクロスマウントボリュームをアンマウントするように命令する。ページ制御プログラム１０３−８は、この操作によって、残りのストレージサブシステムで実行される。ステップ３０３−５−９では、ユーザは、除去されたストレージサブシステムをネットワークから切断し、これを除去する。プログラムは、ステップ３０３−５−１０で終了する。
【００６０】
０１０９    図１６は、統合ストレージプール階層構成制御プログラム３０３−６のプロセスを示す流れ図の一例である。ユーザが統合ストレージプール６００の階層構成を変更する時に、このプログラムは実行される。操作命令は、統合ストレージプール階層マネージャ３０５−２から発せられる。
【００６１】
０１１０    プログラムは、ステップ３０３−６−１で開始する。ステップ３０３−６−２では、プログラムは、各ストレージサブシステムの構成情報を収集する。プログラムは、統合ストレージプール６００の現在の構成を取得するために、統合ストレージ階層管理テーブル３０３−１を参照する。プログラムは、ユーザに対して統合ストレージプール６００の全情報を示す。統合ストレージプール６００の階層リソースの量（例えば容量）は、各フロントエンドストレージサブシステム１００の階層式シンプロビジョニングプール１１０内の関連する階層の量の合計である。このようにして、ユーザは、システムの各階層のための全リソース及び残りのリソースの量を知ることができる。ステップ３０３−６−３では、ユーザは、ストレージプール階層マネージャ３０５−２から、統合ストレージプール６００の新しい階層構成を入力する。ステップ３０３−６−４では、プログラムは、階層優先順位及び分類等の新しい設定のために構成を生成する。ステップ３０３−６−５では、プログラムは、各フロントエンドストレージサブシステム１００に対して、階層式シンプロビジョニングプール１１０の階層構成を変更するように命令する。ページ制御プログラム１０３−８は、この操作によって、フロントエンドストレージサブシステム１００で実行される。プログラムは、ステップ３０３−６−６で終了する。
【００６２】
０１１１    図１７は、統合ストレージプールボリューム制御プログラム３０３−７のプロセスを示す流れ図の一例である。ユーザが統合ストレージプール６００の既存のボリュームの変更構成の新しいボリュームを供給する時に、このプログラムは実行される。操作命令は、統合ストレージプールボリュームマネージャ３０５−３から発せられる。
【００６３】
０１１２    このプログラムは、ステップ３０３−７−１で開始する。プログラムは、統合ストレージプール６００の現在の構成を取得するために統合ストレージ階層管理テーブル３０３−１を参照する。ステップ３０３−７−２では、プログラムは、ユーザに対して統合ストレージプール６００の全情報を示す。統合ストレージプール６００の階層リソースの量（例えば容量）は、各フロントエンドストレージサブシステム１００の階層式シンプロビジョニングプール１１０内の関連する階層の量の合計である。このようにして、ユーザは、システムの各階層のための全リソース及び残りのリソースの量を知ることができる。ステップ３０３−７−３では、ユーザは、ストレージプールボリュームマネージャ３０５−３から統合ストレージプール６００の新しいボリューム構成（例えば、ボリュームの容量、ボリュームに接続するホスト、及びＱｏＳ設定を含む）を入力する。ステップ３０３−７−４では、プログラムは、どの操作が発生するかをチェックする。それがボリュームプロビジョニングである場合は、プログラムはステップ３０３−７−５に進む。これがボリューム再構成である場合は、プログラムはステップ３０３−７−７に進む。ステップ３０３−７−５では、プログラムは、ホストボリューム１３１を供給するために適切なフロントエンドストレージサブシステム１００を選択する。この選択は、残りのリソース、ネットワークの変換可能性、及びボリュームの要件から生成される。このプログラムは、ストレージプールボリュームマネージャ３０５−３からの入力、及び選択されたフロントエンドストレージサブシステム１００の現在の構成に基づいてＱｏＳ設定を生成する（階層設定を使用して）。ステップ３０３−７−６では、プログラムは、フロントエンドストレージサブシステム１００に対して、容量及びＱｏＳ設定を備えるホストボリューム１３１を供給するように命令する。プログラムは、ホスト５００に対して、供給されたホストボリューム１３１に接続するように命令する。ステップ３０３−７−７では、プログラムは、ストレージプールボリュームマネージャ３０５−３からの入力、及び選択されたフロントエンドストレージサブシステム１００の現在の構成に基づいてＱｏＳ設定を生成する（階層設定を使用して）。ステップ３０３−７−８では、プログラムは、フロントエンドストレージサブシステム１００に対して、ホストボリューム１３１の容量及びＱｏＳ設定を変更するように命令する。接続するホスト５００が変更される場合、プログラムは、現在のホスト５００に対して、ボリュームから切断するように命令し、選択されたホストに対して、ボリュームに接続するように命令する。プログラムは、ステップ３０３−７−９で終了する。
【００６４】
０１１３    図１８は、統合ストレージプールリバランシング制御プログラム３０３−８のプロセスを示す流れ図の一例である。このプログラムは定期的に実行される。プログラムは、ステップ３０３−８−１で開始する。ステップ３０３−８−２では、プログラムは、統合ストレージプール６００の現在の構成及び使用を取得するために統合ストレージ階層管理テーブル３０３−１及びストレージサブシステム管理テーブル３０３−２を参照する。ステップ３０３−８−３では、プログラムは、統合ストレージプール６００における階層の許容できないアンバランスな使用をチェックする。バランスがとれている場合は、プログラムは、ステップ３０３−８−１１で終了する。バランスがとれていない場合は、ステップ３０３−８−４で、プログラムは、アンバランスを解決するための以下のリバランシング方法を生成する。
【００６５】
０１１４    一つのアプローチは、２つのフロントエンドストレージサブシステムの間にバックエンド外部ボリュームを割り当てることである（図３９を参照）。もう一つのアプローチは、２つのフロントエンドストレージサブシステムの間のボリューム移動である（図４６を参照）。さらにもう一つのアプローチは、２つのフロントエンドストレージサブシステムの間のクロスマウントボリュームによる容量貸与を含む（図４３を参照）。ステップ３０３−８−５では、プログラムは、ステップ３０３−８−４の方法から最適な方法を選択する。この選択は、効果、システム作業負荷、及び変更時間に基づいて決定される。パラメータは、システム情報テーブル３０３−３、統合ストレージ階層管理テーブル３０３−１、及びストレージサブシステム管理テーブル３０３−２から生成される。ステップ３０３−８−６では（第１の選択）、プログラムは、リソースが十分なフロントエンドストレージサブシステム１００に対して、バックエンドストレージサブシステム２００の外部ボリュームをアンマウントするように命令する。このアンマウント操作によって、ページ制御プログラム１０３−８は、割り当てられた容量ページ１３１−２を他のＲＡＩＤグループに退避させるために、リソースがないフロントエンドストレージサブシステム１００において実行される。ステップ３０３−８−７では、プログラムは、リソースがないフロントエンドストレージサブシステム１００に対して、アンマウントされたボリュームを外部ボリュームとしてマウントし、かつマウントされたボリュームを適切な階層にインストールするように命令する。ステップ３０３−８−８では（第２の選択）、プログラムは、リソースがないフロントエンドストレージサブシステム１００に対して、ホストボリューム１３１をリソースが十分なフロントエンドストレージサブシステム１００に移動するように命令する。この移動操作によって、ボリューム移動制御プログラム１０３−９は、リソースがないフロントエンドストレージサブシステム１００及びリソースが十分なフロントエンドストレージサブシステム１００において実行される。ステップ３０３−８−９では（第３の選択）、プログラムは、リソースがないフロントエンドストレージサブシステム１００に容量を供給するために、リソースが十分なフロントエンドストレージサブシステム１００に対して、クロスマウントボリューム１３２を供給するように命令する。ステップ３０３−８−１０では、プログラムは、リソースが十分なフロントエンドストレージサブシステム１００に対して、リソースが十分なフロントエンドストレージサブシステム１００が供給したクロスマウントボリューム１３２をマウントするように命令する。プログラムは、ステップ３０３−８−１１で終了する。
【００６６】
０１１５    図１９は、統合ストレージプールモニタプログラム３０３−８のプロセスを示す流れ図の一例である。このプログラムは定期的に実行される。プログラムは、ステップ３０３−９−１で開始する。ステップ３０３−９−２では、プログラムは、フロントエンドストレージサブシステム１００及びバックエンドストレージサブシステム２００から構成及び作業負荷情報を受信する。ステップ３０３−９−３では、プログラムは、受信された情報を、システム情報テーブル３０３−３、統合ストレージ階層管理テーブル３０３−１、及びストレージサブシステム管理テーブル３０３−２に格納する。プログラムは、ステップ３０３−９−４で終了する。
【００６７】
０１１６    Ｂ８．統合ストレージプール管理サーバのディスプレイイメージ
【００６８】
０１１７    図２０は、ユーザのための入出力（Ｉ／Ｏ）インタフェースとしての統合ストレージプール要素マネージャ３０５−１の一例を示す。このＩ／Ｏインタフェースを使用して、ユーザは、統合ストレージプール６００に追加されるべき新しいストレージサブシステムを入力し、統合ストレージプール６００から除去されるべき既存のストレージサブシステムを入力し、かつ現在のリソース情報及び統合ストレージプール６００の修正後のリソース情報をチェックすることができる。Ｉ／Ｏインタフェースは、以下の特徴を含む。プール階層リソース情報パネル３０５−１−１は、ユーザに各階層の現在のリソース量を示す。ユーザが統合ストレージプール６００への／からのストレージサブシステムの追加及び／又は除去を設定する時に、パネルは、修正後のリソース情報を示す。プール状態情報パネル３０５−１−２は、統合ストレージプール６００の現在の状態を示す。プール構成情報パネル３０５−１−３は、ユーザに対して統合ストレージプール６００のストレージサブシステムのリストを示す。ユーザは、統合ストレージプール６００から除去するストレージサブシステムを、このリストから選択することができる。ストレージサブシステム情報パネル３０５−１−４は、ユーザに対して、統合ストレージプール６００には存在しないが追加できるストレージサブシステムのリストを示す。ユーザは、統合ストレージプール６００に追加するストレージサブシステムを、このリストから選択することができる。追加ボタン３０５−１−４を使用して、ユーザは、ストレージサブシステム情報パネル３０５−１−４からストレージサブシステムを選択した後でこのボタンを押すことによって、統合ストレージプール６００へのストレージサブシステムの追加を設定することができる。除去ボタン３０５−１−５を使用して、ユーザは、プール構成情報パネル３０５−１−３からストレージサブシステムを選択した後でこのボタンを押すことによって、統合ストレージプール６００からのストレージサブシステムの除去を設定することができる。適用ボタン３０５−１−７を使用して、ユーザは、このボタンを押すことによって、ストレージサブシステムを統合ストレージプール６００に追加するようにという、統合ストレージプール拡張制御プログラム３０３−４の命令を送信することができる。さらに又はあるいは、ユーザは、このボタンを押すことによって、ストレージサブシステムを統合ストレージプール６００に追加するようにという、統合ストレージプール削減制御プログラム３０３−５の命令を送信することができる。ユーザは、取消ボタン３０５−１−８を押すことによって、構成を現在の状態に戻す。
【００６９】
０１１８    図２１は、ユーザのためのＩ／Ｏインタフェースとしての統合ストレージプール階層マネージャ３０５−２の一例を示す。ユーザは、統合ストレージプール６００の階層構成を入力することができ、かつこのインタフェースで現在のリソース情報及び統合ストレージプール６００の修正後のリソース情報をチェックすることができる。インタフェースは、以下の特徴を含む。プール階層リソース情報パネル３０５−２−１は、ユーザに各階層の現在のリソース量を示す。ユーザが階層構成の変更を統合ストレージプール６００に設定する時に、このパネルは、修正後のリソース情報を示す。プール状態情報パネル３０５−１−２は、統合ストレージプール６００の現在の状態を示す。階層構成情報パネル３０５−２−３は、ユーザに対して、統合ストレージプール６００の階層のリストを示す。ユーザは、統合ストレージプール６００の階層構成を変更することができる。ユーザは、適用ボタン３０５−２−７を押すことによって、統合ストレージプール６００の階層構成を変更するようにという統合ストレージプール階層構成制御プログラム３０３−６の命令を送信することができる。ユーザは、取消ボタン３０５−２−８を押すことによって、構成を現在の状態に戻すことができる。
【００７０】
０１１９    図２２は、ユーザのためのＩ／Ｏインタフェースとしての統合ストレージプールボリュームマネージャ３０５−３の一例を示す。ユーザは、統合ストレージプール６００のボリューム構成を入力することができ、かつこのインタフェースで、統合ストレージプール６００の現在のリソース情報をチェックすることができる。インタフェースは、以下の特徴を含む。プール階層リソース情報パネル３０５−３−１は、ユーザに各階層の現在のリソース量を示す。プール状態情報パネル３０５−３−２は、統合ストレージプール６００の現在の状態を示す。ボリューム構成情報パネル３０５−３−３は、ユーザに統合ストレージプール６００のボリュームのリストを示す。ユーザは、統合ストレージプール６００のボリューム構成を変更することができる。ユーザは、適用ボタン３０５−３−７ｎを押すことによって、統合ストレージプール６００のボリューム構成を変更するようにという、統合ストレージプールボリューム制御プログラム３０３−６の命令を送信することができる。ユーザは、取消ボタン３０５−３−８を押すことによって、構成を現在の状態に戻すことができる。
【００７１】
０１２０    Ｂ９．シンプロビジョニングプール階層と統合ストレージプール階層の関係
【００７２】
０１２１    図２３は、シンプロビジョニングプール１１０の階層と統合ストレージプール６００の階層との間の関係を示す。統合ストレージプール６００は階層６１１を有し、これらは、媒体タイプ、ＲＡＩＤレベル、コスト等によって分類される。それらは、階層６１１−１、階層６１１−２、階層６１１−３、階層６１１−４、階層６１１−５等に分類される。この分類は、統合ストレージプールの階層管理テーブル３０３−１の設定に基づいている。統合ストレージプール６００の各階層６１１は、フロントエンドストレージサブシステム１００の各シンプロビジョニングプール１１０の階層１１１を有する。各階層６１１は、統合ストレージプール階層管理テーブル３０３−１からの優先順位設定を有する。
【００７３】
０１２２    Ｃ．システムの操作手順
【００７４】
０１２３    Ｃ１．統合ストレージプール拡張
【００７５】
０１２４    図２４は、ストレージサブシステムのインストール及び統合ストレージプール６００の拡張のシーケンスの一例を示す。このシーケンスは以下の手順を含む。手順Ｓ１−１では、ユーザは、新しいフロントエンドストレージサブシステム１００ａ及び１００ｂを導入し、フロントエンドストレージサブシステム１００ａ及び１００ｂのＲＡＩＤグループ構成及びネットワーク構成を設定する。この手順によって、フロントエンドストレージサブシステム１００ａ及び１００ｂは、Ｓ１−２の構成を変更する。ユーザは、統合ストレージプール６００に対して、フロントエンドストレージサブシステム１００ａ及び１００ｂで拡張するように命令する。この手順によって、統合ストレージプール６００は、Ｓ１−３の構成を変更する。手順Ｓ１−２では、フロントエンドストレージサブシステム１００は、ＲＡＩＤグループ１１２を確立し、ネットワーク情報及びネットワークへのログインを取得する。手順Ｓ１−３では、最初に、統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ａ及び１００ｂに対して、Ｓ１−４に進んで、バックエンドストレージサブシステム１００の外部ボリュームをマウントし、階層式シンプロビジョニングプール１１０を確立し、そして階層式シンプロビジョニングプール１１０の階層を確立してＳ−１４に進むように命令する。次に、統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステムに対して（Ｓ１−６に進む）に、ＱｏＳ設定を備える階層式シンプロビジョニングプール１１０からクロスマウントボリューム１３２を供給するように命令する。次に、統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステムに対して（Ｓ１−６に進む）、他のフロントエンドストレージサブシステム１００の供給されたクロスマウントボリューム１３２をマウントし、Ｓ１−８に進むように命令する。
【００７６】
０１２５    手順Ｓ１−４では、フロントエンドストレージサブシステム１００は、階層式シンプロビジョニングプール１１０を確立する。フロントエンドストレージサブシステム１００は、バックエンドストレージサブシステム２００の指定された外部ボリュームをマウントし、かつ外部ボリュームを階層式シンプロビジョニングプール１１０にインストールする。フロントエンドストレージサブシステム１００は、階層１１１の指定された構成を設定する。手順Ｓ１−５では、階層式シンプロビジョニングプール１１０のＲＡＩＤグループ１１２は、階層１１１に分類される。手順Ｓ１−６では、フロントエンドストレージサブシステム１００は、指定されたＱｏＳ設定を備えるクロスマウントボリューム１３２を作成する。手順Ｓ１−７では、クロスマウントボリューム１３２が供給される。手順Ｓ１−８では、フロントエンドストレージサブシステム１００は、いくつかの他のフロントエンドストレージサブシステム１００の指定されたクロスマウントボリューム１３２をマウントする。手順Ｓ１−９では、クロスマウントボリューム１３２の外部ボリュームは、ＲＡＩＤグループとしてマウントされる。
【００７７】
０１２６    図２５は、手順Ｓ１−５の後のシステムの状態を示す。バックエンドストレージサブシステム２００の外部ボリューム２３１は、フロントエンドストレージサブシステム１００によってマウントされる。各フロントエンドストレージサブシステム１００は、内部ＲＡＩＤグループ１１２及びマウントされた外部ボリューム２３１を備える階層式シンプロビジョニングプール１１０を有する。
【００７８】
０１２７    図２６は、図２５の状態を達成するためのデータ、情報、及び命令の流れを示す。統合ストレージプール拡張制御プログラム３０３−４は、ストレージサブシステム管理テーブル３０３−２及び統合ストレージプール階層管理テーブル３０３−１から統合ストレージプール６００の現在の構成を取得する。統合ストレージプール拡張制御プログラム３０３−４は、統合ストレージプール６００の新しい構成を生成し、新しい構成を各テーブルに格納する。統合ストレージプール拡張制御プログラム３０３−４は、階層式プール管理テーブル１０３−２に対して、階層式シンプロビジョニングプール１１０の情報を、生成された新しい設定として設定するように命令する。統合ストレージプール拡張制御プログラム３０３−４は、ディスク管理テーブル１０３−１に対して、マウントされた外部ボリュームを、生成された新しい設定として設定するように命令する。統合ストレージプール拡張制御プログラム３０３−４は、バックエンドストレージサブシステム２００のボリューム２３１に対して、マウントするフロントエンドストレージサブシステム１００からのＩ／Ｏを許可するように命令する。
【００７９】
０１２８    図２７は、手順Ｓ１−９の後のシステムの状態を示す。フロントエンドストレージサブシステム１００のクロスマウントボリューム１３２は、階層式シンプロビジョニングプール１１０から供給される。フロントエンドストレージサブシステム１００のクロスマウントボリューム１３２は、他のフロントエンドストレージサブシステム１００によってマウントされる。
【００８０】
０１２９    図２８は、図２７の状態を達成するためのデータ、情報、及び命令の流れを示す。統合ストレージプール拡張制御プログラム３０３−４は、ストレージサブシステム管理テーブル３０３−２及び統合ストレージプール階層管理テーブル３０３−１から、統合ストレージプール６００の現在の構成を取得する。統合ストレージプール拡張制御プログラム３０３−４は、統合ストレージプール６００の新しい構成を生成し、かつ新しい構成を統合ストレージプール階層管理テーブル３０３−１に格納する。統合ストレージプール拡張制御プログラム３０３−４は、ボリューム管理テーブル１０３−３に対して、供給されたクロスマウントボリューム１３２を設定するように命令する。統合ストレージプール拡張制御プログラム３０３−４は、ディスク管理テーブル１０３−１に対して、他のフロントエンドストレージサブシステム１００のマウントされたクロスマウントボリューム１３２を設定するように命令する。統合ストレージプール拡張制御プログラム３０３−４は、階層式プール管理テーブル１０３−２に対して、マウントされたクロスマウントボリューム１３２の階層を設定するように命令する。
【００８１】
０１３０    Ｃ２．統合ストレージプールボリュームプロビジョニング
【００８２】
０１３１    図２９は、統合ストレージプール６００からのボリュームプロビジョニングのシーケンスの一例を示す。このシーケンスは以下の手順を含む。手順Ｓ２−１では、ユーザは、統合ストレージプール管理サーバ３００にボリューム構成（例えば、容量、ＱｏＳ（階層６１１の選択）、及び接続されたホスト構成を含む）を入力する。手順Ｓ２−２では、統合ストレージプール管理サーバ３００は、各フロントエンドストレージサブシステム１００の現在のリソース状態から、ネットワークゾーンの設定、適切なストレージサブシステム、及び適切な階層（階層１１１）を選択する。統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ａ及び１００ｂに対して、前記生成された構成の構成を備えたホストボリューム１３１を供給するように命令する。統合ストレージプール管理サーバ３００は、ホスト５００に対して、供給されたホストボリューム１３１をマウントするように命令する。手順Ｓ２−３では、フロントエンドストレージサブシステム１００は、階層式シンプロビジョニングプール１１０の構成情報を転送する。手順Ｓ２−４では、フロントエンドストレージサブシステム１００は、指定された構成を備えるホストボリューム１３１を確立する。手順Ｓ２−５では、ホストボリューム１３１が供給される。手順Ｓ２−６では、ホスト５００は、指定されたホストボリューム１３１とのボリューム接続を確立する。
【００８３】
０１３２    図３０は、図２９のシーケンス後のシステムの状態を示す。フロントエンドストレージサブシステム１００のホストボリューム１３１は、階層式シンプロビジョニングプール１１０から供給される。フロントエンドストレージサブシステム１００のホストボリューム１３１は、ホスト５００から接続される。
【００８４】
０１３３    図３１は、図３０の状態を達成するためのデータ、情報、及び命令の流れを示す。統合ストレージプールボリューム制御プログラム３０３−７は、ストレージサブシステム管理テーブル３０３−２及び統合ストレージプール階層管理３０３−１からリソース構成を取得する。統合ストレージプールボリューム制御プログラム３０３−７は、供給されたホストボリューム１３１の情報をストレージサブシステム管理テーブル３０３−２に格納する。統合ストレージプールボリューム制御プログラム３０３−７は、ボリューム管理テーブル１０３−３に対して、供給されたホストボリューム１３１を設定するように命令する。統合ストレージプール拡張制御プログラム３０３−４は、パス管理モジュール５０１に対して、ホストボリューム１３１への接続を設定するように命令する。
【００８５】
０１３４    Ｃ３．ホストＩ／Ｏ
【００８６】
０１３５    図３２は、ホスト５００からホストボリューム１３１へのＩ／Ｏのシーケンスの一例を示す。このシーケンスは以下の手順を含む。手順Ｓ３−１では、ホスト５００は、フロントエンドストレージサブシステム１００のホストボリューム１３１に書き込みＩ／Ｏを送信する。手順Ｓ３−２では、フロントエンドストレージサブシステム１００は、データを受信する。手順Ｓ３−３では、ホストボリューム１３１は、受信されたデータをキャッシュ領域に格納する。手順Ｓ３−４では、フロントエンドストレージサブシステム１００はキャッシュ状態を定期的にチェックし、デステージされていないデータを見つけた場合は、フロントエンドストレージサブシステム１００は、データをディスクに格納する。フロントエンドストレージサブシステム１００が、まだデータに対して容量ページを割り当てていない場合は、新しい容量ページを割り当てる。手順Ｓ３−５では、ホストボリューム１３１は、必要な場合は、容量ページの割り当てによってデータをデステージする。手順Ｓ３−６では、ＲＡＩＤグループ１１２は、書き込みデータをディスクに格納する。手順Ｓ３−７では、ホスト５００は、フロントエンドストレージサブシステム１００のホストボリューム１３１に読み出しＩ／Ｏを送信する。手順Ｓ３−８では、フロントエンドストレージサブシステム１００は、データを送信する。手順Ｓ３−９では、ホストボリューム１３１は、読み出しデータをディスクからキャッシュ領域にステージする。手順Ｓ３−１０では、ＲＡＩＤグループ１１２は、データをディスクからキャッシュ領域に転送する。
【００８７】
０１３６    図３３は、図３２の書き込みＩ／Ｏの後のシステムの状態を示す。ホストボリューム１３１上のボリュームページ１３１−１は、容量ページ１３１−２に割り当てられる。容量ページ１３１−２の実体は、他のフロントエンドストレージサブシステム１００の内部ＲＡＩＤグループ１１２−４、外部ボリューム２３１、又は内部ＲＡＩＤグループ１１２−４に存在する。
【００８８】
０１３７    図３４は、図３３の状態を達成するためのデータ、情報、及び命令の流れを示す。ホスト５００は、Ｉ／Ｏ要求及びデータをボリュームＩ／Ｏ制御プログラム１０３−６に送信する。ボリュームＩ／Ｏ制御プログラム１０３−６は、ボリューム構成を取得するためにボリューム管理テーブル１０３−３を参照する。ボリュームＩ／Ｏ制御プログラム１０３−６は、データをキャッシュ領域１０３−０に格納する。ディスク制御プログラム１０３−７は、ダーティデータを見つけるために、キャッシュ領域１０３−０の状態をチェックする。ディスク制御プログラム１０３−７は、領域が容量ページを割り当てる必要があるか否かを判定するために、ページ管理テーブル１０３−４を参照する。容量ページの割当が必要な場合、ディスク制御プログラム１０３−７は、容量ページがそこから割り当てられるべき階層を見つけるために、階層式プール管理テーブル１０３−２を参照する。ディスク制御プログラム１０３−７はさらに、ボリュームページと容量ページの関係情報をページ管理テーブル１０３−４に格納する。ディスク制御プログラム１０３−７は、ページ管理テーブル１０３−４及びディスク管理テーブル１０３−１からダーティデータのディスク及びアドレス情報を見つけ、このデータをディスク１０６又は外部ボリューム２３１に転送する。
【００８９】
０１３８    Ｃ４．フロントエンドストレージサブシステムの自動階層式ストレージ管理
【００９０】
０１３９    図３５は、階層式ストレージ管理のシーケンスの一例を示す。手順Ｓ４−１では、フロントエンドストレージサブシステム１００は、各割り当てられたボリュームページの階層構成を定期的にチェックする。フロントエンドストレージサブシステム１００は、Ｉ／Ｏ作業負荷交代及び／又はユーザ要件（すなわち、階層構成の変更）の後で、割り当てられた階層を変更する。再割り当ての方法は、新しい容量ページを選択すること、容量ページ上のデータを既存の容量ページから新しく割り当てられた容量ページにコピーすること、及びページ管理テーブル１０３−４上のマッピング情報を新しく割り当てられた容量ページに変更することを含む。手順Ｓ４−２では、ＲＡＩＤグループ１１２は、データをコピーする。手順Ｓ４−３では、ホストボリューム１３２は、ボリュームページのマッピング情報を変更する。
【００９１】
０１４０    図３６は、ページ移動中のシステムの状態を示す。容量ページ１３１−２ａ上のデータは、他の容量ページ１３１−２ｂにコピーされる。ボリュームページ１３１−１は、マッピングを容量ページ１３１−２ａ上のデータから容量ページ１３１−２ｂ上のデータに変更する。
【００９２】
０１４１    図３７は、階層交代の必要性を見つけるためのデータ、情報、及び命令の流れを示す。性能モニタプログラム１０３−５は、ボリュームＩ／Ｏ制御プログラム１０３−６、キャッシュ領域１０３−０、ディスク制御プログラム１０３−７、及び階層式プール管理テーブル１０３−２から作業負荷及び性能情報をチェックする。ボリュームＩ／Ｏ制御プログラム１０３−６は、Ｉ／Ｏ作業負荷及びＩ／Ｏレイテンシ情報及び読み出し／書き込み率を提供する。キャッシュ領域１０３−０は、キャッシュヒット率情報を提供する。ディスク制御プログラム１０３−７は、ディスク作業負荷及びディスクレイテンシ情報を提供する。階層式プール管理テーブル１０３−２は、階層状態及び使用情報を提供する。
【００９３】
０１４２    図３８は、階層を変更するために容量ページを移動するためのデータ、情報、及び命令の流れを示す。性能モニタプログラム１０３−５は、ページ制御プログラム１０３−８に移動を開始するように通知又は指示する。ページ制御プログラム１０３−８は、階層式プール管理テーブル１０３−２をチェックすることによって、適切な階層から新しい容量ページを割り当てる。ページ制御プログラム１０３−８は、ディスク制御プログラム１０３−７に対して、データを２つの容量ページの間でコピーするように命令して、ページ管理テーブル１０３−４上のマッピング情報を変更する。ディスク制御プログラム１０３−７は、データをコピーする。ディスク制御プログラム１０３−７は、ＲＡＩＤグループの構成を取得するために、ディスク管理テーブル１０３−１を参照する。コピープロセスには、データを転送するために、キャッシュ領域１０３−０を使用する。ディスク制御プログラム１０３−７は、データをディスク１０６又は外部ボリューム２３１に格納する。
【００９４】
０１４３    Ｃ５．リソース情報収集
【００９５】
０１４４    図３９は、各フロントエンドストレージサブシステム１００からのリソース情報収集のシーケンスの一例を示す。手順Ｓ５−１では、統合ストレージプール管理サーバ３００は、定期的に、各フロントエンドストレージサブシステム１００からリソース情報を要求する。手順Ｓ５−２では、フロントエンドストレージサブシステム１００は、リソース情報を統合ストレージプール管理サーバ３００に報告する。この情報は、Ｉ／Ｏ作業負荷（トランザクション等）、階層使用（容量、Ｉ／Ｏ局所性等）、及びＩ／Ｏ性能（Ｉ／Ｏ率、キャッシュヒット率等）を含む。
【００９６】
０１４５    図４０は、階層を変更するために容量ページを移動するためのデータ、情報、及び命令の流れを示す。性能モニタプログラム１０３−５は、作業負荷及び実性能情報を統合ストレージプールモニタプログラム３０３−１に報告する。この情報は、Ｉ／Ｏ作業負荷、Ｉ／Ｏレイテンシ、読み出し／書き込み率、ヒット率、及びディスクレイテンシを含む。階層式プール管理テーブル１０３−２は、各階層のリソース使用情報を統合ストレージプールモニタプログラム３０３−１に報告する。この情報は、階層状態及び階層使用を含む。ボリューム管理テーブル１０３−３は、各ボリュームのリソース使用情報を統合ストレージプールモニタプログラム３０３−１に報告する。この情報は、ボリューム状態、ボリューム使用、及びボリューム作業負荷を含む。
【００９７】
０１４６    Ｃ６．他のストレージサブシステムによる外部ボリュームのリマウント
【００９８】
０１４７    図４１は、フロントエンドストレージサブシステム１００間で外部ボリュームのマウントを変更するシーケンスの一例を示す。このシーケンスは、ステップ３０３−８−６及びステップ３０３−８−７で実行される。手順Ｓ６−１では、統合ストレージプール管理サーバ３００は、マウントするフロントエンドストレージサブシステム１００ｂを変更するために外部ボリューム２３１を選択し、かつリマウントするフロントエンドストレージサブシステム１００ａを選択する。統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ｂに対して、外部ボリューム２３１を除去するように命令する。除去操作の後で、統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ａに対して、アンマウントされた外部ボリューム２３１をマウントし、かつその階層式シンプロビジョニングプール１１０をインストールするように命令する。手順Ｓ６−２では、フロントエンドストレージサブシステム１００ｂは、指定された外部ボリューム２３１上の既に割り当てられた容量ページを他のＲＡＩＤグループに移動する。手順Ｓ６−３では、外部ボリュームを含むＲＡＩＤグループ１３２は、データを、指定された外部ボリューム２３１から他のＲＡＩＤグループにコピーする。手順Ｓ６−４では、ホストボリューム１３１及びクロスマウントボリューム１３２は、コピーされた容量ページのマッピング情報を変更する。手順Ｓ６−５では、フロントエンドストレージサブシステム１００ｂは、指定された外部ボリューム２３１をアンマウントする。手順Ｓ６−６では、アンマウントされた外部ボリューム２３１は、階層式シンプロビジョニングプール１１０から離れる。手順Ｓ６−７では、フロントエンドストレージサブシステム１００ａは、アンマウントされた外部ボリューム２３１をマウントする。手順Ｓ６−８では、マウントされた外部ボリューム２３１は、階層式シンプロビジョニングプール１１０に加わる。
【００９９】
０１４８    図４２は、リマウントプロセスの間のシステムの状態を示す。フロントエンドストレージサブシステム１００ｂは、外部ボリューム２３１をマウントするＲＡＩＤグループ１１２−５上に存在する容量ページ１３１−１を他のＲＡＩＤグループ１１２に移動し、外部ボリューム２３１をアンマウントする。フロントエンドストレージサブシステム１００ａは、外部ボリューム２３１をマウントし、これを階層式シンプロビジョニングプール１１０に設定する。
【０１００】
０１４９    図４３は、外部ボリューム２３１をリマウントするためのデータ、情報、及び命令の流れを示す。統合ストレージリソース制御プログラム３０３−８は、ストレージサブシステム管理テーブル３０３−２をチェックすることによって、リソースのアンバランスを見つける。統合ストレージリソース制御プログラム３０３−８は、ストレージサブシステム管理テーブル３０３−２、統合ストレージ階層管理テーブル３０３−１、及びシステム情報テーブル３０３−３を参照することによって、リバランスする最善の方法を考慮する。その結果、統合ストレージリソース制御プログラム３０３−８は、外部ボリュームのマウントを、フロントエンドストレージサブシステム１００ｂからフロントエンドストレージサブシステム１００ａに変更する方法を選択する。統合ストレージリソース制御プログラム３０３−８は、フロントエンドストレージサブシステム１００ｂ上の階層式プール管理テーブル１０３−２に対して、階層式シンプロビジョニングプール１１０から、外部ボリューム２３１をマウントするＲＡＩＤグループ１１２を除去するように命令する。統合ストレージリソース制御プログラム３０３−８は、フロントエンドストレージサブシステム１００ｂ上のディスク管理テーブル１０３−１に対して、外部ボリューム２３１をアンマウントするように命令する。フロントエンドストレージサブシステム１００ｂ上のページ制御プログラム１０３−８は、階層式プール管理テーブル１０３−２をチェックすることによって、適切な階層から新しい容量ページを割り当てる。ページ制御プログラム１０３−８は、ディスク制御プログラム１０３−７に対して、データを２つの容量ページの間でコピーするように命令し、ページ管理テーブル１０３−４上のマッピング情報を変更する。
【０１０１】
０１５０    フロントエンドストレージサブシステム１００ｂ上のディスク制御プログラム１０３−７は、ＲＡＩＤグループの構成を取得するためにディスク管理テーブル１０３−１を参照し、データを転送するためにキャッシュ領域１０３−０を使用し、かつデータをディスク１０６又は外部ボリューム２３１に格納することによって、データをコピーする。統合ストレージリソース制御プログラム３０３−８は、外部ボリューム２３１に対して、パスを、フロントエンドストレージサブシステム１００ｂからフロントエンドストレージサブシステム１００ａに変更するように命令する。統合ストレージリソース制御プログラム３０３−８は、フロントエンドストレージサブシステム１００ａ及びディスク管理テーブル１０３−１に対して、外部ボリューム２３１をＲＡＩＤグループ１１２としてマウントするように命令する。統合ストレージリソース制御プログラム３０３−８は、フロントエンドストレージサブシステム１００ａ及び階層式プール管理テーブル１０３−２に対して、外部ボリューム２３１をマウントするＲＡＩＤグループ１１２を階層式シンプロビジョニングプール１１０に加えるように命令する。
【０１０２】
０１５１    Ｃ７．他のストレージからの貸与容量の追加
【０１０３】
０１５２    図４４は、他のフロントエンドストレージサブシステム１００から容量をマウントするためのインクリメントのシーケンスの一例を示す。このシーケンスは、ステップ３０３−８−９及びステップ３０３−８−１０で実行される。このシーケンスは以下の手順を含む。手順Ｓ７−１では、統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ａに容量を貸与するために、フロントエンドストレージサブシステム１００ｂを選択する。統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ｂに対して、クロスマウントボリューム１３２を供給するように命令する。プロビジョニング操作の後で、統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ａに対して、クロスマウントボリューム１３２をマウントし、その階層式シンプロビジョニングプール１１０をインストールするように命令する。手順Ｓ７−２では、フロントエンドストレージサブシステム１００ｂは、クロスマウントボリューム１３２の用のＱｏＳ設定を備えた自己の階層式シンプロビジョニングプール１１０からクロスマウントボリューム１３２を供給する。手順Ｓ７−３では、クロスマウントボリューム１３２が確立される。手順Ｓ７−４では、フロントエンドストレージサブシステム１００ａは、フロントエンドストレージサブシステム１００ｂの供給されたクロスマウントボリューム１３２をＲＡＩＤグループ１１２−６としてマウントし、ＲＡＩＤグループ１１２−６を階層式シンプロビジョニングプール１１０にインストールする。手順Ｓ７−５では、クロスマウントボリューム１３２をマウントするＲＡＩＤグループ１１２−６は、階層式シンプロビジョニングプール１１０に結合される。
【０１０４】
０１５３    図４５は、追加プロセス後のシステムの状態を示す。フロントエンドストレージサブシステム１００ａは、フロントエンドストレージサブシステム１００ｂのクロスマウントボリューム１３２をマウントする。フロントエンドストレージサブシステム１００ａは、階層式シンプロビジョニングプール１１０のリソースのために、マウントされたクロスマウントボリューム１３２を使用する。
【０１０５】
０１５４    図４６は、外部ボリューム２３１をリマウントするためのデータ、情報、及び命令の流れを示す。統合ストレージリソース制御プログラム３０３−８は、ストレージサブシステム管理テーブル３０３−２をチェックすることによって、リソースのアンバランスを見つける。統合ストレージリソース制御プログラム３０３−８は、ストレージサブシステム管理テーブル３０３−２、統合ストレージ階層管理テーブル３０３−１、及びシステム情報テーブル３０３−３を参照することによってリバランスする最善の方法を考慮する。その結果、統合ストレージリソース制御プログラム３０３−８は、容量をフロントエンドストレージサブシステム１００ｂからフロントエンドストレージサブシステム１００ａに貸与する方法を選択する。統合ストレージリソース制御プログラム３０３−８は、フロントエンドストレージサブシステム１００ｂ上のボリューム管理テーブル１０３−３に対して、クロスマウントボリューム２３１を供給するように命令する。統合ストレージリソース制御プログラム３０３−８は、フロントエンドストレージサブシステム１００ａ上のディスク管理テーブル１０３−１に対して、クロスマウントボリュームをフロントエンドストレージサブシステム１００ｂにマウントし、かつマウントされたクロスマウントボリューム１３２を階層式シンプロビジョニングプール１１０に結合するように命令する。
【０１０６】
０１５５    Ｃ８．他のストレージへのボリューム移動
【０１０７】
０１５６    図４７は、２つのストレージサブシステムの間のボリューム移動のシーケンスの一例を示す。このシーケンスは、ステップ３０３−８−８で実行される。手順Ｓ８−１では、統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ａからフロントエンドストレージサブシステム１００ｂに移動するために、ホストボリューム１３１を選択する。統合ストレージプール管理サーバ３００は、フロントエンドストレージサブシステム１００ａからフロントエンドストレージサブシステム１００ｂに移動するように命令する。手順Ｓ８−２では、フロントエンドストレージサブシステム１００ｂは、フロントエンドストレージサブシステム１００ａ上の指定されたホストボリューム１３１の構成及びデータをコピーする。手順Ｓ８−３では、フロントエンドストレージサブシステム１００ａは、ホストボリューム１３１のデータ及び構成を転送する。手順Ｓ８−４では、フロントエンドストレージサブシステム１００ａ上のホストボリューム１３１は、データを転送する。手順Ｓ８−５では、フロントエンドストレージサブシステム１００ｂ上のホストボリューム１３１が供給され、データを格納する。手順Ｓ８−６では、ホスト５００は、パスを、フロントエンドストレージサブシステム１００ａ上のホストボリューム１３１からフロントエンドストレージサブシステム１００ｂ上のホストボリューム１３１に変更する。手順Ｓ８−７では、フロントエンドストレージサブシステム１００ａは、ホストパスを切断する。手順Ｓ８−８では、フロントエンドストレージサブシステム１００ｂは、ホストパスを接続する。手順Ｓ８−９では、フロントエンドストレージサブシステム１００ａは、移動されたホストボリューム１３１を削除する。手順Ｓ８−１０では、移動されたホストボリューム１３１は、割り当てられた容量ページを解放する。
【０１０８】
０１５７    図４８は、移動プロセス中のシステムの状態を示す。フロントエンドストレージサブシステム１００ａは、ホストボリューム１３１をフロントエンドストレージサブシステム１００ｂに移動する。ホスト５００は、パスを、フロントエンドストレージサブシステム１００ａからフロントエンドストレージサブシステム１００ｂに変更する。
【０１０９】
０１５８    図４９は、外部ボリューム２３１をリマウントするためのデータ、情報、及び命令の流れを示す。統合ストレージリソース制御プログラム３０３−８は、ストレージサブシステム管理テーブル３０３−２をチェックすることによって、リソースのアンバランスを見つける。統合ストレージリソース制御プログラム３０３−８は、ストレージサブシステム管理テーブル３０３−２、統合ストレージ階層管理テーブル３０３−１、及びシステム情報テーブル３０３−３を参照することによって、リバランスする最善の方法を考慮する。その結果、統合ストレージリソース制御プログラム３０３−８は、オンラインボリュームをフロントエンドストレージサブシステム１００ａからフロントエンドストレージサブシステム１００ｂに移動する方法を選択する。
【０１１０】
０１５９    統合ストレージリソース制御プログラム３０３−８は、ボリューム移動制御プログラム１０３−９に対して、ホストボリューム１３１をフロントエンドストレージサブシステム１００ｂに移動するように命令する。フロントエンドストレージサブシステム１００ａ上のボリューム移動制御プログラム１０３−９は、ボリューム管理テーブル１０３−３、階層式プール管理テーブル１０３−２、及びページ管理テーブル１０３−４からホストボリューム１３１の構成を収集する。ページ管理テーブル１０３−４から割り当て情報を知ることが特に重要である。この情報が、ページ未割り当て領域のためのコピーを除外又は排除することによって、移動のための帯域幅を減らすのに有用であるためである。フロントエンドストレージサブシステム１００ａ上のボリューム移動制御プログラム１０３−９は、ディスク制御プログラム１０３−７に対して、外部ボリューム２３１及び／又はディスク１０６からキャッシュ領域１０３−３にデータを転送するように命令する。フロントエンドストレージサブシステム１００ａ上のボリューム移動制御プログラム１０３−９は、キャッシュ領域１０３−０からデータを読み出し、データ及び構成を、フロントエンドストレージサブシステム１００ｂ上のボリューム移動制御プログラム１０３−９に転送する。フロントエンドストレージサブシステム１００ｂ上のボリューム移動制御プログラム１０３−９は、ボリューム管理テーブル１０３−９に前記構成を備えるホストボリューム１３１を適用することによって、前記構成を備えるホストボリューム１３１を供給し、かつデータをキャッシュ領域１０３−０に格納する。ディスク制御プログラム１０３−７は、ページ管理テーブル１０３−４を変更することによって容量ページを割り当てる。ディスク制御プログラム１０３−７は、ディスク管理テーブル１０３−１でマッピングを解決することによって、キャッシュ領域１０３−０上のデータを外部ボリューム２３１又はディスク１０６に格納する。
【０１１１】
０１６０    Ｃ９．統合ストレージプール削減
【０１１２】
０１６１    図５０は、ストレージサブシステムの除去による、統合ストレージプール６００の削減のシーケンスの一例を示す。手順Ｓ９−１では、ユーザは、統合ストレージプールから除去されるべきストレージサブシステムを指定する。プール削減プロセスが完了した後で、ユーザは、システムからストレージを除去する。手順Ｓ９−２では、統合ストレージプール管理サーバ３００は、指定されたストレージサブシステムの構成をチェックする。
【０１１３】
０１６２    ストレージサブシステムがバックエンドストレージサブシステム２００である場合は、以下が生じる。除去されたバックエンドストレージサブシステム２００をマウントするフロントエンドストレージサブシステム１００は、容量ページを外部ボリューム２１６から他のＲＡＩＤグループ１１２に再割り当てする。フロントエンドストレージサブシステム１００は、外部ボリューム２１６をアンマウントする。
【０１１４】
０１６３    ストレージサブシステムがフロントエンドストレージサブシステム１００である場合は、以下が生じる。フロントエンドストレージサブシステム１００ａは、ホストボリューム１３１のデータ及び構成を他のフロントエンドストレージサブシステム１００にコピーする。コピーされたホストボリューム１３１に接続するホスト５００は、ターゲットホストボリューム１３１をコピーするためのパスを変更する。フロントエンドストレージサブシステム１００ａは、コピー元ホストボリューム１３１を削除する。除去されたフロントエンドストレージサブシステム１００ａを含まないフロントエンドストレージサブシステム１００ｂは、除去されたフロントエンドストレージサブシステム１００上にクロスマウントボリューム１３２をマウントするＲＡＩＤグループから容量ページを再割り当てする。除去されたフロントエンドストレージサブシステム１００ａを含まないフロントエンドストレージサブシステム１００ｂは、除去されたフロントエンドストレージサブシステム１００ａのクロスマウントボリューム１３２をアンマウントする。除去されたフロントエンドストレージサブシステム１００は、外部ボリューム２３１をアンマウントする。除去されたフロントエンドストレージサブシステム１００ａを含まないフロントエンドストレージサブシステム１００ｂは、アンマウントされた外部ボリューム２３１をマウントする。
【０１１５】
０１６４    手順Ｓ９−３では、フロントエンドストレージサブシステム１００は、すべてのホストボリューム１３１の構成及びデータを読み出す。手順Ｓ９−４では、ホストボリューム１３１は、データを転送する。手順Ｓ９−５では、フロントエンドストレージサブシステム１００ａは、ホストボリューム１３１のデータ及び構成をフロントエンドストレージサブシステム１００ａに転送する。手順Ｓ９−６では、フロントエンドストレージサブシステム１００ｂ上のホストボリューム１３１は供給され、データを格納する。手順Ｓ９−７では、ホスト５００は、パスを、フロントエンドストレージサブシステム１００ａからフロントエンドストレージサブシステム１００ｂに変更する。手順Ｓ９−８では、フロントエンドストレージサブシステム１００ａ上のホストボリューム１３１は、ホストパスを切断する。手順Ｓ９−９では、フロントエンドストレージサブシステム１００ｂ上のホストボリューム１３１は、ホストパスを接続する。手順Ｓ９−１０では、フロントエンドストレージサブシステム１００ａは、すべてのホストボリューム１３１を削除する。手順Ｓ９−１１では、ホストボリューム１３１が削除される。手順Ｓ９−１２では、フロントエンドストレージサブシステム１００ｂは、外部ボリューム２３１をマウントするＲＡＩＤグループ上の容量ページを他のＲＡＩＤグループに再割り当てする。手順Ｓ９−１３では、ＲＡＩＤグループは、データを他のＲＡＩＤグループ１１２にコピーする。手順Ｓ９−１４では、クロスマウントボリューム１３２は、容量ページのためのマッピングを変更する。手順Ｓ９−１５では、フロントエンドストレージサブシステム１００ｂは、階層式シンプロビジョニングプール１１０から、クロスマウントボリューム１３２をマウントするＲＡＩＤグループ１１２を除去する。フロントエンドストレージサブシステム１００ｂは、マウントされたクロスマウントボリューム１３２をアンマウントする。手順Ｓ９−１６では、フロントエンドストレージサブシステム１００ａ上のクロスマウントボリューム１３２がアンマウントされる。手順Ｓ９−１７では、フロントエンドストレージサブシステム１００ａは、外部ボリューム２１６をアンマウントする。手順Ｓ９−１８では、ＲＡＩＤグループ１１２は、外部ボリューム２１６をアンマウントする。手順Ｓ９−１９では、フロントエンドストレージサブシステム１００ｂは、フロントエンドストレージサブシステム１００ａにマウントされた外部ボリューム２１６をマウントする。手順Ｓ９−２０では、ＲＡＩＤグループ１１２は、外部ボリューム２１６をマウントする。手順Ｓ９−２１では、フロントエンドストレージサブシステム１００ａがシステムから除去される。
【０１１６】
０１６５    図５１は、統合ストレージプール６００の削減プロセスの間のシステムの状態を示す。フロントエンドストレージサブシステム１００ａは、ホストボリューム１３１をフロントエンドストレージサブシステム１００ｂに移動する。フロントエンドストレージサブシステム１００ｂは、フロントエンドストレージサブシステム１００ａがマウントした外部ボリューム２１３をマウントする。フロントエンドストレージサブシステム１００ｂによってマウントされたフロントエンドストレージサブシステム１００ａのクロスマウントボリューム１３２への接続が切断される。ホスト５００からフロントエンドストレージサブシステム１００ａのホストボリューム１３１への接続は、フロントエンドストレージサブシステム１００ｂに引き継がれ又は切り替えられる。
【０１１７】
０１６６    当然のことながら、図１、図４、図１０、図１３及び図２１に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【０１１８】
０１６７    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【０１１９】
０１６８    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体（ソフトウェア）上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータ等のプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【０１２０】
０１６９    上記により、本発明が、疎結合複数ストレージ環境のための階層式ストレージプール管理及び制御の方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１】
0005795496.tif 000002
【図２】
0005795496.tif 000003
【図３】
0005795496.tif 000004
【図４】
0005795496.tif 000005
【図５】
0005795496.tif 000006
【図６】
0005795496.tif 000007
【図７】
0005795496.tif 000008
【図８】
0005795496.tif 000009
【図９】
0005795496.tif 000010
【図１０】
0005795496.tif 000011
【図１１】
0005795496.tif 000012
【図１２】
0005795496.tif 000013
【図１３】
0005795496.tif 000014
【図１４】
0005795496.tif 000015
【図１５】
0005795496.tif 000016
【図１６】
0005795496.tif 000017
【図１７】
0005795496.tif 000018
【図１８】
0005795496.tif 000019
【図１９】
0005795496.tif 000020
【図２０】
0005795496.tif 000021
【図２１】
0005795496.tif 000022
【図２２】
0005795496.tif 000023
【図２３】
0005795496.tif 000024
【図２４】
0005795496.tif 000025
【図２５】
0005795496.tif 000026
【図２６】
0005795496.tif 000027
【図２７】
0005795496.tif 000028
【図２８】
0005795496.tif 000029
【図２９】
0005795496.tif 000030
【図３０】
0005795496.tif 000031
【図３１】
0005795496.tif 000032
【図３２】
0005795496.tif 000033
【図３３】
0005795496.tif 000034
【図３４】
0005795496.tif 000035
【図３５】
0005795496.tif 000036
【図３６】
0005795496.tif 000037
【図３７】
0005795496.tif 000038
【図３８】
0005795496.tif 000039
【図３９】
0005795496.tif 000040
【図４０】
0005795496.tif 000041
【図４１】
0005795496.tif 000042
【図４２】
0005795496.tif 000043
【図４３】
0005795496.tif 000044
【図４４】
0005795496.tif 000045
【図４５】
0005795496.tif 000046
【図４６】
0005795496.tif 000047
【図４７】
0005795496.tif 000048
【図４８】
0005795496.tif 000049
【図４９】
0005795496.tif 000050
【図５０】
0005795496.tif 000051
【図５１】
0005795496.tif 000052