(57)【要約】  外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置であって、物理記憶領域を提供する記憶デバイスと、前記記憶デバイスから複数の単位物理記憶領域を生成し、各前記論理ボリュームを、前記外部装置からのデータＩ／Ｏ要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する記憶制御装置とを備えている。
2011129006.tif 000002
【特許請求の範囲】
【請求項１】
外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置であって、
物理記憶領域を提供する記憶デバイスと、
前記記憶デバイスから複数の単位物理記憶領域を生成し、
各前記論理ボリュームを、前記外部装置からのデータＩ／Ｏ要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、
前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、
前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する記憶制御装置と、
を備えているストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期状態にあると判定した場合、前記副ボリュームへの前記単位物理領域破棄命令を送信するとともに、前記正ボリュームに格納されているデータを前記副ボリュームに送信し、
前記記憶制御装置は、前記副ボリュームが前記仮想ボリュームではなく、前記記憶デバイスから作成した固定的な物理記憶領域が対応付けられていると判定した場合、前記単位物理記憶領域破棄命令を前記副ボリュームに送信せず、
前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期コピーを実行しない分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから前記副ボリュームへの前記単位物理領域破棄命令を送信するための処理を開始する、ストレージ装置。
【請求項３】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期状態にあると判定した場合、前記副ボリュームへの前記単位物理領域破棄命令を送信するとともに、前記正ボリュームに格納されているデータを前記副ボリュームに送信する、ストレージ装置。
【請求項４】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記副ボリュームが前記仮想ボリュームではなく、前記記憶デバイスから作成した固定的な物理記憶領域が対応付けられていると判定した場合、前記単位物理記憶領域破棄命令を前記副ボリュームに送信しない、ストレージ装置。
【請求項５】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記正ボリュームと前記副ボリュームとが同期コピーを実行しない分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから前記副ボリュームへの前記単位物理領域破棄命令を送信するための処理を開始する、ストレージ装置。
【請求項６】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
前記副ボリュームが前記他のストレージ装置に生成、保持されており、
前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが同期状態にあるか判定し、同期状態にあると判定した場合、前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する、ストレージ装置。
【請求項７】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
前記副ボリュームが前記他のストレージ装置に生成、保持されており、
前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが分割状態にあるか判定し、分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信するための処理を開始する、ストレージ装置。
【請求項８】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
前記副ボリュームが前記他のストレージ装置に生成、保持されており、
前記記憶制御装置は、前記正ボリュームにデータ書き込み処理が実行された場合に、当該書き込みデータとともに書き込み順序を示す順序情報を格納して保持するジャーナルボリュームを生成し、運用しており、
前記他の記憶制御装置は、前記ジャーナルボリュームを正ジャーナルボリュームとしてこれとコピーペアを構成する副ジャーナルボリュームを生成し、運用しており、
前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが同期状態にあるか判定し、同期状態にあると判定した場合、前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記正ジャーナルボリュームから前記副ジャーナルボリュームへ送信する格納データ及び前記順序情報に、前記正ボリュームの前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を付加して送信する、ストレージ装置。
【請求項９】
請求項１に記載のストレージ装置であって、
前記記憶制御装置は、前記ストレージ装置と同一の構成を有する他の前記ストレージ装置に備えられている他の記憶制御装置と通信回線を介して通信可能に接続され、
前記副ボリュームが前記他のストレージ装置に生成、保持されており、
前記記憶制御装置は、前記正ボリュームにデータ書き込み処理が実行された場合に、当該書き込みデータとともに書き込み順序を示す順序情報を格納して保持するジャーナルボリュームを生成し、運用しており、
前記他の記憶制御装置は、前記ジャーナルボリュームを正ジャーナルボリュームとしてこれとコピーペアを構成する副ジャーナルボリュームを生成し、運用しており、
前記正ボリュームが前記単位物理領域の破棄命令を受けた場合に、前記正ボリュームと前記副ボリュームとが同期状態にあるか判定し、同期状態でなく分割状態にあると判定した場合、前記外部装置からの再同期化命令を受信してから、前記通信回線を通じて前記他のストレージ装置にある前記他の記憶制御装置に、前記正ジャーナルボリュームから前記副ジャーナルボリュームへ送信する格納データ及び前記順序情報に、前記正ボリュームの前記破棄命令の対象となる前記正ボリュームの前記単位物理領域に対応する前記副ボリュームの当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を付加して送信するための処理を開始する、ストレージ装置。
【請求項１０】
外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置の制御方法であって、
前記ストレージ装置は、物理記憶領域を提供する記憶デバイスと、当該記憶デバイスを管理する記憶制御装置とを備え、当該記憶制御装置が、
前記記憶デバイスから複数の単位物理記憶領域を生成し、
各前記論理ボリュームを、前記外部装置からのデータＩ／Ｏ要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、
前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、
前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する、
ストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ストレージ装置及びストレージ装置の制御方法に係わり、特に記憶デバイスの限られた記憶容量を効率的に使用することを可能とするストレージ装置及びストレージ装置の制御方法に関する。
【背景技術】
【０００２】
従来、コンピュータが利用することができる論理記憶領域を固定的に割り当てるのではなく、最大限利用可能な記憶容量を有する仮想的な論理記憶領域である仮想ボリュームを規定しておき、コンピュータが要求する都度必要となる物理記憶領域を割り当てることにより論理記憶領域を提供する記憶デバイスの記憶容量を効率的に利用する技術が知られており、一般的にシンプロビジョニング（Thin Provisioning）等の用語で呼ばれている。【０００３】
例えば、特許文献１では、シンプロビジョニング技術により上位装置（ホスト）に割り当てられている仮想ボリュームについて、その仮想ボリュームに割り当てられた実記憶領域（以下、この実記憶領域から仮想ボリュームへの記憶領域割り当て単位を「ページ」（単位物理記憶領域）という。）を破棄し、その他の仮想ボリュームで利用可能とすることで実記憶領域を有効活用する構成が提案されている。すなわち、ホストから破棄したいページを指定し、そのページ（アドレス）に対して破棄コマンドを発行することで、ストレージ装置に該当ページの破棄処理を実行させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３１０８６１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の構成では、ストレージ装置が正ボリュームと副ボリュームとを備えるコピーペアを有している構成で、正ボリュームのあるページに対してホストから破棄処理を指示された場合、その正ボリュームの該当ページは指示に従って破棄されるが、副ボリュームにコピーされている対応ページについては破棄することができないため、記憶資源の効率的な運用が十分に達成できないという問題があった。【０００６】
本発明は、上記の及び他の課題を解決するためになされたものであり、記憶デバイスの限られた記憶容量を効率的に使用することを可能とするストレージ装置及びストレージ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の及び他の目的を達成するために、本発明の一態様は、外部装置にデータ記憶領域を提供する論理ボリュームを複数備えるストレージ装置であって、物理記憶領域を提供する記憶デバイスと、
前記記憶デバイスから複数の単位物理記憶領域を生成し、各前記論理ボリュームを、前記外部装置からのデータＩ／Ｏ要求に応じて各前記論理ボリュームに前記単位物理記憶領域を加入する仮想ボリュームの形態で運用し、前記論理ボリュームのいずれかを正ボリュームとし、他のいずれかの前記論理ボリュームを副ボリュームとして選定して前記正ボリュームに格納されるデータを前記副ボリュームにコピーすることができるコピーペアとして構成し、前記外部装置から前記正ボリュームに前記単位物理記憶領域の破棄要求を受け付けた場合に、当該破棄要求の対象となる前記単位物理記憶領域に対応して前記副ボリュームを構成している前記単位物理記憶領域があるか判定し、前記副ボリュームの当該単位物理記憶領域があると判定した場合、前記副ボリュームに当該単位物理記憶領域を前記副ボリュームへの割当てから破棄する命令を送信する記憶制御装置とを備えているストレージ装置である。
【発明の効果】
【０００８】
本発明によれば、記憶デバイスの限られた記憶容量を効率的に使用することを可能とするストレージ装置及びストレージ装置の制御方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】ストレージシステム１の概略的な構成を示す図である。
【図２】チャネル基板１１のハードウェア構成の一例である。
【図３】プロセッサ基板１２のハードウェア構成の一例である。
【図４】ドライブ基板１３のハードウェア構成の一例である。
【図５】コンピュータ３０ハードウェア構成の一例である。
【図６】ストレージ装置１０によって論理記憶領域が提供される構成を示す模式図である。
【図７】チャネル制御部１１０のソフトウェア構成の一例である。
【図８】ディスク制御部１２０のソフトウェア構成の一例である。
【図９】シンプロビジョニング機能を提供する構成の概要を示す模式図である。
【図１０】ＬＵ管理テーブル１１０３の一例である。
【図１１】仮想ＬＤＥＶ管理テーブル１１０４の一例である。
【図１２】プール管理テーブル１１０５の一例である。
【図１３】マッピング管理テーブル１１０６の一例である。
【図１４】プール構成ＬＤＥＶ管理テーブル１１０７の一例である。
【図１５】実記憶領域割当て処理の処理フローの一例である。
【図１６】ページ破棄処理フローの一例である。
【図１７】実施例１のストレージシステム１の構成を示す模式図である。
【図１８】ページ破棄コマンド１８００のデータ構造の一例である。
【図１９】差分ビットマップ１９００の一例である。
【図２０Ａ】ページ破棄管理テーブル２０００ーの一例である。
【図２０Ｂ】ページ破棄管理テーブル２０００ーの一例である。
【図２１】ページ破棄処理フローの一例である。
【図２２】ペア状態管理テーブル２２００の一例である。
【図２３】ローカルコピー構成（ペア状態）におけるページ破棄処理フローの一例である。
【図２４】ローカルコピー構成（サスペンド状態）におけるページ破棄処理フローの一例である。
【図２５】副ボリューム１３２のみにページが割り当てられた場合のページ破棄処理説明図である。
【図２６】実施例２のストレージシステム１の構成を示す模式図である。
【図２７】実施例２のペア状態管理テーブル２７００の一例である。
【図２８】実施例２の通信メッセージ２８００のデータ構造の一例である。
【図２９】副ボリュームページ破棄情報２９００の一例である。
【図３０】同期リモートコピー構成（ペア状態）におけるページ破棄処理フローの一例である。
【図３１Ａ】同期リモートコピー構成（サスペンド状態）におけるページ破棄処理フローの一例である。
【図３１Ｂ】同期リモートコピー構成（サスペンド状態）におけるページ破棄処理フローの一例である。
【図３２】ジャーナルを利用した非同期リモートコピーの構成を示す模式図である。
【図３３】実施例３のストレージシステム１の構成を示す模式図である。
【図３４】ジャーナル１３００の構成の一例である。
【図３５Ａ】従来のジャーナル制御情報３５００の一例である。
【図３５Ｂ】実施例３のジャーナル制御情報３５００の一例である。
【図３６】実施例３のペア状態管理テーブル３６００の一例である。
【図３７】ジャーナルを利用した非同期リモートコピー構成（ペア状態）におけるページ破棄処理フローの一例である。
【図３８Ａ】ジャーナルを利用した非同期リモートコピー構成（サスペンド状態）におけるページ破棄処理フローの一例である。
【図３８Ｂ】ジャーナルを利用した非同期リモートコピー構成（サスペンド状態）におけるページ破棄処理フローの一例である。
【発明を実施するための形態】
【００１０】
以下、本発明につき、その実施形態に即して説明する。
実施例１
ストレージシステム１の構成
図１に、本発明の実施例１に係るストレージシステム１の構成を示している。同図に示すように、このストレージシステム１は、ホスト装置２（外部装置）、通信ネットワーク５を介してホスト装置２と通信するストレージ装置１０、及びストレージ装置１０にＬＡＮ（Local Area Network）等を介して通信可能に接続する管理装置３を含んで構成されている。図１のストレージシステム１では、通信ネットワーク５を介して２台のストレージ装置１０が接続されているが、接続されるストレージ装置１０の数は、１あるいは３以上であっても構わない。また、図１では、ストレージ装置１０としての構成は同一であるため、一方のストレージ装置１０については、内部構成の図示を省略している。図１に示す２台のストレージ装置１０は、例えば一方が常時ホスト装置２からのデータＩ／Ｏを受け付けて処理するための正ボリュームを備える正制御ユニット（Main Control Unit、以下「ＭＣＵ」）を構成し、他方のストレージ装置１０が、ＭＣＵからの指示により正ボリュームからのデータコピー処理の対象となる副ボリュームを制御する副制御ユニット（Remote Control Unit、以下「ＲＣＵ」）を構成している。以下、ＭＣＵ内の複数のボリューム間で行われるデータコピー処理をローカルコピーと、ＭＣＵの正ボリュームとＲＣＵの副ボリュームとの間で行われるデータコピー処理をリモートコピーという。
【００１１】
通信ネットワーク５は、例えばＬＡＮ、ＳＡＮ（Storage Area Network）、インターネット、公衆通信網等である。ホスト装置２とストレージ装置１０との間の通信は、ＴＣＰ／ＩＰ、ｉＳＣＳＩ（internet Small Computer System Interface）、ファイバーチャネルプロトコル（Fibre Channel Protocol）、ＦＩＣＯＮ（Fibre Connection）（登録商標）、ＥＳＣＯＮ（Enterprise System Connection） （登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture）（登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture）（登録商標）等のプロトコルに従って行われる。
【００１２】
ホスト装置２は、ストレージ装置１０によって提供される記憶領域を利用する情報処理装置（コンピュータ）である。例えばホスト装置２は、パーソナルコンピュータ、メインフレーム（Mainframe）、オフィスコンピュータ等のハードウェアを用いて構成されている。ホスト装置２は、上記記憶領域へのアクセスに際し、ストレージ装置１０にデータＩ／Ｏ要求を送信する。
【００１３】
ストレージ装置１０は、一つ以上のチャネル基板１１、一つ以上のプロセッサ基板１２（Micro Processor）、一つ以上のドライブ基板１３、キャッシュメモリ１４（Cache Memory）、共有メモリ１５（Shared Memory）、内部スイッチ１６、記憶装置１７、及び保守装置１８（Service Processor）を備える。このうちチャネル基板１１、プロセッサ基板１２、ドライブ基板１３、キャッシュメモリ１４、及び共有メモリ１５は、内部スイッチ１６を介して互いに通信可能に接続されている。
【００１４】
チャネル基板１１は、ホスト装置２から送られてくるデータＩ／Ｏ要求（データ書き込み要求、データ読み出し要求等）を受け付け、受け付けたデータＩ／Ｏ要求についての処理の応答（例えば読み出したデータ、読み出し完了通知、書き込み完了通知）をホスト装置２に送信する。チャネル基板１１は、ホスト装置２と通信するためのプロトコル制御に関する機能を有する。また、本実施例のチャネル基板１１は、本実施例の基本的な構成である、ホスト装置２への仮想記憶領域の提供、及び仮想記憶領域に割り当てられたページ破棄機能を実現する機能ブロックであるチャネル制御部１１０のためのハードウェア基盤を提供している。これについては、後述する。
【００１５】
プロセッサ基板１２は、チャネル基板１１が受信した上記データＩ／Ｏ要求に応じて、チャネル基板１１、ドライブ基板１３、及びキャッシュメモリ１４の間で行われる、データ転送に関する処理を行う。プロセッサ基板１２は、例えばキャッシュメモリ１４を介して行われる、チャネル基板１１とドライブ基板１３の間のデータ（記憶装置１７から読み出したデータ、記憶装置１７に書き込むデータ）の引き渡し、キャッシュメモリ１４に格納されているデータについて、ステージング（記憶装置１７からのデータの読み出し）やデステージング（記憶装置１７への書き出し）を行う。
【００１６】
キャッシュメモリ１４は、例えば高速アクセスが可能なＲＡＭ（Random Access Memory）を用いて構成される。キャッシュメモリ１４には、記憶装置１７に書き込まれるデータ（以下、書き込みデータと称する。）や記憶装置１７から読み出されたデータ（以下、読み出しデータと記載する。）が格納される。共有メモリ１５には、ストレージ装置１０の制御に用いられる各種の情報が格納される。
【００１７】
ドライブ基板１３は、記憶装置１７からのデータの読み出しもしくは記憶装置１７へのデータの書き込みに際し、記憶装置１７との間で通信を行う。内部スイッチ１６は、例えば高速クロスバースイッチ（Cross Bar Switch）を用いて構成されている。内部スイッチ１６を介して行われる通信は、例えば、ファイバーチャネル、ｉＳＣＳＩ、ＴＣＰ／ＩＰなどのプロトコルに従って行われる。ドライブ基板１３は、前記のプロセッサ基板１２とともに、記憶装置１７へのデータＩ／Ｏを制御する機能を提供するディスク制御部１２０（後述）のハードウェア基盤を提供している。
【００１８】
記憶装置１７は、複数の記憶媒体（ハードディスクドライブ（Hard Disk Drive、以下「ＨＤＤ」）、半導体記憶装置（Solid State Drive、以下「ＳＳＤ」）、フレキシブルディスク、磁気テープ、光ディスク等）を備えて構成されている。以下の説明において、記憶装置１７は、例えばＳＡＳ（Serial Attached SCSI）、ＳＡＴＡ（Serial ATA）、ＦＣ（Fibre Channel）、ＰＡＴＡ（Parallel ATA）、ＳＣＳＩ等のタイプのＨＤＤ、もしくはＳＳＤ（以下、ＨＤＤやＳＳＤ等の記憶媒体を記憶ドライブ１７１と総称する。）を用いて構成されているものとする。
【００１９】
記憶装置１７は、記憶ドライブ１７１をＲＡＩＤ（Redundant Arrays of Inexpensive （or Independent) Disks）等の制御方式で制御することによって提供される記憶領域（例えばＲＡＩＤグループ（パリティグループ（Parity Group）の記憶領域））を用いて構成される論理装置（ＬＤＥＶ１７２（ＬＤＥＶ: Logical Device））を単位とする記憶領域を提供する。後述するように、ストレージ装置１０は、ホスト装置２に対し、ＬＤＥＶ１７２を用いて構成される論理的な記憶領域（以下、ＬＵ（Logical Unit）と称する。）を提供する。
【００２０】
図２にチャネル基板１１のハードウェア構成を示している。チャネル基板１１は、ホスト装置２と通信するためのポート（通信ポート）を有する外部通信インタフェース１１１（以下、外部通信Ｉ／Ｆ１１１と表記する。）、プロセッサ１１２（後述するフレーム処理チップ、フレーム転送チップを含む）、メモリ１１３、プロセッサ基板１２と通信するためのポート（通信ポート）を有する内部通信インタフェース（以下、内部通信Ｉ／Ｆ１１４と表記する。）を備える。
【００２１】
このうち外部通信Ｉ／Ｆ１１１は、例えばＮＩＣ（Network Interface Card）やＨＢＡ（Host Bus Adaptor）を用いて構成される。プロセッサ１１２は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）を用いて構成される。メモリ１１３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）である。内部通信Ｉ／Ｆ１１４は、内部スイッチ１６を介して、プロセッサ基板１２、ドライブ基板１３、キャッシュメモリ１４、共有メモリ１５と通信を行う。
【００２２】
図３にプロセッサ基板１２のハードウェア構成を示している。プロセッサ基板１２は、内部通信インタフェース１２１（以下、内部通信Ｉ／Ｆ１２１と表記する。）、プロセッサ１２２、及び共有メモリ１５に比べてプロセッサ１２２からのアクセス性能が高い（高速アクセスが可能な）メモリ１２３（ローカルメモリ）を備える。内部通信Ｉ／Ｆ１２１は、内部スイッチ１６を介してチャネル基板１１、ドライブ基板１３、キャッシュメモリ１４、共有メモリ１５と通信を行う。プロセッサ１２２は、例えばＣＰＵ、ＭＰＵ、ＤＭＡ（Direct Memory Access）である。メモリ１２３は、ＲＡＭ又はＲＯＭである。なお、プロセッサ１２２は、メモリ１２３及び共有メモリ１５の双方にアクセスすることができるが、プロセッサ１２２から見たアクセス速度はメモリ１２３の方が共有メモリ１５よりも高速であり（アクセス性能が高い）、このためメモリ１２３の方が共有メモリ１５よりもアクセスコストが小さい。
【００２３】
図４にドライブ基板１３のハードウェア構成を示している。ドライブ基板１３は、内部通信インタフェース１３１（以下、内部通信Ｉ／Ｆ１３１と表記する。）、プロセッサ１３２、メモリ１３３、及びドライブインタフェース１３４（以下、ドライブＩ／Ｆ１３４と表記する。）を備える。内部通信Ｉ／Ｆ１３１は、内部スイッチ１６を介して、チャネル基板１１、プロセッサ基板１２、キャッシュメモリ１４、共有メモリ１５と通信する。プロセッサ１３２は、例えばＣＰＵ、ＭＰＵである。メモリ１３３は、例えばＲＡＭ、ＲＯＭである。ドライブＩ／Ｆ１３４は、記憶装置１７と通信する。なお、チャネル基板１１、プロセッサ基板１２、ドライブ基板１３のハードウェアとしての割り付けは一例であり、他の形態の基板構成を採用してもよい。
【００２４】
図１に示した保守装置１８（Service Processor、以下「ＳＶＰ」）は、ＣＰＵ及びメモリを備えたコンピュータである。保守装置１８は、ストレージ装置１０の各構成要素の制御や状態監視を行う。保守装置１８は、内部スイッチ１６又はＬＡＮなどの通信手段を介してチャネル基板１１、プロセッサ基板１２、ドライブ基板１３、キャッシュメモリ１４、共有メモリ１５、及び内部スイッチ１６といったストレージ装置１０の構成要素と通信する。保守装置１８は、ストレージ装置１０の構成要素から随時稼働情報等を取得して管理装置３に提供する。保守装置１８は、管理装置３から送られてくる情報に従ってＬＤＥＶ１７２を備える記憶ドライブ１７１の閉塞処理等を指示したりすることができる。
【００２５】
図５に管理装置３として利用可能なコンピュータ（情報処理装置）の一例を示している。図５に示すように、コンピュータ３０は、ＣＰＵ３１、揮発性又は不揮発性のメモリ３２（ＲＡＭ又はＲＯＭ）、記憶装置３３（例えばＨＤＤ、ＳＳＤ）、キーボードやマウス等の入力装置３４、液晶モニタやプリンタ等の出力装置３５、及びＮＩＣやＨＢＡ等の通信インタフェース３６（以下、通信Ｉ／Ｆ３６と表記する。）を備える。管理装置３は、例えばパーソナルコンピュータやオフィスコンピュータである。管理装置３は、ストレージ装置１０と一体として構成しても（同一筐体に実装されていても）よい。管理装置３は保守装置１８とＬＡＮ等を介して通信可能に接続されている。管理装置３はストレージ装置１０の制御や監視のためのＧＵＩ（Graphical User Interface）やＣＬＩ（Command Line Interface）等を用いたユーザインタフェースを備える。
【００２６】
ホスト装置２へ提供される論理記憶領域の構成
以上のハードウェア基盤によってストレージシステム１において各ホスト装置２に提供される論理記憶領域の構成について、図６を参照して説明する。図６は、ストレージ装置１０によって記憶ドライブ１７１の実記憶領域がホスト装置２に論理記憶領域として提供される構成を模式的に示す図である。
【００２７】
ディスク制御部１２０は、ストレージ装置１０の記憶装置１７に備えられている記憶ドライブ１７１から、ＲＡＩＤグループ１７３を編成し、そのＲＡＩＤグループ１７３からＬＤＥＶ１７２を構成する。チャネル制御部１１０は、ＬＤＥＶ１７２を複数の単位論理記憶領域である論理ボリューム１７４（Logical Unit、ＬＵ）としてホスト装置２に提供する。
【００２８】
次に、チャネル制御部１１０及びディスク制御部１２０の機能についてより具体的に説明する。図７にチャネル制御部１１０のソフトウェア構成の一例を、図８にディスク制御部１２０のソフトウェア構成の一例を示している。
【００２９】
チャネル制御部１１０は、その主要な機能を受け持つ機能ブロックであるデータＩ／Ｏ部１１０１とチャネルコマンド制御部１１０２を備える。また、チャネル制御部１１０は、チャネルコマンド制御部１１０２がデータ処理を実行する際に参照するテーブルとして、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６、及びプール構成ＬＤＥＶ管理テーブル１１０７を備えている。
【００３０】
データＩ／Ｏ部１１０１、チャネルコマンド制御部１１０２の機能を有するプログラムと、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６、及びプール構成ＬＤＥＶ管理テーブル１１０７は、チャネル基板１１のメモリ１１３に格納されている。プロセッサ１１２が前記プログラムをメモリ１１３から読み出して実行することにより、データＩ／Ｏ部１１０１及びチャネルコマンド制御部１１０２の機能が実現される。なお、管理テーブル類は、共有メモリ１４に格納してもよい。
【００３１】
データＩ／Ｏ部１１０１は、ホスト装置２及びディスク制御部１２０との間でのデータ入出力処理を実行する。
【００３２】
チャネルコマンド制御部１１０２は、ホスト装置２に記憶デバイス１７１から作成されるＬＵ１７４を提供する。すなわち、チャネルコマンド制御部１１０２は、ホスト装置２からＬＵ１７４に対して発行されるコマンドを受信して処理し、実記憶領域の単位であるＬＤＥＶ１７２へのアクセスへと変換する。前記のように、ＬＤＥＶ１７２は、複数の記憶デバイス１７１から構成されるＲＡＩＤグループ１７３の一部分を論理的に切り出して作成されたボリュームである。
【００３３】
本実施例では、ホスト装置２に提供される論理記憶領域として、記憶デバイス１７１の物理記憶領域の一部を直接切り出して作成した実記憶領域とともに、ホスト装置２からのアクセスは受け付けるが、ホスト装置２に提供する実記憶領域をあらかじめ用意せず、実際に利用する際に割り当てて提供する仮想ＬＤＥＶを提供することができる。本実施例では、ＬＵ１７４は実記憶領域を備えたＬＤＥＶ１７２あるいは仮想ＬＤＥＶに割り当てられる。仮想ＬＤＥＶに割り当てられているＬＵ１７４を、以下仮想ＬＵと呼ぶ。仮想ＬＤＥＶ及び仮想ＬＵについては後述する。
【００３４】
ディスク制御部１２０は、ＲＡＩＤ制御部１２０１、ＨＤＤ制御部１２０２、及びデータＩ／Ｏ部１２０３を備えている。ドライブ基板１３のメモリ１３３には、ＲＡＩＤ制御部１２０１、ＨＤＤ制御部１２０２、及びデータＩ／Ｏ部１２０３の機能を有するプログラムが格納されている。プロセッサ１３２がこれらのプログラムをメモリ１３３から読み出して実行することにより、ＲＡＩＤ制御部１２０１、ＨＤＤ制御部１２０２、及びデータＩ／Ｏ部１２０３の機能が実現される。
【００３５】
ＲＡＩＤ制御部１２０１は、複数のＨＤＤ（記憶ドライブ）１７１からＲＡＩＤグループ１７３を構成し、チャネル制御部１１０のチャネルコマンド制御部１１０２にＬＤＥＶ１７２を提供する。ＨＤＤ制御部１２０２は、ＲＡＩＤ制御部１２０１の要求に応じて、ＨＤＤ１７１に対し、データの読み取り、書き込み処理を実行する。データＩ／Ｏ部１２０３は、チャネル制御部１１０及び記憶装置１７との間のデータ入出力処理を実行する。
【００３６】
シンプロビジョニング機能の説明
次に、仮想ＬＤＥＶ１９１を用いて実現されるシンプロビジョニング機能の構成について説明する。図９に、シンプロビジョニング機能を提供する構成の概要を模式的に示している。
【００３７】
前記したように、シンプロビジョニング機能とは、ストレージ装置１０において記憶資源を有効利用するための技術である。シンプロビジョニング機能は、ストレージ装置１０が実記憶領域をもたない仮想ボリューム１９０（仮想ＬＵ１９２と仮想ＬＤＥＶ１９１をあわせたボリューム）を上位装置であるホスト装置２に提供するもので、この仮想ＬＵ１９２にはプールと呼ぶ実記憶領域の集合として構成されるプール領域１８０を対応させている。
【００３８】
ホスト装置２が仮想ＬＵ１９２にアクセスすると、チャネル制御部１１０のチャネルコマンド制御部１１０２が、記憶装置１７において、動的にホスト装置２がアクセスした仮想ボリューム１９０の仮想記憶領域に、プール領域１８０に含まれるＬＤＥＶ１７２によって提供される実記憶領域を割り当てる。前記のように、仮想ボリューム１９０に対して割り当てられたこのＬＤＥＶ１７２に基づく実記憶領域の割り当て単位を「ページ」ということとする。
【００３９】
このシンプロビジョニング機能によれば、１つのプール領域１８０に複数の仮想ボリューム１９０を対応させることができるため、ストレージ装置１０は見かけ上記憶装置１７に実装されている記憶デバイス１７１の実記憶容量よりも大きな容量を持つ仮想ボリューム１９０をホスト装置２に提供することができる。プール領域１８０に含まれる実記憶領域が不足してきた場合には、ストレージシステム１を停止して論理ボリュームを再構築する必要がなく、実記憶領域を提供する記憶デバイス１７１を増設するだけですむ。したがって、シンプロビジョニング機能によれば、ストレージシステム１導入時に用意しておく実記憶容量に関するコストの削減と増設時の運用管理コストを低減することができるという利点がある。
【００４０】
図９を参照すると、シンプロビジョニング機能を利用した場合、ホスト装置２は仮想ＬＵ１９２を介して仮想ＬＤＥＶ１９１にアクセスする。仮想ＬＤＥＶ１９１にはプール領域１８０を構成するＬＤＥＶ１７２によって提供される実記憶領域がページ単位で対応付けられているため、ホスト装置２がアクセスする仮想ＬＵ１９２には、必要に応じて仮想ＬＤＥＶ１９１を介してＬＤＥＶ１７２が提供する実記憶領域がページとして割り当てられることになる。
【００４１】
ホスト装置２にアクセスされる仮想ＬＵ１９２と、仮想ＬＤＥＶ１９１及びＬＤＥＶ１７２の実記憶領域との間は、後述するマッピング情報を格納している管理テーブルによって管理される。ホスト装置２から仮想ボリューム１９０にアクセスすると、ストレージ装置１０では動的にマッピングが実行され、ストレージ装置１０はこのマッピング情報を利用し、仮想ボリューム１９０と実記憶領域の対応関係を判断する。
【００４２】
具体的には、チャネル制御部１１０のチャネルコマンド制御部１１０２がシンプロビジョニング機能を担当する。この際に、チャネルコマンド制御部１１０２は、チャネル基板１１のメモリ１１３に格納されている、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６、及びプール構成ＬＤＥＶ管理テーブル１１０７を参照して仮想ボリューム１９０と実記憶領域との対応関係を管理する。以下、各管理テーブルについて説明する。
【００４３】
ＬＵ管理テーブル１１０３
ＬＵ管理テーブル１１０３は、ホスト装置２からアクセスを受け付けるＬＵ１７４の一覧と、そのＬＤＥＶ１７２との対応付けを管理するためのテーブルである。図１０に、ＬＵ管理テーブル１１０３の一例を示している。
【００４４】
ＬＵ管理テーブル１１０３には、ポート番号１１０３１、ＬＵＮ１１０３２、ＬＤＥＶ番号１１０３３、及び仮想ボリュームビット１１０３４の各項目が対応付けて格納されている。
【００４５】
ポート番号１１０３１は、チャネル制御部１１０がホスト装置２と通信するために指定されている通信ポートを示す識別符号である。ＬＵＮ１１０３２は、ホスト装置２が対応するポート番号１１０３１で指定される通信ポートを介してアクセスするＬＵ１７４に付与された識別符号であるＬＵＮ（Logical Unit Number）である。
【００４６】
ＣＵ＃：ＬＤＥＶ＃として示されているＬＤＥＶ番号１１０３３は、ＬＵＮ１１０３２で特定されるＬＵ１７４に対応付けられている論理制御装置（Control Unit、ＣＵ）とＬＤＥＶ１７２との組み合わせであり、符号＃は「番号」を意味している。ＣＵは、本実施例ではチャネル制御部１１０とディスク制御部１２０との組み合わせに相当し、ホスト装置２からのアクセスを受け付けて処理する論理的に捉えた制御装置の一組を示している。
【００４７】
本願では理解を容易にするため、例えば図１０に示すように、ＬＵ１７４に仮想ＬＤＥＶ１９１が対応付けられる場合、ＬＤＥＶ＃に符号「＊」を付して識別可能としている。仮想ボリュームビット１１０３４は、仮想ＬＤＥＶ番号１１０３３に格納されているＬＤＥＶが固定された実記憶領域で構成されるＬＤＥＶ１７２（以下必要に応じて「実ＬＤＥＶ１７２」という。））であるか、仮想ＬＤＥＶ１９１であるかの区別を示す識別符号である。仮想ボリュームビット１１０３４が０の場合、対応付けられているのが実ＬＤＥＶ１７２であることを、１の場合、仮想ＬＤＥＶ１９１であることを示している。図１０の例では、第１のレコードは実ＬＤＥＶ１７２に関し、第２のレコードは仮想ＬＤＥＶ１９１に関することを示している。
【００４８】
仮想ＬＤＥＶ管理テーブル１１０４
仮想ＬＤＥＶ管理テーブル１１０４は、ストレージ装置１０が保持している仮想ＬＤＥＶ１９１の一覧と、その仮想ＬＤＥＶ１９１とマッピングされるプール領域１８０との対応付けを管理するためのテーブルである。図１１に、仮想ＬＤＥＶ管理テーブル１１０４の一例を示している。
【００４９】
仮想ＬＤＥＶ管理テーブル１１０４には、仮想ＬＤＥＶ１９１を特定するＣＵ＃：ＬＤＥＶ＃で表された仮想ＬＤＥＶ番号１１０４１と、その仮想ＬＤＥＶ１９１を構成している実記憶領域が属するプール領域１８０を識別するための識別符号であるプール番号１１０４２とが対応付けて格納されている。
【００５０】
プール管理テーブル１１０５
プール管理テーブル１１０５は、ストレージ装置１０が保持しているプール領域１８０と、そのプール領域１８０を構成する実ＬＤＥＶ１７２とを対応付けて管理するためのテーブルである。図１２に、プール管理テーブル１１０５の一例を示している。
【００５１】
プール管理テーブル１１０５には、プール番号１１０５１と、プール構成ＬＤＥＶリスト１１０５２とが対応付けて格納されている。プール番号１１０５１は、図１１の仮想ＬＤＥＶ管理テーブル１１０４におけるプール番号１１０４２と同じである。プール構成ＬＤＥＶリスト１１０５２は、対応するプール番号１１０５１で特定されるプール領域１８０を構成している実ＬＤＥＶ１７２（プール構成ＬＤＥＶ）のリストであり、各実ＬＤＥＶ１７２は、担当する論理制御装置番号（ＣＵ＃）と含まれる実ＬＤＥＶ１７２を識別する番号であるＬＤＥＶ番号（ＬＤＥＶ＃）との組み合わせで表されている。
【００５２】
マッピング管理テーブル１１０６
マッピング管理テーブル１１０６は、各仮想ＬＤＥＶ１９１について、仮想ＬＤＥＶ１９１内のアドレスと割り当てられたプール領域１８０内のプール構成ＬＤＥＶ１７２の実記憶領域アドレスとの対応関係を保持するための管理テーブルである。図１３に、マッピング管理テーブル１１０６の一例を示している。
【００５３】
マッピング管理テーブル１１０６には、各仮想ＬＤＥＶ１９１について、ページ番号１１０６２、仮想ＬＤＥＶアドレス１１０６３、プール構成ＬＤＥＶ１１０６４、及び実記憶領域アドレス１１０６５が対応付けて記憶されている。
【００５４】
仮想ＬＤＥＶ１１０６１は、仮想ＬＤＥＶ１９１を識別符号ＣＵ＃：ＬＤＥＶ＃で特定している。ページ番号１１０６２は、仮想ＬＤＥＶ１１０６１で特定される仮想ＬＤＥＶ１９１に含まれる単位実記憶領域であるページを識別するための識別符号が記録される。
【００５５】
仮想ＬＤＥＶアドレス１１０６３は、対応する仮想ＬＤＥＶ１９１内での、先頭ブロックアドレスである。プール構成ＬＤＥＶ番号１１０６４は、ページ番号１１０６２で特定されるページに対応付けられている実ＬＤＥＶ１７２を特定する識別符号である。実記憶領域アドレス１１０６５は、対応するプール構成ＬＤＥＶ番号１１０６４により特定される実記憶領域の先頭ブロックアドレスである。
【００５６】
マッピング管理テーブル１１０６はストレージ装置１０に生成されている仮想ＬＤＥＶ１９１毎に保持されており、各仮想ＬＤＥＶ１９１に割り当てられているページと実記憶領域とをブロックアドレスレベルで対応付けている。
【００５７】
プール構成ＬＤＥＶ管理テーブル１１０７
プール構成ＬＤＥＶ管理テーブル１１０７は、プール構成ＬＤＥＶに含まれる実記憶領域が、どのように仮想ＬＤＥＶ１９１の領域にマッピングされているかを示すための管理テーブルである。図１４に、プール構成ＬＤＥＶ管理テーブル１１０７の一例を示している。
【００５８】
プール構成ＬＤＥＶ管理テーブル１１０７には、プール構成ＬＤＥＶ番号１１０７１と、制御ビット配列へのポインタ１１０７２が対応付けて格納されている。プール構成ＬＤＥＶ番号１１０７１は、図１３のマッピング管理テーブル１１０６のプール構成ＬＤＥＶ番号１１０６４と同じである。制御ビット配列へのポインタ１１０７２は、各プール構成ＬＤＥＶ番号１１０７１のマッピング状態をあらわす制御ビット配列（制御情報）へのポインタを示している。図１４に模式的に示すように、制御ビット配列は、ビット配列の先頭をプール構成ＬＤＥＶ１１０７１のアドレス０とし、以降アドレス順に制御ビットが設定されている。制御ビットが０のときは、このプール構成ＬＤＥＶ１１０７１内のアドレスの箇所（記憶領域）は仮想ＬＤＥＶ１９１にマッピングされていないこと、すなわち新たに仮想ＬＤＥＶ１９１に割当てが可能であることを示している。一方、制御ビットが１の場合は、そのブロックが仮想ＬＤＥＶ１９１にマッピング済であることを示している。
【００５９】
図１４の例では、プール構成ＬＤＥＶ番号１１０７１が０２：０１の場合、アドレス０、１の領域は仮想ＬＤＥＶにマッピング済であり、アドレス２の領域は仮想ＬＤＥＶにマッピングされていないことを表す。
【００６０】
ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６、及びプール構成ＬＤＥＶ管理テーブル１１０７は、チャネルコマンド制御部１１０からアクセス可能なメモリ、例えば、共有メモリ１５、チャネル制御部１１０を構成するチャネル基板１１に設けられているローカルメモリであるメモリ１１３に格納される。
【００６１】
ホスト装置２からのアクセスに対する実記憶領域割当て処理
次に、仮想ＬＵ１９２を含むストレージ装置１０に対してホスト装置２からアクセス（データＩ／Ｏ要求）が発せられた場合に、ストレージ装置１０で実行される実記憶領域割当て処理について説明する。図１５に、この実記憶領域割当て処理の処理フローの一例を示している。
【００６２】
ストレージ装置１０に実装されているチャネルコマンド制御部１１０２は、ホスト装置２からのアクセスコマンド（データＩ／Ｏ要求）の受領を待機しており（Ｓ１５０１、Ｎｏ）、受領した場合（Ｓ１５０１、Ｙｅｓ）、ＬＵ管理テーブル１１０３を参照して、コマンドに含まれるＬＵＮ１１０３２で特定されるアクセス対象のＬＵ１７４の仮想ボリュームビット１１０３４が１であるか判定する（Ｓ１５０２）。仮想ボリュームビット１１０３４が１でないと判定した場合（Ｓ１５０２、Ｎｏ）、チャネルコマンド制御部１１０２は、ＬＵ管理テーブル１１０３で特定された実ＬＤＥＶ１７２に割り当てられている実記憶領域へマッピングする（Ｓ１５０４）。
【００６３】
ホスト装置２から受領したコマンドに含まれるＬＵＮ１１０３２に対する仮想ボリュームビット１１０３４が１であると判定した場合（Ｓ１５０２、Ｙｅｓ）、チャネルコマンド制御部１１０２は、ＬＵ管理テーブル１１０３を参照して、当該ＬＵＮ１１０３２をＬＤＥＶ番号１１０３３に変換する（Ｓ１５０３）。
【００６４】
そして、チャネルコマンド制御部１１０２は、このＬＤＥＶ番号１１０３３が、マッピング管理テーブル１１０６に未登録であるか判定する（Ｓ１５０５）。登録済みであると判定した場合（Ｓ１５０５、Ｎｏ）、チャネルコマンド制御部１１０２は、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、及びマッピング管理テーブル１１０６を参照して、実記憶領域アドレス１１０６５から対応付けを行い、当該実記憶領域に対してホスト装置２からのアクセス処理を実行する（Ｓ１５０８）。
【００６５】
該仮想ＬＤＥＶ１９１がマッピング管理テーブル１１０６に未登録であると判定した場合（Ｓ１５０５、Ｙｅｓ）、チャネルコマンド制御部１１０２は、プール管理テーブル１１０５に登録されている、仮想ＬＤＥＶ１１０４１に対応するプール番号１１０４２で特定されるプール構成ＬＤＥＶリスト１１０５２を取得する（Ｓ１５０６）。
【００６６】
次いで、チャネルコマンド制御部１１０２は、自身の任意のレジスタ等に、ホスト装置２からのアクセスに対応する仮想ＬＤＥＶ１１０３３が存在するか調べるために設定される変数であるＬＤＥＶ空き容量チェック変数Ａ（Ａは１以上の整数とする）に１を設定する初期化処理を実行し（Ｓ１５０７）、プール構成ＬＤＥＶリスト１１０５２のＡ番目に記録されているＬＤＥＶ１７２の情報を参照する（Ｓ１５０９）。チャネルコマンド制御部１１０２は、要求されたＡ番目のプール構成ＬＤＥＶ１１０７１が存在するか判定し（Ｓ１５１０）、存在しないと判定した場合（Ｓ１５１０、Ｎｏ）、アクセス要求に割当て可能なプール構成ＬＤＥＶ１１０７１が不足しているので、管理装置３へプール構成ＬＤＥＶ１１０７１の不足を通知する（Ｓ１５１３）。
【００６７】
プール構成ＬＤＥＶ１１０７１が利用可能であると判定した場合（Ｓ１５１０、Ｙｅｓ）、チャネルコマンド制御部１１０２は、プール構成ＬＤＥＶ管理テーブル１１０７を参照して利用可能であるプール構成ＬＤＥＶ１１０７１に対応する制御ビット配列を取得し（Ｓ１５１１）、その取得した制御ビット配列に０が含まれているか判定する（Ｓ１５１２）。制御ビット配列に０が含まれていないと判定した場合（Ｓ１５１２、Ｎｏ）、対象のプール構成仮想ＬＤＥＶ１１０７１に利用可能な実記憶領域（空き領域）が存在しないので、チャネルコマンド制御部１１０２は、ＬＤＥＶ空き容量チェック変数Ａを１増加させて（Ｓ１５１４）、Ｓ１５０９へ処理を戻し、次のプール構成ＬＤＥＶ１１０７１の情報を取得する。
【００６８】
制御ビット配列に０が含まれていると判定した場合（Ｓ１５１２、Ｙｅｓ）、チャネルコマンド制御部１１０２は、０が記録されている当該制御ビットの値を１へ変更し（Ｓ１５１５）、マッピング管理テーブル１１０６に記録されているホスト装置２のアクセス先仮想ＬＵ１９２に対応する仮想ＬＤＥＶ１９１について、割り当てた実記憶領域アドレス１１０６５に対応するページ番号１１０６２、仮想ＬＤＥＶアドレス１１０６３、プール構成ＬＤＥＶ番号１１０６４を登録（マッピング）する（Ｓ１５１６）。そして、その割り当てた実記憶領域に対して、ホスト装置２のコマンドに指定されている処理（リード、ライト等）を実行する（Ｓ１５１７）。
【００６９】
以上説明したように、シンプロビジョニング機能により、ホスト装置２から仮想ＬＵ１９２へ実際にアクセスがあった場合に実記憶領域を割り当てる構成を実現し、あらかじめストレージ装置１０に実装する記憶容量を抑制することができる。
【００７０】
割当て済み実記憶領域破棄処理
次に、上記のようにして仮想ＬＵ１９２に割り当てられた実記憶領域を、再び未割当て領域に戻すための処理について説明する。以下この処理のことをページ破棄処理という。図１６に、ページ破棄処理フローの一例を示している。
【００７１】
このページ破棄処理は、一度仮想ＬＵ１９２に割り当てた実記憶領域について、マッピング管理テーブル１１０６に記録されている対応レコードを削除することで実現される。このページ破棄処理は、チャネル制御部１１０に実装されているチャネルコマンド制御部１１０２により実行される。
【００７２】
まず、チャネルコマンド制御部１１０２は、実記憶領域が割り当て済の仮想ボリューム１９０に含まれる実記憶領域アドレス（ページ）のうち、破棄対象となるページをホスト装置２から受領する（Ｓ１６０１）。すなわち、例えばストレージシステム１のユーザが、ホスト装置２から破棄対象となるページを特定する情報を含めたコマンドをチャネル制御部１１０に送る。コマンドを受領したチャネル制御部１１０のチャネルコマンド制御部１１０２は、マッピング管理テーブル１１０６から仮想ボリューム１９０内のページに対応するプール構成ＬＤＥＶ番号１１０６４と実記憶領域アドレス１１０６５とを取得する（Ｓ１６０２）。
【００７３】
そして、チャネルコマンド制御部１１０２は、マッピング管理テーブル１１０６から、対応するページ番号１１０６２、仮想ボリュームアドレス１１０６３、プール構成ＬＤＥＶ番号１１０６４、及び実記憶領域アドレス１１０６５の情報を含むレコードを削除する（Ｓ１６０３）。チャネルコマンド制御部１１０２は、プール構成ＬＤＥＶ管理テーブル１１０７において、対象となるプール構成ＬＤＥＶ１１０７１について、仮想ＬＤＥＶ１１０６１に対応するアドレスの制御ビット配列のビットを０に変更する（Ｓ１６０４）。
【００７４】
以上説明した構成により、仮想ボリューム１９０のプール構成ＬＤＥＶ１１０６４（実記憶領域）への割り当てが破棄され、ホスト装置２が実記憶領域を有効に利用することができる。
コピーペアが構成されている場合のページ破棄処理
【００７５】
次に、２つの論理ボリューム、正ボリュームと副ボリュームとがコピーペアを構成している場合のページ破棄処理について説明する。ここでコピーペアとは、正ボリュームに格納されているデータのコピー先として指定された副ボリュームが組み合わされてなる、論理ボリュームのペア構成を意味している。以下、１台のストレージ装置１０内でコピーペアが構成されているローカルコピー構成、少なくとも２台の異なるストレージ装置１０間でコピーペアが構成されているリモートコピー構成、及び正ボリュームから副ボリュームへのデータ書き込み順序まで再現すべく、正副ジャーナルボリュームを付加したリモートコピー構成の３つの場合について、順次説明する。
【００７６】
なお、本実施例のページ破棄処理は、コピーペアが置かれている状態によって処理内容を変えるため、上記の各コピーペア構成について、ペア状態とサスペンド状態とに分類して説明することにする。
【００７７】
ペア状態とは、コピーペアを構成している正ボリュームと副ボリュームの間での差分データが、正ボリュームから副ボリュームへ定期的にコピーされる状態である。ペア状態では、ホスト装置２は正ボリュームにのみデータ書き込みを実行できるため、正ボリュームと副ボリュームの格納データには差分が生じる。この差分が、正ボリュームから副ボリュームへの定期的なデータコピーによって解消される。このデータコピーは、ホスト装置２から正ボリュームにデータが書き込まれる都度実行してもよい。
【００７８】
サスペンド状態とは、コピーペアを構成している正ボリュームと副ボリュームのペアが分割されている状態であり、定期的な差分コピーにより正副ボリューム間の同期をとる処理は実行されず、副ボリュームに対してもホスト装置２はデータ書き込みが可能である。この状態でストレージ装置１０がホスト装置２から再同期化のコマンドを受領すると、ストレージ装置１０では差分データが正ボリュームから副ボリュームへとコピーされ、正ボリュームと副ボリュームの格納データが一致し、コピーペアの状態もサスペンド状態からペア状態へ移行する。
【００７９】
ローカルペア（ペア状態）でのページ破棄処理
ここでのページ破棄処理では、ローカルコピーのコピーペアを構成している正ボリュームから副ボリュームへデータコピー処理を実行するときに、ページ破棄情報を設定することによってページ破棄処理を実行する。
【００８０】
本実施例におけるローカルコピー構成を備えたストレージ装置１０の構成の一例を図１７に模式的に示している。図１〜図８に関して説明したように、ストレージ装置１０は、チャネル制御部１１０及びディスク制御部１２０を備え、チャネル制御部１１０によってホスト装置２からのコマンドを受信する。ローカルコピーのペアを構成している正ボリュームと副ボリュームとの間でのデータコピー処理は、チャネル制御部１１０のチャネルコマンド制御部１１０２によって管理される。プール領域１８０には、仮想ＬＤＥＶ１９１に実記憶領域であるページを割り当てるために、実ＬＤＥＶ１７２が作成されている。ここで、各実ＬＤＥＶ１７２は、プール構成ＬＤＥＶでもある。
【００８１】
共有メモリ１５には、本実施例のページ破棄処理を実行するためにチャネルコマンド制御部１１０２によって利用される管理テーブル群である、ページ破棄管理テーブル１５１、差分ビットマップ１５２、及びペア状態管理テーブル１５３が保持されている。
【００８２】
ページ破棄コマンド１８００
本実施例では、ストレージシステム１のユーザ等が、ホスト装置２から不要となったページのアドレスを含むページ破棄コマンドを、正ボリューム（仮想ＶＯＬ１）１３１に対して発行する。図１８に、ページ破棄コマンド１８００のデータ構造例を示している。ページ破棄コマンド１８００は、コマンドの内容が記録されているコマンド部１８１０と、コマンドによって処理されるデータが格納されているデータ部１８２０とを備えている。
【００８３】
コマンド部１８１０は、オペレーションコード１８１１、ページ破棄ビット１８１２、書き込み先頭アドレス１８１３、及びデータ長１８１４を有する。
【００８４】
オペレーションコード１８１１は、受信側であるチャネル制御部１１０あるいはディスク制御部１２０のプロセッサ１１２、１２２に実行させたい命令の種類をあらわすコードである。ページ破棄ビット１８１２は、コマンドとしてページを破棄する場合は１を、ページを破棄しない場合は０を記録しており、通常のデータ書き込みコマンド等とページ破棄コマンドとを区別する。書き込み先頭アドレス１８１３は、ライト処理を実行する先頭アドレスを表す。データ長１８１４は、書き込み先頭アドレス１８１３からデータ部１８２０に記録されているデータの内容を書き込むデータ長が記録される。
【００８５】
差分ビットマップ１９００（１５２）
図１９に、差分ビットマップ１９００の一例を示している。図１９の差分ビットマップ１９００は、正ボリューム１３１及び副ボリューム１３２の最小データ格納領域としてスロット（サイズ：例えば５１２バイト）を採用した場合を示しており、スロット番号１９０１、正ボリューム側差分ビット１９０２、及び副ボリューム側差分ビット１９０３が対応付けて記録されている。正ボリューム側差分ビット１９０２、又は副ボリューム側差分ビット１９０３に１が記録されている場合、対応するスロット番号１９０１で特定されるスロットには、正副ボリューム間でデータに差分が発生していることを示している。
【００８６】
差分ビットマップ１９００による差分管理の単位は、分解能と管理テーブルの容量のトレードオフとなる。スロットと呼ばれる最小の記憶領域単位により差分を管理すれば、分解能を高められ記憶領域の利用効率を高めることができ、シリンダ等のより大きな記憶領域単位を利用すれば分解能は下がるが、管理テーブルの容量を小さくできる。本実施例では、実記憶領域の単位であるページは、複数のスロットから構成される（以下同じ）。
【００８７】
ページ破棄管理テーブル２０００（１５１）
図２０Ａ、図２０Ｂに、本実施例のページ破棄管理テーブル２０００の一例を示している。ページ破棄管理テーブル２０００は、ページ破棄処理を実行する対象となる記憶領域を特定するために利用される。ページ破棄管理テーブル２０００には、破棄対象となる記憶領域を示すページ番号２００１（図２０Ａに、論理制御装置番号ＣＵ＃及びＬＤＥＶ番号ＬＤＥＶ＃とともにＣＵ＃：ＬＤＥＶ＃：ページ＃として記録）又は仮想ＬＤＥＶ番号２００１（図２０Ｂに、論理制御装置番号ＣＵ＃とともにＣＵ＃：ＬＤＥＶ＃として記録）と、ページ破棄ビット２００２とが対応付けて記録されている。ページ破棄ビット２００２が１となっている記憶領域（ページ、ＬＤＥＶ２００１等）について、後述するページ破棄処理が実行されることを示している。
【００８８】
ページ破棄処理
図２１に、本実施例におけるページ破棄処理フローの一例を示している。このページ破棄処理は、ホスト装置２からページ破棄要求を受けた正ボリューム１３１、副ボリューム１３２で実行される処理であり、各コピーペア構成におけるページ破棄処理において共通して実行される。ページ破棄処理を実現するプログラムは例えば共有メモリ１５に格納され、ホスト装置２からページ破棄要求を受け付けたチャネルコマンド制御部１１０２によって実行される。
ページ破棄処理は、ホスト装置２からのデータＩ／Ｏ要求とは非同期に実行される。
【００８９】
チャネルコマンド制御部１１０２によってページ破棄処理が起動されると（Ｓ２１０１）、チャネルコマンド制御部１１０２は、受信したコマンドから破棄対象となっているページ（他の管理単位であれば、ＬＤＥＶ１７２等の他の単位）のリストを取得する（Ｓ２１０２）。コマンドを受領したチャネル制御部１１０のチャネルコマンド制御部１１０２は、マッピング管理テーブル１１０６から、破棄対象となっているページについて、仮想ボリューム１９０内のページに対応するプール構成ＬＤＥＶ番号１１０６４と実記憶領域アドレス１１０６５とを取得する（Ｓ２１０３）。
【００９０】
そして、チャネルコマンド制御部１１０２は、マッピング管理テーブル１１０６から、対応するページ番号１１０６２、仮想ボリュームアドレス１１０６３、プール構成ＬＤＥＶ１１０６４、及び実記憶領域アドレス１１０６５の情報を含むレコードを削除する（Ｓ２１０４）。チャネルコマンド制御部１１０２は、プール構成ＬＤＥＶ管理テーブル１１０７において、対象となるプール構成ＬＤＥＶ１１０７１について、仮想ＬＤＥＶ１１０６１に対応するアドレスの制御ビット配列のビットを０に変更する（Ｓ２１０５）。
【００９１】
最後に、チャネルコマンド制御部１１０２は、破棄したページについて、ページ破棄管理テーブル２０００のページ破棄ビット２００２を０に変更して処理を終了する（Ｓ２１０６）。
【００９２】
以上の構成により、正ボリューム１３１、副ボリューム１３２について、ホスト装置２から指定されたページを破棄することができる。
【００９３】
ペア状態管理テーブル２２００
図２２に、本実施例におけるペア状態管理テーブル２２００の一例を示している。ペア状態管理テーブル２２００は、コピーペアを構成している正ボリューム１３１と副ボリューム１３２との対応関係を表しており、正ボリュームスロット番号２２０１、副ボリュームスロット番号２２０２、及びペア状態２２０３が対応付けて記録されている。正ボリュームスロット番号２２０１で特定される記憶領域に格納されているデータが、対応する副ボリュームスロット番号２２０２で特定される記憶領域にコピーされていることが示されている。また、正ボリュームスロット番号２２０１、副ボリュームスロット番号２２０２の各対応関係について、そのペア状態が「ペア」であるか「サスペンド」であるか、ペア状態２２０３に記録されている。ペア状態はスロット毎に管理されており、各スロットは、論理制御装置番号、ＬＤＥＶ番号、及びスロット番号の組み合わせ（ＣＵ＃：ＬＤＥＶ＃：スロット＃）で特定される。
【００９４】
ローカルコピー構成（ペア状態）におけるページ破棄処理フロー
以上の構成を踏まえ、ローカルコピー構成（ペア状態）におけるページ破棄処理フローについて説明する。図２３に、当該処理フローの一例を示している。
【００９５】
まず、正ボリューム１３１を管理しているチャネル制御部１１０に実装されているチャネルコマンド制御部１１０２は、ホスト装置２からのページ破棄コマンド受信を待機する（Ｓ２３０１、Ｎｏ）。ホスト装置２が発行したページ破棄コマンドは、チャネル制御部１１０のチャネルコマンド制御部１１０２によって受信され（Ｓ２３０１、Ｙｅｓ）、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、及びマッピング管理テーブル１１０６により、コマンドに指定されているページ番号１１０６２に対応するプール領域１８０内のプール構成ＬＤＥＶ１１０６４のアドレスを取得する（Ｓ２３０２）。
【００９６】
チャネルコマンド制御部１１０２は、取得したアドレスに対してディスク制御部１２０へ０データを書き込む指示を発行し、ディスク制御部１２０により実ＬＤＥＶ１７２に０データを書き込む（Ｓ２３０３）。
【００９７】
正ボリューム１３１に対して０データを書き込んだことにより、正ボリューム１３１と副ボリューム１３２との間でデータの差分が発生する。そのため、チャネルコマンド制御部１１０２は、差分ビットマップ１９００において、０データの書き込みが実行された箇所の正ボリューム側差分ビット１９０２に１を設定する（Ｓ２３０４）。
【００９８】
次に、チャネルコマンド制御部１１０２は、共有メモリ１５内のページ破棄管理テーブル２０００の対応するページ２００１に対するページ破棄ビット２００２を１に設定する（Ｓ２３０５）。
【００９９】
次に、チャネルコマンド制御部１１０２は、図２１に示したページ破棄処理を起動させ（Ｓ２３０６）、正ボリューム側のページを破棄し、その時点で、ホスト装置２に対して０データの書き込み完了を通知する（Ｓ２３０７）。
【０１００】
次に、チャネルコマンド制御部１１０２は、共有メモリ１５内のペア状態管理テーブル２２００において、該当するスロットのアドレスのペア状態を確認する（Ｓ２３０８）。図２３では、該当するスロットのペア状態が「ペア」であった場合についての処理を示している。ペア状態管理テーブル２２００においてペア状態２２０３が「ペア」の場合は、定期的に正ボリューム１３１から副ボリューム１３２へ差分データがコピーされる。
【０１０１】
チャネルコマンド制御部１１０２は、共有メモリ１５内の差分ビットマップ１９００を参照し、正ボリューム側差分ビット１９０２又は副ボリューム側差分ビット１９０３のどちらか一方にでも１が設定されているスロットのリストを得る（Ｓ２３０９）。そして、チャネルコマンド制御部１１０２は、マッピング管理テーブル１１０６を参照して、そのリストに記録されているスロットに対応するアドレスについて、ページ破棄管理テーブル２０００から以下の状態Ａ、状態Ｂのいずれかの条件が成立しているか判定する（Ｓ２３１０）。
【０１０２】
状態Ａ：差分ビットマップ１９００の正ボリューム側差分ビット１９０２又は副ボリューム側差分ビット１９０３のどちらか一方にでも１が設定されているページについて、ページ破棄管理テーブル２０００の対応するページ破棄ビット２００２が１、又は当該ページについて全データが０
【０１０３】
状態Ｂ：差分ビットマップ１９００において、正ボリューム側差分ビット１９０２又は副ボリューム側差分ビット１９０３のどちらか一方にでも１が設定されている箇所のページが未割り当て
【０１０４】
状態Ｂは、マッピング管理テーブル１１０６において、正ボリューム側差分ビット１９０２又は副ボリューム側差分ビット１９０３のどちらか一方が１のスロットに該当するアドレスを含むページが存在しないことを示している。すなわち、ページ破棄処理が完了し、既にページが破棄済であることを示している。
【０１０５】
Ｓ２３１０で状態Ａでも状態Ｂでもないと判定された場合（Ｓ２３１０、Ｎｏ）、ページ破棄対象となるページがないため、チャネルコマンド制御部１１０２は、正ボリューム１３１に格納されているデータを副ボリューム１３２に送信して処理を終了する（Ｓ２３１３）。
【０１０６】
Ｓ２３１０で、状態Ａ又は状態Ｂが成立していると判定した場合（Ｓ２３１０、Ｙｅｓ）、チャネルコマンド制御部１１０２は、ペア状態管理テーブル２２００又はＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６、及びプール構成ＬＤＥＶ管理テーブル１１０７を検索し、正ボリューム１３１に対応する副ボリューム１３２が仮想ボリューム１９０であるか判定する（Ｓ２３１１）。
【０１０７】
副ボリューム１３２が仮想ボリューム１９０でないと判定した場合（Ｓ２３１１、Ｎｏ）、副ボリューム１３２には破棄すべきページがないため、チャネルコマンド制御部１１０２は、正ボリューム１３１のデータを副ボリューム１３２に送信して処理を終了する（Ｓ２３１３）。副ボリューム１３２が仮想ボリューム１９０であると判定した場合（Ｓ２３１１、Ｙｅｓ）、まず正ボリューム１３１から副ボリューム１３２へ対応するスロット１９０１間で０データがコピーされる（Ｓ２３１２）。
【０１０８】
副ボリューム１３２では、正ボリューム１３１から受信した０データを該当するスロット１９０１に格納する（Ｓ２３１４）。そして、コピー完了後、副ボリューム１３２を管理するチャネルコマンド制御部１１０２は、副ボリューム１３２の０データがコピーされたページ２００１に対応するページ破棄管理テーブル２０００のページ破棄ビット２００２を１に設定し（Ｓ２３１５）、図２１に示すページ破棄処理を起動する（Ｓ２３１６）。この後、ページ破棄処理により副ボリューム１３２側の正ボリューム１３１に対応するページも破棄される。  
【０１０９】
なお、正ボリューム１３１から副ボリューム１３２へのデータ転送については、本実施例のように、データ長分の０データをすべて転送する方法の他、最小容量単位の０データのみを転送し、ページ破棄ビット２００２が1の場合は、副ボリューム１３２側のチャネルコマンド制御部１１０２で書き込み先頭アドレスから０データをデータ長分繰り返し書き込む方法、あるいは正ボリューム１３１側から０データを転送せず、ページ削除ビット２００２が1の場合は、副ボリューム１３２側のチャネルコマンド制御部１１０２で書き込み先頭アドレスから０データをデータ長分書き込む方法を採用することもできる。
【０１１０】
また、正ボリューム１３１側から副ボリューム１３２側への破棄対象ページ伝達については、ホスト装置２から正ボリューム１３１へのページ破棄コマンドを受領した時点で、正ボリューム１３１側チャネルコマンド制御部１１０２が対応する副ボリューム１３２のページをペア状態管理テーブル２２００等から求めて副ボリュームページ破棄情報としてメモリ１１３等に管理し、正ボリューム１３１から副ボリューム１３２へのデータコピー時にこの副ボリュームページ削除情報を基にしてページ破棄ビット２００２を設定する方法を採用することもできる。
【０１１１】
以上の構成により、正ボリューム１３１と副ボリューム１３２の両方に対応して格納されているページを、１回のホスト装置２からのページ破棄コマンドによって破棄することができる。
【０１１２】
ローカルコピー構成（サスペンド状態）におけるページ破棄処理フロー
次に、ローカルコピー構成において、ペア状態がサスペンドである場合の処理について説明する。図２４に、サスペンド状態にあるローカルコピー構成でのページ破棄処理フローの一例を示している。図２４に示すサスペンド状態でのページ破棄処理フローは、図２３に示したペア状態での処理フローとほぼ同じであるため、対応するステップには同一の符号を付している。ペア状態の場合と異なるのは、図２４におけるステップＳ２３０８ａにおいて、チャネルコマンド制御部１１０２が、ホスト装置２から再同期化コマンドを受領している点である。
【０１１３】
上記したように、サスペンド状態にあるローカルコピーペアでは、正ボリューム１３１から副ボリューム１３２への定期的な差分コピーが実行されない。このため、正ボリューム１３１を管理するチャネルコマンド制御部１１０２は、ホスト装置２から再同期化コマンドを受領して、正ボリューム１３１から副ボリューム１３２へ差分コピーを実行するようにしている。この後、ローカルコピーペアを構成している正ボリューム１３１と副ボリューム１３２とは、ペア状態となって引き続き稼働することになる。
【０１１４】
以上、ローカルコピー構成で説明したページ破棄方式では、ホスト装置２からページ破棄コマンドが発行された後、チャネルコマンド制御部１１０２が正ボリューム１３１側の該当ページに０データを書き込み、正ボリューム１３１側のページ破棄処理を起動した後の正副ボリュームの再同期化（差分コピー）時に、副ボリューム１３２へのページ破棄処理命令送信の要否を判断している。チャネルコマンド制御部１１０２は、ホスト装置２からページ破棄コマンドを受領した時点で、副ボリューム１３２側のページ破棄情報を作成し、一時的にメモリ等に格納し、正ボリューム１３１から副ボリューム１３２へのデータ反映時にページ破棄情報を送信することで副ボリューム側のページ破棄ビットを設定することもできるが、本実施例のように、差分コピー時にコピーするページが破棄対象のページかどうか判定することは以下のメリットがある。
【０１１５】
図２５に、副ボリューム１３２のみに割り当てられたページを含む場合のページ破棄処理説明図を示している。コピーペアの正副ボリューム１３１、１３２が分割されたサスペンド状態では、ホスト装置２は直接副ボリューム１３２へのデータ書き込みが可能である。このため、正ボリューム１３１では仮想ボリューム１９０に割り当てられていないページに対して、副ボリューム１３２ではデータ書き込み処理によりページが割り当てられてしまっている事象が起こりうる。
【０１１６】
この場合、チャネルコマンド制御部１１０２がページ破棄コマンドを受領した時点でそのコマンドに含まれている破棄対象ページのアドレスから副ボリューム１３２側の破棄ページアドレスを求めて破棄処理を実行したとすれば、正ボリューム１３１側に対応するページを持たない、副ボリューム１３２側のみに割り当てられたページを破棄することはできないことになる。
【０１１７】
図２５に示すように、本実施例の構成では、差分ビットマップ１９００において、副ボリューム１３２にホスト装置２からデータ書き込みがあった場合、副ボリューム１３２側の差分ビット１９０３が１となる。このため、副ボリューム１３２だけにデータ書き込みが実行され、ページが割り当てられた場合、そのページに該当する差分ビットマップ１９００上の副ボリューム側差分ビット１９０３に１が設定されているので、チャネルコマンド制御部１１０２は、当該ページを差分コピーの対象として検出することができる。したがって、正ボリューム１３１から副ボリューム１３２へ差分コピーを実行する際に、正ボリューム１３１側のページを参照したときに当該ページに記録されているデータが全て０であるので、副ボリューム１３２側のページが破棄対象となる。このため、本実施例のページ破棄処理方式では、副ボリューム１３２側の仮想ボリューム１９０だけにページが割り当てられている場合でも、当該副ボリューム１３２側のページを破棄することができる。
【０１１８】
実施例２
リモートコピー構成におけるページ破棄処理
次に、コピーペアを構成する正副ボリューム１３１、１３２が、それぞれ異なるストレージ装置１０に属する構成を有する同期リモートコピーの場合におけるページ破棄処理について説明する。
【０１１９】
図２６に、同期リモートコピー構成を含むストレージシステム１の構成の一例を示している。図２６において、各ストレージ装置１０の構成はほぼ図１７に示したローカルコピー構成の場合と同様であるが、主制御装置（ＭＣＵ）としてのストレージ装置１０と、従制御装置（ＲＣＵ）としてのストレージ装置１０とは、チャネル制御部１１０同士が通信ポート１１１を介して通信可能に接続されている。通信ポート１１１間の通信方式としては、例えばＬＡＮ、ＳＡＮ、インターネット、公衆通信網等を用いることができる。この通信可能なチャネル制御部１１０によって、ＭＣＵに作成されている正ボリューム１３１と、ＲＣＵに作成されている副ボリューム１３２とは、同期リモートコピー方式のコピーペアを構成している。
【０１２０】
また、ＭＣＵ、ＲＣＵの各ストレージ装置１０にある共有メモリ１５には、ページ破棄管理テーブル１５１、差分ビットマップ１５２、及びペア状態管理テーブル１５３が保持されており、ＭＣＵ側共有メモリ１５にはさらに副ボリュームページ破棄情報１５４が保持されている。
【０１２１】
チャネル基板１１のメモリ１１３に格納されているＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６、及びプール構成ＬＤＥＶ管理テーブル１１０７は、ローカルコピー構成の場合と同様である。また、同様にチャネル基板１１のメモリ１１３又は共有メモリ１５に保持されるページ破棄管理テーブル１５１及び差分ビットマップ１５２も、ローカルコピー構成の場合と同等の構成を有している。以下、ローカルコピー構成の場合と構成が異なるペア状態管理テーブル２７００（１５３）及び副ボリュームページ破棄情報２９００（１５４）について説明する。
【０１２２】
ペア状態管理テーブル２７００（１５３）
図２７に、本実施例のペア状態管理テーブル２７００の構成の一例を示している。ペア状態管理テーブル２７００は、同期リモートコピーペアを構成している正副ボリューム１３１、１３２の対応するデータが格納されているスロットの対応関係とそのスロット間でのペアの状態を記録しており、ＭＣＵ側ストレージ装置１０のチャネル基盤１１におけるポート番号２７０１とスロット番号（図２２の場合と同様に、ＣＵ＃：ＬＤＥＶ＃：スロット＃の書式で記載）２７０２、及びＲＣＵ側ストレージ装置１０の装置識別符号である装置番号２７０３、チャネル基盤１１におけるポート番号２７０４及びスロット番号２７０５、そして、対応するスロット番号２７０２、２７０５間のペア状態２７０６の各項目が対応付けて記録されている。このペア状態管理テーブル２７００により、チャネルコマンド制御部１１０２は、ペア状態、サスペンド状態に応じて処理を切り替えることになる。
【０１２３】
ＭＣＵ、ＲＣＵ間の通信メッセージ２８００
本実施例においては、正ボリューム１３１と副ボリューム１３２がそれぞれ属するストレージ装置１０が異なるため、ＭＣＵ側のストレージ装置１０のチャネル制御部１１０からＲＣＵ側のストレージ装置１０にあるチャネル制御部１１０へ、ホスト装置２からのページ破棄コマンドに相当する通信メッセージ２８００を送信する。図２８に、この通信メッセージ２８００のデータ構造例を示している。通信メッセージ２８００は、コマンドの内容が記録されているコマンド部２８１０と、コマンドによって処理されるデータが格納されているデータ部２８２０とを備えている。それぞれの構成は、図１８に示したページ破棄コマンド１８００と同等であるが、コマンド部２８１０に、オペレーションコード２８１１、ページ破棄ビット２８１２、書き込み先頭アドレス２８１４、及びデータ長２８１５に加え、書き込み先装置番号２８１３が記録されている点が異なる。書き込み先装置番号２８１３には、ＭＣＵ側ストレージ装置１０からのデータ書き込み先が、ＲＣＵ側ストレージ装置１０に付されている識別符号である装置番号（ペア状態管理テーブル２７００の装置番号２７０３に相当）によって記録されている。
【０１２４】
副ボリュームページ破棄情報２９００
図２９に、副ボリュームページ破棄情報２９００の構成の一例を示している。副ボリュームページ破棄情報２９００は、破棄対象となったＭＣＵ側正ボリューム１３１のページに対応するＲＣＵ側副ボリューム１３２についてのページ破棄ビット２９０６を備えている。
【０１２５】
副ボリュームページ破棄情報２９００はまた、ＭＣＵ側ストレージ装置１０のチャネル基板１１におけるポート番号２９０１とページ番号２９０２、及びＲＣＵ側ストレージ装置１０の装置識別符号である装置番号２９０３、チャネル制御部１１０におけるポート番号２９０４及びページ番号２９０５の各項目が対応付けて記録されている。
【０１２６】
ペア状態がペアの場合、ＭＣＵ側チャネルコマンド制御部１１０２は、副ボリューム１３２にも０データを書き込み、ページ破棄ビット２００２を設定しなければ、ホスト装置２に０データの書き込み終了を通知できない。このため、ローカルコピーの場合のように、副ボリューム１３２への差分コピー時に副ボリューム１３２のページ破棄を判定すると、ページ破棄管理テーブル２０００又は該当ページ内の全データをチェックすることになり、ホスト装置２への０データ書き込み完了通知が遅れる。
【０１２７】
本実施例では、ページ破棄コマンド１８００を受領した時点で副ボリューム１３２のページ破棄アドレスを特定し、副ボリューム１３２へのコピー時には事前に求めたページ破棄情報を利用し、ＲＣＵ側に破棄情報を伝達する。これにより、ページ破棄管理テーブル２０００のチェックやページ内の全データのチェックを不要とし、ホスト装置２に０データ書き込み完了を早期に通知することができる。なお、ローカルコピーの場合と同様に、正ボリューム１３１から副ボリューム１３２へのデータコピー時に、副ボリューム１３２側のページを破棄するか判定し、破棄する場合には副ボリューム１３２側のページ破棄ビット２００２を１に設定してページ破棄を実行する構成としてもよい。これは、実施例３に関して後述する、ジャーナルを使用した非同期リモートコピー構成においても同様である。
【０１２８】
同期リモートコピー構成（ペア状態）におけるページ破棄処理フロー
同期リモートコピーの場合、ホスト装置２から正ボリューム１３１へのページ破棄コマンド受領時に、ペア状態では正ボリューム１３１に０データを書きこんだ後、次に副ボリューム１３２側にも０データを書き込む指示と、ページ破棄管理テーブル２０００（１５１）のページ破棄ビット２００２を１に設定するための通信を実行し、ＲＣＵ側のページ破棄処理を起動する。その処理完了後に、正ボリューム１３１のページ破棄管理テーブル２０００のページ破棄ビット２００２を１に設定しＭＣＵ側のページ破棄処理を起動して、ホスト装置２に書き込み完了を通知する。
【０１２９】
図３０に、ペア状態にある同期リモートコピーのコピーペア構成におけるページ破棄処理フローの一例を示している。
【０１３０】
まず、ＭＣＵ側のチャネル制御部１１０にあるチャネルコマンド制御部１１０２は、ローカルコピー構成の場合と同様、ホスト装置２からＭＣＵ側の正ボリューム１３１に対する破棄対象のアドレスを指定したページ破棄コマンド１８００受信を待機する（Ｓ３００１、Ｎｏ）。ホスト装置２からページ破棄コマンド１８００をＭＣＵ側チャネルコマンド制御部１１０２で受信した場合（Ｓ３００１、Ｙｅｓ）、チャネルコマンド制御部１１０２は、ホスト装置２からコマンドに指定された仮想ボリューム１９０のアドレスを、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６を参照して、プール構成ＬＤＥＶ番号１１０６４およびそのアドレス１１０６５に変換する（Ｓ３００２）。
【０１３１】
チャネルコマンド制御部１１０２は、Ｓ３００２で求めたアドレス１１０６５に０データを書き込むようにディスク制御部１２０に指示し、ＭＣＵ側ディスク制御部１２０が当該アドレス１１０６５に０データを書き込む（Ｓ３００３）。
【０１３２】
ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５内のペア状態管理テーブル２７００から正ボリューム１３１の破棄ページに対応するＲＣＵ側副ボリューム１３２の装置番号２７０３、ポート番号２７０４、スロット番号２７０５、コピーペアの状態２７０６、及び副ボリュームが仮想ボリュームであるかの情報（ＬＵ管理テーブル１１０３に記録されている仮想ボリュームビット１１０３４の情報等から判定）を取得する（Ｓ３００４）。図３０では、正副ボリューム１３１、１３２はペア状態であるとしている。
【０１３３】
次に、ＭＣＵ側チャネルコマンド制御部１１０２は、Ｓ３００４で特定した副ボリューム１３２が仮想ボリューム１９０であるか判定し（Ｓ３００５）、仮想ボリューム１９０でないと判定した場合（Ｓ３００５、Ｎｏ）、ＲＣＵ側チャネルコマンド制御部１１０２への通信メッセージ２８００内のページ破棄ビット２８１２を０（副ボリューム１３２のページ破棄オフ）として、通常の同期リモートコピー処理を実行する（Ｓ３０１６）。
【０１３４】
Ｓ３００５で副ボリューム１３２が仮想ボリューム１９０であると判定した場合（Ｓ３００５、Ｙｅｓ）、ＭＣＵ側チャネルコマンド制御部１１０２は、ページ破棄ビット２８１２を１（副ボリュームページ破棄オン）として通信メッセージ２８００を作成する（Ｓ３００６）。
【０１３５】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、作成した通信メッセージ２８００と０データを、書き込み先装置番号２８１３で特定されるストレージ装置１０に対して送信する（Ｓ３００７）。このとき、０データをページ容量分（本実施例では４２ＭＢ）送信すると、チャネル制御部１１０間の通信回線に負担がかかるため、０データはデータ記憶単位の最小容量分のみ送信することが好ましい（例：５１２バイト）。なお、通常のデータコピー処理と同じく１ページ分の４２ＭＢの０データを転送してもよい。以下説明するリモートコピー構成でも、同様に転送される０データは最小容量分のみでもデータ長分全てでもよい。また、ページ破棄ビット２８１２が１の時はＭＣＵ側からＲＣＵ側に０データを転送せず、ＲＣＵ側でページ破棄ビット２００２が１である場合には、ＲＣＵ側チャネルコマンド制御部１１０２が書き込み先頭アドレスからデータ長分の０データを書き込むように構成してもよい。
【０１３６】
ＲＣＵ側のチャネル制御部１１０にあるチャネルコマンド制御部１１０２は、ＭＣＵ側チャネル制御部１１０からの通信メッセージ２８００を受信し、その内容を解析する（Ｓ３００８）。通信メッセージ２８００に記録されているページ破棄ビット２８１２が１である場合、チャネルコマンド制御部１１０２は、送信された０データをコマンド部２８１０内の書き込み先頭アドレス２８１４からデータ長２８１５分書き込む（Ｓ３００９）。この際、０データがデータ長分送信された場合はそのデータを書き込み、最小容量分の０データが送信された場合又は０データが送信されなかった場合は、ＲＣＵ側のチャネルコマンド制御部１１０２が先頭アドレス２８１４からデータ長２８１５分繰り返し書き込みを実行する。
【０１３７】
次いで、ＲＣＵ側のチャネルコマンド制御部１１０２は、共有メモリ１５内のページ破棄管理テーブル２０００のページ破棄対象ページのページ破棄ビット２００２に１を設定し（Ｓ３０１０）、図２１に示したページ破棄処理を起動する（Ｓ３０１１）。
【０１３８】
ＲＣＵ側チャネルコマンド制御部１１０２は、ＲＣＵ側の０データ書き込み完了メッセージをＭＣＵ側チャネルコマンド制御部１１０２へ送信する（Ｓ３０１２）。
【０１３９】
ＭＣＵ側チャネルコマンド制御部１１０２は、ＲＣＵ側からの０データ書き込み完了メッセージを受信後、ＭＣＵ側のページ破棄管理テーブル２０００のページ破棄箇所のページ破棄ビット２００２を１に設定する（Ｓ３０１３）。そして、ＭＣＵ側チャネルコマンド制御部１１０２は、図２１のページ破棄処理を起動する（Ｓ３０１４）。ＭＣＵ側チャネルコマンド制御部１１０２はホスト装置２に０データ書き込み完了メッセージを送信して処理を終了する（Ｓ３０１５）。
【０１４０】
以上説明した構成によれば、ホスト装置２から１回ページ破棄コマンドを与えることで、ペア状態にある同期リモートコピーペアの正副ボリューム１３１、１３２のページ破棄を実行することができる。
【０１４１】
リモートコピーペア（サスペンド状態）でのページ破棄処理フロー
同期リモートコピー構成でのサスペンド状態の場合、正副ボリュームの再同期化が実行されるまで、正副ボリューム間でデータ通信が実行されないので、正ボリューム１３１と副ボリューム１３２の格納データの差分および副ボリューム１３２の破棄ページ情報を管理する必要がある。本実施例では、データの差分情報は、共有メモリ１５内に保持される差分ビットマップ１９００（１５２）により管理される。差分ビットマップ１９００は、ローカルコピー構成の場合について図１９に示したものと同様である。ローカルコピーの場合と同様に、差分ビットマップ１９００による差分管理単位は、スロット単位でもよいしその他どのような記憶領域単位でもよい。
【０１４２】
ＭＣＵ側ストレージ装置１０のチャネル制御部１１０がホスト装置２からページ破棄コマンドを受領した際に、チャネルコマンド制御部１１０２が副ボリューム１３２側（ＲＣＵ側）のページ破棄情報（以下「副ボリュームページ破棄情報」（図２９））も作成し、例えば共有メモリ１５に保持する。そしてチャネルコマンド制御部１１０２が正副ボリューム間での再同期化のコマンド受領時に、この副ボリュームページ破棄情報２９００に基づいて、作成する通信メッセージ２８００内にページ破棄ビット２８１２を設定する。
【０１４３】
図３１に、サスペンド状態にあるリモートコピーペア構成でのページ破棄処理フローの一例を示している。
【０１４４】
まず、ＭＣＵ側チャネル制御部１１０のチャネルコマンド制御部１１０２がホスト装置２からのページ破棄コマンド受信を待機し（Ｓ３１０１）、ページ破棄コマンドを受領した場合（Ｓ３１０１、Ｙｅｓ）、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、及びマッピング管理テーブル１１０６を参照して、そのページ破棄コマンドに含まれるページ番号１１０６２に対応する仮想ＬＤＥＶアドレス１１０６３をプール構成仮想ＬＤＥＶ１１０６４に変換し（Ｓ３１０２）、該当アドレスに０データを書き込む（Ｓ３１０３）。
【０１４５】
ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５内のペア状態管理テーブル２７００から正ボリューム１３１の破棄ページに対応するＲＣＵ側副ボリューム１３２の装置番号２７０３、ポート番号２７０４、スロット番号２７０５、コピーペアの状態２７０６、及び副ボリュームが仮想ボリュームであるかの情報（ＬＵ管理テーブル１１０３に記録されている仮想ボリュームビット１１０３４の情報等から判定）を取得する（Ｓ３１０４）。図３１Ａ、図３１Ｂでは、正副ボリューム１３１、１３２はサスペンド状態であるとしている。
【０１４６】
次に、ＭＣＵ側チャネルコマンド制御部１１０２は、Ｓ３１０４で特定した副ボリューム１３２が仮想ボリューム１９０であるか判定し（Ｓ３１０５）、仮想ボリューム１９０でないと判定した場合（Ｓ３１０５、Ｎｏ）、ＲＣＵ側チャネルコマンド制御部１１０２への通信メッセージ２８００内のページ破棄ビット２８１２を０（副ボリューム１３２のページ破棄オフ）として、通常の同期リモートコピー処理を実行する（Ｓ３１１３）。
【０１４７】
Ｓ３１０５で副ボリューム１３２が仮想ボリューム１９０であると判定した場合（Ｓ３１０５、Ｙｅｓ）、ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５にある差分ビットマップ１５２（１９００）内の書き込みを実行した箇所の正ボリューム側差分ビット１９０２を１に設定する（Ｓ３１０６）。
【０１４８】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５にある副ボリュームページ破棄情報１５４（２９００）で、正ボリューム１３１でページ破棄を実行するページに対応する副ボリューム１３２のページ破棄ビット２９０６を１に設定する（Ｓ３１０７）。
【０１４９】
ＭＣＵ側チャネルコマンド制御部１１０２は、ＭＣＵ側のページ破棄管理テーブル２０００のページ破棄ビット２００２を１に設定し（Ｓ３１０８）、図２１のページ破棄処理を起動する（Ｓ３１０９）。そして、ＭＣＵ側チャネルコマンド制御部１１０２は、ホスト装置２に０データ書き込み完了を通知する（Ｓ３１１０）。
【０１５０】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、ホスト装置２から再同期化コマンドを受領し（Ｓ３１１１）、ＲＣＵ側チャネル制御部１１０にＲＣＵ側の再同期化のメッセージを送信する（Ｓ３１１２）。
【０１５１】
再同期化メッセージを受信したＲＣＵ側のチャネルコマンド制御部１１０２は、ＲＣＵ側の共有メモリ１５に保持されている差分ビットマップ１９００（１５２）をＭＣＵ側チャネル制御部１１０に送信し（Ｓ３１１４）、これを受信したＭＣＵ側チャネルコマンド制御部１１０２は、ＭＣＵ側、ＲＣＵ側の両差分ビットマップ１９００をマージする（Ｓ３１１５）。ＭＣＵ側チャネルコマンド制御部１１０２は、マージした差分ビットマップ１９００でＭＣＵ側差分ビット１９０２又はＲＣＵ側差分ビット１９０３が１であるスロットのリストを取得する（Ｓ３１１６）。
【０１５２】
さらに、ＭＣＵ側チャネルコマンド制御部１１０２は、副ボリュームページ破棄情報２９００でページ破棄ビット２９０６が１であるアドレスのリストを取得する（Ｓ３１１７）。
【０１５３】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、Ｓ３１１６で取得した差分ビット１９０２、１９０３が１であるスロットのリストの中で、ページ破棄ビット２９０６が１であるか判定する（Ｓ３１１８）。ページ破棄ビット２９０６が１でないと判定された場合（Ｓ３１１８、Ｎｏ）、チャネルコマンド制御部１１０２は、副ボリューム１３２のページ破棄をしない（通信メッセージ２８００内のページ破棄ビット２８０６を０とした）通常のコピー処理を実行する（Ｓ３１２５）。
【０１５４】
ページ破棄ビット２９０６が１であると判定した場合（Ｓ３１１８、Ｙｅｓ）、ＭＣＵ側チャネルコマンド制御部１１０２は、ページ破棄ビット２８１２に１を設定した通信メッセージ２８００を作成し（Ｓ３１１９）、０データ（最小容量単位分又はデータ長分）とともにＭＣＵ側チャネルコマンド制御部１１０２からＲＣＵ側チャネルコマンド制御部１１０２へ送信する（Ｓ３１２０）。ただし、ＲＣＵ側でページ破棄ビット２００２が１である場合に、ＭＣＵ側から０データが転送されなくても書き込み先頭アドレスからデータ長分の０データを書き込む場合は、ＭＣＵ側チャネルコマンド制御部１１０２は０データを送信しない。ＲＣＵへのメッセージ２８００送信後、ＭＣＵ側チャネルコマンド制御部１１０２は、差分ビットマップ１９００および副ボリュームページ破棄情報２９００の差分ビット１９０２、１９０３とページ破棄ビット２９０６を１から０に戻す。また、ＲＣＵ側のチャネルコマンド制御部１１０２は、ＲＣＵ側の差分ビットマップ１９００の差分ビット１９０２、１９０３を１から０に戻す。
【０１５５】
ＲＣＵ側のチャネル制御部１１０にあるチャネルコマンド制御部１１０２は、ＭＣＵ側チャネル制御部１１０からの通信メッセージ２８００を受信し、その内容を解析する（Ｓ３１２１）。通信メッセージ２８００に記録されているページ破棄ビット２８１２が１である場合、チャネルコマンド制御部１１０２は、送信された０データをコマンド部２８１０内の書き込み先頭アドレス２８１４からデータ長２８１５分繰り返し書き込む（Ｓ３１２２）。なお、０データがデータ長分送信された場合は、ＲＣＵ側チャネルコマンド制御部１１０２は、その０データを全て書き込む。また、前記のように、ページ破棄ビット２８１２が１の時はＭＣＵ側からＲＣＵ側に０データを転送せず、ＲＣＵ側でページ破棄ビット２００２が１である場合には、ＲＣＵ側チャネルコマンド制御部１１０２が書き込み先頭アドレスからデータ長分の０データを書き込むように構成してもよい
【０１５６】
次いで、ＲＣＵ側のチャネルコマンド制御部１１０２は、共有メモリ１５内のページ破棄管理テーブル２０００のページ破棄対象ページのページ破棄ビット２００２に１を設定し（Ｓ３１２３）、図２１に示したページ破棄処理を起動する（Ｓ３１２４）。
【０１５７】
以上説明した構成により、同期リモートコピーペアを構成している正副ボリューム１３１、１３２がサスペンド状態にある場合に、ホスト装置２からの１回のページ破棄要求によって副ボリューム１３２でのページ破棄処理を実行することができる。
【０１５８】
実施例３
ジャーナルを利用した非同期リモートコピー構成におけるページ破棄処理
次に、ジャーナルを利用した非同期リモートコピー構成におけるページ破棄処理について説明する。
【０１５９】
上記した同期リモートコピーでは、ＭＣＵ側チャネル制御部１１０からＲＣＵ側チャネル制御部１１０へ送信する通信メッセージ２８００内にページ破棄ビット２８１２を設定することで、通信されているデータが破棄対象ページに関するものかどうかをＭＣＵ側からＲＣＵ側に伝達していた。非同期リモートコピー構成において、後述するジャーナルを利用する場合、そのジャーナルの制御情報（以下「ジャーナル制御情報」）にページ破棄の可否を示すページ破棄ビットを設定することで、ＲＣＵ側にページ破棄情報も伝達する。
【０１６０】
図３２に、ジャーナルを利用した非同期リモートコピーの構成を模式的に示している。本実施例のジャーナルを利用した非同期リモートコピー構成では、ジャーナルグループ２００が作成され、運用される。このジャーナルグループ２００は、ＭＣＵ側のデータ格納ボリュームである正ボリューム１３１、ＲＣＵ側のデータ格納ボリュームである副ボリューム１３２、及びＭＣＵ側、ＲＣＵ側それぞれの正副ジャーナルボリューム１３３、１３４を備えて構成されている。
【０１６１】
以下、図３２を参照しながらジャーナルを利用した非同期リモートコピーについて説明する。（ｉ）等の符号は、図中の同一の符号を示している。ホスト装置２からデータ書き込み要求をＭＣＵ側チャネル制御部１１０にあるチャネルコマンド制御部１１０２が受領すると（ｉ）、チャネルコマンド制御部１１０２は正ボリューム１３１にデータを書き込むと共に、ジャーナルを取得する（ii）。このジャーナル取得処理は、ホスト装置２からのデータ書き込みが行われる毎に実行される。ジャーナルは、副ボリューム１３２側で、正ボリューム１３１に書き込まれたデータに加え、その書き込み順序まで含めて管理するためにジャーナル１３００として作成される。
【０１６２】
図３４に、ジャーナル１３００の構成の一例を示している。ジャーナル１３００は、ジャーナル制御情報格納領域１３１０とジャーナルデータ格納領域１３２０とを備える。ジャーナル制御情報格納領域１３１０には、ジャーナル制御情報１３１１が、ジャーナルデータ格納領域１３２０にはホスト装置２から書き込まれたデータ（以下「ジャーナルデータ１３２１」）が格納される。ジャーナル制御情報１３１１は、１スロット単位に各ストレージ装置１０のキャッシュメモリ１４上に作成される。このＭＣＵ側キャッシュメモリ１４上に作成されたジャーナル制御情報１３１１とジャーナルデータ１３２１は、正ジャーナルボリューム１３３に格納される。
【０１６３】
図３５Ａに、従来のジャーナル制御情報１３１１（３５００）の構成の一例を示している。ジャーナル制御情報３５００には、ＭＣＵ側正ボリューム１３１のＬＤＥＶ番号３５０１、スロット番号３５０２、書き込み先頭アドレス３５０３、及びデータ長３５０４、ジャーナルボリューム１３３のＬＤＥＶ番号３５０５、スロット番号３５０６、及び書き込み先頭アドレス３５０７、及びジャーナルシーケンス番号３５０８の各項目が記録されている。
【０１６４】
正ボリューム１３１のＬＤＥＶ番号３５０１は、ジャーナルデータ１３２１を格納している正ボリューム１３１のＬＤＥＶを、既出の論理制御装置番号（ＣＵ＃）とＬＤＥＶ番号（ＬＤＥＶ＃）との組み合わせで示している。スロット番号３５０２は、ジャーナルデータ１３２１を格納しているスロット番号を表す。書き込み先頭アドレス３５０３は、ジャーナルデータ１３２１が書き込まれている記憶領域の先頭アドレスを表す。データ長３５０４は、ジャーナルデータ１３２１のデータ長を表す。
【０１６５】
ジャーナルボリューム１３３のＬＤＥＶ番号３５０５は、ジャーナルデータ１３２１を格納している正ジャーナルボリューム１３３のＬＤＥＶを、既出の論理制御装置番号（ＣＵ＃）とＬＤＥＶ番号（ＬＤＥＶ＃）との組み合わせで示している。スロット番号３５０６は、ジャーナルデータ１３２１を格納している正ジャーナルボリューム１３３のスロット番号を表す。書き込み先頭アドレス３５０７は、ジャーナルデータ１３２１を格納している正ジャーナルボリューム１３３の先頭アドレスを表す。
【０１６６】
ジャーナルシーケンス番号３５０８は、ジャーナル取得時に割り当てられたシーケンス番号（例えば１から始まる整数の連続番号）を表す。ジャーナルシーケンス番号３５０８は、ホスト装置２からのデータ書き込み順序を表し、副ボリューム１３２側でこのジャーナルシーケンス番号３５０８で指定される順序に従ってデータを反映することで、正ボリューム１３１におけるデータ更新の順序を保証する。
【０１６７】
図３２に戻ると、ペア状態では、ホスト装置２からＭＣＵ側ストレージ装置１０へのアクセス処理とは非同期に、ＲＣＵ側からＭＣＵ側のジャーナル１３００を読み取るためのコマンドが送信される。サスペンド状態では、ホスト装置２からの再同期化コマンドをＭＣＵ側ストレージ装置１０が受領してＭＣＵ側チャネル制御部１１０からＲＣＵ側チャネル制御部１１０へ再同期化コマンドを送信した際に、ＲＣＵ側からジャーナル１３００の読み取りコマンドが発行される（iii）。
【０１６８】
ＲＣＵ側からの読み取りコマンドを受領すると、ＭＣＵ側チャネル制御部１１０からＲＣＵ側チャネル制御部１１０へジャーナル１３００が送信され、副ジャーナルボリューム１３４に格納される（iv）。
【０１６９】
ＲＣＵ側チャネル制御部１１０は、ディスク制御部１２０を介して、副ジャーナルボリューム１３４に格納されたデータを副ボリューム１３２に反映する（この処理を以下「ジャーナルリストア」という。v）。このとき、副ボリューム１３２へのデータ反映は、ジャーナルシーケンス番号３５０８の順序で実行される。
【０１７０】
図３３に、ジャーナルを利用する非同期リモートコピー構成を含むストレージシステム１の構成の一例を示している。図３３において、各ストレージ装置１０の構成はほぼ図１７に示したローカルコピー構成の場合と同様であり、また図２６の同期リモートコピー構成の場合と同様に、ＭＣＵとしてのストレージ装置１０と、ＲＣＵとしてのストレージ装置１０とは、チャネル制御部１１０同士が通信ポート１１１を介して通信可能に接続されている。
【０１７１】
通信ポート１１１間の通信方式としては、例えばＬＡＮ、ＳＡＮ、インターネット、公衆通信網等を用いることができる。この通信可能なチャネル制御部１１０によって、ＭＣＵに作成されている正ボリューム１３１と、ＲＣＵに作成されている副ボリューム１３２とは、非同期リモートコピー方式のコピーペアを構成している。また、図３２に関して説明したように、ＭＣＵには正ジャーナルボリューム１３３が、ＲＣＵには副ジャーナルボリューム１３４が作成され、運用されており、正副ボリューム１３１、１３２とともに、ジャーナルグループ２００を構成している。
【０１７２】
ＭＣＵ、ＲＣＵの各ストレージ装置１０にある共有メモリ１５には、ページ破棄管理テーブル１５１、差分ビットマップ１５２、及びペア状態管理テーブル１５３が保持されており、ＭＣＵ側共有メモリ１５にはさらに副ボリュームページ破棄情報１５４が保持されている。
【０１７３】
ＭＣＵ、ＲＣＵのキャッシュメモリ１４には、図３４に関して説明したように、ジャーナル制御情報１３１１とジャーナルデータ１３２１が保持されている。
【０１７４】
チャネル制御部１１０のメモリ１１３に格納されているＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、マッピング管理テーブル１１０６、及びプール構成ＬＤＥＶ管理テーブル１１０７は、ローカルコピー構成の場合と同様である。また、同様にチャネル基板１１のメモリ１１３又は共有メモリ１５に保持されるページ破棄管理テーブル１５１及び差分ビットマップ１５２も、ローカルコピー構成の場合と同等の構成を有している。
【０１７５】
ホスト装置２からＭＣＵ側チャネル制御部１１０が書き込み要求を受領すると、チャネル制御部１１０にあるチャネルコマンド制御部１１０２が、書き込みデータをキャッシュメモリ１４上に格納し、対応するジャーナル制御情報１３１１を同じくキャッシュメモリ１４上に作成する。ジャーナルデータ１３２１は、適宜のタイミングで仮想ボリューム１９０である正ボリューム１３１（実際にはプール構成ＬＤＥＶ１７２）に書き込まれる。また、ジャーナル制御情報１３１１とジャーナルデータ１３２１（書き込みデータ）は、正ジャーナルボリューム１３３に格納される。
【０１７６】
次に、同期リモートコピー構成の場合と構成が異なるジャーナル制御情報１３１１（３５００）及びペア状態管理テーブル１５３（２７００）について説明する。
【０１７７】
ジャーナル制御情報３５００（１３１１）
図３５Ｂに本実施例におけるジャーナル制御情報３５００の構成の一例を示している。本実施例のジャーナル制御情報３５００は、基本的に図３５Ａに示した従来のジャーナル制御情報３５００と同じ構成を有し、ジャーナル制御情報３５００の各レコードについて、副ジャーナルボリューム１３４に割り当てられているページを破棄するために使用されるページ破棄ビット３５０９が付加されている点が異なる。ジャーナル制御情報３５００はスロット単位で作成され、ページは複数のスロットから構成されるため、スロット単位でページ破棄ビット３５０９を設定すれば、ページ破棄情報をＭＣＵ側からＲＣＵ側へ伝達することができる。
【０１７８】
ペア状態管理テーブル３６００（１５３）
図３６に、本実施例のペア状態管理テーブル３６００の構成の一例を示している。このペア状態管理テーブル３６００は、基本的に図２７に示した同期リモートコピー構成におけるペア状態管理テーブル２７００と同じ構成を有しており、各レコードについて、対応するジャーナルグループ２００（正副ジャーナルボリュームペア）を特定するための管理番号であるジャーナルペア番号３６０１が付加されている点が異なる。
【０１７９】
ジャーナルを利用した非同期リモートコピー構成（ペア状態）でのページ破棄処理フロー
図３７に、ペア状態にある、ジャーナルを利用した非同期リモートコピーのコピーペア構成におけるページ破棄処理フローの一例を示している。この処理フローでは、図３０で説明した同期リモートコピー構成の場合とほぼ同じ処理を実行する。同期リモートコピー構成では通信メッセージ２８００にページ破棄ビット２８１２を格納したが、本処理フローでは、ジャーナル１３００がジャーナル制御情報３５００をスロット単位で持つため、このジャーナル制御情報３５００にページ破棄ビット３５０９を追加することで、ＲＣＵ側チャネル制御部１１０に破棄対象ページを伝達する構成をとっている。なお、ローカルコピーの場合と同様に、正ボリューム１３１から副ボリューム１３２へのデータコピー時に、副ボリューム１３２側のページを破棄するか判定し、破棄する場合には副ボリューム１３２側のページ破棄ビット２００２を１に設定してページ破棄を実行する構成としてもよい。
【０１８０】
まず、ＭＣＵ側のチャネル制御部１１０にあるチャネルコマンド制御部１１０２は、同期リモートコピー構成の場合と同様、ホスト装置２からＭＣＵ側の正ボリューム１３１に対する破棄対象のアドレスを指定したページ破棄コマンド１８００を待機する（Ｓ３７０１、Ｎｏ）。ホスト装置２からページ破棄コマンド１８００をＭＣＵ側チャネルコマンド制御部１１０２で受信した場合（Ｓ３７０１、Ｙｅｓ）、チャネルコマンド制御部１１０２は、ホスト装置２からコマンドに指定された仮想ボリューム１９０のアドレスを、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、及びマッピング管理テーブル１１０６を参照して、プール構成ＬＤＥＶ番号１１０６４およびそのアドレス１１０６５に変換する（Ｓ３７０２）。
【０１８１】
チャネルコマンド制御部１１０２は、Ｓ３７０２で求めたアドレス１１０６５に０データを書き込むようにディスク制御部１２０に指示し、ＭＣＵ側ディスク制御部１２０が当該アドレス１１０６５に０データを書き込む（Ｓ３７０３）。
【０１８２】
ＭＣＵ側チャネルコマンド制御部１１０２は、対応するページ破棄管理テーブル２０００のページ破棄ビット２００２に１を設定し（Ｓ３７０４）、図２１に示したページ破棄処理を起動する（Ｓ３７０５）。
【０１８３】
次に、ＭＣＵ側チャネルコマンド制御部１１０２は、ホスト装置２に０データ書き込み完了を通知する（Ｓ３７０６）。
【０１８４】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５内のペア状態管理テーブル３６００（１５１）から正ボリューム１３１の破棄ページに対応するＲＣＵ側副ボリューム１３２の装置番号３６０４、ポート番号３６０５、スロット番号３６０６、コピーペアの状態３６０７、及び副ボリュームが仮想ボリュームであるかの情報（ＬＵ管理テーブル１１０３に記録されている仮想ボリュームビット１１０３４の情報等から判定）を取得する（Ｓ３７０７）。図３７では、正副ボリューム１３１、１３２はペア状態であるとしている。
【０１８５】
次に、ＭＣＵ側チャネルコマンド制御部１１０２は、Ｓ３７０７で特定した副ボリューム１３２が仮想ボリューム１９０であるか判定し（Ｓ３７０８）、仮想ボリューム１９０でないと判定した場合（Ｓ３７０８、Ｎｏ）、対応するジャーナル制御情報１３１１のページ破棄ビット３５０９を０（副ボリューム１３２のページ破棄オフ）として、通常の非同期リモートコピー処理を実行する（Ｓ３７１７）。
【０１８６】
Ｓ３７０８で副ボリューム１３２が仮想ボリューム１９０であると判定した場合（Ｓ３７０８、Ｙｅｓ）、ＭＣＵ側チャネルコマンド制御部１１０２は、ページ破棄ビット３５０９を１（副ボリュームページ破棄オン）としてジャーナル制御情報３５００を作成する（Ｓ３７０９）。
【０１８７】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、作成したジャーナル制御情報３５００とジャーナルデータ１３２１を正ジャーナルボリューム１３３に格納する（Ｓ３７１０）。
【０１８８】
ＲＣＵ側チャネルコマンド制御部１１０２はＭＣＵ側チャネルコマンド制御部１１０２に正ジャーナルボリューム１３３の格納データ読み取りコマンドを発行し（Ｓ３７１１）、このコマンドを受信したＭＣＵ側チャネルコマンド制御部１１０２は、正ジャーナルボリューム１３３の格納データをＲＣＵ側チャネルコマンド制御部１１０２へ送信する（Ｓ３７１２）。
【０１８９】
ＲＣＵ側のチャネル制御部１１０にあるチャネルコマンド制御部１１０２は、ＭＣＵ側チャネル制御部１１０から受信した正ジャーナルボリューム１３３の格納データを副ジャーナルボリューム１３４に格納する（Ｓ３７１３）。そして、ＲＣＵ側チャネルコマンド制御部１１０２は、ジャーナルシーケンス番号３５０８に従って副ボリューム１３２にデータをコピーする（Ｓ３７１４）。次いで、ＲＣＵ側チャネルコマンド制御部１１０２は、ページ破棄管理テーブル２０００のページ破棄ビット２００２を１に設定し（Ｓ３７１５）、図２１に示したページ破棄処理を起動して処理を終了する（Ｓ３７１６）。
【０１９０】
以上説明した構成によれば、ホスト装置２から１回ページ破棄コマンドを与えることで、ペア状態にある、ジャーナルを利用した非同期リモートコピーペアの正副ボリューム１３１、１３２のページ破棄を実行することができる。
【０１９１】
なお、ＭＣＵからＲＣＵへ送信される０データはジャーナル制御情報３５００では必要データ長（例えば２５６ＫＢ）としておき、実際に送信するデータは最小容量単位（例えば５１２バイト）として、通信を実行することが、ＭＣＵ側、ＲＣＵ側チャネル制御部１１０間の通信回線に対する負荷を軽減する観点から好ましい。ＲＣＵ側チャネル制御部１１０では、転送後、ジャーナル制御情報３５００のデータ長３５０４で指定された長さ分の０データを繰り返し書き込むことができる。また、ページ破棄ビット３５０９が１の時はＭＣＵ側からＲＣＵ側に０データを転送せず、ＲＣＵ側でページ破棄ビット２００２が１である場合には、ＲＣＵ側チャネルコマンド制御部１１０２が書き込み先頭アドレスからデータ長分の０データを書き込むように構成してもあるいは、０データを必要データ長分送信する構成であってもよい。
【０１９２】
ジャーナルを利用した非同期リモートコピー構成（サスペンド状態）でのページ破棄処理フロー
次に、サスペンド状態における、ジャーナルを利用した非同期リモートコピー構成でのページ破棄処理フローについて説明する。図３８Ａ、図３８Ｂに、サスペンド状態における処理フローの一例を示している。図３８Ａ、図３８Ｂの処理フローは、図３７に示したペア状態の処理フローと、差分管理をするために、差分ビットマップ１５２（ローカルコピー構成のものと同じ構成）を利用していること、正ボリューム１３１側の共有メモリ１５で副ボリュームページ破棄情報１５４を利用すること、及びＲＣＵがジャーナル読み取りコマンドを発行する前に、ホスト装置２から再同期化コマンドをＭＣＵ側のチャネル制御部１１０で受領し、ＲＣＵ側のチャネル制御部１１０に対してそれに基づく再同期化のメッセージを送信することが異なっている。
【０１９３】
ペア状態と異なり、サスペンド状態では、ホスト装置２からの再同期化コマンド受領後に、副ボリューム１３２側にジャーナル１３００を送信する。このため、ＭＣＵ側では副ボリューム１３２側のページ破棄情報を共有メモリ１５内の副ボリュームページ破棄情報２９００にもつ。
【０１９４】
まず、ＭＣＵ側のチャネル制御部１１０にあるチャネルコマンド制御部１１０２は、同期リモートコピー構成の場合と同様、ホスト装置２からＭＣＵ側の正ボリューム１３１に対する破棄対象のアドレスを指定したページ破棄コマンド１８００を待機する（Ｓ３８０１、Ｎｏ）。ホスト装置２からページ破棄コマンド１８００をＭＣＵ側チャネルコマンド制御部１１０２で受信した場合（Ｓ３８０１、Ｙｅｓ）、チャネルコマンド制御部１１０２は、ホスト装置２からコマンドに指定された仮想ボリューム１９０のアドレスを、ＬＵ管理テーブル１１０３、仮想ＬＤＥＶ管理テーブル１１０４、プール管理テーブル１１０５、及びマッピング管理テーブル１１０６を参照して、プール構成ＬＤＥＶ番号１１０６４およびそのアドレス１１０６５に変換する（Ｓ３８０２）。
【０１９５】
チャネルコマンド制御部１１０２は、Ｓ３８０２で求めたアドレス１１０６５に０データを書き込むようにディスク制御部１２０に指示し、ＭＣＵ側ディスク制御部１２０が当該アドレス１１０６５に０データを書き込む（Ｓ３８０３）。
【０１９６】
ＭＣＵ側チャネルコマンド制御部１１０２は、対応するページ破棄管理テーブル２０００のページ破棄ビット２００２に１を設定し（Ｓ３８０４）、図２１に示したページ破棄処理を起動する（Ｓ３８０５）。
【０１９７】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５内のペア状態管理テーブル３６００（１５１）から正ボリューム１３１の破棄ページに対応するＲＣＵ側副ボリューム１３２の装置番号３６０４、ポート番号３６０５、スロット番号３６０６、コピーペアの状態３６０７、及び副ボリュームが仮想ボリュームであるかの情報（ＬＵ管理テーブル１１０３に記録されている仮想ボリュームビット１１０３４の情報等から判定）を取得する（Ｓ３８０６）。図３８Ａでは、正副ボリューム１３１、１３２はサスペンド状態であるとしている。
【０１９８】
次に、ＭＣＵ側チャネルコマンド制御部１１０２は、Ｓ３８０６で特定した副ボリューム１３２が仮想ボリューム１９０であるか判定し（Ｓ３８０７）、仮想ボリューム１９０でないと判定した場合（Ｓ３８０７、Ｎｏ）、対応するジャーナル制御情報３５００のページ破棄ビット３５０９を０（副ボリューム１３２のページ破棄オフ）として、通常の非同期リモートコピー処理を実行する（Ｓ３８１３）。
【０１９９】
Ｓ３８０７で副ボリューム１３２が仮想ボリューム１９０であると判定した場合（Ｓ３８０７、Ｙｅｓ）、ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５にある差分ビットマップ１５２（１９００）内の書き込みを実行した箇所の正ボリューム側差分ビット１９０２を１に設定する（Ｓ３８０８）。
【０２００】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、共有メモリ１５にある副ボリュームページ破棄情報２９００に正ボリューム１３１でページ破棄を実行するページに対応する副ボリューム１３２のページ破棄ビット２９０６を１に設定する（Ｓ３８０９）。ＭＣＵ側チャネルコマンド制御部１１０２は、ホスト装置２に０データ書き込み完了を通知する（Ｓ３８１０）。
【０２０１】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、ホスト装置２から再同期化コマンドを受領し（Ｓ３８１１）、ＲＣＵ側チャネル制御部１１０にＲＣＵ側の再同期化のメッセージを送信する（Ｓ３８１２）。再同期化メッセージを受信したＲＣＵ側のチャネルコマンド制御部１１０２は、ＲＣＵ側の共有メモリ１５に保持されている差分ビットマップ１９００（１５２）をＭＣＵ側チャネル制御部１１０に送信し（Ｓ３８１４）、これを受信したＭＣＵ側チャネルコマンド制御部１１０２は、ＭＣＵ側、ＲＣＵ側の両差分ビットマップ１９００をマージする（Ｓ３８１５）。ＭＣＵ側チャネルコマンド制御部１１０２は、マージした差分ビットマップ１９００でＭＣＵ側差分ビット１９０２又はＲＣＵ側差分ビット１９０３が１であるスロットのリストを取得する（Ｓ３８１６）。
【０２０２】
さらに、ＭＣＵ側チャネルコマンド制御部１１０２は、副ボリュームページ破棄情報２９００でページ破棄ビット２９０６が１であるアドレスのリストを取得する（Ｓ３８１７）。
【０２０３】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、Ｓ３８１６で取得した差分ビット１９０２、１９０３が１であるスロットのリストの中で、副ボリュームページ破棄情報２９００のページ破棄ビット２９０６が１であるか判定する（Ｓ３８１８）。ページ破棄ビット２９０６が１でないと判定された場合（Ｓ３８１８、Ｎｏ）、チャネルコマンド制御部１１０２は、副ボリューム１３２のページ破棄をしない（対応するジャーナル制御情報３５００のページ破棄ビット３５０９を０とした）通常のコピー処理を実行する（Ｓ３８２８）。
【０２０４】
Ｓ３８１８で副ボリューム１３２が仮想ボリューム１９０であると判定した場合（Ｓ３８１８、Ｙｅｓ）、ＭＣＵ側チャネルコマンド制御部１１０２は、ページ破棄ビット３５０９を１（副ボリュームページ破棄オン）としてジャーナル制御情報３５００を作成する（Ｓ３８１９）。
【０２０５】
次いで、ＭＣＵ側チャネルコマンド制御部１１０２は、作成したジャーナル制御情報３５００とジャーナルデータ１３２１を正ジャーナルボリューム１３３に格納する（Ｓ３８２０）。
【０２０６】
ＲＣＵ側チャネルコマンド制御部１１０２は、ＭＣＵ側チャネルコマンド制御部１１０２に正ジャーナルボリューム１３３の格納データ読み取りコマンドを発行し（Ｓ３８２１）、このコマンドを受信したＭＣＵ側チャネルコマンド制御部１１０２は、正ジャーナルボリューム１３３の格納データをＲＣＵ側チャネルコマンド制御部１１０２へ送信する（Ｓ３８２２）。
【０２０７】
ＲＣＵ側のチャネル制御部１１０にあるチャネルコマンド制御部１１０２は、ＭＣＵ側チャネル制御部１１０から受信した正ジャーナルボリューム１３３の格納データを副ジャーナルボリューム１３４に格納する（Ｓ３８２３）。そして、ＲＣＵ側チャネルコマンド制御部１１０２は、ジャーナルシーケンス番号３５０８に従って副ボリューム１３２にデータをコピー（０データを書き込み）する（Ｓ３８２４）。次いで、ＲＣＵ側チャネルコマンド制御部１１０２は、ページ破棄管理テーブル２０００のページ破棄ビット２００２を１に設定し（Ｓ３８２５）、図２１に示したページ破棄処理を起動して処理を終了する（Ｓ３８２６）。
【０２０８】
以上説明した構成によれば、ホスト装置２から１回ページ破棄コマンドを与えることで、サスペンド状態にあるジャーナルを利用した非同期リモートコピーペアの正副ボリューム１３１、１３２のページ破棄を実行することができる。
【０２０９】
実施例４
カスケード構成が適用されている複数ボリューム間でのページ破棄処理
実施例１〜３では、ローカルコピー・同期リモートコピー・ジャーナル利用非同期リモートコピーの各構成において、１の正ボリューム１３１に対して１の副ボリューム１３２が対応付けられている場合の、正副ボリューム１３１、１３２におけるページ破棄方式を説明した。
【０２１０】
このページ破棄方式を利用すれば、カスケード構成（正副ボリューム１３１、１３２を有するコピーペアが有り、その副ボリューム１３２を正ボリューム１３１としてさらに他のコピーペアが作成されている構成。この副ボリューム１３２を正ボリューム１３１としコピーペアを繰り返し作成することで数に制限なくコピーペアを連鎖させることができる。）であっても、３つ以上の正副ボリューム全てでページ破棄処理を実行することができる。
【０２１１】
このカスケード構成での全てのボリュームのページ破棄は、全てのコピー方式、および全てのコピーペア状態で実現可能である。以下、同期リモートコピーで正ボリューム１３１と副ボリューム１３２を構成し、さらに前記副ボリューム１３２を正ボリューム１３１としてジャーナル利用非同期リモートコピーペアを構成する副ボリューム１３２が組み合わされている構成を例にとってページ破棄処理の概要を説明する。なお、いずれのコピーペアでも、ペア状態はペアである場合を例とする。
【０２１２】
まず、同期リモートコピーペアの正側ボリューム１３１を管理するチャネルコマンド制御部１１０２でホスト装置２からページ破棄コマンドを受領する。
【０２１３】
ＭＣＵ側チャネルコマンド制御部１１０２は、同期リモートコピー正ボリューム１３１の対応する破棄ページに０データを書き込む。ＭＣＵ側チャネルコマンド制御部１１０２は、同期リモートコピーのペア状態管理テーブル２７００でペア状態と副ボリューム１３２のコピー先を確認する。
【０２１４】
ＭＣＵ側チャネルコマンド制御部１１０２は、ページ破棄ビットを１に設定した通信メッセージ２８００と０データを同期リモートコピーの正側ボリューム１３１から副側ボリューム１３２へ送信する。なお、実施例１〜３の場合と同様に、前記０データの転送は、データ長分全てを転送する、あるいは最小容量単位の０データのみ送信しＲＣＵ側でデータ長分繰り返し０データを書き込む、あるいは０データは送信せずＲＣＵ側でページ破棄ビットが１ならば０データをデータ長分書き込む構成のうちのいずれであってもよい。
【０２１５】
ＲＣＵ側チャネル制御部１１０は、同期リモートコピーの副側ボリューム１３２で該当ページに０データを書き込む。この際、ジャーナル利用非同期リモートコピーの側から見ると、正ボリューム１３１に書き込みが発生したことになる。このため、同期リモートコピーのＲＣＵ側チャネル制御部１１０でページ破棄情報を含めたジャーナル制御情報３５００を作成し、これと同期リモートコピーで書き込まれた０データをジャーナル利用非同期リモートコピーの副ボリューム１３２側に送信することで、ジャーナル利用非同期リモートコピーの副ボリューム１３２側にページ破棄の情報を伝達することができる。
【０２１６】
以上の構成によれば、１回のホスト装置２からのページ破棄コマンドにより、同期リモートコピーの正ボリューム１３１、同期リモートコピーの副ボリューム１３２（ジャーナル利用非同期リモートコピー正ボリューム１３１）、及びジャーナル利用非同期リモートコピーの副ボリューム１３２の３つのボリュームで不要ページを破棄することができ、ストレージ装置１０の記憶資源をより有効に利用することができる。
【０２１７】
実施例５
マルチターゲット構成
コピーペアの構成として、１つの正ボリューム１３１に対して複数の副ボリューム１３２が対応付けられている構成も考えられる。このような構成（マルチターゲット構成）では、実施例１〜３に示した、１つの正ボリューム１３１と１つの副ボリューム１３２からなるコピーペアでのページ破棄処理を、全ての副ボリューム１３２に対して実行することで、１つの正ボリューム１３１を管理するチャネル制御部１１０に対してページ破棄コマンドを発行するだけで、対応する複数の副ボリューム１３２に格納されている対応ページをも破棄することができる。
【０２１８】
実施例６
コピーペアの副ボリューム１３２のみが仮想ボリュームである構成
正ボリューム１３１が実ＬＤＥＶに直接割り当てられている実ボリュームであり、副ボリューム１３２が仮想ボリュームである構成の場合には、以下の処理により、副ボリューム１３２のページ破棄を実行することができる。
【０２１９】
まず、ホスト装置２からページ破棄コマンドを正ボリューム１３１側のチャネル制御部１１０が受領すると、チャネル制御部１１０は、ペア状態管理テーブル２２００、２７００、３６００を用いて、対応する副ボリューム１３２が仮想ボリューム１９０であるか判定する。
【０２２０】
副ボリューム１３２が仮想ボリューム１９０であると判定した場合、正ボリューム１３１側チャネル制御部１１０は、そのアドレスを取得し、実施例１〜３で示した正副ボリューム１３１、１３２両方のページ破棄処理の内、正ボリューム１３１のページ破棄処理だけをスキップし、正ボリューム１３１に対応する副ボリューム１３２の該当ページを破棄する。
【０２２１】
以上詳細に説明した本発明の実施形態によれば、コピーペアを構成している、仮想ボリュームからなる正ボリューム１３１又は副ボリューム１３２を備えるストレージ装置１０において、ホスト装置２から正ボリューム１３１を管理しているストレージ装置１０に、当該正ボリューム１３１に割り当てられている実記憶領域の破棄処理を要求することで、対応する副ボリューム１３２のデータが格納されている実記憶領域も破棄することができ、ストレージ装置１０に対する処理負荷を抑制しつつ、記憶資源の有効活用を図ることが可能となる。
【０２２２】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図１】
2011129006.tif 000003
【図２】
2011129006.tif 000004
【図３】
2011129006.tif 000005
【図４】
2011129006.tif 000006
【図５】
2011129006.tif 000007
【図６】
2011129006.tif 000008
【図７】
2011129006.tif 000009
【図８】
2011129006.tif 000010
【図９】
2011129006.tif 000011
【図１０】
2011129006.tif 000012
【図１１】
2011129006.tif 000013
【図１２】
2011129006.tif 000014
【図１３】
2011129006.tif 000015
【図１４】
2011129006.tif 000016
【図１５】
2011129006.tif 000017
【図１６】
2011129006.tif 000018
【図１７】
2011129006.tif 000019
【図１８】
2011129006.tif 000020
【図１９】
2011129006.tif 000021
【図２０Ａ】
2011129006.tif 000022
【図２０Ｂ】
2011129006.tif 000023
【図２１】
2011129006.tif 000024
【図２２】
2011129006.tif 000025
【図２３】
2011129006.tif 000026
【図２４】
2011129006.tif 000027
【図２５】
2011129006.tif 000028
【図２６】
2011129006.tif 000029
【図２７】
2011129006.tif 000030
【図２８】
2011129006.tif 000031
【図２９】
2011129006.tif 000032
【図３０】
2011129006.tif 000033
【図３１Ａ】
2011129006.tif 000034
【図３１Ｂ】
2011129006.tif 000035
【図３２】
2011129006.tif 000036
【図３３】
2011129006.tif 000037
【図３４】
2011129006.tif 000038
【図３５Ａ】
2011129006.tif 000039
【図３５Ｂ】
2011129006.tif 000040
【図３６】
2011129006.tif 000041
【図３７】
2011129006.tif 000042
【図３８Ａ】
2011129006.tif 000043
【図３８Ｂ】
2011129006.tif 000044
【国際調査報告】
2011129006.tif 000045
2011129006.tif 000046
2011129006.tif 000047
2011129006.tif 000048