(57)【要約】【課題】プールにより一元管理された記憶領域を複数機能で効率的に利用する。プールが使用不能になった場合でも、データ消失の影響範囲を限定する。【解決手段】動的に割当て／解放が可能な記憶領域であるプール領域を多数個備えたプール４を、複数のプールグループ４０と、複数のプールグループに共通のプール空き領域グループ４１とから構成する。各プールグループ４０は、記憶装置システム２ａの各記憶制御機能に対応付けられる。そのシステム２ａの記憶制御装置２０が、或るプールグループ４０Ａの使用値が閾値を超えた場合、プール空き領域グループ４１からそのプールグループ４０Ａに適当なプール空き領域を選択し、そのプールグループ４０Ａへ割り当てる。【選択図】図１
2007193573.tif 000002
【特許請求の範囲】
【請求項１】
ＩＯコマンドを発行する一又は複数の外部装置と通信可能であり複数の記憶制御機能を有した記憶装置システムにおいて、
動的に割り当てられたり解放されたりする記憶領域であるプール領域を多数個備えたプールと、
前記外部装置に認識され該外部装置によるＩＯコマンドの発行先とされる複数の仮想的な記憶デバイスである複数の仮想ボリュームと、
前記外部装置から前記仮想ボリュームに対するＩＯコマンドを受け、前記プール内の一以上のプール領域を前記仮想ボリュームに割り当て、前記割り当てた一以上のプール領域に対し、前記受けたＩＯコマンドに従うデータのライト或いはリードを行う記憶制御装置と
を備え、
前記プールは、複数の記憶制御機能にそれぞれ対応付けられた複数のプールグループと、プール空き領域グループとを備え、
前記複数のプールグループの各々は、複数のプール領域を有し、
前記プール空き領域グループは、前記複数のプールグループのうちのいずれかに動的に割り当てられたり解放されたりするプール領域であるプール空き領域を複数個有し、前記複数のプールグループに共通のグループであり、
前記記憶制御装置が、前記複数のプールグループのうち所定の割当て条件にマッチするプールグループに対して前記共通のプール空き領域グループ内のプール空き領域を割り当てる空き割当て部を備える、
記憶装置システム。
【請求項２】
プールグループが有する記憶容量のうち実際に使用されている容量に関する値の上限である使用値上限を記憶することできる記憶域を備え、
前記空き割当て部は、前記複数のプールグループのうちの或るプールグループの使用値が、該或るプールグループの前記記憶域に記憶されている使用値上限を上回った場合、少なくとも一つのプール空き領域を前記或るプールグループに割り当てる、
請求項１記載の記憶装置システム。
【請求項３】
各プールグループにおける各プール領域が割当て済みか未割り当てかの管理が他のプールグループのプール領域の管理とは独立して行われる、
請求項１記載の記憶装置システム。
【請求項４】
前記空き割当て部は、プールグループに割り当てるプール空き領域を所定のポリシーに従って選択する、
請求項１記載の記憶装置システム。
【請求項５】
前記プール領域は、複数のＲＡＩＤグループが有する物理的な記憶資源を用いて設定された複数の論理ボリュームのうちの或る論理ボリュームが有する一記憶領域であり、
各ＲＡＩＤグループは、一又は複数のディスクドライブを備えており、
各ディスクドライブには各ドライブパスを介して記憶制御装置からアクセスできるようになっており、
前記空き割当て部は、プールグループに割り当て済みのプール領域とは異なるＲＡＩＤグループ及び／又はドライブパスにあるプール空き領域を優先的に該プールグループに割り当てる、
請求項４記載の記憶装置システム。
【請求項６】
前記空き割当て部は、前記割り当て済みのプール領域とはドライブパスが異なるプール空き領域を、前記割り当て済みのプール領域とはＲＡＩＤグループが異なるプール空き領域よりも優先的に探して割り当てる、
請求項５記載の記憶装置システム。
【請求項７】
前記一又は複数の外部装置とは、ホストコンピュータと外部の記憶装置システムであり、
前記外部の記憶装置システムもプール領域を有し、
前記複数の記憶制御機能には、前記ホストコンピュータからのＩＯコマンドに従って動的にプール領域を割り当てるＩＯ処理機能と、他の記憶制御機能とが含まれ、
前記割り当て部は、前記ＩＯ処理機能に対応付けられたプールグループには、前記記憶装置システム内のプール空き領域を優先的に割り当て、前記他の記憶制御機能に対応したプールグループには、前記外部の記憶装置システム内のプール領域をプール空き領域として優先的に割り当てる、
請求項４記載の記憶装置システム。
【請求項８】
前記記憶制御装置が、前記複数のプールグループのうち所定の削除条件にマッチするプールグループから割り当て済みのプール領域を前記共通のプール空き領域グループに退避させるプール領域退避部を更に備える、
請求項１記載の記憶装置システム。
【請求項９】
プールグループが有する記憶容量のうち実際に使用されている容量に関する値の下限である使用値下限を記憶することできる記憶域を備え、
前記プール領域退避部は、前記複数のプールグループのうちの或るプールグループの使用値が、該或るプールグループの前記記憶域に記憶されている使用値下限を下回った場合、前記或るプールグループから少なくとも一つのプール領域を前記プール空き領域グループに退避させる、
請求項８記載の記憶装置システム。
【請求項１０】
前記プール領域退避部は、前記下回った状態が一定期間続いた場合に、前記或るプールグループから少なくとも一つのプール領域を前記プール空き領域グループに退避させる、
請求項９記載の記憶装置システム。
【請求項１１】
前記プール領域退避部は、退避させるプール領域に記憶されていたデータを、前記或るプールグループ内の別のプール領域に移動させる、
請求項８記載の記憶装置システム。
【請求項１２】
前記複数の記憶制御機能には、前記複数の仮想ボリュームのうちの二以上の仮想ボリュームを使用する機能が含まれており、前記二以上の仮想ボリュームにはそれぞれ別のプールグループが対応付けられている、
請求項１記載の記憶装置システム。
【請求項１３】
前記一又は複数の外部装置には、外部の記憶装置システムが含まれ、
前記記憶制御装置は、前記外部の記憶装置システムの記憶領域を前記記憶装置システムのプール領域として管理し、前記外部の記憶装置システムのプール領域を前記複数のプールグループのうちの或るプールグループに割り当てる、
請求項１記載の記憶装置システム。
【請求項１４】
動的に割り当てられたり解放されたりする記憶領域であるプール領域を多数個備えたプールと、通信相手となる外部の装置に認識され該外部装置によるＩＯコマンドの発行先とされる複数の仮想的な記憶デバイスである複数の仮想ボリュームとがあり、前記プールは、複数の記憶制御機能にそれぞれ対応付けられた複数のプールグループと、プール空き領域グループとを備え、前記複数のプールグループの各々は、複数のプール領域を有し、前記プール空き領域グループは、前記複数のプールグループのうちのいずれかに動的に割り当てられたり解放されたりするプール領域であるプール空き領域を複数個有し、前記複数のプールグループに共通のグループであり、
前記外部装置から前記仮想ボリュームに対するＩＯコマンドを受け、前記プール内の一以上のプール領域を前記仮想ボリュームに割り当て、前記割り当てた一以上のプール領域に対し、前記受けたＩＯコマンドに従うデータのライト或いはリードを行い、
前記複数のプールグループのうち所定の割当て条件にマッチするプールグループに対して前記共通のプール空き領域グループ内のプール空き領域を割り当てる、
記憶制御方法。
【請求項１５】
プールグループが有する記憶容量のうち実際に使用されている容量に関する値の上限である使用値上限を、前記複数のプールグループのうちの或るプールグループの使用値が上回った場合、少なくとも一つのプール空き領域を前記或るプールグループに割り当てる、
請求項１４記載の記憶制御方法。
【請求項１６】
各プールグループにおける各プール領域が割当て済みか未割り当てかの管理を、他のプールグループのプール領域の管理と独立して行う、
請求項１４記載の記憶制御方法。
【請求項１７】
プールグループに割り当てられる前記プール空き領域は、所定のポリシーに従って選択される、
請求項１４記載の記憶制御方法。
【請求項１８】
前記複数のプールグループのうち所定の削除条件にマッチするプールグループから割り当て済みのプール領域を前記共通のプール空き領域グループに退避させる、
請求項１４記載の記憶制御方法。
【請求項１９】
前記複数の記憶制御機能には、前記複数の仮想ボリュームのうちの二以上の仮想ボリュームを使用する機能が含まれており、前記二以上の仮想ボリュームにはそれぞれ別のプールグループが対応付けられている、
請求項１４記載の記憶制御方法。
【請求項２０】
ＩＯコマンドを発行する一又は複数の外部装置と通信可能であり複数の記憶制御機能を有した記憶装置システムにおいて、
動的に割り当てられたり解放されたりする記憶領域であるプール領域を多数個備えたプールと、
前記外部装置に認識され該外部装置によるＩＯコマンドの発行先とされる複数の仮想的な記憶デバイスである複数の仮想ボリュームと、
前記外部装置から前記仮想ボリュームに対するＩＯコマンドを受け、前記プール内の一以上のプール領域を前記仮想ボリュームに割り当て、前記割り当てた一以上のプール領域に対し、前記受けたＩＯコマンドに従うデータのライト或いはリードを行う記憶制御装置と
を備え、
前記プールは、複数の記憶制御機能にそれぞれ対応付けられた複数のプールグループと、プール空き領域グループとを備え、
前記複数のプールグループの各々は、複数のプール領域を有し、
前記プール空き領域グループは、前記複数のプールグループのうちのいずれかに動的に割り当てられたり解放されたりするプール領域であるプール空き領域を複数個有し、前記複数のプールグループに共通のグループであり、
各ＲＡＩＤグループは、一又は複数のディスクドライブを備えており、
各ディスクドライブには各ドライブパスを介して記憶制御装置からアクセスできるようになっており、
前記記憶制御装置が、
プールグループが有する記憶容量のうち実際に使用されている容量に関する値の上限である使用値上限と、プールグループが有する記憶容量のうち実際に使用されている容量に関する値の下限である使用値下限とを記憶することできる記憶域と、
前記複数のプールグループのうちの或るプールグループの使用値が、該或るプールグループの前記記憶域に記憶されている使用値上限を上回った場合、前記共通のプール空き領域グループから、前記或るプールグループに割り当て済みのプール領域とは異なるＲＡＩＤグループ及び／又はドライブパスにあるプール空き領域を優先的に探し、探し出したプール空き領域を、前記前記或るプールグループに対して割り当てる空き割当て部と、
前記複数のプールグループのうちの或るプールグループの使用値が、該或るプールグループの前記記憶域に記憶されている使用値下限を下回った場合、退避させる少なくとも一つのプール領域に記憶されていたデータを、前記或るプールグループ内の別のプール領域に移動させ、前記或るプールグループから前記少なくとも一つのプール領域を前記プール空き領域グループに退避させるプール領域退避部と
を備える、
記憶装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置システムにおける記憶領域の割り当て技術に関する。
【背景技術】
【０００２】
例えば、特開2002-222061号公報及び特開2004-234058号公報に開示されている技術が知られている。
【０００３】
特開2002-222061号公報には、記憶装置システムにおいてストレージブールを管理する方式が記載されている。記憶装置上にユーザの使用する記憶領域が作成される際に、あらかじめ設定されたボリューム作成ポリシーに従って、プール領域の中から特定の属性をもった記憶領域が選択され、当該領域を使用済みとして、指定されたボリュームが作成される。
【０００４】
特開2004-234058号公報には、ストレージネットワークシステムにおけるストレージプールを管理する方式が記載されている。ローカル・ネットワークに接続された管理装置が、自分が管理するネットワーク内のローカル・ストレージプール情報と、外部ネットワークに関するグローバル・ストレージプール情報を有し、自分が管理するホストコンピュータからのストレージプール使用要求に対してはローカル・ストレージプールから優先して記憶領域を割り当て、他のネットワークの管理装置からのストレージプール割り当て要求に対しては、グローバル・ストレージプールから記憶領域を割り当てる。
【特許文献１】特開2002-222061号公報
【特許文献２】特開2004-234058号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
記憶装置の物理的な記憶領域を管理し、ホストに対して論理的に割り当てた記憶領域に対して、ホストからのライトがあった場合等の記憶領域が必要となる契機に、論理的な記憶領域に物理的な記憶領域を割り当てて使用する技術がある。本明細書では、動的に割り当てられたり解放されたりする個々の記憶領域を、「プール領域」と呼び、その種の技術を「ストレージプール管理技術」と呼ぶ。ストレージプール管理技術によれば、使用される論理的な領域に対してプール領域を割り当てれば良いため、物理的な記憶領域サイズよりも論理的な記憶領域サイズを大きく設定できる利点がある。
【０００６】
また、複数の機能を搭載した（例えば、複数種類の記憶制御処理を実行することができる）記憶装置システムがある。例えば、ホストからのＩＯコマンド（データのライトコマンド或いはリードコマンド）に従って記憶装置にアクセスする機能に加えて、他の機能を搭載いた記憶装置システムがある。他の機能としては、例えば、データ複製機能がある。データ複製機能によれば、例えば、ペアにされたプライマリの論理ボリューム（プライマリボリューム）からセカンダリの論理ボリューム（セカンダリボリューム）にデータを複製することが行われる。
【０００７】
この種の記憶装置システムに、ストレージプール管理技術を適用する方法として、例えば、以下の方法が考えられる。
【０００８】
すなわち、機能毎に、プール領域グループが用意される。また、各プール領域グループ毎に、プール領域グループに動的に割当て可能な別のプール領域（以下、プール空き領域）を複数個備えたグループ（以下、プール空き領域グループ）が用意される。
【０００９】
しかし、この方法によれば、機能毎にプール容量（複数のプール領域による記憶容量）が異なる。このため、或る機能のプール空き領域が枯渇するが、別の機能のプール空き領域の数に余裕があるといった、記憶領域の使用に無駄が発生するという問題がある。
【００１０】
また、各機能が要求する最小プール割当単位容量（つまりプール領域のサイズ）が異なる場合、（１）要求される最小の容量に合わせたプール割当単位を用意し、それより大きい容量を要求される場合は、複数のプール割当単位を割り当てる、（２）あらかじめ異なるプール割当単位を用意し、要求された容量を充足するよう、プール割当単位を選択する、等の対策が必要であると考えられる。このため、（１）では、大容量を要求する機能では、プール領域の割当や解放（以下、プール割当／解放）の処理時間が増大し、プール割当／解放を伴う処理の性能を低下させる問題がある。また（２）では、容量の異なる割り当て単位の間で使用量に偏りが生じた場合、小容量のプール領域しか必要でない場合であっても、小容量のプール領域が全て使用されていた場合、過剰に大容量のプール領域を割り当て、記憶容量の使用効率を低下させる問題がある。
【００１１】
ストレージプール管理技術を適用する別の方法として、例えば、多数のプール領域の使用効率を高めるため、単一のプールグループでそれら多数のプール領域の全てを管理する方法が考えられる。
【００１２】
しかし、この別の方法によれば、記憶装置システムの保守のための操作を誤ったり、プール領域を管理するための情報や、複数のプール領域を備えた論理ボリュームに障害が発生したりした場合、それら複数のプール領域に格納されている全ての情報を一度に失う可能性がある。特に、特定のデータ複製機能（例えば、プライマリボリュームとセカンダリボリュームがデータを共有しない方式）を使用する場合には、プール領域グループに関連する障害により、一度にプライマリボリュームとセカンダリボリュームの両方のデータを失う可能性があり、バックアップ目的で当該機能を使用できないという問題が生じる。
【００１３】
従って、本発明の目的は、記憶装置システムにおいて、プールにより一元管理された記憶領域を複数機能で効率的に利用することにある。
【００１４】
本発明の別の目的は、プールが使用不能になった場合でも、データ消失の影響範囲を限定することにある。
【００１５】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本発明に従う記憶装置システムは、ＩＯコマンドを発行する一又は複数の外部装置と通信可能であり複数の記憶制御機能を有する。この記憶装置システムは、動的に割り当てられたり解放されたりする記憶領域であるプール領域を多数個備えたプールと、前記外部装置に認識され該外部装置によるＩＯコマンドの発行先とされる複数の仮想的な記憶デバイスである複数の仮想ボリュームと、前記外部装置から前記仮想ボリュームに対するＩＯコマンドを受け、前記プール内の一以上のプール領域を前記仮想ボリュームに割り当て、前記割り当てた一以上のプール領域に対し、前記受けたＩＯコマンドに従うデータのライト或いはリードを行う記憶制御装置とを備える。前記プールは、複数の記憶制御機能にそれぞれ対応付けられた複数のプールグループと、プール空き領域グループとを備える。前記複数のプールグループの各々は、複数のプール領域を有する。前記プール空き領域グループは、前記複数のプールグループのうちのいずれかに動的に割り当てられたり解放されたりするプール領域であるプール空き領域を複数個有し、前記複数のプールグループに共通のグループである。前記記憶制御装置が、前記複数のプールグループのうち所定の割当て条件にマッチするプールグループに対して前記共通のプール空き領域グループ内のプール空き領域を割り当てる空き割当て部を備える。例えばプール空き領域は必要な分だけ割り当てることができる。
【００１７】
第一の態様では、プールグループが有する記憶容量のうち実際に使用されている容量に関する値の上限である使用値上限を記憶することできる記憶域を備えることができる。前記空き割当て部は、前記複数のプールグループのうちの或るプールグループの使用値（例えば使用率或いは使用容量）が、該或るプールグループの前記記憶域に記憶されている使用値上限を上回った場合、少なくとも一つのプール空き領域を前記或るプールグループに割り当てることができる。
【００１８】
第二の態様では、記憶制御装置が、各プールグループにおける各プール領域が割当て済みか未割り当てかの管理を他のプールグループのプール領域の管理とは独立して行うことができる。
【００１９】
第三の態様では、前記空き割当て部は、プールグループに割り当てるプール空き領域を所定のポリシーに従って選択することができる。
【００２０】
第四の態様では、前記第三の態様において、前記プール領域は、複数のＲＡＩＤグループが有する物理的な記憶資源を用いて設定された複数の論理ボリュームのうちの或る論理ボリュームが有する一記憶領域であってもよい。各ＲＡＩＤグループは、一又は複数のディスクドライブを備えていてもよい。各ディスクドライブには各ドライブパスを介して記憶制御装置からアクセスできるようになっていてもよい。前記空き割当て部は、プールグループに割り当て済みのプール領域とは異なるＲＡＩＤグループ及び／又はドライブパスにあるプール空き領域を優先的に該プールグループに割り当てることができる。
【００２１】
第五の態様では、前記第四の態様において、前記空き割当て部は、前記割り当て済みのプール領域とはドライブパスが異なるプール空き領域を、前記割り当て済みのプール領域とはＲＡＩＤグループが異なるプール空き領域よりも優先的に探して割り当てることができる。
【００２２】
第六の態様では、前記第三の態様において、前記一又は複数の外部装置とは、ホストコンピュータと外部の記憶装置システムであってもよい。前記外部の記憶装置システムもプール領域を有していてもよい。前記複数の記憶制御機能には、前記ホストコンピュータからのＩＯコマンドに従って動的にプール領域を割り当てるＩＯ処理機能と、他の記憶制御機能とが含まれていてもよい。前記割り当て部は、前記ＩＯ処理機能に対応付けられたプールグループには、前記記憶装置システム内のプール空き領域を優先的に割り当て、前記他の記憶制御機能に対応したプールグループには、前記外部の記憶装置システム内のプール領域をプール空き領域として優先的に割り当てることができる。
【００２３】
第七の態様では、前記記憶制御装置が、前記複数のプールグループのうち所定の削除条件にマッチするプールグループから割り当て済みのプール領域を前記共通のプール空き領域グループに退避させるプール領域退避部を更に備えることができる。
【００２４】
第八の態様では、前記第七の態様において、プールグループが有する記憶容量のうち実際に使用されている容量に関する値の下限である使用値下限を記憶することできる記憶域を備えることができる。前記プール領域退避部は、前記複数のプールグループのうちの或るプールグループの使用値が、該或るプールグループの前記記憶域に記憶されている使用値下限を下回った場合、前記或るプールグループから少なくとも一つのプール領域を前記プール空き領域グループに退避させることができる。
【００２５】
第九の態様では、前記第八の態様において、前記プール領域退避部は、前記下回った状態が一定期間続いた場合に、前記或るプールグループから少なくとも一つのプール領域を前記プール空き領域グループに退避させることができる。
【００２６】
第十の態様では、前記第七の態様において、前記プール領域退避部は、退避させるプール領域に記憶されていたデータを、前記或るプールグループ内の別のプール領域に移動させることができる。
【００２７】
第十一の態様では、前記複数の記憶制御機能には、前記複数の仮想ボリュームのうちの二以上の仮想ボリュームを使用する機能が含まれていてもよい。前記二以上の仮想ボリュームにはそれぞれ別のプールグループが対応付けられていてもよい。
【００２８】
第十二の態様では、一又は複数の外部装置には、外部の記憶装置システムが含まれてもよい。前記記憶制御装置は、前記外部の記憶装置システムの記憶領域を前記記憶装置システムのプール領域として管理し、前記外部の記憶装置システムのプール領域を前記複数のプールグループのうちの或るプールグループに割り当てることができる。
【００２９】
少なくとも一つの態様において、プール空き領域からプールグループへ割り当てる記憶領域を、既にプールグループに割り当てられた記憶領域に対して、記憶制御装置から記憶装置への接続パスが異なる、記憶装置自体が異なるものから優先して必要な容量だけ選択しても良い。
【００３０】
上述した各部は、各手段と言い換えることができる。各部或いは各手段は、ハードウェア（例えば回路）、コンピュータプログラム、或いはそれらの組み合わせ（例えば、コンピュータプログラムを読み込んで実行する一又は複数のＣＰＵ）によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【発明の効果】
【００３１】
記憶装置システムにおいて、プールにより一元管理された記憶領域を複数機能で効率的に利用することができる。また、プールが使用不能になった場合でも、データ消失の影響範囲を限定し、処理を継続することができる。
【発明を実施するための最良の形態】
【００３２】
図１に、本発明の実施例の概要の説明図を示す。なお、以下の説明では、同一の要素には同一の親番号（例えば仮想ボリューム５のうちの「５」）を付し、個々の要素を特定して説明する場合には、その要素に子符号（例えば仮想ボリューム５Ｅの「Ｅ」）を添えて説明する。
【００３３】
一又は複数の記憶装置システム２（本実施例では、記憶装置システム２ａと記憶装置システム２ｂの二台とする）が、ネットワーク３を介して、１又は複数のホストコンピュータ１０と接続されている。また、記憶装置システム２ａ、２ｂの構成状態の変更や内部状態の参照に使用する管理端末１１は、記憶装置システム２ａ、２ｂと、ネットワーク３を介して、および、直接接続されている（どちらか一方の接続方式でもよいし、他の接続方式であってもよい）。
【００３４】
記憶装置システム２ａは、実ボリューム（実体のある論理ボリューム）４２と仮想ボリューム（実体の無い論理ボリューム、ただしホストコンピュータ１０に認識される）５を持つ。仮想ボリューム５の記憶領域は、プール４における実ボリューム４２の記憶領域に対応付けられている。プール４は、プールグループ４０とプール空き領域グループ４１で構成することができる。また、複数の実ボリューム４２の内、実ボリューム４２Ａが、外部の記憶装置システム２ｂの仮想ボリューム５Ｅが対応付けられる。外部の記憶装置システム２ｂには、実際の記憶領域が存在する実ボリューム４２Ｅがあり、仮想ボリューム５Ｅが実ボリューム４２Ｅに対応付けられている。記憶装置システム２ａにおける外部の記憶装置システム２ｂの記憶領域の使用方法として、実ボリューム４２だけで構成したプールグループ４０を作成し、外部の記憶装置システム２ｂの領域を必要とする場合、仮想ボリューム５を定義し、当該仮想ボリューム５の記憶領域を当該プールグループ４０から割り当てるようにしても良い。また、外部の記憶装置システム２ｂでは、必ずしも仮想ボリュームが存在しなくても良く、その場合には、実ボリューム４２Ｅが上位の装置（本実施形態では例えば記憶装置システム２ａ）に認識される。
【００３５】
さて、記憶装置システム２ａでは、複数の実ボリューム４２のうちの或る数の実ボリューム４２でプール４を構成することができる。別の言い方をすれば、プール４は、多数のプール領域で構成することができる。本実施例で言うプール領域とは、実ボリューム４２を構成する個々の記憶領域であって、動的に仮想ボリューム５に割り当てたり解放したりすることができる記憶領域である。
【００３６】
この実施例では、プール４は、一つだけでなく複数個備えることができる。一つのプール４は、前述した通り、プールグループ４０とプール空き領域４１とで構成することができる。プールグループ４０は、記憶装置システム２ａが有する一つの機能に対して一つ以上用意することができる。この場合、プール４は、複数のプールグループ４０と、複数のプールグループ４０に共有のプール空き領域グループ４１とで構成することができる。
【００３７】
ここで、プールグループ４０とは、プール４を構成する多数のプール領域のうちの複数のプール領域によって構成されるグループである。プールグループ４０を基準とすれば、プール４は、プール大グループと言い換えることもできる。
【００３８】
プール空き領域グループ４１とは、複数のプール空き領域で構成されたグループである。プール空き領域とは、プール４を構成する多数のプール領域のうちの一つであって、プールグループ４２に動的に割り当てられたり解放されたりするプール領域である。すなわち、プール空き領域とは、仮想ボリューム５に直接割り当てられるのではなく、一旦いずれかのプールグループ４０に割り当てえられた上で仮想ボリューム５に割り当てられるプール領域である。
【００３９】
記憶装置システム２ａが有する個々の機能が発揮されることにより、各種の記憶制御処理が行われる。この記憶装置システム２ａが有する機能（換言すれば、実行することができる記憶制御処理の種類）には、ＩＯ処理機能、ボリュームコピー機能、スナップショット機能及びジャーナルコピー機能の４種類の機能がある。これら４種類の機能に、それぞれ、４つのプールグループ４０Ａ〜４０Ｄが対応付けられている。
【００４０】
ＩＯ処理機能とは、ホストコンピュータ１０が発行するＩＯコマンド（データのライトコマンド又はリードコマンド）を処理する機能である。具体的には、例えば、記憶装置システム２ａの図示しない記憶制御装置が、仮想ボリューム５Ｐが指定されたライトコマンドとライト対象データとを受けた場合、そのライト対象データをキャッシュメモリに一時的に記憶し、そのライト対象データを記憶することができるサイズの一又は複数のプール領域をプールグループ４０Ａから仮想ボリューム５Ｐに割り当て、キャッシュメモリ２０５からライト対象データを読出し、その割り当てた一又は複数のプール領域に、読み出したライト対象データを書き込むことができる。
【００４１】
ボリュームコピー機能とは、或るプライマリの仮想ボリューム５にデータが書き込まれた場合に、そのデータを、その仮想ボリューム５とペアにされているセカンダリの仮想ボリュームに書き込む機能である。具体的には、例えば、記憶制御装置が、プライマリの仮想ボリューム５Ｐにデータを書いた場合、そのデータを記憶することができるサイズの一又は複数のプール領域をプールグループ４０Ｂから仮想ボリューム５Ｓに割り当て、その割り当てた一又は複数のプール領域に、そのデータを書き込むことができる。
【００４２】
スナップショット機能とは、或る時点の或る仮想ボリューム５（別の言い方をすれば、それに対応付けられた一又は複数のプール領域）のイメージを生成する機能である。具体的には、例えば、記憶制御装置が、スナップショット取得時点（例えば、ホストコンピュータ１０からスナップショット取得命令を受けた時点）以降に仮想ボリューム５Ｐ内の或るデータが別のデータに更新された場合、更新前のデータを記憶することができるサイズの一又は複数のプール領域をプールグループ４０Ｃから仮想ボリューム５Ｑに割り当て、その割り当てた一又は複数のプール領域に、更新前のデータを書き込むことができる。
【００４３】
ジャーナルコピー機能とは、或るプライマリの仮想ボリューム５にデータが書き込まれることとは非同期に、そのデータを、その仮想ボリューム５とペアにされているセカンダリの仮想ボリュームに書き込む機能である。具体的には、例えば、記憶制御装置が、プライマリの仮想ボリューム５Ｐにデータを書いた場合、更新履歴となるジャーナル（例えば、そのデータそれ自体とそのデータの書込み順番を表す情報）を生成し、そのジャーナルを記憶することができるサイズの一又は複数のプール領域をプールグループ４０Ｄから仮想ボリューム５Ｊに割り当て、その割り当てた一又は複数のプール領域に、そのジャーナルを書き込むことができる。そして、記憶制御装置は、そのジャーナル内のデータを或るタイミングで、外部の記憶装置システム２ｂ内の仮想ボリューム５Ｅ（仮想ボリューム５Ｅが無い場合には実ボリューム４２Ｅ）に転送することができる。これにより、仮想ボリューム５Ｅの或る領域に、実ボリューム４２Ｅのプール領域が割当てられ、そのプール領域に、転送されたデータが書き込まれる。
【００４４】
以上のように、記憶装置システム２ａでは、複数の機能にそれぞれ対応した複数のプールグループ４０が用意され、それら複数のプールグループ４０と、それら複数のプールグループ４０に共有のプール空き領域グループ４１とを、一つのプール４に備えることができる。
【００４５】
図２に、記憶装置システム２の構成例を示す。この構成例は、２ａと２ｂのうちの少なくとも２ａに適用することができる。
【００４６】
記憶装置システム２は、ディスクドライブ２１０を格納する記憶装置２１と、記憶装置システム２の動作を制御する記憶制御装置２０とを備える。記憶制御装置２０は、ホストコンピュータ１０と記憶制御装置２０とを接続するチャネルインタフェース２０１、記憶装置２１と記憶制御装置２０とを接続するドライブインタフェース２０２、メモリパッケージ２０３及び保守端末２０４を備える。
【００４７】
記憶装置２１には、ディスクドライブ２１０が単数または複数格納されている。各ドライブ２１０は、入出力ポートを複数持つ。記憶装置システム２において、記憶装置２１は複数存在しても良い。ディスクドライブ２１０は、例えば、ハードディスクドライブであるが、他種の記憶メディアのドライブであっても良い。
【００４８】
記憶制御装置２０には、ホストコンピュータ１０とキャッシュメモリ２０５の間のデータ転送を制御するチャネルインタフェース２０１と、キャッシュメモリ２０５とドライブ２１０の間のデータ転送を制御するドライブインタフェース２０２とが格納されている。チャネルインタフェース２０１は、ホストコンピュータ１０からのＩＯコマンドや別の要求を受領する他、外部の記憶装置システム２ｂに対し、ＩＯコマンドを発行することができる。ドライブインタフェース２０２は、例えば、2枚がペアとなり、記憶装置２１のドライブ２１０に接続されている。
【００４９】
チャネルインタフェース２０１は、例えば、入出力ポートと、ローカルメモリ５７と、ＣＰＵ５６と、データ転送の制御部とを備えることができる。ローカルメモリ５７は、各種の制御プログラム（コンピュータプログラム）やデータを記憶することができる。制御プログラムとしては、例えば、プール形成／ＶＯＬ登録プログラム５０、プールグループ形成プログラム５１、容量自動拡張プログラム５２、プールグループ削除プログラム５３、容量自動削減プログラム５４及びデータ退避プログラム５５がある。各種制御プログラムが読み込まれて実行されることにより行われる処理の主体はＣＰＵであるが、以下、説明を分かり易くするために、そのような処理の主体を制御プログラムとする。
【００５０】
ＣＰＵ５６は、プール形成／ＶＯＬ登録プログラム５０、プールグループ形成プログラム５１、容量自動拡張プログラム５２、プールグループ削除プログラム５３、容量自動削減プログラム５４及びデータ退避プログラム５５等の各種制御プログラムをローカルメモリ５７から読み込んで実行することができる。
【００５１】
ドライブインタフェース２０２も、チャネルインタフェース２０１と同様の構成とすることができる。各種制御プログラムは、チャネルインタフェース２０１のＣＰＵの他、ドライブインタフェース２０１のＣＰＵでも同様に実行されてもよい。記憶装置システム２において、チャネルインタフェース２０１、ドライブインタフェース２０２は複数存在しても良い。
【００５２】
また、メモリパッケージ２０３は、キャッシュメモリ２０５と、キャッシュメモリ２０５とドライブ２０１、２０２との間のデータ転送を制御する制御部とがある。キャッシュメモリ２０５は、ホストコンピュータ１０とディスクドライブ２１０との間で授受されるデータを一時的に記憶することができる。また、キャッシュメモリ２０５は、種々の制御情報を記憶することができる。制御情報としては、例えば、プール管理情報６０、ＶＯＬ管理情報６４、プール使用要件６５及び外部ＶＯＬ情報６６がある。制御情報は、キャッシュメモリ２０５とは別のメモリ、例えば、チャネルインタフェース２０１及びドライブインタフェース２０２に共有のメモリに記憶されても良い。メモリパッケージ２０３は複数存在しても良い。
【００５３】
保守端末２０４は、記憶措置システム２の構成を変更したり、内部状態を参照したりするために使用される。また、管理端末１１から記憶装置システム２への指示を中継する。保守端末２０４は、チャネルインタフェース２０１及びドライブインタフェース２０２のうちの少なくとも一方に接続されていても良い。保守端末２０４は、入出力コンソールと制御コンソールの両方を備えていても良いし（例えばパーソナルコンピュータであっても良いし）、入出力コンソールは備えておらず制御コンソールを備えていても良い（例えばいわゆるマザーボードであっても良い）。保守端末２０４は、管理端末１１と通信可能に接続されても良い。
【００５４】
図３に、記憶装置システム２のプール４を管理するプール管理情報６０の一例を示す。
【００５５】
プール管理情報６０は、記憶装置システム２に定義可能なプール４の数だけ存在する。一つの記憶装置システム２を分割して管理し、複数の独立した記憶装置サブシステムとして管理する際、各分割単位を「論理区画」と呼び、各論理区画に対して割り振る番号を、「論理区画番号」と呼ぶ。上記記憶装置システム２に定義可能なプール４の数が、システムに定義可能な論理区画数であっても良い。各プール管理情報６０には、それに対応するプール４の状態を管理するプール状態管理情報６１と、そのプール４に備えられる複数のプールグループ４０の状態をそれぞれ管理する複数のプールグループ管理情報６２と、プールグループ４０に未割り当てのプール空き領域を管理するプール空き領域管理情報６３とが含まれている。
【００５６】
図４に、プール状態管理情報６１の一例を示す。以下、このプール状態管理情報６１に対応するプール４を便宜上「当該プール４」と呼ぶ。
【００５７】
プール状態管理情報６１には、例えば、当該プール４の属する論理区画の論理区画番号と、”正常”、“閉塞”、“無効”等の当該プール４の状態を示すプール状態と、当該プール４に割り当てられた個々の実ボリューム（以下、プールＶＯＬと呼ぶことがある）の容量の総和を示すプール全容量とが含まれる。また、プール状態管理情報６１には、例えば、当該プール４の属する論理区画の記憶容量においてプールが占めることのできる割合の上限値を示す記憶容量占有閾値（上限）と、当該プール４の全容量（以下、プール容量）の上限値であるプール全容量閾値（上限）とも含まれる。また、プール状態管理情報６１には、例えば、当該プール４に新たなプール空き領域追加を促す契機を判断するためのプール使用率閾値（上限）と、当該プール４からプール空き領域を削除する契機を判断するためのプール使用率閾値（下限）とも含まれる。また、プール状態管理情報６１には、例えば、プール使用率を確認した前回（例えば直前回）の時刻であるプール使用率確認時刻と、プール容量を自動削減する契機の判断に使用するプール使用率確認時間閾値と、プールへの新たな空き領域追加を“自動”で行うか“手動”で行うかを登録するプールＶＯＬ追加モードと、当該プール４において未使用のプールグループ４０を管理するプールグループ空き管理情報と、当該プール４を構成するプールＶＯＬの番号の一覧であるプールＶＯＬ番号リストとも含まれる。
【００５８】
図５に、ＶＯＬ番号リストのフォーマットの一例を示す。
【００５９】
ＶＯＬ番号リストには、例えば、記憶位置、ドライブパス番号、ＲＡＩＤグループ番号及びＶＯＬ番号が含まれる。
【００６０】
記憶位置は、記憶領域が当該記憶装置システム２の“内部”に存在するか、あるいは、別の記憶装置システム２に存在するか（“外部”）を示す。
【００６１】
ドライブパス番号は、ドライブインタフェース２０２のペアからドライブ２１０へ接続されるパスにおいて、２本が１ペアとなっているパスのペアを特定する番号である。
【００６２】
ＲＡＩＤグループ番号は、ＲＡＩＤ（Redundant Array Of Independent Disks）１、ＲＡＩＤ５といった形態で、データを冗長コード付きでドライブ２１０に格納する際、冗長コードをつけるデータ群を分散して格納する範囲のドライブ２１０群を特定する。
【００６３】
ＶＯＬ番号は、実ボリュームを一意に特定するための番号である。番号に代えて他種のＩＤであっても良い。
【００６４】
なお、記憶位置が“外部”の項目については、外部ＶＯＬ情報６６に関連付けられた複数のパス情報６７の内、優先度の最も高いパスを特定することができる。この場合、ドライブパス番号には、外部の記憶装置システム２ｂへ接続するチャネルインタフェース２０１のパスを特定する番号が設定されても良い。また、ＲＡＩＤグループ番号には、外部のボリュームを特定するための情報（例えば、ターゲット情報及び／又はＬＵＮ（Logical Unit Number）等）が設定されても良い。
【００６５】
プール状態管理情報６１に含まれるプールＶＯＬ番号リストや、後述する他種のＶＯＬ番号リスト（例えばプールグループＶＯＬ番号リストや空きプールＶＯＬ番号リスト）は、この図５に例示したＶＯＬ番号リストのフォーマットで構成することができる。
【００６６】
図６に、プール管理情報６０の一部であるプールグループ管理情報６２の一例を示す。以下、このプールグループ管理情報６２に対応するプールグループ４０を便宜上「当該プールグループ４０」と呼ぶ。
【００６７】
プールグループ管理情報６２には、例えば、当該プールグループ４０を使用する機能（例えばスナップショット機能）を表すプールグループ属性と、当該プールグループ４０内でプール領域を割り当てる単位容量を表すプール領域割り当て粒度とが含まれる。また、プールグループ管理情報６２には、例えば、”正常”、“閉塞”、“無効”等の当該プールグループ４０の状態を示すプールグループ状態と、当該プールグループ４０に割り当てられているプールＶＯＬの容量の総和を示すプールグループ全容量とも含まれる。また、プールグループ管理情報６２には、例えば、プールグループ全容量の内、実際に仮想ボリュームに割り当てて使用している領域の容量を表すプールグループ使用量と、プール空き領域グループ４１から当該プールグループ４０に新たなプール空き領域追加を促す契機を判断するためのプールグループ使用率閾値（上限）と、当該プールグループ４０からプール空き領域グループ４１へプール領域を解放する契機を判断するためのプールグループ使用率閾値（下限）とも含まれる。また、プールグループ管理情報６２には、例えば、プールグループ使用率を確認した前回（例えば直前回）の時刻を表すプールグループ使用率確認時刻と、プールグループ容量を自動削減する契機の判断に使用するプールグループ使用率確認時間閾値と、当該プールグループ４０内でのプール領域の割り当てを管理するための情報であるプールグループ内プール領域割り当て管理情報６２０と、当該プールグループ４０を構成するプールＶＯＬの番号を登録したプールグループＶＯＬ番号リストとも含まれる。
【００６８】
図７に、プールグループ内プール領域割当管理情報６２０の概要の一例を示す。
【００６９】
プールグループ属性によって管理形態は異ならせることができる。この図７に示す管理形態は一例であって、これに限定するものではない。
【００７０】
プールグループ４０に割り当てられたプールＶＯＬの領域をプール領域割り当て粒度単位に分割し、分割されたそれぞれの領域に割当管理テーブルを対応させる。割り当て管理テーブルは、仮想ボリューム５の領域に対応付けていない未使用の状態では、空き管理情報（例えば、キュー或いはビットマップ等）により管理し、仮想ボリューム５の領域に対応づけた使用中の状態では、仮想ボリューム５の領域からプールＶＯＬの領域を特定するために検索するディレクトリに接続することができる。
【００７１】
図８に、プール管理情報６０の一部であるプール空き領域管理情報６３の一例を示す。
【００７２】
プール空き領域管理情報６３には、例えば、プール空き領域グループ４１のプールＶＯＬの容量の総和（つまりプール空き領域グループ４１の容量）を示す空き総容量と、プール空き領域グループ４１のプールＶＯＬの総数を示す空きプールＶＯＬ数と、プール空き領域グループ４１の各プールＶＯＬの番号を登録した空きプールＶＯＬ番号リストとが含まれる。
【００７３】
図９に、ＶＯＬ管理情報６４の一例を示す。
【００７４】
ＶＯＬ管理情報６４は、論理ボリューム（ＶＯＬと略記することもある）毎に存在し、各ＶＯＬの情報を格納する。このＶＯＬ管理情報６４に対応するＶＯＬを、以下、便宜上、「当該ＶＯＬ」と言う。当該ＶＯＬは、実ボリュームであっても仮想ボリュームであっても良い。
【００７５】
ＶＯＬ管理情報６４には、例えば、当該ＶＯＬが属する論理区画の論理区画番号と、当該ＶＯＬがこのＶＯＬ管理情報６４を有する記憶装置システム２の“内部”に存在するか、あるいは、別の記憶装置システム２に存在するか（“外部”）を示す記憶位置とが含まれる。また、ＶＯＬ管理情報６４には、例えば、ドライブインタフェース２０２のペアからドライブ２１０へ接続されるパスにおいて、２本が１ペアとなっているパスのペアを特定する番号であるドライブパス番号と、ＲＡＩＤ１、ＲＡＩＤ５といった形態で、データを冗長コード付きでドライブ２１０に格納する際、冗長コードをつけるデータ群を分散して格納する範囲のドライブ２１０群を特定するＲＡＩＤグループ番号とも含まれる。また、ＶＯＬ管理情報６４には、例えば、ＲＡＩＤグループ内における先頭アドレス及び終端アドレスと、ホストコンピュータ１０からのアクセスを可能にするパスを表すホストパス定義情報（例えば、チャネルインタフェース２０１のポート番号とＬＵＮとを含んだ情報）と、当該ＶＯＬの属性（例えば、プールＶＯＬ、仮想ボリューム等）を表すボリューム属性と、当該ＶＯＬの容量を表すＶＯＬ容量とも含まれる。
【００７６】
なお、記憶位置が“外部”の項目については、ドライブパス番号、ＲＡＩＤグループ番号の項目を無効とし、代わりに、当該外部ＶＯＬが登録されている外部ＶＯＬ情報６６の格納位置を特定するＩＤが設定されても良い。また、仮想ボリュームでは、ＶＯＬ属性に“仮想ＶＯＬ”属性を設定し、ドライブパス番号の項目にプールグループ番号が設定されても良い。
【００７７】
図１０に、プール使用要件６５の一例を示す。
【００７８】
プール使用要件６５は、例えば一種のテーブルである。当該テーブルは、論理区画毎に、インストール可能な、プールを使用する機能の数だけ持っても良い。プール使用要件６５は、機能により異なるが、論理区画番号の他、インストール時に必要なプールグループ数、必要初期プールグループ容量、必要な内部／外部ＶＯＬ種別やＲＡＩＤ構成等を示すＶＯＬ種別、当該機能が占有できるプールの割合を示すプール占有閾値（上限）等から構成される。
【００７９】
特に、記憶装置システム２内における仮想ボリュームによるボリュームコピー機能（プライマリ仮想ボリュームとセカンダリ仮想ボリュームがデータを共有しない方式）を使用する場合には、プール障害によるデータ喪失を避けるため、プライマリ仮想ボリュームとセカンダリ仮想ボリュームが使用するプールグループを分けられるように複数のプールグループ定義を要件とする。実際にコピー機能を使用する際は、例えば、プライマリ仮想ボリューム５Ｐとセカンダリ仮想ボリューム５Ｓが用意され、プライマリ仮想ボリューム５Ｐには、プールグループ４０Ａが対応付けられ、セカンダリ仮想ボリューム５Ｓには、別のプールグループ４０Ｂが対応付けられる。プライマリ仮想ボリューム５Ｐとセカンダリ仮想ボリューム５Ｓ間でペアが形成される。ペア中は、プライマリ仮想ボリューム５Ｐに書かれたデータがセカンダリ仮想ボリューム５Ｓにも書かれる。そのため、当該ペアが分割された場合には、プライマリ仮想ボリューム５Ｐに記憶されているペア分割直前時のデータ群が、セカンダリ仮想ボリューム５Ｓに対応したプールグループ４０Ｂに全てコピーされている。故に、プライマリ仮想ボリューム５Ｐが使用しているプールグループ４０Ａに障害が発生し使用不可能となった場合でも、セカンダリ仮想ボリューム５Ｓのデータを使用することができる。
【００８０】
また、プール占有閾値（上限）の決定方法は、例えば、インストール可能なプール領域を使用する機能（スナップショット機能等の前述した各種機能）毎に、プールに占める割当（例えば、プール４全体を１００として、ＩＯ処理機能：４０、スナップショット機能：３０、ジャーナルコピー機能：２０、ボリュームコピー機能：５、および、空き：５等）を指定するようにしても良い。
【００８１】
次に、記憶装置システム２ａにおける外部の記憶装置システム２ｂのボリュームの管理方式について説明する。
【００８２】
図１１に、外部ＶＯＬ情報６６の一例を示す。
【００８３】
外部ＶＯＬ情報６６は、外部のＶＯＬ（外部の記憶装置システムに存在するＶＯＬ）を一意に特定するための情報である。以下、外部ＶＯＬ情報６６に対応する外部ＶＯＬを「当該外部ＶＯＬ」と言う。外部ＶＯＬ情報６６には、例えば、当該外部ＶＯＬに格納されたデータが有効であることを示す有効フラグと、当該外部ＶＯＬを一意に特定するためＳＣＳＩ（Small Computer System Interface）のINQUIRYコマンド等で得た情報を格納するデバイス特定情報とが含まれる。また、例えば、外部ＶＯＬ情報６６には、当該外部ＶＯＬの先頭ＬＢＡ（Logical Block Address）及び終端ＬＢＡと、当該外部ＶＯＬが対応する記憶装置システム２ａ内部のＶＯＬを特定する対応ＶＯＬ番号と、当該外部ＶＯＬへのアクセス経路を特定するパス情報リストとも含まれる。
【００８４】
図１２に、外部ＶＯＬ情報６６のパス情報リストを構成するパス情報６７の一例を示す。
【００８５】
パス情報６７は、当該外部ＶＯＬへアクセスする経路を特定するための情報である。パス情報６７には、例えば、当該外部ＶＯＬの存在する記憶装置システム２ｂのポートを特定するためのポートアドレス情報と、当該外部ＶＯＬの存在する記憶装置システム２ｂのポートにおいて当該外部ＶＯＬが対応しているＬＵＮと、当該外部ＶＯＬへアクセスするための記憶装置システム２ａのポート番号と、アクセスする経路の状態とが含まれる。
【００８６】
図１３に、外部ＶＯＬの管理方式の概要の一例を示す。
【００８７】
記憶装置システム２ａの記憶制御装置２０は、例えば、そのシステム２ａの起動時に（または、外部からの指示により）、外部の記憶装置システム２ｂの外部ＶＯＬを特定することができる（ディスカバリ）。特定した外部ＶＯＬに対しては、他の装置（例えば他の記憶装置システム２）から当該外部ＶＯＬへのアクセスを制限するため、記憶制御装置２０は、当該外部ＶＯＬに対して、例えば、ＳＣＳＩにおけるPERSISTENT RESERVE属性を設定しようと試み、他の装置に対してアクセスを制限できた外部ＶＯＬについて、外部ＶＯＬ情報６６とパス情報６７を登録することができる。さらに、記憶装置システム２ａのＶＯＬとして使用するために、記憶制御装置２０は、当該外部ＶＯＬに関する情報をＶＯＬ管理情報６４に登録することができる。外部ＶＯＬ情報６６のエントリ数がＶＯＬ管理情報６４のエントリ数よりも多い場合は、外部ＶＯＬ情報６６に登録されているがＶＯＬ管理情報６４には登録されていない外部ＶＯＬが存在する場合である。
【００８８】
プールＶＯＬとして実際に外部ＶＯＬを使用する場合は、ＶＯＬ管理情報６４のボリューム属性がプールＶＯＬに更新される。また、ホストコンピュータ１０からアクセスできるＶＯＬとして実際に外部ＶＯＬを使用する場合は、ホストパス定義情報を設定する。図１３では、記憶装置システム２ａに、VOL_A、VOL_B、VOL_Cが登録されており、VOL_Aについては２つのパスが登録されている。VOL_A、VOL_B及びVOL_CはＶＯＬ管理情報６４に登録されているが、それらのうちVOL_AのみがプールＶＯＬとして使用されている。このため、VOL_Aの外部ＶＯＬ情報６６のＩＤが、ＶＯＬ管理情報６４に登録されると共に、そのＶＯＬ管理情報６４において、VOL_Aのボリューム属性がプールＶＯＬとされる。また、VOL_Aには、２つのパスが登録されるが、そのうちの一つのパス「i_0→t_0, k」によれば、記憶装置システム２ａのポート番号が「i_0」であるポートから、外部の記憶装置システム２ｂにおけるWWN（World Wide Name）が「t_0」であるポートを通り、ＬＵＮが「k」である仮想ボリュームにアクセスされることにより、VOL_Aのプール領域が割り当てられることになる。
【００８９】
図１４に、プール形成／ＶＯＬ登録プログラム５０が行う処理の流れの一例を示す。
【００９０】
プール形成／ＶＯＬ登録プログラム５０は、例えば、ホストコンピュータ１０及び／又は管理端末１１からの指示により起動される。ホストコンピュータ１０及び／又は管理端末１１から指定される起動時のパラメータは、記憶装置システム２の論理区画番号、プール全容量、記憶容量占有閾値（上限）、プール全容量閾値（上限）、プール使用率閾値（上限）、プール使用率閾値（下限）、プール使用率確認時間閾値、プールＶＯＬ追加モード、及び追加推奨ＶＯＬ方針である（図４参照）。プール全容量閾値（上限）については、プール全容量に上限値を設定しない場合は、当該論理区画の記憶容量を超える十分大きな値を設定しておいてもよい。
【００９１】
まず、プール形成／ＶＯＬ登録プログラム５０は、指定された論理区画内にプールが未形成か否かを判断する（ステップ１０００）。これは、例えば、プール状態管理情報６１のプール状態を参照することにより行うことができる。形成済みの場合（ステップ１０００のＮ）、ステップ１００２が行われる。
【００９２】
未形成の場合（ステップ１０００のＹ）、プール形成／ＶＯＬ登録プログラム５０は、プール状態管理情報６１を初期設定する（ステップ１００１）。具体的には、例えば、プール形成／ＶＯＬ登録プログラム５０は、その情報６１であるテーブル全体に初期値（例えばゼロ）を設定し、その後、起動パラメータで指定された論理区画番号、プール全容量、プール使用率閾値（上限／下限）、プール使用率確認時間閾値、プールＶＯＬ追加モード、記憶容量専有閾値（上限）、プール全容量閾値（上限）を設定し、プール状態を“閉塞”に設定する。プール状態を“閉塞”に設定するのは、当該プールに未だプールＶＯＬを未割り当てであるためである。
【００９３】
次に、プール形成／ＶＯＬ登録プログラム５０は、当該プールへ追加すべきＶＯＬ候補を特定するプールＶＯＬ候補選択を実行する（ステップ１００２）。
【００９４】
ここで、図１５を用いて、プールＶＯＬ候補選択の流れの一例を説明する。尚、プールに登録可能なＶＯＬが未定義の場合、ホストコンピュータ１０のオペレータ（ユーザ）や管理端末１１のオペレータ（保守員）等に定義させても良い。また、記憶装置システム２が管理する記憶領域について、あらかじめ指定された手順により自動でＶＯＬ定義を実行しても良い。
【００９５】
まず、プール形成／ＶＯＬ登録プログラム５０は、自動或いは手動で指定された必要プール容量の追加により、プール全容量が、記憶容量占有閾値（上限）と、プール全容量閾値（上限）を超えるかどうか判断する（ステップ１１００）。当該判定は、主に、プール容量自動拡張時に関連する判定である。具体的には、例えば、（プール全容量＋必要プール容量）＞＝（≧）（当該論理区画の全容量×記憶容量占有閾値（上限））、および、（プール全容量＋必要プール容量）＞＝（≧）プール全容量閾値（上限）、が成立するかが判断される。
【００９６】
条件成立の場合（ステップ１１００のＹ）、プールへのＶＯＬ追加が不可能と判断され、追加可能ＶＯＬ、および、追加推奨ＶＯＬがそれぞれ無しに設定され（ステップ１１０１）、ステップ１１０７が行われる。設定は、プール状態管理情報６１に対して行われても良いし、図１４の処理が終了するまでのメモリ上のワーク領域に行われ、図１４の処理が終了した場合に消去されても良い。
【００９７】
条件不成立の場合（ステップ１１００のＮ）、プール形成／ＶＯＬ登録プログラム５０は、全てのＶＯＬ管理情報６４を参照済みか判断する（ステップ１１０２）。参照済みの場合（ステップ１１０２のＹ）、ステップ１１０５が行われる。
【００９８】
参照済みでない場合（ステップ１１０２のＮ）、プール形成／ＶＯＬ登録プログラム５０は、参照中ＶＯＬがプール追加可能であるか判断する（ステップ１１０３）。具体的には、例えば、参照中ＶＯＬの論理区画番号が追加先のプールに一致するか否か、参照中ＶＯＬのホストパスが未定義であるか否か、及び、参照中ＶＯＬのボリューム属性がプールＶＯＬでない（プールに登録済みでない）か否かについて判断する。これらの判断の結果が全て肯定的となった場合に、プール追加可能であると判断することができる。プール追加可能でない場合（ステップ１１０３のＮ）、ステップ１１０２が行われる。
【００９９】
プール追加可能である場合（ステップ１１０３のＹ）、プール形成／ＶＯＬ登録プログラム５０は、ローカルメモリ５７に用意したＶＯＬ番号リストに参照中ＶＯＬを登録する（ステップ１１０４）。当該ＶＯＬ番号リストは、プール追加可能ＶＯＬ番号を表す。その後、ステップ１１０２が行われる。
【０１００】
次に、プール形成／ＶＯＬ登録プログラム５０は、プール状態管理情報６１のプール番号リストを参照する（ステップ１１０５）。
【０１０１】
次に、プール形成／ＶＯＬ登録プログラム５０は、追加推奨ＶＯＬを決定する（ステップ１１０６）。追加推奨ＶＯＬ方針とは、例えば、追加先プールの状況を考慮し、プール追加可能ＶＯＬに対する優先度を基に追加推奨ＶＯＬを選択することを方針としたものである。追加推奨ＶＯＬの選択方針は、前述のように、起動時のパラメータで受領しても良い。優先度の決定方式にはさまざまな条件が考えられるが、プールＶＯＬ間の性能の独立性を考慮すると、たとえば、（１）ドライブパス番号が異なる、（２）ＲＡＩＤグループ番号が異なる、の優先順でプール追加可能ＶＯＬを選択し、優先度の高いＶＯＬから順に必要プール容量分を追加推奨ＶＯＬとすることが考えられる。別の方法として、プールの使用するドライブパス及び／又はＲＡＩＤグループをできるだけ特定の範囲に制限したい場合は、（１）ＲＡＩＤグループ番号が一致、（２）ドライブパス番号が一致、の少なくとも一方を条件に、追加推奨ＶＯＬが決定されても良い。また別の方法として、特に、外部の記憶装置システム２ｂの記憶領域の優先度を上げる及び／又は下げることにより、追加推奨ＶＯＬが決定されても良い。更に別の方法として、ドライブの物理性能、ＲＡＩＤレベル（例えばＲＡＩＤ１やＲＡＩＤ５）、ＲＡＩＤにおいてドライブ間にデータを分散するストライプサイズ、ＲＡＩＤ５におけるパリティを付加するデータブロック数（たとえば、４つのドライブでＲＡＩＤ５を構成した場合、３D＋１Pとなり、データブロック数は３となる）のうちの少なくとも一つのＲＡＩＤ構成情報で、追加推奨ＶＯＬが決定されても良い。
【０１０２】
最後に、プール形成／ＶＯＬ登録プログラム５０は、プール追加可能ＶＯＬと追加推奨ＶＯＬのリストを出力し（ステップ１１０７）、処理を終了する。
【０１０３】
図１４に戻って、プールＶＯＬ候補選択の後、プール形成／ＶＯＬ登録プログラム５０は、プールＶＯＬ追加モードは”自動”か否か判断する（ステップ１００３）。
【０１０４】
“自動”でなく“手動”の場合（ステップ１００３のＮ）、プール形成／ＶＯＬ登録プログラム５０は、ホストコンピュータ１０及び／又は管理端末１１に追加可能ＶＯＬと追加推奨ＶＯＬを表示する（ステップ１００４）。これにより、ユーザや保守員等にプール追加対象ＶＯＬを選択してもらう。その後、選択結果を受領し、プール形成／ＶＯＬ登録プログラム５０は、選択されたＶＯＬをプール追加対象ＶＯＬに決定する（ステップ１００５）。
【０１０５】
“自動”の場合（ステップ１００３のＹ）、プール形成／ＶＯＬ登録プログラム５０は、追加推奨ＶＯＬをプール追加対象ＶＯＬに決定する（ステップ１００６）。
【０１０６】
最後に、プール形成／ＶＯＬ登録プログラム５０は、プールＶＯＬ登録を実行する（ステップ１００７）。
【０１０７】
図１６を用いて、プールＶＯＬ登録の流れの一例を説明する。
【０１０８】
まず、プール形成／ＶＯＬ登録プログラム５０は、全プール追加対象ＶＯＬについてＶＯＬ管理情報６４を更新したか判断する（ステップ１２００）。更新済みの場合（ステップ１２００のＹ）、ステップ１２０２が行われる。
【０１０９】
プール形成／ＶＯＬ登録プログラム５０は、未更新の場合（ステップ１２００のＮ）、ＶＯＬ管理情報６４を更新する。具体的には、例えば、プール形成／ＶＯＬ登録プログラム５０は、ボリューム属性にプールＶＯＬであることを設定する。その後、ステップ１２００が行われる。
【０１１０】
次に、プール形成／ＶＯＬ登録プログラム５０は、プール空き領域管理情報６３を更新する（ステップ１２０２）。具体的には、例えば、空き総容量に追加対象プールＶＯＬ全体の容量を加算し、空きプールＶＯＬ数に追加対象プールＶＯＬ数を加算し、空きプールＶＯＬ番号リストに追加対象プールＶＯＬを登録することが行われる。
【０１１１】
最後に、プール形成／ＶＯＬ登録プログラム５０は、プール状態管理情報６１を更新する（ステップ１２０３）。具体的には、例えば、プール全容量に追加対象プールＶＯＬ全体の容量を加算し、プールＶＯＬ番号リストに追加対象プールＶＯＬを登録し、プール状態を”正常”に設定することが行われる。
【０１１２】
以上が、プール形成／ＶＯＬ登録プログラム５０の説明である。
【０１１３】
図１７に、プールグループ形成プログラム５１が行う処理の流れの一例を示す。
【０１１４】
プールグループ形成プログラム５１は、記憶装置システム２の論理区画に、プールを使用する機能を新たにインストールする際に実行される。
【０１１５】
まず、プールグループ形成プログラム５１は、論理区画にプール未形成か判断する（ステップ１３００）。未形成の場合（ステップ１３００のＹ）、プールグループ形成プログラム５１は、ホストコンピュータ１０及び／又は管理端末１１にプール形成を要求し（ステップ１３０１）、処理を終了する。形成済みの場合（ステップ１３００のＮ）、プールグループ形成プログラム５１は、インストール対象機能のプール使用要件６５を参照する（ステップ１３０２）。
【０１１６】
次に、プールグループ形成プログラム５１は、使用するプールのプール管理情報６０を参照する（ステップ１３０３）。
【０１１７】
次に、プールグループ形成プログラム５１は、プールの状態がプール使用要件６５を充足するか判断する（ステップ１３０４）。プール使用要件６５に従って、必要なプールグループ数が形成可能か、各プールグループへ割り当てるだけのプール空き領域が存在するか等を確認する。充足する場合（ステップ１３０４のＹ）、ステップ１３１１が行われる。
【０１１８】
充足しない場合（ステップ１３０４のＮ）、プールグループ形成プログラム５１は、プールＶＯＬ追加モードが“自動”、かつ、リトライ未実行であるか判断する（ステップ１３０５）。
【０１１９】
条件不成立の場合（ステップ１３０５のＮ）、プールグループ形成プログラム５１は、ホストコンピュータ１０及び／又は管理端末１１に、プールＶＯＬ登録要求を出力する（ステップ１３０６）。なお、記憶容量占有閾値（上限）、プール全容量閾値（上限）の制限によりプール容量を拡大できない場合には、プールグループ形成プログラム５１は、その旨を表示する。
【０１２０】
条件成立の場合（ステップ１３０５のＹ）、プールグループ形成プログラム５１は、プールＶＯＬ候補選択を実行する（ステップ１３０７）。プールＶＯＬ候補選択の流れは、図１５を参照して説明した通りである。
【０１２１】
次に、プールグループ形成プログラム５１は、追加推奨ＶＯＬをプール追加対象ＶＯＬに決定し（ステップ１３０８）、プールＶＯＬ登録を実行する（ステップ１３０９）。プールＶＯＬ登録の流れは、図１６を参照して説明した通りである。
【０１２２】
次に、プールグループ形成プログラム５１は、リトライ処理中を示すリトライ中のフラグを設定し（ステップ１３１０）、ステップ１３０４に戻る。
【０１２３】
次に、プールグループ形成プログラム５１は、プール使用要件６５を充足するだけのプールグループの登録が済んだか判断する（ステップ１３１１）。登録済みの場合（ステップ１３１１のＹ）、処理が終了される。
【０１２４】
登録済みでない場合（ステップ１３１１のＮ）、プールグループ形成プログラム５１は、プール状態管理情報６１のプールグループ空き管理情報を参照し、空きプールグループを選択する（ステップ１３１２）。
【０１２５】
次に、プールグループ形成プログラム５１は、プールグループ管理情報６２を初期設定する（ステップ１３１３）。具体的には、例えば、プールグループ形成プログラム５１は、情報６２であるテーブル全体に初期値（例えばゼロ）を設定した後、プールグループ属性に当該プールグループを使用する機能を表す情報を設定し、当該機能に応じて、プールグループ領域割り当て粒度、プールグループ使用率閾値（上限）、プールグループ使用率閾値（下限）、プールグループ使用率確認時間閾値を設定し、プールグループ状態を“閉塞”に設定する。プールグループ状態を“閉塞”に設定するのは、当該プールグループに未だプールＶＯＬを未割り当てであるためである。
【０１２６】
次に、プールグループ追加領域候補選択が行われる（ステップ１３１４）。
【０１２７】
図１８を用いて、プールグループ追加領域候補選択の流れの一例を説明する。
【０１２８】
まず、プールグループ形成プログラム５１は、必要な容量を追加することで当該機能のプールグループ全容量の和がプール占有閾値（上限）を超えるか判断する（ステップ１４００）。当該判定は、主に、プールグループの容量自動拡張時に関連する判定である。具体的には、例えば、当該プールにおいて、対象プールグループと同じプールグループ属性を持つプールグループについて、プールグループ全容量の総和（Ａ）を求め、必要な容量（Ｂ）と、プール使用要件６５の当該機能のプール占有閾値（上限）（Ｃ）について、例えば、｛（（Ａ）＋（Ｂ））／プール全容量｝×１００＞＝（≧）（Ｃ）が成立するかが判断される。
【０１２９】
条件成立の場合（ステップ１４００のＹ）、プールグループ形成プログラム５１は、プールグループへのプールＶＯＬ追加不可能と判断し、追加推奨ＶＯＬを無しに設定し（ステップ１４０１）、ステップ１４０５を実行する。
【０１３０】
条件不成立の場合（ステップ１４００のＮ）、プールグループ形成プログラム５１は、プールグループＶＯＬ番号リストを参照する（ステップ１４０２）。
【０１３１】
次に、プールグループ形成プログラム５１は、空きプールＶＯＬ番号リストを参照する（ステップ１４０３）。
【０１３２】
次に、プールグループ形成プログラム５１は、空きプールＶＯＬ番号リストから追加推奨ＶＯＬを決定する（ステップ１４０４）。追加推奨ＶＯＬは、前述した通り種々の優先度に基づいて決定することができるが、割り当てられる機能によって優先度が変更されてもよい。例えば、ＩＯ処理機能用には信頼性や性能等がそろっている記憶装置システム２ａ内部の実ボリューム４２が優先して割当てられ、一方、スナップショット機能、ジャーナルコピー機能等には比較的容量を確保しやすい外部の記憶装置システム２ｂの実ボリューム４２が優先して割り当てられても良い。これは、図１５の処理でも同様とすることができる。
【０１３３】
最後に、プールグループ形成プログラム５１は、追加推奨ＶＯＬのリストを出力する（ステップ１４０５）。
【０１３４】
図１７に戻って、プールグループ形成プログラム５１は、プールグループ追加領域候補選択後、プールグループ領域を追加する（ステップ１３１５）。
【０１３５】
図１９を用いて、プールグループ領域追加の流れの一例を説明する。
【０１３６】
まず、プールグループ形成プログラム５１は、プール空き領域管理情報６３を更新する（ステップ１５００）。具体的には、例えば、プールグループ形成プログラム５１は、空き総容量から追加対象プールＶＯＬ全体の容量を減算し、空きプールＶＯＬ数から追加対象プールＶＯＬ数を減算し、空きプールＶＯＬ番号リストから追加対象プールＶＯＬの登録を削除する。
【０１３７】
次に、プールグループ形成プログラム５１は、プールグループ管理情報６２を更新する（ステップ１５０１）。具体的には、例えば、プールグループ形成プログラム５１は、プールグループ全容量に追加対象ＶＯＬ全体の容量を加算し、プールグループＶＯＬ番号リストへ追加対象ＶＯＬを登録する。さらに、例えば、プールグループ形成プログラム５１は、プールグループ内プール領域割当管理情報６２０の割当管理テーブルを、追加対象ＶＯＬの容量をプール領域割り当て粒度に従って分割した領域毎に用意し、割当管理テーブルを空き状態として（例えばキュー或いはビットマップに）登録する。
【０１３８】
図１７に戻って、プールグループ領域追加後、ステップ１３１１が行われる。
【０１３９】
図２０に、容量自動拡張プログラム５２が行う処理の流れの一例を示す。
【０１４０】
容量自動拡張プログラム５２は、例えば、プールグループにおける空き領域確保時において、プールグループの使用率がプールグループ使用率閾値（上限）を超えている場合、あるいは、一定時間経過毎に実行するプールグループの使用率確認時において起動される。
【０１４１】
まず、容量自動拡張プログラム５２は、プール状態管理情報６１のプール全容量とプール空き領域管理情報６３の空き総容量からプールの使用率を算出する（ステップ１６００）。
【０１４２】
次に、容量自動拡張プログラム５２は、算出したプール使用率がプール使用率閾値を超えるか判断する（ステップ１６０１）。超えない場合（ステップ１６０１のＮ）、ステップ１６０８が行われる。
【０１４３】
超える場合（ステップ１６０１のＹ）、容量自動拡張プログラム５２は、プールＶＯＬ追加モードが自動、かつ、リトライ未実行であるか判断する（ステップ１６０２）。
【０１４４】
条件不成立の場合（ステップ１６０２のＮ）、容量自動拡張プログラム５２は、ホストコンピュータ１０及び／又は管理端末１１にプールＶＯＬ登録要求を出力する（ステップ１６０３）。なお、容量自動拡張プログラム５２は、記憶容量占有閾値（上限）、プール全容量閾値（上限）の制限によりプール容量を拡大できない場合には、その旨を表示する。
【０１４５】
条件成立の場合（ステップ１６０２のＹ）、容量自動拡張プログラム５２は、プールＶＯＬ候補選択を実行する（ステップ１６０４）。プールＶＯＬ候補選択の流れは、図１５を参照して説明した通りである。
【０１４６】
次に、容量自動拡張プログラム５２は、追加推奨ＶＯＬをプール追加対象ＶＯＬに決定し（ステップ１６０５）、プールＶＯＬ登録を実行する（ステップ１６０６）。プールＶＯＬ登録の流れは、図１６を参照して説明した通りである。
【０１４７】
次に、容量自動拡張プログラム５２は、リトライ処理中を示すリトライ中のフラグを設定し（ステップ１６０７）、ステップ１６０１に戻る。
【０１４８】
次に、容量自動拡張プログラム５２は、プールグループ管理情報６２のプールグループ全容量とプールグループ使用量からプールグループの使用率を算出する（ステップ１６０８）。
【０１４９】
次に、容量自動拡張プログラム５２は、算出したプールグループ使用率はプールグループ使用率閾値（上限）を超えるか判断する（ステップ１６０９）。超えない場合（ステップ１６０９のＮ）、処理が終了する。
【０１５０】
超える場合（ステップ１６０９のＹ）、容量自動拡張プログラム５２は、空きプールＶＯＬが不足するか判断する（ステップ１６１０）。不足する場合（ステップ１６１０のＹ）、処理が終了される。
【０１５１】
不足しない場合（ステップ１６１０のＮ）、容量自動拡張プログラム５２は、プールグループ追加領域候補を選択する（ステップ１６１１）。プールグループ追加領域候補選択の流れは、図１８を参照して説明した通りである。
【０１５２】
次に、容量自動拡張プログラム５２は、プールグループ領域追加を実行する（ステップ１６１２）。プールグループ領域追加の流れは、図１９を参照して説明した通りである。その後、処理を終了する。
【０１５３】
図２１に、プールグループ削除プログラム５３が行う処理の流れの一例を示す。
【０１５４】
プールグループ削除プログラム５３は、例えば、記憶装置システム２の論理区画から、プールを使用していた機能を削除する際に実行される。
【０１５５】
まず、プールグループ削除プログラム５３は、削除対象機能が使用するプールグループを全て削除済みか判断する（ステップ１７００）。全て削除済みの場合（ステップ１７００のＹ）、ステップ１７０５が行われる。
【０１５６】
未だ削除済みでない場合（ステップ１７００のＮ）、プールグループ削除プログラム５３は、削除対象機能が使用するプールグループを選択し（ステップ１７０１）、プール空き領域管理情報６３を更新する（ステップ１７０２）。具体的には、例えば、プールグループ削除プログラム５３は、対象プールグループのプールグループＶＯＬ番号リストの全ＶＯＬを解放対象ＶＯＬとし、空き総容量に解放対象ＶＯＬ全体の容量を加算し、空きプールＶＯＬ数に解放対象ＶＯＬ数を加算し、空きプールＶＯＬ番号リストに解放対象プールＶＯＬを登録する。
【０１５７】
次に、プールグループ削除プログラム５３は、対象プールグループのプールグループ管理情報６２を無効化する（ステップ１７０３）。具体的には、プールグループ状態が“無効”に設定する。
【０１５８】
次に、プールグループ削除プログラム５３は、プール状態管理情報６１を更新する（ステップ１７０４）。具体的には、例えば、プールグループ削除プログラム５３は、プールグループ空き管理情報において、対象プールグループの状態を空き登録する。
【０１５９】
次に、プールグループ削除プログラム５３は、プールグループを削除したプールに有効なプールグループがなくなったか判断する（ステップ１７０５）。有効なプールグループが未だ存在する場合（ステップ１７０５のＮ）、処理が終了する。
【０１６０】
有効なプールグループが無い場合（ステップ１７０５のＹ）、プールグループ削除プログラム５３は、ホストコンピュータ１０及び／又は管理端末１１に、プール削除可否を表示する（ステップ１７０６）。これにより、ユーザや保守員等にプール削除可否を選択してもらう。通常プール削除可を選択するが、意図的に現在のプール構成を保存しておきたい場合には、プール削除不可を選択しても良い。その後、プールグループ削除プログラム５３は、選択結果を受領し、プール削除可否を判断する（ステップ１７０７）。
【０１６１】
プール削除不可の場合（ステップ１７０７のＮ）、処理が終了する。
【０１６２】
プール削除可の場合（ステップ１７０７のＹ）、プールグループ削除プログラム５３は、プールＶＯＬ番号リストの全ＶＯＬのボリューム属性を更新済みか判断する（ステップ１７０８）。
【０１６３】
全てのＶＯＬのボリューム属性を更新済みの場合（ステップ１７０８のＹ）、ステップ１７０９が行われる。
【０１６４】
未だ全てのＶＯＬのボリューム属性を更新済みでない場合（ステップ１７０８のＮ）、プールグループ削除プログラム５３は、プールＶＯＬ番号リストのＶＯＬのＶＯＬ管理情報６４のボリューム属性からプールＶＯＬ属性を削除する（ステップ１７０９）。その後、ステップ１７０８が行われる。
【０１６５】
最後に、プールグループ削除プログラム５３は、プール状態管理情報６１を無効化する（ステップ１７１０）。具体的には、プール状態が“無効”に設定される。
【０１６６】
図２２及び図２３に、容量自動削減プログラム５４が行う処理の流れの一例を示す。つまり、図２２及び図２３が繋がったものが、容量自動削減プログラム５４が行う処理の流れの一例を示す。
【０１６７】
容量自動削減プログラム５４は、プールグループの使用率が閾値を下回る状態が続いた場合、プールグループに割り当てられているプールＶＯＬを空きプールＶＯＬとして解放したり、プールの使用率が閾値を下回る状態が続いた場合、プールに割り当てられているプールＶＯＬをプールから解放したりする処理を実行することができる。容量自動削除プログラム５４は、例えば、一定時間経過毎に実行するプールグループの使用率確認時に起動される。
【０１６８】
まず、容量自動削減プログラム５４は、プールグループ管理情報６２のプールグループ全容量とプールグループ使用量からプールグループの使用率を算出する（ステップ１８００）。
【０１６９】
次に、容量自動削減プログラム５４は、算出したプールグループ使用率がプールグループ使用率閾値（下限）未満であるか判断する（ステップ１８０１）。条件が成立しない場合（ステップ１８０１のＮ）、図２３のステップ１８５０が行われる。
【０１７０】
条件が成立する場合（ステップ１８０１のＹ）、容量自動削減プログラム５４は、現在の時刻を確認し、プールグループ管理情報６２のプールグループ使用率確認時刻とプールグループ使用率確認時間閾値を参照し、前回のプールグループ使用率確認時からの経過時間が閾値を超えたか判断する（ステップ１８０２）。閾値を超えていない場合（ステップ１８０２のＮ）、図２３のステップ１８５０が行われる。
【０１７１】
閾値を超えている場合（ステップ１８０２のＹ）、容量自動削減プログラム５４は、プールグループ使用率確認時刻に現在の時刻を設定する（ステップ１８０３）。
【０１７２】
次に、容量自動削減プログラム５４は、当該プールグループの容量削除によりプール使用要件６５を充足したまま維持できるか判断する（ステップ１８０４）。
【０１７３】
維持できない場合（ステップ１８０４のＮ）、図２３のステップ１８５０が行われる。当該ケースとしては、例えば、プールグループの最低容量やプールグループ数の要件が設定されており、プールグループ数の容量が少なくなりすぎる場合や、プールグループの残ＶＯＬが１つであるためプールグループ容量削減により当該プールグループを削除することになる場合であっても良い。
【０１７４】
維持できる場合（ステップ１８０４のＹ）、容量自動削減プログラム５４は、プールグループ管理情報６２を参照し空き状態とするＶＯＬを選択する（ステップ１８０５）。削除対象とするＶＯＬの条件としては、例えば、当該ＶＯＬを削除することでプールグループ使用率がプールグループ使用率閾値（下限）を超えるＶＯＬであって、ドライブパス番号やＲＡＩＤグループ番号が他のプールグループ内のＶＯＬと重複するＶＯＬであっても良い。さらに、データ退避の負荷を低減するため、容量自動削減プログラム５４は、プールグループ内プール領域割当管理情報６２０より、最も使用率の低いＶＯＬを選択しても良い。また、容量自動削減プログラム５４は、空き状態化対象ＶＯＬは複数選択しても良い。
【０１７５】
次に、容量自動削減プログラム５４は、データ退避プログラム５５を起動する（ステップ１８０６）。データ退避プログラム５５が行う処理については、図２４で説明する。
【０１７６】
次に、容量自動削減プログラム５４は、データ退避プログラム５５が終了したか判断する（ステップ１８０７）。終了報告がない場合（ステップ１８０７のＮ）、容量自動削減プログラム５４は、一定時間待ち、再びステップ１８０７を実行する。
【０１７７】
次に、容量自動削減プログラム５４は、プール空き領域管理情報６３を更新する（ステップ１８０９）。具体的には、例えば、容量自動削減プログラム５４は、空き総容量に空き状態化対象ＶＯＬの容量を加算し、空きプールＶＯＬ数に空き状態化対象ＶＯＬ数を加算し、空きプールＶＯＬ番号リストに空き状態化対象ＶＯＬを登録する。
【０１７８】
次に、容量自動削減プログラム５４は、プールグループ管理情報６２を更新する（ステップ１８１０）。具体的には、例えば、容量自動削減プログラム５４は、プールグループ全容量から空き状態化対象ＶＯＬ全体の容量を減算し、プールグループＶＯＬ番号リストから空き状態化対象ＶＯＬの登録を削除する。さらに、容量自動削減プログラム５４は、例えば、プールグループ内プール領域割当管理情報６２０の空き状態化対象ＶＯＬに関連付けられた割当管理テーブルを、空き状態から不使用状態に変更する（例えば、キューからの削除、或いはビットマップ使用不可化等に変更する）。
【０１７９】
次に、容量自動削減プログラム５４は、空き状態化ＶＯＬを空き状態に変更した後のプールグループに未だ残留ＶＯＬがあるか判断する（ステップ１８１１）。残留ＶＯＬがある場合（ステップ１８１１のＮ）、図２３のステップ１８５０が行われる。
【０１８０】
残留ＶＯＬがない場合（ステップ１８１１のＹ）、容量自動削減プログラム５４は、ステップ１７０２〜ステップ１７０４を実行し、プールグループを削除する（ステップ１８１２）。
【０１８１】
次に、容量自動削減プログラム５４は、プールＶＯＬ追加モードが“自動”であるか判断する（ステップ１８５０）。“自動”でない場合（ステップ１８５０のＮ）、容量自動削減プログラム５４は、当該プールは容量自動削減対象でないと判断し、処理を終了する。
【０１８２】
“自動”である場合（ステップ１８５０のＹ）、容量自動削減プログラム５４は、プール状態管理情報６１のプール全容量とプール空き領域管理情報６３の空き総容量からプール使用率を算出する（ステップ１８５１）。
【０１８３】
次に、容量自動削減プログラム５４は、算出したプール使用率がプール使用率閾値（下限）未満であるか判断する（ステップ１８５２）。条件が成立しない場合（ステップ１８５２のＮ）、処理が終了する。
【０１８４】
条件が成立する場合（ステップ１８５２のＹ）、容量自動削減プログラム５４は、現在の時刻を確認し、プール状態管理情報６１のプール使用率確認時刻とプール使用率確認時間閾値を参照し、前回のプール使用率確認時からの経過時間が閾値を超えたか判断する（ステップ１８５３）。閾値を超えていない場合（ステップ１８５３のＮ）、処理が終了する。
【０１８５】
閾値を超えている場合（ステップ１８５３のＹ）、容量自動削減プログラム５４は、プール使用率確認時刻に現在の時刻を設定する（ステップ１８５４）。
【０１８６】
次に、容量自動削減プログラム５４は、当該プールの容量削除によりプール使用要件６５を充足したまま維持できるか判断する（ステップ１８５５）。
【０１８７】
維持できない場合（ステップ１８５５のＮ）、処理が終了する。当該ケースとしては、例えば、プールの最低容量が設定されており、プールの容量が少なくなりすぎる場合であっても良い。
【０１８８】
維持できる場合（ステップ１８５５のＹ）、容量自動削減プログラム５４は、プール管理情報６０を参照しプールから解放するＶＯＬを選択する（ステップ１８５６）。プールから解放するＶＯＬの条件としては、例えば、空き状態のプールＶＯＬであって、当該ＶＯＬを削除することでプール使用率がプール使用率閾値（下限）を超えるＶＯＬで、ドライブパス番号やＲＡＩＤグループ番号が他の空き状態のプールＶＯＬと重複するＶＯＬであっても良い。また、例えば、プールから解放するＶＯＬは複数選択しても良い。
【０１８９】
次に、容量自動削減プログラム５４は、プール空き領域管理情報６３を更新する（ステップ１８５７）。具体的には、例えば、容量自動削減プログラム５４は、空き総容量からプール解放対象プールＶＯＬ全体の容量を減算し、空きプールＶＯＬ数からプール解放対象プールＶＯＬ数を減算し、空きプールＶＯＬ番号リストからプール解放対象プールＶＯＬの登録を削除する。
【０１９０】
最後に、容量自動削減プログラム５４は、プール状態管理情報６１を更新する（ステップ１８５８）。具体的には、例えば、容量自動削減プログラム５４は、プール全容量からプール解放対象プールＶＯＬ全体の容量を減算し、プールＶＯＬ番号リストからプール解放対象プールＶＯＬの登録を削除する。
【０１９１】
図２４に、データ退避プログラム５５が行う処理の流れの一例を示す。
【０１９２】
データ退避プログラム５５は、例えば、前述したように、容量自動削減プログラム５４により起動される。
【０１９３】
まず、データ退避プログラム５５は、プールグループ内プール領域割当管理情報６２０において、空き状態化対象のＶＯＬ領域の新規割当を抑止する（ステップ１９００）。
【０１９４】
次に、データ退避プログラム５５は、空き状態化対象ＶＯＬの全領域について使用状態を確認したか判断する（ステップ１９０１）。
【０１９５】
確認済みの場合（ステップ１９０１のＹ）、データ退避プログラム５５は、データ退避終了を起動元である容量自動削減プログラム５４へ報告する（ステップ１９０７）。
【０１９６】
確認済みでない場合（ステップ１９０１のＮ）、データ退避プログラム５５は、空き状態化対象ＶＯＬの領域に対応する割当管理テーブルを参照する（ステップ１９０２）。
【０１９７】
次に、データ退避プログラム５５は、割当管理テーブルが使用中であるか判断する（ステップ１９０３）。使用中でない場合（ステップ１９０３のＮ）、ステップ１９０１が行われる。
【０１９８】
使用中である場合（ステップ１９０３のＹ）、データ退避プログラム５５は、空き状態化対象ＶＯＬに格納している有効データを、当該プールグループの空き状態化対象ＶＯＬ以外の領域へ退避する。このため、まず、データ退避プログラム５５は、空き状態化対象ＶＯＬ以外の当該プールグループのＶＯＬの空き領域を確保する（ステップ１９０４）。
【０１９９】
次に、データ退避プログラム５５は、空き状態化対象ＶＯＬの領域から、新規確保した領域でデータを退避する（ステップ１９０５）。
【０２００】
次に、データ退避プログラム５５は、空き状態化対象ＶＯＬの割当管理テーブルを解放する（ステップ１９０６）。その後、ステップ１９０１に戻る。
【０２０１】
以上、本発明の一実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、図２に示した記憶制御装置２０は、複数のチャネルインターフェースやドライブインタフェースを備えた構成に限らず、他種の構成、例えば、一又は複数のＣＰＵとメモリとを備えた一又は複数枚の回路基盤であっても良い。また、例えば、キャッシュメモリ２０５に記憶される管理情報は各ローカルメモリに記憶されても良い。また、上記実施例では、プール空き領域グループ４１から各プールグループ４０にはＶＯＬ単位でプール空き領域が追加或いは削除されるが、それに代えて、プール空き領域単位で追加或いは削除されてもよい。
【図面の簡単な説明】
【０２０２】
【図１】本発明の実施例の概要の説明図。
【図２】記憶装置システムの構成例を示す。
【図３】プール管理情報の一例を示す。
【図４】プール状態管理情報の一例を示す。
【図５】プールＶＯＬ番号リストのフォーマットの一例を示す。
【図６】プールグループ管理情報の一例を示す。
【図７】プールグループ内プール領域割当管理情報の概要の一例を示す。
【図８】空き状態管理情報の一例を示す。
【図９】ＶＯＬ管理情報の一例を示す。
【図１０】プール使用要件の一例を示す。
【図１１】外部ＶＯＬ情報の一例を示す。
【図１２】パス情報の一例を示す。
【図１３】外部ＶＯＬの管理方式の概要の一例を示す。
【図１４】プール形成／ＶＯＬ登録プログラムが行う処理の流れの一例を示す。
【図１５】プールＶＯＬ候補選択の流れの一例を示す。
【図１６】プールＶＯＬ登録の流れの一例を示す。
【図１７】プールグループ形成プログラムが行う処理の流れの一例を示す。
【図１８】プールグループ追加領域候補選択の一例を示す。
【図１９】プールグループ領域追加の一例を示す。
【図２０】容量自動拡張プログラムが行う処理の流れの一例を示す。
【図２１】プールグループ削除プログラムが行う処理の流れの一例を示す。
【図２２】容量自動削除プログラムが行う処理の流れの前半の一例を示す。
【図２３】容量自動削除プログラムが行う処理の流れの後半の一例を示す。
【図２４】データ退避プログラムが行う処理の流れの一例を示す。
【符号の説明】
【０２０３】
１０：ホストコンピュータ  １１：管理端末  ２：記憶装置システム  ２０：記憶制御装置  ２０１：チャネルインタフェース  ２０２：ドライブインタフェース  ２０３：メモリパッケージ  ２０４：保守端末  ２０５：キャッシュメモリ  ２１：記憶装置  ２１０：ディスクドライブ  ３：ネットワーク  ４：プール  ４０：プールグループ  ４１：プール空き領域  ５０：プール形成／ＶＯＬ登録プログラム  ５１：プールグループ形成プログラム  ５２：容量自動拡張プログラム  ５３：プールグループ削除プログラム  ５４：容量自動削除プログラム  ５５：データ退避プログラム  ６０：プール管理情報  ６１：プール状態管理情報  ６２：プールグループ管理情報  ６２０：プールグループ内プール領域割当管理情報  ６３：プール空き領域管理情報  ６４：ＶＯＬ管理情報  ６５：プール使用要件  ６６：外部ＶＯＬ情報  ６７：パス情報
【図１】
2007193573.tif 000003
【図２】
2007193573.tif 000004
【図３】
2007193573.tif 000005
【図４】
2007193573.tif 000006
【図５】
2007193573.tif 000007
【図６】
2007193573.tif 000008
【図７】
2007193573.tif 000009
【図８】
2007193573.tif 000010
【図９】
2007193573.tif 000011
【図１０】
2007193573.tif 000012
【図１１】
2007193573.tif 000013
【図１２】
2007193573.tif 000014
【図１３】
2007193573.tif 000015
【図１４】
2007193573.tif 000016
【図１５】
2007193573.tif 000017
【図１６】
2007193573.tif 000018
【図１７】
2007193573.tif 000019
【図１８】
2007193573.tif 000020
【図１９】
2007193573.tif 000021
【図２０】
2007193573.tif 000022
【図２１】
2007193573.tif 000023
【図２２】
2007193573.tif 000024
【図２３】
2007193573.tif 000025
【図２４】
2007193573.tif 000026