(57)【要約】【課題】  ペアを構成するボリュームに関する状態遷移コマンドに応じて各ボリュームのページに適切な物理デバイスを割り当てること。【解決手段】  性能が異なる複数の物理デバイスの論理的記憶領域を形成する複数の論理デバイスを、物理デバイスの性能に対応して各階層してプールボリュームとし、正論理ボリュームと副論理ボリュームおよびプールボリュームの各領域をそれぞれ正側ページ、副側ページ、プール側ページに分割してコントローラで管理する。コントローラは、ホスト計算機から、ペア形成に関するコマンドを受けたときに、正側ページと副側ページに同じ階層に属するプール側ページを割り当て、その後、ペアに関する状態遷移コマンドを受けたときには、副側ページには、正側ページとは異なる階層のプール側ページを割り当てる。
2011111093.tif 000002
【特許請求の範囲】
【請求項１】
性能が異なる複数の物理デバイスの論理的記憶領域を形成する複数の論理デバイスを前記物理デバイスの性能に応じて階層化し、前記階層化された論理ボリュームを各階層に対応したプールボリュームとして格納する仮想化プールと、
コマンド発行元のアクセス対象となる正論理ボリュームと、
前記正論理ボリュームのペアの対象となる副論理ボリュームと、
前記正論理ボリュームの記憶領域を複数の正側ページに分割して管理するとともに、前記副論理ボリュームの記憶領域を複数の副側ページに分割して管理し、かつ前記仮想化プールに属する各階層のプールボリュームの記憶領域を複数のプール側ページに分割して管理し、前記コマンド発行元からのコマンドで指定された正側ページに前記いずれかの階層のプール側ページを割り当てるコントローラと、を備え、
前記コントローラは、
前記コマンド発行元から、前記正論理ボリュームと前記副論理ボリュームとをペアとするペア構成に関するコマンドを受けたときには、前記コマンドで指定された正側ページに前記いずれかのプール側ページを割り当て、前記副側ページに、前記正側ページに割り当てられたプール側ページと同じ階層に属するプール側ページを割り当て、
前記コマンド発行元から、前記ペアに関する状態遷移コマンドを受けたときには、前記正側ページまたは前記副側ページのうち少なくとも一方に割り当てるプール側ページの階層を前記状態遷移コマンドに応じて選択する、ボリューム管理装置。
【請求項２】
請求項１に記載のボリューム管理において、
前記コントローラは、
前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、ペア分割のコマンドを受けたときには、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーする更新コピーを停止し、
前記ペア分割のコマンドに、ページ移動指示が含まれているときには、前記副側ページに割り当てられているプール側ページを、前記正側ページに割り当てられたプール側ページとは異なる階層に属するプール側ページに移動し、
前記副側ページに、前記移動したプール側ページを割り当て、前記副側ページへのライトデータを、前記移動したプール側ページに格納する、ボリューム管理装置。
【請求項３】
請求項１に記載のボリューム管理装置において、
前記コントローラは、
前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーする、ボリューム管理装置。
【請求項４】
請求項１に記載のボリューム管理装置において、
前記コントローラは、
前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、ペア分割のコマンドを受けたときには、前記副側ページに対して、前記プール側ページの割り当てを解除し、
前記ペア分割のコマンドに、ページ移動指示が含まれているときには、前記プール側ページの割り当てが解除された副側ページに、前記正側ページに割り当てられたプール側ページとは異なる階層に属するプール側ページを新たに割り当てる、ボリューム管理装置。
【請求項５】
請求項１に記載のボリューム管理装置において、
前記コントローラは、
前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、ペア分割のコマンドを受けたときには、前記副側ページに対して、前記プール側ページの割り当てを解除し、
その後、前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、前記コピーペアを再同期させるペア再同期のコマンドを受けたときには、前記正側ページと前記副側ページに、前記ペア再同期のコマンドを受ける前にそれぞれ割り当てられているプール側ページのうち、同じ階層に属するものを一組含むものを全て、前記ペア再同期におけるコピーぺアとして、前記ペア再同期におけるコピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーする、ボリューム管理装置。
【請求項６】
請求項１に記載のボリューム管理装置において、
前記コントローラは、
前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、ペア分割のコマンドを受けたときには、前記副側ページに対して、前記プール側ページの割り当てを解除し、
その後、前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、前記コピーペアをリバースリシンクさせるリバースリシンクのコマンドを受けたときには、前記正側ページと前記副側ページに、前記リバースリシンクのコマンドを受ける前にそれぞれ割り当てられているプール側ページのうち、同じ階層に属するものを一組含むものを全て、前記リバースリシンクにおけるコピーぺアとして、前記リバースリシンクにおけるコピーペアに属する副側ページのデータを前記コピーペアに属する正側ページにコピーする、ボリューム管理装置。
【請求項７】
請求項１に記載のボリューム管理装置において、
前記コントローラは、
前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記コマンド発行元から、前記ペアに関する状態遷移コマンドとして、前記コピーペアをクイックリストアさせるクイックリストアのコマンドを受けたときには、前記正論理ボリュームを新たな副論理ボリュームとし、前記副論理ボリュームを新たな正論理ボリュームとし、前記コマンド発行元から前記正論理ボリュームへのアクセスを前記新たな副論理ボリュームに切り替え、前記コマンド発行元から前記副論理ボリュームへのアクセスを前記新たな正論理ボリュームに切り替え、
前記新たな正論理ボリュームの正側ページに割り当てられている前記プール側ページと前記新たな副論理ボリュームの副側ページに割り当てられている前記プール側ページが異なる階層に属するときには、前記新たな正論理ボリュームの正側ページに、前記新たな副論理ボリュームの副側ページに割り当てられている前記プール側ページと同じ階層に属するプール側ページを新たに割り当てる、ボリューム管理装置。
【請求項８】
コマンド発行元のローカル側ストレージシステムにネットワークを介して接続されたリモート側ストレージシステムであって、
性能が異なる複数の物理デバイスと、
前記物理デバイスの論理的記憶領域を形成する複数の論理デバイスを前記物理デバイスの性能に応じて階層化し、前記階層化された論理ボリュームを各階層に対応したプールボリュームとして格納する仮想化プールと、
前記ローカル側ストレージシステムのアクセス対象となる正論理ボリュームと、
前記正論理ボリュームのペアの対象となる副論理ボリュームと、
前記正論理ボリュームの記憶領域を複数の正側ページに分割して管理するとともに、前記副論理ボリュームの記憶領域を複数の副側ページに分割して管理し、かつ前記仮想化プールに属する各階層のプールボリュームの記憶領域を複数のプール側ページに分割して管理し、前記コマンド発行元からのコマンドで指定された正側ページに前記いずれかの階層のプール側ページを割り当てるコントローラと、を備え、
前記コントローラは、
前記ローカル側ストレージシステムから、前記正論理ボリュームと前記副論理ボリュームとをペアとするペア構成に関するコマンドを受けたときには、前記コマンドで指定された正側ページに前記いずれかのプール側ページを割り当て、前記副側ページに、前記正側ページに割り当てられたプール側ページと同じ階層に属するプール側ページを割り当て、
前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドを受けたときには、前記正側ページまたは前記副側ページのうち少なくとも一方に割り当てるプール側ページの階層を前記状態遷移コマンドに応じて選択する、ストレージシステム。
【請求項９】
請求項８に記載のストレージシステムにおいて、
前記コントローラは、
前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーする、ストレージシステム。
【請求項１０】
請求項８に記載のストレージシステムにおいて、
前記コントローラは、
前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、ペア分割のコマンドを受けたときには、前記副側ページに対して、前記プール側ページの割り当てを解除し、
前記ペア分割のコマンドに、ページ移動指示が含まれているときには、前記プール側ページの割り当てが解除された副側ページに、前記正側ページに割り当てられたプール側ページとは異なる階層に属するプール側ページを新たに割り当てる、ストレージシステム。
【請求項１１】
請求項８に記載のストレージシステムにおいて、
前記コントローラは、
前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、ペア分割のコマンドを受けたときには、前記副側ページに対して、前記プール側ページの割り当てを解除し、
その後、前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、前記コピーペアを再同期させるペア再同期のコマンドを受けたときには、前記正側ページと前記副側ページに、前記ペア再同期のコマンドを受ける前にそれぞれ割り当てられているプール側ページのうち、同じ階層に属するものを一組含むものを全て、前記ペア再同期におけるコピーぺアとして、前記ペア再同期におけるコピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーする、ストレージシステム。
【請求項１２】
請求項８に記載のストレージシステムにおいて、
前記コントローラは、
前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、前記コピーペアを分割させるペア分割のコマンドを受けたときには、前記副側ページに対して、前記プール側ページの割り当てを解除し、
その後、前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、前記コピーペアをリバースリシンクさせるリバースリシンクのコマンドを受けたときには、前記正側ページと前記副側ページに、前記リバースリシンクのコマンドを受ける前にそれぞれ割り当てられているプール側ページのうち、同じ階層に属するものを一組含むものを全て、前記リバースリシンクにおけるコピーぺアとして、前記リバースリシンクにおけるコピーペアに属する副側ページのデータを前記コピーペアに属する正側ページにコピーする、ストレージシステム。
【請求項１３】
請求項８に記載のストレージシステムにおいて、
前記コントローラは、
前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、コピーペア形成のコマンドを受けたときには、前記正側ページと前記副側ページのうち割り当てられているプール側ページが同じ階層に属するものを一組含むものをコピーぺアとして、前記コピーペアに属する正側ページのデータを前記コピーペアに属する副側ページにコピーし、
その後、前記ローカル側ストレージシステムから、前記ペアに関する状態遷移コマンドとして、前記コピーペアをクイックリストアさせるクイックリストアのコマンドを受けたときには、前記正論理ボリュームを新たな副論理ボリュームとし、前記副論理ボリュームを新たな正論理ボリュームとし、前記ローカル側ストレージシステムから前記正論理ボリュームへのアクセスを前記新たな副論理ボリュームに切り替え、前記ローカル側ストレージシステムから前記副論理ボリュームへのアクセスを前記新たな正論理ボリュームに切り替え、
前記新たな正論理ボリュームの正側ページに割り当てられている前記プール側ページと前記新たな副論理ボリュームの副側ページに割り当てられている前記プール側ページが異なる階層に属するときには、前記新たな正論理ボリュームの正側ページに、前記新たな副論理ボリュームの副側ページに割り当てられている前記プール側ページと同じ階層に属するプール側ページを新たに割り当てる、ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機のアクセス対象となる論理ボリュームに対して、ページを動的に割り当てるための管理を行うボリューム管理装置及びストレージシステムに関する。
【背景技術】
【０００２】
従来から、ホスト計算機に対して大規模なデータストレージサービスを提供する計算機システムが存在する。このシステムは、ホスト計算機と、ホスト計算機が接続するストレージ装置と、ストレージ装置の管理装置と、を備えたものとして知られている。【０００３】
ストレージ装置は、複数のハードディスクをRAID（Redundant Array of Independent/Inexpensive Disks）方式で管理する。そして、多数のハードディスクが有する物理的な記憶領域を論理化し、これを論理ボリュームとしてホスト計算機に提供する。ホスト計算機は、論理ボリュームにアクセスしてデータのリード・ライトを要求する。【０００４】
この種の論理化技術の一つにシン・プロビジョニングと称されるものがある。ストレージ装置は、物理的な記憶領域を有さない仮想的なボリュームをホスト計算機に対して設定する。ホスト計算機が、仮想的なボリュームにライトアクセスにすることに合わせて、ストレージ装置は、仮想ボリュームに対して記憶領域を順次割り当てていく。【０００５】
従って、この技術は、論理ボリュームに対して当初から大容量な記憶領域を割り当てる方式に比べて、ストレージ資源を有効に活用できる点で効果的である。この技術は、特開２００３−１５９１５号公報、及び、特開２００６−３３８３４１号公報に記載されている。【０００６】
仮想ボリュームに記憶領域を提供するための手段は、それぞれ実の記憶領域が割り当てられた複数の論理ボリュームをプールと呼ばれる論理グループに纏めたものから構成される。複数の論理ボリュームはそれぞれプールボリュームと呼ばれる。仮想ボリュームに、ホスト計算機からライトアクセスがあると、仮想ボリュームのアクセス先に、プールボリュームの対応領域の記憶領域を割り当てる。【０００７】
ストレージ装置は、仮想ボリュームに対するホスト計算機からのアクセス領域を、プールボリュームに記憶容量が割り当てられた領域に対応させることにより、ホスト計算機からのライトデータを保存することができる。【０００８】
一方、ストレージ装置として、ストレージ装置への投資効率の向上のために、使用する記憶メディア（物理デバイス）を複数種類用意するとともに、データの価値を定義し、そのデータの価値と記憶メディアとを関連付けてデータを格納できるものが要求されている。そこで、米国特許２００５/０５５６０３号公報では、シン・プロビジョニングにおいて、容量割当て単位であるページへの入出力アクセスに応じて、適当な記憶メディアをページに自動再配置することを開示している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００３−１５９１５号公報
【特許文献２】特開２００６−３３８３４１号公報
【特許文献３】米国特許２００５/０５５６０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、米国特許２００５/０５５６０３号公報は、容量割当て単位であるページへの入出力アクセスに応じて、適当な記憶メディアをページに自動再配置することを開示しているものの、性能が異なる物理デバイスに対応して構成された論理ボリュームに、ページを割り当てるに際して、ペアを構成する論理ボリュームに関する状態遷移コマンドに応じて適切な物理デバイスを割り当てることについては開示していない。【００１１】
本発明は、前記従来技術の課題に鑑みて為されたものであり、その目的は、ペアを構成するボリュームに関する状態遷移コマンドに応じて各ボリュームのページに適切な物理デバイスを割り当てることができるボリューム管理装置およびストレージシステムを提供することにある。
【課題を解決するための手段】
【００１２】
前記目的を達成するために、本発明は、性能が異なる複数の物理デバイスの論理的記憶領域を形成する複数の論理デバイスを物理デバイスの性能に応じて階層化し、階層化された論理ボリュームを、各階層に対応したプールボリュームとして仮想化プールに格納し、正論理ボリュームに複数の正側ページを割り当てるとともに、副論理ボリュームに複数の副側ページを割り当て、仮想化プールに属する各階層のプールボリュームの記憶領域を複数のプール側ページに分割して管理し、正論理ボリュームと副論理ボリュームをペアとするペア構成に関するコマンドを受けたときに、正側ページにいずれかのプール側ページを割り当て、副側ページには正側ページに割り当てられたプール側ページと同じ階層に属するプール側ページを割り当て、コマンド発行元からペアに関する状態遷移コマンドを受けたときに、正側ページまたは副側ページのうち少なくとも一方に割り当てるプール側ページの階層を状態遷移コマンドに応じて選択することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ペアを構成するボリュームに関する状態遷移コマンドに応じて各ボリュームのページに適切な物理デバイスを割り当てることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明が適用された計算機システムのハードウエアブロック図である。
【図２】図１に示した計算機システムにおいて、ストレージシステムが行う記憶領域の動的割当の動作を示す機能ブロック図である。
【図３】ストレージシステムのメモリブロック図である。
【図４】VDEV管理情報を説明するための構成図である。
【図５】LDEV管理情報を説明するためのブロック図である。
【図６】アドレス管理テーブルを説明するためのブロック図である。
【図７】POOL管理情報を説明するためのブロック図である。
【図８】ターゲットデバイス情報を説明するためのブロック図である。
【図９】仮想ボリュームとPSCBおよびプールボリュームの関係を説明するためのブロック図である。
【図１０】仮想ボリュームとプールとの関係を説明するためのブロック図である。
【図１１】仮想ボリュームとPSCBおよび階層化されたプールボリュームの関係を説明するためのブロック図である。
【図１２】階層化されたプールボリュームに用いられるＰＳＣＢのブロック図である。
【図１３Ａ】プール作成処理を説明するためのフローチャートである。
【図１３Ｂ】プール管理情報作成処理を説明するためのフローチャートである。
【図１４Ａ】仮想ボリューム作成処理を説明するためのフローチャートである。
【図１４Ｂ】仮想ボリューム管理情報作成処理を説明するためのフローチャートである。
【図１５】Tierの追加と削除を説明するための図である。
【図１６】ペアクリエイト処理を説明するためのブロック図である。
【図１７】ペアサスペンド処理を説明するためのブロック図である。
【図１８】他のペアサスペンド処理を説明するためのブロック図である。
【図１９】ページ移動を伴うペアサスペンド処理を説明するためのブロック図である。
【図２０】スピンダウン指示を伴うペアサスペンド処理を説明するためのブロック図である。
【図２１】ペアリシンク処理を説明するためのブロック図である。
【図２２】リストア処理を説明するためのブロック図である。
【図２３】クイックリシンク処理を説明するためのブロック図である。
【図２４】ペア削除処理を説明するためのブロック図である。
【図２５】スナップショット作成処理を説明するためのブロック図である。
【図２６】スナップショット作成処理後のサスペンド処理を説明するためのブロック図である。
【図２７Ａ】ライトコマンド処理を説明するためのフローチャートである。
【図２７Ｂ】ライトアフタ処理を説明するためのフローチャートである。
【図２８】リードコマンド処理を説明するためのフローチャートである。
【図２９】イニシャルコピー処理を説明するためのフローチャートである。
【図３０】差分コピー処理を説明するためのフローチャートである。
【図３１】コピーアフタライト・コピーオンライト処理を説明するためのフローチャートである。
【図３２】リモートコピー処理を説明するためのブロック図である。
【図３３】リモートコピー後のペアサスペンド処理を説明するためのブロック図である。
【図３４】リモートコピー後のリバース処理を説明するためのブロック図である。
【図３５】リモートコピー後リバース処理を終了するときの処理を説明するためのブロック図である。
【発明を実施するための形態】
【００１５】
本実施形態は、性能が異なる複数の物理デバイスの論理的記憶領域を形成する複数の論理デバイスを物理デバイスの性能に応じて階層化し、階層化された論理ボリュームを、各階層に対応したプールボリュームとして仮想化プールに格納し、正論理ボリュームに複数の正側ページを割り当てるとともに、副論理ボリュームに複数の副側ページを割り当て、仮想化プールに属する各階層のプールボリュームの記憶領域を複数のプール側ページに分割して管理し、ペア形成に関するコマンドを受けたときには、正側ページと副側ページに同じ階層に属するプール側ページを割り当て、その後、ペアに関する状態遷移コマンドを受けたときに、状態遷移コマンドでページ移動が指示されたときには、副側ページに割り当てられていたプール側ページを、正側ページに割り当てられていたプール側ページとは異なる階層のプール側ページに移動させるものである。
【００１６】
以下、本発明の一実施形態を図面に基づいて説明する。図１は、本発明が適用された計算機システムのハードウエアブロック図である。計算機システムは、ホスト計算機１０と、管理装置２０と、これらが接続するストレージシステム３０と、を備えている。ストレージシステム３０は、ストレージ装置、あるいはストレージサブシステムとも呼ばれている。
【００１７】
ホスト計算機１０は、ストレージシステム３０の論理的な記憶資源にアクセスする。管理装置２０は、ストレージシステム３０の記憶領域の構成を管理する。ストレージシステム３０は、物理デバイス３４に設定された記憶領域にデータを格納する。
【００１８】
ホスト計算機１０は、入力手段１１０、出力手段１２０、CPU（Central  Processing  Unit）１３０、メモリ１４０、ディスクアダプタ１５０、ネットワークアダプタ１６０及びディスクドライブ１７０を備える。入力手段１１０は、ホスト計算機１０を操作する管理者等から入力を受け付ける手段である。入力手段１１０は、例えば、キーボードで構成される。出力手段１２０は、ホスト計算機１０の状態や設定項目を表示する手段である。出力手段１２０は、例えば、ディスプレイ装置で構成される。なお、ホスト計算機１０は、１または２台以上で構成される。
【００１９】
CPU１３０は、ディスクドライブ１７０に格納されているプログラムをメモリ１４０に読み込んで、そのプログラムに規定された処理を実行する。メモリ１４０は、例えば、ＲＡＭ等で構成され、プログラムやデータ等を格納する。
【００２０】
ディスクアダプタ１５０は、ストレージシステム３０とストレージネットワーク５０を介して接続し、ストレージシステム３０にデータを送受信する。ストレージネットワーク５０は、データ転送に適したプロトコル（例えば、Fibre Channel）で構成される。
【００２１】
ネットワークアダプタ１６０は、ストレージシステム管理装置２０又はストレージシステム３０と管理ネットワーク４０を介してデータを送受信する。管理ネットワーク４０は、例えばEthernet(登録商標)で構成される。
【００２２】
ディスクドライブ１７０は、例えば、ハードディスク装置で構成され、データやプログラムを格納する。
【００２３】
管理装置２０は、入力手段２１０、出力手段２２０、CPU２３０、メモリ２４０、ネットワークアダプタ２５０及びディスクドライブ２６０を備える。
【００２４】
入力手段２１０は、管理装置２０を操作する管理者等の入力を受け付ける手段である。入力手段２１０は、例えば、キーボードで構成される。出力手段２２０は、管理装置２０の状態や設定項目を表示する手段である。出力手段２２０は、例えば、ディスプレイ装置で構成される。
【００２５】
CPU２３０は、ディスクドライブ２６０に格納されている管理プログラム（管理ソフト）をメモリ２４０に読み込んで、そのプログラムに基づくストレージシステム３０に対する管理処理を実行する。メモリ２４０は、例えば、ＲＡＭ等で構成され、プログラムやデータ等を格納する。
【００２６】
ネットワークアダプタ２５０は、ホスト計算機１０又はストレージシステム３０と管理ネットワーク４０を介してデータを送受信する。
【００２７】
ディスクドライブ２６０は、例えば、ハードディスク装置で構成され、データやプログラムを格納する。
【００２８】
ストレージシステム３０は、コントローラ３１、ストレージキャッシュメモリ３２、共有メモリ３３、物理デバイス（PDEV）３４、電源スイッチ３５及び電源３６を備える。
【００２９】
コントローラ３１は、物理デバイス（PDEV）３４に構成された記憶領域へのデータの格納を制御する。
【００３０】
ストレージキャッシュメモリ３２は、物理デバイス（PDEV）３４に読み書きされるデータを一時的に格納する。共有メモリ３３は、コントローラ３１やPDEV３４の構成情報を格納する。物理デバイス（PDEV）３４は、複数のディスク装置によって構成される。電源３６は、ストレージシステム３０の各部に電力を供給する。電源スイッチ３５は、電源３６からの電力の供給をＯＮ／ＯＦＦするスイッチである。ディスク装置（記憶デバイス）は、例えば、ハードディスクドライブで構成され、主としてユーザデータを格納する。記憶デバイスとしては、フラッシュメモリなどの半導体メモリからなるドライブでもよい。
【００３１】
コントローラ３１は、ホストアダプタ３１０、ネットワークアダプタ３２０、不揮発性メモリ３３０、電源制御部３４０、メモリ３５０、プロセッサ３６０、ストレージアダプタ３７０及び共有メモリアダプタ３８０によって構成される。
【００３２】
ホストアダプタ３１０は、ストレージネットワーク５０を介してホスト計算機１０との間でデータを送受信する。ネットワークアダプタ３２０は、管理ネットワーク４０を介してホスト計算機１０又はストレージシステム管理装置２０との間でデータを送受信する。
【００３３】
不揮発性メモリ３３０は、ハードディスクやフラッシュメモリで構成され、コントローラ３１で動作するプログラムや構成情報等を格納する。電源制御部３４０は、電源３６から供給される電力を制御する。
【００３４】
メモリ３５０は、例えば、RAM（Random  Access  Memory）等で構成され、プログラムやデータ等を格納する。プロセッサ３６０は、不揮発性メモリ３３０に格納されているプログラムをメモリ３５０に読み込んで、そのプログラムに規定された処理を実行する。
ストレージアダプタ３７０は、物理デバイス（PDEV）３４及びストレージキャッシュメモリ３２との間でデータを送受信する。共有メモリアダプタ３８０は、共有メモリ３３との間でデータを送受信する。
【００３５】
図２は、図１に示した計算機システムにおいて、ストレージシステム３０が行う記憶領域の動的割当の動作を説明するための機能ブロック図である。
【００３６】
図２において、複数の物理デバイス（PDEV）３４は、例えば、パリティグループ３４２を構成し、パリティグループ３４２に属する物理デバイス（PDEV）３４によって仮想デバイス（VDEV）４００が構成される。仮想デバイス４００は、第１種VDEVを構成し、パリティグループ３４２に属する物理デバイス３４の論理的記憶領域を形成する複数の論理デバイス（LDEV）４１０によって分割される。
【００３７】
各論理デバイス（LDEV）４１０は、第１種LDEVとして、システムプール４２０に格納され、ホスト計算機１０のアクセス対象となる論理ボリュームまたは論理ユニット（LU）４３０と対応付けて管理される。すなわち、ホスト計算機１０は、論理ユニット４３０をターゲットデバイスとしてアクセスすることができ、論理ユニット４３０は、論理デバイス４１０にホスト計算機１０へのパスを定義して設定される。
【００３８】
また、ストレージシステム３０の外部に外部物理デバイス６００が接続されている場合、外部物理デバイス６００から仮想デバイス（VDEV）４０２が構成される。仮想デバイス（VDEV）４０２は、外部物理デバイス６００の論理的記憶領域を形成する複数の論理デバイス（LDEV）４１２によって分割される。各論理デバイス（LDEV）４１２は、システムプール４２０に格納され、論理デバイス４１０と同様に、論理ボリュームまたは論理ユニット４３０に対応づけられている。
【００３９】
また、各論理デバイス（LDEV）４１０、４１２は、階層管理型容量仮想化プール４４０に格納されたプールボリューム４５０に対応付けられている。仮想ボリューム４６０は、ホスト計算機１０のアクセス対象となるターゲットデバイスを構成し、仮想デバイス（VDEV）で構成されている。この仮想デバイス（VDEV）は、第２種VDEVとして、複数の論理デバイス（LDEV）に分割され、各論理デバイス（LDEV）が、第２種LDEVとして、プールボリューム４５０に対応付けられている。
【００４０】
この際、仮想ボリューム４６０の仮想記憶領域と、プールボリューム４５０の記憶領域および各論理デバイス４１０、４１２の記憶領域は、それぞれ複数の領域に分割され、各領域に、容量割当て単位であるページが割り当てられている。
【００４１】
そして、複数の論理デバイス（LDEV）を有する仮想ボリューム４６０に対して、未割当領域への新規書込に関するアクセスが生じたときには（A１）、この新規書込アクセスに対して、仮想ボリューム４６０のページPが割り当てられ（A２）、仮想ボリューム４６０のページPに対して、プールボリューム４５０のページPが割り当てられ（A３）、プールボリューム４５０のページPに対して、論理ボリューム４１０のページPが割り当てられる（A４、A５）。論理デバイス４１０のページPには、パリティグループ３４２に属する物理デバイス（PDEV）３４が割り当てられる（A６）。これにより、論理デバイス４１０のページPに対応する物理デバイス（PDEV）３４にライトデータが書き込まれることになる。
【００４２】
ここで、物理デバイス（PDEV）３４が、性能あるいはコストが相異なる記憶デバイスであって、例えば、SSD（Solid  State  Drive）、SAS（Serial  Attached  SCSI）Disks（以下、SASと称することもある。）、SATA（Serial  ATA）Disks（以下、SATAと称することもある。）、FC（Fibre  Channel）Disks（以下、FCと称することもある。）などで構成され、これらの記憶デバイスが、その性能、例えば、リードアクセスやライトアクセスに対するレスポンスタイムに応じて複数のグループに分けられる場合、論理デバイス４１０、４１２は、各物理デバイス（PDEV）３４の性能に対応して、階層化されて構築され、プールボリューム４５０も、各物理デバイス（PDEV）３４の性能に対応して、階層化されて構築される。
【００４３】
例えば、物理デバイス（PDEV）３４が、性能が異なる３種類の物理デバイスとして、SSD、SAS、SATAで構成されていた場合、これら物理デバイス（PDEV）３４は、SSDをTier０とし、SASをTier１とし、SATAをTier２として、３つのグループに分かれて階層化される。この場合、論理ボリューム４１０、４１２は、Tier０に属するSSDで構成される論理ボリュームと、Tier１に属するSASで構成される論理ボリュームと、Tier２に属するSATAで構成される論理ボリュームとして、３つの層に分かれて階層化されるとともに、プールボリューム４５０は、３つの層に分かれて階層化された論理ボリュームに対応して階層化されて、階層管理型容量仮想化プール４４０に格納されることになる。
【００４４】
図３は、ストレージシステム３０のメモリ３５０ブロック図である。メモリ３５０には、プロセッサ３６０によって読み込まれて実行される各種プログラムや、LDEVの設定に関する構成情報３５１及び容量仮想化プール４４０、システムプール４２０の設定に関するプール情報３５２が格納される。
【００４５】
コマンド制御プログラム３５０１は、ホスト計算機１０又はストレージシステム管理装置２０からのコマンドを解釈し、そのコマンドに規定された処理を実行する。パス制御プログラム３５０２は、ホスト計算機１０との間のパスを設定する。ホストアダプタ制御プログラム３５０４は、ホストアダプタ３１０の入出力データを制御する。構成制御プログラム３５０３は、ストレージシステム３０の構成を制御する。ディスクＩ／Ｏプログラム３５０５は、物理デバイス（PDEV）３４へのアクセスを制御する。
【００４６】
ネットワーク制御プログラム３５０６は、ストレージネットワーク５０又は管理ネットワーク４０を介して送受信するデータを制御する。プール制御プログラム３５０７は、容量仮想化プール４４０やシステムプール４２０を設定する。電源制御プログラム３５０８は、電源３６の供給する電力のON/OFFを制御する。キャッシュ制御プログラム３５０９は、ストレージキャッシュメモリ３２の領域及びデータを制御する。ドライブ診断プログラム３５１０は、PDEV（物理デバイス３４）の各ディスク装置の状態を診断する。
【００４７】
構成情報３５１は、ストレージシステム３０の仮想デバイス（VDEV）４００及び論理デバイス（LDEV）４１０、４１２に関する設定を格納する。プール情報３５２は、容量仮想化プール４４０やシステムプール４２０に関する設定を格納する。構成情報３５１は、アドレス管理テーブル３５１１、LDEV管理情報３５１２、ターゲットデバイス情報３５１３、VDEV管理情報３５１４を含む。
【００４８】
アドレス管理テーブル３５１１は、ターゲットデバイスとLDEVとVDEVおよび物理デバイスのアドレスのマッピング情報を格納する。アドレス管理テーブル３５１１は、ターゲットデバイス−LDEVマッピング情報３５１１１、LDEV−VDEVマッピング情報３５１１２及びVDEV−PDEVマッピング情報３５１１３を含む。LDEV管理情報３５１２は、LDEV（論理デバイス４１０、４１２）に関する情報を格納する。ターゲットデバイス情報３５１３は、ターゲットデバイスに関する情報を格納する。VDEV管理情報３５１４は、VDEV（仮想デバイス４００、４０２）に関する情報を格納する。
【００４９】
階層管理型容量仮想化管理情報３５２は、POOL管理情報３５２１、POOL-VOL管理情報（容量仮想化プール用構成管理情報）３５２２、V-VOLDIR（容量仮想化領域管理情報）３５２３、PSCB（容量仮想化用プール領域管理情報）３５２４、SYS領域情報３５２５、階層管理情報３５２６を含む。
【００５０】
POOL管理情報３５２１は、容量仮想化プール４４０の設定を格納する。POOL-VOL管理情報３５２２は、容量仮想化プール４４０のプールボリューム４５０の情報を格納する。V-VOLDIR ３５２３は、容量仮想化プール４４０のプールボリューム４５０のアドレスの割り当てを格納する。PSCB情報（容量仮想化用プール領域管理情報）３５２４は、容量仮想化プール４４０のプールボリューム４５０のアドレスの情報を格納する。SYS領域情報３５２５は、ストレージシステム３０の構成情報を格納するLDEVの情報を格納する。階層管理情報３５２６は、容量仮想化プール４４０のプールボリューム４５０の階層に関する情報を格納する。
【００５１】
図４は、VDEV管理情報の説明図である。VDEV管理情報３５１４は、VDEV固有情報３５１４１から構成される。VDEV固有情報３５１４１は、VDEV番号（VDEV＃）３５１４２、エミュレーションタイプ３５１４３、総サイズ３５１４４、残サイズ３５１４５、デバイス属性３５１４６、デバイス状態３５１４７、設定LDEV数３５１４８、LDEV番号３５１４９、先頭VDEV-SLOT＃３５１５０及び終了VDEV-SLOT＃３５１５１で構成される。
【００５２】
VDEV＃３５１４２は、VDEV（仮想デバイス４００、４０２）の識別子である。エミュレーションタイプ３５１４３は、VDEVのエミュレーションタイプの識別子である。総サイズ３５１４４は、VDEVに設定されている総サイズである。残サイズ３５１４５は、VDEVの未使用の領域のサイズである。
【００５３】
デバイス属性３５１４６は、VDEVに定義されている属性の識別子である。そのVDEVが第１種VDEV（論理ユニット４３０に割り当てられるVDEV）である場合には、第１種VDEVを示す識別子が格納され、そのVDEVが第２種VDEVであり、仮想ボリューム４６０に設定されている場合には、第２種VDEVを示す識別子が格納される。
【００５４】
デバイス状態３５１４７は、VDEVの状態を示す識別子である。VDEVの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
【００５５】
設定LDEV数３５１４８は、VDEVに設定されているLDEVの総数である。LDEV番号３５１４９は、VDEVに設定されているLDEVの番号が格納される。先頭VDEV-SLOT＃３５１５０は、設定されているLDEVの物理的な先頭のスロット番号の識別子である。
【００５６】
終了VDEV-SLOT＃３５１５１は、設定されているLDEVの物理的な最終のスロット番号である。このLDEV番号３５１４９、先頭VDEV-SLOT＃３５１５０及び終了VDEV-SLOT＃３５１５１は、LDEV数と同じ数だけLDEV番号毎に設定される。
【００５７】
図５は、LDEV管理情報の説明図である。LDEV管理情報３５１２は、VDEV固有情報３５１２１から構成される。LDEV固有情報３５１２１は、LDEV番号（LDEV＃）３５１２２、エミュレーションタイプ３５１２３、サイズ３５１２４、先頭スロット番号３５１２５、終了スロット番号３５１２６、パス定義情報３５１２７、デバイス属性３５１２８、デバイス状態３５１２９、プログラム使用状況３５１３００及びPOOL-ID３５１３０１で構成される。
【００５８】
LDEV＃３５１２２は、LDEV（論理デバイス４１０、４１２）の識別子である。エミュレーションタイプ３５１２３は、LDEVのエミュレーションタイプの識別子である。サイズ３５１２４は、LDEVに設定されている総サイズである。
【００５９】
先頭スロット番号３５１２５は、設定されたLDEVの先頭のスロット番号の識別子である。終了スロット番号３５１２６は、設定されたLDEVの最終のスロット番号である。パス定義情報３５１２７は、ホスト計算機１０に定義されたパスの識別子である。
【００６０】
デバイス属性３５１２８は、LDEVの属性の識別子である。LDEVが第１種LDEVである場合には、第１種LDEVを示す識別子が格納され、LDEVが第２種LDEVである場合には、第２種LDEVを示す識別子が格納される。また、LDEVが容量仮想化プール４４０に設定されている場合は、プール属性を示す識別子が格納される。
【００６１】
デバイス状態３５１２９は、そのLDEVが所属するVDEVの状態を示す識別子である。VDEVの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
【００６２】
プログラム使用状況３５１３００は、LDEVが何れかのプログラムによって処理中である場合に、そのプログラムの識別子が格納される。POOL-ID３５１３０１は、LDEVが容量仮想化プール４４０に設定されている場合に、その識別子が格納される。
【００６３】
図６は、アドレス管理テーブルの説明図である。アドレス管理テーブル３５１１は、ターゲットデバイスとLDEVとVDEVおよび物理デバイス３４のアドレスのマッピング情報を格納する。アドレス管理テーブル３５１１は、ターゲットデバイス−LDEVマッピング情報３５１１１、LDEV−VDEVマッピング情報３５１１２及びVDEV−PDEVマッピング情報３５１１３を含む。
【００６４】
ターゲットデバイス−LDEVマッピング情報３５１１１は、ターゲットデバイスのアドレスとLDEVのアドレスとの対応が格納される。LDEV−VDEVマッピング情報３５１１２は、LDEV（第１種LDEV、第２種LDEV）のアドレスとVDEV（第１種VDEV、第２種VDEV）のアドレスが格納される。
【００６５】
VDEV−PDEVマッピング情報３５１１３は、VDEVのアドレスとそのRAIDグループ番号（又はパリティグループ）とPDEV（物理デバイス３４）のアドレスか格納される。
【００６６】
ストレージシステム３０は、このアドレス管理テーブル３５１１を参照することによって、ターゲットデバイスのアドレスがどのLDEVのどのアドレスに対応するかを知ることができる。また、LDEVのアドレスがどのVDEVのどのアドレスに対応するかを知ることができる。また、VDEVのアドレスがどのRAIDグループに属しており、どのPDEVのどのアドレスに対応するかを知ることができる。
【００６７】
図７は、POOL管理情報の説明図である。POOL管理情報３５２１は、POOL固有情報３５２１１から構成される。POOL固有情報３５２１１は、POOL-ID３５２１２、属性／用途３５２１３、エミュレーションタイプ３５２１４、容量３５２１５、空き容量３５２１６、閾値３５２１７、状態３５２１８、POOL-VOL数３５２１９、POOL-VOLデバイス番号リスト３５２２０、POOLを利用しているデバイス数３５２２１及びPOOLを利用しているデバイス番号３５２２２で構成される。
【００６８】
POOL-ID３５２１２は、POOL（容量仮想化プール４４０）の識別子である。属性／用途３５２１３は、その容量仮想化プール４４０の属性及び用途を示す識別子である。用途は、例えば、スナップショットやSYS領域など、運用形態の用途である。
【００６９】
エミュレーションタイプ３５２１４は、容量仮想化プール４４０のエミュレーションタイプの識別子である。容量３５２１５は、容量仮想化プール４４０の総容量である、空き容量３５２１６は、容量仮想化プール４４０の未使用の領域のサイズである。
【００７０】
閾値３５２１７は、容量仮想化プール４４０が許容する最大のデータ格納容量である。状態３５２１８は、容量仮想化プール４４０の現在の状態である。例えば、定義中、拡張中、有効等である。POOL-VOL数３５２１９は、容量仮想化プール４４０として設定されているLDEVの総数である。
【００７１】
POOL-VOLデバイス番号リスト３５２２０は、容量仮想化プール４４０として設定されているLDEV番号の一覧である。POOLを利用しているデバイス数３５２２１は、容量仮想化プール４４０のLDEVが関連付けられている第２種LDEVの数である。POOLを利用しているデバイス番号３５２２２は、容量仮想化プール４４０のLDEVが関連付けられている第２種LDEV番号の一覧である。
【００７２】
図８は、ターゲットデバイス情報の説明図である。ターゲットデバイス情報３５１３は、ターゲットデバイス固有情報３５１３１から構成される。ターゲットデバイス固有情報３５１３１は、ポート＃３５１３２、ターゲットデバイス番号＃３５１３３、LDEV数３５１３４、LDEV＃３５１３５、属性３５１３６、状態３５１３７、容量３５１３８、許可ホスト情報３５１３９で構成される。
【００７３】
ポート＃３５１３２は、ホストアダプラ３１０のポート番号である。ターゲットデバイス番号＃３５１３３は、ターゲットデバイスの番号、例えば、仮想ボリューム４６０をターゲットデバイスとしたときには、仮想ボリューム４６０の番号を示す。LDEV数３５１３４は、仮想ボリューム４６０をターゲットデバイスとしたときには、仮想ボリューム４６０を構成するLDEV（第２種LDEV）の数を示す。LDEV＃３５１３５は、例えば、仮想ボリューム４６０をターゲットデバイスとしたときには、仮想ボリューム４６０を構成するLDEV（第２種LDEV）の番号を示す。
【００７４】
属性３５１３６は、例えば、仮想ボリューム４６０をターゲットデバイスとしたときには、仮想ボリューム４６０の属性を示す。状態３５１３７は、仮想ボリューム４６０をターゲットデバイスとしたときには、仮想ボリューム４６０の状態、例えば、アクセス対象の状態にあることを示す。容量３５１３８は、仮想ボリューム４６０をターゲットデバイスとしたときには、仮想ボリューム４６０を構成するLDEV（第２種LDEV）の容量を示す。許可ホスト情報３５１３９は、仮想ボリューム４６０をターゲットデバイスとしたときには、仮想ボリューム４６０に対するアクセスの許可の有無を示す情報である。
【００７５】
図９は、仮想ボリュームとPSCBおよびプールボリュームの関係を説明するためのブロック図である。VVOL-DIR３５２３は、仮想ボリューム４６０の記憶領域である第２種LDEVの構成の情報である。PSCB（POOL-SLOT Control Block）３５２４は、プールボリューム４５０に設定された第１種LDEVの構成の情報である。
【００７６】
ストレージシステム３０は、物理デバイス（PDEV）３４からRAID構成によって第１種VDEV（仮想デバイス４００）を構成する。この第１種VDEVを、記憶領域である第１種LDEV（論理デバイス４１０）に分割する。第１種LDEVがシステムプール４２０に設定される。このシステムプール４２０に設定された第１種LDEVによって構成されるボリュームをプールボリューム（POOL-VOL）４５０とする。
【００７７】
また、ストレージシステム３０は、仮想ボリューム（VVOL）４６０を設定し、第２種VDEV（仮想デバイス）を構成する。この第２種VDEVを記憶領域である第２種LDEV（論理デバイス）に分割する。
【００７８】
ストレージシステム３０は、仮想ボリューム４６０の第２種LDEVを、プールボリューム４５０の第１種LDEV（論理デバイス４１０）に割り当てる。これによって、ホスト計算機１０がアクセスする仮想ボリューム４６０の記憶領域が、物理デバイス（PDEV）３４から構成された第１種LDEV（論理デバイス４１０）に設定される。
【００７９】
仮想ボリューム４６０の構成は、VVOL-DIR３５２３に格納される。VVOL-DIR３５２３は、LDEV番号（LDEV＃）３５２３１及びエントリ３５２３２によって構成される。
【００８０】
LDEV番号（LDEV＃）３５２３１は、第２種LDEV（論理デバイス）の識別子である。エントリ３５２３２は、第２種LDEVの構成情報である。このエントリ３５２３２は、第２種LDEVアドレス３５２３３及びPSCBポインタ３５２３４から構成される。
【００８１】
第２種LDEVアドレス３５２３３には、仮想ボリューム４６０の第２種LDEV（論理デバイス）のアドレスが格納される。
【００８２】
PSCBポインタ３５２３４には、第２種LDEV（論理デバイス）がプールボリューム４５０の第１種LDEV（論理デバイス４１０）に割り当てられている場合に、その第１種LDEV（論理デバイス４１０）の領域のポインタが格納される。なお、初期状態では、第２種LDEVは、第１種LDEVに割り当てられていないので、PSCBポインタ３５２３４には、「NULL」が格納される。
【００８３】
PSCB（Pool-Slot Control Block）３５２４は、プールボリューム４５０に設定されている第１種LDEV（論理デバイス４１０）の情報である。このPSCB３５２４は、プールボリューム４５０に設定されている第１種LDEV（論理デバイス４１０）のスロット毎に設定される。
【００８４】
PSCB３５２４は、実ページ番号（実ページ＃）３５２４２、プールボリューム４５０のアドレス３５２４３、ポインタA３５２４４及びポインタB３５２４５から構成される。
【００８５】
実ページ番号（実ページ＃）３５２４２は、プールボリューム４５０における第１種LDEV（論理デバイス４１０）の実ページ番号である。プールボリューム４５０のアドレス３５２４３は、プールボリューム４５０における第１種LDEV（論理デバイス４１０）のアドレスである。
【００８６】
ポインタA３５２４４及びポインタB３５２４５は、プールボリューム４５０内の第１種LDEV（論理デバイス４１０）の前後のスロットの識別子である。
【００８７】
また、プールボリューム４５０の領域のうち、未使用の領域は、その先頭がフリーPSCBキュー３５２４０で示される。フリーPSCBキュー３５２４０は、次のスロットを示すPSCB３５２４へのポインタを含む。
【００８８】
ストレージシステム３０は、フリーPSCBキュー３５２４０に示されたポインタを参照して、次のPSCB３５２４を得る。さらに、次のPSCB３５２４のポインタB３５２４５を参照して、段階的にPSCB３５２４を辿る。そして、その未使用の領域の最終のスロットに対応するPSCB３５２４を得る。
【００８９】
この最後のPSCB３５２４のポインタB３５２４５は、フリーPSCBキュー３５２４０である。ストレージシステム３０は、フリーPSCBキュー３５２４０を辿り、PSCB３５２４のポインタによって連結された集合によって、容量仮想化プール４４０のプールボリューム４５０の未使用の領域を知ることができる。
【００９０】
ストレージシステム３０は、プールボリューム４５０に設定された第１種LDEV（論理デバイス４１０）に対応するPSCB３５２４を設定する。具体的には、プールボリューム４５０に設定された第１種LDEV（論理デバイス４１０）の各スロットに対応するPSCB３５２４を設定し、さらにフリーPSCBキュー３５２４０を設定する。初期状態では、プールボリューム４５０は全て未使用であるため、フリーPSCBキュー３５２４０によって連結される集合は、プールボリューム４５０に設定された第１種LDEV（論理デバイス４１０）の全ての領域に対応する。
【００９１】
そして、ストレージシステム３０は、このプールボリューム４５０の領域を使用する場合に、必要なスロット分のPSCB３５２４を第２種LDEVであるVVOL-DIR３５２３に割り当てることで、当該領域が使用可能となる。複数のスロットの集合がページに相当する。ページは、複数のPSCBから特定される。ホスト計算機１０から仮想ボリューム４６０へのアクセス、仮想ボリューム４６０のアクセス領域に対するプールボリューム４５０からの記憶領域の割り当ては、ページ単位で実行される。
【００９２】
具体的には、ストレージシステム３０は、フリーPSCBキュー３５２４０を参照する。そして、第２種LDEVに割り当てる必要な領域分（ページ）のPSCB３５２４を取得する。この取得したPSCB３５２４を、それぞれVVOL-DIR３５２３のエントリに割り当てる。すなわち、VVOL-DIR３５２３の各エントリのPSCBポインタ３５２３４に、対応するPSCB３５２４を示すポインタを格納する。なお、割り当て済みのPSCB３５２４は、フリーPSCBキュー３５２４０の連結から外す。
【００９３】
これによって、第２種LDEVの各ページ（スロット）が、VVOL-DIR３５２３の各エントリのPSCBポインタ３５２３４で示されるPSCB３４２４に割り当てられる。PSCB３５２４は、第１種LDEV（論理デバイス４１０）のスロットに対応しているので、結果として、第２種LDEVが第１種LDEV（論理デバイス４１０）に割り当てられ、ホスト計算機１０のアクセス対象である仮想ボリューム４６０が、ターゲットデバイスとして使用可能となる。
【００９４】
図１０は、仮想ボリュームとプールとの関係を説明するためのブロック図である。プール管理テーブル３５２２１は、仮想ボリューム４６０の第２種LDEVとプールボリューム４５０の第１種LDEV（論理デバイス４１０）との関係を管理するためのテーブルを構成する。
【００９５】
プール管理テーブル３５２２１には、仮想ボリューム４６０の第２種LDEVが、プールボリューム４５０に割り当てられていないときには、「FREE」の情報が、第２種LDEVに対応して格納され、仮想ボリューム４６０の第２種LDEVが、プールボリューム４５０に割り当てられたときには、「ALOCATED」の情報が、第２種LDEVに対応して格納される。  
【００９６】
図１１は、仮想ボリュームとPSCBおよび階層化されたプールボリュームの関係を説明するためのブロック図である。
【００９７】
階層化されたプールボリューム４５０が容量仮想化プール４４０に格納された場合、階層毎にフリーPSCBをキュー管理し、１つのLDEV３５２３１に対して、複数の階層にページ毎に領域を割り当てることとしている。この際、ページ単位の方法をPSCB単位の情報として管理する。PSCBポインタ３５２３４は、ページデータがプールボリューム４５０内のどの領域に格納されているかを示す情報である。階層（Tier）番号３５２３５は、プールボリューム４５０内のどの階層にページデータが格納されているかを示す階層の番号である。
【００９８】
ここで、プールボリュームとして、例えば、Tier０に属するプールボリュームをプールボリューム４５２と、Tier１に属するプールボリュームをプールボリューム４５４とした場合、VVOL-DIR３５２３におけるLDEV１のあるページは、Tier０に属するプールボリューム４５２の領域が割り当てられ、PSCB３５２４のうちPSCB１にてアドレスが管理されているときに（S３５１）、このページをTier１に移行する場合、PSCB３５２４におけるPSCB３をフリーPSCBキューから取得し、PSCB１の内容をPSCB３へコピーする処理（S３５２）がコントローラ３１によって実行される。
【００９９】
この後、VVOL-DIR３５２３におけるLDEV１のあるページのマッピングをPSCB１からPSCB３へ変更し、PSCB１をフリーキューへ戻すために、PSCB１をフリーPSCBキュー３５２４０へ接続する処理（S３５３）がコントローラ３１によって実行される。
【０１００】
なお、ページ単位の情報としては、他に、モニタから採取された情報がある。この場合、そのページへのアクセス頻度を定期的にモニタして管理することになる。また、プールボリューム４５０内に格納されたデータは、プール側のページ毎に情報を付け、どの仮想ボリュームのどのアドレスのデータが割り当てられているかを検索できる情報であってもよい。
【０１０１】
図１２は、階層化されたプールボリュームに用いられるＰＳＣＢのブロック図である。
【０１０２】
容量仮想化プール４４０に階層化されたプールボリューム４５０を格納した場合、例えば、５階層に分けてプールボリューム４５０を容量仮想化プール４４０に格納したときには、Tier０のPSCB２５２４として、PSCB1401Fが用いられ、Tier１のPSCB２５２４として、PSCB1401Rが用いられ、Tier２のPSCB２５２４として、PSCB1401Aが用いられ、Tier３のPSCB２５２４として、PSCB1401Dが用いられ、Tier４のPSCB２５２４として、PSCB1401Uが用いられる。
【０１０３】
次に、プール作成処理を図１３Aのフローチャートに従って説明する。ストレージシステム管理装置２０のCPU２３０は、管理プログラム（管理ソフト）を起動し、プールID（IDentifier）、閾値、用途、プールボリューム数、論理デバイス番号（LDEV#）、リザーブ（ターゲットデバイスとは異なる予備のデバイス）の割合を指定してプール作成を指示し（S１１）、ストレージシステム３０にプール作成指示を送信する（S１２）。
【０１０４】
この後、ストレージシステム３０のネットワークアダプタ３２０がプール作成指示を受信すると、コントローラ３１は、プロセッサ３６０がコマンド制御プログラム３５０１を起動して、以下の処理を開始する。
まず、プロセッサ３６０は、プール作成指示を受領し（S１３）、プール作成指示に付加されたコマンドの内容をチェックし（S１４）、無効な内容があるか否かを判定し（S１５）、コマンドに無効な内容がないときにはプール作成処理に移行し（S１６）、プール作成処理に成功したか否かを判定し（S１７）、プール作成処理に成功したときには、プール作成に成功した旨の応答をストレージシステム管理装置２０に送信する（S１８）。
【０１０５】
一方、プロセッサ３６０は、ステップS１５において、コマンドの内容に無効な内容があると判定したときには、ステップS１７において、プール作成処理に失敗したときとともに、プール作成に失敗した原因と、指示に対するエラー応答をストレージシステム管理装置２０に送信し（S１９）、このルーチンでの処理を終了する。
【０１０６】
ストレージシステム管理装置２０のCPU２３０は、ストレージシステム３０からプール作成処理の応答を受領すると（S２０）、受領した応答の内容を基にプール作成処理が成功したか否かを判定し（S２１）、プール作成処理に成功したときには、指示されたプールの作成が成功したことをログして、外部I/F（InterFace）やGUI（Graphical  User  Interface）に情報を提供し（S２２）、このルーチンでの処理を終了する。
【０１０７】
ステップS２１において、プール作成処理に失敗したと判定したときには、CPU２３０は、指示されたプールの作成が失敗したこと、及びその原因をログして、外部I/FやGUIに情報を提供し（S２３）、このルーチンでの処理を終了する。
【０１０８】
次に、プール管理情報作成処理を図１３Bフローチャートに従って説明する。
【０１０９】
この処理は、ステップS１６におけるプール作成処理で実行するためのプール管理情報作成処理であって、プロセッサ３６０が、プール制御プログラム３５０７を起動することによって開始される。
【０１１０】
プロセッサ３６０は、プールIDのチェック、例えば、プールIDが有効で且つ未使用であるかをチェックし（S３１）、プール（容量仮想化プール４４０）の状態を未定義から定義中に変更し（S３２）、指示された論理デバイス（LDEV）の状態をチェックし（S３３）、チェック対象の論理デバイスは、使用中、障害、閉塞、フォーマット中などのときは使用不可であるため、プール作成に失敗したとして処理を終了し、それ以外の論理デバイスについては以下の処理を実行する（S３４）。
【０１１１】
次に、プロセッサ３６０は、LDEV情報にプールボリューム情報を設定し（S３５）、プール管理情報の容量、空き容量、閾値、プールボリューム数を更新し（S３６）、次に、プール空き管理キューを作成し（S３７）、さらにリザーブキューを作成し（S３８）、その後、プールの状態を有効に変更し（S３９）、このルーチンでの処理を終了する。
【０１１２】
次に、仮想ボリューム（VOL）作成処理を図１４Ａフローチャートに従って説明する。ストレージシステム管理装置２０のCPU２３０は、管理プログラム（管理ソフト）を起動し、処理を開始する。CPU２３０は、接続ホスト情報、ポート番号、LUN、論理デバイス番号（LDEV#）、エミュレーションタイプ、容量、仮想デバイス番号（VDEV#）、プールID、閾値、用途QoS（Quality  of  Services）   LANEなどを指定して仮想ボリュームの作成を指示し（S４１）、ストレージシステム３０に仮想ボリュームの作成指示を送信する（S４２）。
【０１１３】
一方、ストレージシステム３０のネットワークアダプタ３２０が仮想ボリューム作成指示を受信すると、プロセッサ３６０によってコマンド制御プログラム３５０１が起動され、以下の処理が開始される。
【０１１４】
まず、プロセッサ３６０は、仮想ボリューム作成指示を受領し（S４３）、仮想ボリューム作成指示に付加されたコマンドの内容をチェックし（S４４）、コマンドの内容が、無効な内容か否かを判定し（S４５）、無効な内容がないときには仮想ボリューム作成処理を実行し（S４６）、仮想ボリューム作成処理に成功したか否かを判定する（S４７）。
【０１１５】
ステップS４７で仮想ボリュームの作成に成功したと判定したときには、プロセッサ３６０は、パス定義処理、例えば、ポートに仮想ボリュームを論理ユニット（LU）として定義し、ホストグループや論理ユニット番号（LUN）セキュリティも設定し（S４８）、仮想ボリュームの作成に成功した旨の応答をストレージシステム管理装置２０に送信する（S４９）。
【０１１６】
一方、プロセッサ３６０は、ステップS４５において、コマンドの内容に無効な内容があると判定したときには、ステップS４７において仮想ボリュームの作成に失敗したときとともに、仮想ボリュームの作成に失敗した原因と、指示に対してエラー応答をストレージ装置管理装置２０に送信し（S５０）、このルーチンでの処理を終了する。
【０１１７】
ストレージ装置管理装置２０のCPU２３０は、ストレージシステム３０からの仮想ボリューム作成応答を受領したときには（S５１）、受領した応答の内容を基に仮想ボリュームの作成に成功したか否かを判定し（S５２）、仮想ボリュームの作成処理に成功したと判定したときには、指示された仮想ボリュームの作成が成功したことをログして、外部I/FやGUIに情報を提供し（S５３）、このルーチンでの処理を終了する。
【０１１８】
仮想ボリュームの作成処理に失敗したと判定したときには、CPU２３０は、指示された仮想ボリュームの作成が失敗したこと及びその原因をログして、外部I/FやGUIに情報を提供し（S５４）、このルーチンでの処理を終了する。
【０１１９】
次に、仮想ボリューム管理情報作成処理を図１４Bのフローチャートに従って説明する。この処理は、図１４AのステップS４６における仮想ボリューム作成処理で実行するための処理であって、コントローラ３１のプロセッサ３６０が、プール制御プログラム３５０７を起動することによって開始される。
【０１２０】
プロセッサ３６０は、仮想ボリュームのチェックとして、例えば、仮想ボリュームが有効で且つ未使用であるかをチェックするとともに、仮想ボリュームの閾値などをチェックし（S６１）、仮想ボリュームに属する仮想デバイス（VDEV）の番号が正しいか否かをチェックし（S６２）、仮想デバイスの番号が正しいときには、仮想デバイス情報作成処理として、例えば、プール番号、容量、エミュレーションタイプ、RAIDレベル、状態（ノーマル）などを作成し（S６３）、その後、論理デバイス（LDEV）番号が正しいか否かを判定する（S６４）。
【０１２１】
プロセッサ３６０は、ステップS６４で論理デバイス（LDEV）の番号が正しいと判定したときには、次に、論理デバイス情報作成処理として、例えば、プール番号、容量、属性（仮想ボリュームの属性）、状態（ノーマル）などの情報を作成し（S６５）、その後、マップ情報作成処理として、特定のデータページを参照して、マップ情報を作成し（S６６）、仮想ボリューム作成処理が正常に終了した旨の処理を実行し（S６７）、このルーチンでの処理を終了する。
【０１２２】
一方、プロセッサ３６０は、ステップS６２において、仮想デバイス（VDEV）の番号が正しくないと判定したとき、あるいはステップS６４において、論理デバイス（LDEV）の番号が正しくないと判定したときには、仮想ボリュームの作成処理が異常で終了した旨の処理を実行し（S６８）、このルーチンでの処理を終了する。
【０１２３】
次に、図１５に、物理デバイス（PDEV）３４を追加または削除するときの管理構成を示す。コントローラ３１は、容量仮想化プール４４０に格納されたプールボリューム４５０を階層化して管理するに際して、Tier０に属する物理デバイス３４として、SASを用い、Tier１に属する物理デバイス３４としてSATAを用いているときには、（ａ）に示すように、これらの物理デバイス３４よりも性能レベルの高い物理デバイス３４として、SSDが追加された場合、Tier０にSSDを設定し、Tier１にSASを設定し、Tier２にSATAを設定し、これら物理デバイス３４の論理デバイス（LDEV）に対応したプールボリューム４５０を３つの階層に分けて階層化して管理することとしている。
【０１２４】
逆に、（ｂ）に示すように、Tier１に属するSASが削除された場合、コントローラ３１は、Tier２に設定されていたSATAを、Tier１に繰り上げて管理することとしている。この場合、プールボリューム４５０は、２つの階層に階層化されて管理されることになる。
【０１２５】
ここで、以下、ストレージシステム３０において、当該ストレージシステム３０内でデータをコピーすることをローカルコピーと称し、ストレージシステム３０が他のストレージシステムに接続されている場合、ストレージシステム３０内の論理ボリュームのデータの複製を他のストレージシステムにコピーすることをリモートコピーと称することとする。
【０１２６】
また、ローカルコピー及びリモートコピーにおいて、コピー元の論理ボリュームとコピー先の論理ボリュームの組をペアと称し、ペアを構成する論理ボリュームのうち、例えば、ホスト計算機１０のアクセス対象となる論理ボリュームを正論理ボリューム（P-VOL）と称し、正論理ボリューム（P-VOL）のペアの対象となる論理ボリュームを副ボリューム（S-VOL）と称することとする。
【０１２７】
新たなペアを形成するときには、形成コピー処理が実行される。この場合、新たに形成されるペアのコピー元（正論理ボリューム）とコピー先（副ボリューム）が指定される。この時点では、副ボリュームには、正論理ボリュームと同じデータは格納されていないが、その後、コピー元（正論理ボリューム）のデータを順次コピー先（副ボリューム）にコピーする、形成コピーを実行することで、副ボリューム（S-VOL）には、正論理ボリューム（P-VOL）と同一のデータが格納される。形成コピーを実行している状態は、「形成コピー中」状態である。
【０１２８】
データがコピーされ、正論理ボリューム（P-VOL）と副ボリューム（S-VOL）に同一のデータが格納された状態、すなわち、データが二重化された状態を「同期」状態という。「同期」状態において、正論理ボリューム（P-VOL）のデータが更新されると、更新されたデータは、副ボリューム（S-VOL）にコピーされる。このコピーを更新コピーという。
【０１２９】
データのコピーが停止した状態は、「サスペンド（Suspend）」状態である。「サスペンド（Suspend）」状態のペアにおいては、副ボリューム（S-VOL）には、正論理ボリューム（P-VOL）とは異なるデータが格納されている場合もある。「サスペンド（Suspend）」状態及び「形成コピー中」状態においては、差分ビットマップを用いた差分管理が実行される。
【０１３０】
例えば、正論理ボリューム（P-VOL）が属するペアが「同期」状態であるとき、差分ビットマップの全ビットは「ＯＦＦ（無効」または「０」である。正論理ボリューム（P-VOL）が属するペアが「サスペンド」状態であるときに、ホスト計算機１０からのアクセスにより、正論理ボリューム（P-VOL）のデータが更新されたときには、そのデータが書き込まれた記憶領域に対応するビットは、「ＯＮ（有効）」または「１」に更新される。
【０１３１】
一方、ペアに関連する状態遷移コマンドとして、「スプリット（SPRIT）」のコマンドが発行されたときには、「同期」状態のペアを「サスペンド」状態に変更するための処理が実行される。スプリットの処理が実行されると、正論理ボリューム（P-VOL）から副ボリューム（S-VOL）へのデータのコピーは実行されない。
【０１３２】
また、状態遷移コマンドとして、「リシンク（RESYNC）」のコマンドが発行されたときには、「サスペンド」状態のペアを「同期」状態に変更するための処理が実行される。リシンクの処理が実行されると、正論理ボリューム（P-VOL）に格納されたデータのうち、少なくとも副ボリューム（S-VOL）に格納されたデータとは異なるデータが副ボリューム（S-VOL）にコピーされる。この結果、副ボリューム（S-VOL）には、正論理ボリューム（P-VOL）と同一のデータが格納される。
【０１３３】
状態遷移コマンドとして、「リストア（RESTORE）」または「リバースリシンク（REVERCE-RESYNC）」のコマンドが発行されたときには、「サスペンド」状態のペアを「同期」状態に変更するための処理が実行される。リストアまたはリバースリシンクの処理が実行されると、副ボリューム（S-VOL）に格納されたデータのうち、少なくとも正論理ボリューム（P-VOL）に格納されたデータとは異なるデータが正論理ボリューム（P-VOL）にコピーされる。この結果、正論理ボリューム（P-VOL）には、副ボリューム（S-VOL）と同一のデータが格納される。
【０１３４】
次に、ホスト計算機１０からストレージシステム３０に対して、ペアに関するコマンドが発行されたときの処理を図１６乃至図２６に従って説明する。まず、コントローラ３１は、図１６に示すように、仮想ボリューム４６０を構成するボリュームであって、ホスト計算機１０のアクセス対象となる運用ボリュームを正論理ボリューム（PVOL）４６２とし、正論理ボリューム４６２のペアの対象となる仮想ボリュームを副論理ボリューム（SVOL）４６４として管理し、正論理ボリューム４６２の仮想記憶領域に複数の正側ページP１、P２、・・・を割り当て、副論理ボリューム４６４の仮想記憶領域に複数の副側ページS１、S２、・・・を割り当てて管理することとしている。
【０１３５】
また、コントローラ３１は、容量仮想化プール４４０に格納されるプールボリュームを３つの階層に階層化して管理することとしている。例えば、Tier０に属するSSDで構成される論理デバイス（LEDV）４１０に対応したプールボリュームをプールボリューム４５２とし、Tier１に属するSASで構成される論理デバイス（LDEV）４１０に対応したプールボリュームをプールボリューム４５４とし、Tier２に属するSATAで構成される論理デバイス（LDEV）４１０に対応したプールボリュームをプールボリューム４５６として、階層化して管理し、プールボリューム４５２に複数のプール側ページP０１、P０２、・・・を割り当て、プールボリューム４５４に複数のプール側ページP１１、P１２、・・・を割り当て、プールボリューム４５６に複数のプール側ページ（P２１、P２２、・・・）を割り当てることとしている。
【０１３６】
ここで、ホスト計算機１０からペアに関するコマンドとして、正論理ボリューム４６２と副論理ボリューム４６４とをペアとするペア形成（ペアクリエイト）に関するコマンドをコントローラ３１が受けたときには、コントローラ３１は、コマンドで指定されたページ、例えば、正側ページP１、P２にプール側ページP０１、P１１を割り当てるとともに、副論理ボリューム４６４の副側ページS１、S２にプール側ボリュームP０２、P１２を割り当てる。
【０１３７】
すなわち、正側ページP１と副側ページS１はペアとなるページであり、正側ページP２と副側ページS２はペアとなるページであるため、正側ページP１、P２とそれぞれペアとなる副側ページS１、S２には、正側ページP１、P２に割り当てられているプール側ページと同じ階層に属するプール側ページを割り当てる。
【０１３８】
この後、正論理ボリューム４６２と副論理ボリューム４６４に対するリードアクセスまたはライトアクセスが禁止された状態となり、正側ページP１、P２のデータが、更新前のデータとして、それぞれ副側ページS１、S２にコピーされる。これにより、正側ページP１、P２と副側ページS１、S２のデータの内容が同一となる。
【０１３９】
次に、ペアクリエイトに関するコマンドを受けた後、ペアに関する状態遷移コマンドとして、ペアサスペンドのコマンドを受けたときには、図１７に示すように、コントローラ３１は、正論理ボリューム４６２と副論理ボリューム４６４との間の更新コピーを停止する。このとき、ホスト計算機１０は、正論理ボリューム４６２または副論理ボリューム４６２に対して、リードアクセスまたはライトアクセスが可能となる。
【０１４０】
ペアサスペンドのコマンドを受けたときには、副側ページS１、S２のデータを、Tier０のSSDやTier１のSASに格納しておく必要はないので、SSDやSASよりも低コストのSATAへの移動が、ペアサスペンドのコマンドに指示されているときには、コントローラ３１は、プールボリューム４５２のプール側ページP０２をプールボリューム４５６に移動して、プール側ページP２１とし、プールボリューム４５４のプール側ページP１２をプールボリューム４５６に移動して、プール側ページP２２とし、副側ページS１とプール側ページP２１とを対応付け、副側ページS２とプール側ページP２２とを対応付ける。
【０１４１】
これにより、状態遷移コマンドに応じてTier０に属するプール側ページP０２とTier１に属するプール側ページP１２をそれぞれTier２に属するプール側ページP２１、P２２に移動させることができる。この場合、ホスト計算機１０が、副論理ボリューム４６４の副側ページS１、S２をライトアクセスしたときには、ライトデータがSATAに格納されることになる。
【０１４２】
また、ホスト計算機１０は、ストレージシステム３０に対して、ペアクリエイトのコマンドを発行した後、ペアサスペンドのコマンドを発行したときには、ストレージシステム３０の正論理ボリューム４６２と副論理ボリューム４６４に対して、それぞれリードアクセスまたはライトアクセスが可能となる。
【０１４３】
この際、図１８に示すように、ペアサスペンドのコマンドに、外部装置、例えば、テープ装置７０に対するバックアップが指示されているときには、コントローラ３１は、副側ページS１、S２に格納されているデータをテープ装置７０にバックアップするための処理を実行する。
【０１４４】
次に、状態遷移コマンドとして、ペアサスペンドのコマンドを受けたときに、ペアサスペンドのコマンドにページ移動指示が含まれているときには、コントローラ３１は、図１９に示すように、ページ移動指示に従ってページ移動の処理を実行する。
【０１４５】
例えば、コントローラ３１は、プールボリューム４５２のプール側ページP０２をプールボリューム４５６に移動して、プール側ページP２１とし、プールボリューム４５４のプール側ページP１２をプールボリューム４５６に移動して、プール側ページP２２とし、副側ページS１とプール側ページP２１とを対応付け、副側ページS２とプール側ページP２２とを対応付ける。
【０１４６】
これにより、状態遷移コマンドに応じてTier０に属するプール側ページP０２とTier１に属するプール側ページP１２をそれぞれTier２に属するプール側ページP２１、P２２に移動させることができる。
【０１４７】
次に、状態遷移コマンドとして、ペアサスペンドのコマンドを受けた後、スピンダウン指示を含むコマンドとして、外部物理デバイス６００に属する物理デバイスをスピンダウンさせるコマンドを受けたときには、コントローラ３１は、図２０に示すように、コマンドの指示に従って処理を実行する。
【０１４８】
この際、コントローラ３１は、スピンダウン指示として、N世代、例えば、５世代より前の古いデータを外部物理デバイス６００に格納するとともに、その外部物理デバイスをスピンダウンさせる指示を受けたときには、容量仮想化プール４４０に、プールボリュームとして、外部物理デバイス６００に対応したプールボリューム４５８を格納し、このプールボリューム４５８にプール側ページP３１、P３２を割り当て、このプール側ページP３１、P３２を、外部物理デバイス６００の論理デバイスに設定されたページP６０１、P６０２に対応付ける。
【０１４９】
この後、コントローラ３１は、副側ページS１、S２がTier２のプール側ページP２１、P２２と対応付けられているときには、副側ページS１、S２をそれぞれプール側ページP３１、P３２に対応付け、副側ページS１、S２に格納された５世代前のデータを、プール側ページP３１、P３２を介して外部物理デバイス６００のページP６０１、P６０２に移動させ、その後、５世代前のデータが格納された外部物理デバイス６００をスピンダウンさせ、消費電力を低減させるための処理を実行する。
【０１５０】
次に、ペアサスペンドのコマンドを受けたあと、状態遷移コマンドとしてペアリシンク（再同期）のコマンドを受けたときには、コントローラ３１は、図２１に示すように、ペアリシンクのコマンドに従って処理を実行する。
【０１５１】
この場合、例えば、ペアサスペンドのコマンドを受けた後、正論理ボリューム４６２のデータが更新され、差分データを格納するページとして正側ページP３が追加され、正側ページP３がプール側ページP１２に対応付けられているときには、コントローラ３１は、正側ページP３とペアとなる副側ページとして、副論理ボリューム４６４に副側ページS３を設定し、副側ボリュームS３に対して、プール側ページP１３と同一階層に属するプール側ページP１３を割り当て、正側ページP３のデータを副側ページS３にコピーする。なお、副側ページS１、S２のデータはプール側ページP２１、P２２に格納されているものとする。
【０１５２】
次に、コントローラ３１が、ペアリシンク  リバース（リストア）のコマンドを受けたときの処理を図２２に従って説明する。ペアスペンドのコマンドを受けた後、状態遷移コマンドとして、ペアリシンクリバース（リストア）のコマンドを受けたときには、コントローラ３１は、副論理ボリューム４６４にバックアップされていたデータを正論理ボリューム４６２に戻すためのリストア処理を行う。
【０１５３】
このとき、例えば、副論理ボリューム４６４に、副側ページとしてS１、S２、S３が存在し、副側ページS１がプール側ページP２１に、副側ページS２がプール側ページP２２に、副側ページS３がプール側ページP１３にそれぞれ対応付けられているものとする。この状態で副側ページS１、S２、S３のデータを正側ボリューム４６２にコピーすると、副側ページP１のデータが正側ページP１に、副側ページS２のデータが正側ページP２に、副側ページS３のデータが正側ページP３にそれぞれコピーされる。
【０１５４】
この際、正側ページP１は、ペアクリエイトのコマンドをコントローラ３１が受けたときには、Tier０のSSDに対応したプールボリューム４５２に属していた場合、正側ページP１をプール側ページP０１に対応付ける処理がコントローラ３１によって実行される。また、正側ページP２は、ペアクリエイトのコマンドをコントローラ３１が受けたときには、Tier１のSASに対応したプールボリューム４５４に属していた場合、副側ページP２をプール側ページP１１に対応付ける処理がコントローラ３１によって実行される。
【０１５５】
また、正側ページP４として、差分データが格納されていたページがリストア後に、正論理ボリューム４６２に存在していても、正側ページP４に格納されていた差分データは、リストア処理によって時間的に前の状態に戻るため、不要となる。このため、コントローラ３１は、正側ページP４に割り当てられていたプール側ページP０２をフリー化して、割り当てを解除する。
【０１５６】
次に、状態遷移コマンドとして、クイックリストアのコマンドをコントローラが実行するときの処理を図２３に従って説明する。
【０１５７】
コントローラ３１は、ホスト計算機１０からクイックリストアのコマンド受けたときには、正論理ボリューム４６２を副論理ボリュームとし、副論理ボリューム４６４を正論理ボリュームとする設定変更を実行し、その後、ホスト計算機１０からのコマンドに対して、設定変更されたボリュームをアクセス先として処理を実行する。
【０１５８】
この際、ホスト計算機１０は、クイックリストアのコマンドを発行した後は、ストレージシステム３０の正論理ボリューム４６４または副論理ボリューム４６４にアクセスすることで、コントローラ３１がペアクリエイトに伴うペアコピーを実行することなく、コントローラ３１がリストア処理を実行したときと同じデータを得ることができ、ストレージシステム３０に対するアクセスを高速化することができる。
【０１５９】
この場合、新たな正側ページP１、P２、P３には、それぞれプール側ページP０２、P１２、P１４が割り当てられ、新たな副側ページS１、S２、S３、S４には、プール側ページP０１、P１１、P１３、P０３が割り当てられる。また、プール側ページP２２は、プールボリューム４５４に移動して、プール側ページ１２として管理され、プール側ページP２１は、プールボリューム４５２に移動して、プール側ページP０２として管理される。
【０１６０】
次に、状態遷移コマンドとして、ペア削除のコマンドをコントローラが受けたときの処理を、図２４に従って説明する。
【０１６１】
状態遷移コマンドとして、ペア削除のコマンドを受けたときには、コントローラ３１は、正論理ボリューム４６２と副論理ボリューム４６４をペアとする関係を削除するとともに、正側ページP１、P２、P３と副側ページS１、S２、S３をそれぞれペアとする関係を削除する。この際、コントローラ３１は、正側ページP１、P２、P３、P４とプール側ページP０１、P１１、P１３、P０２との対応関係を保持し、副側ページS１、S２、S３とプール側ページP２１、P２２、P１３との対応関係を保持した状態で、その後のコマンドに従って処理を実行することになる。
【０１６２】
次に、状態遷移コマンドとしてスナップショット作成コマンドを受けた時の処理を図２５に従って説明する。スナップショット作成コマンドを受けたときには、コントローラ３１は、副論理ボリューム４６４の他に副論理ボリューム４６６を作成し、副論理ボリューム４６６に副側ボリュームS１１、S１２を割り当て、正側ページP１と副側ページS１にそれぞれプール側ページP０１が割り当てられているときには、副側ページS１１にプール側ページP０１を割り当て、正側ページP２と副側ページS２にプール側ページP１１が割り当てられているときには、副側ページS１２に、同じ階層のプール側ページP１２を割り当てる。
【０１６３】
次に、コントローラ３１は、正側ページP１、P２にそれぞれスナップショットで得られたデータを副側ページS１、S２、S１１にコピーする。
【０１６４】
この後、ペアサスペンドのコマンドを受けて、正論理ボリューム４６２と副論理ボリューム４６４がペアサスペンド状態となったときには、ホスト計算機１０は、正論理ボリューム４６２または副論理ボリューム４６４、４６６に対してそれぞれライトアクセスが可能となる。
【０１６５】
具体的には、図２６に示すように、スナップショット作成処理の後、ペアサスペンドのコマンドが入力されたときには、コントローラ３１は、正論理ボリューム４６２または副論理ボリューム４６４、４６６に対するライト要求を受け付ける。この際、例えば、正側ページP１にライトアクセスがあった場合、ライトアクセス前のデータが副側ページS１に格納されていたときには、副側ページS１のデータを、正側ページP１に割り当てられているプール側ページP０１と同じ階層に属するプール側ページP０２にコピーし、マッピング先を変更する。
【０１６６】
なお、このとき、ペアサスペンドのコマンドに、ライト前のデータをTier１またはTier２へ移動させる指示があったときには、ライト前のデータを副側ページS１からTier１に属するプールボリューム４５４のプール側ページまたはTier２に属するプールボリューム４５６のプール側ページにコピーすることもできる。
【０１６７】
次に、正論理ボリューム・副論理ボリュームライト処理を図２７のフローチャートに従って説明する。
【０１６８】
この処理は、コントローラ３１のプロセッサ３６０がコマンド制御プログラム３５０１を起動することによって開始される。まず、プロセッサ３６０は、ホスト計算機１０からのライトコマンドを受領し（S８１）、受領したライトコマンドのパラメータをチェックし（S８２）、チェック結果を基に転送可否に関する応答をホストコマンド応答としてホスト計算機１０に送信する（S８３）。
【０１６９】
次に、プロセッサ３６０は、ホスト計算機１０から、ライトデータを受領したときには（S８４）、正論理ボリューム４６２と副論理ボリューム４６４のペア状態を確認し（S８５）、書込先アドレスをロックし（S８６）、ライトデータがストレージキャッシュメモリ３２に存在するか否かの判定処理、すなわち、キャッシュヒット（H）またはキャッシュミス（M）の判定処理を行い（S８７）、キャッシュヒットしたか否かを判定する（S８８）。
【０１７０】
次に、プロセッサ３６０は、キャッシュヒットしないときには、ストレージキャッシュメモリ３２に書込領域を確保し（S８９）、その後、ステップS９０の処理に移行し、ステップS８８でキャッシュヒットしたと判定したときには、ストレージキャッシュメモリ３２のスロット状態を確定し（S９０）、ライトデータをストレージキャッシュメモリ３２に転送し（S９１）、差分ビットマップを管理するための差分ビットマップ処理を行い（S９２）、書込先アドレスをアンロックとし（S９３）、ホスト計算機１０に対してライト処理完了報告を実行し（S９４）、このルーチンでの処理を終了する。
【０１７１】
次に、正論理ボリューム・副論理ボリュームのライト処理として、ライトアフタ処理を図２７Bのフローチャートに従って説明する。
【０１７２】
この処理は、コントローラ３１のプロセッサ３６０がディスクI/Oプログラム３５０５を起動することによって開始される。まず、プロセッサ３６０は、ホストダーティキューサーチを行い（S１０１）、仮想ボリューム、例えば、正論理ボリューム４６２のキャッシュか否かを判定し（S１０２）、正論理ボリューム４６２のキャッシュであるときには、デフォルトページか否かを判定し（S１０３）、デフォルトページであるときには、空きページがあるか否かを判定する（S１０４）。
【０１７３】
プロセッサ３６０は、空きページがあるときには、新規割当処理として、割当ページをフリーキューから選択し（S１０５）、空き容量カウンタを減算し（S１０６）、減算結果が閾値か否かを判定し（S１０７）、減算結果が閾値であるときには、空き容量が少ない旨の警告を行い（S１０８）、その後、ステップS１０９の処理に移り、減算値が閾値でないと判定したときとともに、未割当領域とプールフリーの領域とをリンクし（S１０９）、ステップS１１４の処理に移行する。
【０１７４】
一方、ステップS１０３において、デフォルトページでないと判定したときには、プロセッサ３６０は、割当済みページを算出し（S１１０）、その後、ステップS１１４の処理に移行する。
また、ステップS１０４において、空きページがないと判定したときには、プロセッサ３６０は、空き容量枯渇の警告を行い（S１１１）、その後、プール書込禁止の警告を行い（S１１２）、次に、リザーブを使用可能に設定できるか否かを判定し（S１１３）、設定できないときにはステップS１１４の処理に移り、設定できるときには、このルーチンでの処理を終了する。
【０１７５】
プロセッサ３６０は、ステップS１１４においては、RAIDレベルに応じてパリティデータなどを作成し、作成したパリティデータなどをディスク書き込み用のキューに繋ぎ換えする処理を行い（S１１５）、ライトアフタ処理を終了する。
次に、正論理ボリューム・副論理ボリュームに対するリードコマンド処理を図２８のフローチャートに従って説明する。
【０１７６】
この処理は、コントローラ３１のプロセッサ３６０が、コマンド制御プログラム３５０１とディスクI/Oプログラム３５０５を起動することによって開始される。
まず、プロセッサ３６０は、リードコマンドを受領し（S１２１）、受領したリードコマンドのパラメータをチェックし（S１２２）、次に、コマンドパラメータのチェック結果を基にペア状態、例えば、正論理ボリューム４６２と副論理ボリューム４６４のペア状態を確認し（S１２３）、その後、読み込み先をロックし（S１２４）、ストレージキャッシュメモリ３２にリードデータが存在するかをチェックするためのキャッシュヒットまたはキャッシュミスの処理を実行し（S１２５）、キャッシュヒットとしたか否かを判定する（S１２６）。
【０１７７】
キャッシュヒットしたときには、プロセッサ３６０は、ストレージキャッシュメモリ３２に領域割当があるかを確認し（S１２７）、ストレージキャッシュメモリ３２に存在する領域が割当済みか否かを判定し（S１２８）、割当済みのときには、仮想−プールアドレス変換を行う（S１２９）。
【０１７８】
ストレージキャッシュメモリ３２に領域が割当済みでないときには、プロセッサ３６０は、ページ割当の要否を判定し（S１３０）、ページ割当が必要であると判定したときには、ストレージキャッシュメモリ３２にページを動的に割り当て、ステップS１３２の処理に移行する。
【０１７９】
プロセッサ３６０は、ステップS１２６において、キャッシュヒットでないと判定したときには、ストレージキャッシュメモリ３２にスロット状態を確定し（S１３２）、ステップS１３０において、ページ割当が必要でないと判定したときには、デフォルトページのデータ領域をリードし（S１３３）、その後、リードデータをストレージキャッシュメモリ３２に転送する（S１３４）。
【０１８０】
この後、プロセッサ３６０は、ストレージキャッシュメモリ３２のリードデータをホスト計算機１０に転送し（S１３５）、読み込み先をアンロックとし（S１３６）、ホスト計算機１０に対して、リードコマンド処理が終了した旨の完了報告を行い（S１３７）、リードコマンド処理を終了する。
【０１８１】
次に、イニシャルコピー処理を図２９のフローチャートに従って説明する。この処理は、ホスト計算機１０からの状態遷移コマンドとして、例えば、ペアクリエイトのコマンドをコントローラ３１が受信したときに開始される。
【０１８２】
まず、ペアクリエイトのコマンドをコントローラ３１が受信すると、プロセッサ３６０は、コピー対象範囲全体にコピーするためのビットマップをオンとし（S１４１）、コピー元処理開始アドレスとして、例えば、正論理ボリューム４６２の処理開始アドレスを設定し（S１４２）、コピービットマップをチェックし（S１４３）、コピーの要否を判定するための処理を行い（S１４４）、コピーが必要か否かを判定し（S１４５）、コピーが必要でないときにはステップS１４６の処理に移行し、コピー処理判定対象アドレスを１つ先に進め、ステップS１４３の処理に戻り、ステップS１４３〜S１４５の処理を繰り返す。
【０１８３】
一方、ステップS１４５でコピーが必要と判定したときには、プロセッサ３６０は、コピー元アドレスとコピー先アドレス、例えば、正論理ボリューム４６２をコピー元とし、副論理ボリューム４６４をコピー先としたときには、正論理ボリューム４６２と副論理ボリューム４６４のアドレスを確認し（S１４７）、コピー元アドレスをロックし（S１４８）、コピー元のデータがストレージキャッシュメモリ３２に存在するかを判定するためのコピー元ヒット（H）またはヒットミス（M）の処理を行い（S１４９）、キャッシュヒットしたか否かを判定する（S１５０）。
【０１８４】
キャッシュヒットしたときには、プロセッサ３６０は、コピー元キャッシュ領域を確定し（S１５１）、コピー先アドレスをロックし（S１５２）、コピー先に関するヒットまたはミスをチェックするための処理を行い（S１５３）、コピー先のストレージキャッシュメモリ３２に対してキャッシュヒットしたか否かを判定する（S１５４）。
【０１８５】
キャッシュヒットしないときには、プロセッサ３６０は、コピー先にキャッシュ領域を確保し（S１５５）、その後、コピー先にキャッシュ領域を確定し（S１５６）、コピー元のストレージキャッシュメモリ３２に存在するデータをコピー先のストレージキャッシュメモリ３２にコピーし（S１５７）、ステップS１６５の処理に移行する。
【０１８６】
一方、ステップS１５０において、キャッシュヒットしないと判定したときには、プロセッサ３６０は、コピー元のディスク領域を確保し（S１５８）、コピー先アドレスをロックし（S１５９）、コピー先に対するヒットまたはヒットミスをチェックするための処理を行い（S１６０）、次に、キャッシュヒットしたか否かを判定する（S１６１）。
キャッシュヒットしないときには、プロセッサ３６０は、コピー先のストレージキャッシュメモリ３２に領域を確保し（S１６２）、キャッシュヒットしたときには、コピー先ストレージキャッシュメモリ３２の領域にキャッシュ領域を確定し（S１６３）、コピー元ディスクのデータをコピー先のストレージキャッシュメモリ３２にコピーし（S１６４）、ステップS１６５の処理に移行する。
【０１８７】
プロセッサ３６０は、ステップS１６５において、コピービットマップをオフとし、その後、コピー先アドレスをアンロックとし（S１６６）、次に、コピー元アドレスをアンロックとし（S１６７）、コピー処理対象アドレスが終端であるか否かを判定し（S１６８）、終端でないときにはステップS１４６の処理に戻り、コピー処理判定対象アドレスを１つ先に進めたあと、ステップS１４３の処理に戻り、ステップS１４３〜S１６８の処理を繰り返し、コピー処理対象アドレスが終端であると判定したときには、イニシャルコピーを終了する。
【０１８８】
次に、差分コピー処理を図３０のフローチャートに従って説明する。この処理は、ホスト計算機１０からの状態遷移コマンドとして、例えば、ペアリシンクのコマンドをコントローラ３１が受信したときに開始される。
【０１８９】
まず、コントローラ３１のプロセッサ３６０は、ペアリシンクのコマンドを受信したときには、コピー元処理開始アドレスとして、例えば、正論理ボリューム４６２の処理開始アドレスを設定し（S１８１）、次に、差分ビットマップ（図２７AのステップS９２において処理した差分ビットマップ）をチェックし（S１８２）、その後、コピーの要否を判定するための処理を行い（S１８３）、コピーが必要か否かを判定する（S１８４）。プロセッサ３６０は、ステップS１８４でコピーが必要でないと判定したときには、ステップS１８５の処理に移行し、コピー処理判定対象アドレスを１つ先に進めて、ステップS１８２の処理に戻り、ステップS１８２〜S１８４の処理を繰り返す。
【０１９０】
一方、ステップS１８４でコピーが必要と判定したときには、プロセッサ３６０は、コピー元アドレスとコピー先アドレス、例えば、正論理ボリューム４６２をコピー元とし、副論理ボリューム４６４をコピー先としたときには、正論理ボリューム４６２と副論理ボリューム４６４のアドレスを確認し（S１８６）、コピー元アドレスをロックし（S１８７）、コピー元のデータがストレージキャッシュメモリ３２に存在するかを判定するためのコピー元ヒット（H）またはヒットミス（M）の処理を行い（S１８８）、キャッシュヒットしたか否かを判定する（S１８９）。
【０１９１】
キャッシュヒットしたときには、プロセッサ３６０は、コピー元キャッシュ領域を確定し（S１９０）、コピー先アドレスをロックし（S１９１）、コピー先に関するヒットまたはミスをチェックするための処理を行い（S１９２）、コピー先のストレージキャッシュメモリ３２に対してキャッシュヒットしたか否かを判定する（S１９３）。
【０１９２】
キャッシュヒットしないときには、プロセッサ３６０は、コピー先にキャッシュ領域を確保し（S１９４）、その後、コピー先にキャッシュ領域を確定し（S１９５）、コピー元のストレージキャッシュメモリ３２に存在するデータをコピー先のストレージキャッシュメモリ３２にコピーし（S１９６）、ステップS２０４の処理に移行する。
【０１９３】
一方、ステップS１８９において、キャッシュヒットしないと判定したときには、プロセッサ３６０は、コピー元のディスク領域を確保し（S１９７）、コピー先アドレスをロックし（S１９８）、コピー先に対するヒットまたはヒットミスをチェックするための処理を行い（S１９９）、次に、キャッシュヒットしたか否かを判定する（S２００）。
キャッシュヒットしないときには、プロセッサ３６０は、コピー先のストレージキャッシュメモリ３２に領域を確保し（S２０１）、キャッシュヒットしたときには、コピー先ストレージキャッシュメモリ３２の領域にキャッシュ領域を確定し（S２０２）、コピー元ディスクのデータをコピー先のストレージキャッシュメモリ３２にコピーし（S２０３）、ステップS２０４の処理に移行する。
【０１９４】
プロセッサ３６０は、ステップS２０４において、コピービットマップをオフとし、その後、コピー先アドレスをアンロックとし（S２０５）、次に、コピー元アドレスをアンロックとし（S２０６）、コピー処理対象アドレスが終端であるか否かを判定し（S２０７）、終端でないときにはステップS１８５の処理に戻り、コピー処理判定対象アドレスを１つ先に進めたあと、ステップS１８２の処理に戻り、ステップS１８２〜S２０７の処理を繰り返し、コピー処理対象アドレスが終端であると判定したときには、差分コピーを終了する。
【０１９５】
次に、コピーアフタライト（CAW）・コピーオンライト（COW）の処理を図３１のフローチャートに従って説明する。
【０１９６】
この処理は、ホスト計算機１０から、正論理ボリューム４６２に対してライトアクセスが実行されたとき、あるいは、副論理ボリューム４６４に対してリードアクセスまたはライトアクセスが実行されたときに、コントローラ３１によって開始される。
【０１９７】
まず、プロセッサ３６０は、コピー元として、例えば、正論理ボリューム４６２を確認するための処理と、コピー先として、例えば、副論理ボリューム４６４を確認するための処理を行い（S２１１）、コピー元アドレスをロックし（S２１２）、コピー元に関してキャッシュヒットまたはキャッシュミスをチェックするための処理を開始し（S２１３）、コピー元のストレージキャッシュメモリ３２にコピーすべきデータが存在するか否かの判定を行う（S２１４）。
【０１９８】
キャッシュヒットしたときには、プロセッサ３６０は、コピー元キャッシュ領域を確定し（S２１５）、コピー先アドレスをロックし（S２１６）、コピー先に関するヒットまたはミスをチェックするための処理を行い（S２１７）、コピー先のストレージキャッシュメモリ３２に対してキャッシュヒットしたか否かを判定する（S２１８）。
【０１９９】
キャッシュヒットしないときには、プロセッサ３６０は、コピー先にキャッシュ領域を確保し（S２１９）、その後、コピー先にキャッシュ領域を確定し（S２２０）、コピー元のストレージキャッシュメモリ３２に存在するデータをコピー先のストレージキャッシュメモリ３２にコピーし（S２２１）、ステップS２２９の処理に移行する。
【０２００】
一方、ステップS２１４において、キャッシュヒットしないと判定したときには、プロセッサ３６０は、コピー元のディスク領域を確保し（S２２２）、コピー先アドレスをロックし（S２２３）、コピー先に対するヒットまたはヒットミスをチェックするための処理を行い（S２２４）、次に、キャッシュヒットしたか否かを判定する（S２２５）。
キャッシュヒットしないときには、プロセッサ３６０は、コピー先のストレージキャッシュメモリ３２に領域を確保し（S２２６）、キャッシュヒットしたときには、コピー先ストレージキャッシュメモリ３２の領域にキャッシュ領域を確定し（S２２７）、コピー元ディスクのデータをコピー先のストレージキャッシュメモリ３２にコピーし（S２２８）、ステップS２２９の処理に移行する。
【０２０１】
プロセッサ３６０は、ステップS２２９において、コピー先アドレスをアンロックとし、次に、コピー元アドレスをアンロックとし（S２３０）、コピーアフタライト（CAW）・コピーオンライト（COW）の処理を終了する。
【０２０２】
次に、計算機システムにおけるディザスタリカバリ（DR）の処理を図３２に従って説明する。図３２は、ストレージシステム３０と同一構成のストレージシステムをローカル側ストレージシステム３０Aとし、ストレージシステム３０と同一構成の他のストレージシステムをリモート側ストレージシステム３０Bとし、ローカル側ストレージシステム３０Aとリモート側ストレージシステム３０Bとをストレージネットワーク５１で接続したときの計算機システムの構成を示す。
【０２０３】
ここで、ディザスタリカバリ（DR）の処理を開始するに際して、ローカル側ストレージシステム３０Aからローカル側ストレージシステム３０Bに対して、ストレージネットワーク５１を介してリモートコピーのコマンドが送信されたときには、正論理ボリューム４６２Aのデータが、リモート側ストレージシステム３０Bの正論理ボリューム４６２Bにコピーされ、その後、正論理ボリューム４６２Bのデータが、リモート側ストレージシステム３０Bの副論理ボリューム４６４Bにコピーされる。
【０２０４】
この際、ローカル側ストレージシステム３０Aにおいて、正側ページP１、P２に対して、プール側ページP０１、P１１が対応付けられ、副側ページS１、S２に対して、プール側ページP０２、P１２が割り当てられているときには、リモート側ストレージシステム３０Bにおいても、正側ページP１、P２には、プール側ページP０１、P１１が割り当てられ、副側ページS１、S２には、プール側ページP０２、P１２がそれぞれ割り当てられる。
【０２０５】
すなわち、ローカルストレージシステム３０Aからリモート側ストレージシステム３０Bにデータをバックアップするときには、バックアップ元のページとバックアップ先のページは同じ階層のものが対応づけられる。
【０２０６】
次に、リモート側ストレージシステム３０Bにローカル側ストレージシステム３０Aのデータがバックアップされた後、リモート側ストレージシステム３０Bに、ペアサスペンドのコマンドが入力されたときの処理を図３３に従って説明する。
【０２０７】
リモート側ストレージシステム３０Bに、ローカル側ストレージシステム３０Aのデータがバックアップされた後、ローカル側ストレージシステム３０Aからリモート側ストレージシステム３０Bに対して、ペアサスペンドのコマンドが転送されたときには、ローカル側ストレージシステム３０Aとリモート側ストレージシステム３０Bのコントローラ３１は、リモートコピーの停止に伴って、それぞれホスト計算機１０からのIO処理を個別に実行することになる。
【０２０８】
例えば、リモート側ストレージシステム３０Bにおいては、ペアクリエイトの状態で、ホスト計算機１０からのIO処理を受け付けたときには、ホスト計算機１０からのIO処理を実行することになる。
【０２０９】
次に、ローカル側ストレージシステム３０Aが被災から復旧したときのリカバリ処理を図３４に従って説明する。
【０２１０】
ローカル側ストレージシステム３０Aがリモート側ストレージシステム３０Bにデータをバックアップした後、被災から復旧し、リモート側ストレージシステムBのデータをローカル側ストレージシステム３０Aにコピーするに際しては、リモート側ストレージシステム３０Bからローカル側ストレージシステム３０Aに対して、リバース処理としてのコマンドが転送され、リモート側ストレージシステム３０Bにおける正論理ボリューム４６２Bのデータが、ローカル側ストレージシステム３０Aにおける正論理ボリューム４６２Aにコピーされる。この後、ローカル側ストレージシステム３０Aにおいては、正論理ボリューム４６２Aのデータが副論理ボリューム４６４Aにコピーされる。
【０２１１】
リモートコピーが完了したときには、図３５に示すように、ローカル側ストレージシステム３０Aからストレージネットワーク５１を介して、リモート側ストレージシステム３０Bに、リカバリ処理に伴うリモートコピーが完了した旨の情報が転送され、リカバリ処理が完了することになる。
【０２１２】
また、ローカル側ストレージシステム３０Aとリモート側ストレージシステム３０Bにおいては、それぞれホスト計算機１０からのコマンドに従って各種の処理が実行される。例えば、ホスト計算機１０から状態遷移コマンドが発行されたときには、状態遷移コマンドに従った処理として、図１６〜図２６に示す処理が、ローカル側ストレージシステム３０Aのコントローラ３１とリモート側ストレージシステム３０Bのコントローラ３１によってそれぞれ実行される。
【０２１３】
本実施例によれば、ホスト計算機１０から、ペア形成に関するコマンドを受けたときには、正側ページと副側ページに同じ階層に属するプール側ページを割り当て、その後、ペアに関する状態遷移コマンドを受けたときに、状態遷移コマンドでページ移動が指示されたときには、副側ページに割り当てられていたプール側ページを、正側ページに割り当てられていたプール側ページとは異なる階層のプール側ページに移動させ、副側ページには、移動したプール側ページを割り当てるようにしたため、状態遷移コマンドに応じて副論理ボリューム４６４の副側ページに適切な物理デバイス３４を割り当てることができる。
【０２１４】
また、本実施例によれば、状態遷移コマンドに応じて副論理ボリューム４６４の副側ページに適切な物理デバイス３４を割り当てることができるので、論理ボリュームの用途に応じて、性能、信頼性を高めることができる。  
【０２１５】
また、本実施例においては、正論理ボリューム４６２の正側ページに割り当てられたプール側ページを、状態遷移コマンドに応じて、階層の異なるプール側ページに移動させることもできる。
【符号の説明】
【０２１６】
１０  ホスト計算機、２０  ストレージシステム管理装置、３０  ストレージシステム、３０A  ローカル側ストレージシステム、３０B  リモート側ストレージシステム、３１  コントローラ、３２  ストレージキャッシュメモリ、３３  共有メモリ、３４  物理デバイス、４０  管理ネットワーク、５０  ストレージネットワーク、３６０  プロセッサ、４００  仮想デバイス、４１０  論理デバイス、４２０  システムプール、４４０  階層管理型容量仮想化プール、４６０  仮想ボリューム、４６２  正論理ボリューム、４６４  副論理ボリューム
【図１】
2011111093.tif 000003
【図２】
2011111093.tif 000004
【図３】
2011111093.tif 000005
【図４】
2011111093.tif 000006
【図５】
2011111093.tif 000007
【図６】
2011111093.tif 000008
【図７】
2011111093.tif 000009
【図８】
2011111093.tif 000010
【図９】
2011111093.tif 000011
【図１０】
2011111093.tif 000012
【図１１】
2011111093.tif 000013
【図１２】
2011111093.tif 000014
【図１３Ａ】
2011111093.tif 000015
【図１３Ｂ】
2011111093.tif 000016
【図１４Ａ】
2011111093.tif 000017
【図１４Ｂ】
2011111093.tif 000018
【図１５】
2011111093.tif 000019
【図１６】
2011111093.tif 000020
【図１７】
2011111093.tif 000021
【図１８】
2011111093.tif 000022
【図１９】
2011111093.tif 000023
【図２０】
2011111093.tif 000024
【図２１】
2011111093.tif 000025
【図２２】
2011111093.tif 000026
【図２３】
2011111093.tif 000027
【図２４】
2011111093.tif 000028
【図２５】
2011111093.tif 000029
【図２６】
2011111093.tif 000030
【図２７Ａ】
2011111093.tif 000031
【図２７Ｂ】
2011111093.tif 000032
【図２８】
2011111093.tif 000033
【図２９】
2011111093.tif 000034
【図３０】
2011111093.tif 000035
【図３１】
2011111093.tif 000036
【図３２】
2011111093.tif 000037
【図３３】
2011111093.tif 000038
【図３４】
2011111093.tif 000039
【図３５】
2011111093.tif 000040
【国際調査報告】
2011111093.tif 000041
2011111093.tif 000042