(57)【要約】【課題】本発明のストレージシステムは、プール内に管理されているページを有効に使用する。【解決手段】メインストレージ１の外部接続ボリューム７は、外部ストレージ２内のＡＯＵボリューム８に対応付けられている。ＡＯＵボリューム８には、データの書込みに応じて、プールＰＬ２内の未使用ページが割り当てられる。メインストレージ１内の第１コントローラ４は、外部接続ボリューム７についてフォーマット等が指示された場合、それらのコマンドを外部ストレージ２内のＡＯＵボリューム８に対するフォーマット指示または領域解放指示に変換する。これにより、外部のＡＯＵボリューム８の全体にライト処理が実施されてページが無駄に割り当てられるのを防止できる。【選択図】図１
2010055557.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶制御装置と第２記憶制御装置とを通信可能に接続してなるストレージシステムであって、
前記第１記憶制御装置に仮想的に設けられる第１ボリュームと、
前記第２記憶制御装置に仮想的に設けられる第２ボリュームであって、その記憶空間が前記第１ボリュームの記憶空間に対応付けられており、かつ、前記第１ボリュームへのアクセス要求に応じてアクセスされる第２ボリュームと、
前記第２ボリュームへのライトアクセス要求に応じて前記第２ボリュームに割り当てられるための実記憶領域を保持するプール部と、
前記第１記憶制御装置に設けられ、前記第１ボリュームへのアクセス要求に応じて前記第２ボリュームにコマンドを発行し、前記第２ボリュームにデータを読み書きする第１制御部と、
前記第２記憶制御装置に設けられ、前記第１制御部からのコマンドに応じて前記第２ボリュームにデータを入出力する第２制御部であって、前記第１制御部からのライトアクセス要求に応じて前記プール部に保持されている複数の実記憶領域のうち未使用の実記憶領域を前記第２ボリュームに割り当てる第２制御部と、を備え、
前記第１制御部は、前記第１ボリュームについて第１の所定コマンドを受信した場合に、前記第２ボリュームへのライトアクセスの頻度が相対的に低下するように、前記第１の所定コマンドを第２の所定コマンドに変換して前記第２制御部に送信する、ストレージシステム。
【請求項２】
前記第１制御部は、前記第１ボリュームの有する各領域の使用状態を管理するための第１管理情報と、前記第２ボリュームの有する各領域の使用状態を管理するための第２管理情報とを備えている、請求項１に記載のストレージシステム。
【請求項３】
前記第１管理情報及び前記第２管理情報は、前記各領域にデータが書き込まれているか否かを示す情報を含んでいる、請求項２に記載のストレージシステム。
【請求項４】
前記第１制御部は、要求元からのリードアクセス要求に応じて前記第２ボリュームからデータを読み出す場合、前記第１管理情報及び前記第２管理情報に基づいて、リード対象として指定された領域が前記第１ボリューム内で更新されているか否かを判定し、前記リード対象領域が前記第２ボリューム内で更新されていないと判定した場合、前記第２ボリュームにアクセスせずに所定のフォーマットデータを前記要求元に返信する、請求項３に記載のストレージシステム。
【請求項５】
前記第１の所定コマンドは、前記第１ボリュームについてフォーマット処理を指示するためのフォーマットコマンドであり、
前記第２の所定コマンドは、前記第２ボリュームについてフォーマット処理の実行を指示するための別のフォーマットコマンド、または、前記第２ボリュームに割り当てられている前記実記憶領域を前記第２ボリュームへの割当てから解放させるための解放コマンドのいずれか一方である、請求項１に記載のストレージシステム。
【請求項６】
前記第１の所定コマンドは、前記第１ボリュームについてシュレッド処理を指示するためのシュレッドコマンドであり、
前記第２の所定コマンドは、前記第２ボリュームについてシュレッド処理の実行を指示するための別のシュレッドコマンド、または、前記第２ボリュームに割り当てられている前記実記憶領域に所定パターンを書き込むライトコマンドのいずれか一方である、請求項１に記載のストレージシステム。
【請求項７】
前記第１の所定コマンドは、前記第１記憶制御装置に設けられる第３ボリュームと前記第１ボリュームとでコピーペアを形成させて、前記第３ボリュームから前記第１ボリュームに初期コピーを行わせるためのコマンドであり、
前記第２の所定コマンドは、前記第２ボリュームに割り当てられている前記実記憶領域を前記第２ボリュームへの割当てから解放させるための解放コマンドと、前記第１ボリュームにデータが記憶されている領域についてのみ前記第３ボリュームから前記第１ボリュームにデータを格納させるライトコマンドとを含んでいる、請求項１に記載のストレージシステム。
【請求項８】
前記第１の所定コマンドは、前記第１記憶制御装置に設けられる第３ボリュームと前記第１ボリュームとがコピーペアを形成する場合において、前記第３ボリュームの記憶内容と前記第１ボリュームの記憶内容とを同期させるためのペアリシンクあるいはペアリストアコマンドであり、
前記第２の所定コマンドは、前記第３ボリュームにデータの書き込まれていない未使用領域について、前記第２ボリュームに割り当てられている前記実記憶領域を前記第２ボリュームへの割当てから解放させるための解放コマンドと、前記第１ボリュームでデータが更新されている領域について前記第１ボリュームから前記第２ボリュームにデータを格納させるライトコマンドとを含んでいる、請求項１に記載のストレージシステム。
【請求項９】
前記第２制御部が前記第２の所定コマンドを処理できない場合、前記第１制御部は、前記第１の所定コマンドについて予め用意されている代替コマンドを前記第２制御部に送信する、請求項１に記載のストレージシステム
【請求項１０】
前記第２制御部が前記第２の所定コマンドを処理できない場合、前記第１制御部は、予め用意されている所定データを前記第２ボリュームに書き込ませるためのライトコマンドを前記第２制御部に送信する、請求項５または請求項６に記載のストレージシステム。
【請求項１１】
前記第１制御部は、前記第２ボリュームの構成を問い合わせるためのInquiryコマンドを発行することができ、前記第２制御部からの前記Inquiryコマンドの応答に基づいて、前記第１ボリュームと前記第２ボリュームとの関係を設定する、請求項１に記載のストレージシステム。
【請求項１２】
前記第１制御部は、前記第１ボリュームにデータが書き込まれた場合に、予め設定されているサイズの管理領域単位で前記第２ボリュームに前記データを書き込ませるように構成されており、前記管理領域内の前記データ以外の部分について、予め設定されているフォーマットデータを格納させる、請求項１に記載のストレージシステム。
【請求項１３】
前記第１制御部は、前記第１ボリュームにデータを書き込ませる場合に、前記データが予め設定されているフォーマットデータと同一であるか否かを判定し、前記データが前記フォーマットデータと同一の場合には、前記データの属性を破棄可能な状態に設定させる、請求項１に記載のストレージシステム。
【請求項１４】
第１記憶制御装置と第２記憶制御装置とを通信可能に接続してなるストレージシステムを制御するための方法であって、
前記ストレージシステムは、前記第１記憶制御装置に仮想的に設けられる第１ボリュームと、前記第２記憶制御装置に仮想的に設けられる第２ボリュームであって、その記憶空間が前記第１ボリュームの記憶空間に対応付けられており、かつ、前記第１ボリュームへのアクセス要求に応じてアクセスされる第２ボリュームと、前記第２ボリュームへのライトアクセス要求に応じて前記第２ボリュームに割り当てられるための実記憶領域を保持するプール部と、を備えており、
前記第１ボリュームへのアクセス要求に応じて前記第２ボリュームにアクセスを要求し、前記第２ボリュームにデータを読み書きするステップと、
前記第２ボリュームへのアクセス要求のうち未だデータの書き込まれていない未書込み領域についてのライトアクセス要求に応じて、前記プール部に保持されている複数の実記憶領域のうち未使用の実記憶領域を前記第２ボリュームに割り当てさせるステップと、
前記第１ボリュームについて第１の所定コマンドを受信した場合に、前記第２ボリュームへのライトアクセスの頻度が相対的に低下するように、前記第１の所定コマンドを第２の所定コマンドに変換して前記第２制御部に送信させるステップと、
を含むストレージシステムの制御方法。
【請求項１５】
第１記憶制御装置と第２記憶制御装置とを通信可能に接続してなるストレージシステムであって、
前記第１記憶制御装置に仮想的に設けられる第１ボリュームと、
前記第２記憶制御装置に仮想的に設けられる第２ボリュームであって、その記憶空間が前記第１ボリュームの記憶空間に対応付けられており、かつ、前記第１ボリュームへのアクセス要求に応じてアクセスされる第２ボリュームと、
前記第２記憶制御装置に設けられ、前記第２ボリュームへのライトアクセス要求に応じて前記第２ボリュームに割り当てられるための複数の実記憶領域を保持するプール部とを、備えており、
前記第１記憶制御装置から前記第２記憶制御装置に、前記第２ボリュームに関する情報を問合せ、第２記憶制御装置から返信される問合せ結果に基づいて、前記第１ボリュームと前記第２ボリュームとの関係を前記第１記憶制御装置内に設定させるステップと、
前記第１ボリュームへライトアクセス要求が発行された場合に、所定の管理領域単位内のライトデータ以外の部分について所定のフォーマットデータを格納させて、前記第２ボリュームに前記管理領域単位でライトアクセス要求を発行させるステップと、
前記第２ボリュームへのライトアクセス要求が発行された場合に、前記ライトアクセス要求された前記管理領域に対応する領域に、前記複数の実記憶領域のうち未使用の実記憶領域を前記第２ボリュームに割り当てさせ、その割り当てられる実記憶領域に前記ライトデータを格納させるステップと、
前記第１ボリュームをフォーマット処理させるためのフォーマットコマンドを受信した場合において、
（１）前記第２記憶制御装置が、前記第１記憶制御装置からの指示に応じて、前記第２ボリュームをフォーマット処理できる場合は、前記第２ボリュームに関する前記フォーマット処理を前記第２記憶制御装置に実行させるためのフォーマットコマンドを、前記第１記憶制御装置から前記第２記憶制御装置に送信させるステップと、
（２）前記第２記憶制御装置が前記第１記憶制御装置からの指示に応じて前記第２ボリュームをフォーマット処理できない場合であって、かつ、前記第２記憶制御装置が、前記第１記憶制御装置からの指示に応じて、前記第２ボリュームに割り当てられている前記実記憶領域を前記第２ボリュームへの割当てから解放できる場合は、前記実記憶領域の解放を指示するための解放コマンドを前記第１記憶制御装置から前記第２記憶制御装置に送信させるステップと、
（３）前記第２記憶制御装置が、前記第１記憶制御装置からの指示に応じて前記第２ボリュームをフォーマット処理することができず、かつ、前記第１記憶制御装置からの指示に応じて前記第２ボリュームに割り当てられている前記実記憶領域を解放させることができない場合は、前記第１記憶制御装置から前記第２記憶制御装置に所定のフォーマットデータを送信させ、前記第２ボリュームに前記所定のフォーマットデータを書き込ませるステップと、
を実行する、ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの制御方法に関する。
【背景技術】
【０００２】
例えば、政府、企業、大学等の各種機関では、多種多量のデータを取り扱うために、比較的大規模なストレージシステムを用いてデータを管理する。このストレージシステムは、例えば、ディスクアレイ装置等から構成される。ディスクアレイ装置は、多数の記憶デバイスをアレイ状に配設して構成されるもので、例えば、ＲＡＩＤ（Redundant Array of Independent Disks）に基づく記憶領域を提供する。記憶デバイス群が提供する物理的な記憶領域上には少なくとも１つ以上の論理ボリュームが形成され、この論理ボリュームがホストコンピュータ（より詳しくは、ホストコンピュータ上で稼働するデータベースプログラム）に提供される。ホストコンピュータ（以下、「ホスト」と略記）は、所定のコマンドを送信することにより、論理ボリュームに対してデータの書込み、読み出しを行うことができる。
【０００３】
各機関で管理すべきデータは、日々増大する。このため、将来の需要増を見込んで、予めストレージシステムに多めの記憶領域を設けておくことが考えられる。しかし、記憶デバイスの単価は年々低下する傾向にあるため、将来の需要増大に備えて記憶デバイスを多めに購入すると、過大な先行投資になるおそれがある。新たな記憶領域が必要となった時点で、記憶デバイスを適宜購入する方がストレージシステムのコストが低下する。
【０００４】
これに対し、現在の需要に応じた記憶領域だけを用意する場合、新たな需要に即座に対応することができず、ストレージシステムの使い勝手が低下する。そこで、ストレージシステムに存在する各記憶デバイスの記憶領域を仮想化して管理し、必要に応じて使用するようにした技術が提案されている（特許文献１）。
【０００５】
また、既存の記憶資源を有効に利用するために、一方の記憶制御装置が他方の記憶制御装置の有する論理ボリュームを一方の記憶制御装置内部に取り込み、その論理ボリュームがあたかも一方の記憶制御装置の有する論理ボリュームであるかのようにホストに見せかける技術も知られている（特許文献２）。この従来技術では、接続元の論理ボリュームと接続先の論理ボリュームとの対応関係を管理しており、接続元の論理ボリュームへのアクセスに応じて、接続先の論理ボリュームにアクセスする。
【特許文献１】特開２００５−３１９２９号公報
【特許文献２】特開２００５−１０７６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
記憶容量を仮想化する技術と記憶制御装置を仮想化する技術とを仮に組合せる場合、接続先の論理ボリュームに不要なライトアクセスが多量に発生し、記憶領域の使用効率が低下する場合がある。接続先の論理ボリュームを、プール内の実記憶領域を必要に応じて使用する形式の論理ボリュームとして構成し、接続元の論理ボリュームについてフォーマット処理を実施する場合を例に挙げる。
【０００７】
この場合、接続先の論理ボリュームの全体についてフォーマットデータを書き込む処理が実行されるため、接続先の論理ボリュームの全体にプール内の記憶領域が割り当てられてしまう。プール内の記憶領域が無駄に接続先の論理ボリュームに割り当てられるため、ストレージシステムの有する記憶領域を効率的に使用できないという問題がある。また、ストレージシステム内に無駄なトラフィックが発生する。
【０００８】
本発明は、上記の問題点に鑑みてなされたもので、その目的は、記憶資源を有効に使用することのできるストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の他の目的は、第２ボリュームへのライトアクセスを抑制できるストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００９】
上記課題を解決すべく、本願で開示する代表的な発明は以下の通りである。第１記憶制御装置と第２記憶制御装置とを通信可能に接続してなるストレージシステムであって、第１記憶制御装置に仮想的に設けられる第１ボリュームと、第２記憶制御装置に仮想的に設けられる第２ボリュームであって、その記憶空間が第１ボリュームの記憶空間に対応付けられており、かつ、第１ボリュームへのアクセス要求に応じてアクセスされる第２ボリュームと、第２ボリュームへのライトアクセス要求に応じて第２ボリュームに割り当てられるための実記憶領域を保持するプール部と、第１記憶制御装置に設けられ、第１ボリュームへのアクセス要求に応じて第２ボリュームにコマンドを発行し、第２ボリュームにデータを読み書きする第１制御部と、第２記憶制御装置に設けられ、第１制御部からのコマンドに応じて第２ボリュームにデータを入出力する第２制御部であって、第１制御部からのライトアクセス要求に応じてプール部に保持されている複数の実記憶領域のうち未使用の実記憶領域を第２ボリュームに割り当てる第２制御部と、を備え、第１制御部は、第１ボリュームについて第１の所定コマンドを受信した場合に、第２ボリュームへのライトアクセスの頻度が相対的に低下するように、第１の所定コマンドを第２の所定コマンドに変換して第２制御部に送信する。
【００１０】
本発明の手段、機能、ステップの全部または一部は、コンピュータシステムにより実行されるコンピュータプログラムとして構成可能な場合がある。本発明の構成の全部または一部がコンピュータプログラムから構成された場合、このコンピュータプログラムは、例えば、各種記憶媒体に固定して配布等することができ、あるいは、通信ネットワークを介して送信することもできる。
【発明を実施するための最良の形態】
【００１１】
図１は、本発明の実施形態の全体概要を示す構成説明図である。本システムは、後述のように、外部接続機能と、ＡＯＵ（Allocation On Use）機能とを利用する。外部接続機能とは、メインストレージ１の外部に存在するボリューム８を、メインストレージ１の内部のボリュームであるかのようにホスト３に見せかける機能である。外部接続機能は、記憶制御装置を仮想化する機能である。なお、図１は、本発明の一つの側面を模式的に示しており、本発明の範囲を図１に示す構成に限定する意図は無い。
【００１２】
ＡＯＵ機能とは、実記憶領域をプール内に管理しておき、データが論理ボリュームに書き込まれる場合に、データの書込み対象領域にプール内の実記憶領域を割り当てる機能である。ＡＯＵ機能は、記憶容量を仮想化する機能である。
【００１３】
本実施形態のストレージシステムは、例えば、少なくとも一つ以上のメインストレージ１と、少なくとも一つ以上の外部ストレージ２と、少なくとも一つ以上のホスト３とを含んでいる。さらに、本ストレージシステムは、管理用の装置（図２の管理サーバ２０）を備えることもできる。
【００１４】
メインストレージ１は「第１記憶制御装置」に該当する。メインストレージ１は、ストレージシステム内において主導的な役割を果たす。ホスト３は、メインストレージ１を介して、ストレージシステム内の記憶資源を利用する。メインストレージ１は、例えば、「第１制御部」としての第１コントローラ４と、ＡＯＵ機能を用いて生成されるＡＯＵボリューム６と、「第１ボリューム」としての外部接続ボリューム７と、ＡＯＵプールＰＬ１とを備える。
【００１５】
第１コントローラ４は、メインストレージ１の動作を制御する。第１コントローラ４は、例えば、ＩＯ（Input/Output）処理を行う機能４Ａと、ＡＯＵを制御する機能４Ｂと、外部接続を制御する機能４Ｃと、コマンドを変換する機能４Ｄと、更新管理情報としての更新ビットマップ４Ｅ，４Ｆとを備える。
【００１６】
ＩＯ処理機能４Ａは、ホスト３から受信したライトコマンドやリードコマンド等に応じて、ＡＯＵボリューム６や外部接続ボリューム７にデータを読み書きする。ＡＯＵ制御機能４Ｂは、ＡＯＵプールＰＬ１及びＡＯＵボリューム６を制御する。ＡＯＵ制御機能４Ｂは、新たな領域についてホスト３からデータの書込みが要求された場合に、ＡＯＵプールＰＬ１内の未使用ページをＡＯＵボリューム６に割り当てる。そのページは「実記憶領域」に該当する。また、ＡＯＵ制御部４Ｂは、所定の場合に、ＡＯＵボリューム６に割り当てられたページを解放させて、ＡＯＵプールＰＬ１に戻す。
【００１７】
外部接続制御機能４Ｃは、外部接続ボリューム７と外部ストレージ２内のボリューム８との対応関係に基づいて、外部接続ボリューム７へのコマンドを外部ストレージ２内のボリューム８へのコマンドに変換するものである。
【００１８】
外部接続ボリューム７は、外部ストレージ２内のボリューム８に対応付けられているボリュームである。従って、外部接続ボリューム７は、例えば、接続元ボリューム、または、外部のボリュームに接続された外部接続ボリュームと呼び変えることもできる。外部ストレージ２内のボリュームを外部ボリュームまたは接続先ボリュームと呼ぶ。
【００１９】
外部接続制御機能４Ｃは、接続元ボリュームとしての外部接続ボリューム７の記憶空間と、接続先ボリュームとしての外部ボリューム８の記憶空間との対応関係や、外部ボリューム８にアクセスするためのアクセス経路情報等を管理している。外部接続制御機能４Ｃは、例えば、ホスト３から外部接続ボリューム７へのライトコマンドが発行されると、そのライトコマンドを外部ボリューム８へのライトコマンドに変換する。変換されたライトコマンドは、外部ストレージ２内の第２コントローラ５に送信される。ホスト３は、メインストレージ１内の外部接続ボリューム７に書き込んでいるつもりであるが、実際のデータは外部ストレージ２内の外部ボリューム８に記憶される。
【００２０】
コマンド変換機能４Ｄは、外部接続ボリューム７向けて発行されるコマンドのうち所定のコマンドを、別のコマンドに変換させるものである。例えば、フォーマットコマンド、シュレッドコマンド、ボリュームコピーコマンド、リシンクコマンド、リストアコマンド等は、「第１の所定コマンド」に該当する。
【００２１】
コマンド変換機能４Ｄは、第１の所定コマンドを、外部ボリューム８へのライトアクセスの頻度が相対的に低下するように、第２の所定コマンドに変換する。変換された第２の所定コマンドは、第２コントローラ５に送信される。コマンド変換機能４Ｄは、例えば、外部接続ボリューム７のフォーマットを要求するフォーマットコマンドを受信した場合（９Ａ）、もしも可能ならば、そのフォーマットコマンドを、ＡＯＵ外部ボリューム８のフォーマットを要求するコマンドまたはＡＯＵ外部ボリューム８に割当済みのページの解放を要求するコマンドのいずれかに変換する（９Ｃ）。
【００２２】
ＡＯＵ外部ボリューム８のフォーマットやページ解放を第１コントローラ４から指示できない場合、コマンド変換機能４Ｄは、「代替コマンド」としてフォーマットデータをＡＯＵ外部ボリューム８に書き込ませるためのライトコマンドを発行する。そのフォーマットデータは「所定データ」に該当する。
【００２３】
コマンド変換機能４Ｄは、外部接続ボリューム７とＡＯＵ外部ボリューム８の記憶内容を同期させるためのコマンドを受信した場合（９Ｂ）、外部接続ボリューム７とＡＯＵ外部ボリューム８との差分のみをＡＯＵ外部ボリューム８に書き込ませる（９Ｄ）。なお、各コマンドの処理の詳細は後述する。
【００２４】
更新ビットマップ４Ｅは「第１管理情報」に、更新ビットマップ４Ｆは「第２管理情報」に、該当する。更新ビットマップ４Ｅは、メインストレージ１内のボリューム６，７について使用状態を管理する。更新ビットマップ４Ｆは、外部ストレージ２内の外部ボリューム８について使用状態を管理する。ＩＯ処理機能４Ａは、ホスト３から受信したライトコマンド等に基づいて、各更新ビットマップ４Ｅ，４Ｆを更新させる。
【００２５】
「第２記憶制御装置」としての外部ストレージ２を説明する。外部ストレージ２は、メインストレージ１の外部に存在するストレージであるため、本明細書では「外部ストレージ」と呼ばれる。外部ストレージ２は、例えば、「第２制御部」としての第２コントローラ５と、「第２ボリューム」としてのＡＯＵ外部ボリューム８と、「プール部」としてのＡＯＵプールＰＬ２とを備える。
【００２６】
第２コントローラ５は、外部ストレージ２の動作を制御する。第２コントローラ５は、例えば、ＩＯ処理機能５Ａと、ＡＯＵ制御機能５Ｂとを備える。ＩＯ処理機能５Ａは、第１コントローラ４からの指示に応じて、ＡＯＵ外部ボリューム８にデータを読み書きし、その読み書きの結果を第１コントローラ４に応答する。ＡＯＵ制御機能５Ｂは、第１コントローラ４のＡＯＵ制御機能４Ｂと同様に、ＡＯＵプールＰＬ２及びＡＯＵ外部ボリューム８について制御する。
【００２７】
ＡＯＵ外部ボリューム８は、メインストレージ１内のＡＯＵボリューム６と同様に、仮想的に生成されるボリュームである。ＡＯＵ外部ボリューム８は、外部ストレージ２内に存在する外部ボリュームであって、かつ、ＡＯＵにより構成されるボリュームである。ＡＯＵ外部ボリューム８にデータが書き込まれる場合に、ＡＯＵプールＰＬ２内のページがＡＯＵ外部ボリューム８に割り当てられる。
【００２８】
このように構成される本実施形態では、メインストレージ１内の外部接続ボリューム７に外部ストレージ２内のＡＯＵ外部ボリューム８を対応付けることにより、ストレージシステム内の記憶資源を有効に利用できる。メインストレージ１が外部ストレージ２の有する外部ボリューム８をメインストレージ１内に取り込むことにより、ストレージシステム内に分散する各ボリュームを仮想化して管理することができる。さらに、実際の使用に応じてページが割り当てられるＡＯＵボリューム６，８を用いることにより、実記憶領域（上記のページ）を有効に利用できる。
【００２９】
さらに、本実施例では、外部接続ボリューム７へのコマンドが第１の所定コマンドである場合に、ＡＯＵ外部ボリューム８へのライトアクセスの頻度が相対的に低下する第２の所定コマンドに変換して、第２コントローラ５に送信する。従って、ＡＯＵ外部ボリューム８に不要なページが割り当てられるのを未然に抑制することができ、外部ストレージ２内の記憶資源（上記ページ）を有効に利用できる。以下、本実施形態をより詳細に説明する。
【実施例１】
【００３０】
図２は、本実施例によるストレージシステムの全体構成を示す説明図である。先に図１との対応関係を明らかにする。ホスト１０は図１中のホスト３に、メインストレージ１００は図１中のメインストレージ１に、外部ストレージ２００は図１中の外部ストレージ２に、第１コントローラ１１０は図１中の第１コントローラ４に、第２コントローラ２１０は図１中の第２コントローラ５に、対応する。
【００３１】
ストレージシステムは、例えば、少なくとも一つのホスト１０と、少なくとも一つのメインストレージ１００と、少なくとも一つ以上の外部ストレージ２００と、各ストレージ１００，２００にそれぞれ接続された管理サーバ２０とを含んでいる。
【００３２】
ホスト１０は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、パーソナルコンピュータ、ワークステーション、メインフレーム、サーバコンピュータ等として構成される。ホスト１０は、例えば、ＳＡＮ（Storage Area Network）やＬＡＮ（Local Area Network）等の通信ネットワークＣＮ１を介してメインストレージ１００に接続されている。
【００３３】
メインストレージ１００は、ストレージシステムの中心的役割を果たすメインストレージである。詳細は後述するが、メインストレージ１００は、コントローラ１１０と記憶デバイス搭載部１２０とを備えて構成可能である。メインストレージ１００は、通信ネットワークＣＮ１を介して各ホスト１０にそれぞれ接続されている。メインストレージ１００は、別の通信ネットワークＣＮ２を介して、他のストレージ２００にそれぞれ接続されている。別の通信ネットワークＣＮ２としては、例えば、ＩＰプロトコルを利用するＩＰ−ＳＡＮやＦＣ（Fibre Channel）プロトコルを利用するＦＣ−ＳＡＮを利用できる。
【００３４】
外部ストレージ２００は、メインストレージ１００の外部に位置する外部ストレージである。外部ストレージ２００は、コントローラ２１０と記憶デバイス搭載部２２０とを備えて構成される。外部ストレージ２００は、後述のように、実ボリュームまたはＡＯＵボリュームを、メインストレージ１００に提供することができる。
【００３５】
管理サーバ２０は、各ストレージ１００，２００の状態を管理する。管理サーバ２０は、例えば、ＬＡＮ等の通信ネットワークＣＮ３を介して、各ストレージ１００，２００に接続されている。管理サーバ２０は、各ストレージ１００，２００から情報を収集したり、各ストレージ１００，２００に指示を与える。なお、管理サーバ２０は、ストレージ間の通信ネットワークＣＮ２を介して、各ストレージ１００，２００と通信できる構成としてもよい。
【００３６】
図３は、ストレージシステムのブロック図である。紙面の都合上、メインストレージ１００の構成を中心に示す。ホスト１０は、例えば、メインストレージ１００との間の通信を行うためのＨＢＡ（Host Bus Adapter）１１と、メインストレージ１００を管理するための管理プログラム１２と、を備えることができる。
【００３７】
メインストレージ１００は、例えば、ハードディスクデバイスやフラッシュメモリデバイスを備えるディスクシステムとして構成される。これに限らず、メインストレージ１００を、高機能化されたインテリジェントスイッチや、複数のストレージを仮想化するための仮想化アプライアンスとして構成してもよい。
【００３８】
上述のように、メインストレージ１００は、コントローラ１１０と記憶デバイス搭載部１２０とに大別することができる。コントローラ１１０は、例えば、複数のチャネルアダプタ１１１と、複数のディスクアダプタ１１２と、キャッシュメモリ１１３と、共有メモリ１１４と、接続制御部１１５とを備えている。便宜上、チャネルアダプタをＣＨＡと、ディスクアダプタをＤＫＡと、キャッシュメモリをＣＭと、共有メモリをＳＭと、接続制御部をＳＷと、略して表示している。
【００３９】
各ＣＨＡ１１１は、ホスト１０との間のデータ通信を行うものである。一つまたは複数のＣＨＡ１１１は、ホスト１０と通信を行うための通信ポート１１１Ｔ（ターゲットポート）を備えている。また、別の一つまたは複数のＣＨＡ１１１は、外部のストレージ２００と通信を行うための通信ポート１１１Ｅを備えている。
【００４０】
各ＣＨＡ１１１は、それぞれＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト１０から受信した各種コマンドを解釈して実行する。各ＣＨＡ１１１には、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ（World Wide Name））が割り当てられている。
【００４１】
各ＤＫＡ１１２は、記憶デバイス搭載部１２０が有するディスクドライブ１２１との間でデータ授受を行うものである。各ＤＫＡ１１２は、ＣＨＡ１１１と同様に、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成される。各ＤＫＡ１１２は、例えば、ＣＨＡ１１１がホスト１０から受信したデータを、所定のディスクドライブ１２１の所定のアドレスに書込む。また、各ＤＫＡ１１２は、所定のディスクドライブ１２１の所定のアドレスからデータを読み出し、ホスト１０または外部ストレージ２００に送信させる。
【００４２】
ディスクドライブ１２１との間でデータ入出力を行う場合、各ＤＫＡ１１２は、論理的アドレスを物理的アドレスに変換する。各ＤＫＡ１１２は、ディスクドライブ１２１がＲＡＩＤに従って管理されている場合、ＲＡＩＤ構成に応じたデータアクセスを行う。例えば、各ＤＫＡ１１２は、同一のデータを別々のディスクドライブ群（ＲＡＩＤグループ）にそれぞれ書き込む。あるいは、各ＤＫＡ１１２は、パリティを計算して、データ及びパリティをディスクドライブ群に書き込む。
【００４３】
キャッシュメモリ１１３は、ホスト１０または外部のストレージ２００から受信したデータを一時的に記憶したり、あるいは、ディスクドライブ１２１から読み出されたデータを一時的に記憶する。
【００４４】
共有メモリ（制御メモリとも呼ばれる）１１４には、メインストレージ１００の作動に使用するための各種制御情報等が格納される。また、共有メモリ１１４には、ワーク領域が設定されるほか、後述する各種テーブルも格納される。テーブルの構成は後述する。テーブルの記憶内容の全部または一部を、ＣＨＡ１１１，ＤＫＡ１１２内にそれぞれコピーすることもできる。
【００４５】
なお、ディスクドライブ１２１のいずれか１つあるいは複数を、キャッシュ用のディスクとして使用してもよい。また、キャッシュメモリ１１３と共有メモリ１１４とは、それぞれ別々のメモリとして構成することもできるし、同一のメモリの一部の記憶領域をキャッシュ領域として使用し、他の記憶領域を制御領域として使用することもできる。
【００４６】
接続制御部１１５は、各ＣＨＡ１１１，各ＤＫＡ１１２，キャッシュメモリ１１３及び共有メモリ１１４を相互に接続させるものである。接続制御部１１５は、例えば、高速スイッチング動作によってデータ伝送を行うクロスバスイッチやバスとして構成することができる。
【００４７】
記憶デバイス搭載部１２０は、複数のディスクドライブ１２１を備えている。以下、記憶デバイス搭載部をＨＤＵ（Hard Disk Unit）と略する。記憶デバイスとしては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。
【００４８】
記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、ＦＣ（Fibre Channel）ディスク、ＳＣＳＩ（Small Computer System Interface）ディスク、ＳＡＴＡディスク、ＡＴＡ（AT Attachment）ディスク、ＳＡＳ（Serial Attached SCSI）ディスク等を用いることができる。記憶デバイスとして半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（MagnetoresistiveRandom Access Memory）、相変化メモリ（Ovonic Unified Memory）、ＲＲＡＭ（Resistance RAM）」等の種々のメモリデバイスを利用可能である。
【００４９】
サービスプロセッサ１１６は、例えば、ＬＡＮ等の内部通信ネットワークＣＮ４を介して、メインストレージ１００内部から各種情報を収集したり、共有メモリ１１４に制御情報を書き込んだりする。以下、サービスプロセッサをＳＶＰと略す。図中では、ＳＶＰ１１６を各ＣＨＡ１１１に接続する場合を示しているが、これに限らず、ＳＶＰ１１６と各ＣＨＡ１１１及び各ＤＫＡ１１２とを通信ネットワークＣＮ４を介して接続することもできる。
【００５０】
管理サーバ２０は、ＬＡＮ等の通信ネットワークを介して、メインストレージ１００内のＳＶＰ１１６と外部ストレージ２００内のＳＶＰ２３０とに、接続されている。管理サーバ２０は、各ストレージ１００，２００を管理するためのソフトウェアである、ストレージ管理部２１Ａを備える。管理サーバ２０は、ＳＶＰ１１６を介して、メインストレージ１００内の各種情報を収集したり、または、メインストレージ１００に各種の指示を与える。
【００５１】
外部ストレージ２００は、上述のように、コントローラ２１０及びＨＤＵ２２０を備えている。外部ストレージ２００は、通信ポート２１１を介して、メインストレージ１００に接続されている。外部ストレージ２００は、メインストレージ１００とほぼ同様の構成を備えることができる。あるいは、外部ストレージ２００は、メインストレージ１００よりも簡易な構成としてもよい。外部ストレージ２００のＨＤＵ２２０には、複数のディスクドライブ２２１が設けられている。これら各ディスクドライブ２２１が提供する物理的な記憶領域は、メインストレージ１００の内部記憶領域であるかのようにして扱われる場合がある。
【００５２】
図４は、ストレージシステムの機能構成を示す説明図である。第１コントローラ１１０は、例えば、第１通信処理部１０１と、ＩＯ処理部１０２と、外部接続制御部１０３と、ＡＯＵ制御部１０４と、外部ストレージ操作部１０５と、第２通信処理部１０６とを、備える。
【００５３】
第１通信処理部１０１は、上位装置としてのホスト１０とデータ通信するための機能である。第２通信処理部１０６は、下位装置としてのディスクドライブ１２１とデータ通信するための機能である。ＩＯ処理部１０２は、ホスト１０から受領したコマンドに従ってデータを読み書きし、その結果を返す機能である。
【００５４】
外部接続制御部１０３は、後述のように、メインストレージ１００内の仮想的な論理ボリューム（外部接続ボリューム）と、外部ストレージ２００内の論理ボリューム（外部ボリューム）とを対応付けて制御する。
【００５５】
ＡＯＵ制御部１０４は、メインストレージ１００内に設けられるＡＯＵボリューム（内部ＡＯＵボリューム）を制御する。外部ストレージ操作部１０５は、外部ストレージ２００にフォーマット指示や領域解放指示等を与えるものである。
【００５６】
第２コントローラ２１０は、例えば、第１通信処理部２０１と、ＩＯ処理部２０２と、ＡＯＵ制御部２０３と、第２通信処理部２０４とを備える。第１通信処理部２０１は、上位装置としてのメインストレージ１００とデータ通信するための機能である。第２通信処理部２０４は、ディスクドライブ２２１とデータ通信するための機能である。ＩＯ処理部２０２は、第１コントローラ１１０から受信したコマンドに従って、データを読み書きし、その結果を第１コントローラ１１０に応答する機能である。ＡＯＵ制御部２０３は、外部ストレージ２００内に設けられるＡＯＵボリュームを制御する。
【００５７】
図５は、ストレージシステムの記憶構造を模式的に示す説明図である。メインストレージ１００の記憶構造は、例えば、物理的記憶階層と論理的記憶階層とに大別される。物理的記憶階層は、物理的なディスクＰＤＥＶ（Physical DEVice）であるディスクドライブ１２１により構成される。
【００５８】
論理的記憶階層は、複数の階層から構成可能である。一つの論理的階層は、ＶＤＥＶ（Virtual DEVice）／ＥＤＥＶ（Expand virtural DEVice）層である。他の一つの論理的階層は、ＬＤＥＶ（Logical Device）層である。最後の一つの層は、ＬＵ（Logical Unit）層である。
【００５９】
ＶＤＥＶ１２２Ｖは、例えば、４個１組（３Ｄ＋１Ｐ）、８個１組（７Ｄ＋１Ｐ）等のような複数のディスクドライブ１２１をグループ化して構成される。グループに属する各ディスクドライブ１２１がそれぞれ提供する記憶領域が集合して一つのＲＡＩＤ記憶領域が形成される。このＲＡＩＤ記憶領域がＶＤＥＶ１２２Ｖとなる。
【００６０】
全てのＶＤＥＶが物理的な記憶領域（ＰＤＥＶ）上に直接生成されるわけではなく、少なくとも一部のＶＤＥＶは、仮想的な中間記憶デバイスＥＤＥＶ１２２Ｅとして構成されているＥＤＥＶ１２２Ｅは、外部ストレージ２００のＬＵ（Logical Unit）２２４をマッピングするための受け皿となっている。
【００６１】
ＬＤＥＶ１２３は、論理ボリュームであり、ＶＤＥＶ１２２ＶまたはＥＤＥＶ１２２Ｅ上に、それぞれ少なくとも一つ以上設けることができる。また複数のＶＤＥＶ１２２ＶまたはＥＤＥＶ１２２Ｅをまとめて一つのＬＤＥＶ１２３に対応付けることもできる。
【００６２】
ホスト１０がいわゆるオープン系ホストの場合、ＬＤＥＶ１２３がＬＵ１２４にマッピングされることにより、ホスト１０は、ＬＤＥＶ１２３を一つの物理的なディスクとして認識する。オープン系のホストは、ＬＵＮ（Logical Unit Number ）や論理ブロックアドレスを指定することにより、所望のＬＤＥＶ１２３にアクセスする。なお、メインフレーム系ホストは、ＬＤＥＶ１２３を直接認識する。
【００６３】
ＬＤＥＶ１２３のうち仮想的に生成されるＡＯＵボリューム１２３Ａ（図６参照）は、ＡＯＵプール１２２Ｐに関連付けられている。以下、ＡＯＵプールをプールと略記する場合がある。ＬＤＥＶ１２３のうち外部ストレージ２００内の論理ボリュームに接続される、外部接続ボリューム１２３Ｅ（図６参照）は、ＥＤＥＶ１２２Ｅを介して、外部ストレージ２００のＬＵ２２４に関連付けられる。
【００６４】
ＬＵ１２４は、ＳＣＳＩの論理ユニットとして認識可能なデバイスである。ＬＵ１２４は、ターゲットポート１１１Ｔを介してホスト１０に接続される。ＬＵ１２４には、少なくとも一つ以上のＬＤＥＶ１２３をそれぞれ関連付けることができる。一つのＬＵ１２４に複数のＬＤＥＶ１２３を関連付けることにより、ＬＵサイズを仮想的に拡張することもできる。
【００６５】
なお、ＣＭＤ（Command Device）と呼ばれる専用デバイスを設けてもよい。ＣＭＤは、ホスト１０上で稼働するプログラムとメインストレージ１００の第１コントローラ１１０との間で、コマンドやステータスを受け渡すために使用される。
【００６６】
メインストレージ１００の外部接続用のイニシエータポート（External Port）１１１Ｅには、通信ネットワークＣＮ２を介して、外部ストレージ２００が接続されている。外部ストレージ２００は、複数のディスクドライブ２２１と、ディスクドライブ２２１の提供する記憶領域上に設定されたＶＤＥＶ２２２と、ＶＤＥＶ２２２上に少なくとも一つ以上設定可能なＬＤＥＶ２２３とを備えている。ＬＤＥＶ２２３は、ＬＵ２２４に関連付けられる。この外部ストレージ２００の有するＬＤＥＶ２２３は、外部接続ボリューム１２３Ｅに関連付けられ、外部接続ボリューム１２３Ｅに物理的な記憶領域を提供する。
【００６７】
図６を参照する。図６は、各記憶階層間の関係例を示す説明図である。図６中の左端に示すＡＯＵボリューム１２３Ａは、プール１２２Ｐに対応付けられている。
【００６８】
プール１２２Ｐは、プールボリューム１２３Ｐの有する実記憶領域を管理する。ホスト１０がＡＯＵボリューム１２３Ａの未使用部分にデータを書き込む場合に、プール１２２Ｐ内で管理されている未使用ページがＡＯＵボリューム１２３Ａに割り当てられる。ホスト１０から受信したライトデータは、その割り当てられたページに記憶される。
【００６９】
プール１２２Ｐには、種々のボリューム１２３Ｐ（１）〜１２３Ｐ（３）を収容することができる。第１のプールボリューム１２３Ｐ（１）は、メインストレージ１００内の実ボリュームである。つまり、第１のプールボリューム１２３Ｐは、メインストレージ１００の有するディスクドライブ１２１に基づいて形成されている。第２のプールボリューム１２３Ｐ（２）は、外部ストレージ２００内のＬＤＥＶ２２３Ｒを利用している。つまり、第２のプールボリューム１２３Ｐ（２）は、外部ストレージ２００内の外部ボリュームに接続された、外部接続ボリュームである。第３のプールボリューム１２３Ｐ（３）は、外部ストレージ２００内のＡＯＵボリューム２２３Ａに接続されるボリュームである。つまり、第３のプールボリューム１２３Ｐ（３）も、外部接続ボリュームである。
【００７０】
プール１２２Ｐの右隣には、外部接続ボリューム１２３Ｅが示されている。外部接続ボリューム１２３Ｅは、ＥＤＥＶ１２２Ｅを介して、外部ストレージ２００内のＡＯＵボリューム２２３Ａに接続されている。外部接続ボリューム１２３Ｅへのライトデータは、外部ストレージ２００内の外部ボリュームに記憶される。外部接続ボリューム１２３Ｅと外部ストレージ２００内の外部ボリューム（例えば、図６の例では、２２３Ｒや２２３Ａ）とは、同一サイズに構成することができる。外部接続ボリューム１２３Ｅの所定のアドレスを指定するライトデータは、外部ストレージ２００内の外部ボリューム（接続先ボリューム）内の対応するアドレスに記憶される。接続先ボリュームがＡＯＵボリューム２２３Ａの場合、そのライトデータは、ＡＯＵボリューム２２３Ａに割り当てられたプール２２２Ｐ内のページに記憶される。
【００７１】
図６の右端には、通常の実ボリューム１２３Ｒが示されている。実ボリューム１２３Ｒは、ＶＤＥＶ１２２Ｖを介して、メインストレージ１００内のＰＤＥＶ１２１に接続されている。
【００７２】
図６の下側に示すように、外部ストレージ２００も、実ボリューム２２３Ｒと、ＡＯＵボリューム２２３Ａとを備える。実ボリューム２２３Ｒは、外部ストレージ２００内のＰＤＥＶ２２１に対応付けられている。ＡＯＵボリューム２２３Ａは、プール２２２Ｐ内のページに対応付けられている。プール２２２Ｐは、少なくとも一つ以上のプールボリューム２２３Ｐを収容する。
【００７３】
ストレージシステム内で使用される各種テーブルや情報の構造例を説明する。図７は、ＬＤＥＶ管理テーブルＴ１０と、ボリューム種別の組合せテーブルＴ１１と、ボリューム状態管理テーブルＴ１２とを示す。各管理テーブルＴ１０〜Ｔ１２は、第１コントローラ１１０内の共有メモリ１１４に記憶されている。
【００７４】
便宜上、図中では、ボリュームをＶＯＬと略記する。ボリュームとは、ＬＤＥＶのことである。実ＶＯＬとは、物理的記憶デバイスＰＤＥＶに結びつけられているボリュームである。ＡＯＵ−ＶＯＬとは、プール内に管理されているページが割り当てられることにより形成されているボリュームである。
【００７５】
内部ボリュームとは、メインストレージ１００内に存在するボリュームである。外部ボリュームとは、外部ストレージ２００内に存在するボリュームである。外部接続ボリュームとは、メインストレージ１００内に設けられているが、実際の記憶先が外部ボリューム内に存在するボリュームである。
【００７６】
ＬＤＥＶ管理テーブルＴ１０は、メインストレージ１００が直接的にまたは間接的に管理しているボリューム（ＬＤＥＶ）を、管理するテーブルである。テーブルＴ１０は、例えば、ＬＤＥＶ−ＩＤと、サイズと、ボリューム種別と、ボリューム状態と、ボリュームペアと、対応ＬＵと、対応ＶＤＥＶの項目を備えている。
【００７７】
「ＬＤＥＶ−ＩＤ」は、ストレージシステム内の各ＬＤＥＶを特定するための識別情報である。「サイズ」は、各ＬＤＥＶのサイズを示す。「ボリューム種別」は、各ＬＤＥＶの種類を示す。「ボリューム状態」は、各ＬＤＥＶの状態を示す。ＬＤＥＶに対して後述のローカルコピーペアやリモートコピーペアが設定されている場合は、「ボリュームペア」にペアを特定するためのペアＩＤが設定される。
【００７８】
「対応ＬＵ」には、そのＬＤＥＶに対応付けられているＬＵを特定するための識別情報が設定される。「対応ＶＤＥＶ」には、そのＬＤＥＶに対応付けられているＶＤＥＶまたはＥＤＥＶを特定するための識別情報が設定される。
【００７９】
ボリューム種別の組合せテーブルＴ１１は、種々の属性を備える各ボリューム（ＬＤＥＶ）の組合せについて示している。ストレージシステム内のボリュームは、データボリュームと、プールボリュームとに大別される。データボリュームとは、ＬＵを介してホスト１０に提供されているボリュームである。プールボリュームとは、ＡＯＵボリュームに割り当てられるための記憶領域を提供するためのボリュームであり、プールによって管理される。
【００８０】
データボリューム及びプールボリュームのいずれも、実ボリューム及びＡＯＵボリュームから構成可能である。データボリュームは、実ボリュームまたはＡＯＵボリュームから構成できる。プールボリュームも、実ボリュームまたはＡＯＵボリュームから構成することができる。
【００８１】
実ボリューム及びＡＯＵボリュームのいずれも、内部ボリュームまたは外部接続ボリュームのいずれかに大別される。ストレージ内部のＰＤＥＶに対応付けられるボリュームは、内部ボリュームである。ストレージ外部のＰＤＥＶに対応付けられるボリュームは、外部接続ボリュームである。
【００８２】
ボリューム状態管理テーブルＴ１２は、各ボリュームの状態を管理する。管理テーブルＴ１２は、例えば、使用状態と、フォーマット状態と、シュレッド状態と、書込み状態との、各項目を管理する。
【００８３】
「使用状態」は、そのボリュームが正常に使用されているか否かを示す。そのボリュームが正常に使用されている場合は、「正常」と設定される。そのボリュームが正常に使用されていない場合は、「閉塞」と設定される。
【００８４】
「フォーマット状態」は、そのボリュームのフォーマットに関する状態を示す。そのボリュームが未だフォーマットされていない場合は、「未フォーマット」と設定される。そのボリュームがフォーマット中の場合は、「フォーマット中」と設定される。そのボリュームがフォーマット済の場合は、「フォーマット済」と設定される。
【００８５】
「シュレッド状態」は、そのボリュームのシュレッドに関する状態を示す。シュレッドとは、ボリュームに記憶されているデータに所定のシュレッドデータを複数回書き込むことにより、そのボリュームに記憶されているデータを完全に消去させる処理である。そのボリュームがシュレッド処理中の場合、「シュレッド中」と設定される。そのボリュームがシュレッド中では無い場合、「非シュレッド中」と設定される。
【００８６】
「書込み状態」は、そのボリュームへのデータ書込み状態を示す。そのボリュームにデータが書き込まれている場合、「有り」と設定される。そのボリュームにデータが書き込まれていない場合、「無し」と設定される。
【００８７】
図８は、ＶＤＥＶ／ＥＤＥＶ管理テーブルＴ１３と、デバイスグループ管理テーブルＴ１４と、ＰＤＥＶ管理テーブルＴ１５とを示す説明図である。ＶＤＥＶ／ＥＤＥＶ管理テーブルＴ１３は、中間的な記憶デバイスＶＤＥＶ及びＥＤＥＶを管理するためのテーブルである。管理テーブルＴ１３は、例えば、ＶＤＥＶ−ＩＤ／ＥＤＥＶ−ＩＤと、サイズと、種別と、状態と、ＲＡＩＤ構成と、対応ＬＤＥＶと、対応デバイスグループ／対応接続先ボリュームとの、各項目を管理する。
【００８８】
「ＶＤＥＶ−ＩＤ／ＥＤＥＶ−ＩＤ」は、ＶＤＥＶやＥＤＥＶを識別するための識別情報である。ＶＤＥＶは、ストレージ内部の物理的記憶領域に基づいてＬＤＥＶを生成するために使用される。ＥＤＥＶは、ストレージ外部の物理的記憶領域に基づいてＬＤＥＶを生成するために使用される。
【００８９】
「サイズ」は、ＶＤＥＶやＥＤＥＶの記憶容量を示す。「種別」は、ＶＤＥＶやＥＤＥＶの種別を示す。種別としては、ＶＤＥＶやＥＤＥＶに対応付けられるＰＤＥＶの種別（ＡＴＡディスク、フラッシュメモリデバイス等）が挙げられる。「状態」とは、ＶＤＥＶやＥＤＥＶが正常に稼働中であるか否かを示す。
【００９０】
「ＲＡＩＤ構成」は、そのＶＤＥＶやＥＤＥＶがどのようなＲＡＩＤ構成を備えているかを示す。「対応ＬＤＥＶ」には、そのＶＤＥＶやＥＤＥＶが対応付けられている、ＬＤＥＶを特定するための情報（ＬＤＥＶ−ＩＤ）が設定される。「対応デバイスグループ／対応外部ボリューム」は、そのＶＤＥＶやＥＤＥＶに対応付けられる、デバイスグループまたは外部ボリュームにアクセスするための情報が設定される。ＶＤＥＶの場合には、そのＶＤＥＶに対応するデバイスグループの情報が設定される。ＥＤＥＶの場合、そのＥＤＥＶに接続されている外部ボリューム（接続先ボリューム）にアクセスするための情報が設定される。アクセスするための情報としては、例えば、ポート番号、ＷＷＮ、ＬＵ番号等を挙げることができる。
【００９１】
デバイスグループ管理テーブルＴ１４は、デバイスグループを管理する。デバイスグループとは、ＶＤＥＶを構成するＰＤＥＶのグループである。管理テーブルＴ１４は、例えば、デバイスグループＩＤと、状態と、ＲＡＩＤ構成と、対応ＶＤＥＶと、対応ＰＤＥＶとの、各項目を管理する。
【００９２】
「デバイスグループＩＤ」は、各デバイスグループを識別するための情報である。「状態」は、そのデバイスグループが正常に動作中であるか否かを示す。「ＲＡＩＤ構成」は、そのデバイスグループのＲＡＩＤ構成を示す。「対応ＶＤＥＶ」は、そのデバイスグループが対応付けられているＶＤＥＶを特定する。「対応ＰＤＥＶ」は、そのデバイスグループに含まれている、ＰＤＥＶを特定する。デバイスグループを構成するＰＤＥＶを特定するために、ＰＤＥＶ−ＩＤが設定される。
【００９３】
ＰＤＥＶ管理テーブルＴ１５は、ＰＤＥＶを管理するテーブルである。管理テーブルＴ１５は、例えば、ＰＤＥＶ−ＩＤと、サイズと、状態と、対応ＶＤＥＶとの、各項目を管理する。
【００９４】
「ＰＤＥＶ−ＩＤ」は、各ＰＤＥＶを識別するための識別情報である。「サイズ」は、そのＰＤＥＶの記憶容量を示す。「状態」は、そのＰＤＥＶが正常に動作しているか否かを示す。例えば、正常に動作している場合は「正常」と、異常が生じて居る場合は「異常」と、省電力のために停止している場合は「省電力中」と、設定される。「対応ＶＤＥＶ」は、そのＰＤＥＶが対応付けられているＶＤＥＶを特定する。
【００９５】
図９は、内部ＡＯＵボリューム管理テーブルＴ１６と、内部ＡＯＵプール管理テーブルＴ１７と、割当てページ管理テーブルＴ１８と、内部ＡＯＵページ管理テーブルＴ１９とを示す説明図である。
【００９６】
内部ＡＯＵボリューム管理テーブルＴ１６は、ストレージ内部のＡＯＵボリュームを管理するテーブルである。管理テーブルＴ１６は、例えば、ＡＯＵプールＩＤと、割当てページ情報との各項目を管理する。
【００９７】
「ＡＯＵプールＩＤ」は、そのＡＯＵボリュームが対応付けられるＡＯＵプールを識別するための情報である。「割当てページ情報」は、そのＡＯＵボリュームに対応付けられるページを管理するための情報である。
【００９８】
内部ＡＯＵプール管理テーブルＴ１７は、ストレージ内部のＡＯＵプールを管理するテーブルである。管理テーブルＴ１７は、例えば、ＡＯＵプールＩＤと、プールボリューム情報と、ＡＯＵボリュームリストと、ページ情報との、各項目を管理する。
【００９９】
「ＡＯＵプールＩＤ」は、そのＡＯＵプールを識別するための情報を示す。「プールボリューム情報」は、そのＡＯＵプールに含まれるプールボリュームを示す情報である。プールボリューム情報は、「ボリューム数」と「ボリュームリスト」というサブ項目を含んでいる。「ボリューム数」は、そのＡＯＵプールに含まれるプールボリュームの合計数を示す。「ボリュームリスト」は、そのＡＯＵプールに含まれるプールボリュームのリストを示す。
【０１００】
「ＡＯＵボリュームリスト」は、そのＡＯＵプールに対応付けられているＡＯＵボリュームのリストを示す。「ページ情報」は、そのＡＯＵプールに含まれている各ページの情報を示す。ページ情報は、例えば、「サイズ」と、「総ページ数」と、「空ページ数」と、「ポインタ」というサブ項目を含んでいる。
【０１０１】
「サイズ」は、各ページの記憶サイズを示す。つまり、ＡＯＵボリュームの最小構成単位を示す。「総ページ」は、そのＡＯＵプールが有する総ページ数を示す。「空ページ数」は、そのＡＯＵプールの有する未使用のページ数を示す。「ポインタ」は、割当てページ管理テーブル中の該当箇所を指し示す。
【０１０２】
割当てページ管理テーブルＴ１８は、ＡＯＵプールに登録されている各ページを管理するテーブルである。管理テーブルＴ１８は、例えば、開始アドレスと、割当て状況と、ページＩＤとの各項目を管理する。
【０１０３】
「開始アドレス」は、そのページの開始アドレスを示す。そのページの終了アドレスは、開始アドレスの値にページサイズを加えることにより求めることができる。「割当て状況」は、そのページがＡＯＵボリュームに割り当てられているか否かを示す。そのページがＡＯＵボリュームに割り当てられていない場合は「未」が設定され、そのページがＡＯＵボリュームに割り当てられている場合は「済」が設定される。「ページＩＤ」は、そのページを特定するための識別情報である。
【０１０４】
内部ＡＯＵページ管理テーブルＴ１９は、ストレージ内部のＡＯＵボリュームを構成する各ページを管理するテーブルである。管理テーブルＴ１９は、例えば、ページＩＤと、ページ状態と、プールボリュームと、ＡＯＵボリュームとの各項目を管理する。
【０１０５】
「ページＩＤ」は、ＡＯＵボリュームに割り当てられているページを特定するための識別情報である。「ページ状態」は、そのページの状態を示す。ページ状態は、「割当て状態」と「初期化状態」のサブ項目を備える。図１０に示すように、「割当て状態」には、そのページがＡＯＵボリュームに割り当てられている場合に「済」と設定され、そのページがＡＯＵボリュームに割り当てられていない場合に「未」と設定される。「初期化状態」は、そのページが初期化されているか否かを示す。図１０に示すように、初期化処理（フォーマット処理）が完了している場合に「済」と設定され、初期化処理が行われていない場合に「未」と設定される。
【０１０６】
図９に戻る。「プールボリューム」は、そのページの提供元であるプールボリュームを管理する。プールボリュームは、「ＬＤＥＶ−ＩＤ」と、「開始アドレス」とのサブ項目を含む。「ＬＤＥＶ−ＩＤ」は、そのページを提供するプールボリュームを識別するための情報である。「開始アドレス」は、そのページがプールボリューム内のどの位置から始まるのかを示す。
【０１０７】
「ＡＯＵボリューム」は、そのページが割り当てられるＡＯＵボリュームを管理する項目である。ＡＯＵボリュームは、「ＬＤＥＶ−ＩＤ」と、「開始アドレス」とのサブ項目を含む。「ＬＤＥＶ−ＩＤ」は、そのページが割り当てられるＡＯＵボリュームを特定するための情報である。「開始アドレス」は、そのページが割り当てられてる、ＡＯＵボリューム内のアドレスを示す。つまり、そのページがストレージ内部のＡＯＵボリュームのどの領域を担当しているかを示す。
【０１０８】
図１０は、ページ状態の組合せテーブルＴ２０と、ページの状態遷移テーブルＴ２１とを示す説明図である。図９に示す管理テーブルＴ１９について述べたように、ページの割当て状態には「済」と「未」の２つの状態があり、ページの初期化状態にも「済」と「未」の２つの状態がある。従って、ページ割当て状態とページ初期化状態の組合せパターンは、合計４つとなる。
【０１０９】
未だ割当てされておらず、かつ、初期化もされていない場合、そのページの状態は「初期化中」となる。未だ割当てされていないが、初期化は完了している場合、そのページの状態は「空き」となる。既に割り当てられているが、未だ初期化されていない状態は、本実施例では、存在しない。本実施例では、後述のように、ＡＯＵボリュームに割り当てられるページは、事前に初期化処理される。既に割り当てられており、かつ、初期化処理も終了している場合、そのページの状態は「使用中」となる。
【０１１０】
ページの状態遷移テーブルＴ２１には、各ページ状態の関係が示されている。例えば、「０００・・・」等の所定のフォーマットパターンをページに書き込んで初期化させる初期化中状態のページは、その初期化処理が完了すると、空き状態に遷移する。空き状態のページがＡＯＵボリュームに割り当てられると、使用中状態に遷移する。使用中状態のページがＡＯＵボリュームへの割当てから解放されると、初期化状態に遷移する。
【０１１１】
図１１は、プールボリュームを管理するテーブルＴ２２を示す。管理テーブルＴ２２は、ＡＯＵプールＩＤと、ＡＯＵプール内に含まれるボリュームのＬＤＥＶ−ＩＤとを管理する。
【０１１２】
図１２は、ローカルコピーペアを管理するテーブルＴ２３を示す。ローカルコピーペアとは、同一ストレージ内の複数ボリューム間で、データをコピーすることである。図中、正ボリュームをＰＶＯＬと示し、副ボリュームをＳＶＯＬと示す。また、ビットマップをＢＭと示す。
【０１１３】
管理テーブルＴ２３は、例えば、ペアＩＤと、正ボリュームのＬＤＥＶ−ＩＤと、副ボリュームのＬＤＥＶ−ＩＤと、コンシステンシグループＩＤと、ペア状態と、差分ビットマップへのポインタとの、各項目を管理する。
【０１１４】
「ペアＩＤ」は、ローカルコピーペアを識別するための情報である。「正ボリュームのＬＤＥＶ−ＩＤ」は、正ボリュームを特定するための情報である。「副ボリュームのＬＤＥＶ−ＩＤ」は、副ボリュームを特定するための情報である。「コンシステンシグループＩＤ」は、関連性のあるボリュームをグループ化して管理するためのコンシステンシグループを特定する情報である。「ペア状態」は、例えば、「スプリット」や「リシンク」等のような、ローカルコピーペアの状態を示す。「差分ビットマップへのポインタ」は、正ボリュームの記憶内容と副ボリュームの記憶内容との差分を管理するための差分ビットマップを特定する。各コピーペア毎にそれぞれ差分ビットマップが用意される。
【０１１５】
図１３は、リモートコピーペアを管理するテーブルＴ２４を示す。リモートコピーペアとは、それぞれ異なるストレージに設けられている複数のボリューム間で、データをコピーすることである。
【０１１６】
管理テーブルＴ２４は、例えば、ペアＩＤと、正ボリュームと、副ボリュームと、コンシステンシグループＩＤと、ペア状態と、差分ビットマップへのポインタとの、各項目を管理する。
【０１１７】
「ペアＩＤ」は、リモートコピーペアを識別するための情報である。「正ボリューム」は、リモートコピーペアの正ボリュームに関する情報を示し、「ＤＫＣ−ＩＤ」と「ＬＤＥＶ−ＩＤ」とのサブ項目を含む。「ＤＫＣ−ＩＤ」は、正ボリュームが存在するストレージを特定するための情報である。「ＬＤＥＶ−ＩＤ」は、正ボリュームを特定するための情報である。
【０１１８】
「副ボリューム」は、リモートコピーペアの副ボリュームに関する情報を示し、上記同様に、「ＤＫＣ−ＩＤ」と「ＬＤＥＶ−ＩＤ」とのサブ項目を含む。「ＤＫＣ−ＩＤ」は、副ボリュームが存在するストレージを特定する情報である。「ＬＤＥＶ−ＩＤ」は、副ボリュームを特定する情報である。
【０１１９】
「コンシステンシグループＩＤ」は、上述の通り、関連性のあるボリューム群をグループ管理するためのコンシステンシグループを特定する情報である。「ペア状態」は、リモートコピーペアの状態を示す。「差分ビットマップへのポインタ」は、正ボリュームの記憶内容と副ボリュームの記憶内容との差分を管理する差分ビットマップを特定するための情報である。各リモートコピーペア毎に差分ビットマップがそれぞれ用意される。
【０１２０】
図１４は、外部ストレージ２００の有する機能を管理するテーブルＴ２５と、その機能の詳細を管理するテーブルＴ２６とを示す。図中では、インターフェースをＩ／Ｆと略記する。各テーブルＴ２５，Ｔ２６は、例えば、ストレージシステムの管理者によって手動で設定される。自動的にテーブルＴ２５，Ｔ２６の全部または一部を作成可能な場合、そのようにしてもよい。
【０１２１】
管理テーブルＴ２５は、ＤＫＡＣ−ＩＤと、機能情報との項目を管理する。「ＤＫＣ−ＩＤ」は、外部ストレージ２００をストレージシステム内で特定する情報である。「機能情報」には、その外部ストレージ２００が備えている各機能を特定するための値が設定される。
【０１２２】
管理テーブルＴ２６は、例えば、機能名と、詳細と、値との各項目を管理する。「機能名」は、外部ストレージ２００の有する機能の名称である。機能名としては、例えば、「ＬＤＥＶフォーマット」、「シュレッド」、「ＡＯＵ」が挙げられる。
【０１２３】
「ＬＤＥＶフォーマット」とは、ボリュームを初期化させる機能である。ＬＤＥＶフォーマットの詳細には、例えば、「フォーマットパターン」と、「フォーマット指示Ｉ／Ｆ」と、「ボリューム全体のフォーマット」と、「範囲指定フォーマット」と、「パターン指定フォーマット」とが含まれる。
【０１２４】
「フォーマットパターン」とは、ボリュームをフォーマットするために使用されるデータのパターンである。例えば、「０」または「１」のいずれかのビット列からなるパターンや「０１０１」のような特定のビット列からなるパターンなどが使用される。「フォーマット指示Ｉ／Ｆ」とは、メインストレージ１００からのフォーマット指示を受け付けるためのＩ／Ｆの有無を示す。フォーマット指示Ｉ／Ｆが有る場合、メインストレージ１００は、そのフォーマット指示Ｉ／Ｆを介して、外部ストレージ２００に外部ストレージ内のボリュームのフォーマットを指示することができる。「ボリューム全体のフォーマット」とは、外部ストレージ２００が外部ストレージ内のボリュームの全体をフォーマットできるか否かを示す。「範囲指定フォーマット」は、外部ストレージ２００が、外部ストレージ内のボリュームの全体のうち特定の範囲についてのみフォーマット可能か否かを示す。「パターン指定フォーマット」は、外部ストレージ２００が、メインストレージ１００から指定されたフォーマットパターン（０または１など）で、外部ストレージ内のボリュームをフォーマット可能か否かを示す。
【０１２５】
「シュレッド」とは、ボリュームの記憶内容を再現不能なレベルまで消去させる機能である。シュレッドの詳細には、例えば、「シュレッド指示Ｉ／Ｆ」と、「デフォルトシュレッドパターン」と、「ボリューム全体のシュレッド」と、「範囲指定シュレッド」と、「パターン指定シュレッド」が含まれる。
【０１２６】
「シュレッド指示Ｉ／Ｆ」は、メインストレージ１００からのシュレッド指示を受け付けるためのＩ／Ｆの有無を示す。シュレッド指示Ｉ／Ｆが有る場合、メインストレージ１００は、そのフォーマット指示Ｉ／Ｆを介して、外部ストレージ２００に外部ストレージ内のボリュームのシュレッドを指示することができる。
【０１２７】
「デフォルトシュレッドパターン」とは、外部ストレージがシュレッド処理を行う場合の、デフォルトのシュレッドパターンを示す。シュレッドパターンとしては、例えばシュレッド時に行う書き込み回数と各書き込みのデータ列パターンで表現される。データ列としては、例えば、ビット０のデータ列、ビット１のデータ列、「０１０１」のような特定のビット列、ビット０とビット１がランダムに出現するデータ列を挙げることができる。シュレッドパターンとして例えば、書き込み回数が３回、各回のデータ列が「０」→「１」→「０」などになる。
【０１２８】
「ボリューム全体のシュレッド」とは、外部ストレージ２００が外部ストレージ内のボリュームの全体をシュレッドできるか否かを示す。「範囲指定シュレッド」は、外部ストレージ２００が、外部ストレージ内のボリュームの全体のうち特定の範囲についてのみシュレッド可能か否かを示す。「パターン指定シュレッド」とは、外部ストレージ２００がメインストレージ１００から指定されたシュレッドパターンでシュレッドできるか否かを示す。
【０１２９】
「ＡＯＵ」とは、ライトアクセスに応じてプール内のページを動的に割り当てることにより、仮想的にボリュームを生成する機能である。ＡＯＵの詳細には、例えば、「ＡＯＵ機能」、「ページサイズ」、「領域解放Ｉ／Ｆ」、「パターン指定領域解放」が含まれる。
【０１３０】
「ＡＯＵ機能」は、外部ストレージ２００がＡＯＵボリュームを制御するための機能を備えているか否かを示す。「ページサイズ」は、ＡＯＵボリュームを構成する各ページのサイズを示す。「領域解放Ｉ／Ｆ」は、メインストレージ１００からの領域解放指示を受け付けるためのＩ／Ｆの有無を示す。領域解放Ｉ／Ｆが有る場合、メインストレージ１００は、その領域解放Ｉ／Ｆを介して、外部ストレージ２００に外部ストレージ内のＡＯＵボリュームに割り当てられている各ページの解放を指示できる。「パターン指定領域解放」は、領域解放した領域をリードした際に、領域解放時に指定されたデータパターン(「０」や「１」や特定のデータ列など)で応答することをできるか否かを示す。
【０１３１】
図１５〜図３０に基づいてストレージシステムの動作を説明する。なお、以下に述べる各フローチャートは、それぞれの処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。また、いわゆる当業者であれば、図示されたステップの変更、削除、追加を行うことができるであろう。
【０１３２】
図１５は、メインストレージ１００と外部ストレージ２００とを外部接続させるための処理を示す。本処理は、第１コントローラ１１０により実行される。第１コントローラ１１０は、ストレージシステム内の各ポートをスキャンすることにより、ストレージシステム内に存在する各ボリュームを検索する（Ｓ１０）。
【０１３３】
第１コントローラ１１０は、検索された各ボリュームについて、Inquiryコマンドをそれぞれ発行することにより、ボリューム種別等を問い合わせる（Ｓ１１）。さらに、第１コントローラ１１０は、「READ
Capacity」コマンドを発行することにより、各ボリュームのサイズをそれぞれ取得する（Ｓ１２）。
【０１３４】
第１コントローラ１１０は、検索された各ボリュームについて、そのボリューム種別が実ボリュームなのかＡＯＵボリュームなのかを判別する（Ｓ１３）。第１コントローラ１１０は、各ボリュームからのInquiryコマンドに対する応答に基づいて、各ボリュームの種別を判定する。実ボリュームであると判定された場合、第１コントローラ１１０は、ＥＤＥＶ１２２Ｅの種別とＬＤＥＶ１２３の種別とを、「外部の実ボリューム」であると設定する（Ｓ１４）。外部の実ボリュームとは、外部ストレージ２００内の実ボリュームという意味である。ＡＯＵボリュームであると判定された場合、第１コントローラ１１０は、ＥＤＥＶ１２２Ｅの種別とＬＤＥＶ１２３の種別とを、「外部のＡＯＵボリューム」であると設定する（Ｓ１５）。外部のＡＯＵボリュームとは、外部ストレージ２００内のＡＯＵボリュームという意味である。
【０１３５】
第１コントローラ１１０は、Ｓ１２で取得したサイズに基づいて、ＥＤＥＶ１２２ＥのサイズとＬＤＥＶ１２３のサイズをそれぞれ設定する（Ｓ１６）。第１コントローラ１１０は、ＬＤＥＶ１２３のボリューム状態を「フォーマット済」かつ「書込み無し」に設定する（Ｓ１７）。
【０１３６】
図１６は、プールボリュームを設定するための処理を示すフローチャートである。第１コントローラ１１０は、対象ボリュームが既にプールボリュームとして設定されているか否かを判定する（Ｓ２０）。対象ボリュームが既にプールボリュームとして使用されている場合（S20:YES）、エラー処理を行う（Ｓ２６）。エラー処理では、例えば、エラーメッセージを出力させる。
【０１３７】
対象ボリュームがプールボリュームとして使用されていない場合（S20:NO）、第１コントローラ１１０は、さらに、対象ボリュームがＬＵに対応付けられているか否かを判定する（Ｓ２１）。対象ボリュームがＬＵに対応付けられている場合（S21:YES）、第１コントローラ１１０はエラー処理を行う（Ｓ２６）。
【０１３８】
対象ボリュームがＬＵに対応付けられていない場合（S21:NO）、第１コントローラ１１０は、対象ボリュームをフォーマットし（Ｓ２２）、さらに、対象ボリュームの種別を「プールボリューム」に設定する（Ｓ２３）。第１コントローラ１１０は、プールボリューム管理テーブルＴ２２を設定し（Ｓ２４）、さらに、プール管理テーブルＴ１７を更新させる（Ｓ２５）。
【０１３９】
図１７は、フォーマット処理を示すフローチャートである。第１コントローラ１１０は、対象ボリュームがフォーマット可能な状態か否かを判定する（Ｓ３０）。対象ボリュームがフォーマット不可な状態(例えばシュレッド中など)の場合（S30:NO）、第１コントローラ１１０は、エラー処理を行う（Ｓ３５）。エラー処理では、例えば、エラーメッセージを管理者に向けて出力させる。
【０１４０】
対象ボリュームがフォーマット可能な状態の場合（S30:YES）、第１コントローラ１１０は、ボリューム状態を「フォーマット中（テーブルＴ２１に示す「初期化中」）」に変更させる（Ｓ３１）。
【０１４１】
続けて、第１コントローラ１１０は、対象ボリュームが内部ボリュームであるか、それとも外部接続ボリュームであるかを判定する（Ｓ３２）。内部ボリュームであると判定された場合、第１コントローラ１１０は、その内部ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ３３）。
【０１４２】
その内部ボリュームが実ボリュームの場合、第１コントローラ１１０は、図１８に示す内部実ボリュームのフォーマット処理を実行する（Ｓ４０）。その内部ボリュームがＡＯＵボリュームの場合、第１コントローラ１１０は、図１９に示す内部ＡＯＵボリュームのフォーマット処理を実行する（Ｓ５０）。
【０１４３】
ところで、対象ボリュームが外部接続ボリュームであると判定された場合（Ｓ３２）、第１コントローラ１１０は、その外部接続ボリュームに接続されている外部ボリュームが、実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ３４）。その外部ボリュームが実ボリュームの場合、第１コントローラ１１０は、図２０に示す外部実ボリュームのフォーマット処理を実行する（Ｓ６０）。その外部ボリュームがＡＯＵボリュームの場合、第１コントローラ１１０は、図２１に示す外部ＡＯＵボリュームのフォーマット処理を実行する（Ｓ７０）。
【０１４４】
図１８は、ストレージ内部の実ボリュームをフォーマットする処理を示すフローチャートである。第１コントローラ１１０は、処理対象の内部実ボリュームの全体について、所定のフォーマットパターンを書き込む（Ｓ４１）。第１コントローラ１１０は、その内部実ボリュームのフォーマット状態（初期化状態）を、「済」に変更させる（Ｓ４２）。さらに、第１コントローラ１１０は、書込み状態を「無し」に変更させる（Ｓ４３）。
【０１４５】
図１９は、内部ＡＯＵボリュームのフォーマット処理を示すフローチャートである。第１コントローラ１１０は、内部ＡＯＵボリュームに割り当てられているページを解放させて、そのページ状態を「初期化中」に変更させる（Ｓ５１）。
【０１４６】
さらに、第１コントローラ１１０は、その内部ＡＯＵボリュームのフォーマット状態を「済（フォーマット済）」に変更させ（Ｓ５２）、その内部ＡＯＵボリュームの書込み状態を「無し（書き込み無し）」に変更させる（Ｓ５３）。
【０１４７】
ページの初期化は、Ｓ５１〜Ｓ５３と非同期で実施される。第１コントローラ１１０は、ＡＯＵプール内に管理されている各ページのうち初期化中に変更されたページ（即ち、解放されたページ）に、所定のフォーマットパターンを書き込む（Ｓ５４）。第１コントローラ１１０は、フォーマットパターンの書き込まれたページの状態を「初期化中」から「空き」に変更させる（Ｓ５５）。
【０１４８】
図２０は、外部実ボリュームをフォーマット処理するフローチャートである。第１コントローラ１１０は、テーブルＴ２５，Ｔ２６に基づいて、外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えているか否かを判定する（Ｓ６１）。
【０１４９】
外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えている場合（S61:YES）、第１コントローラ１１０は、外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定フォーマットが可能か否かを判定する（Ｓ６６）。フォーマットパターンが同一またはパターン指定フォーマットが可能な場合（S66:YES）、第１コントローラ１１０は、外部ストレージ２００に（第２コントローラ２１０に）、外部実ボリュームについてのフォーマットを指示する（Ｓ６２）。その指示を出した後、第１コントローラ１１０は、フォーマット状態を「済」に変更させ（Ｓ６３）、さらに、書込み状態を「無し」に変更させる（Ｓ６４）。外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えない場合（S61:NO）や、フォーマットパターンが異なりかつパターン指定フォーマットが不可の場合（S66:NO）、第１コントローラ１１０は、外部ストレージ２００にライトコマンドを発行し、フォーマット対象の外部実ボリュームの全体に所定のフォーマットパターンを書き込ませる（Ｓ６５）。
【０１５０】
図２１は、外部ＡＯＵボリュームのフォーマット処理を示すフローチャートである。第１コントローラ１１０は、外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えているか否かを判定する（Ｓ７１）。外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えている場合（S71:YES）、第１コントローラ１１０は、外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定フォーマットが可能か否かを判定する（Ｓ７８）。フォーマットパターンが同一またはパターン指定フォーマットが可能な場合（S78:YES）、第１コントローラ１１０は、外部ストレージ２００に外部ＡＯＵボリュームのフォーマットを指示する（Ｓ７２）。そして、第１コントローラ１１０は、外部ＡＯＵボリュームのフォーマット状態を「済」に変更させ（Ｓ７３）、さらに、その書込み状態を「無し」に変更させる（Ｓ７４）。
【０１５１】
これに対し、外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えていない場合（S71:NO）や、フォーマットパターンが異なりかつパターン指定フォーマットが不可の場合（S78:NO）、第１コントローラ１１０は、外部ストレージ２００が領域解放Ｉ／Ｆを備えているか否かを判定する（Ｓ７５）。外部ストレージ２００が領域解放Ｉ／Ｆを備えている場合（S75:YES）、第１コントローラ１１０は、外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定の領域解放が可能か否かを判定する（Ｓ７９）。フォーマットパターンが同一またはパターン指定の領域解放が可能な場合（S79:YES）、第１コントローラ１１０は、外部ストレージ２００に対して、外部ＡＯＵボリュームに割り当てられているページの解放を要求する（Ｓ７６）。そして、第１コントローラ１１０は、Ｓ７３，Ｓ７４を実行する。
【０１５２】
ところで、外部ストレージ２００が領域解放Ｉ／Ｆをも備えていない場合（S75:NO）や、フォーマットパターンが異なりかつパターン指定の領域解放が不可の場合（S79:NO）、第１コントローラ１１０は、外部ストレージ２００にライトコマンドを発行し、フォーマット対象の外部ＡＯＵボリュームの全体に、所定のフォーマットパターンを書き込ませる（Ｓ７７）。
【０１５３】
図２２は、シュレッド処理のフローチャートである。シュレッド処理とは、ビット０のデータ列やビット１のデータ列などの特定パターンのデータ列、あるいは、ビット０とビット１とがランダムに出現するデータ列を所定回数だけボリュームに書き込むことにより、ボリュームに記憶されたデータを消去させる処理である。
【０１５４】
第１コントローラ１１０は、対象ボリュームがプールボリュームとして設定されているか否かを判定する（Ｓ９０）。対象ボリュームがプールボリュームとして設定されている場合（S90:YES）、第１コントローラ１１０は、エラー処理を実行する（Ｓ９６）。対象ボリュームがプールボリュームでは無い場合（S90:NO）、第１コントローラ１１０は、対象ボリュームがシュレッド可能な状態か否かを判定する（Ｓ９１）。対象ボリュームがシュレッド不可の状態（例えばフォーマット中など）の場合（S91:YES）、第１コントローラ１１０は、エラー処理を実行する（Ｓ９６）。
【０１５５】
対象ボリュームがシュレッド可能な状態の場合（S91:NO）、第１コントローラ１１０は、対象ボリュームの状態を「シュレッド中」に変更させ（Ｓ９２）、対象ボリュームが内部ボリュームなのか外部接続ボリュームなのかを判別する（Ｓ９３）。
【０１５６】
内部ボリュームであると判定された場合、第１コントローラ１１０は、その内部ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判別する（Ｓ９４）。その内部ボリュームが実ボリュームであると判定された場合、図２３に示す内部実ボリュームのシュレッド処理が実行される（Ｓ１００）。その内部ボリュームがＡＯＵボリュームであると判定された場合、図２４に示す内部ＡＯＵボリュームのシュレッド処理が実行される（Ｓ１１０）。
【０１５７】
対象ボリュームが外部接続ボリュームであると判定された場合（Ｓ９３）、第１コントローラ１１０は、その外部接続ボリュームに対応付けられている外部ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判別する（Ｓ９５）。その外部ボリュームが実ボリュームであると判定された場合、図２５に示す外部実ボリュームのシュレッド処理が実行される（Ｓ１２０）。その外部ボリュームがＡＯＵボリュームであると判定された場合、図２６に示す外部ＡＯＵボリュームのシュレッド処理が実行される（Ｓ１３０）。
【０１５８】
図２３は、内部実ボリュームのシュレッド処理を示すフローチャートである。第１コントローラ１１０は、内部実ボリュームの全体に、所定のシュレッドパターンを書込み（Ｓ１０１）、その内部実ボリュームのシュレッド状態を「済（シュレッド済）」に変更させる（Ｓ１０２）。
【０１５９】
図２４は、内部ＡＯＵボリュームのシュレッド処理を示すフローチャートである。第１コントローラ１１０は、内部ＡＯＵボリュームに割り当てられている各ページに所定のシュレッドパターンを書き込む（Ｓ１１１）。
【０１６０】
第１コントローラ１１０は、最終のシュレッドパターンがフォーマットパターンと一致するか否かを判定する（Ｓ１１２）。最終のシュレッドパターンとは、ボリュームに複数回書き込まれるシュレッドパターンのうち、最後に書き込まれるデータ列のパターンを意味する。内部ＡＯＵボリュームに書き込まれる最後のシュレッドパターンが、その内部ＡＯＵボリュームのフォーマットパターンと一致する場合（S112:YES）、その内部ＡＯＵボリュームに割り当てられていた各ページをフォーマットする必要はない。そこで、第１コントローラ１１０は、その内部ＡＯＵボリュームに割り当てられていた各ページを解放し、そのページ状態を「空き」に変更させる（Ｓ１１３）。第１コントローラ１１０は、その内部ＡＯＵボリュームのシュレッド状態を「済」に変更させる（Ｓ１１４）。
【０１６１】
図２５は、外部実ボリュームのシュレッド処理を示すフローチャートである。第１コントローラ１１０は、外部ストレージ２００がシュレッド指示Ｉ／Ｆを備えているか否かを判定する（Ｓ１２１）。
【０１６２】
外部ストレージ２００がシュレッド指示Ｉ／Ｆを備えている場合（S121:YES）、第１コントローラ１１０は、外部ストレージ２００のシュレッドパターンが所定のシュレッドパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定シュレッドが可能か否かを判定する（Ｓ１２５）。シュレッドパターンが同一またはパターン指定シュレッドが可能な場合（S125:YES）、第１コントローラ１１０は、外部ストレージ２００に、外部実ボリュームのシュレッド処理の実行を指示する（Ｓ１２４）。
【０１６３】
外部ストレージ２００がシュレッド指示Ｉ／Ｆを備えていない場合（S121:NO）や、シュレッドパターンが異なりかつパターン指定シュレッドが不可の場合（S125:NO）、第１コントローラ１１０は、外部ストレージ２００にライトコマンドを発行し、外部実ボリュームの全体に所定のシュレッドパターンを所定回数だけ書き込ませる（Ｓ１２２）。そして、第１コントローラ１１０は、外部実ボリュームのシュレッド状態を「済」に変更させる（Ｓ１２３）。
【０１６４】
図２６は、外部ＡＯＵボリュームのシュレッド処理を示すフローチャートである。第１コントローラ１１０は、外部ストレージ２００がシュレッド指示Ｉ／Ｆを備えているか否かを判定する（Ｓ１３１）。外部ストレージ２００がシュレッド指示Ｉ／Ｆを備えている場合（S131:YES）、第１コントローラ１１０は、外部ストレージ２００のシュレッドパターンが所定のシュレッドパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定シュレッドが可能か否かを判定する（Ｓ１３３）。シュレッドパターンが同一またはパターン指定シュレッドが可能な場合（S133:YES）、第１コントローラ１１０は、外部ストレージ２００に、外部ＡＯＵボリュームのシュレッド処理の実行を指示する（Ｓ１３７）。第１コントローラ１１０は、外部ＡＯＵボリュームのシュレッド状態を「済」に変更させる（Ｓ１３６）。
【０１６５】
これに対し、外部ストレージ２００がシュレッド指示Ｉ／Ｆを備えていない場合（S131:NO）、第１コントローラ１１０は、外部ストレージ２００にライトコマンドを発行し、外部ＡＯＵボリュームの全体に所定のシュレッドパターンを所定回数だけ書き込ませる（Ｓ１３２）。
【０１６６】
第１コントローラ１１０は、外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えているか否かを判定する（Ｓ１３４）。
【０１６７】
外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えている場合（S134:YES）、第１コントローラ１１０は、外部ストレージ２００のフォーマットパターンが最終シュレッドパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定フォーマットが可能か否かを判定する（Ｓ１４０）。フォーマットパターンが同一またはパターン指定フォーマットが可能な場合（S140:YES）、第１コントローラ１１０は、外部ストレージ２００に外部ＡＯＵボリュームのフォーマット処理の実行を指示する（Ｓ１３５）。第１コントローラ１１０は、外部ＡＯＵボリュームのシュレッド状態を「済」に変更させ（Ｓ１３６）、本処理を終了する。
【０１６８】
外部ストレージ２００がフォーマット指示Ｉ／Ｆを備えていない場合（S134:NO）や、フォーマットパターンが最終シュレッドパターンと異なりかつパターン指定フォーマットが不可の場合（S140:NO）、第１コントローラ１１０は、外部ストレージ２００が領域解放Ｉ／Ｆを備えているか否かを判定する（Ｓ１３８）。外部ストレージ２００が領域解放Ｉ／Ｆを備えていない場合（S138:NO）、第１コントローラ１１０は、外部ストレージ２００のフォーマットパターンが最終シュレッドパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定の領域解放が可能か否かを判定する（Ｓ１４１）。フォーマットパターンが最終シュレッドパターンと同一またはパターン指定の領域解放が可能な場合（S141:YES）、第１コントローラ１１０は、外部ＡＯＵボリュームのシュレッド状態を「済」に変更させて（Ｓ１３６）、本処理を終了する。
【０１６９】
外部ストレージ２００が領域解放Ｉ／Ｆを備えている場合（S138:YES）や、フォーマットパターンが最終シュレッドパターンと異なりかつパターン指定の領域解放が不可の場合（S141:NO）、第１コントローラ１１０は、外部ストレージ２００に、外部ＡＯＵボリュームに割り当てられている各ページの解放を要求する（Ｓ１３９）。第１コントローラ１１０は、外部ＡＯＵボリュームのシュレッド状態を「済」に変更させて（Ｓ１３６）、本処理を終了する。
【０１７０】
図２７は、データボリュームにライトデータを書き込むためのライト処理を示すフローチャートである。まず最初に、第１コントローラ１１０は、書込み対象のデータボリュームについて、ＬＤＥＶ管理テーブルＴ１０のボリューム状態を「書込み有り」に設定する（Ｓ１５０）。
【０１７１】
次に、第１コントローラ１１０は、書込み対象データボリュームについてコピーペアが形成されており、かつ、差分管理中であるか否かを判定する（Ｓ１５１）。コピーペア形成中かつ差分管理中の場合（S151:YES）、第１コントローラ１１０は、差分管理用のビットマップを更新させる（Ｓ１５２）。書込み対象のデータボリュームについてコピーペアが形成されていない場合、または、コピーペアは形成されているが差分管理が停止されている場合の、いずれかの場合（S151:NO）、Ｓ１５２はスキップされる。
【０１７２】
第１コントローラ１１０は、書込み対象データボリュームが内部ボリュームなのか外部接続ボリュームなのかを判定する（Ｓ１５３）。書込み対象データボリュームが内部ボリュームの場合、第１コントローラ１１０は、書込み対象データボリュームが実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ１５４）。
【０１７３】
書込み対象データボリュームがＡＯＵボリュームの場合、第１コントローラ１１０は、書込み対象データボリューム内の書込み対象領域に、ページが割り当てられているか否かを判定する（Ｓ１５５）。
【０１７４】
書込み対象領域に未だページが割り当てられていない場合（S155:NO）、第１コントローラ１１０は、空いているページをプール内から選択して、書込み対象データボリュームの書込み対象領域に割り当てる（Ｓ１５６）。つまり、新たな書込みの場合は、先にページを割り当てる。一方、書込み対象領域にページが既に割り当てられている場合（S155:YES）、Ｓ１５６はスキップされる。
【０１７５】
第１コントローラ１１０は、ホスト１０からライトデータを受領し（Ｓ１５７）、キャッシュメモリ１１３に格納する。次に、第１コントローラ１１０は、書込み対象領域が、メインストレージ１００内に有るのか、それとも外部ストレージ２００内に有るのかを判別する（Ｓ１５８）。書込み対象領域とは書込み対象データボリューム（ＬＤＥＶ１２３Ａ）が内部実ボリュームまたは外部ボリュームの場合はＬＤＥＶ１２３Ａに対応するＶＤＥＶ１２２ＶまたはＥＤＥＶ１２２Ｅであるし、書込み対象ボリューム（ＬＤＥＶ１２３）が内部ＡＯＵボリュームの場合は対応する割り当てられたプールページが対応するプールボリューム１２３ＰのＶＤＥＶ１２２ＶまたはＥＶＤＥＶ１２２Ｅである。書込み対象データボリューム１２３Ａが内部ＡＯＵボリュームの場合は、対応するページのプールボリューム１２３Ｐが内部ボリュームか外部ボリュームかによって処理が異なる。
【０１７６】
書込み対象領域がメインストレージ１００内に存在する場合、第１コントローラ１１０は、キャッシュメモリ１１３からその書込み対象領域に対応するＰＤＥＶ１２１にライトデータを書込み（デステージ）、ホスト１０に書込み完了を報告する（Ｓ１５９）。書込み対象領域が外部ストレージ２００内に存在する場合、第１コントローラ１１０は、ライトデータを外部ストレージ２００に転送して外部ボリュームに書き込ませる（Ｓ１６０）。
【０１７７】
一方、書込み対象データボリュームがメインストレージ１００内の実ボリュームである場合（Ｓ１５４）、第１コントローラ１１０は、ホスト１０からライトデータを受信し（Ｓ１６１）、そのライトデータをデステージさせる（Ｓ１６２）。
【０１７８】
書込み対象データボリュームが外部接続ボリュームの場合（Ｓ１５３）、第１コントローラ１１０は、ホスト１０からライトデータを受領して（Ｓ１６３）、そのライトデータを外部ストレージ２００に転送して外部ボリュームに書き込ませる（Ｓ１６４）。
【０１７９】
なお、本実施例のように第１コントローラ１１０がキャッシュメモリ１１３を備えている場合は、ホスト１０から受信したライトデータをキャッシュメモリ１１３に格納させた後で、ホスト１０にライトコマンドの処理完了を報告できる。その後、適当なタイミングで、デステージや外部ストレージ２００への書込みを行うことができる。このように、ホスト１０から受信したライトコマンドの処理と、デステージや外部ストレージ２００への書込みを非同期で行うことができる。これに対し、デステージや外部ストレージ２００への書込みを完了させてから、ホスト１０にライトコマンドの処理完了を報告することもできる。このような処理を同期処理と呼ぶ。
【０１８０】
図２８は、ペア形成コピー処理を示すフローチャートである。ペア形成コピー処理とは、ボリューム（正ボリューム）の複製（副ボリューム）を作成するためにコピーペアを形成する正副のボリューム間で初期コピーを完了させる処理である。第１コントローラ１１０は、副ボリュームの書込み状態を「有り」に設定し（Ｓ１７０）、正ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ１７１）。
【０１８１】
正ボリュームが実ボリュームの場合、第１コントローラ１１０は、正ボリュームの全体を副ボリュームコピーさせる（Ｓ１７２）。続いて、第１コントローラ１１０は、副ボリュームへの書込み対象領域（コピー対象領域）がメインストレージ１００内に有るのか外部ストレージ２００内に有るのかを判定する（Ｓ１７３）。
【０１８２】
メインストレージ１００内に書込み対象領域が有る場合、第１コントローラ１１０はデステージする（Ｓ１７４）。外部ストレージ２００内に書込み対象領域が有る場合、第１コントローラ１１０は、コピーデータ（正ボリュームのデータ）を外部ストレージ２００に転送して書き込ませる（Ｓ１７５）。
【０１８３】
正ボリュームがＡＯＵボリュームの場合（Ｓ１７１）、第１コントローラ１１０は、副ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ１７６）。副ボリュームが実ボリュームの場合、第１コントローラ１１０は、正ボリューム（ＡＯＵボリューム）においてページが割り当てられていない領域に対応する、副ボリュームの領域に所定のフォーマットパターンを書き込む（Ｓ１７７）。つまり、正ボリューム内でデータの書き込まれていない領域については、副ボリューム内の対応する領域に「０」を書き込む（フォーマットパターンが０の場合）。
【０１８４】
そして、第１コントローラ１１０は、正ボリュームにおいてページの割り当てられている領域のデータを、副ボリュームにコピーし（Ｓ１７８）、Ｓ１７３に移る。
【０１８５】
副ボリュームがＡＯＵボリュームの場合（Ｓ１７６）、第１コントローラ１１０は、副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判別する（Ｓ１７９）。副ボリュームが内部ボリュームの場合、つまり、内部ＡＯＵボリュームの場合、第１コントローラ１１０は、正ボリューム（ＡＯＵボリューム）内においてページの割り当てられていない領域に対応する、副ボリューム（ＡＯＵボリューム）の割当済みページを解放させる（Ｓ１８０）。即ち、第１コントローラ１１０は、正ボリュームにデータの書き込まれていない領域について、副ボリュームの対応する領域に割り当てられているページをプールに戻す。その後、第１コントローラ１１０は、Ｓ１７８を実行する。
【０１８６】
副ボリュームが外部接続ボリュームの場合（Ｓ１７９）、第１コントローラ１１０は、外部接続ボリュームに対応する外部ストレージが、領域解放Ｉ／Ｆまたはフォーマット指示Ｉ／Ｆのいずれかを備えているか否か、フォーマットパターンが所定のフォーマットパターンと同一か否か、パターンが同一でない場合はパターン指定フォーマットやパターン指定領域解放が可能か否かを判定する（Ｓ１８１）。
【０１８７】
外部ストレージ２００が領域解放Ｉ／Ｆまたはフォーマット指示Ｉ／Ｆのいずれかを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定領域解放が可能な場合（S181:YES）、第１コントローラ１１０は、外部ストレージ２００に領域解放またはフォーマットのいずれか一つを指示し（Ｓ１８２）、Ｓ１７８に移る。なお、キャッシュメモリ１１３を利用して、デステージや外部ストレージへのコピーを、ペア形成コピーと非同期で処理可能な点は前記と同様である。同期処理とするか非同期処理とするかは以下も同様であるため、特に言及しない。
【０１８８】
図２９は、ペアリシンクコピー処理を示すフローチャートである。ペアリシンクコピーとは、ボリュームペアを形成している正ボリュームの記憶内容と副ボリュームの記憶内容とを同期させるために、両ボリューム間に生じた差分を正ボリュームから副ボリュームにコピーする処理である。両ボリューム間に生じる差分は、差分管理用のビットマップ（差分ビットマップ）によって管理される。正ボリュームと副ボリュームとの間に差分が生じた場合、その差分の発生した領域に対応する、差分ビットマップの領域はオン状態に設定される。
【０１８９】
第１コントローラ１１０は、正ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判別する（Ｓ１９１）。正ボリュームが実ボリュームの場合、第１コントローラ１１０は、差分ビットマップ内のオン領域について、正ボリュームから副ボリュームにデータをコピーさせる（Ｓ１９２）。
【０１９０】
そして、第１コントローラ１１０は、副ボリューム内の書込み対象領域（コピー先対象領域）が内部ボリュームに存在するのか、それとも外部ボリュームに存在するのかを判別する（Ｓ１９３）。コピー先対象領域が内部ボリュームに存在する場合、第１コントローラ１１０は、デステージを実行する（Ｓ１９４）。コピー先対象領域が外部ボリュームに存在する場合、第１コントローラ１１０は、コピーデータを外部ストレージ２００に転送して書き込ませる（Ｓ１９５）。
【０１９１】
正ボリュームがＡＯＵボリュームの場合（Ｓ１９１）、第１コントローラ１１０は、副ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ１９６）。副ボリュームが実ボリュームの場合、第１コントローラ１１０は、差分ビットマップがオンになっている領域であって、かつ、正ボリュームにページが割り当てられていない領域、つまり前回ボリューム間でデータを同期させた以降に正ボリュームでページが解放された領域（以下、本処理において所定領域と呼ぶ）について、副ボリュームに所定のフォーマットパターンを書き込ませる（Ｓ１９７）。その後、Ｓ１９２に移る。
【０１９２】
副ボリュームがＡＯＵボリュームの場合（Ｓ１９６）、第１コントローラ１１０は、副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する（Ｓ１９８）。副ボリュームが内部ボリュームの場合、第１コントローラ１１０は、所定領域について、副ボリュームに割り当てられているページを解放させる（Ｓ１９９）。
【０１９３】
副ボリュームが外部接続ボリュームの場合、第１コントローラ１１０は、外部ストレージ２００が領域解放Ｉ／Ｆを備えているか否か、領域解放Ｉ／Ｆを備えている場合は外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定領域解放が可能か否かを判定する（Ｓ２００）。外部ストレージ２００が領域解放Ｉ／Ｆを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定領域解放が可能な場合（S200:YES）、第１コントローラ１１０は、外部ストレージ２００に、副ボリュームに割り当てられているページの解放を指示する（Ｓ２０１）。領域解放指示には、ボリュームを識別する情報（ＬＵＮ等）と解放する領域のボリューム内の範囲（先頭ＬＢＡとサイズ等）が含まれる。外部ストレージ２００は、外部ストレージ２００が管理するＡＯＵページのうち、領域解放指示された範囲に全て含まれるページを解放する。領域解放指示された範囲が外部ストレージ２００の管理するページの一部のみ含むページは、ページ内の解放指示範囲以外に有効なデータが含まれている場合があるため、ページ内の領域解放指示された範囲のみ所定のフォーマットデータで埋め、そのページを解放しない。そして、第１コントローラ１１０はＳ１９２に移る。一方、外部ストレージ２００が領域解放Ｉ／Ｆを備えていない場合（S200:NO）、第１コントローラ１１０はＳ１９２に移る。
【０１９４】
図３０は、ペアリストアコピー処理を示すフローチャートである。ペアリストアコピー処理とは、正ボリュームの記憶内容を復元させるために、両ボリューム間に生じた差分を副ボリュームから正ボリュームにコピーする処理である。
【０１９５】
第１コントローラ１１０は、副ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ２１１）。副ボリュームが実ボリュームの場合、第１コントローラ１１０は、差分ビットマップ内のオン領域について、副ボリュームから正ボリュームにデータをコピーさせる（Ｓ２１２）。
【０１９６】
そして、第１コントローラ１１０は、正ボリュームの書込み対象領域（コピー先対象領域）が内部ボリュームに有るのか、外部ボリュームに有るのかを判定する（Ｓ２１３）。コピー先対象領域が内部ボリュームにある場合、デステージが実施される（Ｓ２１４）。コピー先対象領域が外部ボリュームにある場合、コピーデータが外部ストレージ２００に転送されて書き込まれる（Ｓ２１５）。
【０１９７】
コピー元となる副ボリュームがＡＯＵボリュームの場合（Ｓ２１１）、第１コントローラ１１０は、副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する（Ｓ２１６）。副ボリュームが外部ＡＯＵボリュームの場合、Ｓ２１２に移る。
【０１９８】
副ボリュームが内部ＡＯＵボリュームの場合、第１コントローラ１１０は、コピー先となる正ボリュームが実ボリュームなのか、ＡＯＵボリュームなのかを判定する（Ｓ２１７）。正ボリュームが実ボリュームの場合、第１コントローラ１１０は、差分ビットマップがオンの領域であって、かつ、副ボリュームにページが割り当てられていない領域（以下、本処理において所定領域）について、正ボリュームに所定のフォーマットパターンを書き込ませる（Ｓ２１８）。
【０１９９】
正ボリュームがＡＯＵボリュームの場合（Ｓ２１７）、第１コントローラ１１０は、正ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する（Ｓ２１８）。正ボリュームが内部ＡＯＵボリュームの場合、第１コントローラ１１０は、所定領域について正ボリュームに割当済みのページを解放させる（Ｓ２２０）。そして、第１コントローラ１１０は、Ｓ２１２に移る。
【０２００】
正ボリュームが外部ＡＯＵボリュームの場合、第１コントローラ１１０は、外部ストレージ２００が領域解放Ｉ／Ｆを備えているか否か、領域解放Ｉ／Ｆを備えている場合は外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定領域解放が可能か否かを判定する（Ｓ２２１）。外部ストレージ２００が領域解放Ｉ／Ｆを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定領域解放が可能な場合（S221:YES）、第１コントローラ１１０は、所定領域についての領域解放を外部ストレージ２００に指示し（Ｓ２２２）、Ｓ２１２に移る。領域解放指示を受けた外部ストレージ２００の処理はペアリシンクコピー処理と同様であるので省略する。外部ストレージ２００が領域解放Ｉ／Ｆを備えていない場合（S221:NO）、Ｓ２１２に移る。
【０２０１】
以上詳述した通り、本実施例によれば、メインストレージ１００内の外部接続ボリュームに外部ストレージ２００内の外部ＡＯＵボリュームを対応付けることにより、ストレージシステム内の記憶資源を有効に利用できる。
【０２０２】
さらに、本実施例では、フォーマットコマンド、シュレッドコマンド、ペア形成コピーコマンド、ペアリシンクコマンド、ペアリストアコマンドが発行される場合に、できるだけ外部ボリュームへのライトアクセスが低減するように、コマンドを変換して外部ストレージ２００に指示する。
【０２０３】
例えば、外部ストレージ２００がフォーマット指示Ｉ／Ｆや領域解放Ｉ／Ｆを備えている場合、それらのＩ／Ｆを利用するコマンドを発行することにより、外部ボリュームの全体についてのライト処理が発生するのを未然に防止できる。この結果、外部ボリュームがＡＯＵボリュームの場合に、不要なページが割り当てられるのを防止することができ、ページを有効に使用することができる。
【実施例２】
【０２０４】
図３１〜図４５に基づいて、本発明の第２実施例を説明する。本実施例を含む以下の実施例は、上述した第１実施例の変形例に相当する。そこで、以下の各実施例では第１実施例との相違点を中心に説明する。本実施例では、内部ボリュームに関する更新と外部ボリュームに関する更新とを、第１コントローラ１１０内で管理する。
【０２０５】
図３１は、本実施例によるストレージシステムの要部を示す説明図である。第１コントローラ１１０は、内部ボリュームの更新を管理するための更新管理テーブルＴ３０Ａと、外部ボリュームの更新を管理するための更新管理テーブルＴ３０Ｂとを備える。以下、両テーブルを区別しない場合、更新管理テーブルＴ３０と呼ぶ。
【０２０６】
図３２は、更新管理テーブルＴ３０は、例えば、更新管理サイズと更新情報との各項目を管理する。「更新管理サイズ」とは、ボリュームの更新を管理する単位である。更新管理サイズは、ページサイズと同一に設定するのが好ましい。しかし、これに限らず、ページサイズと異なるサイズで更新の有無を管理する構成でもよい。「更新情報」は、各更新管理領域毎に、その状態を管理する項目である。
【０２０７】
更新情報の詳細はテーブルＴ３１に示されている。テーブルＴ３０，Ｔ３１は、更新された領域を管理するための更新ビットマップに該当する。テーブルＴ３１には、更新管理領域ＩＤと、書込み状態と、フォーマット状態との各項目が含まれる。「更新管理領域ＩＤ」とは、更新を管理する各領域を識別するための情報である。例えば、更新管理サイズとページサイズが同一の場合、各ボリュームを構成する総ページ数に等しい更新管理領域が設定される。
【０２０８】
「書込み状態」は、その更新管理領域についての書込みの有無を示す。「フォーマット状態」は、その更新管理領域についてフォーマットがされているか否かを示す。
【０２０９】
図３３は、本実施例によるＶＤＥＶ／ＥＤＥＶ管理テーブルＴ３２を示す。図８に示すテーブルＴ１３との相違は、その右端に示すように「フォーマットパターン」という項目を新たに備える点にある。「フォーマットパターン」は、各ＶＤＥＶやＥＤＥＶのフォーマットパターンを管理する項目である。
【０２１０】
図３４は、本実施例による外部接続設定処理のフローチャートである。図１５に示すフローチャートと異なり、第１コントローラ１１０は、Inquiryコマンドを発行することにより、各ボリュームの種別、ページサイズ、フォーマットパターンを各ボリュームに問い合わせる（Ｓ１１Ａ）。即ち、本実施例のInquiryコマンドは、第１実施例のそれよりも拡張されている。さらに、第１コントローラ１１０は、ＡＯＵボリュームの場合に（Ｓ１３）、Ｓ１１Ａで取得したページサイズやフォーマットパターンを、テーブルＴ３２に登録させる（Ｓ１８）。
【０２１１】
図３５は、本実施例による外部接続ボリュームへのライト処理を示すフローチャートである。第１コントローラ１１０は、ホスト１０からライトデータを受領すると、そのライトデータをキャッシュメモリ１１３に格納させる（Ｓ３００）。
【０２１２】
第１コントローラ１１０は、更新管理テーブルＴ３０Ｂを参照することにより、既に更新されている領域内での上書きであるか否かを判定する（Ｓ３０１）。上書きの場合（S301:YES）、第１コントローラ１１０は、外部ストレージ２００にライトコマンドを発行し、外部ボリュームにライトデータを書き込ませる（Ｓ３０２）。
【０２１３】
これに対し、上書きではない場合（S301:NO）、つまり、初めて更新される領域の場合、第１コントローラ１１０は、更新情報テーブルＴ３１内の更新対象領域について、その書込み状態を「有り」に変更する（Ｓ３０３）。
【０２１４】
さらに、第１コントローラ１１０は、テーブルＴ３１に基づいて、書込み対象領域（更新対象領域）がフォーマット済であるか否かを判定する（Ｓ３０４）。書込み対象領域がフォーマット済の場合（S304:YES）、Ｓ３０２に移る。書込み対象領域がフォーマットされていない場合（S304:NO）、第１コントローラ１１０は、更新管理サイズの領域において、ライトデータ以外の部分をフォーマットパターンで埋めて、更新対象領域のフォーマット状態を「フォーマット済」に変更してＳ３０２に移る。なお更新情報Ｔ３１で書込み状態のみ管理し、フォーマット状態を管理しない実施例も可能である。その場合、フォーマットは書き込み契機で行うため、書き込み状態が「無し」領域は必ず未フォーマット状態になる。図３５では、ステップＳ３０４がスキップされる(必ずフォーマット状態が「未」のフローになる)ことと、Ｓ３０５のフォーマット状態の変更処理がなくなることが異なる。更新情報Ｔ３１で書き込み状態と別にフォーマット状態を管理することで、書込みとは非同期のフォーマット処理（書込みとは独立して書込みより前にフォーマット処理）を行うことができるようになる。非同期のフォーマット処理については後述する。
【０２１５】
図３６は、Ｓ３０５の処理を模式的に示す。更新管理サイズ内の所定位置にライトデータが格納される。ライトデータの前後に存在する空白領域には、テーブルＴ３２で管理されているフォーマットパターンが書き込まれる。つまり、本実施例では、外部ストレージ２００によるフォーマット処理を信頼しておらず、メインストレージ１００内で更新管理サイズ単位でデータを作成する。
【０２１６】
図３７は、外部接続ボリュームからデータを読み出す処理を示す。第１コントローラ１１０は、テーブルＴ３０Ｂ，Ｔ３１を参照することにより、リード対象領域が既に更新されているか否かを判定する（Ｓ３１０）。
【０２１７】
リード対象領域が更新されている場合（S310:YES）、第１コントローラ１１０は、外部ストレージ２００にリードコマンドを発行して、外部ボリュームからデータを読出し、読み出したデータをホスト１０に送信する（Ｓ３１１）。
【０２１８】
リード対象領域が未更新の場合（S310:NO）、第１コントローラ１１０は、外部ボリュームにアクセスすることなく（外部ストレージにリードコマンドを発行することなく）、外部接続ボリュームに対応付けられているフォーマットパターンを、ホスト１０に送信する（Ｓ３１２）。
【０２１９】
図３８は、外部ＡＯＵボリュームのフォーマット処理を示す。図２１に示すフローチャートとの相違は、最後に、第１コントローラ１１０は、外部ＡＯＵボリュームに接続されている外部接続ボリュームの全体について、テーブルＴ３１内の書込み状態を「無し」に変更させる（Ｓ３２０）。
【０２２０】
図３９は、外部実ボリュームを非同期でフォーマットする処理を示す。第１コントローラ１１０は、外部実ボリュームの各更新管理領域（更新管理サイズを有する領域）毎に、それぞれフォーマットパターンを設定する（Ｓ３３０）。第１コントローラ１１０は、フォーマットパターンの格納されたデータを、外部ストレージ２００に送信して、外部実ボリュームに書き込ませる（Ｓ３３１）。
【０２２１】
図４０は、内部実ボリュームへのライト処理を示すフローチャートである。図３５との相違は、外部ストレージ２００へのライトデータ転送（図３５のＳ３０２）に代えて、デステージさせる点である（Ｓ３４０）。図３５の外部ボリュームへのライト処理と同様に、更新情報Ｔでフォーマット状態を管理しない場合は、ステップＳ３０４がスキップされ(必ずフォーマット状態が「未」のフローになる)、Ｓ３０５のフォーマット状態の変更処理がなくなる。
【０２２２】
図４１は、内部実ボリュームからデータを読み出す処理を示す。図３７との相違は、外部ボリュームからのデータ読出しに代えて（図３７のＳ３１１）、リード対象データをステージングし、ホスト１０に送信する点である（Ｓ３５０）。つまり、内部実ボリュームに対応するＰＤＥＶ１２１からデータを読み出してキャッシュメモリ１１３に格納し、キャッシュメモリ１１３に格納されたデータをホスト１０に送信する。
【０２２３】
図４２は、内部実ボリュームのフォーマット処理を示すフローチャートである。図１８に示すフローチャートとの相違は、最後に、第１コントローラ１１０は、内部実ボリュームの全体について、更新情報テーブルＴ３１の書込み状態を「無し」に変更させる点である（Ｓ３６０）。
【０２２４】
図４３は、内部実ボリュームを非同期でフォーマット処理する様子を示すフローチャートである。図３９に示すフローチャートとの相違は、フォーマットパターンの設定された更新管理領域データを外部ストレージ２００に転送して書き込ませるのではなく（図３９のＳ３３１）、デステージする点である（Ｓ３３１Ａ）。
【０２２５】
図４４は、ペア形成コピー処理を示すフローチャートである。リシンクコピー処理も形成コピー処理に類似するため、形成コピー処理との相違点のみ説明する。またリストアコピー処理は、実施例１で説明したようにリシンクコピー処理の正ボリュームと副ボリュームを逆転させた処理に相当するため、説明を省略する。第１コントローラ１１０は、ＬＤＥＶ管理テーブルＴ１０において、副ボリュームの書込み状態を「有り」に設定する（Ｓ３７０）。さらに、第１コントローラ１１０は、副ボリュームの更新情報テーブルＴ３１ボリューム全体の書込み状態を「無し」、フォーマット状態を「未」に設定する（Ｓ３７１）。なお、リシンクコピー処理の場合は、正ボリューム内の書き込み無し領域について、副ボリュームの更新情報を書込み状態を「無し」、フォーマット状態を「未」に変更する。
【０２２６】
第１コントローラ１１０は、正ボリュームが実ボリュームなのか、ＡＯＵボリュームなのかを判定する（Ｓ３７２）。正ボリュームがＡＯＵボリュームの場合、図２８で述べたＳ１７６〜Ｓ１８２のステップを適宜実行する（Ｓ３７３）。第１コントローラ１１０は、正ボリュームにおいてデータの書き込まれた領域について、副ボリュームの更新情報テーブルＴ３１の書込み状態を「有り（書込み有り）」に変更する（Ｓ３７４）。その後、結合子４を介して、後述のＳ３８３に移る（図４５）。
【０２２７】
正ボリュームが実ボリュームの場合、第１コントローラ１１０は、副ボリュームが実ボリュームなのかＡＯＵボリュームなのかを判定する（Ｓ３７５）。副ボリュームが実ボリュームの場合、後述のＳ３８３に移る（図４５）。なお、副ボリュームが外部の実ボリュームの場合第１コントローラ１１０は、正ボリュームにデータが書き込まれていない領域について、フォーマットパターンを副ボリュームに書き込んでもよい。フォーマットパターンを書き込むことで、メインストレージ１００を介さずに外部ボリュームをアクセスした場合でも所定のフォーマットパターンをリードすることができる。
【０２２８】
副ボリュームがＡＯＵボリュームの場合、第１コントローラ１１０は、副ボリュームが内部ボリュームなのか、外部接続ボリュームなのかを判定する（Ｓ３７７）。副ボリュームが内部ＡＯＵボリュームの場合、第１コントローラ１１０は、正ボリュームにデータが書き込まれていない領域について、副ボリュームに割り当てられているページを解放させる（Ｓ３７８）。
【０２２９】
副ボリュームが外部接続ボリュームの場合、第１コントローラ１１０は、外部ストレージ２００がフォーマット指示Ｉ／Ｆまたは領域解放Ｉ／Ｆを備えているか否か、フォーマットＩ／Ｆまたは領域解放Ｉ／Ｆを備えている場合は外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定のフォーマット化領域解放が可能か否かを判定する（Ｓ３７９）。外部ストレージ２００がフォーマットＩ／Ｆまたは領域解放Ｉ／Ｆを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定フォーマットかパターン指定が可能な場合（S379:YES）、第１コントローラ１１０は、フォーマットまたは領域の解放を外部ストレージ２００に指示する（Ｓ３８０）。外部ストレージ２００が領域解放Ｉ／Ｆを備えていない場合（S379:NO）、Ｓ３７６に移る。なお、リシンクコピー処理の場合は、正ボリュームが未書込みの領域について、副ボリュームの外部ストレージ２００へ領域解放指示を行う。
【０２３０】
図４５は、図４４に続くフローチャートである。第１コントローラ１１０は、正ボリュームにデータの書き込まれている領域について、副ボリュームの更新情報テーブルＴ３１の書込み状態を「有り」に変更させる（Ｓ３８１）。第１コントローラ１１０は、正ボリュームにデータの書き込まれている領域について、正ボリュームのデータを副ボリュームにコピーさせ、副ボリュームの更新情報テーブルＴ３１のフォーマット状態を「済み」に変更する。（Ｓ３８２）。リシンクコピー処理では、正ボリュームの書込み「有り」の領域のうち、差分ビットマップ内のオン領域について、副ボリュームへのコピーおよび副ボリュームの更新情報テーブルＴ３１の変更を行う。なお、差分ビットマップの管理単位が更新情報（更新ビットマップ）の管理単位より大きい場合で、差分ビットマップがＯＮの領域内に正ボリュームの書込み「無し」の領域が含まれる場合、差分ビットマップがＯＮ領域内の書込み「有り」の領域のみ副ボリュームへのコピーおよび更新情報の変更を行えばよい。
【０２３１】
第１コントローラ１１０は、副ボリュームにデータを書き込むべき領域（コピー先対象領域）が、内部ボリュームに有るのか、それとも外部ボリュームにあるのかを判定する（Ｓ３８３）。コピー先対象領域が内部ボリュームに存在する場合、第１コントローラ１１０は、デステージを実行する（Ｓ３８４）。コピー先対象領域が外部ボリュームに存在する場合、第１コントローラ１１０は、外部ストレージ２００にコピーデータを送信しコピーデータを外部ボリュームに書き込ませる（Ｓ３８５）。
【０２３２】
このように構成される本実施例も、前記第１実施例と同様の効果を奏する。さらに、本実施例では、ボリュームコピーペアの正ボリューム（リストアでは副ボリューム）が実ボリュームであっても、副ボリュームへのコピー処理（リストアでは正ボリュームへのコピー処理）で副ボリュームへ不要なページが割り当てられるの防止することができ、ページを有効に使用することができる。さらに、本実施例では、更新管理サイズ毎にライトデータの周辺をフォーマットパターンで埋めて、外部ボリュームに書き込ませる。従って、外部ストレージ２００が外部ボリュームのフォーマット処理を実行しているか否かを問わずに、データを外部ボリュームに正常に格納させることができる。即ち、本実施例では、外部ストレージ２００が、メインストレージ１００と同様のパターンでフォーマット処理を実行できない場合でも、メインストレージ１００のフォーマット処理と同様のフォーマット処理を外部ボリュームに対して実施可能である。また本実施例では、フォーマット指示を受けた時点でフォーマットパターンを書き込むのではなく、ホストからのライト契機で更新管理領域内のライトデータ以外の部分をフォーマットパターンで埋めることで、フォーマット指示時の完了応答を高速にすることができる。
【０２３３】
本実施例では、外部ボリュームに接続されているボリューム（外部接続ボリューム）にデータが書き込まれていない領域について、ホスト１０からデータの読出しを要求された場合に、外部ボリュームにアクセスすることなく、フォーマットパターンを応答することができる。従って、データ未書込み領域に関する応答パターンが、メインストレージ１００と外部ストレージ２００とで異なる場合でも、メインストレージ１００と同様の応答をホスト１０に返すことができる。
【実施例３】
【０２３４】
図４６に基づいて、第３実施例を説明する。本実施例では、管理サーバ２０からの指示に応じて、ＬＤＥＶ管理テーブルＴ１０に情報を設定する。図４６は、本実施例による、メインストレージ１００と外部ストレージ２００とを外部接続させるための処理のフローチャートである。
【０２３５】
第１コントローラ１１０は、ストレージシステム内の各ポートをスキャンすることにより、ストレージシステム内に存在する各ボリュームを検索する（Ｓ３９０）。第１コントローラ１１０は、検索された各ボリュームについて、Inquiryコマンドをそれぞれ発行することにより、ボリューム種別等を問い合わせる（Ｓ３９１）。さらに、第１コントローラ１１０は、「READ
Capacity」コマンドを発行することにより、各ボリュームのサイズをそれぞれ取得する（Ｓ３９２）。
【０２３６】
第１コントローラ１１０は、各ボリュームから収集された情報を管理サーバ２０に送信する（Ｓ３９２）。ストレージシステムの管理者は、管理サーバ２０を介して、外部ボリュームの種別やマッピング先のボリュームを指定する。
【０２３７】
第１コントローラ１１０は、管理サーバ２０から外部ボリュームの種別やマッピング先についての指示を受領すると（Ｓ３９４）、各ボリューム毎に、そのボリューム種別が実ボリュームなのかＡＯＵボリュームなのかを判別する（Ｓ３９５）。
【０２３８】
実ボリュームの場合、第１コントローラ１１０は、ＥＤＥＶ１２２Ｅの種別とＬＤＥＶ１２３の種別とを、「外部実ボリューム」であると設定する（Ｓ３９６）。ＡＯＵボリュームの場合、第１コントローラ１１０は、ＥＤＥＶ１２２Ｅの種別とＬＤＥＶ１２３の種別とを、「外部ＡＯＵボリューム」であると設定する（Ｓ３９７）。第１コントローラ１１０は、Ｓ３９２で取得したサイズに基づいて、ＥＤＥＶ１２２ＥのサイズとＬＤＥＶ１２３のサイズをそれぞれ設定する（Ｓ３９８）。
【０２３９】
このように構成される本実施例も第１実施例と同様の効果を奏する。
【実施例４】
【０２４０】
図４７〜図５３に基づいて第４実施例を説明する。本実施例では、ボリュームに書き込まれるデータが所定のフォーマットパターンに一致するか否かを事前に判定し、フォーマットパターンに一致するライトデータは、実際に書き込まずにページを解放させる。
【０２４１】
図４７は、データボリュームにライトデータを書き込む処理を示す。本フローチャートと図２７に示すフローチャートとの相違は、ホスト１０からライトデータを受信した後（Ｓ１５７）、第１コントローラ１１０は、そのライトデータを内部ＡＯＵボリュームに書き込むために新規ページの割当てが必要か否かを判定する（Ｓ５００）。
【０２４２】
新ページの割当てが必要な場合（S500:YES）、第１コントローラ１１０は、ライトデータが所定のフォーマットパターンに一致するか否かを判定する（Ｓ５０１）。ライトデータとフォーマットパターンとが一致する場合（S501:YES）、第１コントローラ１１０は、Ｓ５００で割り当てられた新規ページを解放させる（Ｓ５０２）。そして、第１コントローラ１１０は、Ｓ１５８に移る。実施例２に本実施例を適用した場合は、外部ＡＯＵボリュームに対しても、フォーマットパターンに一致するライトデータは、実際に書き込まずにページを解放させることができる。実施例２の更新情報でボリュームの更新情報のうち書込み状態が「無し」の領域へのホストライトがフォーマットパターンと一致する場合は、第１コントローラ１１０内のキャッシュメモリに格納されたライトデータの属性を、ダーティ状態からクリーン状態に変更させ、書込み状態を「無し」のままにする。ここで、ダーティ状態とは、デステージや外部ストレージへのデータ転送が完了していない状態である。クリーン状態とは、デステージや外部ストレージへのデータ転送の完了している状態である。外部ストレージ２００内へ転送される前にの第１コントローラ１１０内のキャッシュメモリに記憶されたデータの属性をクリーン状態に変更することにより、そのデータが外部ストレージ２００へ転送されないため、格納するためのページが外部ストレージで割り当てられるのを防止できる。
【０２４３】
なお、新規ページの割当てが不要な場合（S500:NO）、Ｓ５０１，Ｓ５０２はスキップされてＳ１５８に移る。ライトデータとフォーマットパターンとが不一致の場合（S501:NO）、Ｓ５０２はスキップされて、Ｓ１５８に移る。
【０２４４】
図４８は、内部ＡＯＵボリュームのページをホスト１０からのコマンドと非同期で解放させる処理を示すフローチャートである。第１コントローラ１１０は、内部ＡＯＵボリュームにページが割り当てられている領域からデータを読出し（Ｓ５１０）、読み出されたデータと所定のフォーマットパターンとが一致するか否かを判定する（Ｓ５１１）。
【０２４５】
内部ＡＯＵボリュームから読み出されたデータとフォーマットパターンとが一致する場合（S511:YES）、第１コントローラ１１０は、フォーマットパターンと同一のデータを記憶するページを内部ＡＯＵボリュームへの割り当てから解放させる（Ｓ５１２）。内部ＡＯＵボリュームから読み出されたデータとフォーマットパターンとが不一致の場合（S511:NO）、Ｓ５１２はスキップされて終了する。
【０２４６】
図４９は、外部ＡＯＵボリュームのページをホスト１０からのコマンドと非同期で解放させる処理を示すフローチャートである。第１コントローラ１１０は、図１４に示すテーブルＴ２５，Ｔ２６を参照することにより、外部ＡＯＵボリュームを備える外部ストレージ２００が領域解放Ｉ／Ｆを備えるか否か、領域解放Ｉ／Ｆを備えている場合は外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合にはパターン指定領域解放が可能か否かを判定する（Ｓ５２０）。
【０２４７】
外部ストレージ２００が領域解放Ｉ／Ｆを備えており、かつフォーマットパターンが所定のフォーマットパターンと同一かパターンが同一でない場合でもパターン指定領域解放が可能な場合（S520:YES）、第１コントローラ１１０は、外部ＡＯＵボリュームにページが割り当てられている領域からデータを読出し（Ｓ５２１）、その読み出されたデータとフォーマットパターンとが一致するか否かを判定する（Ｓ５２２）。
【０２４８】
読み出されたデータとフォーマットパターンとが一致する場合（S522:YES）、第１コントローラ１１０は、フォーマットパターンに一致するデータを記憶しているページの解放を外部ストレージ２００に指示する（Ｓ５２３）。なお、領域解放指示された範囲が外部ストレージ２００の管理するページの一部のみ含むページは、ページ内の解放指示範囲以外に有効なデータが含まれている場合があるため、ページ内の領域解放指示された範囲のみ所定のフォーマットデータで埋め、そのページを解放しない。外部ストレージが管理するページ単位もしくはページサイズの倍数単位でデータ比較処理および解放指示処理を行うのが望ましい。
【０２４９】
外部ストレージ２００が領域解放Ｉ／Ｆを備えない場合やフォーマットパターンが異なりかつパターン指定領域解放が不可の場合（S520:NO）、及び、外部ＡＯＵボリュームから読み出されたデータとフォーマットパターンとが不一致の場合（S522:NO）、本処理は終了する。ホストからのコマンドと非同期に外部ＡＯＵボリュームのページ解放処理をデータ比較をメインストレージ１００が主体となって行う説明を行ったが、外部ストレージ２００がＡＯＵボリュームの非同期データ比較およびページ解放機能を有する場合は、外部ストレージ２００が主体となって解放処理を行っても良い。その場合、メインストレージ１００や管理サーバからの指示で外部ストレージ２００が処理を行っても良いし、外部ストレージ２００が自動的に処理を行っても良い。
【０２５０】
図５０は、ペア形成コピー処理を示すフローチャートである。図２８に示すフローチャートとの相違は、正ボリュームから副ボリュームにデータをコピーさせた後で（Ｓ１７２またはＳ１７８）、データ比較処理を行う点である（Ｓ５５０）。リシンクコピー処理やリストアコピー処理でもデータコピー後に、ボリュームの種別や外部ストレージ２００の機能に応じてデータ比較処理を行い、領域解放処理を行う点は同じであるので説明を省略する。
【０２５１】
図５１は、図５０中に示すデータ比較処理（Ｓ５５０）の詳細を示す。第１コントローラ１１０は、副ボリュームが実ボリュームなのか、それともＡＯＵボリュームなのかを判定する（Ｓ５５１）。副ボリュームが実ボリュームであると判定された場合、図５０のフローチャートに戻る。
【０２５２】
副ボリュームがＡＯＵボリュームであると判定された場合、第１コントローラ１１０は、その副ボリュームが内部ボリュームなのか、それとも外部接続ボリュームなのかを判定する（Ｓ５５２）。
【０２５３】
副ボリュームが内部ボリュームの場合、即ち、副ボリュームが内部ＡＯＵボリュームの場合、第１コントローラ１１０は、正ボリュームから副ボリュームにコピーされたコピーデータと所定のフォーマットパターンとが一致するか否かを判定する（Ｓ５５３）。
【０２５４】
コピーデータとフォーマットパターンとが一致する場合（S553:YES）、第１コントローラ１１０は、コピーデータを記憶するために副ボリューム（内部ＡＯＵボリューム）に割り当てられたページを解放させる（Ｓ５５４）。なお、コピーデータが新規割当ページではなくかつページの一部のみの場合は、ページ内に有効なデータが含まれている場合があるため、そのページを解放しない。コピーデータとフォーマットパターンとが不一致の場合、Ｓ５２のフローチャートに戻る。
【０２５５】
副ボリュームが外部接続ボリュームの場合、第１コントローラ１１０は、外部ストレージ２００が領域解放Ｉ／Ｆを備えているか否か、外部ストレージ２００のフォーマットパターンが所定のフォーマットパターンと同一か否か、同一でない場合は外部ストレージ２００がパターン指定の領域解放が可能か否かを判定する（Ｓ５５５）。外部ストレージ２００が領域解放Ｉ／Ｆを備えており、フォーマットパターンが一致するパターン指定領域解放が可能な場合（S555:YES）、第１コントローラ１１０は、コピーデータとフォーマットパターンとが一致するか否かを判定する（Ｓ５５６）。
【０２５６】
コピーデータとフォーマットパターンとが一致する場合（S556:YES）、第１コントローラ１１０は、そのコピーデータを記憶するために副ボリュームに割り当てられた領域の解放を、外部ストレージに指示する（Ｓ５５７）。なお、領域解放指示された範囲が外部ストレージ２００の管理するページの一部のみ含むページは、ページ内の解放指示範囲以外に有効なデータが含まれている場合があるため、ページ内の領域解放指示された範囲のみ所定のフォーマットデータで埋め、そのページを解放しない。
【０２５７】
Ｓ５５７では、領域解放指示とともに第１コントローラ１１０内のキャッシュメモリに格納されたコピーデータの属性を、ダーティ状態からクリーン状態に変更させる。外部ストレージ２００内へ転送される前にの第１コントローラ内のキャッシュメモリに記憶されたコピーデータの属性をクリーン状態に変更することにより、そのコピーデータを格納するためのページが外部ＡＯＵボリュームに割り当てられるのを防止できる。
【０２５８】
なお、外部ストレージ２００が領域解放Ｉ／Ｆを備えない場合（S555:NO）や、フォーマットパターンが異なりかつパターン指定の領域解放が不可の場合、及び、コピーデータがフォーマットパターンとが不一致の場合（S556:NO）、図５０のフローチャートに戻る。
【０２５９】
このように構成される本実施例も第１実施例と同様の効果を奏する。さらに、本実施例では、ホストからのライトデータやコピーデータがフォーマットパターンと一致するか否かを事前に判定し、一致する場合にページを解放させたり、外部ストレージにデータ転送しない。従って、無駄なページがＡＯＵボリュームに割り当てられるのをより効果的に防止することができる。なお、本実施例では主として第１実施例に適用する場合を説明したが、第２実施例や第３実施例にも適用可能である。
【実施例５】
【０２６０】
図５２，図５３に基づいて第５実施例を説明する。本実施例では、メインストレージ１００に代えて、仮想化アプライアンス５０を使用する。つまり、本実施例では、ストレージシステム内の記憶資源を仮想化するための専用コンピュータ装置５０を用いる。
【０２６１】
図５２は、本実施例のストレージシステムを示す。仮想化アプライアンス５０は、ターゲットポート５１Ｔ及び通信ネットワークＣＮ１を介して、ホスト１０に接続される。仮想化アプライアンス５０は、イニシエータポート５１Ｉ及び通信ネットワークＣＮ２を介して、外部ストレージ２００に接続される。さらに、仮想化アプライアンス５０は、通信ネットワークＣＮ３を介して、管理サーバ２０に接続されている。
【０２６２】
仮想化アプライアンス５０は、例えば、マッピング機能５２と、キャッシュメモリ５３とを備えている。図５３は、本実施例による記憶構造を示す。仮想化アプライアンス５０は、ＬＵ層と、ＬＤＥＶ層と、ＥＤＥＶ層とを備える。マッピング機能５２は、ＬＤＥＶ１２４ＥとＥＤＥＶ１２２Ｅとの対応付けを管理する。なお、図５３では仮想化アプライアンス５０内のＬＤＥＶ１２４と外部ストレージ２００内のＬＵ２２４が１対１に対応している図になっているが、１対１に限定するものではない。例えば外部ストレージ２００の複数のＬＵ２２４を仮想化アプライアンス５０内で連結して１つのＬＤＥＶ１２４にすることや、ＬＵ２２４を仮想化アプライアンス５０内でプールボリュームとして使用するなどの構成もとりうる。
【０２６３】
このように構成される本実施例も第１実施例と同様の効果を奏する。
【実施例６】
【０２６４】
図５４，図５５に基づいて第６実施例を説明する。本実施例では、メインストレージ１００に代えて、仮想化スイッチ６０を使用する。
【０２６５】
図５４は、本実施例のストレージシステムを示す。仮想化スイッチ６０は、ターゲットポート６１Ｔ及び通信ネットワークＣＮ１を介して、ホスト１０に接続される。仮想化スイッチ６０は、イニシエータポート６１Ｉ及び通信ネットワークＣＮ２を介して、外部ストレージ２００に接続される。さらに、仮想化スイッチ６０は、通信ネットワークＣＮ３を介して、管理サーバ２０に接続されている。仮想化スイッチ６０は、マッピング機能６２を備えているが、キャッシュメモリは備えていない。
【０２６６】
図５５は、本実施例による記憶構造を示す。仮想化スイッチ６０は、ＬＵ層と、ＬＤＥＶ層と、ＥＤＥＶ層とを備える。マッピング機能６２は、ＬＤＥＶ１２４ＥとＥＤＥＶ１２２Ｅとの対応付けを管理する。図５５では仮想化スイッチ６０内のＬＤＥＶ１２４と外部ストレージ２００内のＬＵ２２４が１対１に対応している図になっているが、実施例５と同様に１対１に限定するものではない。
【０２６７】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０２６８】
【図１】本発明の実施形態の概要を示す説明図である。
【図２】ストレージシステムの全体構成を示す説明図である。
【図３】ストレージシステムのブロック図である。
【図４】各コントローラの機能を示す説明図である。
【図５】ストレージシステムの記憶構造を示す説明図である。
【図６】各記憶構造の各階層の関係を示す説明図である。
【図７】ＬＤＥＶ管理テーブル等を示す説明図である。
【図８】ＶＤＥＶ／ＥＤＥＶ管理テーブル等を示す説明図である。
【図９】内部ＡＯＵボリューム管理テーブル等を示す説明図である。
【図１０】ページ状態の組合せテーブル等を示す説明図である。
【図１１】プールボリューム管理テーブルを示す説明図である。
【図１２】ローカルコピーペア管理テーブルを示す説明図である。
【図１３】リモートコピーペア管理テーブルを示す説明図である。
【図１４】外部ストレージの有する機能を管理するテーブルを示す説明図である。
【図１５】外部接続を設定する処理のフローチャートである。
【図１６】プールボリュームを設定する処理のフローチャートである。
【図１７】フォーマット処理のフローチャートである。
【図１８】内部実ボリュームのフォーマット処理を示すフローチャートである。
【図１９】内部ＡＯＵボリュームのフォーマット処理を示すフローチャートである。
【図２０】外部実ボリュームのフォーマット処理を示すフローチャートである。
【図２１】外部ＡＯＵボリュームのフォーマット処理を示すフローチャートである。
【図２２】シュレッド処理のフローチャートである。
【図２３】内部実ボリュームのシュレッド処理を示すフローチャートである。
【図２４】内部ＡＯＵボリュームのシュレッド処理を示すフローチャートである。
【図２５】外部実ボリュームのシュレッド処理を示すフローチャートである。
【図２６】外部ＡＯＵボリュームのシュレッド処理を示すフローチャートである。
【図２７】データボリュームへのライト処理を示すフローチャートである。
【図２８】ペア形成コピー処理を示すフローチャートである。
【図２９】ペアリシンクコピー処理を示すフローチャートである。
【図３０】ペアリストアコピー処理を示すフローチャートである。
【図３１】第２実施例に係るストレージシステムのコントローラ構成を示す説明図である。
【図３２】更新管理テーブルを示す説明図である。
【図３３】ＶＤＥＶ／ＥＤＥＶ管理テーブルを示す説明図である。
【図３４】外部接続を設定するための処理を示すフローチャートである。
【図３５】外部接続ボリュームへのライト処理を示すフローチャートである。
【図３６】更新管理サイズ内のライトデータ以外の部分にフォーマットパターンを埋め込む様子を示す説明図である。
【図３７】外部ボリュームからデータを読み出す処理を示すフローチャートである。
【図３８】外部ＡＯＵボリュームのフォーマット処理を示すフローチャートである。
【図３９】外部実ボリュームのフォーマット処理を示すフローチャートである。
【図４０】内部実ボリュームへのライト処理を示すフローチャートである。
【図４１】内部実ボリュームからデータを読み出す処理を示すフローチャートである。
【図４２】内部実ボリュームのフォーマット処理を示すフローチャートである。
【図４３】内部実ボリュームのフォーマット処理を示すフローチャートである。
【図４４】ペア形成コピー処理のフローチャートである。
【図４５】図４４に続くフローチャートである。
【図４６】第３実施例に係るストレージシステムで実行される、外部接続設定処理を示すフローチャートである。
【図４７】第４実施例に係るストレージシステムで実行される、データボリュームへのライト処理を示すフローチャートである。
【図４８】内部ＡＯＵボリュームのページを解放させる処理を示すフローチャートである。
【図４９】外部ＡＯＵボリュームのページを解放させる処理を示すフローチャートである。
【図５０】ペア形成コピー処理のフローチャートである。
【図５１】データ比較処理のフローチャートである。
【図５２】第５実施例に係るストレージシステムの全体図である。
【図５３】ストレージシステムの記憶構造を示す説明図である。
【図５４】第６実施例に係るストレージシステムの全体図である。
【図５５】ストレージシステムの記憶構造を示す説明図である。
【符号の説明】
【０２６９】
１：メインストレージ、２：外部ストレージ、３：ホスト、４：第１コントローラ、４Ａ：ＩＯ処理機能、４Ｂ：ＡＯＵ制御機能、４Ｃ：外部接続制御機能、４Ｄ：コマンド変換機能、４Ｅ，４Ｆ：更新ビットマップ、５：第２コントローラ、５Ａ：ＩＯ処理機能、５Ｂ：制御機能、６：ＡＯＵボリューム、７：外部接続ボリューム、８：ＡＯＵボリューム、ＰＬ１，ＰＬ２：ＡＯＵプール、１０：ホスト、１１：ＨＢＡ、１２：管理プログラム、２０：管理サーバ、２１Ａ：ストレージ管理部、５０：仮想化アプライアンス、５２：マッピング機能、５３：キャッシュメモリ、６０：仮想化スイッチ、６２：マッピング機能、１００：メインストレージ、１０１：第１通信処理部、１０２：ＩＯ処理部、１０３：外部接続制御部、１０４：ＡＯＵ制御部、１０５：外部ストレージ操作部、１０６：第２通信処理部、１１０：第１コントローラ、１１１：チャネルアダプタ、１１２：ディスクアダプタ、１１３：キャッシュメモリ、１１４：共有メモリ、１１５：接続制御部、１１６：サービスプロセッサ、１２０：記憶デバイス搭載部、１２１：ディスクドライブ、１２２Ｐ：プール、１２３Ａ：ＡＯＵボリューム、１２３Ｅ：外部接続ボリューム、１２３Ｐ：プールボリューム、１２３Ｒ：実ボリューム、２００：外部ストレージ、２０１：第１通信処理部、２０２：ＩＯ処理部、２０３：ＡＯＵ制御部、２０４：第２通信処理部、２１０：第２コントローラ、２２０：記憶デバイス搭載部、２２１：ディスクドライブ、２２２Ｐ：プール、２２３Ａ：ＡＯＵボリューム、２２３Ｐ：プールボリューム、２２３Ｒ：実ボリューム
【図１】
2010055557.tif 000003
【図２】
2010055557.tif 000004
【図３】
2010055557.tif 000005
【図４】
2010055557.tif 000006
【図５】
2010055557.tif 000007
【図６】
2010055557.tif 000008
【図７】
2010055557.tif 000009
【図８】
2010055557.tif 000010
【図９】
2010055557.tif 000011
【図１０】
2010055557.tif 000012
【図１１】
2010055557.tif 000013
【図１２】
2010055557.tif 000014
【図１３】
2010055557.tif 000015
【図１４】
2010055557.tif 000016
【図１５】
2010055557.tif 000017
【図１６】
2010055557.tif 000018
【図１７】
2010055557.tif 000019
【図１８】
2010055557.tif 000020
【図１９】
2010055557.tif 000021
【図２０】
2010055557.tif 000022
【図２１】
2010055557.tif 000023
【図２２】
2010055557.tif 000024
【図２３】
2010055557.tif 000025
【図２４】
2010055557.tif 000026
【図２５】
2010055557.tif 000027
【図２６】
2010055557.tif 000028
【図２７】
2010055557.tif 000029
【図２８】
2010055557.tif 000030
【図２９】
2010055557.tif 000031
【図３０】
2010055557.tif 000032
【図３１】
2010055557.tif 000033
【図３２】
2010055557.tif 000034
【図３３】
2010055557.tif 000035
【図３４】
2010055557.tif 000036
【図３５】
2010055557.tif 000037
【図３６】
2010055557.tif 000038
【図３７】
2010055557.tif 000039
【図３８】
2010055557.tif 000040
【図３９】
2010055557.tif 000041
【図４０】
2010055557.tif 000042
【図４１】
2010055557.tif 000043
【図４２】
2010055557.tif 000044
【図４３】
2010055557.tif 000045
【図４４】
2010055557.tif 000046
【図４５】
2010055557.tif 000047
【図４６】
2010055557.tif 000048
【図４７】
2010055557.tif 000049
【図４８】
2010055557.tif 000050
【図４９】
2010055557.tif 000051
【図５０】
2010055557.tif 000052
【図５１】
2010055557.tif 000053
【図５２】
2010055557.tif 000054
【図５３】
2010055557.tif 000055
【図５４】
2010055557.tif 000056
【図５５】
2010055557.tif 000057