(57)【要約】【課題】正データ記憶装置の判断によりデータ更新の確実な順序保証を可能とする。【解決手段】正データ記憶装置１０-1のキャッシュメモリ管理部は、第１の記憶媒体へのデータの書き込みがホスト装置１３-1から指定された場合、指定されたデータをライトバックデータとして記憶するためのキャッシュ領域と、指定されたデータを副データ記憶装置１０-2に送信するためのバッファ領域とを第１のキャッシュメモリに確保しそれぞれにデータを書き込む。正データ記憶装置１０-1のレプリケーション管理部は、バッファ領域に記憶されたデータを未確定ライトデータとして第２のキャッシュメモリに書き込むための未確定ライトを副データ記憶装置１０-2に要求し、未確定ライトデータが予め定められた量を超える場合、第２のキャッシュメモリに既に書き込まれている未確定ライトデータをライトバックデータに確定する未確定ライト確定を副データ記憶装置１０-2に要求する。【選択図】図１
2012022645.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するための第１の記憶媒体と、前記第１の記憶媒体へのアクセスを制御する第１の制御装置とを有する第１のデータ記憶装置と、
データを記憶するための第２の記憶媒体と、前記第２の記憶媒体へのアクセスを制御する第２の制御装置とを有し、前記第１のデータ記憶装置とデータ通信路を介して接続される第２のデータ記憶装置とを具備し、
前記第１の制御装置は、 前記第１の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第１のキャッシュメモリと、 前記第２のデータ記憶装置に送信されるべきライトデータを記憶するためのバッファ領域と、 前記第１のキャッシュメモリに対するアクセスを管理する第１のキャッシュメモリ管理手段と、 前記第１及び第２の記憶媒体を、前記第１の記憶媒体に記憶されているデータの複製が前記第２の記憶媒体に保存されるミラーとして運用するための特定のレプリケーション状態を備えるレプリケーション管理を行うためのレプリケーション管理手段とを備え、
前記第２の制御装置は、 前記第２の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第２のキャッシュメモリを備え、
前記第１のキャッシュメモリ管理手段は、 前記特定のレプリケーション状態において、外部の装置から前記第１の記憶媒体へのデータの書き込みが指定された場合、前記第１のキャッシュメモリ、および前記バッファ領域のそれぞれに前記指定されたデータを書き込み、
前記レプリケーション管理手段は、前記バッファ領域に書き込まれた前記ライトデータを、前記第２のキャッシュメモリに未確定ライトデータとして書き込むための未確定ライトを前記第２のデータ記憶装置に要求し、
前記未確定ライトを要求することにより前記ライトデータが設定された量を超える場合、もしくは予め定められたタイミングが到来した場合に、前記バッファ領域から前記第２のキャッシュメモリに前記未確定ライトデータとして既に書き込まれているデータを前記第２の記憶媒体に書き出されるべきライトバックデータに確定するための未確定ライト確定を前記第２のデータ記憶装置に要求することを特徴とするデータ記憶システム。
【請求項２】
前記レプリケーション管理手段は、前記第２のキャッシュメモリの同一の領域に対する複数の前記未確定ライトの要求を行う場合に、前記複数の未確定ライトの要求の内、最後に要求された未確定ライトデータのみを送信することを特徴とする請求項１に記載のデータ記憶システム。
【請求項３】
前記レプリケーション管理手段は、予め定められたレプリケーション周期が到来した場合に前記未確定ライトを前記第２のデータ記憶装置に要求することを特徴とする請求項１および請求項２に記載のデータ記憶システム。
【請求項４】
前記レプリケーション管理手段は、前記バッファ領域のデータ量が予め定められたデータ量を超える場合に、前記未確定ライトを前記第２のデータ記憶装置に要求することを特徴とする請求項１および請求項２に記載のデータ記憶システム。
【請求項５】
データを記憶するための第１の記憶媒体と、前記第１の記憶媒体へのアクセスを制御する第１の制御装置とを有する第１のデータ記憶装置と、データを記憶するための第２の記憶媒体と、前記第２の記憶媒体へのアクセスを制御する第２の制御装置とを有し、前記第１のデータ記憶装置とデータ通信路を介して接続される第２のデータ記憶装置とを具備し、前記第１の制御装置は、前記第１の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第１のキャッシュメモリと、前記第２のデータ記憶装置に送信されるべきライトデータを記憶するためのバッファ領域とを備え、前記第２の制御装置は、前記第２の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第２のキャッシュメモリを備えるデータ記憶システムに適用される非同期レプリケーション方法であって、
前記第１及び第２の記憶媒体を前記第１の記憶媒体に記憶されているデータの複製が前記第２の記憶媒体に保存される際のミラーとして運用するための特定のレプリケーション状態において、外部の装置から前記第１の記憶媒体へのデータの書き込みが指定された場合に、
前記第１の制御装置が前記指定されたデータを前記第１の記憶媒体に書き出されるべきライトバックデータとして前記第１のキャッシュメモリに書き込むステップと、
前記指定されたデータを前記第２のデータ記憶装置に送信されるべきライトデータとして前記バッファ領域に書き込むステップと、
あらかじめ定めたレプリケーション周期が到来した場合に、前記第１の制御装置が、前記バッファ領域に書き込まれた前記ライトデータを前記第２のキャッシュメモリに転送するための未確定ライトを前記第２のデータ記憶装置に要求するステップと、
前記未確定ライトを要求することによりを前記第２のキャッシュメモリに転送される前記ライトデータが前記予め定められた量を超えると判定された場合、もしくは予め定められた確定周期が到来した場合に、前記第２のキャッシュメモリに転送された前記ライトデータを前記第２の記憶媒体に書き出されるべきライトバックデータに確定するための未確定ライト確定を、前記第１の制御装置が前記第２のデータ記憶装置に要求するステップとを具備することを特徴とする非同期レプリケーション方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はデータ記憶装置および非同期レプリケーション方法に関する。
【背景技術】
【０００２】
従来、正サイト（プライマリサイト）に配置された正データ記憶装置（一次データ記憶装置）と、正サイトから遠隔の地に存在する副サイト（セカンダリサイト）に配置された副データ記憶装置（二次データ記憶装置）とから構成されるデータ記憶システムがある。この種のデータ記憶システムには、高信頼性化のために、災害などによる正サイトの破壊時に、副サイトにて事業を継続する要求がある。
【０００３】
このため、副データ記憶装置には、正データ記憶装置に記憶されているデータの複製が保存される。この複製の作成では、副データ記憶装置でのデータ更新を、正データ記憶装置でのデータ更新と同様の順序で行う必要がある。つまり、データ記憶システムには、正データ記憶装置及び副データ記憶装置間で、データ更新の順序を保証するための順序保証機能が要求される。またデータ記憶装置には、正サイトと副サイトとの距離に依存しないディスク性能を保証する機能も要求される。
【０００４】
そこで、データ記憶装置においては、高信頼性化に必要な上述の機能要件を満たすために、例えば、正サイトにてデータ処理を完了しつつ副サイトへデータの転送を行う非同期レプリケーション機能を備えているのが一般的である。
【０００５】
しかしながら、この非同期レプリケーション機能を実現するためには、正データ記憶装置及び副データ記憶装置に、キャッシュメモリとは別に専用のバッファを設けることや、正サイト及び副サイト間に専用の中継転送装置を設けることが必要である。また、シーケンス番号を振り、バックアップ装置でそのシーケンス番号を解釈する等のプロトコルオーバヘッドがあった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３-１６７６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
正サイトのデータ記憶装置の判断によりデータ更新の順序保証を行うことが可能であり、中継装置や専用大容量バッファを必要とせず、プロトコルによるオーバヘッドを低減し、同一領域に対する連続ライト時もホスト装置へのレスポンス低下が発生しないデータ記憶システムおよび非同期レプリケーション方法を提供することが課題である。
【課題を解決するための手段】
【０００８】
本実施形態のデータ記憶システムは、データを記憶するための第１の記憶媒体と、前記第１の記憶媒体へのアクセスを制御する第１の制御装置とを有する第１のデータ記憶装置と、データを記憶するための第２の記憶媒体と、前記第２の記憶媒体へのアクセスを制御する第２の制御装置とを有し、前記第１のデータ記憶装置とデータ通信路を介して接続される第２のデータ記憶装置とを具備し、前記第１の制御装置は、前記第１の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第１のキャッシュメモリと、前記第１のキャッシュメモリに対するアクセスを管理する第１のキャッシュメモリ管理手段と、前記第１及び第２の記憶媒体を、前記第１の記憶媒体に記憶されているデータの複製が前記第２の記憶媒体に保存されるミラーとして運用するための特定のレプリケーション状態を備えるレプリケーション管理を行うためのレプリケーション管理手段とを備え、前記第２の制御装置は、前記第２の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第２のキャッシュメモリを備え、前記第１のキャッシュメモリ管理手段は、前記特定のレプリケーション状態において、外部の装置から前記第１の記憶媒体へのデータの書き込みが指定された場合、前記第１のキャッシュメモリに、前記指定されたデータを前記第１の記憶媒体に書き出されるべきライトバックデータとして記憶するためのキャッシュ領域と、前記指定されたデータを前記第２のデータ記憶装置に送信されるべき前記第２の記憶媒体に書き出すことが禁止される未確定ライトデータとして記憶するためのバッファ領域とを確保し、それぞれの領域に前記指定されたデータを書き込み、前記レプリケーション管理手段は、全ての前記バッファ領域に書き込まれた前記未確定ライトデータを、前記第２のキャッシュメモリに書き込むための未確定ライトを前記第２のデータ記憶装置に要求し、前記未確定ライトを要求することにより前記未確定ライトデータが設定された量を超える場合、もしくは予め定められたタイミングが到来した場合に、前記バッファ領域から前記第２のキャッシュメモリに前記未確定ライトデータとして既に書き込まれているデータを前記第２の記憶媒体に書き出されるべきライトバックデータに確定するための未確定ライト確定を前記第２のデータ記憶装置に要求することを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係るデータ記憶システムの構成を示すブロック図。
【図２】本実施形態に係るデータ記憶装置の概略構成を示すブロック図。
【図３】図１に示される制御装置のモジュール構成を主として示すブロック図。
【図４】本実施形態で適用されるキャッシュディレクトリエントリのデータ構造例を 示す図ブロック図。
【図５】本実施形態で適用されるレプリケーション管理テーブル及びＩ／Ｏ管理リストのデータ構造例を示す図。
【図６】本実施形態において外部の装置からライト処理が要求された場合のデータ記憶装置における処理の手順を示すフローチャート。
【図７】本実施形態における正データ記憶装置側で実行される未確定ライトコマンドの処理の手順を示すフローチャート。
【図８】本実施形態における正データ記憶装置側で実行される未確定ライトコマンドの処理の手順を示すフローチャート。
【図９】本実施形態における正データ記憶装置側で実行される未確定ライト確定コマンド処理の手順を示すフローチャート。
【図１０】本実施形態における副データ記憶装置側で実行される未確定ライト確定コマンド処理の手順を示すフローチャート。
【図１１】本実施形態におけるキャッシュブロック確保時の処理の詳細な手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本実施形態について図面を参照して説明する。
【００１１】
図１は、本実施形態に係るデータ記憶システム１００の構成を示す。データ記憶システム１００は、正サイト１００-1に配置された正データ記憶装置（第１のデータ記憶装置）１０-1、及び副サイト１００-2に配置された副データ記憶装置（第２のデータ記憶装置）１０-2を備える。正サイト１００-1及び副サイト１００-2は、例えば互いに距離的に離れた位置に存在する。つまり副サイト１００-2は、正サイト１００-1に対して遠隔地に存在する。
【００１２】
正サイト１００-1において、正データ記憶装置１０-1は、接続機器１２-1を含むデータ通信路１１-1を介して上位装置であるホスト装置１３-1と接続されている。副サイト１００-2において、副データ記憶装置１０-2は、接続機器１２-2を含むデータ通信路１１-2を介してホスト装置１３-2と接続されている。データ通信路１１-1、データ通信路１１-2は、例えばFibre ChannelやiSCSI、SCSIである。なお、正データ記憶装置１０-1が、ホスト装置１３-1を含む複数のホスト装置とデータ通信路１１-1を介して接続されていても構わない。同様に、副データ記憶装置１０-2が、ホスト装置１３-2を含む複数のホスト装置とデータ通信路１１-2を介して接続されていても構わない。ホスト装置１３-1は正データ記憶装置１０-1を利用するコンピュータであり、ホスト装置１３-2は副データ記憶装置１０-2を利用するコンピュータである。
【００１３】
正サイト１００-1の接続機器１２-1と副サイト１００-2の接続機器１２-2とは、ネットワーク１４を介して接続されている。接続機器１２-1及び１２-2は、例えばファブリックスイッチである。ネットワーク１４は、例えば広域ネットワークである。接続機器１２-1及び１２-2は、ネットワーク１４と、例えば図示せぬファイバチャネル-インターネットプロトコル（ＦＣＰ）変換器を中継して接続される。
【００１４】
図２は図１に示されるデータ記憶装置１０-i（ｉ＝１、２）の概略構成を示すブロック図である。
【００１５】
データ記憶装置１０-iは、制御部２０-iと記憶媒体８０-iとから構成される。制御部２０-iは、データ通信路１１-iを介して接続されるホスト装置１３-iと記憶媒体８０-iとの間に介在して設けられる。記憶媒体８０-iは、例えば論理ディスクであり、ハードディスクドライブ（ＨＤＤ）やＳＳＤ（Solid State Drive）などで構成される。以下、記憶媒体８０-iを論理ディスク（ＬＤＩＳＫ）８０−iと呼ぶ。本実施形態では、説明を簡略化するために、データ記憶装置１０-iが１つのＬＤＩＳＫ８０-iを有するものとする。しかしデータ記憶装置１０-iが、複数のＬＤＩＳＫを有していても構わない。
【００１６】
制御部２０-iは、ホスト  Ｉ／Ｆ部（ＨＯＳＴ  Ｉ／Ｆ）６１-i、ＣＰＵ２１-i、プログラムメモリ３１-i、フラッシュメモリ４１-i、キャッシュメモリ５１-i、及びＨＤＤ  Ｉ／Ｆ部（ＨＤＤ  Ｉ／Ｆ）７１-iを有している。
【００１７】
ホスト  Ｉ／Ｆ部６１-iは、外部接続される装置との間の通信を制御する。すなわち、ホスト  Ｉ／Ｆ部６１-iはデータ通信路１１-i側の通信を司る。また、ＨＤＤ  Ｉ／Ｆ部７１-iはＬＤＩＳＫ８０-i側の通信を司る。
【００１８】
ＣＰＵ２１-iは、制御部２０-iにおける必要処理を実行するものであり、フラッシュメモリ４１-iは、そのための各種プログラムが格納されている不揮発メモリである。プログラムメモリ３１-iには、不揮発メモリであるフラッシュメモリ４１-iからロードされたプログラムとＣＰＵ２１-iが利用するデータ等を格納するためのデータ領域が格納されている。本実施形態で適用される非同期レプリケーションの手法は、このプログラムメモリ３１-iにロードされ、格納されているプログラムをＣＰＵ２１-iが読み取って実行することによって実現されるものとする。プログラムメモリ３１-iには、上述のプログラムを格納するための領域に加えて、ＣＰＵ２１-iが利用するデータ等を格納するための領域も確保されている。
【００１９】
キャッシュメモリ５１-iは、データ通信路１１-iを介して接続されるホスト装置１３-iまたは他のデータ記憶装置からデータ記憶装置１０-i内のＬＤＩＳＫ８０-iに対して発行される入出力要求（Ｉ／Ｏ要求）において、読み出しまたは書き込みされるデータを一時的に格納する。
【００２０】
キャッシュメモリ５１-iは、ある論理的な単位に分割されて管理されている。この分割された単位で自由にＬＤＩＳＫ８０-i内の記憶位置に対応させて、その記憶位置のデータをキャッシュメモリ５１-iに格納することができる。この分割された１つの単位をキャッシュブロックと呼ぶ。各キャッシュブロックは、例えばセットアソシアティブ方式によるメモリマッピングで管理されるものとする。
【００２１】
データ記憶装置１０-iにおいて、外部の装置、例えばホスト装置１３-iからの入力要求に対する書き込み処理は、次のように行われる。まず、入力要求で指定された入力データ（書き込みデータ）がキャッシュメモリ５１-iにエントリされた時点で、要求元のホスト装置１３-iに対して書き込み処理完了が通知される。その後に、キャッシュメモリ５１-iからＬＤＩＳＫ８０-iに対する実際のデータ書き込みが実行される。
【００２２】
一方、ホスト装置１３-iからの出力要求に対する読み出し処理は、次のように行われる。まず、該当するデータがキャッシュメモリ５１-iにエントリ（キャッシュ）されているか否かが判定され、エントリされていれば、そのデータがキャッシュメモリ５１-iからデータ通信路１１-iを介してホスト装置１３-iに返される。これに対し、該当するデータがキャッシュメモリ５１-iにエントリされていないならば、そのデータがＬＤＩＳＫ８０-iからキャッシュメモリ５１-iに読み出される。そして、読み出されたデータが、要求元のホスト装置１３-iに対してデータ通信路１１-iを介して返される。
【００２３】
図３は、例えば図２に示される制御部２０-iのプログラムメモリ３１-iに格納されるプログラムをＣＰＵ２１-iが読み取って実行することによって実現されるモジュール構成を主として示すブロック図である。
【００２４】
ホストＩ／Ｆ制御部（ホスト  Ｉ／Ｆ制御部）２１０-iは、データ記憶装置１０-iとホスト装置１３-iとの間のインタフェース処理を担当する。特に、正データ記憶装置１０-1のホスト  Ｉ／Ｆ制御部２１０-1は、他のデータ記憶装置（副データ記憶装置１０-2）との間のインタフェース処理も担当する。このインタフェース処理は入出力処理を含む。つまりホスト  Ｉ／Ｆ制御部２１０-iは、後述するコミュニケーションポート管理部２７０-iから例えばＣＤＢ（Command Descriptor Block: コマンド記述ブロック）を用いて送られるコマンドを受信して、そのコマンドを他のデータ記憶装置に送信することにより、他のデータ記憶装置との間の入出力処理を行う。本実施形態において、ホスト装置１３-1から正データ記憶装置１０-1に対してＣＤＢを用いて送られるコマンドに通常ライトコマンドがある。また、正データ記憶装置１０-1から副データ記憶装置１０-2に対してＣＤＢを用いて送られるコマンドに、未確定ライトコマンドと未確定ライト確定コマンドとがある。これらのコマンドについては後述する。
【００２５】
Ｉ／Ｏ管理部（入出力管理部）２２０-iは、ホスト  Ｉ／Ｆ制御部２１０-iで受信したＣＤＢのデコードを行う。特に、副データ記憶装置１０-2のＩ／Ｏ管理部２２０-2は、未確定ライトコマンドまたは未確定ライト確定コマンドに応じて、キャッシュメモリ管理部２３０-2に対して未確定ライトコマンドまたは未確定ライト確定コマンドを要求することによりＩ／Ｏアクセス管理（入出力アクセス管理）を行う。
【００２６】
キャッシュメモリ管理部２３０-iはＩ／Ｏ管理部２２０-iからの要求を受けて、キャッシュディレクトリ記憶部２３１-iに格納されているキャッシュディレクトリ２３２-iに基づいてキャッシュメモリ５１-i（図２参照）におけるＩ／Ｏアクセス管理を行う。キャッシュディレクトリ２３２-iのデータ構造については後述する。
【００２７】
本実施形態において、ＬＤＩＳＫ８０-iは、複数のディスクアレイ、例えば図３に示されるようなＲＡＩＤ（Redundant Arrays of Independent Disks、Redundant  Arrays of Inexpensive Disks）構成の２つのディスクアレイ８００-iから構成されるものとする。つまり、本実施形態においてデータ記憶装置１０-iはディスクアレイ装置である。
【００２８】
なお、ディスクアレイ８００-iがＬＤＩＳＫ８０-iと１対１で対応するとは限らない。例えば、ディスクアレイ８００-iの一部がＬＤＩＳＫ８０-iの一部に割り当てられ、ディスクアレイ８００-iの他の一部が別のＬＤＩＳＫの一部に割り当てられても構わない。
【００２９】
ＲＡＩＤ制御部２４０-iは、各ディスクアレイ８００-iを物理ディスクの集合として管理する。ＲＡＩＤ制御部２４０-iは、キャッシュメモリ管理部２３０-iからの要求に応じて、ＬＤＩＳＫ８０-i内のディスク転送の対象となるディスクアレイ８００-iとの間のディスクデータの転送を制御する。ＨＤＤ  Ｉ／Ｆ制御部（ＨＤＤ  Ｉ／Ｆ制御部）２５０-iは、ＲＡＩＤ制御部２４０-iからの要求に応じて、ディスクアレイ８００-i内のディスク転送の対象となる、１つ以上の物理ディスクとの間のディスクデータの転送を制御する。
【００３０】
なお、ＬＤＩＳＫ８０-iは必ずしもディスクアレイから構成されている必要はなく、したがって、データ記憶装置１０-iがディスクアレイ装置でなくともよい。更に、ＬＤＩＳＫ８０-iに代えて物理ディスクのような他の記憶媒体を用いることも可能である。
【００３１】
レプリケーション管理部２６０-iは、レプリケーション管理データ記憶部２６１-iに格納されているレプリケーション管理テーブル２６２-i及びＩ／Ｏ管理リスト記憶部２６３-iに格納されているＩ／Ｏ管理リスト２６４-iに基づいてレプリケーションの管理及び制御を行う。レプリケーション管理テーブル２６２-i及びＩ／Ｏ管理リスト２６４-iのデータ構造については後述する。
【００３２】
コミュニケーションポート管理部２７０-iは他のデータ記憶装置との間の通信のためにアクセスポートを管理する。
【００３３】
前述したように、キャッシュメモリ５１-iを管理するための論理的な単位はキャッシュブロックと呼ばれる。このキャッシュブロックと１対１に対応し、キャッシュブロックを管理するための管理データ構造は、キャッシュディレクトリエントリと呼ばれる。キャッシュディレクトリ２３２-iは、キャッシュディレクトリエントリの集合である。
【００３４】
図４は、キャッシュディレクトリのデータ構造例を示す。本実施形態において、キャッシュディレクトリエントリのデータ（キャッシュディレクトリデータ）は、論理ディスク番号、論理アドレス、状態フラグ、リードキャッシュビットマップ、ライトバックビットマップ（第１の変数）、及び未確定ライトビットマップ（第２の変数）から構成される。
【００３５】
論理ディスク番号は、該当するキャッシュブロックが割り当てられている論理ディスクを示し、論理アドレスは、該当するキャッシュブロックが割り当てられている論理ディスク内の領域（論理ブロック領域）の開始アドレスを示す。状態フラグは、該当するキャッシュブロックの状態、例えばキャッシュブロックを使用中であるか否かを示す。
【００３６】
リードキャッシュビットマップ、ライトバックビットマップ及び未確定ライトビットマップは、該当するキャッシュブロック内の有効データの位置を、ブロックよりも小サイズの単位、例えばセクタ単位で、ビットにより示す。有効データとは、リードキャッシュビットマップでは、該当キャッシュブロック内のリードキャッシュデータを指し、ライトバックビットマップでは、該当キャッシュブロック内において論理ディスク番号で示される論理ディスクに書き出されるべきライトバックデータ（いわゆるダーティデータ）を指す。また、未確定ライトビットマップでは、該当キャッシュブロック内の未確定ライトデータを指す。未確定ライトデータは、ライトバックデータと異なり、論理ディスクに書き出されるべきでないデータ、つまり論理ディスクに書き出すことが禁止されるデータである。未確定データが確定されるとライトバックデータとして扱われる。
【００３７】
本実施形態において、レプリケーションの状態は、同期（ＳＹＮＣ）状態、コピー（ＣＯＰＹ）状態及びスプリット（ＳＰＬＩＴ）状態の３つである。レプリケーション作成直後の初期状態はＳＰＬＩＴである。ＳＰＬＩＴ状態とは、正データ記憶装置１０-1のＬＤＩＳＫ８０-1（正論理ディスク）と副データ記憶装置１０-2のＬＤＩＳＫ８０-2（副論理ディスク）とが論理的に切り離された状態を指す。つまりＳＰＬＩＴ状態では、正データ記憶装置１０-1及び副データ記憶装置１０-2は、それぞれ独立のデータ記憶装置として機能する。
【００３８】
ＳＰＬＩＴ状態において、例えばホスト装置１３-1から正データ記憶装置１０-1に同期要求が与えられると、ＳＰＬＩＴ状態からＣＯＰＹ状態に遷移する。このＣＯＰＹ状態では、ＬＤＩＳＫ８０-1からデータを読み出し、この読み出されたデータをＬＤＩＳＫ８０-2に書き込むＣＯＰＹ処理が行われる。このＣＯＰＹ処理では、正データ記憶装置１０-1から副データ記憶装置１０-2に、通常ライトが要求される。この際の副データ記憶装置１０-2での処理は後述の図６に示す外部の装置からライト処理が要求された場合のデータ記憶装置における処理の手順において、未確定ライト要求でない場合の処理と同様である。すなわち、通常のライトと同じく副データ記憶装置１０-2のタイミングで実行されるデステージング処理により副論理ディスクにＣＯＰＹ処理が行われる。ＣＯＰＹ処理が完了すると、ＳＹＮＣ状態に遷移する。これらの状態は、レプリケーション管理部２６０-iによって制御される。
【００３９】
図５は、レプリケーション管理部２６０-iによるレプリケーションの管理および制御に用いられるレプリケーション管理テーブル２６２-i及びＩ／Ｏ管理リスト２６４-iのデータ構造例を示す。レプリケーション管理テーブル２６２-iは、正論理ディスク番号、副論理ディスク番号、レプリケーションステート情報、レプリケーション周期情報、確定周期情報、送信可能データ量情報、送信済みデータ量情報及び確定フラグを保持する。
【００４０】
正論理ディスク番号は、正データ記憶装置１０-1内のレプリケーション元（レプリケーションマスタ）となる正論理ディスクの番号を示す。副論理ディスク番号は、副データ記憶装置１０-2内のレプリケーション先（レプリケーションサブ）となる副論理ディスクの番号を示す。レプリケーションステート情報は前述の３つのレプリケーションの状態のいずれかを示す。本実施形態では、ＬＤＩＳＫ８０-1（第１の記憶媒体）とＬＤＩＳＫ８０-2（第２の記憶媒体）とは対をなし、レプリケーションペアを構成する。
【００４１】
レプリケーション周期情報は、正データ記憶装置１０-1から後述するバッファリングＩ／Ｏリストに記載されたＩ／Ｏ要求に対応するライトデータを副データ記憶装置１０-2へと転送する転送処理を行う周期を示す。確定周期情報は未確定ライトデータを確定する周期を示す。送信可能データ量情報は、確定周期情報の示す１周期内で正データ記憶装置１０-1から副データ記憶装置１０-2に未確定データとして送信可能なデータ量を示す。送信可能データ量は、例えば、１周期内に副データ記憶装置１０-2に送られる未確定データのために、キャッシュメモリ５１-2内の領域を割り当てることが許される量に設定される。送信済みデータ量情報は、正データ記憶装置１０-1から副データ記憶装置１０-2に未確定データとして既に送信されている送信済みデータ量を示す。確定フラグは、未確定ライト確定コマンドが実行中であるか否かを示す。
【００４２】
Ｉ／Ｏ管理リスト２６４-iは、実行Ｉ／Ｏリスト２６４ａ-i、ペンディングＩ／Ｏリスト２６４ｂ-i、およびバッファリングＩ／Ｏリスト２６４ｃ-iから構成される。実行Ｉ／Ｏリスト２６４ａ-iは、実行Ｉ／Ｏ要求を要求順に保持するキュー形式のリスト構造を有する。ペンディングＩ／Ｏリスト２６４ｂ-iは、ペンディングＩ／Ｏ要求を要求順に保持するキュー形式のリスト構造を有する。実行Ｉ／Ｏ要求とは、現時点において実
行が可能なＩ／Ｏ要求を指す。ペンディングＩ／Ｏ要求とは、現時点において実行が不可のＩ／Ｏ要求を指す。バッファリングＩ／Ｏリスト２６４ｃ-iは、バッファリングＩ／Ｏ要求を要求順に保持するキュー形式のリスト構造を有する。バッファリングＩ／Ｏ要求とは未確定ライトデータとして副データ記憶装置に送信するＩ／Ｏ要求を指す。
【００４３】
次に、本実施形態の動作について、レプリケーションの状態がＳＹＮＣ状態のときに、ホスト装置１３-1から正データ記憶装置１０-1に通常ライトコマンドを含むＣＤＢが送信された場合の正データ記憶装置１０-1及び副データ記憶装置１０-2の動作を例に、図６のフローチャートを参照して説明する。
【００４４】
今、ホスト装置１３-1から正データ記憶装置１０-1に、通常ライトコマンドを含むＣＤＢがデータ通信路１１-1を介して送信されたものとする。通常ライトコマンドは、論理ディスク番号、開始アドレス及びサイズから構成されるアクセス情報を含む。このアクセス情報中の正論理ディスク番号は、正データ記憶装置１０-1内の書き込み先のＬＤＩＳＫ８０-1を示す。アクセス情報中の開始アドレスは、データが書き込まれるべきＬＤＩＳＫ８０-1内の記憶領域（ライトアクセス範囲）の先頭位置のアドレスを示し、アクセス情報中のサイズは、この記憶領域のサイズ（転送サイズ）を示す。
【００４５】
ホスト装置１３-1から送信されたＣＤＢは、ホストＩ／Ｆ制御部２１０-1で受信され、Ｉ／Ｏ管理部２２０-1に渡される。Ｉ／Ｏ管理部２２０-1は、渡されたＣＤＢをデコードする（ステップＳ１）。ステップＳ１においてＩ／Ｏ管理部２２０-1は、ＣＤＢが本実施形態のように通常ライトコマンドを含む場合、キャッシュメモリ管理部２３０-1に対して、ライト処理のためのＩ／Ｏ要求として通常ライト要求を送出する。通常ライト要求は、通常ライト処理のためのＩ／Ｏ要求であり、通常ライトコマンドに含まれているアクセス情報を継承する。
【００４６】
次に、キャッシュメモリ管理部２３０-1は、Ｉ／Ｏ要求に含まれているアクセス情報中の論理ディスク番号の示すＬＤＩＳＫ８０-1がレプリケーションマスタであるかを判定する（ステップＳ２）。
【００４７】
本実施形態のようにレプリケーションマスタである場合（ステップＳ２がＹｅｓ）、キャッシュメモリ管理部２３０-1は、Ｉ／Ｏ管理部２２０-1から送信されたＣＤＢライト処理のためのＩ／Ｏ要求（ここでは通常ライト要求）を受信すると、このＩ／Ｏ要求に基づいて、キャッシュメモリ５１-1（第１のキャッシュメモリ）内で必要なキャッシュブロックと、このキャッシュブロックと同じ容量のバッファとを確保し（ステップＳ３）、Ｉ／Ｏ要求で指定されるライト処理に必要なライトデータを受信し、ステップＳ３で確保したキャッシュブロックとバッファとそれぞれに記憶する（ステップＳ５）。そして、キャッシュブロックが使用中であることを示すフラグと、バッファが確保されていること示すフラグとをキャッシュディレクトリ２３２-1のキャッシュディレクトリエントリに含まれている状態フラグにセットする。なお、確保されたバッファはライトデータを副データ記憶装置１０-2に転送するために用いられる。
【００４８】
次に、キャッシュメモリ管理部２３０-1は、Ｉ／Ｏ管理部２２０-1から受信したＩ／Ｏ要求が未確定ライト要求であるかを判定する（ステップＳ７）。本実施形態のように未確定ライト要求でないならば（ステップＳ７がＮｏ）、受信したライトデータをキャッシュメモリ５１-1内の確保されたキャッシュブロックにエントリする（ステップＳ８）。このステップＳ８においてキャッシュメモリ管理部２３０-1は、Ｉ／Ｏ管理部２２０-1から受信した通常ライト要求に含まれているアクセス情報の示すライトアクセス範囲を、確保されたキャッシュブロックに対応する、キャッシュディレクトリ２３２-1のキャッシュディレクトリエントリに含まれているライトバックビットマップに反映する。即ちキャッシュメモリ管理部２３０-1は、確保されたキャッシュブロックに対応するライトバックビットマップのうち、通常ライト要求で指定されたライトアクセス範囲に対応するビットを例えば"１"にセットする。
【００４９】
図６に示されるフローチャートは、正データ記憶装置１０-1及び副データ記憶装置１０-2で共通に実行される。しかし本実施形態において、ホスト装置１３-1から正データ記憶装置１０-1に送信されるＣＤＢに含まれるライトコマンドは、通常ライトコマンドに限られる。したがって、正データ記憶装置１０-1では、ステップＳ７は必ずしも必要でなく、ステップＳ５、もしくはステップ６の次にステップＳ８が実行されても構わない。
【００５０】
次にキャッシュメモリ管理部２３０-1は、Ｉ／Ｏ要求に含まれているアクセス情報中の論理ディスク番号の示すＬＤＩＳＫ８０-1がレプリケーションマスタであるかを判定する（ステップＳ１０）。本実施形態のようにレプリケーションマスタである場合（ステップＳ１０がＹｅｓ）、キャッシュメモリ管理部２３０-1はレプリケーション管理部２６０-1にレプリケーション管理のためのＩ／Ｏ要求を送出する。このＩ／Ｏ要求は、通常ライト要求と同様に、論理ディスク番号、開始アドレス及びサイズから構成されるアクセス情報を含む。
【００５１】
レプリケーション管理部２６０-1は、キャッシュメモリ管理部２３０-1からＩ／Ｏ要求を受信すると、Ｉ／Ｏ管理リスト２６４-1のペンディングＩ／Ｏリスト２６４ｂ-1を参照する。そしてレプリケーション管理部２６０-1は、ペンディングＩ／Ｏリスト２６４ｂ-1にＩ／Ｏ要求があるかを判定する（ステップＳ１３）。
【００５２】
ペンディングＩ／Ｏリスト２６４ｂ-1にＩ／Ｏ要求がある場合（ステップＳ１３がＹｅｓ）は、正データ記憶装置１０-1及び副データ記憶装置１０-2の間でデータ更新の順序を保証するためには、今回キャッシュメモリ管理部２３０-1から受信したＩ／Ｏ要求（に対応する未確定ライト要求）を正データ記憶装置１０-1から副データ記憶装置１０-2に直ちに送信できないことを意味する。
【００５３】
そこで、ステップＳ１３の判定がＹｅｓの場合、レプリケーション管理部２６０-1は、キャッシュメモリ管理部２３０-1から受信したＩ／Ｏ要求をペンディングＩ／Ｏリスト２６４ｂ-1の最後尾に追加する（ステップＳ１４）。このステップＳ１４においてレプリケーション管理部２６０-1が、未確定ライト確定コマンドの処理を開始するのは後述するステップＳ１８から分岐された場合のみである。これは、ペンディングＩ／Ｏリスト２６４ｂ-1に最初に繋がれているＩ／Ｏ実行時に既に前記処理を開始しているからである。
【００５４】
次にレプリケーション管理部２６０-1は、ホスト装置１３-1からの通常ライト要求に対する応答として、ライト完了を示すステータス情報をホスト装置１３-1に通知し（ステップＳ１５）、確保したキャッシュブロックの開放を行う（ステップＳ１６）。具体的には、キャッシュブロック確保時にキャッシュディレクトリ２３２-1のキャッシュディレクトリエントリに含まれている状態フラグにセットしたキャッシュブロックが使用中であることを示すフラグをクリアする。そしてレプリケーション管理部２６０-1は、未確定ライト確定コマンドの実行完了が副データ記憶装置１０-2から通知されるのを待つ状態に入る（ステップＳ１７）。なお、未確定ライト確定コマンドの実行が成功した場合は、後述するステップＳ１８から処理を再開する。未確定ライト確定コマンドの実行が失敗した場合は、エラーとして完了する。この未確定ライト確定コマンドの処理については後述する。
【００５５】
一方、ステップＳ１３の判定がＮｏの場合、レプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されている送信済みデータ量情報と送信可能データ量情報とに基づき、現在の送信済みデータ量と送信可能データ量とを確認する。そしてレプリケーション管理部２６０-1は、送信済みデータ量に今回受信したデータ量（つまり副データ記憶装置１０-2に送信されるべきデータ量）を加えた値"送信済みデータ量＋受信データ量"が送信可能データ量を超えているかを判定する（ステップＳ１８）。
【００５６】
"送信済みデータ量＋受信データ量"が送信可能データ量を超えていると（ステップＳ１８がＹｅｓ）、今回受信されたデータを副データ記憶装置１０-2に送信できないことを意味する。そこで、ステップＳ１８の判定がＹｅｓの場合、レプリケーション管理部２６０-1は、ステップＳ１４を実行し、未確定ライト確定コマンドの処理を開始する。
【００５７】
これに対し、ステップＳ１８の判定がＮｏの場合、レプリケーション管理部２６０-1は、キャッシュメモリ管理部２３０-1から受信したＩ／Ｏ要求をバッファリングＩ／Ｏリスト２６４ｃ-1の最後尾に追加する（ステップＳ１９）。そしてレプリケーション管理部２６０-1は、ホスト装置１３-1からの通常ライト要求に対する応答として、ライト完了を示すステータス情報をホスト装置１３-1に通知し（ステップＳ２０）、確保したキャッシュブロックを開放する（ステップＳ２１）。その後、レプリケーション管理部２６０-1は、正データ記憶装置１０-1から副データ記憶装置１０-2へのライトデータ転送処理を待つ状態となる。
【００５８】
上述のライトデータ転送処理は、レプリケーション管理テーブル２６２-1に保持されているレプリケーション周期情報の示すレプリケーション周期（タイミング）が到来した場合に実行される。このレプリケーション周期について説明する。
【００５９】
レプリケーション管理部２６０-1は、最初の通常ライト要求の実行時、つまり、送信済みデータ量が"０"の状態で通常ライトが完了した際、タイマをレプリケーション管理テーブル２６２-1に保持されているレプリケーション周期情報の示すレプリケーション周期を表す時間にセットする。そしてレプリケーション管理部２６０-1は、このタイマがタイムアウトした場合に、ライトデータ転送処理を実行する。また、タイマはライトデータ転送処理が完了した際にはリセットされる。
【００６０】
レプリケーション管理部２６０-1は、上記タイマセットの条件を満たした場合には、このタイマをレプリケーション周期情報に基づいてセットし直す。これにより本実施形態では、レプリケーション周期情報の示すレプリケーション周期で未確定ライトコマンドによるライトデータ転送処理が実行される。なお、上述の未確定ライトコマンドの処理は、レプリケーション周期（タイミング）が到来した場合だけでなく、バッファリングＩ／ＯリストのＩ／Ｏ要求の量があらかじめ設定した閾値を超えた場合や、送信可能データ量に対して、確保されたバッファのデータ量があらかじめ設定した比率を超えた場合に行うようにすることも可能である。また、実行Ｉ／Ｏリストの要素が空になったことをトリガにして実行することも可能である。
【００６１】
図７、図８を用いて、レプリケーション周期が到来した際の正データ記憶装置１０-1の動作である周期処理について説明する。
【００６２】
まず、未確定ライト確定コマンドが実行中であるか否かを、図５に示すレプリケーション管理テーブル２６２-1のもつ確定フラグによって判定する（ステップＳ３１）。未確定ライト確定コマンドが実行中であれば（ステップＳ３１がＮｏ）、処理を行わず、次のレプリケーション周期が到来するまで待つ。未確定ライト確定コマンドが実行中で無い場合（ステップＳ３１がＹｅｓ）、実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求があるか否かの判定を行う（ステップＳ３２）。
【００６３】
実行Ｉ／Ｏリスト２６４ａ-iにＩ／Ｏ要求がある場合（ステップＳ３２がＮｏ）、ステップＳ３１がＮｏの場合と同様の処理を行う。実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求が無い場合（ステップＳ３２がＹｅｓ）、バッファリングＩ／Ｏリスト２６４ｃ-1にＩ／Ｏ要求があるか否かの判定を行う（ステップＳ３３）。
【００６４】
バッファリングＩ／Ｏリスト２６４ｃ-1にＩ／Ｏ要求が無い場合（ステップＳ３３がＮｏ）、ステップＳ３１、ステップＳ３２がＮｏの場合と同様の処理を行う。バッファリングＩ／Ｏリスト２６４ｃ-1にＩ／Ｏ要求がある場合（ステップＳ３３がＹｅｓ）、副データ記憶装置１０-2に対して同時に転送することが可能なライトデータの判定を行う。
【００６５】
まず、バッファリングＩ／Ｏリスト２６４ｃ-1に、同じ領域に対する複数のＩ／Ｏ要求が積まれているか否かの判定を行う（ステップＳ３４）。
【００６６】
バッファリングＩ／Ｏリスト２６４ｃ-1に同じ領域に対する複数のＩ／Ｏ要求が積まれている場合（ステップＳ３４がＮｏ）、バッファリングＩ／Ｏリスト２６４ｃ-1において最後にあるＩ／Ｏ要求のみを残し、他のバッファを開放してＩ／Ｏ要求を完了させる（ステップＳ３５）。バッファリングＩ／Ｏリストはキュー形式であり、先頭から順に繋いでいくため、順序が入れ替わることはない。
【００６７】
バッファリングＩ／Ｏリスト２６４ｃ-1に同じ領域に対する複数のＩ／Ｏ要求が積まれていない場合（ステップＳ３４がＹｅｓ）、バッファリングＩ／Ｏリスト２６４ｃ-1に領域が重複する複数のライト要求が存在するか否かの判定を行う（ステップＳ３６）。
【００６８】
バッファリングＩ／Ｏリスト２６４ｃ-1に領域が重複する複数のＩ／Ｏ要求がない場合（ステップＳ３６がＹｅｓ）、バッファリングＩ／Ｏリスト２６４ｃ-1のＩ／Ｏ要求の全てを実行Ｉ／Ｏリスト２６４ａ-1に移動する（ステップＳ３７）。バッファリングＩ／Ｏリスト２６４ｃ-1内に領域が重複するＩ／Ｏ要求が存在する場合（ステップＳ３６がＮｏ）、バッファリングＩ／Ｏリスト２６４ｃ-1の先頭から、最初に領域が重複するＩ／Ｏ要求の１つ前まで、つまり、領域の重複が発生するより前のＩ／Ｏ要求を、実行Ｉ／Ｏリスト２６４ａ-1に移動する（ステップＳ３８）。
【００６９】
その後、実行Ｉ／Ｏリスト２６４ａ-1のＩ／Ｏ要求をコミュニケーションポート管理部２７０-1が副データ記憶装置１０-2に未確定ライト要求する（ステップＳ３９）。ステップＳ３９において、副データ記憶装置１０-2に送信される未確定ライト要求は、副データ記憶装置１０-2のＩ／Ｏ管理部２２０-2がデコードし実行する。
【００７０】
すなわち、バッファリングＩ／Ｏリスト２６４ｃ-1内が有するＩ／Ｏ要求であるバッファリングＩ／Ｏ要求とは、外部の装置から要求されたＩ／Ｏ要求のうち、実行が可能なＩ／Ｏ要求を指す。実行Ｉ／Ｏ要求とは、バッファリングＩ／Ｏ要求のうち、領域が重複するＩ／Ｏ要求を除いたものを指す。
【００７１】
続いて、図６を用いて、正データ記憶装置１０-1から未確定ライトコマンドを受信した副データ記憶装置１０-2の処理について説明する。
【００７２】
図７のステップＳ３９において、レプリケーション管理部２６０-1により、バッファリングＩ／Ｏリスト２６４ｃ-1に追加されたＩ／Ｏ要求に対応する未確定ライトコマンドの発行がコミュニケーションポート管理部２７０-1に要求される。するとコミュニケーションポート管理部２７０-1は、未確定ライトコマンドを含むＣＤＢを副データ記憶装置１０-2に送信する。そして、レプリケーション管理部２６０-1は、未確定ライトコマンドに対する副データ記憶装置１０-2からの応答を待つ。
【００７３】
そして、ステップＳ３９で副データ記憶装置１０-2に送信されたＣＤＢは、未確定ライトコマンドを含む。この未確定ライトコマンドは、論理ディスク番号、開始アドレス及びサイズから構成されるアクセス情報を含む。論理ディスク番号は、正論理ディスク番号と対応付けてレプリケーション管理テーブル２６２-1に格納されている副論理ディスク番号で、副データ記憶装置１０-2の書き込み先のＬＤＩＳＫ８０-2を示す。
【００７４】
副データ記憶装置１０-2に送信されたＣＤＢは、制御装置２０-2（第２の制御装置）のホストＩ／Ｆ制御部２１０-2で受信され、Ｉ／Ｏ管理部２２０-2に渡される。Ｉ／Ｏ管理部２２０-2は、渡されたＣＤＢをデコードする（ステップＳ１）。ステップＳ１においてＩ／Ｏ管理部２２０-2は、ＣＤＢが未確定ライトコマンドを含む場合、キャッシュメモリ管理部２３０-2に対してライト処理のためのＩ／Ｏ要求として、未確定ライト要求を送出する。未確定ライト要求は、未確定ライト処理のためのＩ／Ｏ要求であり、未確定ライトコマンドに含まれているアクセス情報を継承する。
【００７５】
キャッシュメモリ管理部２３０-2は、Ｉ／Ｏ管理部２２０-2からライト処理のためのＩ／Ｏ要求（ここでは未確定ライト要求）を受信すると、このＩ／Ｏ要求に基づいて、キャッシュメモリ５１-2（第２のキャッシュメモリ）内で必要なキャッシュブロックを確保し（ステップＳ４）、Ｉ／Ｏ要求で指定されるライト処理に必要なライトデータをステップＳ４で確保したキャッシュブロックに受信する（ステップＳ６）。そして、キャッシュブロックが使用中であることを示すフラグをキャッシュディレクトリ２３２-1のキャッシュディレクトリエントリに含まれている状態フラグにセットする。なお、ここでは、ＣＤＢは副データ記憶装置１０-2に送信されているため、ステップＳ１の次にステップＳ４を実行する。
【００７６】
次にキャッシュメモリ管理部２３０-2は、受信したＩ／Ｏ要求が未確定ライト要求であるかを判定する（ステップＳ７）。本実施形態のように未確定ライト要求の場合（ステップＳ７がＹｅｓ）、受信したライトデータを、キャッシュメモリ５１-2内の確保されたキャッシュブロックにエントリする（ステップＳ９）。このステップＳ９においてキャッシュメモリ管理部２３０-2は、未確定ライト要求に含まれているアクセス情報の示すライトアクセス範囲を、確保されたキャッシュブロックに対応するキャッシュディレクトリ２３２-2のキャッシュディレクトリエントリに含まれている未確定ライトビットマップに反映する。即ちキャッシュメモリ管理部２３０-2は、確保されたキャッシュブロックに対応する未確定ライトビットマップのうち、未確定ライト要求で指定されたライトアクセス範囲に対応するビットを例えば"１"にセットする。
【００７７】
次にキャッシュメモリ管理部２３０-2は、Ｉ／Ｏ要求に含まれているアクセス情報中の論理ディスク番号の示すＬＤＩＳＫ８０-2がレプリケーションマスタであるかを判定する（ステップＳ１０）。ここではレプリケーションマスタでないため（ステップＳ１０がＮｏ）、キャッシュメモリ管理部２３０-2は、正データ記憶装置１０-1からの未確定ライト要求に対する応答として、未確定ライト完了を示すステータス情報を正データ記憶装置１０-1に通知し（ステップＳ１１）、確保したキャッシュブロックを開放する（ステップＳ１２）。
【００７８】
ここで、図８を用いて、未確定ライト完了を示すステータス情報を受信した際の正データ記憶装置１０-1の処理を説明する。
【００７９】
正データ記憶装置１０-1からの未確定ライト要求に対する応答として、ライト完了を示すステータス情報が、副データ記憶装置１０-2から正データ記憶装置１０-1に通知される（ステップＳ２３）。すると、レプリケーション管理部２６０-1は、未確定ライトに成功したか否かを、このステータス情報に基づいて判定する（ステップＳ２４）。
【００８０】
もし、未確定ライトに成功したならば（ステップＳ２４がＹｅｓ）、レプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されている送信済みデータ量情報を、現在の送信済みデータ量に今回受信されたデータ量（副データ記憶装置１０-2に送信されたデータ量）を加えた値を示すように更新する（ステップＳ２６）。次にレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1から、成功した未確定ライトに対応するＩ／Ｏ要求を削除し（ステップＳ２７）、確保したバッファの開放を行う（ステップＳ２８）。具体的には、バッファ確保時にキャッシュディレクトリ２３２-1のキャッシュディレクトリエントリに含まれている状態フラグにセットしたバッファ確保中であることを示すフラグをクリアする。これにより、正データ記憶装置１０-1におけるＩ／Ｏ要求の処理は完了する（ステップＳ２９）。
【００８１】
これに対し、未確定ライトに失敗したならば（ステップＳ２４がＮｏ）、レプリケーション管理部２６０-1は、レプリケーションの状態をＳＹＮＣ状態からＳＰＬＩＴ状態に遷移する（ステップＳ２５）。即ちレプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されているレプリケーションステート情報を、ＳＰＬＩＴ状態を示すように更新する。そしてレプリケーション管理部２６０-1はステップＳ３６に進む。このステップＳ３６においてレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1から、失敗した未確定ライトに対応するＩ／Ｏ要求を削除し（ステップＳ２７）、確保したバッファの開放を行う（ステップＳ２８）。これにより、正データ記憶装置１０-1におけるＩ／Ｏ要求の処理は完了する（ステップＳ２９）。
【００８２】
次に、ステップＳ１４に続いて実行される正データ記憶装置１０-1における未確定ライト確定コマンドの処理について、図９のフローチャートを参照して説明する。
【００８３】
まず正データ記憶装置１０-1のレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1を参照し、この実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求があるかを判定する（ステップＳ６１）。もし、実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求があるならば（ステップＳ６１がＹｅｓ）、レプリケーション管理部２６０-1は、そのＩ／Ｏ要求の実行完了を待つ（ステップ６２）。
【００８４】
これに対し、実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求がないか、或いは実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求がなくなったならば（ステップＳ６１がＮｏ）、レプリケーション管理部２６０-1は、未確定ライト確定コマンドの発行をコミュニケーションポート管理部２７０-1に要求する（ステップＳ６３）。するとコミュニケーションポート管理部２７０-1は、未確定ライト確定コマンドを含むＣＤＢを副データ記憶装置１０-2に送信し、未確定ライト確定コマンドを含むＣＤＢを副データ記憶装置１０-2に送信したことを示すフラグをレプリケーション管理テーブル２６２-1の確定フラグにセットする。未確定ライト確定コマンドは、正データ記憶装置１０-1からの未確定ライト要求に応じてキャッシュメモリ５１-2にライトされた未確定データをライトバックデータとして確定させることを指定する。未確定ライト確定コマンドは、確定されたデータが書き出されるべきＬＤＩＳＫ８０-2を示す論理ディスク番号を含む。このように本実施形態では、実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求がある場合、全てのＩ／Ｏ要求の実行完了を待った後に、未確定ライト確定コマンドを含むＣＤＢが正データ記憶装置１０-1から副データ記憶装置１０-2に送信される。
【００８５】
未確定ライト確定コマンドを含むＣＤＢが副データ記憶装置１０-2に送信されると、レプリケーション管理部２６０-1は、この未確定ライト確定コマンドに対する副データ記憶装置１０-2からの応答を待つ（図６ステップＳ１７）。レプリケーション管理部２６０-1は、未確定ライト確定コマンドに対する副データ記憶装置１０-2からのステータス情報を受信すると、その情報に基づき、未確定ライト確定に成功したかを判定する（ステップＳ６４）。
【００８６】
もし、未確定ライト確定に成功したならば（ステップＳ６４がＹｅｓ）、レプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されている送信済みデータ量情報を"０"に初期化する。そしてレプリケーション管理部２６０-1は、ペンディングＩ／Ｏリスト２６４ｂ-1に繋がれているＩ／Ｏ要求を先頭から順に外して、図６のフローチャートにおけるステップＳ１８から処理を再開する（ステップＳ６５）。但し、ペンディングＩ／Ｏリスト２６４ｂ-1から外されたＩ／Ｏ要求に関する、ホスト装置１３-1へのステータス情報の転送（図６ステップＳ１１またはＳ２０）は、このＩ／Ｏ要求をペンディングＩ／Ｏリスト２６４ｂ-1に追加した際に既に行われているため、今回は実行されない。
【００８７】
これに対し、未確定ライト確定に失敗したならば（ステップＳ６４がＮｏ）、レプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されているレプリケーションステート情報を、ＳＰＬＩＴ状態を示すように更新する（ステップＳ６６）。つまりレプリケーション管理部２６０-1は、レプリケーションの状態を、ＳＹＮＣ状態からＳＰＬＩＴ状態に遷移させる。そしてレプリケーション管理部２６０-1は、ペンディングＩ／Ｏリスト２６４ｂ-1の待ち状態にあるＩ／Ｏ要求をエラーとして完了させる（ステップＳ６７）。この際、副データ記憶装置１０-2へのデータ転送は行われない。
【００８８】
上述の未確定ライト確定コマンドの処理は、図６のフローチャートのステップＳ１３の判定条件が成立した場合だけでなく、レプリケーション管理テーブル２６２-1に保持されている確定周期情報の示す確定周期（タイミング）が到来した場合にも実行される。この確定周期について説明する。
【００８９】
レプリケーション管理部２６０-1は、最初の未確定ライト要求の実行時、つまり、送信済みデータ量が"０"の状態で未確定ライトが完了した際に、タイマをレプリケーション管理テーブル２６２-1に保持されている確定周期情報の示す確定周期を表す時間にセットする。そしてレプリケーション管理部２６０-1は、このタイマがタイムアウトした場合にも、図６のフローチャートのステップＳ１３の判定条件が成立した場合と同様に、未確定ライト確定コマンドの処理を実行する。また、タイマはステップＳ１４によって開始された未確定ライト確定コマンドが完了した際にはリセットされる。
【００９０】
レプリケーション管理部２６０-1は、上記タイマセットの条件を満たした場合には、このタイマを確定周期情報に基づいてセットし直す。これにより本実施形態では、ステップＳ１３の判定条件が成立した場合だけでなく、確定周期情報の示す確定周期でも未確定ライト確定コマンドの処理が実行される。
【００９１】
次に、副データ記憶装置１０-2側での未確定ライト確定コマンドの処理について図１０を用いて説明する。
【００９２】
今、正データ記憶装置１０-1から副データ記憶装置１０-2に送信された未確定ライト
確定コマンドを含むＣＤＢが、ホストＩ／Ｆ制御部２１０-2で受信され、Ｉ／Ｏ管理部２２０-2に渡されたものとする。Ｉ／Ｏ管理部２２０-2は、ＣＤＢが未確定ライト確定コマンドを含む場合、キャッシュメモリ管理部２３０-2に対してライト処理のためのＩ／Ｏ要求として、未確定ライト確定要求を送出する（ステップＳ５０）。未確定ライト確定要求は、対応する副論理ディスク番号を含む。
【００９３】
キャッシュメモリ管理部２３０-2は、未確定ライト確定要求に含まれている副論理ディスク番号の示すＬＤＩＳＫ８０-2に対応するキャッシュブロックのエントリを全てサーチする（ステップＳ５１）。次にキャッシュメモリ管理部２３０-2は、該当するキャッシュブロックに対応するキャッシュディレクトリ２３２-2内の該当するキャッシュディレクトリエントリに含まれている未確定ビットマップを、ライトバックマップにコピーする（ステップＳ５２）。すなわち、キャッシュメモリ管理部２３０-2は、未確定ビットマップ内で"１"にセットされているビットの状態、つまり未確定ライトデータの範囲を示すビットの状態をライトバックマップにコピー（反映）する。しかる後、キャッシュメモリ管理部２３０-2は未確定ビットマップを初期化する（ステップＳ５３）。即ちキャッシュメモリ管理部２３０-2は、ライトバックマップにコピーされた未確定ビットマップ内のビット（ここでは未確定ビットマップの全ビット）を"０"にリセットする。
【００９４】
キャッシュメモリ管理部２３０-2、ＬＤＩＳＫ８０-2に対応する全てのキャッシュブはロックのエントリについて、上述のコピー処理を実行する。そしてキャッシュメモリ管理部２３０-2は、正データ記憶装置１０-1からの未確定ライト確定コマンドに対する応答として、完了を示すステータス情報を正データ記憶装置１０-1に通知する（ステップＳ５４）。
【００９５】
このような未確定ライト確定コマンドの処理による完了時点では、キャッシュメモリ５１-2には、未確定ライトデータが存在しないことになる。
【００９６】
次に、本実施形態において、ステップＳ３もしくはＳ４における、キャッシュブロックやバッファの確保からＩ／Ｏ要求の処理の完了までは、該当するライトデータをエントリするのに用いられているキャッシュブロックおよびバッファが、キャッシュディレクトリエントリ内の状態フラグに基づいて排他される。つまり使用中のキャッシュブロックおよびバッファは他のＩ／Ｏ要求によって使用されない状態となる。  以下、キャッシュメモリ管理部２３０-iによって実行されるキャッシュブロック確保時の処理（ステップＳ３もしくは４）の詳細について、図１１のフローチャートを参照して説明する。
【００９７】
まず、キャッシュメモリ管理部２３０-iは、Ｉ／Ｏ管理部２２０-iからライト処理のためのＩ／Ｏ要求（通常ライト要求または未確定ライト要求）を受信すると、キャッシュブロック確保のために、キャッシュディレクトリ２３２-iを参照し、このＩ／Ｏ要求に含まれているアクセス情報によって示されるＬＤＩＳＫ８０-i内のライトアクセス範囲に対応するキャッシュブロックのエントリをサーチする（ステップＳ４１）。そしてキャッシュメモリ管理部２３０-iは、キャッシュブロックエントリのサーチの結果、該当するキャッシュブロックのエントリが見つけられたかを判定する（ステップＳ４２）。つまりキャッシュメモリ管理部２３０-iは、該当するキャッシュブロックが既に確保されているかを判定する。
【００９８】
もし、該当するキャッシュブロックのエントリが見つけられたならば（ステップＳ４２がＹｅｓ）、キャッシュメモリ管理部２３０-iは、このキャッシュブロックのエントリが他のＩ／Ｏ要求のための処理で現在使用されているかを判定する（ステップＳ４４）。このステップＳ４４の判定は、該当するキャッシュブロックに対応するキャッシュディレクトリ２３２-i内のキャッシュディレクトリエントリ（以下、該当するキャッシュディレクトリエントリと称する）に含まれている状態フラグに基づいて行われる。もし、該当するキャッシュブロックが使用中でないならば（ステップＳ４４がＮｏ）、キャッシュメモリ管理部２３０-iは、Ｉ／Ｏ要求が通常ライト要求であるかを判定する（ステップＳ４５）。
【００９９】
キャッシュメモリ管理部２３０-iが制御装置２０-2に含まれているキャッシュメモリ管理部２３０-2であり、Ｉ／Ｏ要求が正データ記憶装置１０-1から送られた未確定ライト要求である場合、ステップＳ４５の判定はＮｏとなる。この場合、キャッシュメモリ管理部２３０-2は、該当するキャッシュディレクトリエントリに含まれているライトバックビットマップの少なくとも一部のビットがセットされているかを判定する（ステップＳ４６）。この判定により、該当するキャッシュブロックにライトバックデータが含まれているかが判定される。
【０１００】
ステップＳ４６の判定がＹｅｓのとき、キャッシュメモリ管理部２３０-2は、他のＩ／Ｏ要求で使用されていない該当するキャッシュブロック中のライトバックデータを、該当するキャッシュディレクトリエントリに含まれている論理ディスク番号及び論理アドレスで指定されるＬＤＩＳＫ８０-2内のブロック領域に書き出すためのＩ／Ｏ要求を、ＲＡＩＤ制御部２４０-2に送出する（ステップＳ４７）。キャッシュメモリ管理部２３０-2は、このＩ／Ｏ要求に対するＲＡＩＤ制御部２４０-2から書き出しの完了が通知されるのを待つ（ステップＳ４８）。この段階では、該当するキャッシュブロックに新たに書き込まれるべきライトデータは受信されていない。
【０１０１】
このように、未確定ライト要求の処理時（ステップＳ４５がＮｏ）、キャッシュブロックサーチ（ステップＳ４１）の結果、該当するキャッシュブロックのエントリがあり（ステップＳ４２がＹｅｓ）、且つ、該当するキャッシュディレクトリエントリ内のライトバックビットマップの少なくとも一部のビットがセットされている場合（ステップＳ４６がＹｅｓ）、キャッシュメモリ管理部２３０-2は該当するキャッシュブロック中のライトバックデータの書き出しをＲＡＩＤ制御部２４０-2に要求し、その書き出しの完了を待つ。これにより、該当するキャッシュディレクトリエントリに含まれているライトバックビットマップ及び未確定ライトビットマップのビットがいずれもセットされている状態が発生するのを防止できる。つまり、同一キャッシュブロック内のデータが、ライトバックデータであって且つ未確定ライトデータであると、ライトバックビットマップ及び未確定ライトビットマップによって示されるのを防止できる。
【０１０２】
このような、キャッシュメモリ管理部２３０-2の制御により、キャッシュメモリ５１-2上のライトバックデータ、つまり正データ記憶装置１０-1からの未確定ライト確定コマンドの処理により確定されているキャッシュメモリ５１-2上のデータは、未確定データで上書きされることなく、必ずＬＤＩＳＫ８０-2に書き出される。
【０１０３】
さて、キャッシュメモリ管理部２３０-iは書き出しの完了の待ち状態で、ＲＡＩＤ制御部２４０-iから書き出しの完了が通知されると（ステップＳ４９）、今回Ｉ／Ｏ管理部２２０-iから受信したＩ／Ｏ要求で指定されるライト処理に必要なライトデータの受信をＩ／Ｏ管理部２２０-iに要求する（ステップＳ５０）。これによりキャッシュメモリ管理部２３０-iは、ライトデータを受信して、キャッシュブロック確保時の処理を終了する。
【０１０４】
一方、該当するキャッシュブロックのエントリが見つけられなかった場合（ステップＳ４２がＮｏ）、キャッシュメモリ管理部２３０-iは新規にキャッシュブロックを確保し（ステップＳ４３）、しかる後にステップＳ５０を実行する。また、該当するキャッシュブロックのエントリが他のＩ／Ｏ要求のための処理で使用中であるならば（ステップＳ４４がＹｅｓ）、キャッシュメモリ管理部２３０-iはステップＳ４８に進んで、そのＩ／Ｏ要求の完了を待つ。以降の動作は、ステップＳ４７からステップＳ４８に進んだ場合と同様である。
【０１０５】
また、該当するキャッシュディレクトリエントリに含まれているライトバックビットマップの全ビットがセットされていないならば（ステップＳ４６がＮｏ）、キャッシュメモリ管理部２３０-iはステップＳ５０に進んで、今回Ｉ／Ｏ管理部２２０-iから受信したＩ／Ｏ要求で指定されるライト処理に必要なライトデータの受信をＩ／Ｏ管理部２２０-iに要求する。
【０１０６】
一方、キャッシュメモリ管理部２３０-iが制御装置２０-1（第１の制御装置）に含まれているキャッシュメモリ管理部２３０-1であり、今回Ｉ／Ｏ管理部２２０-1から受信したＩ／Ｏ要求がホスト装置１３-1から送られた通常ライト要求である場合（ステップＳ４５がＹｅｓ）、キャッシュメモリ管理部２３０-1はステップＳ５０に進んで、このＩ／Ｏ要求で指定されるライト処理に必要なライトデータの受信をＩ／Ｏ管理部２２０-1に要求する。
【０１０７】
なお、同一キャッシュブロック内でもライトバックビットマップ内でセットされているビットの範囲と、未確定ライト要求の示すライトアクセス範囲とが重複していない場合、必ずしも、ステップＳ４７の実行によって該当するキャッシュブロック中のライトバックデータの書き出しを要求する必要はない。そこで、ステップ４６に代えて、ライトバックビットマップ内でセットされているビットの範囲と、未確定ライト要求の示すライトアクセス範囲とが重複するかを判定する新たなステップを適用しても構わない。そして、この新たなステップの判定がＹｅｓの場合に、キャッシュメモリ管理部２３０-iが該当するキャッシュブロックに含まれている重複部分のライトバックデータの書き出しをＲＡＩＤ制御部２４０-iに要求し（ステップＳ４７）、その書き出しの完了を待つ（ステップＳ４８）ようにしてもよい。これにより、キャッシュブロックのデータの書き出しが無用に要求されるのを防止しつつ、キャッシュブロック内でライトバックビットマップのビットと未確定ライトビットマップのビットとがいずれもセットされている領域が存在するのを防止できる。
【０１０８】
次に、レプリケーションの状態がＳＰＬＩＴ状態のときに、ホスト装置１３-1から正データ記憶装置１０-1に通常ライトコマンドを含むＣＤＢが送信された場合の正データ記憶装置１０-1の動作について簡単に説明する。この場合、正データ記憶装置１０-1はレプリケーションマスタではない単なるデータ記憶装置として機能する。このため正データ記憶装置１０-1では、図６及び８のフローチャートにおいて、自身がレプリケーションマスタでない場合の通常ライト要求処理（ステップＳ１、Ｓ４、６、Ｓ７、Ｓ８、Ｓ１０〜Ｓ１２、Ｓ２９）が実行される。
【０１０９】
次に、レプリケーションの状態がＣＯＰＹ状態のときの正データ記憶装置１０-1の動作について簡単に説明する。この場合、レプリケーション管理部２６０-1は、図６及び８のフローチャートにおけるレプリケーション管理部２６０-iの処理（ステップＳ１３〜Ｓ２０）に代えて、単に、ライト完了を示すステータス情報をホスト装置１３-1に通知する処理（ステップＳ２０に相当する処理）を行う。ここでは、ＳＹＮＣ状態と異なり、Ｉ／Ｏ管理リスト２６４-1中のバッファリングＩ／Ｏリスト２６４ｃ-1及びペンディングＩ／Ｏリスト２６４ｂ-1の処理が行われない。そして、レプリケーション管理部２６０-1はコミュニケーションポート管理部２７０-1に要求することにより、コミュニケーションポート管理部２７０-1の制御の下で、通常ライトコマンドに対応する確定ライトコマンドを副データ記憶装置１０-2に送信する。
【０１１０】
ここで、データ記憶システム１００において、大規模災害等により正サイト１００-1がダウンし、正データ記憶装置１０-1がアクセス不能になったものとする。この場合、副データ記憶装置１０-2は、ホスト装置１３-2からの指示により、ＳＰＬＩＴ状態に遷移する。但し、正データ記憶装置１０-1はアクセス不能のため、副データ記憶装置１０-2は、通常のＳＰＬＩＴ状態ではなく、エラーＳＰＬＩＴ状態に遷移する。本実施形態において、エラーＳＰＬＩＴ状態に遷移する処理の対象となる副論理ディスクは、ＬＤＩＳＫ８０-1に対応する、ＬＤＩＳＫ８０-2である。
【０１１１】
エラーＳＰＬＩＴ状態に遷移する処理において、キャッシュメモリ管理部２３０-2は、その時点でキャッシュメモリ５１-2に格納されている未確定ライトデータを破棄する。これにより、副データ記憶装置１０-2の状態を、最後に未確定データが確定された時点までロールバックすることができる。つまり、ＬＤＩＳＫ８０-2を、最後に正データ記憶装置１０-1からの未確定ライト確定コマンドを処理した時点の内容に戻すことができる。
【０１１２】
未確定ライトデータは次のようにして破棄される。まずキャッシュメモリ管理部２３０-2は、エラーＳＰＬＩＴ状態に遷移する処理の対象となる、ＬＤＩＳＫ８０-2に対応するキャッシュブロックのエントリを全てサーチする。次にキャッシュメモリ管理部２３０-2は、該当するキャッシュブロックに対応するキャッシュディレクトリ２３２-2内の該当するキャッシュディレクトリエントリに含まれている未確定ビットマップ内のビットを全てリセットする。これにより、エラーＳＰＬＩＴ状態に遷移する処理の開始時点でキャッシュメモリ５１-2に格納されている未確定ライトデータが破棄される。
【０１１３】
なお、ＬＤＩＳＫ８０-1とＬＤＩＳＫ８０-2の差分、即ちレプリケーションペアの差分を差分テーブル等により管理する場合、未確定ライトデータが破棄された領域に相当する差分をセットするとよい。
【０１１４】
上述の本実施形態におけるデータ記憶システムは、レプリケーションペアが１つである場合を説明しているが、データ記憶システムが複数のレプリケーションペアを有していても構わない。このようなデータ記憶システムにおいて、データの整合性が要求される複数のレプリケーションペア毎にグループ化して、そのグループ（コンシステンシグループ）毎に、未確定ライト処理、未確定ライト確定処理が行われる構成とすることも可能である。この場合、正データ記憶装置１０-1から副データ記憶装置１０-2に送信される未確定ライト確定コマンドに、副論理ディスク番号に代えてコンシステンシグループ番号を持たせればよい。
【０１１５】
本実施形態では、ライト要求の順序を保証するために、この要求が要求順に繋がれるＩ／Ｏ管理リスト２６４-iのデータが用いられる。
【０１１６】
本実施形態では非同期レプリケーションが適用される。即ち本実施形態では、ホスト装置１３-1から正データ記憶装置１０-1への通常ライト要求に対する正データ記憶装置１０-1からホスト装置１３-1へのステータス情報の転送は、正データ記憶装置１０-1から副データ記憶装置１０-2に対するデータ転送の時間に影響されない。
【０１１７】
そこで本実施形態では、正データ記憶装置１０-1から副データ記憶装置１０-2に対する未確定データ確定コマンドの発行の前後で、正データ記憶装置１０-1がホスト装置１３-1から受信したライトデータの順序を保証している。このことは、先に述べたような、既に確定しているキャッシュメモリ５１-2上のライトデータが未確定データで上書きされるのを防止する仕組みから明らかである。また、ある未確定データ確定コマンドから次の未確定データ確定コマンドまでの期間内で、ＬＤＩＳＫ８０-1の同一領域に対する更新が行われた場合の順序は、前記したように正データ記憶装置１０-1のキャッシュブロックを副データ記憶装置１０-2に対する未確定ライト完了後まで排他することで保証している（時間的に後から書き込まれたデータがそれ以前に書き込まれたデータで上書きされることがない）。
【０１１８】
また本実施形態では、確定コマンド実行中に同一領域に連続でライト要求が行われた場合での非同期性も実現可能である。なお、同一領域に連続でライト要求が行われた場合、副サイトにライトデータを転送する際に、最後に要求されたライトデータのみを転送することによって、ホスト装置へのレスポンスを低減することが可能である。
【０１１９】
また本実施形態では、最大ロールバック時間を、確定周期情報の示す確定周期によって保証することができる。この最大ロールバック時間とは、正サイト１００-1のダウン時に、ＬＤＩＳＫ８０-2の内容を、その時点からどれくらい前のＬＤＩＳＫ８０-1の内容に巻き戻すことができるかを指す。
【０１２０】
また本実施形態によれば、正サイト１００-1及び副サイト１００-2の間に専用の中継転送装置を必要とせず、また正サイト１００-1及び副サイト１００-2にキャッシュメモリ５１-1、５１-2とは別に専用のバッファを必要としない、比較的安価な非同期レプリケーションを実現できる。また、シーケンス番号を振る等のプロトコルオーバヘッドを減らすこともできる。
【０１２１】
なお、上記本実施形態はそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、本実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。また、上記本実施形態では、データ転送用バッファをキャッシュメモリ５１-iに確保しているが、ＬＤＩＳＫ、ＨＤＤ、ＳＳＤなどのキャッシュメモリに限らない記憶媒体に確保しても良い。その場合は、バッファを確保しているかを示すための状態フラグをキャッシュメモリ管理部ではなく、バッファを確保した先の記憶媒体の管理部が有することとする。
【符号の説明】
【０１２２】
１００-1…正サイト、１００-2…副サイト、１０-1…正データ記憶装置（第１のデータ記憶装置）、１０-2…副データ記憶装置（第２のデータ記憶装置）、１３-1、１３-2…ホスト装置、２０-i…制御装置、８０-i…論理ディスク（ＬＤＩＳＫ、記憶媒体）、１１-1、１１-2…データ通信路、２１-i…ＣＰＵ、３１-i…プログラムメモリ、５１-i…キャッシュメモリ、２３０-i…キャッシュメモリ管理部、２３１-i…キャッシュディレクトリ記憶部、２３２-i…キャッシュディレクトリ、２６０-i…レプリケーション管理部、２６１-i…レプリケーション管理データ記憶部、２６２-i…レプリケーション管理テーブル、２６３-i…Ｉ／Ｏ管理リスト記憶部、２６４-i、…Ｉ／Ｏ管理リスト、２６４ａ-i…実行Ｉ／Ｏリスト、２６４ｂ-i…ペンディングＩ／Ｏリスト、２６４ｃ-i…バッファリングＩ／Ｏリスト 
【図１】
2012022645.tif 000003
【図２】
2012022645.tif 000004
【図３】
2012022645.tif 000005
【図４】
2012022645.tif 000006
【図５】
2012022645.tif 000007
【図６】
2012022645.tif 000008
【図７】
2012022645.tif 000009
【図８】
2012022645.tif 000010
【図９】
2012022645.tif 000011
【図１０】
2012022645.tif 000012
【図１１】
2012022645.tif 000013