(57)【特許請求の範囲】
【請求項１】
データを分散して記憶する複数の記憶手段を有し、前記複数の記憶手段それぞれに記憶されたデータを含むデータ群を一括して出力するストレージ装置において、
処理の順序を示す世代に分けられていると共に、データが互いに世代毎に対応付けられているデータ群を記憶する記憶領域を有するデータ群記憶手段と、
データ群を前記複数の記憶手段から読み出して前記データ群記憶手段に退避するライトバックの要求、または前記データ群記憶手段に退避したデータ群を前記複数の記憶手段に分散して記憶させるステージングの要求の発生時を起算時点として前記記憶手段の空きを待ち合わせている間の経過時間が、データ群の転送の順序を維持する順序性の保証を断念する基準となる監視時間に対してどれだけ余裕があるかを示す余裕時間を監視し、連続した前記ライトバックまたは前記ステージングの所要時間を予測し、前記余裕時間と前記所要時間の予測結果とを比較し、比較した結果に基づき、連続して前記ライトバックまたは前記ステージングされるデータ群の個数を算出する算出手段と、
当該算出された個数の対象のデータ群を、前記データ群記憶手段の記憶領域の連続した領域に世代の順序で前記ライトバックまたは前記ステージングする退避制御手段と、
を有することを特徴とするストレージ装置。
【請求項２】
データを分散して記憶する複数の記憶手段を有し、前記複数の記憶手段それぞれに記憶された前記データを含むデータ群を一括して出力するストレージ装置を制御するストレージ装置制御プログラムにおいて、
コンピュータに、
前記ストレージ装置は、処理の順序を示す世代に分けられていると共に、データが互いに世代毎に対応付けられているデータ群を記憶する記憶領域を有するデータ群記憶手段を有し、
データ群を前記複数の記憶手段から読み出して前記データ群記憶手段に退避するライトバックの要求、または前記データ群記憶手段に退避したデータ群を前記複数の記憶手段に分散して記憶させるステージングの要求の発生時を起算時点として前記記憶手段の空きを待ち合わせている間の経過時間が、データ群の転送の順序を維持する順序性の保証を断念する基準となる監視時間に対してどれだけ余裕があるかを示す余裕時間を監視し、連続した前記ライトバックまたは前記ステージングの所要時間を予測し、前記余裕時間と前記所要時間の予測結果とを比較し、比較した結果に基づき、連続して前記ライトバックまたは前記ステージングされるデータ群の個数を算出し、
当該算出された個数の対象のデータ群を、前記データ群記憶手段の記憶領域の連続した領域に世代の順序で前記ライトバックまたは前記ステージングする、
処理を実行させるストレージ装置制御プログラム。
【請求項３】
データを分散して記憶する複数の記憶手段を有し、前記複数の記憶手段それぞれに記憶された前記データを含むデータ群を一括して出力するストレージ装置を制御するストレージ装置制御方法において、
コンピュータが、
前記ストレージ装置は、処理の順序を示す世代に分けられていると共に、データが互いに世代毎に対応付けられているデータ群を記憶する記憶領域を有するデータ群記憶手段を有し、
データ群を前記複数の記憶手段から読み出して前記データ群記憶手段に退避するライトバックの要求、または前記データ群記憶手段に退避したデータ群を前記複数の記憶手段に分散して記憶させるステージングの要求の発生時を起算時点として前記記憶手段の空きを待ち合わせている間の経過時間が、データ群の転送の順序を維持する順序性の保証を断念する基準となる監視時間に対してどれだけ余裕があるかを示す余裕時間を監視し、連続した前記ライトバックまたは前記ステージングの所要時間を予測し、前記余裕時間と前記所要時間の予測結果とを比較し、比較した結果に基づき、連続して前記ライトバックまたは前記ステージングされるデータ群の個数を算出し、
当該算出された個数の対象のデータ群を、前記データ群記憶手段の記憶領域の連続した領域に世代の順序で前記ライトバックまたは前記ステージングする、
ストレージ装置制御方法。
【請求項４】
データを分散して記憶する複数の記憶手段を有し、前記複数の記憶手段それぞれに記憶されたデータを含むデータ群を一括して出力するストレージ装置において、
処理の順序を示す世代に分けられていると共に、データが互いに世代毎に対応付けられているデータ群を記憶する記憶領域を有するデータ群記憶手段と、
データ群を世代の順序で前記複数の記憶手段から読み出して前記データ群記憶手段に退避するライトバック、または前記データ群記憶手段に退避したデータ群を世代の順序で前記複数の記憶手段に分散して記憶させるステージングを実行する複数の退避制御手段と、を有し、
前記複数の退避制御手段のそれぞれは、他の退避制御手段に異常が発生した場合、自己の記憶手段の空き状態に応じて調整した個数の、自身に割り当てられているデータ群の一部と異常が発生した前記他の退避制御手段に割り当てられているデータ群の一部とについて、退避制御手段に対する割り当て毎に連続して前記ステージングする、
ことを特徴とするストレージ装置。
【請求項５】
データを分散して記憶する複数の記憶手段を有し、前記複数の記憶手段それぞれに記憶されたデータを含むデータ群を一括して出力するストレージ装置を制御するストレージ装置制御プログラムにおいて、
コンピュータに、
前記ストレージ装置は、処理の順序を示す世代に分けられていると共に、データが互いに世代毎に対応付けられているデータ群を記憶する記憶領域を有するデータ群記憶手段および複数の退避制御手順を有し、
データ群を世代の順序で前記複数の記憶手段から読み出して前記データ群記憶手段に退避するライトバック、または前記データ群記憶手段に退避したデータ群を世代の順序で前記複数の記憶手段に分散して記憶させるステージングを実行する前記複数の退避制御手順において、
前記複数の退避制御手順のそれぞれは、他の退避制御手順に異常が発生した場合、自己の記憶手段の空き状態に応じて調整した個数の、自身に割り当てられているデータ群の一部と異常が発生した前記他の退避制御手順に割り当てられているデータ群の一部とについて、退避制御手順に対する割り当て毎に連続して前記ステージングする、
処理を実行させるストレージ装置制御プログラム。
【請求項６】
データを分散して記憶する複数の記憶手段を有し、前記複数の記憶手段それぞれに記憶されたデータを含むデータ群を一括して出力するストレージ装置を制御するストレージ装置制御方法において、
コンピュータが、
前記ストレージ装置は、処理の順序を示す世代に分けられていると共に、データが互いに世代毎に対応付けられているデータ群を記憶する記憶領域を有するデータ群記憶手段および複数の退避制御手順を有し、
データ群を世代の順序で前記複数の記憶手段から読み出して前記データ群記憶手段に退避するライトバック、または前記データ群記憶手段に退避したデータ群を世代の順序で前記複数の記憶手段に分散して記憶させるステージングを実行する前記複数の退避制御手順において、
前記複数の退避制御手順のそれぞれは、他の退避制御手順に異常が発生した場合、自己の記憶手段の空き状態に応じて調整した個数の、自身に割り当てられているデータ群の一部と異常が発生した前記他の退避制御手順に割り当てられているデータ群の一部とについて、退避制御手順に対する割り当て毎に連続して前記ステージングする、
ストレージ装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法に関する。
【背景技術】
【０００２】
従来、分散キャッシュメモリ型のストレージ装置を有するストレージシステムでは、性能や信頼性の向上のために、ハードディスクドライブ等の記憶媒体である記憶デバイスに対するデータの入出力を制御する制御モジュールを複数備える冗長構成が採用されている。そして、制御モジュール毎に、論理ボリュームに対するデータのＲｅａｄ処理およびＷｒｉｔｅ処理が実行される。
【０００３】
このようなストレージ装置は、予期せぬ災害発生時等に備えて、ある論理ボリュームのデータについてネットワークを介して遠隔地に転送してリモートコピーする機能として、ＲＥＣ（Remote Equivalent Copy）を有するものがある。ここで、通常のＲＥＣではデータの転送時に順序性の保証がないため、災害発生後のデータの復旧に時間がかかる場合がある。これに対処するリモートコピーの順序性を保証するリモートコピー機能として、例えばＲＥＣ Ｃｏｎｓｉｓｔｅｎｃｙ Ｍｏｄｅを有するストレージシステムがある。
【０００４】
ＲＥＣ Ｃｏｎｓｉｓｔｅｎｃｙ Ｍｏｄｅでは、ストレージ装置は、ホストコンピュータからのデータを、一定容量に世代分けしたＣｏｎｓｉｓｔｅｎｃｙ  Ｂｕｆｆｅｒと呼ばれる専用メモリである、制御モジュールが有するバッファに記憶させる。そして、ストレージ装置は、データを世代毎にネットワークを介してコピー先のストレージ装置に転送し、転送先のストレージ装置が論理ボリュームに順序が維持されるように反映させることで、リモートコピーの順序性を保証する。
【０００５】
図３０および図３１は、順序性を保証するリモートコピー機能を有するストレージシステムを示す図である。図３０に示すストレージシステムは、制御モジュール＃００および＃０１を有するストレージ装置３１００と制御モジュール＃１０および＃１１を有するストレージ装置３２００が、ネットワーク３０１１で接続されている。ここで、ネットワーク３０１１を介してストレージ装置３１００をコピー元、ストレージ装置３２００をコピー先としてリモートコピーが行われるものとする。
【０００６】
ストレージ装置３１００は、記憶デバイス３１１７０と対応付けられているバッファ３１１８０ａおよびＢＩＴ（Buffer Index Table）記憶部３１１８０ｂを有する記録専用バッファ３１１８０、バッファセットに関する情報を記憶するバッファセット情報記憶部３１１９０、データを記憶する記憶デバイス３１１７０を有する制御モジュール＃００ならびに記憶デバイス３１１７１と対応付けられているバッファ３１１８１ａおよびＢＩＴ記憶部３１１８１ｂを有する記録専用バッファ３１１８１、バッファセット情報記憶部３１１９１、記憶デバイス３１１７１を有する制御モジュール＃０１を有する。
【０００７】
同様に、ストレージ装置３２００は、記憶デバイス３２１７０と対応付けられているバッファ３２１８０ａおよびＢＩＴ記憶部３２１８０ｂを有する記録専用バッファ３２１８０、バッファセット情報記憶部３２１９０、記憶デバイス３２１７０を有する制御モジュール＃１０ならびに記憶デバイス３２１７１と対応付けられているバッファ３２１８１ａおよびＢＩＴ記憶部３２１８１ｂを有する記録専用バッファ３２１８１、バッファセット情報記憶部３２１９１、記憶デバイス３２１７１を有する制御モジュール＃１１を有する。
【０００８】
バッファ３１１８０ａ，３１１８１ａ，３２１８０ａ，３２１８１ａは、一定サイズの複数の記憶領域に分割されている。分割されたバッファ３１１８０ａ，３１１８１ａ，３２１８０ａ，３２１８１ａの各領域には、それぞれバッファＩＤが割り当てられる。そして、バッファ３１１８０ａ，３１１８１ａ，３２１８０ａ，３２１８１ａの記憶領域毎に、それぞれ対応する記憶デバイス３１１７０，３１１７１，３２１７０，３２１７１に既に記憶されているデータまたは対応する記憶デバイス３１１７０，３１１７１，３２１７０，３２１７１にこれから記憶されようとしているデータが一時的に記憶される。また、ＢＩＴ記憶部３１１８０ｂ，３１１８１ｂ，３２１８０ｂ，３２１８１ｂは、それぞれ対応するバッファ３１１８０ａ，３１１８１ａ，３２１８０ａ，３２１８１ａに記憶したデータの記憶デバイス３１１７０，３１１７１，３２１７０，３２１７１上における記憶場所、バッファＩＤ等を含む情報であるＢＩＴを記憶する。
【０００９】
なお、図３０においてバッファ３１１８０ａに記載されている“（００００）”は、バッファＩＤが００００のバッファに記憶されたバッファデータを表している。また、ＢＩＴに記載されている“００００”は、ＢＩＴに対応するバッファのバッファＩＤを表している。
【００１０】
バッファセット情報記憶部３１１９０，３１１９１，３２１９０，３２１９１は、各制御モジュールのバッファに記憶されたバッファデータの組み合わせ、例えば、コピー元のストレージ装置３１００で横長の点線で囲まれたバッファデータ（００００）と（０１００）との組み合わせであるバッファセットに関する情報を記憶する。
【００１１】
バッファセットに関する情報には、バッファセット情報記憶部に対応する制御モジュールのバッファに記憶されている各バッファデータと、各バッファデータを記憶しているコピー先であるストレージ装置３２００のバッファとの関連付け情報が含まれる。例えば、制御モジュール＃００のバッファセット情報記憶部で、バッファＩＤが“００００”のバッファに記憶されているバッファデータ（００００）と、そのバッファデータのコピー先となる、バッファＩＤが“１０００”のバッファとが関連付けられる。
【００１２】
このようなストレージステムにおいて、ストレージ装置３１００の制御モジュール＃００，＃０１は、ホストコンピュータ等からＷｒｉｔｅ  Ｉ／Ｏ命令（受信したデータの記憶デバイスへの書き込みの命令）を受け付けると、そのＷｒｉｔｅ  Ｉ／Ｏ命令に従ってデータをそれぞれ記憶デバイス３１１７０，３１１７１に記憶する。また、制御モジュール＃００，＃０１は、データをバッファに記憶する。この時、データは、バッファデータがバッファセット情報により互いに関連付けられたバッファセット単位で管理される。そして、バッファへのデータの書き込みが完了すると、制御モジュール＃００，＃０１は、そのデータについて、バッファセット単位でストレージ装置３２００にデータ転送、すなわち、リモートコピーを開始する。
【００１３】
リモートコピーによってコピー元であるストレージ装置３１００からストレージ装置３２００に転送されたデータは、バッファセット情報に従って、コピー先であるストレージ装置３２００の制御モジュール＃１０，＃１１が有するバッファに記憶される。すると、制御モジュール＃１０，＃１１は、バッファに記憶されたデータをそれぞれ記憶デバイス３２１７０，３２１７１に書き込む。そして、以上の処理が完了すると、ストレージ装置３１００，３２００が有する各制御モジュールは、バッファ等を解放する。
【００１４】
以上のように、記録専用バッファを使用したまとめ方式によるデータ送信を行って、バッファセットを一括制御し、コピー先であるストレージ装置３２００において、バッファセット単位でデータを記憶デバイス３２１７０，３２１７１に書き込むことで、転送されるデータの順序性が保証される。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００１−１００９３９号公報
【特許文献２】特開平７−１２１３０８号公報
【特許文献３】特開平５−１００９２７号公報
【特許文献４】特開２００６−２６０２９２号公報
【特許文献５】国際公開ＷＯ／２００８／１５２６９１号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかし、図３１に示すように、コピー元であるストレージ装置３１００において、転送済みのデータを記憶するバッファやＢＩＴは、コピー先であるストレージ装置３２００でデータが記憶デバイスに展開されるまで解放待ちとなり、コピー元であるストレージ装置３１００に保持される。
【００１７】
このため、ストレージ装置３２００において論理ボリュームへの更新負荷が高くデータを記憶デバイスに展開する処理が遅延している場合、またはストレージ装置３１００，３２００間のネットワーク３０１１に異常が発生した場合、ネットワーク３０１１の回線能力が低い場合や不均一である場合等には、転送処理に遅延が発生する。
【００１８】
これらの原因により転送処理に遅延が発生すると、その分、ストレージ装置３１００，３２００のバッファやＢＩＴを使用する時間が長くなり、ストレージ装置３１００，３２００のバッファの解放ができなくなる。
【００１９】
このような状態でホストコンピュータ等から新たにＷｒｉｔｅ  Ｉ／Ｏ命令を受けると、コピー元であるストレージ装置３１００は、そのＷｒｉｔｅ  Ｉ／Ｏ命令を受ける度に、書き込み対象のデータをバッファに記憶する。その結果、ストレージ装置３１００のバッファは次々と消費されていく。
【００２０】
この状態が続くと、ストレージ装置３１００ではデータを記憶可能なバッファを確保できなくなり、ストレージ装置３１００のバッファが枯渇してしまう。また、設定されているバッファの大きさ以上に大きいデータを処理する場合も、同様にストレージ装置３１００のバッファが枯渇してしまう。
【００２１】
バッファが枯渇している状態では、ホストコンピュータ等からのＷｒｉｔｅ  Ｉ／Ｏ命令をストレージ装置３１００が処理せずに止まっている状態であるため、この状態を長く継続することはできない。
【００２２】
そのため、一時的にＷｒｉｔｅ  Ｉ／Ｏ命令の処理を停止し、かつ、一定時間経過してもバッファが枯渇している状態が解消されない場合は、処理を一旦中止してバッファの記憶内容を消去するバッファＨａｌｔ処理が行われる。ストレージ装置３１００，３２００は、バッファＨａｌｔ処理を行ってバッファをクリアすると共にＷｒｉｔｅ  Ｉ／Ｏ命令の処理を再開する。
【００２３】
この時、ストレージ装置３１００は、バッファ内のデータ等の情報を専用のビットマップに書き戻す。そして、ストレージ装置３１００は、バッファＨａｌｔ処理を実行後にそのビットマップに従って順序性を保証しないリモートコピー転送を行う。この場合、順序性を保証したリモートコピーが中断されてしまうという問題点がある。
【００２４】
ここで、上記の順序性を保証するリモートコピー機能において、リモートコピーで転送されるデータを一時的にハードディスクドライブ等の退避用バッファに蓄えるＲＥＣ Ｄｉｓｋ Ｂｕｆｆｅｒｅｄ Ｃｏｎｓｉｓｔｅｎｃｙ Ｍｏｄｅを有するストレージシステムについて考える。これにより、ストレージ装置の論理ボリュームへの更新負荷が高い場合や、ストレージ装置間のネットワークの転送に異常が発生した場合等にも、リモートコピー時の順序性の保証が可能となる。ここで、このストレージシステムでは、退避用バッファへの記憶も世代毎に行われるものとする。
【００２５】
このようなストレージ装置において、各制御モジュールが有するバッファは、ライトバック（writeback）およびステージング（staging）に使用する。ここで、ライトバックは、バッファからデータを読み出して退避用バッファに書き込む動作である。ステージングは、退避用バッファからデータを読み出してバッファに書き込む動作である。ライトバックおよびステージングでは、データの順序性を保証するために、発生した順序等、規定の順序で退避用バッファへのアクセスを行う。しかし、順序に従って一世代毎に退避用バッファへのアクセスを行った場合、バッファから退避用バッファへのライトバック先の位置は連続しない領域へのアクセスとなる可能性がある。これにより、退避用バッファの本来の性能を引き出すことができない場合がある。この結果、ライトバックの遅延がデータのバッファへの格納の遅延につながり、順序性の保証が十分に発揮されない場合が生じ得るという問題点がある。
【００２６】
本件はこのような点に鑑みてなされたものであり、退避用バッファに対するアクセスのスループットを向上させてリモートコピーにおける順序性を保証する機能の効率低下を抑止可能なストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２７】
上記目的を達成するために以下のようなデータを分散して記憶する複数の記憶手段と、複数の記憶手段それぞれに記憶されたデータを含むデータ群を一括して出力する出力手段とを有するストレージ装置、ストレージ装置を制御するストレージ装置制御プログラムおよびストレージ装置制御方法が提供される。データ群記憶手段は、データ群を記憶する記憶領域を有する。退避制御手段は、データ群を複数の記憶手段から読み出してデータ群記憶手段に退避するライトバック、およびデータ群記憶手段に退避したデータ群を複数の記憶手段に分散して記憶するステージングのうちの少なくともいずれか一方を、ライトバックまたはステージングの対象となる複数のデータ群を記憶するデータ群記憶手段の記憶領域に応じて連続して実行する。
【発明の効果】
【００２８】
開示のストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法によれば、リモートコピーにおける順序性を保証する機能の効率低下を抑止することが可能となる。
【図面の簡単な説明】
【００２９】
【図１】第１の実施の形態のストレージ装置を示す図である。
【図２】第２の実施の形態のストレージシステムを示す図である。
【図３】第２の実施の形態の制御モジュールが有するメモリの構成例を示す図である。
【図４】第２の実施の形態のバッファ管理テーブルを示す図である。
【図５】第２の実施の形態のバッファセット管理テーブルを示す図である。
【図６】第２の実施の形態の退避用バッファ管理テーブルを示す図である。
【図７】第２の実施の形態のＩ／Ｏ監視テーブルを示す図である。
【図８】第２の実施の形態の複数世代アクセス管理テーブルを示す図である。
【図９】第２の実施の形態の回線管理テーブルを示す図である。
【図１０】第２の実施の形態のバッファ状態管理テーブルを示す図である。
【図１１】第２の実施の形態のメモリと退避用バッファとの関係を示す図である。
【図１２】第２の実施の形態の退避用バッファを示す図である。
【図１３】第２の実施の形態のデータの退避を示す図である。
【図１４】第２の実施の形態のデータの退避を示す図である。
【図１５】第２の実施の形態のデータの退避を示す図である。
【図１６】第２の実施の形態のストレージ装置の機能を示すブロック図である。
【図１７】バッファの動作を示す図である。
【図１８】退避用バッファの動作を示す図である。
【図１９】第２の実施の形態のバッファの動作を示す図である。
【図２０】第２の実施の形態の退避用バッファの動作を示す図である。
【図２１】バッファのアクセス時におけるメモリ資源の解放待ち時間を示す図である。
【図２２】第２の実施の形態の制御モジュールの異常発生時におけるリモートコピーを示す図である。
【図２３】第２の実施の形態のストレージ装置の接続を示す図である。
【図２４】第２の実施の形態の複数世代アクセス処理の手順を示すフローチャートである。
【図２５】第２の実施の形態のライトバック処理の手順を示すフローチャートである。
【図２６】第２の実施の形態のライトバック処理の手順を示すフローチャートである。
【図２７】第２の実施の形態の単数世代アクセスおよび複数世代アクセスにおける退避用バッファの動作を示す図である。
【図２８】第２の実施の形態のステージング処理の手順を示すフローチャートである。
【図２９】第２の実施の形態のステージング処理の手順を示すフローチャートである。
【図３０】順序性を保証するリモートコピー機能を有するストレージシステムを示す図である。
【図３１】順序性を保証するリモートコピー機能を有するストレージシステムを示す図である。
【発明を実施するための形態】
【００３０】
以下、実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージ装置を示す図である。本実施の形態のストレージ装置１は、ストレージ装置２と通信回線５で接続されている。ストレージ装置１は、ホストコンピュータ３と接続されている。ストレージ装置２は、ホストコンピュータ４と接続されている。ストレージ装置１は、ホストコンピュータ３から送信されたデータを、通信回線５を介してストレージ装置２に転送することにより、リモートコピーを行う。ストレージ装置１は、退避制御手段１ａ、出力手段１ｂ、記憶手段１ｃ１，１ｃ２、データ群記憶手段１ｄを有する。ストレージ装置２は、記憶手段２ｃ１，２ｃ２を有する。
【００３１】
退避制御手段１ａは、互いに関連付けられているデータ群を記憶手段１ｃ１，１ｃ２から読み出してデータ群記憶手段１ｄに退避するライトバック、およびデータ群記憶手段１ｄに退避したデータ群を記憶手段１ｃ１，１ｃ２に分散して記憶するステージングを、ライトバックまたはステージングの対象となる複数のデータ群を記憶するデータ群記憶手段１ｄの記憶領域の並んでいる順序に応じて実行する。すなわち、退避制御手段１ａは、記憶手段１ｃ１，１ｃ２からデータ群記憶手段１ｄにデータを退避させる場合、またはデータ群記憶手段１ｄに退避させたデータを記憶手段１ｃ１，１ｃ２に記憶させる場合、可能な限りデータ群記憶手段１ｄにおいて退避させるデータが隣接するものは連続してアクセスする。これにより、ライトバック時およびステージング時のデータ群記憶手段１ｄへのアクセスにおいて、データ群記憶手段１ｄの連続する領域にアクセスするのでシーク時間を短縮でき、データ群記憶手段１ｄに対するアクセスの効率化を図ることができる。
【００３２】
出力手段１ｂは、記憶手段１ｃ１，１ｃ２のそれぞれに記憶されたデータを含むデータ群を一括してストレージ装置２に出力する。
記憶手段１ｃ１，１ｃ２は、ホストコンピュータ３から送信されたリモートコピーするデータを一時的に、それぞれに分散して記憶する。記憶手段１ｃ１，１ｃ２に記憶されているデータが増加した場合等に記憶手段１ｃ１，１ｃ２からデータが溢れることを防止するために、退避制御手段１ａは、記憶手段１ｃ１，１ｃ２に記憶されているデータをデータ群記憶手段１ｄに退避させる。
【００３３】
データ群記憶手段１ｄは、データ群を記憶する領域を有する。データ群記憶手段１ｄの記憶領域に、退避制御手段１ａにより記憶手段１ｃ１，１ｃ２から退避したデータが記憶される。また、データ群記憶手段１ｄの記憶領域に退避したデータは、退避制御手段１ａにより読み出されて記憶手段１ｃ１，１ｃ２に記憶される。
【００３４】
記憶手段２ｃ１，２ｃ２は、通信回線５を介してストレージ装置１から転送されたリモートコピーのデータを分散して記憶する。
なお、本実施の形態のストレージ装置１は、２個の記憶手段を有するが、これに限らず、ストレージ装置１が有する記憶手段の個数は１個であってもよく、また、３個以上であってもよい。また、本実施の形態のストレージ装置２は、２個の記憶手段を有するが、これに限らず、ストレージ装置２が有する記憶手段の個数は１個であってもよく、３個以上であってもよい。
【００３５】
このように、ストレージ装置１では、退避制御手段１ａは、データ群記憶手段１ｄの記憶領域が連続する順序でアクセスする。これにより、データ群記憶手段１ｄに対するアクセスのシーク時間を短縮させることによりスループットが向上し、リモートコピーにおける順序性を保証する機能の効率低下を抑止することができる。
【００３６】
［第２の実施の形態］
次に、図１のストレージ装置１を、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成するストレージ群を有するストレージ装置１００に適用した実施の形態を、第２の実施の形態として説明する。
【００３７】
図２は、第２の実施の形態のストレージシステムを示す図である。図２に示すストレージシステム１０は、ストレージ装置１００と、ストレージ装置１００とネットワーク１１を介して通信可能に接続されているストレージ装置２００とを有する。
【００３８】
ストレージ装置１００は、キャッシュメモリ等に使用されるメモリを有する複数の制御モジュール＃００，＃０１，＃０２，＃０３と、それぞれ磁気ディスク装置等の記憶装置で構成される記憶デバイス１１７と退避用バッファ１１８とを有する分散キャッシュメモリ型のＲＡＩＤ装置である。
【００３９】
制御モジュール＃００〜＃０３は、記憶デバイス１１７および退避用バッファ１１８と接続されている。制御モジュール＃００は、ＣＰＵ（Central Processing Unit）１１１、メモリ１１２、ＣＡ（Channel Adapter）１１３、ＲＡ（Remote Adapter）１１４、ＤＡ（Device Adapter）１１５，１１６を有する。
【００４０】
ＣＰＵ１１１は、所定のプログラム命令を実行して制御モジュール＃００を動作させ、順序性を保証したリモートコピーを実現する。
メモリ１１２は、キャッシュメモリに使用される他に、図３において後述する記録専用バッファ１１２１、バッファセット情報記憶部１１２２１等にも使用されるメモリである。
【００４１】
ＣＡ１１３は、ストレージ装置１００と接続されているホストコンピュータ３００に対するインターフェース制御部である。また、ＲＡ１１４は、ネットワーク１１を介して接続されるストレージ装置２００等の他のストレージ装置等に対するインターフェース制御部である。
【００４２】
ＤＡ１１５およびＤＡ１１６は、記憶デバイス１１７や退避用バッファ１１８とのインターフェース制御部である。本実施例では、ＤＡ１１５およびＤＡ１１６は、記憶デバイス１１７および退避用バッファ１１８と接続されている。
【００４３】
ストレージ装置１００が有する他の制御モジュール＃０１〜＃０３、ストレージ装置２００が有する制御モジュール＃１０〜＃１３も、制御モジュール＃００と同様の機能を有する。なお、図２のストレージ装置２００は、退避用バッファを有しないが、退避用バッファを有してもよい。
【００４４】
なお、本実施の形態のストレージ装置１００，２００は、それぞれ４つの制御モジュール＃００〜＃０３，＃１０〜＃１３を有するが、これに限らず、ストレージ装置１００，２００は、４以外の任意の個数を有してもよい。また、ストレージ装置１００，２００は、分散キャッシュメモリ型のＲＡＩＤ装置であればよく、ＣＰＵ，ＣＡ，ＲＡ，ＤＡについても、任意の個数でよい。
【００４５】
図３は、第２の実施の形態の制御モジュールが有するメモリの構成例を示す図である。図３に示すメモリ１１２は、記録専用バッファ１１２１、バッファセット情報記憶部１１２２１、未使用バッファＩＤ記憶部１１２２２、バッファ管理テーブル記憶部１１２３、バッファセット管理テーブル記憶部１１２４、退避用バッファ管理テーブル記憶部１１２５を有する。また、メモリ１１２は、Ｉ／Ｏ監視テーブル記憶部１１２６、複数世代アクセス管理テーブル記憶部１１２７、回線管理テーブル記憶部１１２８、バッファ状態管理テーブル記憶部１１２９を有する。
【００４６】
記録専用バッファ１１２１は、バッファ１１２１１、ＢＩＴ記憶部１１２１２を有する。バッファ１１２１１は、例えばストレージ装置２００に転送してリモートコピーするデータであって、記憶デバイス１１７等に記憶しようとしているデータまたは既に記憶されているデータを一時的に記憶する。本実施の形態のバッファ１１２１１は、一定のサイズを有する８つの記憶領域に区分されている。バッファ１１２１１の区分された領域毎に固有の識別情報が割り当てられている。なお、本実施の形態ではバッファ１１２１１が８つの記憶領域に区分される場合を例に説明するが、バッファ１１２１１は、８つの記憶領域に区分される構成に限定されず、バッファ１１２１１は、８以外の任意の数の記憶領域に区分してもよい。
【００４７】
以下、バッファ１１２１１における区分された領域を「個別バッファ」という。また、個別バッファに割り当てられている識別情報を「バッファＩＤ」という。そして、任意の個別バッファに記憶されたデータを「バッファデータ」という。
【００４８】
例えば、図３のバッファ１１２１１内に記載の（００００），（０００１），（０００２），・・・の括弧内の数字００００，０００１，０００２，・・・は、個別バッファ毎に割り当てられたバッファＩＤを示す。バッファ１１２１１内に記載の括弧付きの数字（００００），（０００１），（０００２），・・・は、それぞれ括弧内のバッファＩＤが示す個別バッファに記憶されたバッファデータを意味している。
【００４９】
ＢＩＴ記憶部１１２１２は、バッファ１１２１１内の個別バッファに記憶されているバッファデータが展開されているＬＵ（Logical Unit）やＬＢＡ（Logical Block Address）、データサイズ、コピーセッションの番号等を含むＢＩＴを記憶する。
【００５０】
図３のＢＩＴ記憶部１１２１２に記載の００００，０００１，０００２，・・・は、バッファ１１２１１内の各個別バッファに割り当てられたバッファＩＤを示している。例えば、ＢＩＴ記憶部１１２１２内の００００に対応する領域は、バッファＩＤが００００の個別バッファに記憶されているバッファデータが展開されているＬＵやＬＢＡ、データサイズ、コピーセッションの番号等を含むＢＩＴを記憶している。
【００５１】
バッファセット情報記憶部１１２２１は、同一ストレージ装置内の各制御モジュールの個別バッファの組み合わせ（バッファセット）であって、これからライトバックおよびステージングに使用するバッファセットを示す識別情報、すなわち、バッファセットＩＤを記憶する。
【００５２】
以下、バッファセットに関する情報を「バッファセット情報」という。さらに、バッファセットに記憶されるバッファデータを総じて「バッファセットデータ」という。
本実施の形態では、各制御モジュールのバッファが８個の個別バッファを有するため、各制御モジュールが有するバッファセットも８個となる。
【００５３】
バッファセット情報には、ストレージ装置間でリモートコピーを行う場合の、ストレージ装置１００の制御モジュールが有する個別バッファと、コピー先のストレージ装置２００の制御モジュールが有する個別バッファとを関連付ける情報も含まれている。個別バッファを関連付ける情報をバッファセット情報に含める処理を「マッチング処理」という。
【００５４】
以下、コピー元であるストレージ装置１００の制御モジュールが有する個別バッファのバッファＩＤを、「コピー元ＩＤ」という。同様に、コピー先であるストレージ装置２００の制御モジュールが有する個別バッファのバッファＩＤを、「コピー先ＩＤ」という。
【００５５】
ここで、図３のバッファセット情報記憶部１１２２１に記憶されているバッファＩＤ（コピー元ＩＤ）００００，０１００，０２００，０３００は、それぞれストレージ装置１００の制御モジュール＃００，＃０１，＃０２，＃０３が有する個別バッファを示すものとする。例えば、バッファＩＤ００００は、個別バッファ１１２１１ａを示す。また、図３のバッファセット情報記憶部１１２２１に記憶されているバッファＩＤ（コピー先ＩＤ）１０００，１１００，１２００，１３００は、それぞれストレージ装置２００の制御モジュール＃１０，＃１１，＃１２，＃１３が有する個別バッファを示すものとする。
【００５６】
また、ストレージ装置１００は分散キャッシュメモリ型のＲＡＩＤ装置であり、データを各制御モジュールの個別バッファ（例えば、図３におけるバッファＩＤが００００，０１００，０２００，０３００の個別バッファ）に分散して記憶する。この場合、バッファセット情報記憶部１１２２１には、バッファＩＤが００００，０１００，０２００，０３００の個別バッファを含むバッファセットを表すバッファセット情報１１２２１ａが記憶される。そして、バッファセット情報には、例えば、コピー元ＩＤとコピー先ＩＤとが、例えば、それぞれ００００と１０００，０１００と１１００，０２００と１２００，０３００と１３００で組み合わされていることを示す組み合わせ情報が含まれる。
【００５７】
本実施の形態のリモートコピーは、バッファセット単位で行われる。バッファセット単位のコピー対象データには、記録専用バッファ１１２１に記憶されているＢＩＴおよびバッファデータ、ならびにバッファセット情報記憶部１１２２１に記憶されているバッファセット情報が含まれる。本実施の形態では、バッファセット単位のコピー対象データを、１つの「世代」として管理する。世代については、詳しくは図１２において後述する。
【００５８】
未使用バッファＩＤ記憶部１１２２２は、コピー先のストレージ装置２００が有する未使用の個別バッファのバッファＩＤを記憶する。以下、未使用の個別バッファのバッファＩＤを「未使用バッファＩＤ」という。例えば、ストレージ装置１００は、コピー先のストレージ装置２００から未使用バッファＩＤの通知を受けると、通知された未使用バッファＩＤを未使用バッファＩＤ記憶部１１２２２に記憶する。
【００５９】
バッファ管理テーブル記憶部１１２３は、記録専用バッファ１１２１等の管理に使用するバッファ管理テーブルを記憶する。バッファ管理テーブルについては図４において後述する。
【００６０】
バッファセット管理テーブル記憶部１１２４は、バッファセットの使用状態の管理に使用するバッファセット管理テーブルを記憶する。バッファセット管理テーブルについては図５において後述する。
【００６１】
退避用バッファ管理テーブル記憶部１１２５は、退避用バッファ１１８の管理に使用する退避用バッファ管理テーブルを記憶する。退避用バッファ管理テーブルについては図６において後述する。
【００６２】
ここで、本実施の形態のリモートコピーでは、ストレージ装置１００は、データを記録専用バッファ１１２１に記憶する処理やデータをストレージ装置２００に転送する処理等を、バッファセット単位で一括して行う。同様に、ストレージ装置２００は、ストレージ装置１００から転送されたデータを記憶デバイス２１７に展開する処理等を、バッファセット単位で一括して行う。コピー先のストレージ装置２００ではバッファセット単位でリモートコピーで転送されたデータを記憶デバイス２１７に展開し、展開の完了後にストレージ装置１００，２００はバッファ等を解放するので、順序性を保証したリモートコピーが実現される。
【００６３】
なお、ストレージ装置１００の各制御モジュール＃０１〜＃０３が有するメモリ、ストレージ装置２００の各制御モジュール＃１０〜＃１３が有するメモリは、メモリ１１２と同様の構成であってもよい。
【００６４】
図４は、第２の実施の形態のバッファ管理テーブルを示す図である。バッファ管理テーブル１１２３ａは、対象バッファセットＩＤ、ライトバックポインタ情報、ステージポインタ情報を有する。
【００６５】
対象バッファセットＩＤは、現在ステージングまたはライトバックに使用しているバッファセットのバッファセットＩＤを示す情報である。ライトバックポインタ情報は、ライトバックの対象となる世代を示す情報である。ステージポインタ情報は、最後にステージングが行われた世代を示す情報である。
【００６６】
図５は、第２の実施の形態のバッファセット管理テーブルを示す図である。バッファセット管理テーブル１１２４ａは、バッファセットＩＤ、使用目的、対象世代、格納Ｉ／Ｏ量を有する。
【００６７】
使用目的は、バッファセットＩＤが示すバッファセット毎にあらかじめ設定される、バッファセットの使用目的である。例えば、バッファセットをステージングに使用する場合には、使用目的欄に「ステージング」が設定される。バッファセットをライトバックに使用する場合には、使用目的欄に「ライトバック」が設定される。
【００６８】
対象世代は、使用目的に設定された処理を行う対象の世代である。格納Ｉ／Ｏ量は、バッファセットに記憶されている入出力処理対象のデータの量である。対象世代および格納Ｉ／Ｏ量は、例えば、データをバッファセットに記憶する毎に、ストレージ装置１００によって更新される。なお、図５に示す「−」は、未使用を設定する場合の例を示している。
【００６９】
図６は、第２の実施の形態の退避用バッファ管理テーブルを示す図である。退避用バッファ管理テーブル１１２５ａは、退避用バッファ１１８に記憶可能なコピー対象データの最大世代数と、制御モジュール毎に割り当てられた退避用バッファ１１８内の記憶領域の先頭アドレスを定義した退避位置とを有する。
【００７０】
最大世代数は、退避用バッファ１１８の初期化時等に決定される。以下、退避用バッファ１１８内に制御モジュール毎に割り当てられた１世代分の記憶領域を、「個別退避用バッファ」という。例えば、図１１において後述するＬＵ＃０において、３つに分けられた記憶領域のそれぞれが個別退避用バッファである。
【００７１】
図７は、第２の実施の形態のＩ／Ｏ監視テーブルを示す図である。Ｉ／Ｏ監視テーブル１１２６ａは、ＬＵＮ（Logical Unit Number）、ＬＢＡ（Logical Block Address）、Ｉ／Ｏ量、経過時間、監視時間を有する。
【００７２】
ＬＵＮは、Ｗｒｉｔｅ  Ｉ／Ｏ命令（受信したデータの記憶デバイスへの書き込みの命令）の対象であるＬＵを示す情報である。ＬＢＡは、受信したデータの書き込み処理において書き込みの先頭アドレスとなるＬＢＡを示す情報である。Ｉ／Ｏ量は、ブロック数によりＷｒｉｔｅ  Ｉ／Ｏ量（Ｗｒｉｔｅ  Ｉ／Ｏ命令による書き込み対象のデータの量）を示す情報である。経過時間は、ライトバック要求の発生時を起算時点として、バッファの空きを待ち合わせている時間を秒で示す情報である。監視時間は、ライトバック要求の発生時を起算時点として、順序性の保証を断念して順序性を保証しないリモートコピー転送を行うまでの上限となる時間を秒で示す情報である。
【００７３】
図８は、第２の実施の形態の複数世代アクセス管理テーブルを示す図である。複数世代アクセス管理テーブル１１２７ａは、世代、Ｉ／Ｏ充填量、解放待ち予測時間［単数世代］、解放待ち予測時間［複数世代］を有する。
【００７４】
世代は、ライトバックの対象であるデータの世代番号を示す情報である。Ｉ／Ｏ充填量は、ストレージ装置１００からストレージ装置２００に対してリモートコピーによりこれから転送するブロックで、世代内のＷｒｉｔｅ  Ｉ／Ｏのストレージ装置１００の各制御モジュールが有するバッファ（例えば、バッファ１１２１１等）に記憶されている記憶量の合計値を示す情報である。解放待ち予測時間［単数世代］は、各世代を単独でリモートコピー転送した場合の、ライトバック要求の発生時を起算時点として、ライトバックが完了してメモリが解放されるまでの時間を予測した解放待ち予測時間を秒で示す情報である。解放待ち予測時間［複数世代］は、図２４において後述する複数世代アクセス処理で、複数世代をまとめてリモートコピー転送した場合のメモリの解放待ち予測時間を、前の世代までの累計値により、秒で示す情報である。
【００７５】
ここで、世代毎にライトバックした場合、その世代のＩ／Ｏ充填量に応じて、ライトバック要求の発生からその世代のライトバックの完了までに要する時間が変化する。すなわち、Ｉ／Ｏ充填量が多くなるほどライトバックのデータ量も多くなり、ライトバック要求の発生からメモリの解放までに多くの時間を要する。このように、解放待ち予測時間［単数世代］は、世代のＩ／Ｏ充填量と相関関係があると考えられる。このため、例えば、世代のＩ／Ｏ充填量に所定の係数を積算することにより、解放待ち予測時間［単数世代］を算出することができる。
【００７６】
世代２１の解放待ち予測時間［複数世代］は、世代２０および世代２１について纏めた複数世代アクセスでライトバックが完了するまでの予測時間を示す。同様に、世代２２の解放待ち予測時間［複数世代］は、世代２０、世代２１および世代２２について纏めた複数世代アクセスでライトバックが完了するまでの予測時間を示す。世代２３の解放待ち予測時間［複数世代］は、世代２０〜２３について纏めた複数世代アクセスでライトバックが完了するまでの予測時間を示す。また、解放待ち予測時間［複数世代］については、詳しくは図２５および図２６において後述する。
【００７７】
図９は、第２の実施の形態の回線管理テーブルを示す図である。回線管理テーブル１１２８ａは、回線番号、接続筐体、順序性保証、回線利用率、処理可能世代数を有する。
回線番号は、例えば、ネットワーク１１が専用線である場合に、ストレージ装置１００と接続筐体とを接続する回線を識別する識別番号を示す情報である。接続筐体は、回線番号で識別される回線によってストレージ装置１００と接続される接続先の筐体を識別する識別符号を示す情報である。
【００７８】
ここで、図２３において後述するように、ストレージ装置１００は、ネットワーク１３によってホストコンピュータと接続されていると共に、ネットワーク１１を介して、各接続筐体、つまりストレージ装置２００ａ（筐体Ａ）、ストレージ装置２００ｂ（筐体Ｂ）、ストレージ装置２００ｃ（筐体Ｃ）、ストレージ装置２００ｄ（筐体Ｄ）と接続されているものとする。また、ストレージ装置２００ａ〜２００ｄは、ネットワーク１４を介してホストコンピュータ４００と接続されているものとする。
【００７９】
順序性保証は、ストレージ装置１００と接続筐体との間のリモートコピー転送における順序性の保証の有無を示す情報である。例えば、ある接続筐体との間で順序性の保証があるリモートコピー転送が可能である場合には、該当する接続筐体に対応づけられる順序性保証には「有効」が設定される。一方、ある接続筐体との間で順序性の保証があるリモートコピー転送が不可能である場合には、該当する接続筐体に対応付けられる順序性保証には「無効」が設定される。回線利用率は、ストレージ装置１００と接続筐体とを接続する回線の利用状況を百分率で示す情報である。回線が混んでおり、利用量が多ければ、回線利用率は大きくなる。回線が空いており、利用率が低ければ、回線利用率は小さくなる。処理可能世代数は、図２４において後述する複数世代アクセス処理で、複数世代をまとめてリモートコピー転送する場合に複数世代アクセスが可能な最大世代数を示す情報である。
【００８０】
図１０は、第２の実施の形態のバッファ状態管理テーブルを示す図である。バッファ状態管理テーブル１１２９ａは、制御モジュール、制御モジュール状態、ステージング世代、バッファ状態を有する。
【００８１】
制御モジュールは、ストレージ装置１００の制御モジュール＃００〜＃０３を識別する情報である。制御モジュール状態は、制御モジュールおよび制御モジュールが有するバッファが使用可能であるか、使用不可能であるかの状態を示す情報である。制御モジュールおよびバッファが使用可能である場合には「使用可」が設定される。制御モジュールまたはバッファが使用不可能である場合には「使用不可」が設定される。ステージング世代は、制御モジュールによるステージングの対象である世代を示す情報である。バッファ状態は、ステージング世代に示された世代についてステージング処理がすべて済んでいてバッファにデータがないか、あるいはバッファに未処理のデータがあるかを示す情報である。ステージング処理が完了してバッファにデータがない場合には「処理済」が設定される。ステージング処理が完了しておらず、バッファに未処理のデータがある場合には「未処理」が設定される。
【００８２】
図１１は、第２の実施の形態のメモリと退避用バッファとの関係を示す図である。ここで、制御モジュール＃００〜＃０３をまたぐ点線は、１世代分のバッファセットを示している。図１１は、退避用バッファ１１８を１つのＲＡＩＤグループで構成する場合の構成例を示す。
【００８３】
本実施の形態では、退避用バッファ１１８を、複数（例えば、４個）の記憶デバイスを有するＲＡＩＤグループで構成している。また、ストレージ装置１００において退避用バッファ１１８として用いられるＲＡＩＤグループは、複数（例えば、４個）の記憶デバイスで構成されている。また、退避用バッファ１１８として用いられるＲＡＩＤグループは、論理ユニットＬＵ＃０〜ＬＵ＃Ｆを有する。また、横長の点線で囲まれた論理ユニットＬＵ＃０−ＬＵ＃３，ＬＵ＃４−ＬＵ＃７，ＬＵ＃８−ＬＵ＃Ｂ，ＬＵ＃Ｃ−ＬＵ＃Ｆがそれぞれボリュームグループを構成する。
【００８４】
退避用バッファ１１８として使用されるＲＡＩＤグループは、ボリュームグループ単位で使用される。また、制御モジュール毎に、記録専用バッファに対して所定の論理ユニットが割り当てられている。例えば、図１１に示す退避用バッファ１１８では、制御モジュール＃００の記録専用バッファ１１２１に対して、論理ユニットＬＵ＃０，＃４，＃８，＃Ｃが割り当てられている。また、制御モジュール＃０１の記録専用バッファに対して、論理ユニットＬＵ＃１，＃５，＃９，＃Ｄが割り当てられている。同様に、制御モジュール＃０２の記録専用バッファに対して、論理ユニットＬＵ＃２，＃６，＃Ａ，＃Ｅが割り当てられている。制御モジュール＃０３の記録専用バッファに対して、論理ユニットＬＵ＃３，＃７，＃Ｂ，＃Ｆが割り当てられている。このように、退避用バッファ１１８を構成する論理ユニットの数が制御モジュールの数を上回る場合は、１つの制御モジュールに対して複数の論理ユニットを割り当てることができる。
【００８５】
各ボリュームグループを構成する論理ユニットは、図１２において後述するように、個別バッファに記憶されているバッファデータ、ＢＩＴおよびバッファセット情報が含まれるサイズで分割されている。分割された領域が前述の「個別退避用バッファ」である。各制御モジュールの個別バッファに記憶されているバッファデータ、ＢＩＴおよびバッファセット情報は、例えば、図１１に示される矢印が示すように、各制御モジュールに割り当てられた論理ユニットの個別退避用バッファに世代順に記憶される。
【００８６】
なお、本実施の形態では、退避用バッファ１１８は、１つのＲＡＩＤグループを有するが、２つまたはそれ以上のＲＡＩＤグループを有してもよい。これにより、各ＲＡＩＤグループに負荷を分散する効果が得られる。
【００８７】
図１２は、第２の実施の形態の退避用バッファを示す図である。前述したように、本実施の形態の退避用バッファ１１８において、例えば図１１に示したＬＵ＃０〜ＬＵ＃Ｆは、個別バッファに記憶されているバッファデータ、ＢＩＴおよびバッファセット情報を含むサイズの個別退避用バッファに分割して使用される。退避用バッファ１１８の各個別退避用バッファには、１世代分のコピー対象データ、すなわちバッファセット情報、ＢＩＴおよびバッファデータが、図１２に示す世代１，２，３，４のように、世代毎に、世代順で記憶される。
【００８８】
図１３から図１５は、第２の実施の形態のデータの退避を示す図である。図１３は、本実施形態のストレージ装置１００において、バッファセット１−４が転送中またはコピー先のストレージ装置２００における展開処理待ちのため使用中となっている状態で、Ｗｒｉｔｅ  Ｉ／Ｏ命令を受け付けた場合のデータの退避を説明する図である。以下、バッファセット１−４に記憶されているバッファセットデータがそれぞれ世代１、世代２、世代３、世代４であるものとする。
【００８９】
ストレージ装置１００の各制御モジュール（制御モジュール＃００、＃０１）は、Ｗｒｉｔｅ  Ｉ／Ｏ命令を受け付けると、各自の記憶デバイス（記憶デバイス１１７０，１１７１）にデータを記憶するとともに、ホストから送信されたＷｒｉｔｅ  Ｉ／Ｏのデータのコピーデータをバッファセット５に記憶する（図１３）。バッファセット５に記憶されたバッファセットデータは世代５となる。
【００９０】
図１４は、本実施形態のストレージ装置１００において、バッファセット１−４が転送中またはコピー先のストレージ装置２００における展開処理待ちのため使用中となっている状態で、Ｗｒｉｔｅ  Ｉ／Ｏ命令を受け付けたデータの退避を説明する図である。
【００９１】
本実施の形態のストレージ装置１００は、Ｗｒｉｔｅ  Ｉ／Ｏ命令を受け付けたことで使用中のバッファセット数がバッファの最大記憶数を超えると、各制御モジュールは、次にストレージ装置２００に転送予定のバッファセット（バッファセット５）に記憶されているバッファセットデータを退避用バッファ１１８に退避する。
【００９２】
また、バッファセットデータを退避用バッファ１１８に退避すると、各制御モジュールは、新たなデータ等の記憶先としてバッファセット６を設定する。
図１５は、本実施形態のストレージ装置１００において、バッファセット５を退避した状態でさらにＷｒｉｔｅ  Ｉ／Ｏ命令を受け付けた場合のデータの退避を説明する図である。
【００９３】
各制御モジュールは、バッファセット５に記憶されたバッファセットデータを退避した状態で新たなＷｒｉｔｅ  Ｉ／Ｏ命令を受け付けると、受け付けたＷｒｉｔｅ  Ｉ／Ｏに対応するデータを記憶デバイスに記憶すると共に、データのコピーデータをバッファセット６に記憶する。バッファセット６に記憶されたバッファセットデータは世代６となる。
【００９４】
この時、バッファセット６の世代６よりも古い世代（例えば、図１４における世代５）が退避用バッファ１１８に退避されているので、各制御モジュールは、バッファセット６のバッファセットデータを退避用バッファ１１８に退避する。また、次にホストからのＷｒｉｔｅ  Ｉ／Ｏ命令を受け付けると、受け付けたＷｒｉｔｅ  Ｉ／Ｏに対応するデータを記憶デバイスに記憶すると共に、データのコピーデータをバッファセット７に記憶する。バッファセット７に記憶されたバッファセットデータは世代７となる。
【００９５】
次に、使用中の状態にあったバッファセット１が解放されると、各制御モジュールは、退避用バッファ１１８に記憶されている世代５のバッファセットデータを読み出して、バッファセット１に記憶する。なお、本実施の形態で「解放」とは、バッファセットを未使用の状態に置くことをいう。
【００９６】
図１６は、第２の実施の形態のストレージ装置の機能を示すブロック図である。本実施の形態のストレージ装置１００は、ストレージ装置２００とネットワーク１１で接続されている。ストレージ装置１００は、ホストコンピュータ３００と接続されている。ストレージ装置２００は、ホストコンピュータ４００と接続されている。ストレージ装置１００は、ホストコンピュータ３００から送信されたリモートコピーの対象であるデータを、ネットワーク１１を介してストレージ装置２００に転送することにより、リモートコピーを行う。ストレージ装置１００は、退避制御部１２１０，１２１１、出力部１２２、バッファ１１２１１，１１２１３、退避用バッファ１１８を有する。ストレージ装置２００は、記憶デバイス２１７０，２１７１を有する。
【００９７】
退避制御部１２１０，１２１１は、制御モジュールが有するバッファ（例えば、バッファ１１２１１、バッファ１１２１３）から互いに関連付けられているバッファセットデータを読み出して退避用バッファ１１８に退避するライトバック、および退避用バッファ１１８に退避したバッファセットデータを制御モジュールが有するバッファに分散して記憶するステージングを実行する。ここで、退避制御部１２１０，１２１１は、ライトバックおよびステージングを、ライトバックまたはステージングの対象となる複数のバッファセットデータを、退避用バッファ１１８の記憶領域の並んでいる順序に応じて連続して実行する。
【００９８】
すなわち、退避制御部１２１０，１２１１は、バッファ１１２１１等から退避用バッファ１１８にデータを退避させる場合、または退避用バッファ１１８に退避させたデータをバッファ１１２１１等に記憶させる場合、退避用バッファ１１８において退避させるデータが記憶される記憶領域が並んでいる順序に応じて連続してデータを退避させ、または退避させたデータを読み出す。これにより、退避用バッファ１１８に対するアクセスの効率化を図ることができる。バッファセットデータには、ライトバックおよびステージングの処理の順序を示す世代が設定されている。また、バッファセットデータは、バッファセット情報により世代毎に互いに対応付けられている。ここで、バッファセットデータは、データ群として機能する。
【００９９】
このとき、退避制御部１２１０，１２１１は、連続してライトバックまたはステージングを行う個数を、バッファ１１２１１，１１２１３に記憶されているブロック数に基づいて算出する算出部１２３により算出されたバッファセットデータの個数に応じて、ライトバックの対象のバッファセットデータおよびステージング対象のバッファセットデータについて、バッファセットデータが記憶されている退避用バッファ１１８の記憶領域が連続している順序でそれぞれライトバックおよびステージングを連続して実行する。
【０１００】
以上により、退避制御部１２１０，１２１１が、ライトバック時に退避用バッファ１１８にバッファセットデータを退避させる際およびステージング時に退避用バッファ１１８からバッファセットデータを読み出す際に、ライトバックおよびステージングのそれぞれで纏めて処理を行うことで、退避用バッファ１１８におけるシーク時間の合計時間を短縮できる。
【０１０１】
また、本実施の形態では、退避制御部１２１０，１２１１により、退避用バッファ１１８の記憶領域には、バッファセットデータがライトバック毎およびステージング毎にそれぞれ分類されて記憶されるものとする。また、退避制御部１２１０，１２１１により、退避用バッファ１１８の記憶領域には、バッファセットデータが世代毎に連続するように設定されているものとする。
【０１０２】
そして、退避制御部１２１０，１２１１は、ライトバックの対象の複数のバッファセットデータについて、退避用バッファ１１８の記憶領域の連続した領域に、世代の順序でライトバックを実行する。これにより、退避用バッファ１１８の記憶領域には、複数のバッファセットデータが世代の順序に並んで記憶される。また、退避制御部１２１０，１２１１は、ステージングの対象の複数のバッファセットデータについて、世代の順序でステージングを実行する。これにより、ステージングの際にバッファセットデータが、世代の順序で読み出されることにより、退避用バッファ１１８の記憶領域の並び順に読み出される。
【０１０３】
以上により、このとき退避制御部１２１０，１２１１が、ライトバック時に退避用バッファ１１８にバッファセットデータを退避させる際およびステージング時に退避用バッファ１１８からバッファセットデータを読み出す際に、ライトバックおよびステージングにおいて世代順に処理を行うことで、退避用バッファ１１８におけるシーク時間の合計時間を短縮できる。
【０１０４】
また、退避制御部１２１０，１２１１は、それぞれに割り当てられたバッファセットデータのステージングを実行する。そして、退避制御部１２１０，１２１１は、他の退避制御部において異常が発生している場合、ステージングについて当該退避制御部１２１０，１２１１に割り当てられているバッファセットデータと共に、ステージングについて異常が発生している退避制御部に割り当てられていたバッファセットデータについて、当該退避制御部１２１０，１２１１の割り当て毎に連続してバッファセットデータのステージングを実行する。
【０１０５】
また、退避制御部１２１０，１２１１は、ネットワーク１１の利用状況に応じて、ステージングの対象のバッファセットデータが複数存在する場合には、退避用バッファの記憶領域が連続している順序でステージング対象のバッファセットデータのステージングを実行する。
【０１０６】
出力部１２２は、バッファ１１２１１，１１２１３のそれぞれに記憶されたデータを含むバッファセットデータを一括して出力する。これにより、ホストコンピュータ３００から送信され、バッファ１１２１１，１１２１３に記憶されているデータがそのまま、または一旦退避用バッファ１１８に退避して再びバッファ１１２１１，１１２１３に記憶された後に、ネットワーク１１を介してストレージ装置２００に転送され、記憶デバイス２１７０，２１７１に記憶されることで、リモートコピーされる。
【０１０７】
算出部１２３は、複数世代アクセスの適切な世代数を算出する。具体的には、算出部１２３は、ライトバック要求の発生時を起算時点としてバッファ１１２１１，１１２１３の空きを待ち合わせている間の経過時間である待ち合わせ時間がリモートコピーで転送されるデータの順序を維持する順序性の保証を断念する基準となる監視時間に対してどれだけ余裕があるかを示す余裕時間を監視し、退避制御部１２１０，１２１１による連続したステージングまたはライトバックのアクセスの所要時間を、バッファ１１２１１，１１２１３に記憶されているバッファセットの量に基づいて予測する。ここで、余裕時間と複数世代アクセスとの間には比例的な関係があると考えられる。このため、算出部１２３は、待ち合わせ時間を監視して得られた余裕時間とアクセスの所要時間の予測結果とを比較し、比較結果に基づいて退避制御部１２１０，１２１１により連続して実行されるバッファセットデータの個数が増加するように算出する。例えば、算出部１２３は、余裕時間と所定の係数との積に基づいて、退避制御部１２１０，１２１１により連続して実行されるバッファセットデータの個数を算出してもよい。
【０１０８】
また、算出部１２３は、ネットワーク１１等の利用状況に応じてステージング処理における複数世代アクセスの適切な世代数を算出する。算出部１２３は、ネットワーク１１の利用状況が高く、通信状態が良くない場合には、退避制御部１２１０，１２１１により連続して実行されるバッファセットデータの個数が減少するように算出する。具体的には、算出部１２３は、所定の係数をネットワーク１１の回線利用率で割ることにより、退避制御部１２１０，１２１１により連続して実行されるバッファセットデータの個数を算出してもよい。また、算出部１２３は、ステージング処理における適切な世代数の算出において、例えば、ライトバック処理と同様に算出してもよい。
【０１０９】
バッファ１１２１１，１１２１３は、各制御モジュールが有するメモリの一部であり、ホストコンピュータ３００から送信されたリモートコピーするデータを一時的に、それぞれに分散して記憶する。バッファ１１２１１，１１２１３に記憶されているデータが増加した場合等には、バッファ１１２１１，１１２１３からデータが溢れることを防止するために、退避制御部１２１０，１２１１は、バッファ１１２１１，１１２１３に記憶されているデータを退避用バッファ１１８に退避させる。
【０１１０】
退避用バッファ１１８は、ストレージ装置１００が有するＲＡＩＤグループ上に設けられており、バッファセットデータを記憶する区分された領域を有する。退避用バッファ１１８の記憶領域に、退避制御部１２１０，１２１１によりバッファ１１２１１，１１２１３から退避したデータが記憶される。また、退避用バッファ１１８の記憶領域に退避したデータは、退避制御部１２１０，１２１１により読み出されてバッファ１１２１１，１１２１３に記憶される。退避用バッファ１１８は、データ群記憶手段として機能する。
【０１１１】
退避用バッファ１１８が有する記憶領域には、バッファセットデータが世代毎に順次記憶されていく。本実施の形態のストレージ装置１００では、リモートコピーされるデータのアクセスの要求の発生順にバッファセットデータが生成され、生成されたバッファセットデータに世代が割り当てられていく。古い世代のバッファセットデータは、新しい世代のバッファセットデータよりも先にライトバックされ、その後、新しい世代のバッファセットデータがライトバックされる。また、通常、先にライトバックされた古い世代のバッファセットデータは、新しい世代のバッファセットデータよりも先にステージングされ、その後、新しい世代のバッファセットデータがステージングされることになる。従って、退避用バッファ１１８が有する記憶領域は、結果的にライトバックの対象のバッファセットデータとステージングの対象のバッファセットデータとで区分されることになると共に、バッファセットデータが世代の順序に連続することになる。また、退避用バッファ１１８が有する記憶領域は、記憶するバッファセットデータが割り当てられている制御モジュール毎に区分されて設けられている。
【０１１２】
これにより、ライトバックの要求およびステージングの要求が不規則に発生しても、退避用バッファ１１８に記憶されているバッファセットデータについて、ライトバック要求が発生した場合にはライトバックのバッファセットデータを纏めてアクセスが行われる。また、ステージングの要求が発生した場合にはステージングのバッファセットデータを纏めてアクセスが行われる。このようにして、本実施の形態では、ライトバックおよびステージングの際に、退避用バッファ１１８の連続した記憶領域にアクセスすることになり、シーク時間を短縮できる。
【０１１３】
記憶デバイス２１７０，２１７１は、ストレージ装置１００が有するＲＡＩＤグループのすべてまたは一部であり、ネットワーク１１を介してストレージ装置１００から転送されたリモートコピーのデータを分散して記憶する。
【０１１４】
なお、図１６では、説明の便宜上、ストレージ装置１００について、２個の退避制御部（退避制御部１２１０，１２１１）および２個のバッファ（バッファ１１２１１，１１２１３）を示しているが、ストレージ装置１００が有する退避制御部およびバッファの個数は３個以上であってもよい。また、本実施の形態のストレージ装置２００について、２個の記憶デバイス（記憶デバイス２１７０，２１７１）を示しているが、ストレージ装置２００が有する記憶デバイスの個数は１個であってもよく、３個以上であってもよい。
【０１１５】
図１７は、バッファの動作を示す図である。図１８は、退避用バッファの動作を示す図である。図１７および図１８に従って、本実施の形態に対する比較例のストレージ装置（図示省略）におけるバッファの動作を説明する。比較例のストレージ装置は、図１７に示すように、制御モジュール＃００、制御モジュール＃０１を有するものとし、制御モジュール毎およびバッファセットデータの世代毎に、ライトバック対象のバッファセットデータおよびステージング対象のバッファセットデータをバッファに記憶する。また、バッファセットデータに含まれているデータの有する数字は、対応する制御モジュールおよび世代数を示す。例えば、世代２０のライトバックのバッファセットデータにおける左側のデータが有する「０−２０」は、制御モジュール＃００に対応するデータであって世代２０のデータであることを示す。
【０１１６】
ここで、図１８に示す退避用バッファ４１１８は、本実施の形態の退避用バッファ１１８と同様、複数の記憶デバイスを有するＲＡＩＤシステムのすべてまたは一部を使用する。また、比較例のストレージ装置の退避用バッファ４１１８の各領域は、各制御モジュールに対して対応付けられており、バッファセットデータを世代順に記憶している。また、バッファのデータの退避用バッファ４１１８へのライトバックデータが記憶される位置はあらかじめ決められているものとする。
【０１１７】
比較例のストレージ装置は、バッファ要求（ステージングの要求またはライトバックの要求）があった場合には、図１８に示すように、記憶デバイス（図示省略）が有するバッファに対する要求の発生の順序に従って、退避用バッファ４１１８にアクセスし、ライトバックまたはステージングを実行するものとする。
【０１１８】
このとき、比較例のストレージ装置は、図１７に示したバッファに記憶されているバッファセットデータの順序に従って、例えば図１７の上方に記憶されているバッファセットデータから下方に記憶されているバッファセットデータの順に、ライトバックまたはステージングを実行する。また、制御モジュール＃００と制御モジュール＃０１とでバッファの同じ高さに記憶されているデータは、制御モジュール＃００に対応するデータを制御モジュール＃０１に対応するデータよりも優先して、ライトバックまたはステージングを実行する。これに基づいて、比較例のストレージ装置は、退避用バッファ４１１８の各領域に対して図１８に示すアクセス順序でアクセスする。
【０１１９】
このように、比較例のストレージ装置のように、バッファ要求の発生順序に従って１世代ずつ退避用バッファ４１１８にアクセスを行う場合、バッファのデータの退避用バッファ４１１８へのライトバックデータが記憶される位置はあらかじめ決められている。このため、退避用バッファ４１１８に対するアクセスは、離散した領域へのアクセスとなるため、退避用バッファ４１１８の本来の性能を引き出すことができない。その結果、ライトバックやステージングの遅延がバッファの動作の遅延につながる。そしてさらに、バッファの動作の遅延が大きくなれば、ＲＥＣ Ｄｉｓｋ Ｂｕｆｆｅｒｅｄ Ｃｏｎｓｉｓｔｅｎｃｙ Ｍｏｄｅの維持が困難になり、比較例のストレージ装置においてデータのリモートコピーにおける順序性の保証が不可能になる場合がある。
【０１２０】
図１９は、第２の実施の形態のバッファの動作を示す図である。図２０は、第２の実施の形態の退避用バッファの動作を示す図である。図１９および図２０に従って、本実施の形態のストレージ装置１００における複数世代アクセス処理によるバッファの動作を説明する。
【０１２１】
本実施の形態のストレージ装置１００は、図１９に示すように、バッファ１１２１１等に、バッファセットデータの世代毎に、ライトバック対象のバッファセットデータおよびステージング対象のバッファセットデータを記憶する。また、ストレージ装置１００は、制御モジュール＃００、制御モジュール＃０１を有するものとし、制御モジュール毎およびバッファセットデータの世代毎にライトバック対象のバッファセットデータおよびステージング対象のバッファセットデータをバッファに記憶する。
【０１２２】
そして、ストレージ装置１００は、バッファ要求があった場合には、バッファ要求と同一の種類の要求であるライトバックまたはステージングのバッファセットデータのみを抽出する。例えば、ライトバックの要求があった場合、図１９に示すように、バッファ要求と同一の種類の要求であるライトバックのバッファセットデータのみを制御モジュール＃００，＃０１のバッファから抽出する。
【０１２３】
そして、ストレージ装置１００は、退避用バッファ１１８にアクセスし、抽出されたライトバックのバッファセットデータについて、ライトバックを実行する。ここで、退避用バッファ１１８は、複数の記憶デバイスを有するＲＡＩＤシステムのすべてまたは一部を使用する。また、退避用バッファ１１８は、複数の論理ユニットを有する。また、ストレージ装置１００の退避用バッファ１１８の各記憶領域は、各制御モジュールに対して対応付けられており、バッファセットデータを世代順に記憶している。また、バッファのデータの退避用バッファ１１８へのライトバックデータが記憶される位置はあらかじめ決められているものとする。
【０１２４】
このとき、ストレージ装置１００は、退避用バッファ１１８を効率的に使用可能な順序でアクセスできるように、図２０に示すようにスケジューリングを行う。具体的には、ストレージ装置１００は、抽出したライトバックのバッファセットデータについて、制御モジュール毎に、かつ、図１９に示したバッファに記憶されているバッファセットデータの世代順に従って、ライトバックを実行する。これに基づいて、ストレージ装置１００は、退避用バッファ１１８の各領域に対して図２０に示すアクセス順序でアクセスする。ここでは、ライトバックの要求があった場合について説明したが、ステージングの要求の場合も同様である。
【０１２５】
このように、本実施の形態のストレージ装置１００は、退避用バッファ１１８にアクセスを行う場合、バッファのデータの退避用バッファ１１８へのライトバックデータが記憶される位置はあらかじめ決められている。このため、退避用バッファ１１８に対するアクセスの順序を、ライトバックはライトバック毎に、ステージングはステージング毎にまとめてアクセスすると共に、退避用バッファ１１８の記憶領域が連続するものまたは近いものは連続してアクセスするように設定する。その結果、ライトバックやステージングに要する時間が短縮される。また、これにより、バッファの動作が効率化され、ストレージ装置１００においてデータのリモートコピーにおける順序性の保証の維持を促進することができる。
【０１２６】
また、退避用バッファ１１８は、複数の論理ユニットを有しており、ストレージ装置１００が有する各制御モジュールに対してそれぞれ論理ユニットが割り当てられている。これにより、複数の制御モジュールは、退避用バッファ１１８において割り当てられている論理ユニットに対して同時にアクセスすることができる。
【０１２７】
図２１は、バッファのアクセス時におけるメモリ資源の解放待ち時間を示す図である。図２１（Ａ）に、１世代毎にライトバックまたはステージングの要求を処理する場合の、バッファのアクセス時における１回のメモリ資源の解放待ち時間の一例を示す。図２１（Ｂ）に、複数世代アクセスでライトバックまたはステージングの要求を処理する場合の、バッファのアクセス時における１回のメモリ資源の解放待ち時間の一例を示す。
【０１２８】
図２１（Ｂ）に示す一度に複数世代のバッファセットデータを処理する複数世代アクセスでは、ストレージ装置における長期的なスループットの向上が期待できるが、複数世代アクセスの最初の世代のバッファセットデータのアクセスを開始してから、複数世代アクセスの最後の世代の処理を終え、最後の世代のメモリ資源を解放するまでのトータルの時間が長くなる場合がある。
【０１２９】
図２１（Ａ）に示すように、１世代毎にライトバックまたはステージングの要求を処理する場合、各世代の処理が終了する毎にメモリ資源が解放されるので、すべての世代の要求の処理に要するトータル時間は長いが、要求の処理開始から１回のメモリ資源が解放されるまでの解放待ち時間は短い。
【０１３０】
一方、図２１（Ｂ）に示すように、複数世代アクセスでライトバックまたはステージングの要求を処理する場合、すべての世代に対する複数世代アクセスの処理が終了してはじめてメモリ資源が解放されるので、すべての世代の要求の処理に要するトータル時間は短いが、１回のメモリ資源が解放されるまでの解放待ち時間は長い。これにより、複数世代アクセスでライトバックまたはステージングの要求を処理する場合には、１回のメモリ資源の解放待ち時間が長くなることで、ホストコンピュータ３００からのデータを記憶するための新たなバッファの提供が遅れてしまう可能性がある。その結果、コピー元ボリュームで行われている業務処理の実行を保護するために迅速にリモートコピーの実行を開始するために、順序性の保証がないリモートコピーを実行する必要が生じる場合がある。これにより、ストレージ装置１００が本来有している順序性の保証の機能が発揮できない場合が生じ得る。
【０１３１】
そこで、本実施の形態では、詳しくは図２５および図２６において説明するが、複数世代アクセス数をそのときのストレージ装置１００の負荷に応じて調整することにより、順序性の保証の維持とメモリ資源の解放待ち時間との調整を図る。
【０１３２】
図２２は、第２の実施の形態の制御モジュールの異常発生時におけるリモートコピーを示す図である。
退避用バッファ１１８に退避されているデータのバッファセットデータを、ストレージ装置２００に転送するためにバッファ１１２１１，１１２１３に書き込むステージング時における、制御モジュールの故障等の異常発生について考える。このように、複数世代アクセスにおいて制御モジュール等に異常が発生すると、異常が発生した制御モジュールのバッファを使用できず、ライトバック時のバッファ数に比較して、ステージング時バッファ数が少ない場合も生じ得る。
【０１３３】
また、退避用バッファ１１８からバッファにステージングされたバッファセットデータは、ネットワーク１１を介してストレージ装置２００に転送されることにより、リモートコピーが行われる。ネットワーク１１の通信に不具合が生じる等によりストレージ装置間の通信量が制限される場合には、通信量の制限に応じてリモートコピーのためのデータ転送量も減少する。このため、ステージングにおいては、ネットワーク１１の状況等に応じて適切な複数世代アクセス数を決定する必要がある。
【０１３４】
本実施の形態では、詳しくは図２８および図２９において説明するが、これらの問題を解決するために、複数世代アクセスにおけるステージングの実行時には、異常が発生した制御モジュールに割り当てられていたバッファセットデータのステージングを正常な制御モジュールが実行する。また、制御モジュールに異常が発生した場合やネットワーク１１等の状況に応じてステージングの世代数を調整する。
【０１３５】
図２３は、第２の実施の形態のストレージ装置の接続を示す図である。本実施の形態のストレージ装置１００は、図２３に示すようにネットワーク１３によってホストコンピュータと接続すると共に、ネットワーク１１を介して、ストレージ装置２００ａ、ストレージ装置２００ｂ、ストレージ装置２００ｃ、ストレージ装置２００ｄと接続する。そして、ストレージ装置２００ａ〜２００ｄは、ネットワーク１４を介してホストコンピュータ４００と接続されているものとする。図２３のストレージ装置１００は、任意のストレージ装置２００ａ〜２００ｄを選択してリモートコピーを行うことが可能である。また、ホストコンピュータ４００は、任意のストレージ装置２００ａ〜２００ｄと接続してデータを取得することができるものとする。
【０１３６】
ストレージ装置１００と選択したストレージ装置２００ａ〜２００ｄうちの１つ（例えば、ストレージ装置２００ｂ）との間でリモートコピーを行う際、ネットワーク１１の回線利用率が高い場合や、ネットワーク１１の回線能力が低い場合等、通信状態が良くない場合には、リモートコピーにおける転送速度が低下して、データの転送に遅延が発生する場合がある。このような場合、ストレージ装置１００の退避用バッファへのバッファセットデータの蓄積量が増加することになる。従って、本実施の形態では、ストレージ装置１００は、時間計測用のデータを、ネットワーク１１等の通信に使用する回線を介して接続筐体に送信し、時間計測用のデータを送信してから時間計測用のデータの応答がストレージ装置１００に到着するまでに要した応答時間により、回線能力を判断することができる。
【０１３７】
そして、転送時の回線能力に応じてステージング処理における複数世代アクセスの世代数を変化させ、回線能力が高ければ多くの世代で複数世代アクセスし、回線能力が低ければ少ない世代で複数世代アクセスを行う。これにより、ネットワークの状況に応じて最適な世代数で複数世代アクセスを行うので、回線能力が低い場合には複数世代数を少なくして複数世代アクセスが完了するまでの時間を短くすることでストレージ装置１００および接続筐体のバッファが長時間拘束されることを抑制でき、順序性の保証が有るリモートコピーの転送を効率化することができる。
【０１３８】
図２４は、第２の実施の形態の複数世代アクセス処理の手順を示すフローチャートである。
本実施の形態のストレージ装置１００は、順序性を保証したリモートコピーの対象のデータを、複数世代アクセスによりネットワーク１１を介してストレージ装置２００に転送する。本実施の形態のストレージ装置１００は、稼働中にはストレージ装置１００が有するバッファ１１２１１，１１２１３に記憶されているバッファセットデータを退避用バッファ１１８に書き込むライトバック、または退避用バッファに退避したバッファセットデータをバッファに書き込むステージングの要求であるバッファ要求を受けるのを待機する。以下では、図２４に示す複数世代アクセス処理をフローチャートのステップ番号に沿って説明する。
【０１３９】
［ステップＳ１１］ストレージ装置１００が有する退避制御部（例えば、退避制御部１２１０）は、ステージングまたはライトバックのバッファ要求が発生したか否かを判断する。バッファ要求が発生していれば、処理はステップＳ１２に進められる。一方、バッファ要求が発生していなければ、ステップＳ１１の処理が繰り返される。
【０１４０】
［ステップＳ１２］退避制御部１２１０は、ステップＳ１１で発生したと判断されたバッファ要求が、ライトバック要求であるか否かを判断する。ライトバック要求であれば、処理はステップＳ１３に進められる。一方、ライトバック要求でなければ、処理はステップＳ１４に進められる。
【０１４１】
［ステップＳ１３］退避制御部１２１０は、ライトバック処理（図２５および図２６において後述）を実行する。その後、処理はステップＳ１１に進められる。
［ステップＳ１４］退避制御部１２１０は、ステージング処理（図２８および図２９において後述）を実行する。その後、処理はステップＳ１１に進められる。
【０１４２】
図２５および図２６は、第２の実施の形態のライトバック処理の手順を示すフローチャートである。
本実施の形態のストレージ装置１００は、複数世代アクセス処理においてライトバック要求の発生があった場合、ライトバック処理を行う。以下では、図２５および図２６に示すライトバック処理をフローチャートのステップ番号に沿って説明する。
【０１４３】
［ステップＳ２１］算出部１２３は、複数世代アクセスによりアクセス可能な最大世代数を算出する。
［ステップＳ２２］算出部１２３は、データの転送を待ち合わせているＩ／Ｏ量をＩ／Ｏ監視テーブル１１２６ａから取得する。
【０１４４】
［ステップＳ２３］算出部１２３は、ライトバックに使用可能なバッファ１１２１１，１１２１３の空き状態を取得する。
［ステップＳ２４］算出部１２３は、ステップＳ２３で取得したバッファの空き状態に基づいて、バッファに余裕があり、空き状態が十分であるか否かを判断する。バッファの空き状態が十分であれば（ステップＳ２４  ＹＥＳ）、最大世代数で複数世代アクセスを行うために、処理はステップＳ３１（図２６）に進められる。一方、バッファの空き状態が十分でなければ（ステップＳ２４  ＮＯ）、処理はステップＳ２５に進められる。
【０１４５】
［ステップＳ２５］算出部１２３は、ステップＳ２２で取得したＩ／Ｏのうち所定の基準を満たすＩ／Ｏを抽出する。所定の基準は、例えば、経過時間と監視時間との差が所定の時間未満となるもの、経過時間とＩ／Ｏ量の処理予定時間との和が監視時間に達するもの等に設定することができる。
【０１４６】
［ステップＳ２６］算出部１２３は、ステップＳ２５で抽出したＩ／Ｏについてバッファに記憶されているバッファセットデータの各世代のＩ／Ｏ量を算出し、バッファセットデータの各世代のＩ／Ｏ量に基づいて、複数世代アクセスの完了時間を予測した予測時間（図８）を算出する。このとき、算出部１２３は、バッファに記憶されているすべてのバッファセットデータの世代数についての複数世代アクセスの完了時間を予測した予測時間を算出する。一方算出部１２３は、後述するステップＳ２８で世代数が減少されている場合には、減少された最新の世代数についての複数世代アクセスの完了時間を予測した予測時間を算出する。
【０１４７】
［ステップＳ２７］算出部１２３は、ステップＳ２６において予測した完了時間を監視時間（図７）と比較して、ライトバックの要求の発生時間から監視時間の経過までに転送の完了が可能であるか否かを判断する。転送の完了が可能であれば（ステップＳ２７  ＹＥＳ）、処理はステップＳ３１に進められる。一方、転送の完了が不可能であれば（ステップＳ２７  ＮＯ）、処理はステップＳ２８に進められる。
【０１４８】
［ステップＳ２８］算出部１２３は、ステップＳ２６で予測時間が算出される複数世代アクセスの世代数を１世代減少する。その後、処理はステップＳ２６に進められる。
［ステップＳ３１］ストレージ装置１００が有する退避制御部（例えば、退避制御部１２１０）は、ライトバックするバッファセットデータを記憶する制御モジュールを１つ選択する。制御モジュールの選択は、ストレージ装置１００が制御モジュール毎に有する複数の退避制御部のうちの１つの退避制御部が、ストレージ装置１００が有する制御モジュールのバッファの状況を取得し、取得結果に基づいて選択する。
【０１４９】
［ステップＳ３２］ステップＳ３１で選択した制御モジュールの退避制御部は、選択した制御モジュールが記憶するライトバック対象データをライトバックする。
［ステップＳ３３］退避制御部１２１０は、すべてのライトバック対象データがライトバック済であるか否かを判断する。すべてのデータがライトバック済であれば（ステップＳ３３  ＹＥＳ）、処理は複数世代アクセス処理に復帰する。一方、ライトバック済でないデータがあれば（ステップＳ３３  ＮＯ）、処理はステップＳ３１に進められる。
【０１５０】
図２７は、第２の実施の形態の単数世代アクセスおよび複数世代アクセスにおける退避用バッファの動作を示す図である。
ここで、図８および図２７の例に従って、単数世代毎のアクセス（以下、単数世代アクセス）における解放待ち予測時間［単数世代］と、複数世代アクセスにおける解放待ち予測時間［複数世代］との時間の比較について説明する。まず、図８に示すように、世代２０、世代２１、世代２２、世代２３のライトバックに要する時間（解放待ち予測時間［単数世代］）を、それぞれ、２秒、５秒、１秒、２秒とする。
【０１５１】
図１９および図２０に示す世代２０〜２３を用いて、解放待ち予測時間［単数世代］と解放待ち予測時間［複数世代］との退避用バッファ１１８へのアクセスの順序の違いを説明する。
【０１５２】
まず、世代２０、世代２１をライトバックする場合について、単数世代アクセス順序および複数世代アクセス順序を示す。
世代２０、世代２１への単数世代アクセスは、世代の順にアクセスが実行される。また、同一世代間では一方の制御モジュール（例えば、制御モジュール＃００）を優先してアクセスが実行される。図２７の世代の例に従えば（０−２０）  →  （１−２０）  →  （０−２１）  →  （１−２１）となる。
【０１５３】
また、世代２０、世代２１への複数世代アクセスは、制御モジュール毎に、同一の制御モジュールについては世代順にアクセスが実行される。図２７の世代の例に従えば（０−２０）  →  （０−２１）  →  （１−２０）  →  （１−２１）となる。
【０１５４】
次に、世代２０、世代２１、世代２２をライトバックする場合について、単数世代および複数世代のアクセス順序を示す。
世代２０、世代２１、世代２２への単数世代アクセスは、同様に図２７の世代の例に従えば（０−２０）  →  （１−２０）  →  （０−２１）  →  （１−２１）  →  （０−２２）  →  （１−２２）となる。
【０１５５】
また、世代２０、世代２１、世代２２への複数世代アクセスは、同様に図２７の世代の例に従えば（０−２０）  →  （０−２１）  →  （０−２２）  →  （１−２０）  →  （１−２１）→  （１−２２）となる。
【０１５６】
次に、世代２０、世代２１、世代２２、世代２３をライトバックする場合について、単数世代および複数世代のアクセス順序を示す。
世代２０、世代２１、世代２２、世代２３への単数世代アクセスは、同様に図２７の世代の例に従えば（０−２０）  →  （１−２０）  →  （０−２１）  →  （１−２１）  →  （０−２２）  →  （１−２２）  →  （０−２３）  →  （１−２３）となる。
【０１５７】
また、世代２０、世代２１、世代２２、世代２３への複数世代アクセスは、同様に図２７の世代の例に従えば（０−２０）  →  （０−２１）  →  （０−２２）  →  （０−２３）  →  （１−２０）  →  （１−２１）→  （１−２２）  →  （１−２３）となる。
【０１５８】
このように、複数世代アクセスは、複数の世代をまとめてライトバックすることで、退避用バッファ１１８に対する連続した領域へのアクセスが増加するので、退避用バッファ１１８のシーク時間を大幅に短縮できる。
【０１５９】
図８に示す例では、世代２０、世代２１のそれぞれに対する解放待ち予測時間［単数世代］の和は７秒である。一方、世代２０から世代２１までの解放待ち予測時間［複数世代］は、シーク時間の短縮により６秒となる。同様に、世代２０、世代２１、世代２２のそれぞれに対する解放待ち予測時間［単数世代］の和は８秒である。一方、世代２０から世代２２までの解放待ち予測時間［複数世代］は、シーク時間の短縮により６秒となる。また、世代２０、世代２１、世代２２、世代２３のそれぞれに対する解放待ち予測時間［単数世代］の和は１０秒である。一方、世代２０から世代２３までの解放待ち予測時間［複数世代］は、シーク時間の短縮により７秒となる。このように、複数世代アクセスによれば、それぞれの世代毎にアクセスした場合に比較して、バッファの解放待ち時間を短縮することができる。
【０１６０】
図２８および図２９は、第２の実施の形態のステージング処理の手順を示すフローチャートである。
本実施の形態のストレージ装置１００は、複数世代アクセス処理においてステージング要求の発生があった場合、ステージング処理を行う。以下では、図２８および図２９に示すステージング処理をフローチャートのステップ番号に沿って説明する。
【０１６１】
［ステップＳ４１］算出部１２３は、他のストレージ装置（例えば、ストレージ装置２００）と接続されているネットワーク１１等の通信回線の利用状況を取得する。
［ステップＳ４２］算出部１２３は、ステップＳ４１で取得した通信状況に応じて複数世代アクセスの適切な世代数を算出する。この適切な世代数の算出は、例えば、ライトバック処理を示した図２５のステップＳ２５からステップＳ２８と同様に算出してもよい。
【０１６２】
［ステップＳ４３］算出部１２３は、ステージングに使用可能なバッファ１１２１１，１１２１３の空き状態を取得する。
［ステップＳ４４］算出部１２３は、ステップＳ４３で取得したバッファの空き状態に基づいて、バッファに余裕があり、空き状態が十分であるか否かを判断する。バッファの空き状態が十分であれば（ステップＳ４４  ＹＥＳ）、処理はステップＳ５１（図２９）に進められる。一方、バッファの空き状態が十分でなければ（ステップＳ４４  ＮＯ）、処理はステップＳ４５に進められる。
【０１６３】
［ステップＳ４５］算出部１２３は、ステップＳ４３で取得したバッファの空き状態に応じて、複数世代アクセスの世代数を減少して調整する。
［ステップＳ４６］ストレージ装置１００が有する退避制御部（例えば、退避制御部１２１０）は、ステージングするデータ（バッファセットデータ）を記憶する制御モジュールがすべて正常であるか否かを判断する。すべての制御モジュールが正常であれば（ステップＳ４６  ＹＥＳ）、処理はステップＳ５２（図２９）に進められる。一方、異常がある制御モジュールがあれば（ステップＳ４６  ＮＯ）、処理はステップＳ４７に進められる。
【０１６４】
［ステップＳ４７］退避制御部１２１０は、異常がある制御モジュールのステージングのスケジュールを設定する。
［ステップＳ５１］退避制御部１２１０は、正常に動作している制御モジュールのうちから、ステップＳ４７でステージングのスケジュールを設定した制御モジュールが記憶するデータのステージングを行う制御モジュールおよびステージング先のバッファを決定する。
【０１６５】
［ステップＳ５２］ストレージ装置１００が有する退避制御部は、ステージングするデータ（バッファセットデータ）を有する制御モジュールを１つ選択する。制御モジュールの選択は、ストレージ装置１００が制御モジュール毎に有する複数の退避制御部のうちの１つの退避制御部が、ストレージ装置１００が有する制御モジュールのバッファの状況を取得し、取得結果に基づいて選択する。
【０１６６】
［ステップＳ５３］ステップＳ５１で選択した制御モジュールが有する退避制御部は、選択した制御モジュールのステージング対象データをステージングする。
［ステップＳ５４］出力部１２２は、ステップＳ５３でステージングしたデータをネットワーク１１等の通信回線を介してストレージ装置２００に転送する。
【０１６７】
［ステップＳ５５］退避制御部１２１０は、すべてのデータが転送済であるか否かを判断する。すべてのデータが転送済であれば（ステップＳ５５  ＹＥＳ）、処理は複数世代アクセス処理に復帰する。一方、転送済でないデータがあれば（ステップＳ５５  ＮＯ）、処理はステップＳ５２に進められる。
【０１６８】
なお、本実施の形態では、ライトバック処理について複数世代アクセスの完了時間の予測結果に応じて世代数の調整を行うが、ステージング処理においても複数世代アクセスの完了時間の予測結果に応じて世代数の調整を行ってもよい。
【０１６９】
このように、第２の実施の形態のストレージ装置１００では、退避制御部１２１０，１２１１が退避用バッファ１１８の記憶領域に応じて連続してアクセスする。これにより、退避用バッファ１１８に対するアクセスのスループットを向上させてリモートコピーにおける順序性を保証する機能の効率低下を抑止することができる。
【０１７０】
また、ライトバック対象のバッファセットデータについて、退避用バッファ１１８の記憶領域が連続している順序でライトバックを実行する。これにより、ライトバック時における退避用バッファ１１８のアクセスのスループットを向上させてリモートコピーにおける順序性を保証する機能の効率低下を抑止することができる。
【０１７１】
また、ステージング対象のバッファセットデータについて、退避用バッファ１１８の記憶領域が連続している順序でステージングを実行する。これにより、ステージング時における退避用バッファ１１８のアクセスのスループットを向上させてリモートコピーにおける順序性を保証する機能の効率低下を抑止することができる。
【０１７２】
また、バッファの空き状態の待ち合わせ時間を監視し、アクセスの所要時間を予測する。そして、監視結果と予測結果とを比較し、比較結果に基づいて、連続して実行されるバッファセットデータの世代数を算出する。さらに、算出された世代数のバッファセットデータについて退避用バッファ１１８の記憶領域に応じて連続してステージングまたはライトバックを実行する。これにより、複数世代アクセスを行った場合にも、メモリ資源の解放待ち時間の長期化を抑止することができ、順序性の保証を有効に機能させることができる。
【０１７３】
また、各制御モジュールは、他の制御モジュールにおいて異常が発生している場合、ステージングについて当該制御モジュールに割り当てられているバッファセットデータの一部と共に、ステージングについて異常が発生している制御モジュールに割り当てられていたバッファセットデータの一部について、制御モジュールに対する割り当て毎に連続してステージングを実行する。これにより、制御モジュールに異常が発生した場合にも、動作可能な制御モジュールが代わりにバッファセットデータをステージングしてストレージ装置２００に転送することにより、リモートコピーの信頼性が高まる。
【０１７４】
また、リモートコピーに使用するネットワーク１１の利用状況に応じて、ステージングの対象のバッファセットデータについて退避用バッファ１１８の記憶領域が連続している順序でステージングを実行する。これにより、リモートコピーに使用するネットワーク１１の利用状況に応じてステージングを実行することにより、ステージング時のアクセスの効率を向上させてリモートコピーにおける順序性を保証する機能の効率低下を抑止することができる。
【０１７５】
また、バッファセットデータには、ステージングおよびライトバックの処理の順序を示す世代が設定されている。そして、退避用バッファ１１８の記憶領域は、バッファセットデータが世代の順序に連続するように区分されている。従って、バッファセットデータに設定された世代に基づいてバッファの記憶領域にアクセスしてステージングおよびライトバックを行うことにより、退避用バッファ１１８へのアクセスを効率化できる。これにより、退避用バッファ１１８のアクセスのスループットを向上させてリモートコピーにおける順序性を保証する機能の効率低下を抑止することができる。
【０１７６】
また、退避用バッファ１１８の記憶領域は、記憶するバッファセットデータの一部が割り当てられている制御モジュール毎に連続するように区分されている。従って、異常が発生している他の制御モジュールに割り当てられていたバッファセットデータの一部をステージングする制御モジュールが、バッファセットデータの一部が割り当てられていた制御モジュール毎に領域にアクセスしてステージングを行うので、退避用バッファ１１８へのアクセスを効率化できる。これにより、制御モジュールに異常が発生したときの退避用バッファ１１８のアクセスのスループットを向上させてリモートコピーにおける順序性を保証する機能の効率低下を抑止することができる。
【０１７７】
なお、各実施の形態で示した以上の処理は、コンピュータに所定のプログラムを実行させることで実現できる。その場合、実現すべき処理内容を記述したプログラムが提供される。処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。コンピュータ読み取り可能な記録媒体には、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリがある。磁気記録装置には、ハードディスク装置、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）等がある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc - Read Only Memory）、ＣＤ−Ｒ（Recordable）、ＣＤ−ＲＷ（ReWritable）等がある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等がある。
【０１７８】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにプログラムを転送することもできる。
【０１７９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１８０】
以上説明した第１の実施の形態および第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  データを分散して記憶する複数の記憶手段と、複数の前記記憶手段それぞれに記憶されたデータを含むデータ群を一括して出力する出力手段とを有するストレージ装置において、
前記データ群を記憶する記憶領域を有するデータ群記憶手段と、
前記データ群を前記複数の記憶手段から読み出して前記データ群記憶手段に退避するライトバック、および前記データ群記憶手段に退避したデータ群を前記複数の記憶手段に分散して記憶するステージングのうちの少なくともいずれか一方を、前記ライトバックまたは前記ステージングの対象となる複数のデータ群を記憶する前記データ群記憶手段の記憶領域に応じて連続して実行する退避制御手段と、
を有することを特徴とするストレージ装置。
【０１８１】
（付記２）  前記データ群は、処理の順序を示す世代に分けられていると共に前記データが互いに前記世代毎に対応付けられており、
前記退避制御手段は、前記ライトバックの対象の複数のデータ群を、前記データ群記憶手段の記憶領域の連続した領域に前記世代の順序でライトバックを実行することを特徴とする付記１記載のストレージ装置。
【０１８２】
（付記３）  前記退避制御手段は、前記ステージングの対象の複数のデータ群を、前記世代の順序でステージングを実行することを特徴とする付記２記載のストレージ装置。
（付記４）  前記ライトバックの要求または前記ステージングの要求の発生時を起算時点として前記記憶手段の空きを待ち合わせている間の経過時間である待ち合わせ時間が前記出力手段により出力する前記データ群の転送の順序を維持する順序性の保証を断念する基準となる監視時間に対してどれだけ余裕があるかを示す余裕時間を監視し、前記退避制御手段による連続した前記ライトバックまたは前記ステージングの所要時間を予測し、前記余裕時間と前記所要時間の予測結果とを比較し、比較結果に基づき前記退避制御手段により連続してライトバックまたはステージングが実行されるデータ群の個数を算出する算出手段を有し、
前記退避制御手段は、前記算出手段により算出された個数のデータ群を、前記世代の順序でライトバックまたはステージングを実行することを特徴とする付記３記載のストレージ装置。
【０１８３】
（付記５）  前記ストレージ装置は前記退避制御手段を複数有し、
前記複数の退避制御手段のそれぞれは、自身に割り当てられたデータ群の一部についてステージングを実行すると共に、
他の退避制御手段に異常が発生した場合、自身に割り当てられているデータ群の一部と共に、前記異常が発生した退避制御手段に割り当てられているデータ群の一部とについて、割り当てられている前記退避制御手段毎に前記ステージングの対象の複数のデータ群を、前記世代の順序でステージングを実行することを特徴とする付記３記載のストレージ装置。
【０１８４】
（付記６）  前記出力手段は、通信回線で出力先と接続され、
前記退避制御手段は、前記通信回線の利用状況に応じて、前記世代の順序で、前記ステージング対象の複数のデータ群のステージングを実行することを特徴とする付記３記載のストレージ装置。
【０１８５】
（付記７）  前記通信回線の利用状況に応じて、前記退避制御手段により連続してステージングが実行される前記データ群の個数を算出する算出手段を有し、
前記退避制御手段は、前記世代の順序で、前記算出手段により算出された個数の前記ステージングの対象データ群のステージングを実行することを特徴とする付記６記載のストレージ装置。
【０１８６】
（付記８）  前記ストレージ装置は前記退避制御手段を複数有し、
前記データ群記憶手段の領域は、記憶するデータ群の一部が割り当てられている複数の退避制御手段毎に連続するように区分されていることを特徴とする付記１記載のストレージ装置。
【０１８７】
（付記９）  データを分散して記憶する複数の記憶手段と、複数の前記記憶手段それぞれに記憶された前記データを含むデータ群を一括して出力する出力手段とを有するストレージ装置を制御するストレージ装置制御プログラムにおいて、
コンピュータに、
前記データ群を複数の前記記憶手段から読み出して前記データ群を記憶する記憶領域を有するデータ群記憶手段に退避するライトバック、および前記データ群記憶手段に退避したデータ群を前記複数の記憶手段に分散して記憶するステージングのうちの少なくともいずれか一方を、前記ライトバックまたは前記ステージングの対象となる複数のデータ群を記憶する前記データ群記憶手段の記憶領域に応じて連続して実行する退避制御ステップを実行させることを特徴とするストレージ装置制御プログラム。
【０１８８】
（付記１０）  データを一時的に分散して記憶する複数の記憶手段と、複数の前記記憶手段それぞれに記憶されたデータを含むデータ群を一括して出力する出力手段とを有するストレージ装置を制御するストレージ装置制御方法において、
コンピュータが、
前記データ群を複数の前記記憶手段から読み出して前記データ群を記憶する記憶領域を有するデータ群記憶手段に退避するライトバック、および前記データ群記憶手段に退避したデータ群を前記複数の記憶手段に分散して記憶するステージングのうちの少なくともいずれか一方を、前記ライトバックまたは前記ステージングの対象となる複数のデータ群を記憶する前記データ群記憶手段の記憶領域に応じて連続して実行する退避制御ステップを有することを特徴とするストレージ装置制御方法。
【符号の説明】
【０１８９】
１，２  ストレージ装置
１ａ  退避制御手段
１ｂ  出力手段
１ｃ１，１ｃ２，２ｃ１，２ｃ２  記憶手段
１ｄ  データ群記憶手段
３，４  ホストコンピュータ
５  通信回線
【図１】
0005593718.tif 000002
【図２】
0005593718.tif 000003
【図３】
0005593718.tif 000004
【図４】
0005593718.tif 000005
【図５】
0005593718.tif 000006
【図６】
0005593718.tif 000007
【図７】
0005593718.tif 000008
【図８】
0005593718.tif 000009
【図９】
0005593718.tif 000010
【図１０】
0005593718.tif 000011
【図１１】
0005593718.tif 000012
【図１２】
0005593718.tif 000013
【図１３】
0005593718.tif 000014
【図１４】
0005593718.tif 000015
【図１５】
0005593718.tif 000016
【図１６】
0005593718.tif 000017
【図１７】
0005593718.tif 000018
【図１８】
0005593718.tif 000019
【図１９】
0005593718.tif 000020
【図２０】
0005593718.tif 000021
【図２１】
0005593718.tif 000022
【図２２】
0005593718.tif 000023
【図２３】
0005593718.tif 000024
【図２４】
0005593718.tif 000025
【図２５】
0005593718.tif 000026
【図２６】
0005593718.tif 000027
【図２７】
0005593718.tif 000028
【図２８】
0005593718.tif 000029
【図２９】
0005593718.tif 000030
【図３０】
0005593718.tif 000031
【図３１】
0005593718.tif 000032