(57)【特許請求の範囲】
【請求項１】
各書き込みリクエストがリファレンスラベルによって特定されているコンピュータシステムで、第１記憶装置から第２記憶装置へとミラーセットコピーを実行する方法において、
第１記憶装置で書き込みリクエストを受信する段階と、
第２記憶装置で書き込みリクエストを受信する段階と、
第１記憶装置で書き込みリクエストを処理する段階と、
ミラー読み取りリクエストに応じて第１記憶装置からミラーデータを読み取る段階と、
第２記憶装置が処理を許可された少なくとも１つの書き込みリクエストを指定する情報を伴って第２記憶装置に前記ミラーデータを送信する段階と、
第２記憶装置へ前記ミラーデータを書き込む段階と、
前記ミラーデータを書き込んだ後、第２記憶装置において、前記ミラーデータと共に与えられた前記情報によって指定された任意の書き込みリクエストを処理する段階とから成ることを特徴とする方法。
【請求項２】
データを伴って送信される前記情報が、前記ミラーデータを第２記憶装置に送信する前に第１記憶装置に受信される書き込みリクエストを特定するリファレンスラベルであることを特徴とする、上記請求項１に記載の方法。
【請求項３】
前記ミラーデータと共に提供される情報によって指定される任意の書き込みリクエストを第２記憶装置で処理するという前記段階が、データと一緒に送信されたリファレンスラベルと組み合わされた書き込みリクエストに遭遇するまで、書き込みリクエストを処理する段階を含んでいることを特徴とする、上記請求項２に記載の方法。
【請求項４】
前記ミラーデータと共に提供される情報によって指定される任意の書き込みリクエストを第２記憶装置で処理するという前記段階が、前記ミラーデータと一緒に送信されたリファレンスラベルによって特定された書き込みリクエストに遭遇するまで、書き込みリクエストを処理する段階を含んでいることを特徴とする、上記請求項３に記載の方法。
【請求項５】
前記ミラーデータと一緒に送信される前記リファレンスラベルが、そのデータを送信する前に第１記憶装置に受信され且つ処理された書き込みリクエストを特定することを特徴とする、上記請求項２に記載の方法。
【請求項６】
前記ミラーデータと一緒に送信される前記リファレンスラベルが、ミラー読み取りリクエストに応じて第１記憶装置からデータを読み取る段階の前に第１記憶装置で受信され且つ処理された書き込みリクエストを特定することを特徴とする、上記請求項５に記載の方法。
【請求項７】
前記ミラーデータと一緒に送信される前記リファレンスラベルが、前記ミラーデータを送信する前に第１記憶装置で受信されてはいるがまだ処理されていない書き込みリクエストを特定することを特徴とする、上記請求項２に記載の方法。
【請求項８】
第１記憶装置でミラー読み取りリクエストを生成する段階を更に含んでいることを特徴とする、上記請求項１に記載の方法。
【請求項９】
第２記憶装置からミラー読み取りリクエストを伝送する段階を更に含んでいることを特徴とする、上記請求項１に記載の方法。
【請求項１０】
第１記憶装置で書き込みリクエストを処理する前記段階が、書き込みリクエストが受信される順序に従って書き込みリクエストを処理する段階を含んでおり、且つ第２記憶装置で書き込みリクエストを処理する前記段階が、書き込みリクエストが受信される順序に従って書き込みリクエストを処理する段階を含んでいることを特徴とする、上記請求項１に記載の方法。
【請求項１１】
第１記憶装置で書き込みリクエストを処理する前記段階が、組み合わされたリファレンスラベルに対応する順序に従って書き込みリクエストを処理する段階を含んでおり、且つ第２記憶装置で書き込みリクエストを処理する前記段階が、組み合わされたリファレンスラベルに対応する順序に従って書き込みリクエストを処理する段階を含んでいることを特徴とする、上記請求項１に記載の方法。
【請求項１２】
前記リファレンスラベルが番号を含んでおり、且つ第１記憶装置で書き込みリクエストを処理する前記段階が、組み合わされたリファレンスラベルの数値の順序に従って書き込みリクエストを処理する段階を含んでおり、且つ第２記憶装置で書き込みリクエストを処理する前記段階が、組み合わされたリファレンスラベルの数値の順序に従って書き込みリクエストを処理する段階を含んでいることを特徴とする、上記請求項１１に記載の方法。
【請求項１３】
ミラー化されたデータ記憶システムにおいて、
第１記憶装置と、
第２記憶装置と、
第１記憶装置に付随する第１制御装置と、
第２記憶装置に付随する第２制御装置とから成り、
前記第１制御装置は、書き込みリクエストを受信し、第１記憶装置にデータを書き込むことによって書き込みリクエストを処理し、ミラー読み取りリクエストに応えて第１記憶装置からミラーデータを読み取り、第２制御装置が処理を許可された少なくとも１つの書き込みリクエストを指定する情報と共に第２制御装置に前記ミラーデータを送信するように設計されており、
前記第２制御装置は、書き込みリクエストを受信し、第１制御装置から前記ミラーデータを受信し、第２記憶装置に前記ミラーデータを書き込み、前記ミラーデータを書き込んだ後、前記ミラーデータと共に提供された情報により指定される任意の書き込みリクエストを処理するように設計されていることを特徴とするミラー化されたデータ記憶システム。
【請求項１４】
前記第１制御装置は、前記ミラーデータと一緒に送信された情報が、第２記憶装置に前記ミラーデータを送信する前に第１記憶装置で受信された書き込みリクエストのリファレンスラベルと組み合わされるように設計されていることを特徴とする、上記請求項１３に記載のシステム。
【請求項１５】
前記第２制御装置が、前記ミラーデータと一緒に送信されるリファレンスラベルと組み合わされた書き込みリクエストに遭遇するまで、書き込みリクエストを処理するように設計されていることを特徴とする、上記請求項１４に記載のシステム。
【請求項１６】
前記第１制御装置は、前記ミラーデータと一緒に送信されるリファレンスラベルが、データを送信する前に第１記憶装置に受信され且つ処理された書き込みリクエストと組み合わされるように設計されていることを特徴とする、上記請求項１４に記載のシステム。
【請求項１７】
前記第１制御装置は、前記ミラーデータと一緒に送信されたリファレンスラベルが、第１制御装置がミラー読み取りリクエストに応えて第１記憶装置からミラーデータを読み取る前に第１記憶装置に受信され且つ処理された書き込みリクエストと組み合わされるように設計されていることを特徴とする、上記請求項１６に記載のシステム。
【請求項１８】
前記第１制御装置は、前記ミラーデータと一緒に送信されたリファレンスラベルが、前記ミラーデータを送信する前に第１記憶装置に受信されてはいるがまだ処理されていない書き込みリクエストと組み合わされるように設計されていることを特徴とする、上記請求項１６に記載のシステム。
【請求項１９】
前記第１制御装置が、ミラー読み取りリクエストを生成するように設計されていることを特徴とする、上記請求項１３に記載のシステム。
【請求項２０】
前記第２制御装置が、ミラー読み取りリクエストを前記第１制御装置に伝送するように設計されていることを特徴とする、上記請求項１３に記載のシステム。
【請求項２１】
前記第１制御装置と前記第２制御装置が、書き込みリクエストが受信された順序に従って書き込みリクエストを処理するように設計されていることを特徴とする、上記請求項１３に記載のシステム。
【請求項２２】
前記第１制御装置と前記第２制御装置が、組み合わされたリファレンスラベルに対応する順序に従って書き込みリクエストを処理するように設計されていることを特徴とする、上記請求項１３に記載のシステム。
【請求項２３】
前記リファレンスラベルが数字を含んでおり、且つ前記第１制御装置と前記第２制御装置が、リファレンスラベルに組み合わされた数値の順序に従って書き込みリクエストを処理するように設計されていることを特徴とする、上記請求項２２に記載のシステム。
【請求項２４】
プロセッサを有するコンピュータシステムで第１記憶装置から第２記憶装置へとミラーセットコピーを実行する方法において、
前記プロセッサからの書き込みリクエストを第１記憶装置と第２記憶装置に送信する段階と、
第１記憶装置で書き込みリクエストを処理する段階と、
ミラー読み取りリクエストを前記第１記憶装置に送信する段階と、
前記ミラー読み取りリクエストに応答して前記第１記憶装置からのミラーデータを読み取る段階と、
前記第２記憶装置が処理を許可された書き込みリクエストを特定するリファレンスラベルと一緒に前記ミラーデータを前記第２記憶装置に送信する段階と、
前記ミラーデータを前記第２記憶装置に書き込む段階と、および、
前記第２記憶装置において前記リファレンスラベルにより特定された前記書き込みリクエストを処理する段階とから成ることを特徴とする方法。
【発明の詳細な説明】
発明の背景
本発明は、ディスクドライブ又は他の記憶装置のミラー化コピーを生成するための技法に着眼している。
多くのコンピュータシステムでは、複数の記憶装置各々の上に同一データを記憶することによりあるレベルの故障許容性が提供されている。同一データを有する記憶装置はミラー化された装置と呼ばれ、ミラーセットに属するとされる。ミラーセット中の１つのミラー装置がフェイルするか、或いはアクセスできないということになっても、ミラーセットのもう１つのミラー化された装置或いは他のミラー化された装置が継続してデータへのアクセスを提供する。
ミラーセット中の各装置上に同一データを保持するに当たっては、各装置は、ミラーセットにデータを記憶するためにあらゆるリクエスト（すなわち、あらゆる書き込みリクエスト）を受信して処理せねばならない。ミラーセット中のある装置がこのような書き込みリクエストを処理できなくなると、その装置はミラーセットの他の装置と一致しないことになる。ミラーセットのメンバーに不一致が生じると、ある１つのミラー化された装置から別のミラー化された装置へとデータをコピーするためにミラーセットコピーが実行されねばならない。ミラーセットコピーを実行する１つのアプローチでは、コンピュータシステムを運転停止して、全データをある１つのミラー化された装置から他のミラー化された装置へコピーする。
発明の概要
１つの態様から概括的に述べると、本発明は書き込みリクエスト各々にリファレンスラベルが付けられているコンピュータシステムにおいて、第１記憶装置から第２記憶装置へのミラーセットコピーを実行することを特徴としている。書き込みリクエスト及びミラー読み取りリクエストは第１記憶装置に受信されるが、書き込みリクエストはまた第２記憶装置にも受信される。書き込みリクエストは第１記憶装置に処理され、ミラー読み取りリクエストに応えてデータは第１記憶装置から読み取られる。第１記憶装置は、第２記憶装置が処理を許可された書き込みリクエストを指定する情報を付けて、第２記憶装置にデータを送信する。その後、第２記憶装置はデータを書き込み、第１記憶装置により第２記憶装置が処理を許可されたものとして提供される情報によって指定された書き込みリクエストは何であれ処理する。
本発明の実施例には、以下の特徴の内の１つ又はそれ以上が含まれる。データと共に第２記憶装置に送信される情報は、データを第２記憶装置に送信する前に第１記憶装置が受信した書き込みリクエストのリファレンスラベルであってもよい。この後、第２記憶装置は、第２記憶装置がデータと共に送信された同じリファレンスラベルを有する書き込みリクエストと遭遇するまで、書き込みリクエストを処理することができる。
データと共に第２記憶装置に送信されたリファレンスラベルは、データ送信前に第１記憶装置が受信して処理した書き込みリクエストと組み合わせることができる。厳密には、リファレンスラベルは、ミラー読み取りリクエストに応じて第１記憶装置からデータを読み取る前に、第１記憶装置が受信して処理した書き込みリクエストに組み合わせることができる。このアプローチでは、第１記憶装置は、当該ミラー読み取りリクエストに応じてデータを読み取るとすぐに、書き込みリクエスト又は他のミラー読み取りリクエストを実行することが許される。
代わりに、データと共に送信されるリファレンスラベルは、データ送信前に第１記憶装置が受信はしたがまだ処理をしていない書き込みリクエストと組み合わせることもできる。このアプローチでは、第１記憶装置は、第１記憶装置がデータと共に送信されたリファレンスラベルと組み合わされた書き込みリクエストを処理するまでは、他の何れのミラー読み取りリクエストも実行しないように設計されねばならない。第１記憶装置が、データと共に送信されるリファレンスラベルに組み合わされた書き込みリクエストを実行する前に、追加のミラー読み取りリクエストを実行するようになっている場合には、第２記憶装置が、書き込みリクエストからのデータの上に追加のミラー読み取りリクエストからの旧くなったデータを上書きしてしまうかもしれないという危険性がある。
ミラー読み取りリクエストは、第２記憶装置から伝送してもよいし、中央プロセッサから伝送してもよい。ミラー読み取りリクエストはまた、第１記憶装置で生成してもよい。一連のミラー読み取りリクエストは一体となって、第１記憶装置の全コンテンツをリクエストしてもよい。
各記憶装置は、書き込みリクエストを同じ順序で処理せねばならない。書き込みリクエストは、書き込みリクエストが受信された順序で処理してもよいし、或いは組み合わされたリファレンスラベルに一致した順序で処理してもよい。書き込みリクエストは、組み合わされたリファレンスラベルに対応する順序で受信される必要はない。リファレンスラベルは、例えば、シーケンシャル若しくは非シーケンシャル番号か、又はテキストであってもよい。
別の態様から概括的に述べると、本発明は、ミラー化されたデータ記憶システムを特徴としている。システムには、第１記憶装置と、第２記憶装置と、第１記憶装置に付随した第１制御装置と、第２記憶装置に付随した第２制御装置とが含まれる。第１制御装置は、書き込みリクエストとミラー読み取りリクエストを受信することと、第１記憶装置にデータを書き込むことにより書き込みリクエストを処理することと、ミラー読み取りリクエストに応じて第１記憶装置からデータを読み取ることと、そのデータを第２制御装置が処理を許可された書き込みリクエストを指定する情報を付けて第２制御装置に送信することとができるようになっている。第２制御装置は、書き込みリクエストを受信することと、第１制御装置からデータを受信することと、第２記憶装置にデータを書き込むことと、第２制御装置が処理をしてもよい第１記憶装置により提供された情報によって指定される書き込みリクエストなら何れのリクエストでも処理することとができるようになっている。
データと共に第２記憶装置に送信される情報は、データを送信する前に第１制御装置に受信される書き込みリクエストと組み合わされたリファレンスラベルであってもよい。第２制御装置は、第１制御装置によりデータと共に送信されたものと同じリファレンスラベルと組み合わされた書き込みリクエストに遭遇するまでは、第２記憶装置にデータを書き込むことにより複数の書き込みリクエストを処理するように作られている。
本発明の他の特徴及び利点は、図面を含め、以下の詳細な説明及び請求項から明らかになるであろう。
【図面の簡単な説明】
図１は、ミラー化されたドライブシステムのブロック線図である。
図２と３は、刻時図である。
図４は、ミラーセットコピーの実行についての手順を示すフローチャートである。
好適実施例の説明
図１は、第１ディスク１０と第２ディスク２０の２つのディスクドライブを含むミラーセット１００のブロック線図を示している。それらディスクの内の１つはマスターディスクと指定され、第１のデータ記憶装置として働き、もう片方のディスクはスレーブディスクと指定され、冗長バックアップとして働く。双方のディスクが実行中の状態にあって同一データを保有しているときには、マスター／スレーブという地位は、２枚のディスクに対して任意に割り振りされてよい。図１では、ディスク１０をマスターディスクに指定し、一方、ディスク２０をスレーブディスクに指定している。
第１制御装置３０は第１ディスクと組み合わされ、第２制御装置４０は第２ディスクと組み合わさせている。制御装置３０、４０は、ディスク上のデータの読み取りと書き込みを制御する。
プロセッサ４５は、書き込みリクエストを両方の制御装置に同時に送信する。各書き込みリクエストはデータを保有している。更に、シーケンシャルリファレンスラベルのようなリファレンスラベルが、各書き込みリクエストに組み合わせてある。双方の制御装置は、書き込みリクエストからそれら各々のディスクにデータを書き込むので、これにより通常の状況下では、双方のディスクは同一のデータを保有することになる。各制御装置は、書き込みリクエストを同じ順序で処理せねばならない。それらの制御装置がリファレンスラベルの順序通りに書き込みリクエストを処理する場合には、制御装置は書き込みリクエストを同一順序で受信する必要はない。
プロセッサ４５はまた、読み取りリクエスト５５をそれらの制御装置へ送信することも行う。双方のディスクが同一データを保有するときには、マスターディスクのみがこの読み取りリクエスト５５に応答する。マスターディスクがフェイルするか、又はアクセス不能になった場合には、スレーブディスクがマスターディスクとして指名され直し、引き続きデータをプロセッサ４５に提供する。このように、仮にディスク１０がフェイルした場合には、ディスク２０がマスターディスクに成り代わることができる。
ミラーセット１００中のある１つのディスクは、そのディスクがある一定の期間、書き込みリクエストを処理できない場合は、そのピアのディスクとは不一致なデータを保有することになる。例えば、スレーブディスクがある期間中使用不能である場合には、スレーブディスクのデータはマスターディスクのデータとは一致しなくなる。ミラーセット内のディスクが不一致の状態になった場合、「正しい」データを持ったディスクから不一致なデータを有するディスクへと、ミラーセットコピーを実行せねばならない。
以下の説明は、スレーブディスク２０がフェイルした後回復し、このためスレーブディスクがマスターディスク１０上の「正しい」データとは不一致なデータを含んでいると仮定している。マスターディスク１０が書き込みリクエスト５０並びに読み取りリクエスト５５を継続して実行している間にも、ミラーセット１００は、マスターディスク１０からスレーブディスク２０にデータのミラーセットコピーを実行する。
スレーブ制御装置４０は、ミラー読み取りリクエスト６０をマスター制御装置３０に伝送することにより、ミラーセットコピーを開始する。マスター制御装置３０は、図示している実施例では、これもまた書き込みリクエスト５０及び読み取りリクエスト５５を有しているキュー７０にミラー読み取りリクエスト６０を配置する。マスター制御装置３０は、これより、エントリーがキューに置かれた順序に従ってキュー７０内でエントリーを処理する。
キュー７０内で当該ミラー読み取りリクエスト６０に到達すると、マスター制御装置３０は、リクエスト内の識別されたデータを読み取り、そのデータをミラー書き込みリクエストとしてスレーブ制御装置４０へ伝送する。マスター制御装置３０は、ミラー書き込みリクエストの他にも、マスター制御装置３０がミラー読み取りリクエスト６０処理する前に処理を行った最後の書き込みリクエストと組み合わされたリファレンス番号（ＬＷ）を含んでいる。
ミラー書き込みリクエスト７５を受信すると、スレーブ制御装置４０は、そのミラー書き込みリクエストを、書き込みリクエスト５０及び読み取りリクエスト５５を保有するキュー８５とは異なるキュー８０に配置する。スレーブ制御装置４０は、ここで、ミラー書き込みリクエスト７５からディスク２０にデータを書き込む。
マスター制御装置３０は、ミラーセットーコピーを実行すると同時に書き込みリクエスト５０を処理するので、ミラー書き込みリクエスト７５に含まれたデータは次に続く書き込みリクエスト５０により変更される。これが原因で、スレーブディスク２０上に「旧い」データが記録されてしまうのである。この起こりうる問題を回避するために、スレーブ制御装置４０は、ミラーセットコピーを実行すると同時に書き込みリクエスト５０を処理するが、しかもそれは、確実に、書き込みリクエスト５０からのデータがミラー書き込みリクエスト７５からの「旧い」データによって上書きされないような方法で処理する。
図２は、マスター制御装置３０及びスレーブ制御装置４０のミラーセットコピー中の動作についての刻時図である。図解の上方の矢印は、書き込みリクエスト５０をそれらの制御装置が受信する時と、ミラー読み取りリクエストをマスター制御装置３０が受信する時を示している。ます目は、書き込みリクエストと、ミラー読み取りリクエストと、ミラー書き込みリクエストが制御装置により処理されている期間を表している。図解と説明をより容易にするために、書き込みリクエストに組み合わされたリファレンスラベルは、順番に受信される連続番号として描かれている。実際のアプリケーションでは、リファレンスラベルは連続でなくても、またシーケンシャルでなくてもよい。更に、リファレンスラベルは番号でなくてもよい。
図２に示すように、制御装置は書き込みリクエスト２２０（Ｗ１）と２３０（Ｗ２）を、スレーブ制御装置４０がミラー読み取りリクエスト２４０（ＭＲ１）を生成する前に受信する。従って、マスター制御装置３０は、図示している実施例では、ミラー読み取りリクエストＭＲ１を処理する前に書き込みリクエストＷ１及びＷ２を処理する。
矢印２５０が表すように、マスター制御装置３０は、ミラー読み取りリクエストＭＲ１を処理した後で、ミラー書き込みリクエスト２６０（ＭＷ１）をスレーブ制御装置４０に送り渡す。ミラー書き込みリクエストＭＲ１は、ミラー読み取りデータと、マスター制御装置３０がミラー読み取りリクエストＭＲ１を処理する前に処理した最後の書き込みリクエストのリファンレンス番号２７０（ＬＷ）とを含んでいる。Ｗ２が処理された最後の書き込みリクエストだったので、ミラー書き込みリクエストはＬＷが２に等しいことを標示する。
ミラー書き込みリクエストＭＷ１を受信すると、スレーブ制御装置４０はそれを処理する。スレーブ制御装置４０は、それから第二ミラー読み取りリクエスト２８０（ＭＲ２）を生成する。次に、スレーブ制御装置４０は、書き込みリクエストＷ１とＷ２を処理する。書き込みリクエストＷ２が、ミラー書き込みリクエストで与えられた番号ＬＷに一致するので、スレーブ制御装置は処理を停止し、ミラー読み取りリクエストＭＲ２の結果を待つ。
ミラーセットコピーを継続しながら、マスター制御装置３０は、書き込みリクエスト３００（Ｗ３）、３１０（Ｗ４）、３２０（Ｗ５）を処理する。マスター制御装置３０は、ここでミラー読み取りＭＲ２を実行する。矢印３３０が示すように、マスター制御装置３０はここでミラー書き込みリクエスト３４０（ＭＷ２）をスレーブ制御装置４０に送り渡す。ミラー書き込みリクエストＭＷ２は、ミラー読み取りデータとマスター制御装置３０がそのミラー読み取りリクエストＭＲ２を処理する前に処理した最後の書き込みリクエストのリファレンス番号３５０を含んでいる。Ｗ５が処理された最後の書き込みリクエストなので、ミラー書き込みリクエスト３５０は、最後の書き込みリクエストのリファレンス番号３５０（ＬＷ）が５に等しいことを標示する。
ミラー書き込みリクエストＭＷ２を受信すると、スレーブ制御装置４０はそれを処理する。スレーブ制御装置４０は、ここでミラー読み取りリクエスト３６０（ＭＲ３）を生成する。次にスレーブ制御装置４０は書き込みリクエストＷ３、Ｗ４、及びＷ５を処理する。書き込みリクエストＷ５がミラー書き込みリクエストに提供されたリファレンス番号ＬＷに一致しているので、スレーブ制御装置４０は処理を停止して、ミラー読み取りリクエストＭＲ３の結果を待つ。この処理作業はスレーブ制御装置４０が、マスターディスク１０の全コンテンツに対応するミラー書き込みリクエストを処理してしまうまで（即ち、ディスクに不一致のデータが無くなるまで）続く。
図３は、本発明の別の実施例の刻時図である。この実施例は、マスター制御装置が、ミラー書き込みリクエスト内に、マスター制御装置がミラー読み取りリクエストの処理を開始した時点で受信されて処理される最後の書き込みリクエストではなくて、マスター制御装置がミラー書き込みリクエストを生成している時点で受信される（しかし必ずしも処理されるわけでない）最後の書き込みリクエストのリファレンス番号を含んでいる点を除いては、上述した様に機能する。
図３に示すように、制御装置は、スレーブ制御装置４０がミラー読み取りリクエストＭＲ１を生成する前に、書き込みリクエストＷ１とＷ２を受信する。従って、マスター制御装置３０は、ミラー読み取りリクエストＭＲ１を処理する前に書き込みリクエストＷ１とＷ２を処理する。
矢印２５０が表すように、マスター制御装置３０はミラー読み取りリクエストＭＲ１を処理した後で、ミラー書き込みリクエストＭＷ１をスレーブ制御装置４０に送り渡す。ミラー書き込みリクエストＭＷ１は、ミラー読み取りデータと、マスター制御装置３０がミラー書き込みリクエストＭＷ１を生成する前に受信した最後の書き込みリクエストのリファレンス番号ＬＷとを含んでいる。Ｗ３が受信された最後の書き込みリクエストなので、ミラー書き込みリクエストはＬＷが３に等しいことを標示している。
ミラー書き込みリクエストＭＷ１を受信すると、スレーブ制御装置４０はそれを処理する。スレーブ制御装置４０は、ここで第２ミラー読み取りリクエスト３（ＭＲ２）を生成する。次にスレーブ制御装置４０は書き込みリクエストＷ１、Ｗ２、及びＷ３を処理する。書き込みリクエストＷ３はミラー書き込みリクエストに提供された番号ＬＷに一致しているので、スレーブ制御装置４０は処理を停止して、ミラー読み取りリクエストＭＲ２の結果を待つ。
ミラーセットコピーを継続しながら、マスター制御装置３０は、書き込みリクエストＷ３、Ｗ４、Ｗ５を処理する。マスター制御装置３０は、ここでミラー読み取りＭＲ２を実行する。矢印３３０が示すように、マスター制御装置３０は、ここでミラー書き込みリクエストＭＷ２を実行する。矢印３３０が示すように、マスター制御装置３０は、これより、ミラー書き込みリクエストＭＷ２をスレーブ制御装置４０に送り渡す。ミラー書き込みリクエストＭＷ２は、ミラー読み取りデータと、マスター制御装置３０がミラー読み取りリクエストＭＲ２を生成する前に受信した最後の書き込みリクエストのリファレンス番号ＬＷとを含んでいる。書き込みリクエスト３７０（Ｗ６）が受信された最後の書き込みリクエストなので、ミラー書き込みリクエストは、最後の書き込みリクエストのリファレンス番号ＬＷが６に等しいことを標示する。
ミラー書き込みリクエストＭＷ２を受信すると、スレーブ制御装置４０はそれを処理する。スレーブ制御装置４０は、ここでミラー読み取りリクエストＭＲ３を生成する。次にスレーブ制御装置４０は書き込みリクエストＷ４、Ｗ５、及びＷ６を処理する。書き込みリクエストＷ６がミラー書き込みリクエストに与えられたリファレンス番号ＬＷに一致しているので、スレーブ制御装置４０は処理を停止して、ミラー読み取りリクエストＭＲ３の結果を待つ。この処理作業はスレーブ制御装置４０が、マスターディスク１０の全コンテンツに対応するミラー書き込みリクエストを処理してしまうまで（即ち、ディスクに不一致データが無くなるまで）続く。
図３に示す実施例は図２に示す実施例より優れているといえよう。特に、図３の実施例では、スレーブディスク２０が非実行中の期間が生じる傾向がより少ないと言える。１つのこのような期間を図２のすき間４００が示している。しかしながら、図３に示す実施例では、マスター制御装置が先のミラー書き込みリクエストで特定された書き込みリクエストを処理してしまうまでは、マスター制御装置が追加のミラー読み取りリクエストの処理を控えることが必要条件となる。反対に、図２に示す実施例では、マスター制御装置は、ミラー書き込みリクエストを生成した直後に、追加のミラー読み取りリクエストを処理することを始めとして、どのような行動をもとることができる。
図４についてであるが、スレーブ制御装置４０は、手順５００に従ってミラーセットコピーを実行できる。ミラーセットコピーを開始するに当たり、スレーブ制御装置４０は、最初に、その読み取り／書き込みリクエストキュー８５を一掃する（ステップ５１０）。そのキュー内の何れのリクエスト（即ちミラーセットコピー前に受信された何れのリクエスト）も、マスター制御装置３０によって処理され、しかもミラー書き込みリクエストに含まれるデータに反映されるであろうという理由から、制御装置はこの処理を行うことができる。次に、スレーブ制御装置４０は、ミラー読み取りリクエスト６０をマスター制御装置３０に送信する（ステップ５２０）。その後、スレーブ制御装置４０はミラー書き込みリクエスト７５の受信を待つ（ステップ５３０）。
一旦、スレーブ制御装置がミラー書き込みリクエストを受信すると、スレーブ制御装置はデータがマスターディスク１０からコピーされる予定のデータの最後のブロックであるかどうかを判定する（ステップ５４０）。もしそうであるなら、スレーブ制御装置は、ミラー書き込みデータをスレーブディスク２０に書き込み（ステップ５５０）、そしてミラーセットコピーは完了する（ステップ５６０）。
マスター１０により受信されたデータがマスターディスク１０からコピーされる予定のデータの最後のブロックでない場合（ステップ５４０）には、スレーブ制御装置４０は別のミラー読み取りリクエスト６０を送信（ステップ５７０）して、受信したばかりのデータをスレーブディスク２０に書き込む（ステップ５８０）。
次に、スレーブ制御装置４０は、キュー８５内の次の書き込みリクエスト５０のリファレンスラベルが、ミラー書き込みリクエスト中でマスター制御装置により特定された書き込みリクエスト（ＬＷ）に一致しているかどうかを判定する（ステップ５９０）。もしそうでない場合には、スレーブ制御装置４０は、キュー８５からの別のミラー読み取りリクエスト５０を処理（ステップ６００）して、キュー８５内の次の書き込みリクエスト５０をチェックする（ステップ５９０）。スレーブ制御装置４０は、書き込みリクエスト５０のリファレンスラベルが、ミラー書き込みリクエストの中でマスター制御装置によって特定されたリファレンスラベル（ＬＷ）と一致するまで、キュー８５からの書き込みリクエスト５０の処理を継続する。その点で、スレーブ制御装置は書き込みリクエスト５０を処理（ステップ６１０）し、次のミラー書き込みリクエストを待つ（ステップ５３０）。
他の実施例も、以下の請求項目の範囲内にある。ミラー読み取りリクエストをスレーブ制御装置から受信する代わりに、マスター制御装置がミラー読み取りリクエストを生成してもよい。更に、ミラー読み取りリクエストに応答して、データを伴ったリファレンスラベルを送信する代わりに、マスター制御装置が他の情報を送信してもよい。例えば、リファレンスラベルが、書き込みリクエストが生成された時点に対応している場合には、マスター制御装置は、ミラー書き込みリクエストが生成される時点に対応する情報を送信してもよいし、また或いはミラー読み取りリクエストの処理が完了した時点に対応する情報を送信してもよい。
【図１】
0004264136.tif 000002
【図２】
0004264136.tif 000003
【図３】
0004264136.tif 000004
【図４】
0004264136.tif 000005