(57)【要約】【課題】正データ記憶装置の判断によりデータ更新の確実な順序保証を可能とする。【解決手段】正データ記憶装置１１-1のキャッシュメモリ管理部は、正データ記憶装置１１-1の第１の記憶媒体へのデータの書き込みがホスト装置１３-1から指定された場合、指定されたデータを第１の記憶媒体に書き出されるべきライトバックデータとして正データ記憶装置１１-1の第１のキャッシュメモリに書き込む。正データ記憶装置１１-1のレプリケーション管理部は、指定されたデータを未確定ライトデータとして副データ記憶装置１１-2の第２のキャッシュメモリに書き込むための未確定ライトを副データ記憶装置１１-2に要求し、未確定ライトデータが予め定められた量を超える場合には、第２のキャッシュメモリに未確定ライトデータとして既に書き込まれているデータをライトバックデータに確定するための未確定ライト確定を副データ記憶装置１１-2に要求する。【選択図】      図１
2010170485.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するための第１の記憶媒体と、前記第１の記憶媒体へのアクセスを制御する第１の制御装置とを有する第１のデータ記憶装置と、
データを記憶するための第２の記憶媒体と、前記第２の記憶媒体へのアクセスを制御する第２の制御装置とを有し、前記第１の記憶装置とデータ通信路を介して接続される第２のデータ記憶装置とを具備し、
前記第１の制御装置は、
前記第１の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第１のキャッシュメモリと、
前記第１のキャッシュメモリに対するアクセスを管理する第１のキャッシュメモリ管理手段と、
前記第１及び第２の記憶媒体を、前記第１の記憶媒体に記憶されているデータの複製が前記第２の記憶媒体に保存されるミラーとして運用するための特定のレプリケーション状態を含むレプリケーション管理を行うレプリケーション管理手段とを含み、
前記第２の制御装置は、前記第２の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第２のキャッシュメモリを含み、
前記キャッシュメモリ管理手段は、前記特定のレプリケーション状態において、外部の装置から前記第１の記憶媒体へのデータの書き込みが指定された場合、前記指定されたデータを前記第１の記憶媒体に書き出されるべきライトバックデータとして前記第１のキャッシュメモリに書き込み、
前記レプリケーション管理手段は、前記指定されたデータを、前記第２の記憶媒体に書き出すことが禁止される未確定ライトデータとして前記第２のキャッシュメモリに書き込むための未確定ライトを前記第２のデータ記憶装置に要求し、前記未確定ライトを要求することにより前記未確定ライトデータが設定された量を超える場合には、前記第２のキャッシュメモリに前記未確定ライトデータとして既に書き込まれているデータを前記第２の記憶媒体に書き出されるべきライトバックデータに確定するための未確定ライト確定を前記第２のデータ記憶装置に要求する
ことを特徴とするデータ記憶システム。
【請求項２】
前記レプリケーション管理手段は、予め定められたタイミングが到来した場合にも、前記未確定ライト確定を前記第２のデータ記憶装置に要求することを特徴とする請求項１記載のデータ記憶システム。
【請求項３】
データを記憶するための第１の記憶媒体と、前記第１の記憶媒体へのアクセスを制御する第１の制御装置とを有する第１のデータ記憶装置と、
データを記憶するための第２の記憶媒体と、前記第２の記憶媒体へのアクセスを制御する第２の制御装置とを有し、前記第１の記憶装置とデータ通信路を介して接続される第２のデータ記憶装置とを具備し、
前記第１の制御装置は、
前記第１の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第１のキャッシュメモリと、
前記第１のキャッシュメモリに対するアクセスを管理する第１のキャッシュメモリ管理手段と、
前記第１及び第２の記憶媒体を、前記第１の記憶媒体に記憶されているデータの複製が前記第２の記憶媒体に保存されるミラーとして運用するための特定のレプリケーション状態を含むレプリケーション管理を行うレプリケーション管理手段とを含み、
前記第２の制御装置は、前記第２の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第２のキャッシュメモリを含み、
前記キャッシュメモリ管理手段は、前記特定のレプリケーション状態において、外部の装置から前記第１の記憶媒体へのデータの書き込みが指定された場合、前記指定されたデータを前記第１の記憶媒体に書き出されるべきライトバックデータとして前記第１のキャッシュメモリに書き込み、
前記レプリケーション管理手段は、前記指定されたデータを、前記第２の記憶媒体に書き出すことが禁止される未確定ライトデータとして前記第２のキャッシュメモリに書き込むための未確定ライトを前記第２のデータ記憶装置に要求し、前記第１の記憶媒体へのデータの書き込みが指定された順に、この指定されたデータを前記未確定ライトデータとして前記第２のキャッシュメモリに書き込むための前記未確定ライトの実行が完了されるのを待って、前記第２のキャッシュメモリに前記未確定ライトデータとして書き込まれているデータを前記第２の記憶媒体に書き出されるべきライトバックデータに確定するための未確定ライト確定を前記第２のデータ記憶装置に要求する
ことを特徴とするデータ記憶システム。
【請求項４】
前記第２の制御装置は、
前記第２のキャッシュメモリに対するアクセスを管理する第２のキャッシュメモリ管理手段と、
前記第２のキャッシュメモリに記憶されたデータのうちの前記ライトバックデータの範囲を示す第１の変数と、前記第２のキャッシュメモリに記憶されたデータのうちの前記未確定ライトデータの範囲を示す第２の変数とを含む、前記第２のキャッシュメモリに記憶されたデータを管理するためキャッシュディレクトリデータを記憶する記憶手段とを更に含み、
前記第２のキャッシュメモリ管理手段は、前記未確定ライトの要求に応じて前記第２の変数を更新し、前記未確定ライト確定の要求に応じて前記第２の変数の示す範囲を前記第１の変数にコピーし、前記第２の変数の前記コピーされた範囲を示す部分を初期化する
ことを特徴とする請求項１乃至３のいずれかに記載のデータ記憶システム。
【請求項５】
データを記憶するための第１の記憶媒体と、前記第１の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第１のキャッシュメモリを含み、前記第１の記憶媒体へのアクセスを制御する第１の制御装置とを有する第１のデータ記憶装置と、データを記憶するための第２の記憶媒体と、前記第２の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第２のキャッシュメモリを含み、前記第２の記憶媒体へのアクセスを制御する第２の制御装置とを有する第２のデータ記憶装置とが、データ通信路を介して接続されるデータ記憶システムに適用される非同期レプリケーション方法において、
前記第１及び第２の記憶媒体を、前記第１の記憶媒体に記憶されているデータの複製が前記第２の記憶媒体に保存されるミラーとして運用するための特定のレプリケーション状態において、外部の装置から前記第１のデータ記憶装置に対して前記第１の記憶媒体へのデータの書き込みが指定された場合、前記第１の制御装置が、前記指定されたデータを前記第１の記憶媒体に書き出されるべきライトバックデータとして前記第１のキャッシュメモリに書き込むステップと、
前記指定されたデータを、前記第２の記憶媒体に書き出すことが禁止される未確定ライトデータとして前記第２のキャッシュメモリに書き込むための未確定ライトを、前記第１の制御装置が前記第２のデータ記憶装置に要求したならば、前記未確定ライトデータが予め定められた量を超えるかを、前記第１の制御装置が判定するステップと、
前記未確定ライトデータが前記予め定められた量を超えないと判定された場合、前記第１の制御装置が前記未確定ライトを前記第２のデータ記憶装置に要求するステップと、
前記未確定ライトデータが前記予め定められた量を超えると判定された場合、前記第２のキャッシュメモリに前記未確定ライトデータとして既に書き込まれているデータを前記第２の記憶媒体に書き出されるべきライトバックデータに確定するための未確定ライト確定を、前記第１の制御装置が前記第２のデータ記憶装置に要求するステップと
を具備することを特徴とする非同期レプリケーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正データ記憶装置に記憶されているデータを副データ記憶装置に複製するデータ記憶システム及び非同期レプリケーション方法に関する。
【背景技術】
【０００２】
従来から、正サイト（プライマリサイト）に配置された正データ記憶装置（一次データ記憶装置）と、正サイトから遠隔の地に存在する副サイト（セカンダリサイト）に配置された副データ記憶装置（二次データ記憶装置）とから構成されるデータ記憶システムが知られている。この種のデータ記憶システムには、高信頼性化のために、災害などによる正サイトの破壊時に、副サイトにて事業を継続する要求がある。
【０００３】
このため、副データ記憶装置には、正データ記憶装置に記憶されているデータの複製が保存される。この複製の作成では、副データ記憶装置でのデータ更新を、正データ記憶装置でのデータ更新と同様の順序で行う必要がある。つまり、データ記憶システムには、正データ記憶装置及び副データ記憶装置間で、データ更新の順序を保証するための順序保証機能が要求される。またデータ記憶システムには、正サイトと副サイトとの距離に依存しないディスク性能を保証する機能も要求される。
【０００４】
そこで、データ記憶システムは、高信頼性化に必要な上述の機能要件を満たすために、例えば特許文献１及び２に記載されているような、正サイトにてデータ処理を完了しつつ副サイトへデータの転送を行う非同期レプリケーション機能を備えているのが一般的である。この非同期レプリケーション機能を実現するために、特許文献１に記載の従来技術では正データ記憶装置及び副データ記憶装置に、キャッシュメモリとは別に専用のバッファが設けられ、特許文献２に記載の従来技術では正サイト及び副サイト間に専用の中継転送装置が設けられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１６７６８４号公報
【特許文献２】特開２００６−０１１８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように、特許文献１に記載された従来技術では、正データ記憶装置及び副データ記憶装置にキャッシュメモリとは別に専用のバッファを必要とする。また、特許文献２に記載された従来技術では、正サイト及び副サイト間に専用の中継転送装置を必要とする。また、これらの従来技術では、非同期レプリケーションのために多くの通信を必要とする。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、正データ記憶装置の判断によりデータ更新の確実な順序保証を行うことができ、中継転送装置や専用バッファを必要とせず、正データ記憶装置から副データ記憶装置への通信量を低減できるデータ記憶システム及び非同期レプリケーション方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点によれば、データを記憶するための第１の記憶媒体と、前記第１の記憶媒体へのアクセスを制御する第１の制御装置とを有する第１のデータ記憶装置と、データを記憶するための第２の記憶媒体と、前記第２の記憶媒体へのアクセスを制御する第２の制御装置とを有し、前記第１の記憶装置とデータ通信路を介して接続される第２のデータ記憶装置とを具備するデータ記憶システムが提供される。このデータ記憶システムにおいて、前記第１の制御装置は、前記第１の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第１のキャッシュメモリと、前記第１のキャッシュメモリに対するアクセスを管理するキャッシュメモリ管理手段と、前記第１及び第２の記憶媒体を、前記第１の記憶媒体に記憶されているデータの複製が前記第２の記憶媒体に保存されるミラーとして運用するための特定のレプリケーション状態を含むレプリケーション管理を行うレプリケーション管理手段とを含み、前記第２の制御装置は、前記第２の記憶媒体に対して読み出しまたは書き込みされるデータを記憶する第２のキャッシュメモリを含み、前記キャッシュメモリ管理手段は、前記特定のレプリケーション状態において、外部の装置から前記第１の記憶媒体へのデータの書き込みが指定された場合、指定されたデータを前記第１の記憶媒体に書き出されるべきライトバックデータとして前記第１のキャッシュメモリに書き込み、前記レプリケーション管理手段は、前記指定されたデータを、前記第２の記憶媒体に書き出すことが禁止される未確定ライトデータとして前記第２のキャッシュメモリに書き込むための未確定ライトを前記第２のデータ記憶装置に要求し、前記未確定ライトを要求することにより前記未確定ライトデータが予め定められた量を超える場合には、前記第２のキャッシュメモリに前記未確定ライトデータとして既に書き込まれているデータを前記第２の記憶媒体に書き出されるべきライトバックデータに確定するための未確定ライト確定を前記第２のデータ記憶装置に要求する。
【発明の効果】
【０００９】
本発明によれば、第１のデータ記憶装置の判断によりデータ更新の確実な順序保証を行うことができ、中継転送装置や専用バッファを必要とせず、第１のデータ記憶装置から第２のデータ記憶装置への通信量を低減できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るデータ記憶システムの構成を示すブロック図。
【図２】図１に示されるデータ記憶装置の概略構成を示すブロック図。
【図３】図２に示される制御装置のモジュール構成を主として示すブロック図。。
【図４】同実施形態で適用されるキャッシュディレクトリエントリのデータ構造例を示す図。
【図５】同実施形態で適用されるレプリケーション管理テーブル及びＩ／Ｏ管理リストのデータ構造例を示す図。
【図６】同実施形態において外部の装置からライト処理が要求された場合のデータ記憶装置における処理の手順を示すフローチャート。
【図７】同実施形態において外部の装置からライト処理が要求された場合のデータ記憶装置における処理の手順を示すフローチャート。
【図８】同実施形態におけるキャッシュブロック確保時の処理の詳細な手順を示すフローチャート。
【図９】同実施形態において正データ記憶装置側で実行される未確定ライト確定コマンド処理の手順を示すフローチャート。
【図１０】同実施形態の変形例で適用される、レプリケーション管理テーブル及びＩ／Ｏ管理リストのデータ構造例を示す図。
【図１１】同実施形態の変形例において外部の装置からライト処理が要求された場合のデータ記憶装置における処理の手順を示すフローチャート。
【図１２】同実施形態の変形例において外部の装置からライト処理が要求された場合のデータ記憶装置における処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るデータ記憶システムの構成を示すブロック図である。本実施形態において、データ記憶システムは、正サイト１０-1に配置された正データ記憶装置１１-1、及び副サイト１０-2に配置された副データ記憶装置１１-2を備える。正サイト１０-1及び副サイト１０-2は、例えば互いに距離的に離れた位置に存在する。つまり副サイト１０-2は、正サイト１０-1に対して遠隔地に存在する。
【００１２】
正サイト１０-1において、正データ記憶装置（第１のデータ記憶装置）１１-1は、接続機器１２-1を含むデータ通信路１２０-1を介してホスト装置１３-1と接続されている。副サイト１０-2において、副データ記憶装置（第２のデータ記憶装置）１１-2は、接続機器１２-2を含むデータ通信路１２０-2を介してホスト装置１３-2と接続されている。なお、正データ記憶装置１１-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は、ディスク、例えば論理ディスクである。そこで以下の説明では、記憶媒体２１-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は、未確定ライトコマンドまたは未確定ライト確定コマンドに応じて、キャッシュメモリ管理部２３０-iに対して未確定ライトまたは未確定ライト確定を要求することにより、Ｉ／Ｏアクセス管理（入出力アクセス管理）を行う。
【００２５】
キャッシュメモリ管理部２３０-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に、通常ライトが要求される。ＣＯＰＹ処理が完了すると、ＳＹＮＣ状態に遷移する。これらの状態は、レプリケーション管理部２６０-iによって管理・制御される。
【００３５】
図５は、レプリケーション管理部２６０-iによるレプリケーションの管理に用いられるレプリケーション管理テーブル２６２-i及びＩ／Ｏ管理リスト２６４-iのデータ構造例を示す。レプリケーション管理テーブル２６２-iは、正論理ディスク番号、副論理ディスク番号、レプリケーションステート情報、確定周期情報、送信データ可能量情報及び送信済みデータ量情報を保持する。
【００３６】
正論理ディスク番号は、正データ記憶装置１１-1内のレプリケーション元（レプリケーションマスタ）となる正論理ディスクの番号を示す。副論理ディスク番号は、副データ記憶装置１１-2内のレプリケーション先（レプリケーションサブ）となる副論理ディスクの番号を示す。レプリケーションステート情報は前述の３つのレプリケーションの状態のいずれかを示す。本実施形態では、ＬＤＩＳＫ２１-1（第１の記憶媒体）とＬＤＩＳＫ２１-2（第２の記憶媒体）とは対をなし、レプリケーションペアを構成する。
【００３７】
確定周期情報は、未確定ライトデータを確定する周期を示す。送信可能データ量情報は、確定周期情報の示す１周期内で正データ記憶装置１１-1から副データ記憶装置１１-2に未確定データとして送信可能なデータ量を示す。送信可能データ量は、例えば、１周期内に副データ記憶装置１１-2に送られる未確定データのために、キャッシュメモリ２０４-2内の領域を割り当てることが許される量に設定される。送信済みデータ量情報は、正データ記憶装置１１-1から副データ記憶装置１１-2に未確定データとして既に送信されている送信済みデータ量を示す。
【００３８】
Ｉ／Ｏ管理リスト２６４-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は、Ｉ／Ｏ管理部２２０-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は、未確定ライト確定コマンドの実行完了が副データ記憶装置１１-2から通知されるのを待つ状態に入る（ステップＳ１１）。
【００５０】
一方、ステップＳ８の判定がＮｏの場合、レプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されている送信済みデータ量情報と送信可能データ量情報とに基づき、現在の送信済みデータ量と送信可能データ量とを確認する。そしてレプリケーション管理部２６０-1は、送信済みデータ量に今回受信されたデータ量（つまり副データ記憶装置１１-2に送信されるべきデータ量）を加えた値“送信済みデータ量＋受信データ量”が送信可能データ量を超えているかを判定する（ステップＳ１２）。
【００５１】
“送信済みデータ量＋受信データ量”が送信可能データ量を超えていると（ステップＳ１２がＹｅｓ）、今回受信されたデータを副データ記憶装置１１-2に送信できないことを意味する。そこで、ステップＳ１２の判定がＹｅｓの場合、レプリケーション管理部２６０-1は、ステップＳ９を実行し、未確定ライト確定コマンドの処理を開始する。
【００５２】
これに対し、ステップＳ１２の判定がＮｏの場合、レプリケーション管理部２６０-1は、キャッシュメモリ管理部２３０-1から受信したＩ／Ｏ要求を実行Ｉ／Ｏリスト２６４ａ-1の最後尾に追加する（ステップＳ１３）。そしてレプリケーション管理部２６０-1は、ホスト装置１３-1からの通常ライト要求に対する応答として、ライト完了を示すステータス情報をホスト装置１３-1に通知する（ステップＳ１４）。このステップ１４において、レプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1に追加されたＩ／Ｏ要求に対応する未確定ライトコマンドの発行をコミュニケーションポート管理部２７０-1に要求する。
【００５３】
するとコミュニケーションポート管理部２７０-1は、未確定ライトコマンドを含むＣＤＢを副データ記憶装置１１-2に送信する（ステップＳ１５）。一方、レプリケーション管理部２６０-1は、未確定ライトコマンドに対する副データ記憶装置１１-2からの応答を待つ。
【００５４】
さて、ステップ１５で副データ記憶装置１１-2に送信されたＣＤＢは、未確定ライトコマンドを含む。この未確定ライトコマンドは、論理ディスク番号、開始アドレス及びサイズから構成されるアクセス情報を含む。論理ディスク番号は、正論理ディスク番号と対応付けてレプリケーション管理テーブル２６２-1に格納されている副論理ディスク番号で、副データ記憶装置１１-2の書き込み先のＬＤＩＳＫ２１-2を示す。
【００５５】
副データ記憶装置１１-2に送信されたＣＤＢは、制御装置２０-2（第２の制御装置）のホストＩ／Ｆ制御部２１０-2で受信され、Ｉ／Ｏ管理部２２０-2に渡される。Ｉ／Ｏ管理部２２０-2は、渡されたＣＤＢをデコードする（ステップＳ１）。ステップＳ１においてＩ／Ｏ管理部２２０-2は、ＣＤＢが未確定ライトコマンドを含む場合、キャッシュメモリ管理部２３０-2に対してライト処理のためのＩ／Ｏ要求として、未確定ライト要求を送出する。未確定ライト要求は、未確定ライト処理のためのＩ／Ｏ要求であり、未確定ライトコマンドに含まれているアクセス情報を継承する。
【００５６】
キャッシュメモリ管理部２３０-2は、Ｉ／Ｏ管理部２２０-2からライト処理のためのＩ／Ｏ要求（ここでは未確定ライト要求）を受信すると、このＩ／Ｏ要求に基づいて、キャッシュメモリ２０４-2（第２のキャッシュメモリ）内で必要なキャッシュブロックを確保する（ステップＳ２）。このステップＳ２においてキャッシュメモリ管理部２３０-2は、Ｉ／Ｏ要求で指定されるライト処理に必要なライトデータを受信する。
【００５７】
次にキャッシュメモリ管理部２３０-2は、受信したＩ／Ｏ要求が未確定ライト要求であるかを判定する（ステップＳ３）。未確定ライト要求の場合（ステップＳ３がＹｅｓ）、受信したライトデータを、キャッシュメモリ２０４-2内の確保されたキャッシュブロックにエントリする（ステップＳ４）。このステップＳ４においてキャッシュメモリ管理部２３０-2は、未確定ライト要求に含まれているアクセス情報の示すライトアクセス範囲を、確保されたキャッシュブロックに対応するキャッシュディレクトリ２３２-2のキャッシュディレクトリエントリに含まれている未確定ライトビットマップに反映する。即ちキャッシュメモリ管理部２３０-2は、確保されたキャッシュブロックに対応する未確定ライトビットマップのうち、未確定ライト要求で指定されたライトアクセス範囲に対応するビットを例えば“１”にセットする。
【００５８】
次にキャッシュメモリ管理部２３０-2は、Ｉ／Ｏ要求に含まれているアクセス情報中の論理ディスク番号の示すＬＤＩＳＫ２１-2がレプリケーションマスタであるかを判定する（ステップＳ６）。レプリケーションマスタでない場合（ステップＳ６がＮｏ）、キャッシュメモリ管理部２３０-2は、正データ記憶装置１１-1からの未確定ライト要求に対する応答として、ライト完了を示すステータス情報を正データ記憶装置１１-1に通知する（ステップＳ７）。これにより、副データ記憶装置１１-2におけるＩ／Ｏ要求の処理が完了する（ステップＳ２０）。
【００５９】
さて、正データ記憶装置１１-1からの未確定ライト要求に対する応答として、ライト完了を示すステータス情報が、副データ記憶装置１１-2から正データ記憶装置１１-1に通知される（ステップＳ７）。
【００６０】
すると、レプリケーション管理部２６０-1は、未確定ライトに成功したかを、このステータス情報に基づいて判定する（ステップＳ１６）。もし、未確定ライトに成功したならば（ステップＳ１６がＹｅｓ）、レプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されている送信済みデータ量情報を、現在の送信済みデータ量に今回受信されたデータ量（副データ記憶装置１１-2に送信されたデータ量）を加えた値を示すように更新する（ステップＳ１７）。次にレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1から、成功した未確定ライトに対応するＩ／Ｏ要求を削除する（ステップＳ１８）。
【００６１】
これにより、正データ記憶装置１１-1におけるＩ／Ｏ要求の処理は完了する（ステップＳ２０）。なお、Ｉ／Ｏ要求完了時には、確保したキャッシュブロックの開放を行う。具体的には、キャッシュブロック確保時にキャッシュディレクトリ２３２-1のキャッシュディレクトリエントリに含まれている状態フラグにセットしたキャッシュブロックが使用中であることを示すフラグをクリアする。
【００６２】
これに対し、未確定ライトに失敗したならば（ステップＳ１６がＮｏ）、レプリケーション管理部２６０-1は、レプリケーションの状態をＳＹＮＣ状態からＳＰＬＩＴ状態に遷移する（ステップＳ１９）。即ちレプリケーション管理部２６０-1は、レプリケーション管理テーブル２６２-1に保持されているレプリケーションステート情報を、ＳＰＬＩＴ状態を示すように更新する。そしてレプリケーション管理部２６０-1はステップＳ１８に進む。このステップＳ１８においてレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1から、失敗した未確定ライトに対応するＩ／Ｏ要求を削除する。これにより、正データ記憶装置１１-1におけるＩ／Ｏ要求の処理は完了する（ステップＳ２０）。
【００６３】
さて、本実施形態において、ステップＳ２でのキャッシュブロック確保からＩ／Ｏ要求の処理の完了までは、該当するライトデータをエントリするのに用いられているキャッシュブロックが、キャッシュディレクトリエントリ内の状態フラグに基づいて排他される。つまり使用中のキャッシュブロックは他のＩ／Ｏ要求によって使用されない状態となる。
【００６４】
以下、キャッシュメモリ管理部２３０-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のレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1を参照し、この実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求があるかを判定する（ステップＳ３１）。もし、実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求があるならば（ステップＳ３１がＹｅｓ）、レプリケーション管理部２６０-1は、そのＩ／Ｏ要求の実行完了を待つ（ステップ３２）。
【００７８】
これに対し、実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求がないか、或いは実行Ｉ／Ｏリスト２６４ａ-1にＩ／Ｏ要求がなくなったならば（ステップＳ３１がＮｏ）、レプリケーション管理部２６０-1は、未確定ライト確定コマンドの発行をコミュニケーションポート管理部２７０-1に要求する。するとコミュニケーションポート管理部２７０-1は、未確定ライト確定コマンドを含むＣＤＢを副データ記憶装置１１-2に送信する（ステップＳ３３）。未確定ライト確定コマンドは、正データ記憶装置１１-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には、未確定ライトデータが存在しないことになる。
【００８９】
さて、図１のデータ記憶システムにおいて、大規模災害等により正サイト１０-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及びＩ／Ｏ管理リスト２６４０-iのデータ構造例を示す。レプリケーション管理テーブル２６２０-i及びＩ／Ｏ管理リスト２６４０-iは、それぞれ、図３に示されるレプリケーション管理テーブル２６２-i及びＩ／Ｏ管理リスト２６４-iに代えて用いられる。
【０１００】
図１０に示されるレプリケーション管理テーブル２６２０-iは、正論理ディスク番号、副論理ディスク番号及びレプリケーションステート情報を保持する。このようにレプリケーション管理テーブル２６２０-iは、実施形態で用いられるレプリケーション管理テーブル２６２-iと異なり、確定周期情報、送信データ可能量情報及び送信済みデータ量情報を含まない。
【０１０１】
図１０に示されるＩ／Ｏ管理リスト２６４０-iは、実行Ｉ／Ｏリスト２６４０ａ-iから構成される。Ｉ／Ｏ管理リスト２６４０-iは、実施形態で用いられるＩ／Ｏ管理リスト２６４-iと異なり、ペンディングＩ／Ｏリストはない。実行Ｉ／Ｏリスト２６４０ａ-iは、実行Ｉ／Ｏ要求を要求順に保持するキュー形式のリスト構造を有する。実行Ｉ／Ｏ要求は、実施形態と同様に、論理ディスク番号、開始アドレス及びサイズから構成されるアクセス情報を含む。
【０１０２】
実行Ｉ／Ｏリスト２６４０ａ-iのＩ／Ｏ要求には、リスト２６４０ａ-i内で後続するＩ／Ｏ要求を指す次ポインタ、及びリスト２６４０ａ-i内で先行するＩ／Ｏ要求を指す前ポインタが付される。このように、実行Ｉ／Ｏリスト２６４０ａ-iは、双方向リスト構造を有する。実行Ｉ／Ｏリスト２６４０ａ-iの先頭のＩ／Ｏ要求に付される前ポインタには、先行するＩ／Ｏ要求がないことを示す値が用いられる。実行Ｉ／Ｏリスト２６４０ａ-iの最後尾のＩ／Ｏ要求に付される次ポインタには、後続するＩ／Ｏ要求がないことを示す値が用いられる。
【０１０３】
実行Ｉ／Ｏリスト２６４０ａ-iのＩ／Ｏ要求には、シーケンスフラグも付される。シーケンスフラグは、対応するＩ／Ｏ要求のシーケンスの進捗度合い、このＩ／Ｏ要求に対応する未確定ライトコマンドで指定された未確定ライトが完了している未確定ライト完了状態にあるかを示す。
【０１０４】
次に、変形例の動作について、実施形態と相違する点を中心に説明する。  
まず、レプリケーションの状態がＳＹＮＣ状態のときに、ホスト装置１３-1から正データ記憶装置１１-1に通常ライトコマンドを含むＣＤＢが送信された場合の正データ記憶装置１１-1の動作について、図１１及び１２のフローチャートを参照して説明する。なお、図１１及び１２において、図６及び７と等価なステップには同一参照符号を付してある。
【０１０５】
ホスト装置１３-1から正データ記憶装置１１-1に、通常ライトコマンドを含むＣＤＢが送信された場合、正データ記憶装置１１-1では、実施形態と同様に、ステップＳ１〜Ｓ３，Ｓ５，Ｓ６が実行される。ここで、通常ライトコマンドに含まれている論理ディスク番号が、ＬＤＩＳＫ２１-1を示すものとする。この場合、ＬＤＩＳＫ２１-1はレプリケーションマスタであるから、ステップＳ６の判定はＹｅｓとなる。
【０１０６】
するとレプリケーション管理部２６０-1は、実施形態と異なって無条件にステップＳ１３に進み、ステップＳ１でデコードされた通常ライトコマンドに対応する通常ライト要求を実行Ｉ／Ｏリスト２６４０ａ-1の最後尾に追加する。ここで、実行Ｉ／Ｏリスト２６４０ａ-1に追加されるＩ／Ｏ要求に付されるシーケンスフラグはリセットされており、未確定ライト完了状態にないことを示す。
【０１０７】
その後、実施形態と同様に、ステップＳ１４〜Ｓ１６が実行される。ステップＳ１５では、正データ記憶装置１１-1から副データ記憶装置１１-2に未確定ライトコマンドを含むＣＤＢが送信される。ステップＳ１５に続くステップＳ１６では、ステップＳ１５で正データ記憶装置１１-1から副データ記憶装置１１-2に送信された未確定ライトコマンドの指定する未確定ライトに成功したかが判定される。未確定ライトコマンドは、ステップＳ１３で追加されたＩ／Ｏ要求（通常ライト要求）に対応する。
【０１０８】
未確定ライトに成功したならば（ステップＳ１６がＹｅｓ）、レプリケーション管理部２６０-1はステップＳ４１に進む。ステップＳ４１においてレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４０ａ-1のＩ／Ｏ要求の集合のうち、成功した未確定ライトを指定する未確定ライトコマンドに対応するＩ／Ｏ要求に付されているシーケンスフラグをセットする。これにより、シーケンスフラグは、未確定ライト完了状態を示す。
【０１０９】
次にレプリケーション管理部２６０-1は、成功した未確定ライトを指定する未確定ライトコマンドに対応するＩ／Ｏ要求が、実行Ｉ／Ｏリスト２６４０ａ-1の先頭かを判定する（ステップＳ４２）。
【０１１０】
判定の対象となるＩ／Ｏ要求が実行Ｉ／Ｏリスト２６４０ａ-1の先頭であるならば（ステップＳ４２がＹｅｓ）、レプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４０ａ-1のＩ／Ｏ要求の集合のうち、最も古いＩ／Ｏ要求に対応する未確定ライトが完了したと判断する。そこで、レプリケーション管理部２６０-1は、この完了した未確定ライトでキャッシュメモリ２０４-2に書き込まれたデータを確定させるための、未確定ライト確定コマンドの処理を開始する（ステップＳ４３）。
【０１１１】
このように、変形例における未確定ライト確定コマンドの処理は、実施形態におけるそれと相違して、実行Ｉ／Ｏリスト２６４０ａ-1の先頭のＩ／Ｏ要求から順に、未確定ライト完了状態にあるＩ／Ｏ要求が存在する限り、Ｉ／Ｏ要求を単位に実行される。これによって、正データ記憶装置１１-1及び副データ記憶装置１１-2の間でデータ更新の順序を保証することができる。未確定ライト完了状態にあるＩ／Ｏ要求であるかは、そのＩ／Ｏ要求に付されているシーケンスフラグがセットされているかによって判定される。
【０１１２】
レプリケーション管理部２６０-1が未確定ライト確定コマンドの処理を開始すると（ステップＳ４３）、正データ記憶装置１１-1から副データ記憶装置１１-2に、未確定ライト確定コマンドを含むＣＤＢが送信される。この未確定ライト確定コマンドは、実施形態と異なり、副論理ディスク番号だけでなく、開始アドレス及びサイズから構成されるアクセス情報を含む。このアクセス情報中の副論理ディスク番号には、実行Ｉ／Ｏリスト２６４０ａ-1の先頭のＩ／Ｏ要求に含まれているアクセス情報中の正論理ディスク番号と対応付けてレプリケーション管理テーブル２６２-1に格納されている副論理ディスク番号が用いられる。    よって、副データ記憶装置１１-2では、正データ記憶装置１１-1で実行された通常ライトのアクセス範囲に対応する範囲の未確定データが確定される。
【０１１３】
さて、レプリケーション管理部２６０-1は未確定ライト確定コマンドの処理を開始すると（ステップＳ４３）、未確定ライト確定コマンドの実行完了が副データ記憶装置１１-2から通知されるのを待つ状態に入る（ステップＳ４４）。  
一方、判定の対象となるＩ／Ｏ要求が実行Ｉ／Ｏリスト２６４０ａ-1の先頭でないならば（ステップＳ４２がＮｏ）、副データ記憶装置１１-2では、少なくとも、リスト２６４０ａ-1の先頭のＩ／Ｏ要求に対応する未確定ライトの実行中であることから、レプリケーション管理部２６０-1はステップＳ４３をスキップして、ステップＳ４４に進む。
【０１１４】
また、未確定ライトに失敗したならば（ステップＳ１６がＮｏ）、レプリケーション管理部２６０-1は、レプリケーションの状態をＳＹＮＣ状態からＳＰＬＩＴ状態に遷移する（ステップＳ１９）。そしてレプリケーション管理部２６０-1は、実行Ｉ／Ｏリスト２６４ａ-1から、失敗した未確定ライトに対応するＩ／Ｏ要求を削除する（ステップＳ４５）。このステップＳ４５において、レプリケーション管理部２６０-1は、削除されたＩ／Ｏ要求をエラーとして完了させる。これにより、正データ記憶装置１１-1におけるＩ／Ｏ要求の処理は完了する（ステップＳ４６）。なお、実行Ｉ／Ｏリスト２６４ａ-1からＩ／Ｏ要求を削除する際には、削除されるＩ／Ｏ要求に先行するＩ／Ｏ要求の次ポインタが、削除されるＩ／Ｏ要求に後続するＩ／Ｏ要求を指し、削除されるＩ／Ｏ要求に後続するＩ／Ｏ要求の前ポインタが、削除されるＩ／Ｏ要求に先行するＩ／Ｏ要求を指すように更新される。
【０１１５】
次に、正データ記憶装置１１-1から副データ記憶装置１１-2に未確定ライトコマンドが送信された場合の副データ記憶装置１１-2の動作について、図１１及び１２のフローチャートを参照して簡単に説明する。この場合、副データ記憶装置１１-2では、Ｉ／Ｏ要求が未確定ライト要求である場合の処理が実行される（ステップＳ１〜Ｓ４，Ｓ６，Ｓ７）。そして、ステップＳ７が実行されると、副データ記憶装置１１-2におけるＩ／Ｏ要求の処理は完了する（ステップＳ４５）。
【０１１６】
変形例では、ステップＳ２でのキャッシュブロック確保時からＩ／Ｏ要求の処理が完了するステップＳ２０の時点、または後述する未確定ライト確定コマンドの処理が完了する時点までは、該当するライトデータをエントリするのに用いられているキャッシュブロックが、キャッシュディレクトリエントリ内の状態フラグに基づいて排他される。ここで、キャッシュブロック確保時の処理は、図８のフローチャートの示す手順で実行される。
【０１１７】
次に、副データ記憶装置１１-2側での未確定ライト確定コマンドの処理について説明する。正データ記憶装置１１-1から副データ記憶装置１１-2に送信された未確定ライト確定コマンドを含むＣＤＢが、ホストＩ／Ｆ制御部２１０-2で受信され、Ｉ／Ｏ管理部２２０-2に渡されたものとする。Ｉ／Ｏ管理部２２０-2は、ＣＤＢが未確定ライト確定コマンドを含む場合、キャッシュメモリ管理部２３０-2に対してライト処理のためのＩ／Ｏ要求として、未確定ライト確定要求を送出する。未確定ライト確定要求は、対応する未確定ライト確定コマンドに含まれている副論理ディスク番号、開始アドレス及びサイズから構成されるアクセス情報を含む。
【０１１８】
キャッシュメモリ管理部２３０-2は、未確定ライト確定要求に含まれているアクセス情報の示すＬＤＩＳＫ２１-2内のアクセス範囲に対応するキャッシュブロックのエントリを全てサーチする。次にキャッシュメモリ管理部２３０-2は、該当するキャッシュブロックに対応するキャッシュディレクトリ２３２-2内の該当するキャッシュディレクトリエントリに含まれている未確定ビットマップをライトバックマップにコピーする。すなわち、キャッシュメモリ管理部２３０-2は、未確定ビットマップ内でアクセス範囲に属し且つセットされているビットの状態（未確定ライトデータの範囲を示すビットの状態）をライトバックマップにコピーする。しかる後、キャッシュメモリ管理部２３０-2は、ライトバックマップにコピーされた未確定ビットマップ内のビットをリセットする。
【０１１９】
キャッシュメモリ管理部２３０-2は、ＬＤＩＳＫ２１-2内のアクセス範囲に対応する全てのキャッシュブロックのエントリについて、コピー処理を実行する。そしてキャッシュメモリ管理部２３０-2は、正データ記憶装置１１-1からの未確定ライト確定コマンドに対する応答として、完了を示すステータス情報を正データ記憶装置１１-1に通知する。
【０１２０】
変形例において、大規模災害等により正サイト１０-1がダウンして正データ記憶装置１１-1がアクセス不能になったものとする。この場合、副データ記憶装置１１-2は、ホスト装置１３-2からの指示により、ＳＰＬＩＴ状態（エラーＳＰＬＩＴ状態）に遷移する。
【０１２１】
エラーＳＰＬＩＴ状態に遷移する処理において、キャッシュメモリ管理部２３０-2は、その時点でキャッシュメモリ２０４-2に格納されている未確定ライトデータを破棄する。これにより、副データ記憶装置１１-2の状態を、最後に未確定データが確定された時点までロールバックすることができる。つまり、ＬＤＩＳＫ２１-2を、最後に正データ記憶装置１１-1からの未確定ライト確定コマンドを処理した時点の内容に戻すことができる。
【０１２２】
レプリケーション管理テーブル２６２０-iは、確定周期情報を持たない。このため変形例では、最大ロールバック時間は一意に決まらない。しかし変形例における未確定ライト確定コマンドの処理は、実行Ｉ／Ｏリスト２６４０ａ-iの先頭のＩ／Ｏ要求から順に、未確定ライト完了状態にあるＩ／Ｏ要求が存在する限り、Ｉ／Ｏ要求を単位に実行される。よって変形例においては、最大ロールバック時間を短くすることが可能となる。
【０１２３】
変形例においても、データ記憶システムが有するレプリケーションペアが１つである場合について説明しているが、データ記憶システムが複数のレプリケーションペアを有していても構わない。このようなデータ記憶システムにおいて、複数のレプリケーションペアをグループ化し、コンシステンシグループ毎に実行Ｉ／Ｏリスト２６４０ａ-iを持つようにしてもよい。
【０１２４】
また変形例では、ライト要求の順序を保証するために、この要求が要求順に繋がれる実行Ｉ／Ｏリスト２６４０ａ-iのデータが用いられる。しかし、Ｉ／Ｏ要求毎にシーケンシャルでユニークなＩＤを割り当てることにより、リスト構造のデータを用いることなく、Ｉ／Ｏ要求の順序を保証することも可能である。
【０１２５】
変形例によれば、正サイト１０-1及び副サイト１０-2の間に専用の中継転送装置を必要とせず、また正サイト１０-1及び副サイト１０-2にキャッシュメモリ２０４-1，２０４-2とは別に専用のバッファを必要としない比較的安価な非同期レプリケーションを実現できる。
【０１２６】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【符号の説明】
【０１２７】
１０-1…正サイト、１０-2…副サイト、１１-1…正データ記憶装置（第１のデータ記憶装置）、１１-2…副データ記憶装置（第２のデータ記憶装置）、１３-1，１３-2…ホスト装置、２０-i…制御装置、２１-i…論理ディスク（ＬＤＩＳＫ、記憶媒体）、１２０-1，１２０-2…データ通信路、２０２-i…ＣＰＵ、２０３-i…プログラムメモリ、２０４-i…キャッシュメモリ、２３０-i…キャッシュメモリ管理部、２３１-i…キャッシュディレクトリ記憶部、２３２-i…キャッシュディレクトリ、２６０-i…レプリケーション管理部、２６１-i…レプリケーション管理データ記憶部、２６２-i…レプリケーション管理テーブル、２６３-i…Ｉ／Ｏ管理リスト記憶部、２６４-i，２６４０-i…Ｉ／Ｏ管理リスト、２６４ａ-i，２６４０ａ-i…実行Ｉ／Ｏリスト、２６４ｂ-i…ペンディングＩ／Ｏリスト。
【図１】
2010170485.tif 000003
【図２】
2010170485.tif 000004
【図３】
2010170485.tif 000005
【図４】
2010170485.tif 000006
【図５】
2010170485.tif 000007
【図６】
2010170485.tif 000008
【図７】
2010170485.tif 000009
【図８】
2010170485.tif 000010
【図９】
2010170485.tif 000011
【図１０】
2010170485.tif 000012
【図１１】
2010170485.tif 000013
【図１２】
2010170485.tif 000014