(57)【要約】【課題】  データ二重化の制御のためのホストの負荷を低減する。【解決手段】  ホスト１と２つのディスクサブシステム１７，１８の間に、データ二重化装置３が接続される。データ二重化装置３はホスト１に対して単一のディスクサブシステムのごとくに振舞う。データ二重化装置３は、ホスト１からのデータI/O指示を二重化して、二重化されたデータI/O指示を２つのディスクサブシステム１７，１８に発行する。ディスクサブシステム１７，１８のいずれか一方に障害が発生した場合、データ二重化装置３は、正常な方のディスクサブシステムのみにホスト１からのデータI/O指示を送る。その障害回復後、データ二重化装置３はディスクサブシステム１７，１８間のデータコピーを行う。【選択図】図１
2005196490.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムとオペレーティングシステムを実行するプロセッサを有し、オリジナルのデータ書込み／読出し指示を発行する上位装置と、
前記上位装置と接続されたデータ多重化装置と、
前記データ多重化装置にそれぞれ接続され、前記上位装置のためにデータを記憶する第1と第2のストレージシステムと
を備え、
前記データ多重化装置は、
前記上位装置との通信接続を形成する上位インタフェース制御部と、
前記第1と第２のストレージシステムとの通信接続をそれぞれ形成する第1と第2の下位インタフェース部と、
前記上位インタフェース制御部を通じて、前記上位装置からの前記オリジナルのデータ書込み／読出し指示を受け、前記オリジナルのデータ書込み／読出し指示を多重化して第1と第２のデータ書込み／読出し指示を生成する多重化制御部と、
監視メモリと、
前記第1と第２のデータ書込み／読出し指示についての時刻情報とデータI/Oアドレスを前記監視メモリに格納し、前記第1と第２のデータ書込み／読出し指示を、前記下位インタフェース制御部を通じて、前記第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と第2の下位インタフェース部と、
前記上位インタフェース制御部を通じて、前記上位装置からの前記オリジナルのデータ書込み／読出し指示を受け、前記オリジナルのデータ書込み／読出し指示を多重化して第1と第２のデータ書込み／読出し指示を生成する多重化制御部と、
監視メモリと、
前記第1と第２のデータ書込み／読出し指示についての時刻情報とデータI/Oアドレスを前記監視メモリに格納し、前記第1と第２のデータ書込み／読出し指示を、前記下位インタフェース制御部を通じて、前記第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と第２のデータ書込み／読出し指示についての時刻情報とデータI/Oアドレスを監視メモリに格納するステップ、
前記第1と第２のデータ書込み／読出し指示を、前記第1と第２のストレージシステムへそれぞれ発行するステップ、
前記第1と第２のデータ書込み／読出し指示に対する前記第1と第２のストレージシステムからのレスポンスをそれぞれ受けるステップ、
前記監視メモリに記憶された前記時刻情報に基づいて、前記第1と第２のストレージシステムからのレスポンスが所定の許容時間内に到来したか否かの判断を行うステップ、
前記判断の結果に応じて、前記オリジナルのデータ書込み／読出し指示に対するレスポンスを生成するステップ、及び
前記生成されたレスポンスを前記上位装置へ返すステップと、
を有することを特徴とするデータ多重化方法。
【請求項１９】
請求項１８記載のデータ多重化方法において、
前記オリジナルのデータ書込み／読出し指示がデータ書込み指示である場合に前記データ多重化装置にて行われる下記のステップ、
前記オリジナルのデータ書込み指示を多重化して第1と第２のデータ書き込み指示を生成するステップ、
前記第1と第２のデータ書込み指示を前記第1と第２のストレージシステムへそれぞれ発行するステップ、
前記第1と第２のストレージシステムの双方から書込み完了通知を示すレスポンスが前記許容時間内に到来した後に、前記オリジナルのデータ書込み指示に対するレスポンスとしてデータ書込み／読出し完了通知を生成するステップ、
前記データ書込み／読出し完了通知を前記上位装置へ返すステップ
を有することを特徴とするデータ多重化方法。
【請求項２０】
請求項１９記載のデータ多重化方法において、
前記第1と第２のデータ書込み指示を前記第1と第２のストレージシステムへそれぞれ発行するステップを行った後に、前記第１のストレージシステムからは前記書込み完了通知を示すレスポンスが前記許容時間内に到来し、前記第２のストレージシステムからは前記書込み完了を示すレスポンスが前記許容時間内に到来しなかった場合、前記データ多重化装置にて行われる下記のステップ、
前記オリジナルのデータ書込み指示に対するレスポンスとしてデータ書込み／読出し完了通知を生成するステップ、
前記生成されたデータ書込み／読出し完了通知を前記上位装置へ返すステップ、
前記第２のストレージシステムでのデータ書込み処理が異常終了したと判断し、前記第２のストレージシステムについての異常終了通知を、前記データ多重化装置に対してデータ回復処理の実行を指示するための前記データ回復制御部へ送るステップ、
前記異常終了通知を前記データ回復制御部へ送った後、前記上位装置から新たなオリジナルのデータ書込み指示が発行される都度、前記第１のストレージシステムに対しては、前記新たなオリジナルのデータ書込み指示に基づいた第１のデータ書込み指示を送り、前記第２のストレージシステムに対しては、前記新たなオリジナルのデータ書込み指示に基づいた第２のデータ書込み指示を送らないステップ、
前記異常終了通知を前記データ回復制御部へ送った後、前記上位装置から新たなオリジナルのデータ書込み指示が発行される都度、前記新たなオリジナルのデータ書込み指示に応じた第１のデータ書込み指示の時刻情報とデータ書込みアドレスとを前記監視メモリに蓄積するステップ、
前記異常終了通知を前記データ回復制御部へ送った後、前記データ回復制御部からデータ回復処理の実行を指示された場合、前記監視メモリに蓄積されている今までに発行された前記第１のデータ書込み指示の時刻情報とデータ書込みアドレスに基づいて、前記第１のストレージシステムに記憶されているが前記第２のストレージシステムには記憶されていない未多重化データを抽出するステップ、
前記抽出されたに未多重化データを前記第１のストレージシステムから前記第２のストレージシステムにコピーするステップ
を有することを特徴とするデータ多重化方法。
【請求項２１】
アプリケーションプログラム及びオペレーティングシステムが格納されるメモリと、
前記アプリケーションプログラム及びオペレーティングシステムを実行するプロセッサと
を有する上位装置と、
前記上位装置と接続され、前記上位装置からのデータ書込み指示を受ける第1のインタフェース制御部と、
前記第１のインタフェース制御部で受けた前記データ書込み指示の複製を作成する多重化制御部と、
前記データ書込み指示と前記データ書込み指示の複製の各々について、前記多重化制御部からの時刻情報と属性情報を管理する監視部と、
前記監視部によって管理される前記時刻情報及び属性情報が格納される監視メモリと、
前記監視部による制御に応じて、前記データ書込み指示を転送する第２のインタフェース制御部と、
前記監視部による制御に応じて、前記データ書込み指示の複製を転送する第３のインタフェース制御部と
を有するデータ多重化装置と、
前記データ多重化装置の前記第２のインタフェース制御部に接続され、前記第２のインタフェース制御部から前記データ書込み指示を受ける第４のインタフェース制御部と、
前記第４のインタフェース制御部に接続され、前記データ書込み指示を受けて、書込みデータの書込み処理を制御する第１のストレージ制御部と、
前記第１のストレージ制御部による制御に応じて、前記書込みデータが格納される第１のストレージドライブ装置と
を有する第１のストレージシステムと、
前記データ多重化装置の前記第３のインタフェース制御部に接続され、前記第３のインタフェース制御部から前記データ書込み指示の複製を受ける第５のインタフェース制御部と、
前記第５のインタフェース制御部に接続され、前記データ書込み指示の複製を受けて、前記書込みデータと同一のデータの書込み処理を制御する第２のストレージ制御部と、
前記第２のストレージ制御部による制御に応じて、前記書込みデータと同一のデータが格納される第２のストレージドライブ装置と
を有する第２のストレージシステムと
を備え、
前記データ多重化装置の前記監視部は、前記監視メモリに格納された前記時刻情報及び前記属性情報に基づいて、前記第１のストレージシステムから返される前記データ書込み指示に対するデータ書込み完了通知、及び前記第２のストレージシステムから返される前記データ書込み指示の複製に対するデータ書込み完了通知を監視して、前記第１のストレージシステムからの前記データ書込み完了通知及び前記第２のストレージシステムからの前記データ書込み完了通知の双方を受けた後に、前記上位装置に対して、前記データ書込み指示に対するデータ書込み完了通知を発行することを特徴とするデータ多重化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、RAIDシステムのようなストレージシステムにデータを多重化して記憶するための技術に関する。
【背景技術】
【０００２】
ストレージシステムにおいて、データ記憶の信頼性を向上させるために、データを多重化、典型的には二重化して記憶することが行われている。例えば、特許文献１には、上位装置に接続され、２つの磁気ディスク装置を有する二重化磁気ディスク装置が開示されている。この二重化磁気ディスク装置は、データを二重化して２つの磁気ディスク装置に格納するために、コピー機能及び両系書込み機能を有する。コピー機能によれば、この二重化磁気ディスク装置は、上位装置からコピー指示を受けて、一方の磁気ディスク装置に記憶されているデータを読み出し、そのデータを他方の磁気ディスク装置に書き込む。両系書込み機能によれば、この二重化磁気ディスク装置は、上位装置から両系書込み指示を受けて、上位装置から受け取ったデータを、２つの磁気ディスク装置の双方に並行して書き込む。
【０００３】
【特許文献１】特開平８―２６３２２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した二重化磁気ディスク装置を用いてデータの二重化を行うためには、上位装置がコピー指示又は両系書込み指示を発行する機能、要するに、データ多重化を制御する機能を有する必要がある。当然に、データの二重化や障害発生後の二重化データの復旧を制御するために、上位装置のCPUや主記憶などの資源が使われる。障害発生後のデータ復旧の際、上位装置の資源が使われるために、上位装置が直ちにその業務を開始することができない場合がある。
【０００５】
従って、本発明の目的は、ストレージシステムにおけるデータ二重化を制御するために、上位装置に必要とされる機能、資源又は処理負荷を低減することにある。
【０００６】
本発明の別の目的は、上位装置がデータ多重化を制御する機能をもたなくても、ストレージシステムにてデータ二重化が行われ得るようにすることにある。
【０００７】
本発明のまた別の目的は、ストレージシステムの障害後の二重化データの復旧を制御するために、上位装置に必要とされる機能、資源又は処理負荷を低減することにある。
【０００８】
上位装置のCPUや主記憶などの資源を極力使わずに、ストレージシステムにおけるデータ多重化や二重化データの復旧が行われ得るようにすることにある。
【０００９】
本発明の他の目的は、後述する実施形態の説明の中で明らかにされる。
【課題を解決するための手段】
【００１０】
本発明に従えば、上位装置と複数のストレージシステムとの間に、データ多重化装置が介在する。データ多重化装置は、上位装置に対して単一のストレージシステムのごとくに振舞う。データ多重化装置は、上位装置から発行されたオリジナルのデータ書込み／読出し指示を多重化して、複数のデータ書込み／読出し指示を生成し、それら複数のデータ書込み／読出し指示を複数のストレージシステムにそれぞれ発行する。データ多重化装置は、複数のデータ書込み／読出し指示に対する複数のストレージシステムからのレスポンスを受け、それらレスポンスに応じて、上位装置に対するレスポンスを生成し、これを上位装置に返す。データ多重化装置は、また、いずれかのストレージシステムに障害が発生した場合、その障害回復後、そのストレージシステムのデータ回復処理を自律的に行う機能も備えることができる。
【００１１】
本発明の一つの具体的な態様に従うデータ多重化システムは、アプリケーションプログラムとオペレーティングシステムを実行するプロセッサを有し、オリジナルのデータ書込み／読出し指示を発行する上位装置と、前記上位装置と接続されたデータ多重化装置と、前記データ多重化装置にそれぞれ接続され、前記上位装置のためにデータを記憶する第1と第2のストレージシステムとを備える。
【００１２】
前記データ多重化装置は、前記上位装置との通信接続を形成する上位インタフェース制御部と、前記第1と第２のストレージシステムとの通信接続をそれぞれ形成する第1と第2の下位インタフェース部と、前記上位インタフェース制御部を通じて、前記上位装置からの前記オリジナルのデータ書込み／読出し指示を受け、前記オリジナルのデータ書込み／読出し指示を多重化して第1と第２のデータ書込み／読出し指示を生成する多重化制御部と、監視メモリと、前記第1と第２のデータ書込み／読出し指示についての時刻情報とデータI/Oアドレスを前記監視メモリに格納し、前記第1と第２のデータ書込み／読出し指示を、前記下位インタフェース制御部を通じて、前記第1と第２のストレージシステムへそれぞれ発行し、前記第1と第２のデータ書込み／読出し指示に対する前記第1と第２のストレージシステムからのレスポンスをそれぞれ受け、前記第1と第２のストレージシステムからのレスポンスに基づいて、前記オリジナルのデータ書込み／読出し指示に対するレスポンスを生成し、そして、前記生成されたレスポンスを前記上位装置へ返す監視部とを有する。
【００１３】
前記監視部は、前記監視メモリに記憶された前記時刻情報に基づいて、前記第1と第２のストレージシステムからのレスポンスが所定の許容時間内に到来したか否かの判断を行い、前記判断の結果に応じて、前記オリジナルのデータ書込み／読出し指示に対するレスポンスを生成する。
【００１４】
一つの実施形態によれば、前記オリジナルのデータ書込み／読出し指示がデータ書込み指示である場合、前記多重化制御部は、前記オリジナルのデータ書込み指示を多重化して第1と第２のデータ書き込み指示を生成する。また、前記監視部は、前記第1と第２のデータ書込み指示を前記第1と第２のストレージシステムへそれぞれ発行し、そして、前記第1と第２のストレージシステムの双方から書込み完了通知を示すレスポンスが前記許容時間内に到来した後に、前記オリジナルのデータ書込み指示に対するレスポンスとしてデータ書込み／読出し完了通知を生成して、前記データ書込み／読出し完了通知を前記上位装置へ返す。
【００１５】
一つの実施形態によれば、前記データ多重化装置に対してデータ回復処理の実行を指示するためのデータ回復制御部が更に設けられる。前記監視部は、前記第１のストレージシステムからは前記書込み完了通知を示すレスポンスが前記許容時間内に到来し、前記第２のストレージシステムからは前記書込み完了を示すレスポンスが前記許容時間内に到来しなかった場合、前記オリジナルのデータ書込み指示に対するレスポンスとしてデータ書込み／読出し完了通知を生成して、前記データ書込み／読出し完了通知を前記上位装置へ返し、さらに、前記第２のストレージシステムでのデータ書込み処理が異常終了したと判断し、前記第２のストレージシステムについての異常終了通知を前記データ回復制御部へ送る。
【００１６】
一つの実施形態によれば、前記監視部は、前記第２のストレージシステムでのデータ書込み処理が異常終了したと判断した後、前記上位装置から新たなオリジナルのデータ書込み指示が発行される都度、前記第１のストレージシステムに対しては、前記新たなオリジナルのデータ書込み指示に基づいた第１のデータ書込み指示を送り、前記第２のストレージシステムに対しては、前記新たなオリジナルのデータ書込み指示に基づいた第２のデータ書込み指示を送らない。そして、前記監視部は、前記新たなオリジナルのデータ書込み指示に応じた第１のデータ書込み指示の時刻情報とデータ書込みアドレスとを前記監視メモリに蓄積する。その後、前記監視部は、前記データ回復制御部からデータ回復処理の実行を指示されたならば、前記監視メモリに蓄積されている今までに発行された前記第１のデータ書込み指示の時刻情報とデータ書込みアドレスに基づいて、前記第１のストレージシステムに記憶されているが前記第２のストレージシステムには記憶されていない未多重化データを抽出し、前記抽出されたに未多重化データを前記第１のストレージシステムから前記第２のストレージシステムにコピーする。
【００１７】
一つの実施形態によれば、データ回復制御部は、前記データ多重化装置に対して、データ回復処理の実行を指示するだけでなく、前記上位装置から発行されるオリジナルのデータ書込み／読出し指示の処理に対する前記データ回復処理の割合も指示する。前記監視部は、前記データ回復制御部から指示された前記割合に応じて、前記データ多重化装置内での、前記オリジナルのデータ書込み／読出し指示の処理と、前記未多重化データを前記第１のストレージシステムから前記第２のストレージシステムにコピーする処理との負荷配分を制御する。
【００１８】
一つの実施形態によれば、前記オリジナルのデータ書込み／読出し指示がデータ読出し指示である場合、前記多重化制御部は、前記オリジナルのデータ読出し指示を多重化して第1と第２のデータ読出し指示を生成する。前記監視部は、前記第1と第２のデータ読出し指示を前記第1と第２のストレージシステムへそれぞれ発行し、そして、前記第1と第２のストレージシステムのいずれか一方から読出しデータを有するレスポンスが前記許容時間内に到来した後に、前記オリジナルのデータ読出し指示に対するレスポンスとして前記読出しデータを前記上位装置へ返す。
【００１９】
一つの実施形態によれば、前記データ多重化装置が、前記第１及び第２のストレージシステムにそれぞれ割り当てられた第１及び第２のデータキャッシュメモリをさらに有する。
【００２０】
そして、前記オリジナルのデータ書込み／読出し指示がデータ書込み指示である場合には、前記多重化制御部は、前記オリジナルのデータ書込み指示を多重化して第1と第２のデータ書き込み指示を生成する。前記監視部は、前記第1と第２のデータ書込み指示を前記多重化制御部から受け、前記第１及び第２のデータキャッシュメモリにアクセスせずに直ちに、前記第1と第２のデータ書込み指示を前記第1と第２のストレージシステムへそれぞれ発行する。
【００２１】
一方、前記オリジナルのデータ書込み／読出し指示がデータ読出し指示である場合には、前記多重化制御部は、前記オリジナルのデータ読出し指示を多重化して第1と第２のデータ読出し指示を生成する。前記監視部は、前記第1と第２のデータ読出し指示を前記多重化制御部から受け、前記第1と第２のデータキャッシュメモリからそれぞれ前記第１と第２の読出し指示の対象のデータを探し、前記対象のデータが前記第1と第２のデータキャッシュメモリからそれぞれ見つからなかった場合、前記第1と第２のデータ読出し指示を前記第1と第２のストレージシステムへそれぞれ発行する。
【００２２】
データ多重化システムは、前記上位装置を有したホストコンピュータを備える。そして、前記データ多重化装置は、前記ホストコンピュータの外部に存在して、前記ホストコンピュータに接続されている。
【００２３】
データ多重化システムは、前記上位装置を有したホストコンピュータを備える。そして、前記データ多重化装置は、前記ホストコンピュータの内部に組み込まれている。
【００２４】
一つの実施形態によれば、前記データ多重化装置は、前記ストレージシステムの内部に組み込まれている。
【００２５】
本発明のまた別の具体的な態様に従うデータ多重化システムは、上位装置と、前記上位装置に接続されたデータ二重化装置と、前記データ二重化装置に接続された第１及び第２のストレージシステムとを有する。前記上位装置は、アプリケーションプログラム及びオペレーティングシステムが格納されるメモリと、前記アプリケーションプログラム及びオペレーティングシステムを実行するプロセッサとを有する。
【００２６】
前記データ二重化装置は、前記上位装置と接続され、前記上位装置からのデータ書込み指示を受ける第1のインタフェース制御部と、前記第１のインタフェース制御部で受けた前記データ書込み指示の複製を作成する多重化制御部と、前記データ書込み指示と前記データ書込み指示の複製の各々について、前記多重化制御部からの時刻情報と属性情報を管理する監視部と、前記監視部によって管理される前記時刻情報及び属性情報が格納される監視メモリと、前記監視部による制御に応じて、前記データ書込み指示を転送する第２のインタフェース制御部と、前記監視部による制御に応じて、前記データ書込み指示の複製を転送する第３のインタフェース制御部とを有する。
【００２７】
前記第１のストレージシステムは、前記データ多重化装置の前記第２のインタフェース制御部に接続され、前記第２のインタフェース制御部から前記データ書込み指示を受ける第４のインタフェース制御部と、前記第４のインタフェース制御部に接続され、前記データ書込み指示を受けて、書込みデータの書込み処理を制御する第１のストレージ制御部と、前記第１のストレージ制御部による制御に応じて、前記書込みデータが格納される第１のストレージドライブ装置とを有する。また、前記第２のストレージシステムは、前記データ多重化装置の前記第３のインタフェース制御部に接続され、前記第３のインタフェース制御部から前記データ書込み指示の複製を受ける第５のインタフェース制御部と、前記第５のインタフェース制御部に接続され、前記データ書込み指示の複製を受けて、前記書込みデータと同一のデータの書込み処理を制御する第２のストレージ制御部と、前記第２のストレージ制御部による制御に応じて、前記書込みデータと同一のデータが格納される第２のストレージドライブ装置とを有する。
【００２８】
前記データ多重化装置の前記監視部は、前記監視メモリに格納された前記時刻情報及び前記属性情報に基づいて、前記第１のストレージシステムから返される前記データ書込み指示に対するデータ書込み完了通知、及び前記第２のストレージシステムから返される前記データ書込み指示の複製に対するデータ書込み完了通知を監視して、前記第１のストレージシステムからの前記データ書込み完了通知及び前記第２のストレージシステムからの前記データ書込み完了通知の双方を受けた後に、前記上位装置に対して、前記データ書込み指示に対するデータ書込み完了通知を発行する。
【００２９】
本発明は、上述したデータ二重化装置も提供する。
【００３０】
本発明は更に、上述したデータ二重化装置によって行われるデータ二重化の方法も提供する。
【発明の効果】
【００３１】
本発明に従えば、ストレージシステムにおけるデータ二重化を制御するために、上位装置に必要とされる機能、資源又は処理負荷を低減することができる。
【発明を実施するための最良の形態】
【００３２】
図１は、本発明の一実施形態にかかるデータ多重化システムの全体の構成を示す。
【００３３】
図１に示すように、或る業務処理を行なうホストコンピュータ１がある。このホストコンピュータ１には、その図示は省略されているが、CPU及び主メモリを有し、上記業務処理を行うためのアプリケーションプログラムとオペレーティングシステム（OS）とがインストールされており、CPUは、これらのプログラムを主メモリにロードして実行するようになっている。また、このホストコンピュータ１のために、その業務処理で使用されるデータを記憶するための少なくとも２台のストレージシステム、例えばRAIDの原理に従うディスクサブシステム１７，１８、が存在する。更に、本発明の原理に従う少なくとも１台のデータ二重化装置３が、ホストコンピュータ１とディスクサブシステム１７，１８との間に介在する。ホストコンピュータ１は、その業務処理で使用するデータのデータ書込み指示又はデータ読出し指示（以下、これら指示を総称して「データI/O（入力／出力）指示」という）をデータ二重化装置３に出力するようになっている。データ二重化装置３は、ディスクサブシステム１７，１８を制御することにより、ホストコンピュータ１からのデータI/O指示を処理し、そのデータI/O指示に対するレスポンスをホストコンピュータ１に返すようになっている。
【００３４】
ホストコンピュータ１は、ディスクサブシステムと通信可能に接続してそれとのデータ通信を制御するための少なくとも一つのディスクインタフェース制御部２を有する。このディスクインタフェース制御部２には、ディスクサブシステム１７，１８が接続されるのではなく、代わって、上述したデータ二重化装置３が通信線又は通信ネットワークを介して接続される。このデータ二重化装置３は、ディスクサブシステムと通信可能に接続してそれとのデータ通信を行なうための少なくとも２つのディスクインタフェース制御部１５，１６を有する。これらディスクインタフェース制御部１５，１６には、それぞれ、上述したディスクサブシステム１７，１８が通信線又は通信ネットワークを介して接続される。
【００３５】
データ二重化装置３は、ホストコンピュータと通信可能に接続してそれとの通信を制御するための少なくとも一つのホストインタフェース制御部４を有する。このホストインタフェース制御部４が、上述したホストコンピュータ１のディスクインタフェース制御部２と接続される。ディスクサブシステム１７，１８も、それぞれ、ホストインタフェース制御部１９，２０を有し、それらホストインタフェース制御部１９，２０が上述したデータ二重化装置３のディスクインタフェース制御部１５，１６とそれぞれ接続される。ディスクサブシステム１７，１８は、それぞれ、データを記憶するためのディスクドライブ２３，２４と、上記ホストインタフェース制御部１９，２０とディスクドライブ２３，２４との間のデータの転送を制御するディスク制御部２１，２２とを有する。ディスクドライブ２３，２４の各々は、単一の記録ディスクドライブ（例えばハードディスクドライブ）であってもよいが、通常は、多数の記録ディスクドライブ（例えばハードディスクドライブ）のアレイから構成され、そして、例えばRAIDの原理に従ってディスク制御部２１，２２により制御される。
【００３６】
上記の構成から分かるように、ホストコンピュータ１は、ディスクサブシステム１７，１８とは直接的には通信せず、代わりに、データ二重化装置３と直接的に通信することになる。データ二重化装置がもつホストインタフェース制御部４は、一つのディスクサブシステム１７又は１８がもつホストインタフェース制御部１９又は２０と同様なものである。よって、ホストコンピュータ１のディスクインタフェース制御部２は、これに一つのディスクサブシステムと通信する場合と同様の通信制御を、データ二重化装置との通信に対して行う。要するに、データ二重化装置３は、２つのディスクサブシステム１７，１８を、あたかも一つディスクサブシステムであるかのように、ホストコンピュータ２に対して見せる。その一方で、データ二重化装置３は、データ二重化制御機能を有しており、この機能により、ホストコンピュータ１が使用するデータを二重化し、二重化されたデータを２つのディスクサブシステム１７，１８に分けて格納する。このデータ二重化の制御動作はデータ二重化装置３の内部で完全に行なうことができ、ホストコンピュータ１からそのための格別の指示や制御を受ける必要はない。従って、ホストコンピュータ１は、データ二重化の制御機能を持つ必要は無い。ホストコンピュータ１は、データ二重化装置３に対して、これがあたかも一つのディスクサブシステムであるかのごとくに振舞えばよい。
【００３７】
このような機能を有するデータ二重化装置３の内部の構成を以下に説明する。
【００３８】
図１に示すように、データ二重化装置は、I/O二重化制御部５と、I/O監視部６と、I/O監視メモリ７と、前述した２つのディスクインタフェース制御部１５，１６にそれぞれ接続された２つのデータ通信経路１１，１２と、この２つのデータ通信経路１１，１２にそれぞれ接続された２つのデータキャッシュメモリ１３とを有する。
【００３９】
I/O二重化制御部５は、ホストインタフェース制御部４及びI/O監視部６に接続され、さらに、２つの通信経路１１，１２に接続されている。I/O二重化制御部５は、ホストコンピュータ１からのデータ書込み指示をホストインタフェース制御部４を通じて受け、そのデータ書込み指示を二重化し、その二重化されたデータ書込み指示をI/O監視部６に渡し、そして、ホストコンピュータ１からのデータ書込み指示に対するレスポンスとしてのデータ書込み完了通知又は異常終了通知をホストインタフェース制御部４を通じてホストコンピュータ１へ返すという二重書き制御機能を有する。また、I/O二重化制御部５は、ホストコンピュータ１からのデータ読出し指示をホストインタフェース制御部４を通じて受け、そのデータ読出し指示を二重化し、その二重化されたデータ読出し指示をI/O監視部６に渡し、そして、ホストコンピュータ１からのデータ読出し指示に対するレスポンスとしてのデータ読出し完了通知（読み出されたデータ）（以下、データ書込み完了通知とデータ読出し完了通知を総称して「I/O完了通知」という）又は異常終了通知をホストインタフェース制御部４を通じてホストコンピュータ１へ返すという二重読み制御機能を有する。さらに、I/O二重化制御部５は、２つのディスクサブシステム１７，１８のいずれか一方に障害が発生した場合、データ二重化の処理を停止して、正常である他方のディスクサブシステム１８（又は１７）のみに対してデータの書込み及び読出しの制御を行う（このような制御状態を、以下「パススルーモード」という）というパススルーモード制御機能を有している。
【００４０】
I/O監視部６は、I/O二重化制御部５及びI/O監視メモリ７に接続され、さらに、２つの通信経路１１，１２に接続されている。I/O監視部６は、上述したI/O二重化制御部５から二重化されたI/O指示（つまり、データ書込み指示又はデータ読出し指示）を受け、それら二重化されたI/O指示を、それぞれ、ディスクインタフェース制御部１５，１６を通じて２つのディスクサブシステム１７，１８へ送り、そして、それらI/O指示に対するレスポンスとしてのI/O完了通知（つまり、書込み完了通知又は読出し完了通知（読出しデータ））をそれぞれディスクインタフェース制御部１５，１６を通じて２つのディスクサブシステム１７，１８から受けて、それをI/O二重化制御部５に渡すというI/O指示中継機能を有する。また、I/O監視部６は、二重化されたI/O指示がディスクサブシステム１７，１８にて正常に処理されたか否か（つまり、ディスクサブシステム１７，１８に障害がないか否か）を、ディスクサブシステム１７，１８からのI/O完了通知を監視することで判断し、そして、その判断結果をI/O二重化制御部５に通知するという二重化I/O監視機能を有する。この二重化I/O監視機能を行うために、I/O監視部６は、二重化されたI/O指示の処理の状態を管理するためのI/O管理情報をI/O監視メモリ７に記録し、それを参照する。I/O管理情報には、その二重化されたI/O指示の受付時刻（又は発行時刻）、I/O属性（例えば、ホストコンピュータ１の識別、書込みか読み出しかの区別、及び、読出しアドレス又は書き込みアドレス、など）、及び、各I/O指示に対応するI/O完了通知の有無とその受信時刻、などが含まれる。I/O監視メモリ７に記録された二重化I/O管理情報は、ディスクサブシステム１７，１８のいずれか一方に障害が発生した後に、その障害のあったディスクサブシステム１７（又は１８）内のデータを、正常な方のディスクサブシステム１８（又は１７）内のデータに基づいて復元して、データ二重化を完璧なものにするためにも使用される。I/O監視部６は、また、上述した二重化I/O監視機能によって一方のディスクサブシステム１７（又は１８）お異常を検知した場合、そのディスクサブシステム１７（又は１８）が障害から回復するまで、そのディスクサブシステム１７（又は１８）との通信経路１１（又は１２）を閉塞し、そして、I/O二重化制御部５に上述したパススルーモードで動作するよう指示するという機能も有している。
【００４１】
データキャッシュメモリ１３，１４は、それぞれ、データ読出し指示によってディスクサブシステム１７，１８から読み出されたデータを一時的に保持するために使用される。すなわち、ディスクサブシステム１７，１８から読み出されたデータは、それぞれ、ディスクインタフェース制御部１５，１６によってデータキャッシュメモリ１３，１４に書き込まれた後に、I/O監視部６によってデータキャッシュメモリ１３，１４から読み出され、そして、ホストコンピュータ１に送られることになる。しかし、データキャッシュメモリ１３，１４は、データ書込み指示によってディスクサブシステム１７，１８に書き込まれるべきデータを保持するためには使用されない。すなわち、ホストコンピュータ１からの書込みデータがデータ二重化装置３に受け取れれると、その書込みデータは、データキャッシュメモリ１３，１４を経由せずに、直ちにディスクインタフェース制御部１５．１６へ渡されて、ディスクサブシステム１７，１８に送られることになる。このように、データ書込みの場合には、ホストコンピュータ１からの書込みデータが、データ二重化装置３によって、データキャッシュメモリ１３，１４を使用せずに、即座にディスクサブシステム１７，１８に転送されることにより、データ二重化装置３の故障に起因するデータ損失の危険性が低減する。
【００４２】
データ二重化装置３は、さらに、このデータ二重化装置３の動作及び機能についての基本的な制御を行うための内部制御部８を有する。内部制御部８は、二重化装置３内の上述した諸部（例えば、ホストインタフェース制御部４、I/O二重化制御部５、I/O監視部６、I/O監視メモリ７、ディスクインタフェース制御部１５，１６など）と接続される（その接続ラインは図示省略してある）。内部制御部８は、共有メモリ８Aを有し、共有メモリ８Aは二重化装置３内の上述した諸部からもアクセスされ得る。内部制御部８は、また、外部インタフェース制御部９を介して、データ二重化装置３の外に配置された制御用コンピュータ１０に接続される。内部制御部８は、制御用コンピュータ１０から、データ二重化装置３が動作及び機能の基本的制御に必要な所定の複数項目からなる初期設定情報を受けて、これを共有メモリ８Aに記憶する。そして、共有メモリ８Aに記憶された初期設定情報に基づいて、二重化装置３内の上述した諸部、例えば、ホストインタフェース制御部４、I/O二重化制御部５、I/O監視部６、I/O監視メモリ７、ディスクインタフェース制御部１５，１６などの基本的な動作及び機能が制御される。
【００４３】
上述したデータ二重化装置３のより具体的な機能と動作については、以下の説明から明らかになる。
【００４４】
以下では、図１に示したデータ二重化システムの動作について、図２〜図９の流れ図を参照して説明する。
【００４５】
図２は、データ二重化装置の初期設定の流れを示す。
【００４６】
図２に示すように、データ二重化装置の初期設定処理７４では、ステップ７５で、データ二重化装置３のディスクインタフェース制御部１５，１６にそれぞれディスクサブシステム１７，１８が通信可能に接続される。ステップ７６で、初期設定情報が制御用コンピュータ１０からデータ二重化装置３の内部制御部８に入力される。
【００４７】
初期設定情報には、対象ディスク領域設定及びI/O監視閾値設定が含まれる。対象ディスク領域設定には、ペア領域設定とロジカル領域設定が含まれる。ペア領域設定とは、一方のディスクサブシステム１７内のどのディスク領域と他方のディスクサブシステム１８内のどのディスク領域とがペアであるかを定義したものであり、そのペアのディスク領域には同じ二重化されたデータが格納されることになる。ロジカル領域設定とは、２つのディスクサブシステム１７，１８内のディスク領域のロジカルアドレスを定義したものである。このロジカルアドレスは、例えば、ロジカルボリューム番号とロジカルブロック番号などから構成され、ホストコンピュータ１からのI/O指示に含まれるI/Oアドレス（書込みアドレス及び読出しアドレス）はロジカルアドレスで表されることになる。上述のペア領域設定によって定義された２つのディスクサブシステム１７，１８内のペアのディスク領域には、同じロジカルアドレスが割り当てられるようになっており、それにより、２つのディスクサブシステム１７，１８が単一のディスクサブシステムであるかのごとくにホストコンピュータ１に見えることになる。
【００４８】
上述したI/O監視閾値設定には、データ書込み許容時間とデータ読出し許容時間の設定が含まれており、これらの時間設定は、I/O指示がディスクサブシステム１７，１８の各々にて正常に処理されたか否か（つまり、ディスクサブシステム１７，１８の各々に障害が無いか否か）を判断するためにI/O監視部６により使用される。すなわち、データ書込み許容時間とは、I/O監視部６がデータ書込み指示が正常に処理されたと判断するための、各ディスクサブシステム１７，１８にデータ書込み指示を送ってから各ディスクサブシステム１７，１８からI/O完了通知が返されるまでの許容時間である。この時間が過ぎてもディスクサブシステム１７又は１８からI/O完了通知が返されない場合には、そのデータ書込み指示がディスクサブシステム１７又は１８で正常に処理されなかった（そのディスクサブシステム１７又は１８に障害がある）と、I/O監視部６によって判断されることになる。データ読出し許容時間とは、I/O監視部６がデータ読出し指示が正常に処理されたと判断するための、各ディスクサブシステム１７，１８にデータ読出し指示を送ってから各ディスクサブシステム１７，１８からよI/O完了通知が返されるまでの許容時間である。この時間が過ぎてもディスクサブシステム１７又は１８から読出しデータ（I/O完了通知）が返されない場合には、そのデータ読出し指示がディスクサブシステム１７又は１８で正常に処理されなかった（そのディスクサブシステム１７又は１８に障害がある）と、I/O監視部６によって判断されることになる。
【００４９】
以上の初期設定が終わると、ステップ７７で、制御用コンピュータ１０から内部制御部８へ、データ二重化制御機能を動作開始が指示される。この指示を受けて、データ二重化制御機能が上記初期設定情報に基づいて有効に動作できるようになり、それより、データ二重化装置１０は、２つのディスクサブシステム１７，１８を制御して、ホストコンピュータから見るとあたかも単一のディスクサブシステムのごとに振舞うことができるようになる。
【００５０】
その後、ステップ７８では、ホストコンピュータ１がデータ二重化装置３に通信可能に接続される。そして、ステップ７９で、データ二重化装置３は、ホストコンピュータ１に対して、あたかも単一のディスクサブシステムであるかのごとくに動作を開始し、それにより、以下に説明するデータ書込み処理、データ読込み処理又は障害回復処理などを行なうことになる。
【００５１】
図３から図５は、データ書込み処理の流れを示す。
【００５２】
図３に示すように、データ書込み処理２５では、ステップ２６で、ホストコンピュータ１のディスクインタフェース制御部２より、データ二重化装置３に対して、オリジナルのデータ書込み指示が発行される。このオリジナルのデータ書込み指示は、データ二重化装置３のホストインタフェース制御部４を通じてI/O二重化制御部５に入力される。ステップ２７で、I/O二重化制御部５は、そのオリジナルのデータ書込み指示の複製を作成することにより、そのデータ書込み指示を二重化する。ステップ２８で、I/O監視部６がその二重化されたデータ書込み指示を受けて、その二重化されたデータ書込み指示の各々のI/O管理情報、つまり、各書込み指示の受付時刻（又は発行時刻）及びI/O属性（例えば、ホストコンピュータ１の識別、書込みか読み出しかの区別、及び、書込みアドレス、など）を、I/O監視メモリ７に記憶する。そして、I/O監視部６は、その二重化されたデータ書込み指示をそれぞれ２つのディスクサブシステム１７，１８への通信経路１１，１２へ出力する。
【００５３】
ステップ２９，３１では、２つのディスクインタフェース制御部１５，１６が、二重化されたデータ書込み指示を２つのディスクサブシステム１７，１８へそれぞれ送信する。既に述べたように、データ書込み処理では、データ二重化装置３内のデータキャッシュメモリ１３，１４は使用されないので、ディスクサブシステム１７，１８へのデータ書込み指示の送信は、ホストコンピュータ１からのデータ書込み指示の受付と同期して（つまり即座に）行われることになる。ステップ３０，３２では、２つのディスクサブシステム１７，１８が、それぞれ、データ書込み指示に従ってディスクドライブ２３，２４へのデータ書込み処理を実施する。そして、２つのディスクサブシステム１７，１８は、それぞれのデータ書込み処理の結果を示す書込みレスポンスをデータ二重化装置３へ返す。
【００５４】
ステップ３３では、データ二重化装置３のI/O監視部６が、通信経路１１，１２の各々を通じてディスクサブシステム１７，１８の各々からの書込みレスポンスを受ける。ステップ３４で、I/O監視部６が２つの通信経路１１，１２からのレスポンスが共に、書込み指示の受付時刻から前述の書込み許容時間以内に到来し、且つ、書込み完了（データ書込み処理が正常に実施されたこと)を示しているかどうかをチェックする。ステップ３４のチェックの結果が肯定の場合、制御は図４に示すルーチンAに進み、一方、そのチェックの結果が否定の場合、制御は図４に示すルーチンBに進む。
【００５５】
図４に示すように、ルーチンAでは、ステップ３７で、I/O監視部６がI/O二重化制御部５へI/O完了通知を発行する。ステップ３８で、I/O二重化制御部５が、ホストインタフェース制御部４を通じてホストコンピュータ１へ、I/O完了通知を発行する。
【００５６】
図４に示すように、ルーチンBでは、ステップ３９で、I/O監視部６が、２つの通信経路１１，１２のいずれか一方から書き込み完了を示すレスポンス(書き込み完了通知）が到来しているかどうかがチェックされる。このチェックの結果が肯定の場合、制御は図５に示すルーチンCへ進む。一方、このチェックの結果が否定の場合（つまり、２つの通信経路１１，１２のいずれからも書込み完了通知が来ていない場合）には、ステップ４０で、I/O監視部６が、I/O二重化制御部５へ、I/O異常終了通知を発行する。また、内部制御部８が、制御用コンピュータ１０へ、I/O異常終了通知を発行する。そして、ステップ４１で、I/O二重化制御部５が、ホストインタフェース制御部４を通じて、ホストコンピュータ１へ、I/O異常終了通知を発行する。
【００５７】
上述したように、２つの通信経路１１，１２の一方のみから書き込み完了通知が到来した場合、制御は図５に示すルーチンCに進む。ルーチンCでは、ステップ４３で、I/O監視部６が、書込み完了通知が到来しなかった方の通信経路１１（又は１２）を閉塞する。また、内部制御部８が、制御用コンピュータ１０へ、I/O異常終了通知を発行する。ステップ４４で、I/O監視部６が、I/O二重化制御部５へ、I/O完了通知を発行する。ステップ４５で、I/O二重化制御部５が、ホストインタフェース制御部４を通じてホストコンピュータ１へ、I/O完了通知を発行する。さらに、ステップ４６で、I/O監視部６が、I/O二重化制御部５へ、その動作モードを二重化処理モードからパススルーモードへ変更するよう指示する。それを受けて、I/O二重化制御部５は、ステップ４７で、動作モードをパススルーモードに変更し、それにより、データ二重化処理は行わずに、正常な通知経路１２（又は１１）のみを使用してデータのI/O処理を行なうようになる。以後、パススルーモードが終了するまで、I/O監視部６は、ステップ４８で、データ二重化処理が適用されなかったデータ書込み指示のI/O管理情報を監視メモリ７に記録しつつ、上述したようなデータ書込み処理を継続する。それにより、監視メモリ７には、データ二重化処理が適用されなかったデータ書込み指示のI/O管理情報が蓄積されていく。この後、ルーチンDで示す障害回復処理が行われることになるが、これについては後に説明する。因みに、パススルーモード中に監視メモリ７に蓄積されたデータ二重化処理が適用されなかったデータ書込み指示のI/O管理情報は、ルーチンDで示す障害回復処理において利用されることになる。
【００５８】
図６及び図７は、データ読出し処理の流れを示す。
【００５９】
図６に示すように、データ読出し処理５１では、ステップ５２で、ホストコンピュータ１のディスクインタフェース制御部２より、データ二重化装置３に対して、オリジナルのデータ読出し指示が発行される。このオリジナルのデータ読出し指示は、データ二重化装置３のホストインタフェース制御部４を通じてI/O二重化制御部５に入力される。ステップ５３で、I/O二重化制御部５は、そのオリジナルのデータ読出し指示の複製を作成することにより、そのデータ読出し指示を二重化する。ステップ５４で、I/O監視部６がその二重化されたデータ読出し指示を受けて、その二重化されたデータ読出し指示の各々についてのI/O管理情報、つまり、各データ読出し指示の受付時刻（又は発行時刻）及びI/O属性（例えば、ホストコンピュータ１の識別、書込みか読み出しかの区別、及び、読出しアドレス、など）を、I/O監視メモリ７に記憶する。そして、I/O監視部６は、その二重化されたデータ読出し指示をそれぞれ２つのディスクサブシステム１７，１８への通信経路１１，１２へ出力する。
【００６０】
ステップ５５，６１では、通信経路１１，１２上のデータ読出し指示に応答して、キャッシュメモリ１３，１４がそれぞれ対象のデータをキャッシュメモリ１３，１４から探す。ステップ５６，６２でキャッシュメモリ１３，１４にて対象データが見つかれば、ステップ５７，６３で、キャッシュメモリ１３，１４は、それぞれデータ読出し完了を示すレスポンス（読み出し完了通知）をI/O監視部６に返し、ステップステップ６６でI/O監視部６がその読出し完了通知を受ける。
【００６１】
一方、ステップ５６，６２でキャッシュメモリ１３，１４から対象データが見つかなかった場合には、ステップ６８，６４で、ディスクインタフェース制御部１５，１６が、２つのディスクサブシステム１７，１８へ、データ読出し指示をそれぞれ送信する。ステップ６０，６５では、２つのディスクサブシステム１７，１８が、それぞれ、データ読出し指示に従ってディスクドライブ２３，２４からのデータ読出し処理を実施する。そして、２つのディスクサブシステム１７，１８は、それぞれのデータ読出し処理の結果を示す読出しレスポンスをデータ二重化装置３へ返す。
【００６２】
ステップ６６では、データ二重化装置３のI/O監視部６が、通信経路１１，１２の各々を通じてディスクサブシステム１７，１８の各々からの読出しレスポンスを受ける。制御は図７に示すルーチンEへ進む。ルーチンEでは、ステップ６８で、I/O監視部６が、データ読出し指示の受付時刻から前述した読出し許容時間が過ぎるまでに、２つの通信経路１１，１２のいずれか一方から読出し完了通知が到来しているかどうかをチェックする。このチェックの結果が肯定の場合、ステップ６９で、I/O監視部６が、読出し完了通知の早かった方の通信経路１１（又は１２）から受け取った読出しデータを、I/O二重化制御部５へ送る。ステップ７０で、I/O二重化制御部５が、ホストインタフェース制御部４を通じてホストコンピュータ１へ、読出しデータを送る。
【００６３】
一方、ステップ６８のチェックの結果が否定の場合（つまり、２つの通信経路１１，１２のいずれからも読出し完了通知が来ていない場合）には、ステップ７１で、I/O監視部６が、I/O二重化制御部５へ、I/O異常終了通知を発行する。また、ステップ７２で、内部制御部８が、制御用コンピュータ１０へ、I/O異常終了通知を発行する。そして、ステップ７３で、I/O二重化制御部５が、ホストインタフェース制御部４を通じて、ホストコンピュータ１へ、I/O異常終了通知を発行する。
【００６４】
上述したステップ６８〜７０から分かるように、データ読み込み処理では、いずれか一方のディスクサブシステム１７又は１８から読出し完了通知が来なくても、格別の処置（例えば、データ書込み処理のときのように、I/O異常終了通知を制御用コンピュータに通知したり、パススルーモードに入るというような処理）は行われない。その一の理由は、そのような格別の処置を行わなくても特に問題がないからであるからである。別の理由は、データ読出し処理が簡単で高速に行えるからである。さらに別の理由は、もし一方のディスクサブシステム１７又は１８で障害が生じていた場合、早晩データ書込み処理でそれが検知されて然るべき処置が行われることになるからである。
【００６５】
図８及び図９は、一方のディスクサブシステム１７又は１８に障害が発生した場合における障害回復処理の流れを示す。
【００６６】
図８に示すように、障害回復処理５０では、ステップ８０で、閉塞された経路のディスクインタフェース制御部１５（又は１６）に接続されているディスクサブシステム１７（又は１８）が、新たな正常なディスクサブシステムに交換されるか、又は、ディスクサブシステム１７（又は１８）の障害部分が修復される。ステップ８１では、制御用コンピュータ１０が、内部制御部８を通じて、そのディスクサブシステムの状態（特に、ディスクドライブに記憶されているデータの状態）をチェックする。ステップ８２では、そのチェックの結果、そのディスクサブシステムの状態が、障害発生当時と同じ状態であるか否かが、制御用コンピュータ１０によって判断される。例えば、障害のあったディスクディスクサブシステムの電源を再投入したところ障害が解消されたような場合には、ステップ８２の判断結果は肯定となる。一方、障害のあったディスクディスクサブシステムが別のディスクサブシステムに交換された場合には、ステップ８２の判断結果は否定となる。
【００６７】
ステップ８２の判断結果が肯定である場合、ステップ８３で、制御用コンピュータ１０から内部制御部８内の共有メモリ８Aに、I/O処理に対するデータ回復処理の割合が設定される。ここで、データ回復処理とは、障害のあったディスクサブシステムに対して実行されなかった過去のデータ書込み指示を実施して、二重化されなかったデータを回復する処理である。そして、ステップ８３で設定されるデータ回復処理の割合とは、ホストコンピュータ１からのI/O指示の処理と、二重化されなかったデータの回復処理とを、データ二重化装置３内でどの程度の負荷配分で実行するかを指定するものである。例えば、今がホストコンピュータ１の休止中であるならば、上記割合を１００パーセント（つまり、データ回復処理のみを行う）に設定することができる、一方、今がホストコンピュータ１の動作中であるならば、上記割合は、ホストコンピュータ１の業務に大きな問題を与えないような適当な値、例えば３０パーセント或いは５０パーセントに設定されるであろう。このように割合が設定された後、ステップ８４で、制御用コンピュータ１０から内部制御部８に障害回復処理の実行が指示される。
【００６８】
ステップ８５では、I/O監視部６の制御により、設定されたデータ回復処理の割合に従って、正常な通信経路１２（又は１１）の側のディスクサブシステム１８（又は１７）に記憶されているまだ二重化されてないデータが、閉塞された通信経路１１（又は１２）のディスクサブシステム１７（又は１８）へコピーされる。二重化されていないデータが何処に記憶されているかは、図５に示したステップ４８により障害発生時から現在までの間にI/O監視メモリ７に蓄積されたデータ書込み指示のI/O管理情報（例えば、書込みアドレス）を参照することにより把握される。この後、制御は図９に示すjルーチンFへ進む。
【００６９】
図９に示すように、ルーチンFでは、ステップ９１で、二重化されていなかった全てのデータのコピーが完了すると、ステップ９２で、I/O監視部６が、閉塞されていた通信経路１１（又は１２）を開放し、そして、ステップ９３で、内部制御部８が、制御用コンピュータ１０へ、回復処理終了を通知する。ステップ９４で、I/O二重化制御部５が、その動作モードをパススルーモードからデータ二重化モードに戻す。これにより、既に説明したようなデータ二重化の処理が再開される。
【００７０】
図８に示したステップ８２の判断結果が否定であった場合、制御は図９に示すルーチンGへ進む。ルーチンGでは、ステップ８８で、制御用コンピュータ１０から内部制御部８内の共有メモリ８Aに、I/O処理に対するデータ回復処理の割合が設定される。そして、ステップ８９で、制御用コンピュータ１０から内部制御部８に障害回復処理の実行が指示される。すると、ステップ９０で、I/O監視部６の制御により、設定されたデータ回復処理の割合に従って、正常な通信経路１２（又は１１）の側のディスクサブシステム１８（又は１７）に記憶されている全てのデータが、閉塞された通信経路１１（又は１２）のディスクサブシステム１７（又は１８）へコピーされる。ステップ９１で、全てのデータのコピーが完了すると、ステップ９２で、I/O監視部６が、閉塞されていた通信経路１１（又は１２）を開放し、そして、ステップ９３で、内部制御部８が、制御用コンピュータ１０へ、回復処理終了を通知する。ステップ９４で、I/O二重化制御部５が、その動作モードをパススルーモードからデータ二重化モードに戻す。。これにより、既に説明したようなデータ二重化の処理が再開される。
【００７１】
以上説明した実施形態によれば、ホストコンピュータ１がデータ二重化の制御機能をもたなくても、データ二重化を行うことができる。また、ホストコンピュータ１の資源を使用せずに、データの二重化及び復旧を行うことができる。また、データ二重化装置３に障害が発生した場合でも、データが損失する危険性が小さい。また、２つのディスクサブシステムのいずれに障害が生じた場合でも、正常な方のディスクサブシステムを用いてホストコンピュータ１の業務処理を継続させることができる。この最後の利点は、従来の正ストレージシステムと副ストレージシステムを用いて、正ストレージシステムのデータを副ストレージシステムにコピーするという方法で行う二重化システムでは得られない利点である。
【００７２】
図１０は、本発明の別の実施形態にかかるデータ多重化システムの全体の構成を示す。
【００７３】
図１０に示すデータ多重化システムでは、ホストコンピュータ及びデータ二重化装置が二重化されており、それにより、図１に示したシステムよりも一層信頼性が高い。すなわち、二重化されたホストコンピュータ９６，１０３が、二重化されたLANを介して相互通可能に接続されている。それらの二重化されたホストコンピュータ９６，１０３は、普段はそれらの内の所定の一方が業務処理を行ない、その所定の一方に障害が生じると、他方が代わってその業務処理を行うように切り替え制御される。一方のホストコンピュータ９６には、二重化されたデータ二重化装置１１０，１１１が接続されている。これらの二重化されたデータ二重化装置１１０，１１１は、普段はそれらの内の所定の一方がデータI/O処理を行ない、その所定の一方に障害が生じると、他方が代わってそのデータI/O処理を行うように切り替え制御される。他方のホストコンピュータ１０３にも、二重化されたデータ二重化装置１１２，１１３が接続されている。これらの二重化されたデータ二重化装置１１２，１１３も上記と同様に切り替え制御される。これら４台のデータ二重化装置１１２，１１３はいずれも、共通の二重化されたディスクサブシステム１１４，１１８に接続されている。
【００７４】
ホストコンピュータ９６，１０３は、それぞれ、CPU９９，１０６、主メモリ１００，１０７、二重化されたLANと接続するための二重化されたLANインタフェース９７，９６，１０４，１０３、及び二重化されたデータ二重化装置と接続するための二重化されたディスクインタフェース１０１，１０２，１０８，１０９を有する。データ二重化装置１１０，１１１，１１２，１１３は、それぞれ、図１に示したデータ二重化装置３と同様の構成及び機能を有する。ディスクサブシステム１１４，１１８は、それぞれ、４台のデータ二重化装置１１０，１１１，１１２，１１３と接続するための４つのホストインタフェース制御部のセット１１５，１１９、ディスク制御部１１６，１２０、及びディスクドライブ１１７，１２１を有する。
【００７５】
このデータ二重化システムにおいても、図１に示したシステムと同様に、ホストコンピュータ９６，１０３は単一のディスクサブシステムと通信している場合と同じように動作するだけで、データの二重化が自動的に行われることになる。
【００７６】
図１１は、図１０に示したホストコンピュータ９６，１０３に搭載されるソフトウェアの構成を示す。
【００７７】
図１１に示すように、ホストコンピュータ９６，１０３は、それぞれ、オペレーティングシステム（OS）１２４，１３２、及び業務処理を行うアプリケーションプログラム１２３，１３１を有する。さらに、ホストコンピュータ９６，１０３は、それぞれ、システム多重化ソフトウェア１２５，１３３、デバイス切替ソフトウェア１２６，１３４、及び二重化されたデータ二重化装置１１０，１１１，１１２，１１３をそれぞれ制御するためのデバイスドライバソフトウェア１２８，１２９，１３５，１３６を有する。ホストコンピュータ９６，１０３内のシステム多重化ソフトウェア１２５，１３３は、LANを通じて相互に通信可能であり、それらホストコンピュータ９６，１０３の内の所定の一方が普段は業務処理を行ない、その所定の一方に障害が発生したときには、それに代わって他方が業務処理を引き続いて行うように、それぞれのOS１２４，１３２及びアプリケーションプログラム１２３，１３１を制御する。デバイス切替ソフトウェア１２６，１３４は、それぞれ、二重化されたデータ二重化装置１１０，１１１，１１２，１１３の内の所定の一方を普段は使用し、その所定の一方に障害が生じたときには、それに代えて他方を使用するように、それぞれのデバイスドライバソフトウェア１２８，１２９，１３５，１３６の切替を制御する。
【００７８】
図１１に示されたソフトウェ構成により、二重化されたホストコンピュータ９６，１０３と二重化されたデータ二重化装置１１０，１１１，１１２，１１３の動作が制御される。
【００７９】
図１２は、本発明のまた別の実施形態にかかるデータ多重化システムの全体の構成を示す。
【００８０】
図１２に示されたデータ多重化システムにおいては、データ二重化装置１４０が、ホストコンピュータ１３７内に、例えば拡張ボードのような形態で組み込まれている。このデータ二重化装置１４０は、ホストコンピュータ１３７の内部バス（例えば、PCIバス）を介して、CPU１３８及び主メモリ１３９など通信可能に接続されている。このデータ二重化装置１４０の構成と機能は、基本的には、図１に示したデータ二重化装置３と同様である。しかし、このデータ二重化装置１４０では、ホストコンピュータ１３７の内部バスに接続された内部接続制御部１４１が、図１に示されたデータ二重化装置３のホストインタフェース制御部４と同様の機能だけでなく、内部制御部８及び外部インタフェース制御部９と同様な機能も果たすようになっている。この内部接続制御部１４１は、I/O二重化制御部１４３及びI/O監視部１４３などからアクセス可能な共有メモリ１４１Aを有する。この共有メモリ１４１Aには、図１に示されたデータ二重化装置３の共有メモリ８Aと同様に、初期設定情報及びデータ回復処理の割合などが設定される。この共有メモリ８Aに設定された情報に基づいて、I/O二重化制御部１４３及びI/O監視部１４３がそれぞれの機能を制御する。I/O二重化制御部１４３及びI/O監視部１４３の機能は、図１に示されたデータ二重化装置３のそれと同様である。
【００８１】
図１３は、図１２に示されたホストコンピュータ１３７に搭載されるソフトウェアの構成を示す。
【００８２】
図１３に示すように、ホストコンピュータ１３７は、業務処理行うアプリケーションプログラム１６０及びOS１６１の他に、データ二重化装置１４０を制御するためのソフトウェア１６２を有する。このデータ二重化装置制御フトウェア１６２は、データ二重化装置１４０とのI/O指示やレスポンスなどの送受だけでなく、図１に示された制御用コンピュータ１０と同様の機能も果たすようになっている。
【００８３】
図１４は、データ二重化装置１４０の初期設定の流れを示す。
【００８４】
図１４に示すように、データ二重化装置１４０の初期設定処理２１０では、ステップ２１１で、データ二重化装置１４０のディスクインタフェース制御部１４７，１５０にそれぞれディスクサブシステム１５４，１５８が通信可能に接続される。ステップ２１２で、初期設定情報がデータ二重化装置制御ソフトウェア１６２からデータ二重化装置１４０の共有メモリ１４１Aに設定される。初期設定情報の詳細は、図１のシステムに関して既に説明したとおりである。ステップ２１３で、データ二重化装置制御ソフトウェア１６２からデータ二重化装置１４１に動作開始が指示される。この指示を受けて、データ二重化装置３は、ステップ２１４で、ホストコンピュータ１３５のOS１６１に対して、あたかも単一のディスクサブシステムであるかのごとくに動作を開始する。
【００８５】
図１５から図１７は、図１２のシステムにおけるデータ書込み処理の流れを示す。
【００８６】
図１５に示すように、データ書込み処理１６３では、ステップ１６４で、ホストコンピュータ１３７のOS１６１より、オリジナルのデータ書込み指示がデータ二重化装置１４０に対して発行される。このデータ書込み指示を受けて、データ二重化装置１４０では、既に図１のシステムに関して図３〜図５を参照して説明した動作と基本的に同じ動作が実行される。図１のシステムとは異なる動作は、主に次の点である、すなわち、データ二重化装置１４０で二重化されたデータ書込み指示がディスクサブシステム１５４，１５８で共に正常に処理された場合には、図１６のステップ１７６で、I/O二重化制御部１４２からホストコンピュータ１３７のOS１６１へI/O完了通知が発行される。一方、二重化されたデータ書込み指示のいずれもがディスクサブシステム１５４，１５８おいて正常に処理されなかった場合には、図１６のステップ１７８及び１７９で、I/O二重化制御部から内部接続制御部１４１を通じて、ホストコンピュータ１３７のデータ二重化制御ソフトウェア１６２及びOS１６１へ、I/O異常終了通知が送られる。また、二重化されたデータ書込み指示のいずれか一方だけが正常に処理された場合には、図１７のステップ１８１で、I/O二重化制御部から内部接続制御部１４１を通じて、データ二重化制御ソフトウェア１６２へ、I/O異常終了通知が送られ、また、ステップ１８３で、I/O二重化制御部から内部接続制御部１４１を通じて、OS１６１へ、I/O完了通知が送られる。
【００８７】
図１８及び図１９は、図１２のシステムにおけるデータ読出し処理の流れを示す。
【００８８】
図１８に示すように、データ読出し処理１８８では、ステップ１８９で、ホストコンピュータ１３７のOS１６１より、オリジナルのデータ読出し指示がデータ二重化装置１４０に対して発行される。このデータ読出し指示を受けて、データ二重化装置１４０では、既に図１のシステムに関して図６〜図７を参照して説明した動作と基本的に同じ動作が実行される。図１のシステムとは異なる動作は、主に次の点である、すなわち、データ二重化装置１４０で二重化されたデータ読出し指示のいずれか一方がディスクサブシステム１５４又は１５８で共に正常に処理された場合には、図１９のステップ２０６で、I/O二重化制御部１４２から内部接続制御部１４１を通じて、ホストコンピュータ１３７のOS１６１へ、I/O完了通知が発行される。一方、二重化されたデータ書込み指示のいずれもが正常に処理されなかった場合には、図１９のステップ２０８及び２０９で、I/O二重化制御部から内部接続制御部１４１を通じて、ホストコンピュータ１３７のデータ二重化制御ソフトウェア１６２及びOS１６１へ、I/O異常終了通知が送られる。
【００８９】
図２０及び図２１は、一方のディスクサブシステム１５４又は１５８に障害が発生した場合における障害回復処理の流れを示す。
【００９０】
この障害回復処理１８７でも、既に図１のシステムに関して図８及び図９を参照して説明した動作と基本的に同じ動作が実行される。図１のシステムとは異なる動作は、主に次の点である、すなわち、図２０のステップ２１６での閉塞された通信経路側のディスクサブシステムの状態チェックは、ホストコンピュータ１３７のデータ二重化装置制御ソフトウェア１６２が行なう。また、図２０のステップ２１８及び図２１のステップ２２３でのデータ回復処理の割合の設定、及び図２０のステップ２１９及び図２１のステップ２２４でのデータ回復指示の発行も、データ二重化装置制御ソフトウェア１６２が行なう。
【００９１】
上述した図１２のデータ二重化システムでは、ホストコンピュータ１３７内のデータ二重化装置制御ソフトウェアが、図１に示したシステムにおける制御用コンピュータ１０としての機能も果たす。そのため、ホストコンピュータ１３７の資源は、データ二重化装置１４０の初期設定や、ディスクサブシステム１５４又は１５８に障害が発生した場合の対応処理において、若干使用されることになる。しかし、このことがホストコンピュータ１３７の業務処理には実質的な影響を与えることは殆どない。
【００９２】
図２２は、本発明の更にまた別の実施形態にかかるデータ多重化システムの全体の構成を示す。
【００９３】
図２２に示されたデータ多重化システムは、信頼性を高めるために、二重化されたホストコンピュータ３００，３０７を有しており、これらは二重化されたLANで相互通信可能に接続されている。二重化されたホストコンピュータ３００，３０７は、それらの内の所定の一方が普段は業務処理を行い、その所定の一方に障害が発生すると、それに代わって他方が業務処理を引き続き行うように制御される。これらのホストコンピュータ３００，３０７には、それぞれ、二重化されたデータ二重化装置３０５，３０６，３１２，３１３が組み込まれている。これらのデータ二重化装置３０５，３０６，３１２，３１３は、いずれも、共通の二重化されたディスクサブシステム３１５，３１９に接続されている。データ二重化装置３０５，３０６，３１２，３１３の各々の構成と機能は、図１２に示されたホストコンピュータ１３７に組み込まれたデータ二重化装置１４０と同様である。二重化されたデータ二重化装置３０５，３０６，３１２，３１３は、それらの内の所定の一方が普段は動作し、その所定の一方に障害が生じると、代わって他方が動作するように制御される。
【００９４】
図２３は、図２２に示された二重化されたホストコンピュータ３００，３０７に搭載されるソフトウェアの構成を示す。
【００９５】
図２３に示すように、ホストコンピュータ３００，３０７は、それぞれ、業務処理を行うアプリケーションプログラム３３０，３３５、及びOS３３１，３３６を有する。さらに、ホストコンピュータ３００，３０７は、それぞれ、システム多重化ソフトウェア３３５，３３９、デバイス切替ソフトウェア３３３，３３８、及びデータ二重化装置制御ソフトウェア３３２，３３７を有する。システム多重化ソフトウェア３３５，３３９は、LANを通じて相互に通信可能であり、ホストコンピュータ３００，３０７の内の所定の一方が普段は業務処理を行ない、その所定の一方に障害が発生したときには、それに代わって他方が業務処理を引き続いて行うように、それぞれのOS３３１，３３６及びアプリケーションプログラム３３０，３３５を制御する。デバイス切替ソフトウェア３３３，３３８は、それぞれ、二重化されたデータ二重化装置３０５，３０６，３１２，３１３の内の所定の一方を普段は使用し、その所定の一方に障害が生じたときには、それに代えて他方を使用するように、それぞれのデータ二重化装置制御ソフトウェア３３２，３３７を制御する。データ二重化装置制御ソフトウェア３３２，３３７は、デバイス切替ソフトウェア３３３，３３８による制御の下で、二重化されたデータ二重化装置３０５，３０６，３１２，３１３の内のいずれか一方を選択的に制御する。二重化装置制御ソフトウェア３３２，３３７の各々とデータ二重化装置３０５，３０６，３１２，３１３の各々との相互間の制御機能は、図１２及び図１３に示したシステムにおけるに二重化装置制御ソフトウェア１６２とデータ二重化装置１４０の相互間のそれと同様である。
【００９６】
図２４は、本発明のまた更に別の実施形態にかかるデータ多重化システムに適用されるデータ二重化制御ソフトウェアセットの構成を示す。
【００９７】
図２４に示された制御ソフトウェアセット４０１は、例えば、ファーバーチャネルスイッチのように、ホストコンピュータ及びストレージシステムに接続されるとともにそれらから独立したハードウェア装置（コンピュータシステム）にインストールされて、そのハードウェア装置を図１に示したようなデータ二重化装置３と同様の機能を発揮させることができるようになっている。その場合、図１に示したデータ二重化装置３がもつ共有メモリ８A、I/O監視メモリ７、及びデータキャッシュメモリ１３，１４として、このハードウェア装置がもつメモリを流用することができる。
【００９８】
図２４に示すように、このデータ二重化制御ソフトウェアセット４０１は、ホストインタフェース制御ソフトウェア４０２、I/O二重化制御ソフトウェア４０３、I/O監視ソフトウェア４０４、内部制御ソフトウェア４０５、I/O監視メモリ制御ソフトウェア４０９、データキャッシュメモリ制御ソフトウェア４０７，４１１、及びディスクインタフェース制御ソフトウェア４０８，４１２を有する。ホストインタフェース制御ソフトウェア４０２、I/O二重化制御ソフトウェア４０３、I/O監視ソフトウェア４０４、内部制御ソフトウェア４０５、及びディスクインタフェース制御ソフトウェア４０８，４１２は、それぞれ、図１に示したホストインタフェース制御部４、I/O二重化制御部５、I/O監視部６、内部制御部８、及びディスクインタフェース制御部１５，１６の動作を、そのハードウェア装置に行わせることができる。また、I/O監視メモリ制御ソフトウェア４０９は、図１に示したI/O監視メモリ７に相当するメモリ領域をそのハードウェア装置内のメモリ上に確保して、そのメモリ領域へのI/O二重化制御ソフトウェア４０３及びI/O監視ソフトウェア４０４などからのアクセスを制御する動作を、そのハードウェア装置に行わせる。データキャッシュメモリ制御ソフトウェア４０７，４１１は、図１に示したデータキャッシュメモリ１３，１４に相当するメモリ領域をそのハードウェア装置内のメモリ上に確保して、そのメモリ領域へのI/O監視ソフトウェア４０４及びディスクインタフェース制御部１５，１６などからのアクセスを制御する動作を、そのハードウェア装置に行わせる。
【００９９】
図２４に示されたデータ二重化制御ソフトウェアセット４０１を、多数のホストコンピュータと多数のストレージシステムと間の通信接続を制御する、例えばファーバーチャネルスイッチのようなコンピュータシステムにインストールして、これをデータ二重化装置として機能させることにより、多数のホストコンピュータのデータ二重化制御のための処理負担が軽減され、且つ、ストレージシステムの信頼性が向上する。
【０１００】
図２５は、本発明の更にまた別の実施形態に係るデータ二重化システムの全体構成を示す。
【０１０１】
図２５に示すデータ二重化システムでは、データ二重化装置５０３が、ディスクサブシステム５１７内に組み込まれている。ディスクサブシステム５１７内には、少なくとも２つのディスク制御部５２１，５２２と、それに接続された少なくとも２つのディスクドライブ５２３，５２４がある。そして、その２つのディスク制御部５２１，５２２が、データ二重化装置５０３に接続されている。データ二重化装置５０３の構成と機能は、基本的に、図1に示したデータ二重化装置３と同様である。
【０１０２】
図２６は、本発明のまた更に別の実施形態に係るデータ二重化システムの全体構成を示す。
【０１０３】
図２６に示すデータ二重化システムでは、データ二重化装置６０３が、一つのディスクサブシステム６１７内に組み込まれている。ディスクサブシステム７１７内には、少なくとも１つのディスク制御部６２１と、それに接続された少なくとも１つのディスクドライブ６２３がある。そして、そのディスク制御部６２１が、データ二重化装置６０３に接続されている。更に別のディスクサブシステム５１８が存在し、このディスクサブシステム５１８も、データ二重化装置６０３に接続されている。データ二重化装置６０３の構成と機能は、基本的に、図1に示したデータ二重化装置３と同様である。
【０１０４】
以上、本発明の実施形態を説明したが、この実施形態は本発明の説明のための例示にすぎず、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。例えば、データを二重化する場合だけでなく、データを三重以上に多重化する場合にも本発明は適用可能である。
【図面の簡単な説明】
【０１０５】
【図１】本発明の一実施形態にかかるデータ多重化システムの全体の構成を示すブロック線図。
【図２】データ二重化装置３の初期設定の流れ図。
【図３】図１のシステムにおけるデータ書込み処理の流れ図。
【図４】図１のシステムにおけるデータ書込み処理の流れ図。
【図５】図１のシステムにおけるデータ書込み処理の流れ図。
【図６】図１のシステムにおけるデータ読出し処理の流れ図。
【図７】図１のシステムにおけるデータ読出し処理の流れ図。
【図８】図１のシステムにおける障害回復処理の流れ図。
【図９】図１のシステムにおける障害回復処理の流れ図。
【図１０】本発明の別の実施形態にかかるデータ多重化システムの全体の構成を示すブロック線図。
【図１１】図１０に示したホストコンピュータ９６，１０３に搭載されるソフトウェアの構成を示すブロック線図。
【図１２】本発明のまた別の実施形態にかかるデータ多重化システムの全体の構成を示すブロック線図。
【図１３】図１２に示したホストコンピュータ１３７に搭載されるソフトウェアの構成を示すブロック線図。
【図１４】データ二重化装置１４０の初期設定の流れ図。
【図１５】図１２のシステムにおけるデータ書込み処理の流れ図。
【図１６】図１２のシステムにおけるデータ書込み処理の流れ図。
【図１７】図１２のシステムにおけるデータ書込み処理の流れ図。
【図１８】図１２のシステムにおけるデータ読出し処理の流れ図。
【図１９】図１２のシステムにおけるデータ読出し処理の流れ図。
【図２０】図１２のシステムにおける障害回復処理の流れ図。
【図２１】図１２のシステムにおける障害回復処理の流れ図。
【図２２】本発明の更に別の実施形態にかかるデータ多重化システムの全体の構成を示すブロック線図。
【図２３】図２２に示したホストコンピュータ３００，３０７に搭載されるソフトウェアの構成を示すブロック線図。
【図２４】本発明のまた更に別の実施形態にかかるデータ多重化システムに適用されるデータ二重化ソフトウェアセットの構成を示すブロック線図。
【図２５】本発明の更にまた別の実施形態にかかるデータ多重化システムの全体の構成を示すブロック線図。
【図２６】本発明の更にまた別の実施形態にかかるデータ多重化システムの全体の構成を示すブロック線図。
【符号の説明】
【０１０６】
１  ホストコンピュータ
３  データ二重化装置
４  ホストインタフェース制御部
５  I/O二重化制御部
６  I/O監視部
７  I/O監視メモリ
８  内部制御部
９  外部インタフェース部
１０  制御用コンピュータ
１１，１２  通信経路
１３，１４  データキャッシュメモリ
１５，１６  ディスクインタフェース制御部
１７，１８  ディスクサブシステム
９６，１０３  ホストコンピュータ
１１０，１１１，１１２，１１３  データ二重化装置
１１４，１１８  ディスクサブシステム
１２３，１３１  アプリケーションソフトウェア
１２４，１３２  OS
１２５，１３３  システム多重化ソフトウェア
１２６，１３４  デバイス切替ソフトウェア
１２８，１２９，１３５，１３６  デバイスドライバソフトウェア
１３７  ホストコンピュータ
１４０  データ二重化装置
１４１  ホストインタフェース制御部
１４２  I/O二重化制御部
１４３  I/O監視部
１４４  I/O監視メモリ
１４５，１４８  通信経路
１４６，１４９  データキャッシュメモリ
１４７，１６０  ディスクインタフェース制御部
１５４，１５８  ディスクサブシステム
１６０  アプリケーションソフトウェア
１６１  OS
１６２  データ二重化装置制御ソフトウェア
３００，３０７  ホストコンピュータ
３０５，３０６，３１２，３１３  データ二重化装置
３１５，３１９  ディスクサブシステム
３３０，３３５  アプリケーションソフトウェア
３３１，３３６  OS
３３４，３３８  システム多重化ソフトウェア
３３３，３３８  デバイス切替ソフトウェア
３３２，３３７  データ二重化装置制御ソフトウェア
４０１  データ二重化ソフトウェアセット
５０１  ホストコンピュータ
５０３  データ二重化装置
５０４  ホストインタフェース制御部
５０５  I/O二重化制御部
５０６  I/O監視部
５０７  I/O監視メモリ
５０８  内部制御部
５０９  外部インタフェース部
５１０  制御用コンピュータ
５１１，５１２  通信経路
５１３，５１４  データキャッシュメモリ
５１５，５１６  内部接続制御部
５１８  ディスクサブシステム
【図１】
2005196490.tif 000003
【図２】
2005196490.tif 000004
【図３】
2005196490.tif 000005
【図４】
2005196490.tif 000006
【図５】
2005196490.tif 000007
【図６】
2005196490.tif 000008
【図７】
2005196490.tif 000009
【図８】
2005196490.tif 000010
【図９】
2005196490.tif 000011
【図１０】
2005196490.tif 000012
【図１１】
2005196490.tif 000013
【図１２】
2005196490.tif 000014
【図１３】
2005196490.tif 000015
【図１４】
2005196490.tif 000016
【図１５】
2005196490.tif 000017
【図１６】
2005196490.tif 000018
【図１７】
2005196490.tif 000019
【図１８】
2005196490.tif 000020
【図１９】
2005196490.tif 000021
【図２０】
2005196490.tif 000022
【図２１】
2005196490.tif 000023
【図２２】
2005196490.tif 000024
【図２３】
2005196490.tif 000025
【図２４】
2005196490.tif 000026
【図２５】
2005196490.tif 000027
【図２６】
2005196490.tif 000028