(57)【要約】      （修正有）【課題】  少なくとも三つの記憶サブシステムを備えるデータ処理システムにおいて、物理的な距離の制約を受けないようにする。【解決手段】  第一〜第三記憶サブシステム１００Ａ〜１００Ｃが、それぞれ第一〜第二記憶デバイス６Ａ１〜６Ａ２と、第三〜第四記憶デバイス６Ｂ１〜６Ｂ２と、第五〜第六記憶デバイス６Ｃ１〜６Ｃ２とを備える。第二記憶サブシステム１００Ｂは、受信したライトデータを第四記憶デバイス６Ｂ２に格納し、６Ｂ２の更新順序を表す更新番号と、６Ｂ２に格納されるライトデータとを含んだデータセットを生成して第三記憶デバイス６Ｂ１に格納し、そのデータセットを、第一記憶サブシステム１００Ａに送信する。第一記憶サブシステム１００Ａは、受信したデータセットを第二記憶デバイス６Ａ２に格納する。以降、そのデータセット内のライトデータは、記憶デバイス６Ａ１、６Ａ３、６Ｃ１及び６Ｃ２の順で、それぞれの記憶デバイスに格納。【選択図】図１
2006065629.tif 000002
【特許請求の範囲】
【請求項１】
書込み対象のデータであるライトデータを送信する第一ホスト端末から前記ライトデータを受信し、前記受信したライトデータを記憶する第一記憶サブシステムと、
前記第一記憶サブシステムに接続された第二記憶サブシステムと、
前記第二記憶サブシステムに接続された第三記憶サブシステムと
を備え、
前記第一記憶サブシステムは、
第一複製元としての属性が割り当てられた第一記憶デバイスと、
前記第一記憶デバイスに対応付けられ、第二複製元としての属性が割り当てられた第二記憶デバイスと
を備え、
前記第一ホスト端末から受信したライトデータを前記第一記憶デバイスに格納し、
前記ライトデータが前記第一記憶デバイスに格納されることによって前記第一記憶デバイスが更新された順序を表す更新番号を発行し、前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第二記憶デバイスに格納し、
前記第二記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記第二記憶サブシステムに送信し、
前記第二記憶サブシステムが、
前記第二記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製元のペアとなる第二複製先としての属性と、前記第二複製元としての属性との両方が割り当てられた一以上の第三記憶デバイスと、
前記一以上の第三記憶デバイスに対応付けられ、前記第一複製元のペアとなる第一複製先としての属性が割り当てられた第四記憶デバイスと
を備え、
前記データセットを前記第一記憶サブシステムから受信し、前記受信したデータセットを前記一以上の第三記憶デバイスに格納し、
前記一以上の第三記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記一以上の第三記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記一以上の三記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記四記憶デバイスに格納し、
前記一以上の第三記憶デバイスから読み出されたデータセットを前記第三記憶サブシステムに送信し、
前記第三記憶サブシステムが、
前記一以上の第三記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製先としての属性が割り当てられた第五記憶デバイスと、
前記第五記憶デバイスに対応付けられ、前記第一複製先としての属性が割り当てられた第六記憶デバイスと
を備え、
前記データセットを前記第二記憶サブシステムから受信し、前記受信したデータセットを前記第五記憶デバイスに格納し、
前記第五記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記第五記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記五記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記六記憶デバイスに格納する、
データ処理システム。
【請求項２】
請求項１記載のデータ処理システムにおいて、
前記一以上の第三記憶デバイスには、前記第二記憶デバイスに対応付けられ、前記第二複製先としての属性が割り当てられた第一の第三記憶デバイスと、前記第四記憶デバイスに対応付けられ、前記第二複製元としての属性が割り当てられた第二の第三記憶デバイスとが含まれており、
前記第四記憶デバイスには、前記第一複製元としての属性も割り当てられており、
前記第二記憶サブシステムは、
前記第一の第三記憶デバイス内の更新番号に基づいて、前記第一の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセット内のライトデータを前記第四記憶デバイスに格納し、
前記第四記憶デバイスに対するライトデータの書込みと同じ又は異なる時期に、前記読み出されたデータセット内の更新番号と同一の更新番号と、前記第四記憶デバイスに格納されたライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第二の第三記憶デバイスに格納し、
前記第二の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記第三記憶サブシステムに送信する、
データ処理システム。
【請求項３】
請求項２記載のデータ処理システムにおいて、
ライトデータを送信する第二ホスト端末に前記第二記憶サブシステムが接続されており、前記第一ホスト端末で障害が発生した場合、
前記第一記憶サブシステムは、前記第二記憶デバイス内の前記一以上のデータセットのうち、少なくとも前記第二記憶サブシステムに未送信のデータセットを読み出し、前記読み出した未送信のデータセットを前記第二記憶サブシステムに送信し、
前記第二記憶サブシステムは、
前記未送信のデータセットを前記第一記憶サブシステムから受信し、前記受信したデータセットを前記第一の第三記憶デバイスに格納し、
前記第一の第三記憶デバイス内の未だ読み出していない一以上のデータセットを、更新番号の順に読み出し、前記読み出したデータセット内のライトデータを前記四記憶デバイスに格納し、
前記データ処理システムが、前記第一記憶デバイスの属性である前記第一複製元と、前記第四記憶デバイスの属性である前記第一複製先とを入れ替え、且つ、前記第二記憶デバイスの属性である前記第二複製元と、前記第一の第三記憶デバイスの属性である前記第二複製先とを入れ替え、
前記第二記憶サブシステムは、
前記第二ホスト端末からライトデータを受信し、前記受信したライトデータを前記第四記憶デバイスに格納し、
前記ライトデータが前記第四記憶デバイスに格納されることによって前記第四記憶デバイスが更新された順序を表す更新番号を発行し、前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第一の第三記憶デバイスと前記第二の第三記憶デバイスに格納し、
前記第一の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセットを第一記憶サブシステムに送信し、
前記第二の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセットを第三記憶サブシステムに送信し、
前記第一記憶サブシステムが、
前記データセットを前記第二記憶サブシステムから受信し、前記受信したデータセットを前記第二記憶デバイスに格納し、
前記第二記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記第二記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記第二記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記一記憶デバイスに格納する、
データ処理システム。
【請求項４】
請求項１記載のデータ処理システムにおいて、
ライトデータを送信する第三ホスト端末に前記第三記憶サブシステムが接続されており、前記第一ホスト端末で障害が発生した場合、
前記第一記憶サブシステムは、前記第二記憶デバイス内の前記一以上のデータセットのうち、少なくとも前記第二記憶サブシステムに未送信のデータセットを読み出し、前記読み出した未送信のデータセットを前記第二記憶サブシステムに送信し、
前記第二記憶サブシステムは、
前記未送信のデータセットを前記第一記憶サブシステムから受信し、前記受信したデータセットを前記一以上の第三記憶デバイスに格納し、
前記一以上の第三記憶デバイスから、前記第三記憶サブシステムに未送信の一以上のデータセットを読み出し、前記読み出した一以上のデータセットを前記第三記憶サブシステムに送信し、
前記第三記憶サブシステムは、
前記第二記憶サブシステムから前記未送信の一以上のデータセットを受信し、前記受信した一以上のデータセットを前記第五記憶デバイスに格納し、
前記第五記憶デバイス内の未だ読み出していない一以上のデータセットを、更新番号の順に読み出し、前記読み出したデータセット内のライトデータを前記六記憶デバイスに格納し、
前記データ処理システムが、前記第一記憶デバイスの属性である前記第一複製元と、前記第四記憶デバイスの属性である前記第一複製先とを入れ替え、前記第二記憶デバイスの属性である前記第二複製元と、前記一以上の第三記憶デバイスの属性である前記第二複製先とを入れ替え、前記第四記憶デバイスの属性である前記第一複製元と、前記第六記憶デバイスの属性である前記第一複製先とを入れ替え、且つ、前記一以上の第三記憶デバイスの属性である前記第二複製元と、前記第五記憶デバイスの属性である前記第二複製先とを入れ替え、
前記第三記憶サブシステムは、
前記第三ホスト端末からライトデータを受信し、前記受信したライトデータを前記第六記憶デバイスに格納し、
前記ライトデータが前記第六記憶デバイスに格納されることによって前記第六記憶デバイスが更新された順序を表す更新番号を発行し、前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第五記憶デバイスに格納し、
前記第五記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記第二記憶サブシステムに送信し、
前記第二記憶サブシステムは、
前記第三記憶サブシステムからデータセットを受信し、受信したデータセットを前記一以上の第三記憶デバイスに格納し、
前記一以上の第三記憶デバイスからデータセットを読み出し、読み出したデータセット内のライトデータを前記第四記憶デバイスに格納し、
前記一以上の第三記憶デバイスから読み出されたデータセットを、前記第一記憶サブシステムに送信し、
前記第一記憶サブシステムは、
前記第二記憶サブシステムからデータセットを受信し、前記受信したデータセットを前記第二記憶デバイスに格納し、
前記第二記憶デバイスからデータセットを読み出し、前記読み出したデータセット内のライトデータを前記第一記憶デバイスに格納する、
データ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、
前記第二記憶デバイスから前記一以上の第三記憶デバイスに対するデータセットの読み出し、又は、前記一以上の第三記憶デバイスから前記第五記憶デバイスに対するデータセットの読み出しは、データセットを受信する記憶サブシステムからリード命令が送信されることに応答して行われる、
データ処理システム。
【請求項６】
請求項１記載のデータ処理システムにおいて、
前記第一記憶サブシステムが前記第三記憶サブシステムに接続されており、前記第二記憶サブシステムで障害が発生した場合、
前記第一記憶サブシステム及び前記第三記憶サブシステムの少なくとも一方が、前記第二複製元としての属性が割り当てられた前記第二記憶デバイスと、前記第二複製先としての属性が割り当てられた前記第五記憶デバイスとを対応付け、
前記第一記憶サブシステムが、前記第二記憶デバイスから読み出されたデータセットを、前記第三記憶サブシステムに送信し、
前記第三記憶サブシステムが、前記第一記憶サブシステムからデータセットを受信し、前記受信したデータセットを前記第五記憶デバイスに格納する、
データ処理システム。
【請求項７】
請求項６記載のデータ処理システムにおいて、
前記第一記憶サブシステム及び前記第三記憶サブシステムの少なくとも一方が、前記第五記憶デバイス内の最新の更新番号の次の更新番号を含んだデータシステムを取得できない場合には、前記第一記憶サブシステムと前記第三記憶サブシステムとの通信を中止する、
データ処理システム。
【請求項８】
請求項１記載のデータ処理システムにおいて、
前記第一乃至第三記憶サブシステムのうちの少なくとも一つが、前記第二複製元又は前記第二複製先が割り当てられた記憶デバイスに、空きの記憶領域が無くなった場合には、その記憶デバイスに格納されている一以上のデータセットのうち、更新番号が最も古いデータセットを消去する、
データ処理システム。
【請求項９】
書込み対象のデータであるライトデータを送信する第一ホスト端末から前記ライトデータを受信し、前記受信したライトデータを記憶する第一記憶サブシステムと、前記第一記憶サブシステムに接続された第二記憶サブシステムと、前記第二記憶サブシステムに接続された第三記憶サブシステムとを備えたデータ処理システムで実現されるデータ処理方法において、
前記第一記憶サブシステムは、第一複製元としての属性が割り当てられた第一記憶デバイスと、前記第一記憶デバイスに対応付けられ、第二複製元としての属性が割り当てられた第二記憶デバイスとを備えており、
前記第二記憶サブシステムが、前記第二記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製元のペアとなる第二複製先としての属性、及び、前記第二複製元としての属性の両方が割り当てられた一以上の第三記憶デバイスと、前記一以上の第三記憶デバイスに対応付けられ、前記第一複製元のペアとなる第一複製先としての属性が割り当てられた第四記憶デバイスとを備えており、
前記第三記憶サブシステムが、前記一以上の第三記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製先としての属性が割り当てられた第五記憶デバイスと、前記第五記憶デバイスに対応付けられ、前記第一複製先としての属性が割り当てられた第六記憶デバイスとを備えており、
前記第一ホスト端末から送信されたライトデータを前記第一記憶デバイスに格納するステップと、
前記ライトデータが前記第一記憶デバイスに格納されることによって前記第一記憶デバイスが更新された順序を表す更新番号を発行するステップと、
前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第二記憶デバイスに格納するステップと、
前記第二記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記一以上の第三記憶デバイスに格納するステップと、
前記一以上の第三記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記一以上の第三記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記一以上の三記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記四記憶デバイスに格納するステップと、
前記一以上の第三記憶デバイスから読み出されたデータセットを前記第五記憶デバイスに格納するステップと、
前記第五記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記第五記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記五記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記六記憶デバイスに格納するステップと
を有するデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの記憶処理技術に関し、例えば、複数の記憶サブシステム間でのデータの複製に関する。
【背景技術】
【０００２】
三つ以上の記憶サブシステムを備えたデータ処理システムとして、例えば、以下の米国特許６２０９００２号に開示のシステムが知られている。
【０００３】
第一の記憶サブシステムは、複製元の第一の論理ボリュームを保持する。第二の記憶サブシステムは、第一の論理ボリュームの複製先である第二の論理ボリュームと、第二の論理ボリュームの複製先である第三の論理ボリュームを保持する。第三の記憶サブシステムは、第三の論理ボリュームの複製先である第四の論理ボリュームを保持する。第一の記憶サブシステムは、複製元の第一の論理ボリュームに対するデータ更新を行う場合、第二の記憶サブシステム内の第二の論理ボリュームのデータを更新する。第二の記憶サブシステムは、第二の論理ボリュームから第三の論理ボリュームへのデータ複製処理と、第三の論理ボリュームから第四の論理ボリュームへのデータ複製処理とを排他的に実行する。
【０００４】
【特許文献１】米国特許６２０９００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の従来技術では、第一の記憶サブシステムが、データのライト命令を受信した場合、第一の論理ボリュームと、第二の記憶サブシステム内の第二の論理ボリュームの両方にデータを書き込むため、第一記憶サブシステムと第二記憶サブシステムとの物理的な距離により、ライト命令に対する応答時間が長くなることがある。そのため、ライト命令に対する応答時間を短くしたいのであれば、第一記憶サブシステムと第二記憶サブシステムとの物理的な距離を短くする必要が生じ得る。
【０００６】
従って、本発明の目的は、少なくとも三つの記憶サブシステムを備えるデータ処理システムにおいて、第一記憶サブシステムと第二記憶サブシステムとの物理的な距離の制約を受けないようにすることにある。
【０００７】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本発明の第一の側面に従うデータ処理システムは、書込み対象のデータであるライトデータを送信する第一ホスト端末から前記ライトデータを受信し、前記受信したライトデータを記憶する第一記憶サブシステムと、前記第一記憶サブシステムに接続された第二記憶サブシステムと、前記第二記憶サブシステムに接続された第三記憶サブシステムとを備える。
【０００９】
前記第一記憶サブシステムは、第一複製元としての属性が割り当てられた第一記憶デバイスと、前記第一記憶デバイスに対応付けられ、第二複製元としての属性が割り当てられた第二記憶デバイスとを備える。また、前記第一記憶サブシステムは、前記第一ホスト端末から受信したライトデータを前記第一記憶デバイスに格納する。また、前記第一記憶サブシステムは、前記ライトデータが前記第一記憶デバイスに格納されることによって前記第一記憶デバイスが更新された順序を表す更新番号を発行し、前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第二記憶デバイスに格納する。また、前記第一記憶サブシステムは、前記第二記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記第二記憶サブシステムに送信する。
【００１０】
前記第二記憶サブシステムが、前記第二記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製元のペアとなる第二複製先としての属性と、前記第二複製元としての属性との両方が割り当てられた一以上の第三記憶デバイスと、前記一以上の第三記憶デバイスに対応付けられ、前記第一複製元のペアとなる第一複製先としての属性が割り当てられた第四記憶デバイスとを備える。また、前記第二記憶サブシステムは、前記データセットを前記第一記憶サブシステムから受信し、前記受信したデータセットを前記一以上の第三記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記一以上の第三記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記一以上の第三記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記一以上の三記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記四記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記一以上の第三記憶デバイスから読み出されたデータセットを前記第三記憶サブシステムに送信する。
【００１１】
前記第三記憶サブシステムが、前記一以上の第三記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製先としての属性が割り当てられた第五記憶デバイスと、前記第五記憶デバイスに対応付けられ、前記第一複製先としての属性が割り当てられた第六記憶デバイスとを備える。また、前記第三記憶サブシステムは、前記データセットを前記第二記憶サブシステムから受信し、前記受信したデータセットを前記第五記憶デバイスに格納する。また、前記第三記憶サブシステムは、前記第五記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記第五記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記五記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記六記憶デバイスに格納する。
【００１２】
上記データ処理システムの第一の実施態様では、前記一以上の第三記憶デバイスには、前記第二記憶デバイスに対応付けられ、前記第二複製先としての属性が割り当てられた第一の第三記憶デバイスと、前記第四記憶デバイスに対応付けられ、前記第二複製元としての属性が割り当てられた第二の第三記憶デバイスとが含まれている。前記第四記憶デバイスには、前記第一複製元としての属性も割り当てられている。この場合、前記第二記憶サブシステムは、前記第一の第三記憶デバイス内の更新番号に基づいて、前記第一の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセット内のライトデータを前記第四記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記第四記憶デバイスに対するライトデータの書込みと同じ又は異なる時期に、前記読み出されたデータセット内の更新番号と同一の更新番号と、前記第四記憶デバイスに格納されたライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第二の第三記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記第二の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記第三記憶サブシステムに送信する。
【００１３】
上記データ処理システムの第二の実施態様では、前記第一の実施態様において、ライトデータを送信する第二ホスト端末に前記第二記憶サブシステムが接続されており、前記第一ホスト端末で障害が発生した場合、前記第一記憶サブシステムは、前記第二記憶デバイス内の前記一以上のデータセットのうち、少なくとも前記第二記憶サブシステムに未送信のデータセットを読み出し、前記読み出した未送信のデータセットを前記第二記憶サブシステムに送信する。また、前記第二記憶サブシステムは、前記未送信のデータセットを前記第一記憶サブシステムから受信し、前記受信したデータセットを前記第一の第三記憶デバイスに格納し、且つ、前記第一の第三記憶デバイス内の未だ読み出していない一以上のデータセットを、更新番号の順に読み出し、前記読み出したデータセット内のライトデータを前記四記憶デバイスに格納する。また、前記データ処理システムが、前記第一記憶デバイスの属性である前記第一複製元と、前記第四記憶デバイスの属性である前記第一複製先とを入れ替え、且つ、前記第二記憶デバイスの属性である前記第二複製元と、前記第一の第三記憶デバイスの属性である前記第二複製先とを入れ替える。その後、前記第二記憶サブシステムは、前記第二ホスト端末からライトデータを受信し、前記受信したライトデータを前記第四記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記ライトデータが前記第四記憶デバイスに格納されることによって前記第四記憶デバイスが更新された順序を表す更新番号を発行し、前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第一の第三記憶デバイスと前記第二の第三記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記第一の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセットを第一記憶サブシステムに送信し、且つ、前記第二の第三記憶デバイスからデータセットを読み出し、前記読み出したデータセットを第三記憶サブシステムに送信する。前記第一記憶サブシステムが、前記データセットを前記第二記憶サブシステムから受信し、前記受信したデータセットを前記第二記憶デバイスに格納し、且つ、前記第二記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記第二記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記第二記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記一記憶デバイスに格納する。
【００１４】
上記データ処理システムの第三の実施態様では、ライトデータを送信する第三ホスト端末に前記第三記憶サブシステムが接続されており、前記第一ホスト端末で障害が発生した場合、前記第一記憶サブシステムは、前記第二記憶デバイス内の前記一以上のデータセットのうち、少なくとも前記第二記憶サブシステムに未送信のデータセットを読み出し、前記読み出した未送信のデータセットを前記第二記憶サブシステムに送信する。前記第二記憶サブシステムは、前記未送信のデータセットを前記第一記憶サブシステムから受信し、前記受信したデータセットを前記一以上の第三記憶デバイスに格納し、且つ、前記一以上の第三記憶デバイスから、前記第三記憶サブシステムに未送信の一以上のデータセットを読み出し、前記読み出した一以上のデータセットを前記第三記憶サブシステムに送信する。前記第三記憶サブシステムは、前記第二記憶サブシステムから前記未送信の一以上のデータセットを受信し、前記受信した一以上のデータセットを前記第五記憶デバイスに格納し、且つ、前記第五記憶デバイス内の未だ読み出していない一以上のデータセットを、更新番号の順に読み出し、前記読み出したデータセット内のライトデータを前記六記憶デバイスに格納する。前記データ処理システムが、前記第一記憶デバイスの属性である前記第一複製元と、前記第四記憶デバイスの属性である前記第一複製先とを入れ替え、前記第二記憶デバイスの属性である前記第二複製元と、前記一以上の第三記憶デバイスの属性である前記第二複製先とを入れ替え、前記第四記憶デバイスの属性である前記第一複製元と、前記第六記憶デバイスの属性である前記第一複製先とを入れ替え、且つ、前記一以上の第三記憶デバイスの属性である前記第二複製元と、前記第五記憶デバイスの属性である前記第二複製先とを入れ替える。前記第三記憶サブシステムは、前記第三ホスト端末からライトデータを受信し、前記受信したライトデータを前記第六記憶デバイスに格納する。また、前記第三記憶サブシステムは、前記ライトデータが前記第六記憶デバイスに格納されることによって前記第六記憶デバイスが更新された順序を表す更新番号を発行し、前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第五記憶デバイスに格納する。また、前記第三記憶サブシステムは、前記第五記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記第二記憶サブシステムに送信する。前記第二記憶サブシステムは、前記第三記憶サブシステムからデータセットを受信し、受信したデータセットを前記一以上の第三記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記一以上の第三記憶デバイスからデータセットを読み出し、読み出したデータセット内のライトデータを前記第四記憶デバイスに格納する。また、前記第二記憶サブシステムは、前記一以上の第三記憶デバイスから読み出されたデータセットを、前記第一記憶サブシステムに送信する。前記第一記憶サブシステムは、前記第二記憶サブシステムからデータセットを受信し、前記受信したデータセットを前記第二記憶デバイスに格納し、前記第二記憶デバイスからデータセットを読み出し、前記読み出したデータセット内のライトデータを前記第一記憶デバイスに格納する。
【００１５】
上記データ処理システムの第四の実施態様では、前記第二記憶デバイスから前記一以上の第三記憶デバイスに対するデータセットの読み出し、又は、前記一以上の第三記憶デバイスから前記第五記憶デバイスに対するデータセットの読み出しは、データセットを受信する記憶サブシステムからリード命令が送信されることに応答して行われる。
【００１６】
上記データ処理システムの第五の実施態様では、前記第一記憶サブシステムが前記第三記憶サブシステムに接続されており、前記第二記憶サブシステムで障害が発生した場合、前記第一記憶サブシステム及び前記第三記憶サブシステムの少なくとも一方が、前記第二複製元としての属性が割り当てられた前記第二記憶デバイスと、前記第二複製先としての属性が割り当てられた前記第五記憶デバイスとを対応付ける。前記第一記憶サブシステムが、前記第二記憶デバイスから読み出されたデータセットを、前記第三記憶サブシステムに送信する。前記第三記憶サブシステムが、前記第一記憶サブシステムからデータセットを受信し、前記受信したデータセットを前記第五記憶デバイスに格納する。
【００１７】
上記データ処理システムの第六の実施態様では、前記第五の実施態様において、前記第一記憶サブシステム及び前記第三記憶サブシステムの少なくとも一方が、前記第五記憶デバイス内の最新の更新番号の次の更新番号を含んだデータシステムを取得できない場合には、前記第一記憶サブシステムと前記第三記憶サブシステムとの通信を中止する。
【００１８】
上記データ処理システムの第七の実施態様では、前記第一乃至第三記憶サブシステムのうちの少なくとも一つが、前記第二複製元又は前記第二複製先が割り当てられた記憶デバイスに、空きの記憶領域が無くなった場合には、その記憶デバイスに格納されている一以上のデータセットのうち、更新番号が最も古いデータセットを消去する。
【００１９】
本発明の第二の側面に従うデータ処理方法は、書込み対象のデータであるライトデータを送信する第一ホスト端末から前記ライトデータを受信し、前記受信したライトデータを記憶する第一記憶サブシステムと、前記第一記憶サブシステムに接続された第二記憶サブシステムと、前記第二記憶サブシステムに接続された第三記憶サブシステムとを備えたデータ処理システムで実現されるデータ処理方法である。前記第一記憶サブシステムは、第一複製元としての属性が割り当てられた第一記憶デバイスと、前記第一記憶デバイスに対応付けられ、第二複製元としての属性が割り当てられた第二記憶デバイスとを備えている。前記第二記憶サブシステムが、前記第二記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製元のペアとなる第二複製先としての属性、及び、前記第二複製元としての属性の両方が割り当てられた一以上の第三記憶デバイスと、前記一以上の第三記憶デバイスに対応付けられ、前記第一複製元のペアとなる第一複製先としての属性が割り当てられた第四記憶デバイスとを備えている。前記第三記憶サブシステムが、前記一以上の第三記憶デバイスのうちの少なくとも一つに対応付けられ、前記第二複製先としての属性が割り当てられた第五記憶デバイスと、前記第五記憶デバイスに対応付けられ、前記第一複製先としての属性が割り当てられた第六記憶デバイスとを備えている。上記データ処理方法は、前記第一ホスト端末から送信されたライトデータを前記第一記憶デバイスに格納するステップと、前記ライトデータが前記第一記憶デバイスに格納されることによって前記第一記憶デバイスが更新された順序を表す更新番号を発行するステップと、前記発行した更新番号と前記ライトデータとを含んだデータセットを生成して、前記生成したデータセットを前記第二記憶デバイスに格納するステップと、前記第二記憶デバイスからデータセットを読み出し、前記読み出したデータセットを前記一以上の第三記憶デバイスに格納するステップと、前記一以上の第三記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記一以上の第三記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記一以上の三記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記四記憶デバイスに格納するステップと、前記一以上の第三記憶デバイスから読み出されたデータセットを前記第五記憶デバイスに格納するステップと、前記第五記憶デバイス内の一以上の前記データセットにそれぞれ含まれている更新番号に基づいて、前記第五記憶デバイス内から読み出し対象のデータセットを選択し、前記選択したデータセットを前記五記憶デバイスから読み出し、前記読み出したデータセット内のライトデータを前記六記憶デバイスに格納するステップとを有する。
【発明の効果】
【００２０】
本発明によれば、少なくとも三つの記憶サブシステムを備えるデータ処理システムにおいて、第一記憶サブシステムと第二記憶サブシステムとの物理的な距離の制約を受けないようになる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、本発明の一実施形態やその実施形態に基づく幾つかの実施例を説明する。
【００２２】
図１Ａは、本発明の一実施形態に係るデータ処理システムが行う第一の複製処理の概要を示し、図１Ｂは、そのデータ処理システムが行う第二の複製処理の概要を示す。
【００２３】
データ処理システム１には、少なくとも三つの記憶サブシステム１００として、例えば、第一記憶サブシステム１００Ａ、第二記憶サブシステム１００Ｂ、及び第三記憶サブシステム１００Ｃが備えられる。以下、説明を分かりやすくするため、第一記憶サブシステム１００Ａに関する要素には、参照番号に加えて「Ａ」という枝符号を付し、第二記憶サブシステム１００Ｂに関する要素には、参照番号に加えて「Ｂ」という枝符号を付し、第三記憶サブシステム１００Ｃに関する要素には、参照番号に加えて「Ｃ」という枝符号を付す。
【００２４】
記憶サブシステム１００Ａ、１００Ｂ及び１００Ｃの各々は、ホスト端末１８０と通信することができる。ホスト端末１８０は、ＣＰＵやメモリ等をハードウェア資源として備えるコンピュータであり、具体的には、例えば、パーソナルコンピュータ或いはサーバマシンである。以下、第一記憶サブシステム１００Ａの通信相手となるホスト端末１８０を「第一ホスト端末１８０Ａ」とし、第二記憶サブシステム１００Ｂの通信相手となるホスト端末１８０を「第二ホスト端末１８０Ｂ」とし、第三記憶サブシステム１００Ｃの通信相手となるホスト端末１８０を「第三ホスト端末１８０Ｃ」とする。
【００２５】
また、記憶サブシステム１００Ａ、１００Ｂ及び１００Ｃの各々は、図示しない物理的な記憶装置（例えばハードディスクドライブ）を一又は複数台備えており、それら一又は複数台の記憶装置に、論理的な記憶装置である論理ボリューム（以下、単に「ＶＯＬ」と表記する）６を複数個備える。例えば、第一記憶サブシステム１００Ａは、三個のＶＯＬ６Ａ１〜６Ａ３を備え、第二記憶サブシステム１００Ｂは、二個のＶＯＬ６Ｂ１〜６Ｂ２を備え、第三記憶サブシステム１００Ｃは、二個のＶＯＬ６Ｃ１〜６Ｃ２を備える。
【００２６】
ＶＯＬ６には、複数種類のＶＯＬ属性のうちの少なくとも一種類のＶＯＬ属性が割り当てられる。割り当て可能な複数種類のＶＯＬ属性としては、例えば、ＰＶＯＬ、ＳＶＯＬ、ＰＪＮＬＶＯＬ及びＳＪＮＬＶＯＬの四種類がある。
【００２７】
ＶＯＬ属性が「ＰＶＯＬ」であるＶＯＬ６は、ホスト端末１８０から記憶サブシステム１００が受信した書込み対象のデータ（以下、ライトデータ）２の書き込み先となるＶＯＬ（以下、ライトデータＶＯＬ）であり、且つ、ライトデータ２の複製元となるプライマリのライトデータＶＯＬである。以下、ＶＯＬ属性が「ＰＶＯＬ」であるＶＯＬ６を、「ＰＶＯＬ６」と記す。
【００２８】
ＶＯＬ属性が「ＳＶＯＬ」であるＶＯＬ６は、ＰＶＯＬ６に格納されているライトデータ２の複製先となるセカンダリのライトデータＶＯＬである。以下、ＶＯＬ属性が「ＳＶＯＬ」であるＶＯＬ６を、「ＳＶＯＬ６」と記す。
【００２９】
ＶＯＬ属性が「ＰＪＮＬＶＯＬ」であるＶＯＬ６は、ライトデータ２に基づいて生成されたジャーナル（以下、「ＪＮＬ」と略記）３が格納されるＶＯＬ（以下、ＪＮＬＶＯＬ）であり、且つ、ＪＮＬの複製元となるプライマリのＪＮＬＶＯＬである。以下、ＶＯＬ属性が「ＰＪＮＬＶＯＬ」であるＶＯＬ６を、「ＰＪＮＬＶＯＬ６」と記す。
【００３０】
ＶＯＬ属性が「ＳＪＮＬＶＯＬ」であるＶＯＬ６は、ＰＪＮＬＶＯＬ６に格納されているＪＮＬ３の複製先となるセカンダリのＪＮＬＶＯＬである。以下、ＶＯＬ属性が「ＳＪＮＬＶＯＬ」であるＶＯＬ６を、「ＳＪＮＬＶＯＬ６」と記す。
【００３１】
ＶＯＬ６は、ＶＯＬ属性「ＳＶＯＬ」と「ＰＶＯＬ」の両方を有する場合もある。この場合、そのＶＯＬ６は、ＳＶＯＬ６（つまりライトデータ２の複製先）として、ライトデータ２が書かれる場合もあるし、ＰＶＯＬ６（つまりライトデータ２の複製元）として、ライトデータ２が読み出される場合もある。同様に、ＶＯＬ６は、ＶＯＬ属性「ＳＪＮＬＶＯＬ」と「ＰＪＮＬＶＯＬ」の両方を有する場合もある。この場合、そのＶＯＬ６は、ＳＪＮＬＶＯＬ６（つまりＪＮＬ３の複製先）として、ＪＮＬ３が書かれる場合もあるし、ＰＪＮＬＶＯＬ６（つまりＪＮＬ３の複製元）として、ＪＮＬ３が読み出される場合もある。以下、ＶＯＬ属性「ＳＶＯＬ」と「ＰＶＯＬ」の両方を有するＶＯＬ６を、「ＳＰＶＯＬ６」と記し、ＶＯＬ属性「ＳＪＮＬＶＯＬ」と「ＰＪＮＬＶＯＬ」の両方を有するＶＯＬ６を、「ＳＰＪＮＬＶＯＬ６」と記す。
【００３２】
ＪＮＬ３は、ライトデータ２に基づき記憶サブシステム１００によって生成されるデータ群である。ＪＮＬ３には、ライトデータ２と、更新データ４とが含まれている。更新データ４は、ライトデータ２の格納位置や更新順序等を管理するためのデータである。
【００３３】
図２は、更新データ４の構成例を示す。図３は、ライトデータＶＯＬ及びＪＮＬＶＯＬの構成例であって、特に、図２に例示した更新データ４が表す構成例を示す。以下、ＶＯＬ６の記憶領域の先頭からの位置（換言すれば、先頭を基準とした位置）を便宜上「アドレス」と表記する。また、更新データ４を含んだＪＮＬ３に含まれているライトデータ２を「ＪＮＬライトデータ２」と言い、ライト命令に従って書かれるライトデータ２を「オリジナルライトデータ２」と言う。
【００３４】
更新データ４を構成するデータ要素の項目として、例えば、以下の（１）乃至（５）のデータ要素項目、
（１）ライト命令を受信した時刻、
（２）更新番号、
（３）ライト命令の論理アドレス（例えば、オリジナルライトデータ２が書かれるＶＯＬのＶＯＬＩＤと、そのＶＯＬのアドレスとのセット）、
（４）ライトデータのデータサイズ、
（５）ライトデータを格納したＪＮＬＶＯＬの論理アドレス、
がある。図２に記載の更新データ４の例によれば、ＪＮＬライトデータ２が、１９９９年３月１７日の２２時２０分１０秒に受信したライト命令に従って書き込まれたオリジナルライトデータ２に対応したものであることがわかる。また、当該ライト命令は、図３に示すように、ＶＯＬＩＤ（ＶＯＬ６の識別子）が「１」であるライトデータＶＯＬ６のアドレス７００からオリジナルライトデータ２を書き始めることを意味する命令であり、オリジナルライトデータ２のデータサイズは３００ＫＢであることがわかる。また、そのオリジナルライトデータ２に対応したＪＮＬライトデータ２は、図３に示すように、ＶＯＬＩＤが「４」であるＪＮＬＶＯＬ６のアドレス１５００から書き始められることがわかる。ＪＮＬライトデータ２が、４番目の更新の際に書かれたライトデータ２であることがわかる。なお、更新データ４は、ライト命令を受信した時刻と更新番号のどちらか一方のみを保持してもよい。また、ホスト端末１８０からのライト命令内にライト命令の作成時刻が存在する場合は、ライト命令を受信した時刻の代わりに、当該ライト命令内の作成時刻が更新データ４に保持されてもよい。
【００３５】
ＪＮＬＶＯＬ６は、例えば、図３に示すように、更新データ４を格納する記憶領域（更新データ領域）７と、ライトデータを格納する記憶領域（ライトデータ領域）８とに分割されている。更新データ領域７には、更新データ領域７の先頭から、更新番号の順に更新データが格納され、更新データ領域７の終端に達すると、次の更新番号が更新データ領域７の先頭から格納される。ライトデータ領域８には、ライトデータ領域８の先頭から順にＪＮＬライトデータ２が格納され、ライトデータ領域８の終端に達すると、次のＪＮＬライトデータ２がライトデータ領域８の先頭から格納される。更新データ領域７およびライトデータ領域８の大きさの比は、固定値でもよいし、後述するＳＶＰ（保守端末）あるいはホスト端末１８０等の特定の端末により設定変更可能としてもよい。これらの構成に関する情報は、後述するポインタ管理データ７００内に含めることができる。以下の説明では、ＪＮＬＶＯＬ６は、更新データ領域７とライトデータ領域８とに分割して使用されるが、ＪＮＬＶＯＬ６の先頭から、更新データ４とライトデータ２のセットを連続的に格納する方式が採用されてもよい（つまり、更新データ領域７とライトデータ領域８とに分かれていなくても良い）。
【００３６】
さて、再び図１Ａ及び図１Ｂを参照する。
【００３７】
データ処理システム１では、ＰＶＯＬ６とＳＶＯＬ６とによってＶＯＬペア１４が構成され、且つ、ＰＪＮＬＶＯＬ６とＳＪＮＬＶＯＬ６とによって別のＶＯＬペア（以下、便宜上「ミラーペア」と言う）１２が構成される。そして、ミラーペア１２のＰＪＮＬＶＯＬ６には、或るＶＯＬペア１４を構成するＰＶＯＬ６が対応付けられ、同一のミラーペア１２のＳＪＮＬＶＯＬ６には、そのＶＯＬペア１４を構成するＳＶＯＬ６が対応付けられる。これにより、ＰＶＯＬ６、ＰＪＮＬＶＯＬ６、ＳＶＪＮＬＶＯＬ６及びＳＶＯＬ６から成るＶＯＬグループ１６、換言すれば、ＶＯＬペア１４とミラーペア１２とを含んだＶＯＬグループ１６が構築される。そして、この構成の下では、以下の順序、すなわち、ＰＶＯＬ６にオリジナルライトデータ２が格納され、そのオリジナルライトデータ２に基づいてＪＮＬ３が生成されてＰＪＮＬＶＯＬ６に格納され、ＰＪＮＬＶＯＬ６からＪＮＬ３が読み出されてＳＪＮＬＶＯＬ６に格納され、ＳＪＮＬＶＯＬ６に格納されたＪＮＬ３に基づいてＳＶＯＬ６内にオリジナルライトデータ２がリストアされるといった順序で、ＰＶＯＬ６に格納されたオリジナルライトデータ２のＳＶＯＬ６への複製が行われる。なお、ＶＯＬペアの組み合わせによって、ＰＶＯＬの数対ＳＶＯＬの数（及び／又は、ＳＶＯＬの数対ＰＶＯＬの数）を一対二以上にすることができる。また、ミラーペアの組み合わせによって、ＰＪＮＬＶＯＬの数対ＳＪＮＬＶＯＬの数（及び／又は、ＳＪＮＬＶＯＬの数対ＰＪＮＬＶＯＬの数）を一対二以上にすることができる。
【００３８】
本実施形態では、どのＰＪＮＬＶＯＬ６とどのＳＪＮＬＶＯＬ６とでミラーペア１２を構成するかや、どのミラーペア１２のＰＪＮＬＶＯＬ６にどんなＰＶＯＬ６を対応付けるかや、どのミラーペア１２のＳＪＮＬＶＯＬ６にどんなＳＶＯＬ６を対応付けるかによって、ＰＶＯＬ６、ＰＪＮＬＶＯＬ６、ＳＪＮＬＶＯＬ６及びＳＶＯＬ６を含んだＶＯＬグループ１６を定義することができる。また、本実施形態では、複数のＶＯＬグループ１６をどのように組み合わせるかによって、具体的には、例えば、或るＶＯＬグループ１６のＰＶＯＬと別のＶＯＬグループ１６のＰＶＯＬとを同一にするか、又は、或るグループ１６のＰＶＯＬと別のＶＯＬグループ１６のＳＶＯＬとを同一にするかによって、データの複製経路及び複製方向（換言すれば、ライトデータ２の流れる経路及び方向）を二つ以上にするか一つにするかを定義することができる。以下、データの複製経路及び複製方向が二つ以上であるデータの複製方式を、便宜上、「マルチターゲット方式」と称し、データの複製経路及び複製方向が一つであるデータの複製方式を、「マルチホップ方式」と称する。
【００３９】
まず、図１Ａを参照して、マルチターゲット方式によるデータ複製処理の概要を説明する。
【００４０】
図１Ａに例示するように、第一の記憶サブシステム１００Ａが備える一つのＰＶＯＬ６Ａ１に、同記憶サブシステム１００Ａが備える第一のＰＪＮＬＶＯＬ６Ａ２及び第二のＰＪＮＬＶＯＬ６Ａ３が対応付けられる。第一のＰＪＮＬＶＯＬ６Ａ２には、第二の記憶サブシステム１００Ｂが備える第一のＳＪＮＬＶＯＬ６Ｂ１が対応付けられ、その第一のＳＪＮＬＶＯＬ６Ｂ１には、同記憶サブシステム１００Ｂが備える第一のＳＶＯＬ６Ｂ２が対応付けられる。一方、第二のＰＪＮＬＶＯＬ６Ａ３には、第三の記憶サブシステム１００Ｃが備える第二のＳＪＮＬＶＯＬ６Ｃ１が対応付けられ、その第二のＳＪＮＬＶＯＬ６Ｃ１には、同記憶サブシステム１００Ｃが備える第二のＳＶＯＬ６Ｃ２が対応付けられる。この構成により、第一と第二のデータ複製経路及び複製方向が定義され、データ処理システム１では、以下の処理が行われる。
【００４１】
第一記憶サブシステム１００Ａは、第一ホスト端末１８０Ａからオリジナルライトデータ２を受信し、そのオリジナルライトデータ２を、ＰＶＯＬ６Ａ１に格納する。また、第一の記憶サブシステム１００Ａは、その際のＰＶＯＬ６Ａ１への更新順番を表す更新番号を含んだ二重化されたＪＮＬ（以下、第一と第二のＪＮＬ）３を生成し、第一のＪＮＬ３を第一のＰＪＮＬＶＯＬ６Ａ２に格納し、第二のＪＮＬ３を第二のＪＮＬＶＯＬ６Ａ３に格納する（ＪＮＬの二重化は、例えば、後述するキャッシュメモリ１３０上で行うことができる）。第一と第二のＪＮＬ３に含まれている更新番号は、同一の更新番号となっている。なお、同一の更新番号が含まれた第一と第二のＪＮＬ３は、二重化処理とは異なる処理によって生成されてもよい。
【００４２】
この処理の後、第一の複製経路及び複製方向、すなわち、ＰＶＯＬ６Ａ１を複製スタートＶＯＬとし、第一ＰＪＮＬＶＯＬ６Ａ２及び第一ＳＪＮＬＶＯＬ６Ｂ１を中継ＶＯＬとし、第一ＳＶＯＬ６Ｂ２を複製ゴールＶＯＬとした経路に従う複製処理が行われることで、第一のＳＶＯＬ６Ｂ２に、ＰＶＯＬ６Ａ１に書かれたオリジナルライトデータ２がリストアされる。具体的には、第二の記憶サブシステム１００Ｂが、所定の又は任意のタイミングで、第一のＪＮＬ３を第一のＰＪＮＬＶＯＬ６Ａ２から読み出すためのＪＮＬリード命令を生成し、そのＪＮＬリード命令を第一記憶サブシステム１００Ａに送信する。そのＪＮＬリード命令は、例えば、単にＪＮＬを読み出すことの命令を意味するものであってもよいし、未だ読み出していない第一のＪＮＬ３のうち最も若い更新番号（換言すれば、直前の回に読み出した第一ＪＮＬ３に含まれていた更新番号の次の更新番号）を含んだ第一のＪＮＬ３を読み出すための命令（具体的には、例えば、第一のＰＪＮＬＶＯＬ６Ａ２のＶＯＬＩＤと更新番号とを含んだリード命令）であってもよい。第一の記憶サブシステム１００Ａは、そのリード命令に応答して、そのリード命令中で指定された更新番号を有する第一ＪＮＬ３を第一ＰＪＮＬＶＯＬ６Ａ２から読み出し、読み出した第一ＪＮＬ３を、リード命令の送信元である第二の記憶サブシステム１００Ｂに返送する。第二の記憶サブシステム１００Ｂは、第一の記憶サブシステム１００Ａから受信した第一ＪＮＬ３を、第一のＳＪＮＬＶＯＬ６Ｂ１に格納する。また、第二の記憶サブシステム１００Ｂは、所定の又は任意のタイミングで、リストア処理の済んでいない一以上の第一ＪＮＬ３のうち最も若い更新番号（換言すれば、直前の回に読み出した第一ＪＮＬ３に含まれていた更新番号の次の更新番号）を含んだ第一ＪＮＬ３を第一ＳＪＮＬＶＯＬ６Ｂ１から読み出し、読み出した第一ＪＮＬ３に含まれているＪＮＬライトデータ２をオリジナルライトデータ２として第一ＳＶＯＬ６Ｂ２に格納する。なお、第一のＳＪＮＬＶＯＬ６Ｂ１に第一ＪＮＬ３が書き込まれるタイミングと、第一のＳＪＮＬＶＯＬ６Ｂ１から第一ＪＮＬ３が読み出されるタイミングは同じあっても異なっていてもよい。換言すれば、例えば、或るタイミングで第一のＳＪＮＬＶＯＬ６Ｂ１に書き込まれた第一ＪＮＬ３中の更新番号と、そのタイミングと同じ或いは直近のタイミングで第一のＳＪＮＬＶＯＬ６Ｂ１から読み出された第一ＪＮＬ３中の更新番号とは、同一であっても異なっていても良い。
【００４３】
また、第二の複製経路及び複製方向、すなわち、ＰＶＯＬ６Ａ１を複製スタートＶＯＬとし、第二ＰＪＮＬＶＯＬ６Ａ３及び第二ＳＪＮＬＶＯＬ６Ｃ１を中継ＶＯＬとし、第二ＳＶＯＬ６Ｃ２を複製ゴールＶＯＬとした経路に従う複製処理が行われることで、第二のＳＶＯＬ６Ｃ２に、ＰＶＯＬ６Ａ１に書かれたオリジナルライトデータ２がリストアされる。具体的な処理流れ例は、第一の複製経路及び複製方向に従う複製処理と同様である。なお、第一及び第二の複製経路及び複製方向の少なくとも一つにおいて、第一の記憶サブシステム１００Ａが、書き込み対象のＪＮＬ３とライト命令とをＳＪＮＬＶＯＬ６Ｂ１又は６Ｂ２を宛先として送信することで、ＪＮＬ３がＳＪＮＬＶＯＬ６Ｂ１又は６Ｂ２に格納されてもよい。
【００４４】
以上が、マルチターゲット方式に従う複製処理の概要である。この複製処理によれば、ＰＶＯＬ６Ａ１に書かれたオリジナルライトデータ２に基づいて、同一の更新番号が付された複数のＪＮＬ３が生成され、それら複数のＪＮＬ３は、ＰＶＯＬ６Ａ１に対応付けられた複数のＰＪＮＬＶＯＬ６Ａ２及び６Ａ３にそれぞれ格納される。その後、ＪＮＬ３中の更新番号に従う順序で、ＰＪＮＬＶＯＬ６Ａ２及び６Ａ３から、そのＰＪＮＬＶＯＬ６Ａ２及び６Ａ３とそれぞれミラーペア１２を構成するＳＪＮＬＶＯＬ６Ｂ１及び６Ｃ１にＪＮＬ３がそれぞれ読み出され、そのＪＮＬ３を基に、ＰＶＯＬ６Ａ１とＶＯＬペア１４を構成するＳＶＯＬ６Ｂ２及び６Ｃ２（換言すれば、ＪＮＬ３の複製先であるＳＪＮＬＶＯＬ６Ｂ１及び６Ｃ１にそれぞれ対応付けられたＳＶＯＬ６Ｂ２及び６Ｃ２）に、ＰＶＯＬ６Ａ１に書かれたオリジナルライトデータ２と同一のオリジナルライトデータ２がリストアされる。これにより、第二記憶サブシステム１００Ｂと第三記憶サブシステム１００Ｃが互いにデータの更新状況を問い合わせなくても、二つの記憶サブシステム１００Ｂ、１００Ｃ間でのデータの整合性を保つことができる。
【００４５】
次に、図１Ｂを参照して、マルチホップ方式によるデータ複製処理の概要を説明する。
【００４６】
図１Ｂに例示するように、第二の記憶サブシステム１００Ｂが備えるＰＶＯＬ６Ｂ２に、同記憶サブシステム１００Ｂが備えるＰＪＮＬＶＯＬ６Ｂ２が対応付けられる。そのＰＪＮＬＶＯＬ６Ｂ１には、第一の記憶サブシステム１００Ａが備えるＳＪＮＬＶＯＬ６Ａ２が対応付けられ、そのＳＪＮＬＶＯＬ６Ａ２には、同記憶サブシステム１００Ａが備えるＳＰＶＯＬ６Ａ１がＳＶＯＬ（ＰＶＯＬ６Ｂ２とＶＯＬペア１４を構成するＳＶＯＬ）として対応付けられる。また、そのＳＰＶＯＬ６Ａ１には、そのＳＰＶＯＬ６Ａ１がＰＶＯＬであるとして、同記憶サブシステム１００Ａが備えるＰＪＮＬＶＯＬ６Ａ３が対応付けられる。そのＰＪＮＬＶＯＬ６Ａ３には、第三の記憶サブシステム１００Ｃが備えるＳＪＮＬＶＯＬ６Ｂ１が対応付けられ、そのＳＪＮＬＶＯＬ６Ｂ１には、同記憶サブシステム１００Ｃが備えるＳＶＯＬ（ＰＶＯＬとしたＳＰＶＯＬ６Ａ１とＶＯＬペア１４を構成するＳＶＯＬ）６Ｃ２が対応付けられる。この構成により、第二記憶サブシステム１００Ｂが備えるＰＶＯＬ６Ｂ２を複製スタートＶＯＬとし、第三記憶サブシステム１００Ｃが備えるＳＶＯＬ６Ｃ２を複製ゴールＶＯＬとし、ＶＯＬ６Ｂ２、６Ａ２、６Ａ１、６Ｂ３及び６Ａ２を中継ＶＯＬとした一つのデータ複製経路及び複製方向が定義され、データ処理システム１では、以下の処理が行われる。
【００４７】
第二記憶サブシステム１００Ｂは、第二ホスト端末１８０Ｂからオリジナルライトデータ２を受信し、そのオリジナルライトデータ２を、ＰＶＯＬ６Ｂ２に格納する。また、第二記憶サブシステム１００Ｂは、その際のＰＶＯＬ６Ｂ２の更新順番を表す更新番号を含んだＪＮＬ３を生成し、そのＪＮＬ３をＰＪＮＬＶＯＬ６Ｂ１に格納する。
【００４８】
第一の記憶サブシステム１００Ａが、所定の又は任意のタイミングで、ＪＮＬ３をＰＪＮＬＶＯＬ６Ｂ１から読み出すためのＪＮＬリード命令を生成し、そのＪＮＬリード命令を第二記憶サブシステム１００Ｂに送信する。そのＪＮＬリード命令は、例えば、単にＪＮＬを読み出すことの命令を意味するものであってもよいし、未だ読み出していないＪＮＬ３うち最も若い更新番号（換言すれば、直前の回に読み出したＪＮＬに含まれていた更新番号の次の更新番号）を含んだＪＮＬを読み出すための命令（具体的には、例えば、ＰＪＮＬＶＯＬ６Ｂ１のＶＯＬＩＤと更新番号とを含んだリード命令）であってもよい。第二記憶サブシステム１００Ｂは、そのリード命令に応答して、そのリード命令中で指定された更新番号を有するＪＮＬ３をＰＪＮＬＶＯＬ６Ｂ１から読み出し、読み出したＪＮＬ３を、リード命令の送信元である第一記憶サブシステム１００Ｂに返送する。第一記憶サブシステム１００Ａは、第二記憶サブシステム１００Ｂから受信したＪＮＬ３を、ＳＪＮＬＶＯＬ６Ａ２に格納する。また、第一記憶サブシステム１００Ａは、所定の又は任意のタイミングで（例えば、ＳＪＮＬＶＯＬ６Ａ２へのＪＮＬの格納と同じタイミングで）、リストア処理の済んでいない一以上のＪＮＬ３のうち最も若い更新番号（換言すれば、直前の回に読み出した第一ＪＮＬ３に含まれていた更新番号の次の更新番号）を含んだＪＮＬ３を、ＳＪＮＬＶＯＬ６Ａ２から読み出し、読み出したＪＮＬ３に含まれているＪＮＬライトデータ２をオリジナルライトデータ２としてＳＰＶＯＬ６Ａ１に格納する。なお、ＳＪＮＬＶＯＬ６Ａ２にＪＮＬ３が書き込まれるタイミングと、ＳＪＮＬＶＯＬ６Ａ２からＪＮＬ３が読み出されるタイミングは同じであっても異なっていてもよい。換言すれば、例えば、或るタイミングでＳＪＮＬＶＯＬ６Ａ２に書き込まれたＪＮＬ３中の更新番号と、そのタイミングと同じ或いは直近のタイミングでＳＪＮＬＶＯＬ６Ａ２から読み出されたＪＮＬ３中の更新番号とは、同一であっても異なっていても良い。
【００４９】
ＰＶＯＬ６Ｂ２、ＰＪＮＬＶＯＬ６Ｂ１、ＳＪＮＬＶＯＬ６Ａ２及びＳＰＶＯＬ６Ａ１を有するＶＯＬグループ１６において行われたデータ複製処理と同様の処理が、ＳＰＶＯＬ６Ａ１、ＰＪＮＬＶＯＬ６Ａ３、ＳＪＮＬＶＯＬ６Ｃ１及びＳＰＶＯＬ６Ａ１を有する別のＶＯＬグループ１６についても行われる。すなわち、第一記憶サブシステム１００Ａが、ＳＰＶＯＬ６Ａ１から、ＳＰＶＯＬ６Ａ１の更新順番を表す更新番号を含んだＪＮＬ３を生成し、そのＪＮＬ３をＰＪＮＬＶＯＬ６Ａ３に格納する。その後、第一記憶サブシステム１００Ａは、第三記憶サブシステム１００ＣからＪＮＬ３のリード命令を受信し、それに応答して、ＰＪＮＬＶＯＬ６Ａ３からＪＮＬ３を読み出して第三記憶サブシステム１００Ｃに転送する。それにより、第三記憶サブシステム１００Ｃにおいて、そのＪＮＬ３がＳＪＮＬＶＯＬ６Ｃ１に書き込まれ、且つ、そのＪＮＬ３に含まれているＪＮＬライトデータ２がオリジナルライトデータ２としてＳＶＯＬ６Ｃ２にリストアされる。
【００５０】
以上が、マルチホップ方式に従う複製処理の概要である。なお、ＰＪＮＬＶＯＬからＳＪＮＬＶＯＬへのＪＮＬの複製は、ＳＪＮＬＶＯＬを有する記憶サブシステム１００がＰＪＮＬＶＯＬを有する記憶サブシステム１００にリード命令を送信することによって行われたが、それとは逆に、ＰＪＮＬＶＯＬを有する記憶サブシステム１００がＳＪＮＬＶＯＬを有する記憶サブシステム１００にライト命令を送信することによって行われてもよい。
【００５１】
このマルチホップ方式に従う複製処理によれば、第二記憶サブシステム１００ＢのＰＶＯＬ６Ｂ２に書かれたオリジナルライトデータ２に基づいて、更新番号を含んだＪＮＬ３が生成され、そのＪＮＬ３は、ＰＶＯＬ６Ｂ２に対応付けられたＰＪＮＬＶＯＬ６Ｂ１に格納される。その後、定義された一つの複製経路及び複製方向に沿って下流側に、ライトデータ２が転送されていき、やがて、その複製経路及び複製方向の複製ゴールＶＯＬである、第三記憶サブシステム１００ＣのＳＶＯＬ６Ｃ２に、複製スタートＶＯＬであるＰＶＯＬ６Ｂ２に書かれたオリジナルライトデータ２と同一のデータが複製される。これにより、第二記憶サブシステム１００Ｂと第三記憶サブシステム１００Ｃが互いにデータの更新状況を問い合わせなくても、二つの記憶サブシステム１００Ｂ、１００Ｃ間でのデータの整合性を保つことができる。
【００５２】
データ処理システム１は、上述したマルチターゲット方式とマルチホップ方式とを切り替えたり、或いは、マルチターゲット方式とマルチホップ方式とを組み合わせたりすることを動的に行うことができる。例えば、図１Ａに例示したマルチターゲット方式が採用されている場合に、第一ホスト端末１８０Ａで障害が発生した場合には、図１Ｂに例示したマルチホップ方式に切替えることができる。また、例えば、図１Ｂに例示したマルチホップ方式が採用されている場合に、第二ホスト端末１８０Ｂで障害が発生した場合には、図１Ａに例示したマルチターゲット方式に切り替えることができる。また、例えば、記憶サブシステム１００の数が四以上の場合のマルチターゲット方式では、第一の複製経路及び複製方向と第二の複製経路及び複製方向の少なくとも一方が、マルチホップ方式に従う複製経路及び複製方向とすることができる。
【００５３】
以下、図４乃至図２０を参照して、本実施形態に係るデータ処理システム１の基本的な構成や処理を説明し、その後、その実施形態の第一実施例として、マルチターゲット方式について詳細に説明し、更に、その後、その実施形態の第二実施例として、マルチホップ方式について詳細に説明することにする。
【００５４】
図４は、データ処理システム１の構成例を示す。なお、この図には、第一記憶サブシステム１００Ａの構成を詳細に示し、他の記憶サブシステム１００Ｂ及び１００Ｃの構成は第一記憶サブシステム１００Ａと同様なので、それについては概略的に示している。以下、第一記憶サブシステム１００Ａを代表的に例に採り説明し、適宜、他の記憶サブシステム１００Ｂ及び１００Ｃについても説明する。
【００５５】
第一記憶サブシステム１００Ａは、例えばRAID（Redundant Array of Independent Disks）システムのようなディスクアレイシステムである。第一記憶サブシステム１００Ａは、例えば、第一記憶サブシステム１００Ａが行う処理を制御する制御装置１０１Ａと、RAIDグループ２１０Ａと、サービスプロセッサ（SVP）２８１Ａとを備える。制御装置１０１Ａは、例えば、複数のディスクアダプタ（以下、ＤＫＡ）１２０Ａと、複数のチャネルアダプタ（以下、ＣＨＡ）１１０Ａと、キャッシュメモリ１３０Ａと、共有メモリ１４０Ａと、スイッチング制御部２７０Ａとを備える。
【００５６】
RAIDグループ２１０Ａは、複数の記憶装置１５０Ａを含んでおり、例えば、RAID１やRAID５等のRAIDに基づく冗長記憶を提供する。各記憶装置１５０Ａは、例えば、ハードディスクドライブ（或いはハードディスクそれ自体）、半導体メモリ装置、光磁気ディスクドライブ（或いは光磁気ディスクそれ自体）等の記憶デバイスから構成することができる。各記憶装置１５０Ａが提供する物理的な記憶領域上には、論理的な記憶領域であるＶＯＬ６Ａを少なくとも一つ以上設定可能である。ＶＯＬ６Ａには、ホスト端末１８０Ａから利用される複数のライトデータが記憶することができる。また、別のＶＯＬ６Ａには、後述する第一制御情報１４１Ａ等を格納し、システム領域として利用することもできる。なお、記憶装置１５０Ａは、その全てが第一記憶サブシステム１００Ａの筐体内に位置する必要はない。例えば、他の記憶サブシステム１００Ｂ又は１００Ｃが有するＶＯＬを、第一記憶サブシステム１００ＡのＶＯＬとして使用することもできる。
【００５７】
各ＤＫＡ１２０Ａは、各記憶装置１５０Ａとの間のデータ授受を制御するものである。各ＤＫＡ１２０Ａは、例えば、CPU、ROM、RAM等を含んだマイクロコンピュータシステムとして構成される。各ＤＫＡ１２０Ａは、第一記憶サブシステム１００Ａ内に複数設けられる。ＤＫＡ１２０は、例えば、SCSIやiSCSI等に基づいて、記憶装置１５０Ａとの間でブロックレベルのデータ転送を行う。
【００５８】
複数のＣＨＡ１１０Ａの各々は、ＤＫＡ１２０Ａと同様に、マイクロコンピュータシステムとして構成可能である。複数のＣＨＡ１１０Ａには、ホスト端末１８０Ａと接続パス１９０Ａを介してデータ通信を行う１以上の複数のホストＣＨＡ１１０ＨＡと、他の記憶サブシステム１００Ｂ及び１００Ｃとそれぞれ接続パス２００Ａ、２００Ｂを介してデータ通信を行うシステムＣＨＡ１１０ＳＡ１、１１０ＳＡ２とが含まれている。なお、接続パス１９０Ａ、２００Ａ及び２００Ｂの少なくとも一方は、通信ネットワークであっても良いし、専用のパスラインであっても良い。また、ホストＣＨＡ１１０ＨＡは、ホスト端末１８０の種類（例えば、サーバかメインフレームか等）に応じて、それぞれ用意されてもよい。
【００５９】
キャッシュメモリ１３０Ａは、例えば、揮発または不揮発の半導体メモリから構成することができる。キャッシュメモリ１３０Ａは、ホスト端末１８０Ａからのライトデータ２（ＶＯＬに書き込まれるデータ）や、ＶＯＬ６Ａから読み出されたライトデータ２を記憶する。
【００６０】
共有メモリ１４０Ａは、例えば、不揮発または揮発の半導体メモリから構成することができる。共有メモリ１４０Ａは、例えば、ホスト端末１８０Ａから受信した各種コマンドや、第一記憶サブシステム１００Ａの制御に使用する第一制御情報１４１Ａ等を記憶する。コマンドや後述の第一制御情報１４１Ａ等は、複数の共有メモリ１４０Ａによって、冗長記憶されてもよい。なお、キャッシュメモリ１３０Ａと共有メモリ１４０Ａとは、それぞれ別々のメモリとして構成することもできるし、あるいは、一つのメモリの一部をキャッシュメモリ領域として使用し、残りを共有メモリ領域として使用することもできる。
【００６１】
スイッチング制御部２７０Ａは、各ＤＫＡ１２０Ａと、ホストＣＨＡ１１０ＨＡと、システムＣＨＡ１１０ＳＡ１及びＳＡ２と、キャッシュメモリ１３０Ａと、共有メモリ１４０Ａとを、それぞれ相互に接続するものである。スイッチング制御部２７０Ａは、例えば、超高速クロスバスイッチ等から構成することができる。
【００６２】
ＳＶＰ（Service Processor）２８１Ａは、例えば内部ネットワーク（例えばＬＡＮ）２８２Ａを介して、第一記憶サブシステム１００Ａ内の各部の状態を収集し監視する。SVP２８１Ａ、収集した内部状態の情報を生データのままで、あるいは、統計処理したデータとして、外部の管理端末（不図示）に出力する。ＳＶＰ２８１Ａが収集可能な情報としては、例えば、装置構成、電源アラーム、温度アラーム、入出力速度等が挙げられる。システム管理者は、管理端末からＳＶＰ２８１Ａを介して、RAID構成の設定変更や、各種パッケージ（例えば、ＣＨＡ１１０ＡやＤＫＡ１２０Ａ）の閉塞処理等を行うことができる。また、ＳＶＰ２８１Ａは、通信ネットワーク（例えばＬＡＮ又はインターネット）１０８を介して管理端末１０９から遠隔操作されてもよい。
【００６３】
次に、第一記憶サブシステム１００Ａが行う処理の一例について説明する。ホストＣＨＡ１１０ＨＡは、接続パス１９０Ａを介して、ホスト端末１８０Ａからライト命令及びライトデータ２を受信する。受信されたライト命令は共有メモリ１４０Ａに記憶され、受信されたライトデータ２はキャッシュメモリ１３０Ａに記憶される。ＤＫＡ１２０Ａは、共有メモリ１４０Ａを随時参照している。ＤＫＡ１２０Ａは、共有メモリ１４０Ａに記憶されている未処理のライト命令を発見すると、このライト命令に従って、キャッシュメモリ１３０Ａからライトデータ２を読み出し、アドレス変換等を行う。ＤＫＡ１２０Ａは、ライト命令によって指定されたＶＯＬ６Ａを構成する各記憶装置１５０Ａに、ライトデータ２を記憶させる。
【００６４】
ホスト端末１８０Ａからのリード命令を処理する場合を説明する。ホストＣＨＡ１１０ＨＡは、ホスト端末１８０Ａからリード命令を受信すると、このリード命令を共有メモリ１４０Ａに記憶させる。ＤＫＡ１２０Ａは、共有メモリ１４０Ａ内で未処理のリード命令を発見すると、このリード命令によって指定されたＶＯＬ６Ａを構成する各記憶装置１５０Ａからライトデータ２を読み出す。ＤＫＡ１２０Ａは、読み出したライトデータ２をキャッシュメモリ１３０Ａに記憶させる。また、ＤＫＡ１２０Ａは、要求されたライトデータ２の読出しが完了した旨を、共有メモリ１４０Ａを介して、ホストＣＨＡ１１０ＨＡに通知する。ホストＣＨＡ１１０ＨＡは、キャッシュメモリ１３０Ａからライトデータ２を読み込み、ホスト端末１８０Ａに送信する。
【００６５】
第一記憶サブシステム１００Ａと第二記憶サブシステム１００Ｂとの間で接続パス２００Ａ（リモートコピーラインと呼んでも良い）を介して行われるデータ複製（以下、「リモートコピー」と呼ぶ場合がある）の一例について説明する。なお、その説明は、第一記憶サブシステム１００Ａと第三記憶サブシステム１００Ｃとの間で接続パス２００Ｂを介して行われるデータ複製や、第二記憶サブシステム１００Ｂと第三記憶サブシステム１００Ｃとの間で接続パス２００Ｃを介して行われ得るデータ複製にも適用することができる。
【００６６】
リモートコピーは、ホスト端末１８０Ａからのライト命令或いはリード命令ではなく、記憶サブシステム１００Ａ、１００Ｂ間で送受信されるライト命令或いはリード命令に応答して行われるものであり、ホスト端末１８０Ａを不要としたデータ複製処理である。
【００６７】
具体的には、例えば、第一記憶サブシステム１００Ａの制御装置１０１Ａは、ＰＶＯＬ６Ａを更新する都度に、上述したＪＮＬ３を生成してＰＪＮＬＶＯＬ６Ａに格納し、第二記憶サブシステム１００Ｂからリード命令を受けた場合（或いは、自分がライト命令を第二記憶サブシステム１００Ｂに発行した場合）には、ＰＪＮＬＶＯＬ６Ａ内のＪＮＬ３を接続パス２００Ａを介して第二記憶サブシステム１００Ｂに送信する。これにより、第一記憶サブシステム１００ＡにおけるＪＮＬ３の格納とは非同期で、そのＪＮＬ３が第二記憶サブシステム１００Ｂに格納される。また、そのＪＮＬ３を用いたリストア処理が第二記憶サブシステム１００Ｂで行われることにより、ＳＶＯＬ６ＢがＰＶＯＬ６Ａの複製となる。
【００６８】
以上が、本実施形態における記憶サブシステム１００の構成例である。なお、言うまでも無いが、記憶サブシステム１００は、上述した構成に限定する必要は無い。例えば、接続パス２００Ｃは、無くてもよい。また、管理端末１０９は、通信ネットワーク１０８を介して、各記憶サブシステム１００Ａ〜１００Ｃの各ＳＶＰ２８１Ａ〜２８１Ｃを遠隔操作し、各記憶サブシステム１００Ａ〜１００Ｃに第一〜第三の制御情報１４１Ａ〜１４１Ｃをそれぞれ登録しても良い。また、制御装置１０１は、上記の構成に限らず、例えば、制御情報やライトデータ等を記憶することができるメモリと、ホスト端末１８０に対するインターフェース装置（以下、「Ｉ／Ｆ」と略記）と、他の記憶サブシステムに対するＩ／Ｆと、記憶装置１５０に対するＩ／Ｆと、メモリ上の情報に基づきそれらのＩ／Ｆを介した通信等を制御する制御部（例えばＣＰＵ）とにより構成されてもよい。また、記憶サブシステム１００では、ホスト端末１８０（もしくは、他の記憶サブシステム）からＣＨＡ１１０及びスイッチング制御部２７０を介してキャッシュメモリ１３０へ行う第一データ転送や、キャッシュメモリ１３０からスイッチング制御部２７０及びＣＨＡ１１０を介してホスト端末（もしくは、他の記憶サブシステム）へ行う第二データ転送は、第一データ転送を制御するＣＨＡ１１０と第二データ転送を制御するＣＨＡ１１０とが異なれば、及び／又は、データの転送元と転送先となるキャッシュが異なれば（例えば、転送元のキャッシュメモリアドレスと転送先のキャッシュメモリアドレスとが異なれば）、同時に行うことができる。同様に、記憶サブシステム１００では、記憶装置１５０からＤＫＡ１２０及びスイッチング制御部２７０を介してキャッシュメモリ１３０へ行う第三データ転送や、キャッシュメモリ１３０からスイッチング制御部２７０及びＤＫＡ１２０を介して記憶装置１５０へ行う第四データ転送は、第三データ転送を制御するＤＫＡ１２０と第四データ転送を制御するＤＫＡ１２０とが異なれば、及び／又は、データの転送元と転送先となるキャッシュが異なれば（例えば、転送元のキャッシュメモリアドレスと転送先のキャッシュメモリアドレスとが異なれば）、同時に行うことができる。また、上述した第一データ転送での転送先又は第二データ転送での転送元と、第三データ転送での転送先及び／又は第四データ転送での転送元とが異なれば、第一データ転送又は第二データ転送と、第三データ転送及び／又は第四データ転送とを同時に行うことができる。また、上記のような同時転送を行うために、各転送経路（例えば、CHA１１０とスイッチング制御部２７０との間の転送経路、DKA１２０とスイッチング制御部２７０との間の転送経路、スイッチング制御部２７０とキャッシュメモリ１３０との間の転送経路）には、適切な帯域（転送速度）が必要となる。例えば、１つのスイッチング制御部２７０が、２つのCHA１１０と、２つのDKA１２０と、２つのキャッシュメモリ１３０とに接続されている場合、スイッチング制御部２７０とキャッシュメモリ１３０との間の帯域は、CHA１１０（又はDKA１２０）とスイッチング制御部２７０との間の帯域の１倍以上でなければ、多重伝送のメリットはなく、２倍以上の帯域があることが望ましい。また、記憶装置１５０の書込み速度や読出し速度、及び、キャッシュメモリ１３０の書込み速度や読出し速度は、記憶装置１５０とキャッシュメモリ１３０との間のパスの転送速度に比べて速い速度であり、且つ、互いにアンダーランエラーやオーバーランエラーが生じないような速度になっているのが好ましい。また、ホスト端末１８０Ａ〜１８０Ｃ及び記憶サブシステム１００Ａ〜１００Ｃは、同一の通信ネットワーク（例えばＳＡＮ（Storage Area Network））に接続されていても良い。
【００６９】
ところで、ＣＨＡ１１０Ａ及びＤＫＡ１２０Ａから参照可能なメモリ、例えば、共有メモリ１４０Ａには、第一制御情報１４１Ａが格納される。第一制御情報１４１Ａは、第一記憶制御システム１００Ａに固有の内容であっても良いし、データ処理システム１に備えられる全ての記憶サブシステム１００Ａ〜１００Ｃに共通の内容であってもよい。第一制御情報１４１Ａは、ＳＶＰ２８１Ａから入力しても良いし、管理端末１０９から通信ネットワーク１０８及びＳＶＰ２８１Ａを介して入力しても良い。ＳＶＰ２８１Ａから入力された第一制御情報１４１Ａの全部又は一部は、例えば、共有メモリ１４０、キャッシュメモリ１３０、ＣＨＡ１１０、ＤＫＡ１２０、及び記憶装置１５０の少なくとも一つに集中してまたは分散して格納されても良い。本実施形態では、第一の制御情報１４１Ａは、例えば、ＣＨＡ１１０Ａ又はＤＫＡ１２０Ａから内部ネットワーク２８２Ａを介して共有メモリ１４０Ａに登録される。第一制御情報１４１Ａには、例えば、図５に示すように、ＶＯＬ管理データ４００Ａ、パス管理データ５００Ａ、及びポインタ管理データ７００Ａが含まれる。以下、それらについて説明する。
【００７０】
図６Ａは、図１Ａに例示したマルチターゲット方式が採用された場合のＶＯＬ管理データ４００Ａの構成例を示す。図６Ｂは、図１Ｂに例示したマルチホップ方式が採用された場合のＶＯＬ管理データ４００Ａの構成例を示す。なお、図６Ｂでは、図６Ａに示した内容と異なる場所を点線枠で示している。
【００７１】
ＶＯＬ管理データ４００Ａは、複数のＶＯＬ６Ａを管理するためのデータであり、例えば、各ＶＯＬ６Ａ毎に対応付けられたＶＯＬＩＤ、ＶＯＬ状態、フォーマット形式、ＶＯＬ容量（例えば単位はギガバイト）、及び物理アドレスをデータ要素として含んでいる。
【００７２】
ＶＯＬＩＤは、ＶＯＬ６Ａを識別するための識別子である。その識別子は、例えば、番号である。なお、この図６Ａ及び図６Ｂでは、ＶＯＬＩＤ「１」が、図１Ａ及び図１Ｂに例示したＶＯＬ６Ａ１であり、ＶＯＬＩＤ「４」が、図１Ａ及び図１Ｂに例示したＶＯＬ６Ａ２であり、ＶＯＬＩＤ「５」が、図１Ａ及び図１Ｂに例示したＶＯＬ６Ａ３である。
【００７３】
ＶＯＬ状態は、ＶＯＬ６Ａの状態を表すデータ要素であり、例えば、“正常”、“正”、“副”、“異常”、又は“未使用”などで表すことができる。ＶＯＬ状態が“正常”もしくは“正”であるＶＯＬ６Ａは、ホスト端末１８０Ａから正常にアクセス可能なＶＯＬ６Ａである。ＶＯＬ状態が“副”であるＶＯＬ６Ａは、ホスト端末１８０Ａからのアクセスが許可されてもよいＶＯＬ６Ａである。ＶＯＬ状態が“正”であるＶＯＬ６Ａは、ＰＶＯＬ又はＰＪＮＬＶＯＬである。ＶＯＬ状態が“副”であるＶＯＬ６Ａは、ＳＶＯＬ又はＳＪＮＬＶＯＬである。ＶＯＬ状態が“異常”のＶＯＬ６Ａは、障害により正常にアクセスできないＶＯＬ６Ａである。ここで言う「障害」とは、例えば、ＶＯＬ６Ａを保持する記憶装置１５０Ａの故障である。ＶＯＬ状態が“未使用”のＶＯＬ６Ａは、使用していないＶＯＬ６Ａであることを示す。なお、ＶＯＬ状態が“正”であるＶＯＬ６Ａが、ＰＶＯＬとＰＪＮＬＶＯＬのどちらであるかや、ＶＯＬ状態が“副”であるＶＯＬ６Ａが、ＳＶＯＬ又はＳＪＮＬＶＯＬのどちらであるかは、後述のペア管理サブデータ５０１Ａを参照することにより特定することができる。
【００７４】
ＶＯＬ容量は、ＶＯＬ６Ａの記憶容量を表す。
【００７５】
物理アドレスは、第一記憶サブシステム１００Ａ内の物理的な格納位置であり、例えば、図示のように、記憶サブシステム１００Ａ内の記憶装置１５０を識別するＩＤ（例えば番号）と、記憶装置１５０内の記憶領域を一意に示す数値（例えば、記憶装置１５０の記憶領域の先頭からの位置）とから構成される。なお、一つのＶＯＬ６Ａは、論理アドレスと物理アドレスの変換（換言すれば対応付け）により、１つの記憶装置１５０Ａに設けられた記憶領域であってもよいし、複数の記憶装置１５０Ａに設けられた記憶領域であってもよい。
【００７６】
図６Ａに例示するＶＯＬ管理データ４００Ａによれば、例えば、ＶＯＬＩＤが「１」であるＶＯＬ６Ａは、ＶＯＬ容量が３ＧＢであり、記憶装置ＩＤが「１」である記憶装置１５０Ａの記憶領域の先頭からデータが格納されており、ＰＶＯＬ又はＰＪＮＬＶＯＬであることがわかる。また、図６Ｂに例示するＶＯＬ管理データ４００Ａによれば、ＶＯＬＩＤが「１」であるＶＯＬ６Ａは、ＳＰＶＯＬ又はＳＰＪＮＬＶＯＬであることがわかる。
【００７７】
図７Ａは、図１Ａに例示したマルチターゲット方式が採用された場合のパス管理データ５００Ａの構成例を示す。図７Ｂは、図１Ｂに例示したマルチホップ方式が採用された場合のパス管理データ５００Ａの構成例を示す。なお、図７Ｂでは、図７Ａに示した内容と異なる場所を点線枠で示している。
【００７８】
パス管理データ５００Ａは、ＶＯＬペアを管理するためのペア管理サブデータ５０１Ａと、ミラーペアを管理するためのミラー管理サブデータ５０２Ａとを含んでいる。
【００７９】
ペア管理サブデータ５０１Ａは、例えば、各ＶＯＬペア毎に対応付けられたＶＯＬペアＩＤ、ペア状態、正記憶サブシステムＩＤ、ＰＶＯＬ−ＩＤ、ＰＪＮＬＶＯＬ−ＩＤ、副記憶サブシステムＩＤ、ＳＶＯＬ−ＩＤ、ＳＪＮＬＶＯＬ−ＩＤ及びコピー済みアドレスをサブデータ要素として含んでいる。
【００８０】
ＶＯＬペアＩＤは、ＶＯＬペアを識別するための識別子（例えば番号）である。
【００８１】
ＶＯＬペア状態は、そのＶＯＬペアの状態を示すサブデータ要素であり、例えば、“正常”、“異常”、“未使用”,“コピー未”、又は“コピー中”などで表すことができる。ＶＯＬペア状態“正常”とは、ＰＶＯＬ６Ａのデータ複製が正常に行われていることを示す。ＶＯＬペア状態“異常”とは、障害によりＰＶＯＬ６Ａの複製が行えないことを示す。ここで言う「障害」とは、例えば、接続パス２００の断線などである。ＶＯＬペア状態“未使用”とは、そのＶＯＬペア状態に対応するペア番号の情報は有効でないことを示す。ＶＯＬペア状態“コピー中”とは、後述する初期コピー処理中であることを示す。ＶＯＬペア状態“コピー未”とは、後述する初期コピー処理が未だ行われていないことを示す。
【００８２】
正記憶サブシステムＩＤは、ＰＶＯＬを保持する記憶サブシステム１００を特定するための識別子である。その識別子としては、例えば、番号、ＷＷＮ（World Wide Name）、iSCSIネーム及びＭＡＣアドレスのうちの少なくとも一つを採用することができる。
【００８３】
ＰＶＯＬ−ＩＤは、ＰＶＯＬの識別子である。
【００８４】
ＰＪＮＬＶＯＬ−ＩＤは、そのＰＶＯＬに対応付けられたＰＪＮＬＶＯＬの識別子である。
【００８５】
副記憶サブシステムＩＤは、ＳＶＯＬを保持する記憶サブシステム１００Ｂを特定するための識別子である。
【００８６】
ＳＶＯＬ−ＩＤは、ＳＶＯＬの識別子である。
【００８７】
ＳＪＮＬＶＯＬ−ＩＤは、そのＳＶＯＬに対応付けられたＳＪＮＬＶＯＬの識別子である。
【００８８】
コピー済みアドレスは、後述する初期コピー処理（図１０参照）の際に使用される。コピー済みアドレスについては後述する。
【００８９】
ミラー管理サブデータ５０２Ａは、例えば、各ミラーペア毎に対応付けられたミラーＩＤ、ＰＪＮＬＶＯＬ−ＩＤ、ＳＪＮＬＶＯＬ−ＩＤ、ＪＮＬ生成更新番号、ＪＮＬ複製更新番号、及びリストア更新番号をサブデータ要素として含んでいる。
【００９０】
ミラーＩＤは、ミラーペアを識別するための識別子（例えば番号）である。
【００９１】
ＰＪＮＬＶＯＬ−ＩＤは、ＰＪＮＬＶＯＬを特定するための識別子（例えば番号）である。
【００９２】
ＳＪＮＬＶＯＬ−ＩＤは、ＳＪＮＬＶＯＬを特定するための識別子（例えば番号）である。
【００９３】
ＪＮＬ生成更新番号は、対応するミラーペアにおいて何番までのＪＮＬの生成が行われたかを表す（換言すれば、生成されたＪＮＬ中の更新番号のうち最も新しい番号を示す）。例えば、図７Ａでは、ミラーＩＤ「１」に対応したＪＮＬ生成更新番号は「１２」になっているが、これは、ミラーＩＤ「１」に対応したミラーペアにおいて、ＰＪＮＬＶＯＬに、更新番号「１１」までのＪＮＬ３が格納されており、そのため、次回は、更新番号「１２」を含んだＪＮＬ３が生成されてＰＪＮＬＶＯＬに格納されるべきであることを意味する。
【００９４】
ＪＮＬ複製更新番号は、対応するミラーペアにおいて何番までのＪＮＬの複製が行われたかを表す（換言すれば、複製されたＪＮＬ中の更新番号のうち最も新しい番号を示す）。例えば、図７Ａでは、ミラーＩＤ「１」に対応したＪＮＬ複製更新番号は「９」になっているが、これは、ミラーＩＤ「１」に対応したミラーペアにおいて、ＳＪＮＬＶＯＬに、更新番号「８」までのＪＮＬ３が読み出されており、そのため、次回は、更新番号「９」を含んだＪＮＬ３がＰＪＮＬＶＯＬから読み出されるべきであることを意味する。
【００９５】
リストア更新番号は、対応するミラーペアにおいて何番までのＪＮＬに基づくリストアが行われたかを表す（換言すれば、リストアのために読み出されたＪＮＬ中の更新番号のうち最も新しい番号を示す）。例えば、リストア更新番号は「８」となっている場合、これは、更新番号「７」のＪＮＬ３に基づくリストア処理まで済んでおり、そのため、次回は、更新番号「８」を含んだＪＮＬ３がＳＪＮＬＶＯＬから読み出されてリストア処理が行われるべきであることを意味する。なお、図７Ａは、ＳＶＯＬを備えていてない第一記憶サブシステム１００Ａが備えるミラー管理サブデータ５０２Ａの例なので、リストア更新番号の意味は無い。また、図７Ｂでは、ミラーＩＤ「１」については、第一記憶サブシステム１００ＡでＪＮＬが生成されることはないので、ＪＮＬ生成更新番号の意味は無い。
【００９６】
第一記憶サブシステム１００Ａの各ＣＨＡ１１０Ａや各ＤＫＡ１２０Ａは、以上のようなパス管理データ５００Ａを参照することにより、ホスト端末１８０ＡからのライトデータをどのＶＯＬに格納し、どのＶＯＬから更新番号が何番のＪＮＬ３を読み出してどのＶＯＬに格納すれば良いかや、どのＶＯＬから更新番号が何番のＪＮＬ３を読み出してどのＶＯＬにリストア処理を行えば良いか等を特定することができる。例えば、図７Ａのパス管理データ５００Ａでは、ＶＯＬペアＩＤ「１」、「２」、ミラーＩＤ「１」及び「２」に対応付けられた各サブデータ要素を参照することにより、図１Ａに例示したマルチターゲット方式の構成を特定することができる。また、図７Ｂのパス管理データ５００Ａでは、ＶＯＬペアＩＤ「１」、「２」、ミラーＩＤ「１」及び「２」に対応付けられた各サブデータ要素を参照することにより、図１Ｂに例示したマルチホップ方式の構成を特定することができる。
【００９７】
第一記憶サブシステム１００Ａの第一制御装置１０１Ａは、例えば、第一ホスト端末１８０Ａに障害が発生した場合に、パス管理データ５００Ａの内容を、図７Ａに例示した内容から図７Ｂに例示した内容に変えることによって（換言すれば、ＶＯＬＩＤ「１」に対応したＰＶＯＬとＳＶＯＬとを反転し、且つ、ミラーＩＤ「１」に対応したＰＪＮＬＶＯＬとＳＪＮＬＶＯＬとを反転することによって）、図１Ａに例示したマルチターゲット方式を図１Ｂに例示したマルチホップ方式に切り替えることができる。また、例えば、第一制御装置１０１Ａは、第二ホスト端末１８０Ｂに障害が発生した場合に、パス管理データ５００Ａの内容を、図７Ｂに例示した内容から図７Ａに例示した内容に変えることによって（換言すれば、ＶＯＬＩＤ「１」に対応したＰＶＯＬとＳＶＯＬとを反転し、且つ、ミラーＩＤ「１」に対応したＰＪＮＬＶＯＬとＳＪＮＬＶＯＬとを反転することによって）、図１Ｂに例示したマルチホップ方式を図１Ａに例示したマルチターゲット方式に切り替えることができる。
【００９８】
なお、例えば、データ処理システム１に備えられる記憶サブシステム１００の四以上になった場合、パス管理データ５００Ａの内容が第一記憶サブシステム１００Ａに固有の内容であると、第一記憶サブシステム１００Ａは、複製スタートＶＯＬ或いは複製ゴールＶＯＬがどこに存在するかを特定することができず、故に、マルチターゲット方式或いはマルチホップ方式の全ての構成を特定することができないことが有り得る。しかし、他の各記憶サブシステム１００には、その記憶サブシステム１００に固有のパス管理データ５００が備えられ、そのパス管理データ５００には、ＪＮＬの複製元及び複製先のＪＮＬＶＯＬに関する情報（例えば、ＶＯＬＩＤ及び記憶サブシステムＩＤ）が登録されるので、記憶サブシステム１００の数に関わらず、マルチターゲット方式、マルチホップ方式及びそれらの組み合わせのうちの少なくとも一つの方式に従う複製処理の実現が可能である。
【００９９】
図８は、ポインタ管理データ７００の構成例を示す。図９は、図８に例示したポインタ管理データ７００から特定されるＪＮＬＶＯＬ構成を示す。
【０１００】
図８に示すように、ポインタ管理データ７００は、各ＪＮＬＶＯＬ毎に用意されるデータである。ポインタ管理データ７００は、例えば、更新データ領域先頭アドレス、ライトデータ領域先頭アドレス、更新データ最新アドレス、更新データ最古アドレス、ライトデータ最新アドレス、ライトデータ最古アドレス、リード開始アドレス及びリトライ開始アドレスをデータ要素として含む。
【０１０１】
更新データ領域先頭アドレスは、ＪＮＬＶＯＬの更新データ４を格納する記憶領域（更新データ領域）の先頭の論理アドレスである。
【０１０２】
ライトデータ領域先頭アドレスは、ＪＮＬＶＯＬのライトデータ２を格納する記憶領域（ライトデータ領域）の先頭の論理アドレスである。
【０１０３】
更新データ最新アドレスは、次にＪＮＬ３を格納する場合に、そのＪＮＬ３中の更新データ４の保存に使用される先頭の論理アドレス（すなわち、次のＪＮＬ３中の更新データ４をどこから書き始めるかを表す情報）である。
【０１０４】
更新データ最古アドレスは、最古の（更新番号が小さい）ＪＮＬ３の更新データ４を保存する領域における先頭の論理アドレスである。
【０１０５】
ライトデータ最新アドレスは、次にＪＮＬ３を格納する場合に、そのＪＮＬ３中のライトデータ２の保存に使用する先頭の論理アドレス（すなわち、次のＪＮＬ３中のライトデータ２をどこから書き始めるかを表す情報）である。
【０１０６】
ライトデータ最古アドレスは、最古の（更新番号が小さい）ＪＮＬ３中のライトデータ２を保存する領域における先頭の論理アドレスである。
【０１０７】
リード開始アドレスとリトライ開始アドレスは、第一記憶サブシステム１００Ａのみで使用されるデータ要素であって、後述するジャーナルリード受信処理にて使用される。リード開始アドレスとリトライ開始アドレスについての詳細な説明は後述する。
【０１０８】
図８および図９に例示したポインタ管理データ７００によれば、更新データ領域７は、ＪＮＬＶＯＬ−ＩＤ「４」のＶＯＬ６におけるアドレス０（先頭）からアドレス６９９までの範囲であり、ライトデータ領域８は、ＪＮＬＶＯＬ−ＩＤ「４」のＶＯＬ６におけるアドレス７００からアドレス２６９９までの範囲であることがわかる。また、或るＪＮＬ３の更新データ４は、ＪＮＬＶＯＬ−ＩＤ「４」のＶＯＬ６におけるアドレス２００からアドレス４９９の範囲内に保存されており、更新番号が次のＪＮＬ３の更新データ４は、ＪＮＬＶＯＬ−ＩＤ「４」のＶＯＬ６におけるアドレス５００から書き込まれることがわかる。また、上記或るＪＮＬ３のライトデータ２は、ＪＮＬＶＯＬ−ＩＤ「４」のＶＯＬ６におけるアドレス１３００からアドレス２１９９の範囲内に保存されており、その次のＪＮＬ３のライトデータ２は、ＪＮＬＶＯＬ−ＩＤ「４」のＶＯＬ６におけるアドレス２２００から書き込まれることがわかる。
【０１０９】
さて、以下、図１０〜図２０を参照して、第一記憶サブシステム１００Ａを正記憶サブシステム（つまりＰＶＯＬを備える記憶サブシステム）とし、第二記憶サブシステム１００Ｂを副記憶サブシステム（つまりＳＶＯＬを備える記憶サブシステム）とし、第一記憶サブシステム１００Ａから第二記憶サブシステム１００Ｂに対してのデータの複製に関する処理について説明する。なお、以下の説明では、第一記憶サブシステム１００Ａが備えるＰＶＯＬを「ＰＶＯＬ６Ａ１」とし、その第一記憶サブシステム１００Ａが備えるＰＪＮＬＶＯＬを「ＰＪＮＬＶＯＬ６Ａ２」とし、第二記憶サブシステム１００Ｂが備えるＳＪＮＬＶＯＬを「ＳＪＮＬＶＯＬ６Ｂ１」とし、その第二記憶サブシステム１００Ｂが備えるＳＶＯＬを「ＳＶＯＬ６Ｂ２」とする。
【０１１０】
図１０は、初期コピー処理のフローチャートである。
【０１１１】
初期コピー処理とは、複製処理の済んでないＰＶＯＬ６Ａ１についてＪＮＬ３を用意するための処理である。初期コピー処理では、ＰＶＯＬ６Ａ１の全記憶領域について、パス管理データ５００Ａのコピー済みアドレスを用い、記憶領域の先頭から順に、単位サイズ毎にＪＮＬ３が作成される。コピー済みアドレスは、初期値は０であり、ＪＮＬ３の作成毎に、作成されたデータ量が加算される。ＶＯＬ６Ａの記憶領域の先頭から、コピー済みアドレスの一つ前までは、初期コピー処理にてＪＮＬ３は作成済みである。初期コピー処理を行うことにより、ＰＶＯＬ６Ａ１の更新されていないライトデータ２を、そのＰＶＯＬ６Ａ１とＶＯＬペアを構成するＳＶＯＬ６Ｂ２に転送することが可能となる。以下の説明では、第一記憶サブシステム１００Ａ内のホストＣＨＡ１１０ＨＡが処理を行うように記載しているが、代わりに、ＤＫＡ１２０Ａが行ってもよい。
【０１１２】
第一記憶サブシステム１００Ａ内のホストＣＨＡ１１０ＨＡは、第一記憶サブシステム１００Ａ内のパス管理データ５００Ａに基づいて、ＶＯＬペア状態が“コピー未”であるＰＶＯＬ６Ａ１を把握し、把握されたＰＶＯＬ６Ａ１に関するＶＯＬペア状態を“コピー中”に変更し、以下の処理を繰り返す（ステップ１０１０、１０２０）。もし、ＶＯＬペア状態が“コピー未”であるＰＶＯＬ６Ａ１が存在しない場合は、ホストＣＨＡ１１０ＨＡは、処理を終了する（ステップ１０３０）。
【０１１３】
ステップ１０２０にて、ＶＯＬペア状態“コピー未”のＰＶＯＬ６Ａ１が存在した場合、ホストＣＨＡ１１０ＨＡは、単位サイズ（例えば、１ＭＢ）のデータを対象にＪＮＬ３を作成する。ジャーナル作成処理は後述する（ステップ１０４０）。
【０１１４】
ホストＣＨＡ１１０ＨＡは、コピー済みアドレスに作成したＪＮＬ３のデータサイズを加算する（ステップ１０５０）。
【０１１５】
ホストＣＨＡ１１０ＨＡは、コピー済みアドレスがＰＶＯＬ６Ａ１の容量に達するまで、上記処理を繰り返す（ステップ１０６０）。コピー済みアドレスが、ＰＶＯＬ６Ａ１の容量と等しくなった場合、ＰＶＯＬ６Ａ１の全記憶領域に対してＪＮＬ３を作成したため、ＶＯＬペア状態を“正常”に更新し、他のＰＶＯＬの処理を開始する（ステップ１０７０）。
【０１１６】
前記のフローチャートでは、ＰＶＯＬを１つずつ対象とするように説明したが、複数のＰＶＯＬにそれぞれ格納されている複数のデータについて同時にＪＮＬ３が生成されてもよい。
【０１１７】
図１１は、第一の記憶サブシステム１００Ａが行う命令受信処理２１０の流れの概要を示す。図１２は、その命令受信処理２１０のフローチャートを示す。図１３は、第一記憶サブシステム１００Ａが行うＪＮＬ作成処理のフローチャートを示す。以下、これらを用いて、第一記憶サブシステム１００Ａが、ホスト端末１８０ＡからＰＶＯＬ６Ａ１に対するアクセス命令を受信した場合に行う処理について説明する。
【０１１８】
ホストＣＨＡ１１０ＨＡは、ホスト端末１８０Ａからアクセス命令を受信する（ステップ１２００）。アクセス命令は、例えば、命令の種類（例えば、リード、ライト、又は後述するＪＮＬリード）を表す識別子、命令対象（例えば書き込み先又は読み出し元）の論理アドレス、及びデータ量等を含んでいる。以下、ステップ１２００で受信したアクセス命令から特定される論理アドレスを「論理アドレス「Ａ」」とし、そのアクセス命令から特定されるＶＯＬＩＤを「ＶＯＬＩＤ「Ａ」」とし、そのアクセス命令から特定されるＶＯＬ内位置を「ＶＯＬ内位置「Ａ」」とし、そのアクセス命令から特定されるデータ量を「データ量「Ａ」」とする。また、ＶＯＬＩＤ「Ａ」から特定されるＶＯＬが、ＶＯＬ「Ａ」であるとする。
【０１１９】
ホストＣＨＡ１１０ＨＡは、アクセス命令を調べる（ステップ１２１０、１２１５）。ステップ１２１５の調べで、アクセス命令がＪＮＬリード命令の場合は、後述するＪＮＬリード受信処理が行われる（ステップ１２２０）。アクセス命令がＪＮＬリード命令およびライト命令以外、例えば、リード命令の場合は、そのリード命令に応じたリード処理が行われる（ステップ１２３０）。
【０１２０】
ステップ１２１０の調べで、アクセス命令がライト命令の場合は、ホストＣＨＡ１１０ＨＡは、ＶＯＬ管理データ４００Ａを参照し、そのライト命令から特定されるＶＯＬ「Ａ」のＶＯＬ状態を調べる（ステップ１２４０）。ステップ１２４０の調べで、ＶＯＬ「Ａ」のＶＯＬ状態が、“正常”もしくは“正”以外の場合は、そのＶＯＬ「Ａ」へのアクセスは不可能なため、ホストＣＨＡ１１０ＨＡは、ホスト端末１８０に異常終了を報告する（ステップ１２４５）。
【０１２１】
ステップ１２４０の調べで、命令特定ＶＯＬのＶＯＬ状態が、“正常”、“正”のいずれかの場合は、ホストＣＨＡ１１０ＨＡは、キャッシュメモリ１３０上に或るサイズの記憶領域（以下、キャッシュ領域）を確保し、ホスト端末１８０Ａにデータ受信の準備ができたことを通知する。ホスト端末１８０Ａは、その通知を受け、ライトデータ２を第一記憶サブシステム１００Ａに送信する。ホストＣＨＡ１１０ＨＡは、ライトデータ２を受信し、上記確保されたキャッシュ領域にそのライトデータ２を保存する（ステップ１２５０、図１１の１１００）。
【０１２２】
ホストＣＨＡ１１０ＨＡは、ＶＯＬ管理テーブル４００Ａ及びパス管理テーブル５００Ａを参照し、ＶＯＬ「Ａ」がＰＶＯＬ６Ａ１か否かを調べる（ステップ１２６０）。ステップ１２６０の調べで、肯定的な結果が得られた場合は、ホストＣＨＡ１１０ＨＡは、後述するＪＮＬ作成処理を行う（ステップ１２６５）。
【０１２３】
ステップ１２６０の調べで、否定的な結果が得られた場合（又は、ステップ１２６５のＪＮＬ作成処理の終了後）、ホストＣＨＡ１１０ＨＡは、ＶＯＬ「Ａ」にライトデータ２を書き込むことをＤＫＡ１２０Ａに命令し（図１１の１１４０）、ホスト端末１８０Ａに終了報告する（ステップ１２７０、１２８０）。その後、ライトデータ２の書込み命令を受けたＤＫＡ１２０Ａは、リードライト処理２２０を実行することにより、キャッシュ領域上のライトデータ２をＶＯＬ「Ａ」に保存する（図１１の１１１０）。
【０１２４】
次に、図１３を参照してＪＮＬ作成処理について説明する。
【０１２５】
ホストＣＨＡ１１０ＨＡは、ＶＯＬ管理データ４００Ａ及びパス管理データ５００Ａに基づいて、ＰＶＯＬ６Ａ１に対応付けられたＪＮＬＶＯＬ６Ａ２のＶＯＬ状態を調べる（ステップ１３１０）。ステップ１３１０の調べで、ＪＮＬＶＯＬ６Ａ２のＶＯＬ状態が、“異常”の場合は、ＪＮＬＶＯＬ６Ａ２にＪＮＬ３の格納が不可能なため、ホストＣＨＡ１１０ＨＡは、処理を終了する（ステップ１３１５）。この場合、ホストＣＨＡ１１０ＨＡは、ＪＮＬＶＯＬ６Ａ２を正常なＶＯＬに変更する等の処理を行っても良い。
【０１２６】
ステップ１３１０の調べで、ＪＮＬＶＯＬ６Ａ２が正常である場合、ホストＣＨＡ１１０ＨＡは、ＪＮＬ作成処理を継続する。ＪＮＬ作成処理の内容は、初期コピー処理内の処理であるか、命令受信処理２１０内での処理であるかによって異なる（ステップ１３２０）。ＪＮＬ作成処理が命令受信処理２１０内の処理の場合は、ホストＣＨＡ１１０ＨＡは、ステップ１３３０からの処理を行う。ＪＮＬ作成処理が初期コピー処理内の場合は、ホストＣＨＡ１１０ＨＡは、ステップ１３７０からの処理を行う。
【０１２７】
ＪＮＬ作成処理が命令受信処理２１０内の処理の場合、ホストＣＨＡ１１０ＨＡは、ライト対象の論理アドレス「Ａ」が、初期コピー処理の処理対象となったかを調べる（ステップ１３３０）。ＶＯＬ「Ａ」のＶＯＬペア状態が“コピー未”の場合は、後に初期コピー処理にてＪＮＬ作成処理が行われるため、ホストＣＨＡ１１０ＨＡは、ＪＮＬ３を作成せずに処理を終了する（ステップ１３３５）。ＶＯＬ「Ａ」のＶＯＬペア状態が“コピー中”の場合は、コピー済みアドレスが論理アドレス内位置「Ａ」と等しい（又はそれよりも小さい）場合は、後に初期コピー処理にてＪＮＬ作成処理が行われるため、ホストＣＨＡ１１０ＨＡは、ＪＮＬ３を作成せずに処理を終了する（ステップ１３３５）。上記以外、つまり、ＶＯＬ「Ａ」のＶＯＬペア状態が“コピー中”かつコピー済みアドレスが論理アドレス内位置「Ａ」以上の場合（又は、ＶＯＬ「Ａ」のＶＯＬペア状態が“正常”の場合）、既に初期コピー処理が完了しているため、ホストＣＨＡ１１０ＨＡは、ＪＮＬ作成処理を継続する。
【０１２８】
次に、ホストＣＨＡ１１０ＨＡは、ＪＮＬ３をＪＮＬＶＯＬ６Ａ２に格納可能であるかどうかを調べる。具体的には、ホストＣＨＡ１１０ＨＡは、ポインタ管理データ７００を参照して、更新データ領域の未使用領域の有無を調べる（ステップ１３４０）。ポインタ管理データ７００の更新データ最新アドレスと更新データ最古アドレスが等しい場合は、更新データ領域に未使用領域が存在しないため、ホストＣＨＡ１１０ＨＡは、ＪＮＬ作成失敗として処理を終了する（ステップ１３９０）。
【０１２９】
ステップ１３４０の調べで、更新データ領域に未使用領域が存在する場合は、ホストＣＨＡ１１０ＨＡは、ポインタ管理データ７００を用いて、ライトデータ領域にライトデータが格納できるかどうかを調べる（ステップ１３４５）。ホストＣＨＡ１１０ＨＡは、ライトデータ最新アドレスとデータ量「Ａ」の和が、ライトデータ最古アドレスと等しい（又はそれよりも大きい）場合は、ライトデータ領域に格納できないため、ＪＮＬ作成失敗として処理を終了する（ステップ１３９０）。
【０１３０】
ＪＮＬ３が格納可能である場合、ホストＣＨＡ１１０ＨＡは、最新の更新番号（具体的には、ＪＮＬＶＯＬ６Ａ２に格納済みの一以上の更新番号のうちの最新の更新番号）と、更新データ４の格納先とする論理アドレスと、ライトデータ２の格納先とする論理アドレスとを取得し、更新データ４をキャッシュ領域に作成する。また、ホストＣＨＡ１１０ＨＡは、取得された更新番号に１を足した数値を、新たな更新番号としてペア管理テーブル５００Ａに設定する。更新データ４の格納先となる論理アドレスは、ポインタ管理データ７００の更新データ最新アドレスであり、ホストＣＨＡ１１０ＨＡは、更新データ４のサイズを足した数値を新たな更新データ最新アドレスとしてポインタ管理データ７００Ａに設定する。ライトデータ２の格納先となる論理アドレスは、ポインタ管理データ７００Ａのライトデータ最新アドレスであり、ホストＣＨＡ１１０ＨＡは、ライトデータ最新アドレスにデータ量「Ａ」を足した数値を新たなライトデータ最新アドレスとしてポインタ管理データ７００Ａに設定する。
【０１３１】
ホストＣＨＡ１１０ＨＡは、上記取得した数値、ライト命令を受信した時刻、ライト命令内の論理アドレスＡ、データ量「Ａ」を更新データ４に設定する（ステップ１３５０、図１１の１１２０）。
【０１３２】
ホストＣＨＡ１１０ＨＡは、ＤＫＡ１２０Ａに、ＪＮＬ３の更新データ４とライトデータ２をＪＮＬＶＯＬ６Ａ２に書き込むことを命令し、正常終了する（ステップ１３６０、図１１の１１３０、１１４０、１１５０）。
【０１３３】
ＪＮＬ作成処理が、初期コピー処理内の処理の場合は、ステップ１３７０からの処理を行う。ホストＣＨＡ１１０ＨＡは、ＪＮＬ３が作成可能であるかどうかを調べる。具体的には、ホストＣＨＡ１１０ＨＡは、ポインタ管理データ７００を用いて、更新データ領域の未使用領域の有無を調べる（ステップ１３７０）。ポインタ管理データ７００の更新データ最新アドレスと更新データ最古アドレスが等しい場合は、更新データ領域に未使用領域が存在しないため、ホストＣＨＡ１１０ＨＡは、ＪＮＬ作成失敗として処理を終了する（ステップ１３９０）。本実施形態で示した初期コピー処理の場合、ＪＮＬのライトデータは、正ＶＯＬからリードし、ライトデータ領域は使用しないため、ライトデータ領域の未使用領域の確認は不要である。
【０１３４】
ステップ１３７０の調べで、ＪＮＬ３が作成可能である場合、ホストＣＨＡ１１０ＨＡは、更新データ４に設定する更新番号（例えば、ペア管理テーブル５００Ａに書かれている更新番号）を取得し、更新データ４をキャッシュ領域に作成する。ホストＣＨＡ１１０ＨＡは、その最新の更新番号に１を足した数値を新たな更新番号としてペア管理テーブル５００Ａに設定する。更新データ４を格納する論理アドレスは、ポインタ管理データ７００の更新データ最新アドレスの位置であり、ホストＣＨＡ１１０ＨＡは、更新データ４のサイズを足した数値をポインタ管理データ７００に新たな更新データ最新アドレスとして設定する。
【０１３５】
ホストＣＨＡ１１０ＨＡは、上記取得した更新番号、本処理の開始時刻、初期コピー処理対象の論理アドレス等を、キャッシュ領域に作成した更新データ４に設定する（ステップ１３８０、図１１の１１２０）。
【０１３６】
ホストＣＨＡ１１０ＨＡは、ＤＫＡ１２０Ａに、更新データ４をＪＮＬＶＯＬ６Ａ２に書き込むことを命令し（換言すれば、ＪＮＬＶＯＬ６Ａ２における上記新たな更新データ最新アドレスから書き込むことを命令し）、正常終了する（ステップ１３８５、図１１の１１４０、１１６０）。
【０１３７】
以上が、図１１〜図１３についての説明である。
【０１３８】
図１４は、ＪＮＬリード命令を受信した第一記憶サブシステム１００ＡのホストＣＨＡ１１０ＨＡの動作（ＪＮＬリード受信処理）を説明する図であり、図１５は、ＪＮＬリード受信処理のフローチャートである。以下、これらを用いて、第一記憶サブシステム１００Ａが、第二記憶サブシステム１００ＢからＪＮＬリード命令を受信した場合の動作について説明する。
【０１３９】
システムＣＨＡ１１０ＳＡ１は、システムＣＨＡ１１０ＳＢ２からアクセス命令を受信する。アクセス命令は、ＪＮＬリード命令であることを示す識別子、読み出し元（例えば、ＰＰＪＮＬＶＯＬ６Ａ２のＶＯＬＩＤ）、リトライ指示の有無を含んでいる（ステップ１２２０、図１４の１４１０）。
【０１４０】
システムＣＨＡ１１０ＳＡ１は、ＰＪＮＬＶＯＬ６Ａ２の状態を調べる（ステップ１５２０）。ステップ１５２０の調べで、ＰＪＮＬＶＯＬ６Ａ２のＶＯＬ状態が“正常”でない場合、例えば、“障害”の場合は、システムＣＨＡ１１０ＳＡ１は、処理を終了する（ステップ１５２５）。システムＣＨＡ１１０ＳＢ２は、ＪＮＬリード処理を終了する。
【０１４１】
ステップ１５２０の調べで、ＰＪＮＬＶＯＬ６Ａ２のＶＯＬ状態が“正常”の場合は、システムＣＨＡ１１０ＳＡ１は、ＪＮＬリード命令がリトライ指示かを調べる（ステップ１５３０）。
【０１４２】
ステップ１５３０の調べで、ＪＮＬリード命令がリトライ指示の場合、システムＣＨＡ１１０ＳＡ１は、前回送信したＪＮＬ３を再度、第二記憶サブシステム１００Ｂに送信する。システムＣＨＡ１１０ＳＡ１は、キャッシュ領域を確保し、ＤＫＡ１２０に、ポインタ管理データ７００のリトライ開始アドレスから、更新データ４のサイズの情報をキャッシュ領域に読み込むことを命令する（図１４の１４２０）。
【０１４３】
ＤＫＡ１２０は、システムＣＨＡ１１０ＳＡ１からの命令に応答して、リードライト処理２２０を実行することにより、ＰＪＮＬＶＯＬ６Ａ２から更新データ４を読み込み、キャッシュ領域に保存し、命令元であるシステムＣＨＡ１１０ＳＡ１にリード終了を通知する（図１４の１４３０）。
【０１４４】
システムＣＨＡ１１０ＳＡ１は、更新データ４のリード終了の通知を受け、キャッシュ領域に保存されている更新データ４から、ライトデータ２の論理アドレスおよびライトデータのデータサイズを取得し、その後、キャッシュ領域を確保し、確保されたキャッシュ領域に上記取得された論理アドレスからライトデータを読み込むことをＤＫＡ１２０に命令する（ステップ１５４０、図１４の１４４０）。
【０１４５】
ＤＫＡ１２０は、リードライト処理２２０により、ＰＪＮＬＶＯＬ６Ａ２（具体的には、上記命令された論理アドレス）からライトデータ２を読み込み、確保されたキャッシュ領域にそのライトデータ２を保存し、命令元であるシステムＣＨＡ１１０ＳＡ１にリード終了を通知する（図１４の１４５０）。
【０１４６】
システムＣＨＡ１１０ＳＡ１は、ライトデータのリード終了の通知を受け、更新データ４とライトデータ２とを第二記憶サブシステム１００Ｂに送信し（つまりＪＮＬ３を送信し）、ＪＮＬ３を保持しているキャッシュ領域を開放し、処理を終了する（ステップ１５４５、図１４の１４６０）。
【０１４７】
ステップ１５３０の調べで、リトライ指示でない場合、システムＣＨＡ１１０ＳＡ１は、送信していないＪＮＬ３が存在するかを調べ、存在すれば、ＪＮＬ３を第二記憶サブシステム１００Ｂに送信する。システムＣＨＡ１１０ＳＡ１は、ポインタ管理データ７００のリード開始アドレスと更新データ最新アドレスを比較する（ステップ１５５０）。
【０１４８】
リード開始アドレスが更新データ最新アドレスと等しい場合は、全てのＪＮＬ３を第二記憶サブシステム１００Ｂに送信済みであるため、システムＣＨＡ１１０ＳＡ１は、第二記憶サブシステム１００Ｂに“ＪＮＬ無“を送信し（ステップ１５６０）、前回のＪＮＬリード命令の時に、第二記憶サブシステム１００Ｂに送信したＪＮＬ３の記憶領域を開放する（ステップ１５９０）。
【０１４９】
ＪＮＬの記憶領域の開放処理では、システムＣＨＡ１１０ＳＡ１は、ポインタ管理データ７００の更新データ最古アドレスに、リトライ開始アドレスを設定する。更新データ最古アドレスがライトデータ領域先頭アドレスとなった場合は、システムＣＨＡ１１０ＳＡ１は、更新データ最古アドレスを０とする。システムＣＨＡ１１０ＳＡ１は、ポインタ管理データ７００のライトデータ最古アドレスを、前回のリードＪＮＬ命令に応じて送信したライトデータのサイズを足した数値に変更する。ライトデータ最古アドレスが、ＪＮＬＶＯＬの容量以上の論理アドレスとなった場合は、システムＣＨＡ１１０ＳＡ１は、ライトデータ領域先頭アドレスを減じ、補正する。
【０１５０】
ステップ１５５０の調べで、未送信のＪＮＬが存在する場合、システムＣＨＡ１１０ＳＡ１は、キャッシュ領域を確保し、ポインタ管理データ７００のリード開始アドレスから更新データを上記確保されたキャッシュ領域に読み込むこと（換言すれば、リード開始アドレスから所定サイズ分の情報を読み出すこと）を、ＤＫＡ１２０に命令する（図１４の１４２０）。
【０１５１】
ＤＫＡ１２０は、その命令に応答してリードライト処理２２０を実行することにより、ＰＪＮＬＶＯＬ６Ａ２から更新データを読み込み、キャッシュメモリ１３０に保存し、命令元であるシステムＣＨＡ１１０ＳＡ１にリード終了を通知する（図１４の１４３０）。
【０１５２】
システムＣＨＡ１１０ＳＡ１は、更新データのリード終了の通知を受け、読み出された更新データから、ライトデータの論理アドレスおよびライトデータのサイズを取得し、キャッシュ領域を確保し、取得された論理アドレスから取得されたサイズ分のライトデータを上記確保されたキャッシュ領域に読み込むことをＤＫＡ１２０に命令する（ステップ１５７０、図１４の１４４０）。
【０１５３】
ＤＫＡ１２０は、リードライト処理２２０を行うことにより、その命令に従って、ＰＪＮＬＶＯＬ６Ａ２（換言すれば、ＪＮＬＶＯＬ６Ａ２の上記命令された論理アドレス）からライトデータを読み込み、上記確保されたキャッシュ領域にそのライトデータを保存し、リード終了をシステムＣＨＡ１１０ＳＡ１に通知する（図１４の１４５０）。
【０１５４】
システムＣＨＡ１１０ＳＡ１は、ライトデータのリード終了の通知を受け、更新データとライトデータを第二記憶サブシステム１００Ｂに送信（ステップ１５８０）し、ＪＮＬを保持しているキャッシュ領域を開放する（図１４の１４６０）。そして、システムＣＨＡ１１０ＳＡ１は、ポインタ管理データ７００のリトライ開始アドレスにリード開始アドレスを設定し、且つ、そのリード開始アドレスに上記送信したＪＮＬの更新データサイズを足した数値をポインタ管理データ７００に新たなリード開始アドレスとして設定する。
【０１５５】
システムＣＨＡ１１０ＳＡ１は、前回のＪＮＬリード命令の処理時に、第二記憶サブシステム１００Ｂに送信したＪＮＬの記憶領域を開放する（ステップ１５９０）。
【０１５６】
以上が、図１４〜図１５についての説明である。なお、前述したＪＮＬリード受信処理では、第一記憶サブシステム１００Ａは、ＪＮＬを一つずつ第二記憶サブシステム１００Ｂに送信していたが、複数のＪＮＬを同時に第二記憶サブシステム１００Ｂに送信してもよい。１つのＪＮＬリード命令で、送信するＪＮＬ数は、第二記憶サブシステム１００ＢがＪＮＬリード命令内に指定してもよいし、ユーザが第一記憶サブシステム１００Ａ又は第二記憶サブシステム１００Ｂに指定してもよい。さらに、第一記憶サブシステム１００Ａと副記憶サブシステム１００Ｂの接続パス２００Ａの転送能力又は負荷等により、１つのＪＮＬリード命令で送信するＪＮＬ数を、第一記憶サブシステム１００Ａ又は第二記憶サブシステム１００Ｂが動的に変更してもよい。また、ＪＮＬ数でなく、ＪＮＬのライトデータのサイズを考慮し、ＪＮＬの転送量を指定してもよい。その転送量も、動的に変更されても良い。
【０１５７】
また、前述したＪＮＬリード受信処理では、ＪＮＬを記憶装置１５０からキャッシュメモリ１３０に読み込んでいたが、キャッシュメモリ１３０にそのＪＮＬが存在する場合は、当該処理は行わなくても良い。
【０１５８】
また、前述したＪＮＬリード受信処理内のＪＮＬの記憶領域の開放処理は、次のＪＮＬリード命令の処理時としたが、第二記憶サブシステム１００ＢにＪＮＬを送信した直後に行われても良い。また、第二記憶サブシステム１００Ｂが、ＪＮＬリード命令内に開放してよい更新番号を設定し、第一記憶サブシステム１００Ａは、その指示に従って、ＪＮＬの記憶領域を開放してもよい。
【０１５９】
図１６は、ＪＮＬリード命令処理２４０の概要を説明する図であり、図１７は、ＪＮＬリード命令処理２４０のフローチャートであり、図１８は、ＪＮＬ格納処理のフローチャートである。以下、これらを用いて、第二記憶サブシステム１００ＢのシステムＣＨＡ１１０ＳＢ２が、第一記憶サブシステム１００ＡのＰＪＮＬＶＯＬ６Ａ２からＪＮＬを読み出し、そのＪＮＬに基づいて、第二記憶サブシステム１００Ｂ内のＳＪＮＬＶＯＬ６Ｂ１にＪＮＬを格納する動作について説明する。
【０１６０】
システムＣＨＡ１１０ＳＢ２は、ＪＮＬを格納するキャッシュ領域を確保し、ＪＮＬリード命令のためのアクセス命令（例えば、ＪＮＬリード命令であることを示す識別子と、ＰＪＮＬＶＯＬ６Ａ２のＶＯＬＩＤと、リトライ指示の有無とを含む命令）を生成し、そのアクセス命令を第一記憶サブシステム１００Ａに送信する（ステップ１７００、図１６の１６１０）。
【０１６１】
システムＣＨＡ１１０ＳＢ２は、第一記憶サブシステム１００Ａの応答およびＪＮＬを受信する（図１６の１６２０）。システムＣＨＡ１１０ＳＢ２は、受信した応答を調べ、その応答が、“ＪＮＬ無”の場合は、第一記憶サブシステム１００Ａには、ＰＪＮＬＶＯＬ６Ａ２にＪＮＬ３が存在しないため、一定時間後、第一記憶サブシステム１００ＡにリードＪＮＬ命令を送信する（ステップ１７２０、１７２５）。
【０１６２】
第一記憶サブシステム１００Ａの応答が、例えば正常終了の場合は、システムＣＨＡ１１０ＳＢ２は、ＶＯＬ管理データ４００Ｂを参照し、複製先となるＳＪＮＬＶＯＬ６Ｂ１のＶＯＬ状態を調べる（ステップ１７４０）。ＳＪＮＬＶＯＬ６Ｂ２のＶＯＬ状態が“異常”の場合は、ＳＪＮＬＶＯＬ６Ｂ２にＪＮＬの格納が不可能なため、システムＣＨＡ１１０ＳＢ２は、処理を終了する（ステップ１７４５）。
【０１６３】
ステップ１７４０の調べで、ＳＪＮＬＶＯＬ６Ｂ１のＶＯＬ状態が“正常”の場合は、システムＣＨＡ１１０ＳＢ２は、後述するＪＮＬ格納処理１８００を行う。ＪＮＬ格納処理１８００が正常に終了した場合は、システムＣＨＡ１１０ＳＢ２は、次のＪＮＬリード命令を送信する（ステップ１７６０）。それに代えて、システムＣＨＡ１１０ＳＢ２は、ＪＮＬ格納処理１８００が正常に終了してから一定時間経過後に、次のＪＮＬリード命令を生成して送信してもよい。なお、システムＣＨＡ１１０ＳＢ２は、次のＪＮＬ命令を送信するタイミングを、一定の時間間隔で定期的に送信するものでも良いし、受信したＪＮＬの個数、接続パス２００の通信量、第二記憶サブシステム１００Ｂが保持しているＪＮＬＶＯＬの記憶容量、又は第二記憶サブシステム１００Ｂの負荷等によって決めてもよいし、第一記憶サブシステム１００Ａが保持しているＪＮＬの記憶容量（もしくは、第一記憶サブシステム１００Ａのポインタ管理データ７００）を取得し、取得された記憶容量に基づいて決めてもよい。上記情報の転送は、専用のコマンドで行ってもよいし、ＪＮＬリード命令の応答に含んでもよい。その後の処理は、ステップ１７１０以降と同じである。
【０１６４】
ステップ１８００のＪＮＬ格納処理が正常に終了しない場合は、ＳＪＮＬＶＯＬ６Ｂ１の未使用領域が足りないため、システムＣＨＡ１１０ＳＢ２は、受信したＪＮＬを破棄し、一定時間後にリトライ指示のＪＮＬリード命令を送信する（ステップ１７５５）。もしくは、システムＣＨＡ１１０ＳＢ２は、ＪＮＬをキャッシュ領域に保持しておき、一定時間後に、再度ＪＮＬ格納処理を行っても良い。これは、後述するリストア処理２５０が行われることにより、一定時間後には、ＳＪＮＬＶＯＬ６Ｂ１に未使用領域が増える可能性があるためである。この方式の場合は、ＪＮＬリード命令にリトライ指示の有無は含めなくてもよい。
【０１６５】
次に、図１８に示すＪＮＬ格納処理１８００について説明する。
【０１６６】
システムＣＨＡ１１０ＳＢ２は、ＪＮＬがＳＪＮＬＶＯＬ６Ｂ１に格納可能であるか否かを調べる。具体的には、システムＣＨＡ１１０ＳＢ２は、第二記憶サブシステム１００Ｂに備えられるポインタ管理データ７００Ｂ（図５参照）を用いて、ＳＪＮＬＶＯＬ６Ｂ１の更新データ領域に未使用領域が有るか無いかを調べる（ステップ１８１０）。ポインタ管理データ７００の更新データ最新アドレスと更新データ最古アドレスが等しい場合は、更新データ領域に未使用領域が存在しないため、システムＣＨＡ１１０ＳＢ２は、ＪＮＬ作成失敗として処理を終了する（ステップ１８２０）。
【０１６７】
ステップ１８１０の調べで、ＳＪＮＬＶＯＬ６Ｂ１の更新データ領域に未使用領域が存在する場合は、システムＣＨＡ１１０ＳＢ２は、ポインタ管理データ７００を用い、ライトデータ領域にライトデータが格納できるか否かを調べる（ステップ１８３０）。ライトデータ最新アドレスと受信したＪＮＬのライトデータのデータ量の和が、ライトデータ最古アドレスと等しいもしくは大きい場合は、ライトデータ領域にライトデータを格納できないため、システムＣＨＡ１１０ＳＢ２は、ＪＮＬ作成失敗として処理を終了する（ステップ１８２０）。
【０１６８】
ＪＮＬが格納可能である場合、システムＣＨＡ１１０ＳＢ２は、上記ＪＮＬリード処理２４０により受信したＪＮＬの更新データに含まれているライトデータ論理アドレスを変更する。具体的には、システムＣＨＡ１１０ＳＢ２は、更新データ４中のライトデータ論理アドレスを、第二記憶サブシステム１００Ｂが備えるポインタ管理データ７００Ｂのライトデータ最新アドレスに変更する。システムＣＨＡ１１０ＳＢ２は、そのポインタ管理データ７００Ｂの更新データ最新アドレスを、現在の更新データ最新アドレスに更新データのサイズを足した数値に変更する（ステップ１８４０）。
【０１６９】
システムＣＨＡ１１０ＳＢ２は、キャッシュ領域を確保し、確保されたキャッシュ領域に、更新後の更新データと、上記受信したＪＮＬ中のライトデータとを格納し、且つ、それら更新データとライトデータとをＳＪＮＬＶＯＬ６Ｂ１に書き込むことをＤＫＡ１２０に命令し、ＪＮＬ作成成功として処理を終了する（ステップ１８５０、図１６の１６３０）。その後、ＤＫＡ１２０は、リードライト処理２２０により、キャッシュ領域に格納されている更新データとライトデータとをＳＪＮＬＶＯＬ６Ｂ１に書き込み、その後、上記確保されたキャッシュ領域を開放する（図１６の１６４０）。
【０１７０】
前述したＪＮＬ格納処理では、ＪＮＬをＳＪＮＬＶＯＬ６Ｂ１（換言すれば、それを有する記憶装置１５０）に保存するとしていたが、ＪＮＬ用に予め一定量のキャッシュ領域を用意しておき、当該キャッシュ領域を全て使用してから、その全てのキャッシュ領域からＳＪＮＬＶＯＬ６Ｂ１にＪＮＬが保存されてもよい。ＪＮＬ用のキャッシュ領域サイズは、例えば、ＳＶＰ２８１Ｂから指定されてもよい。
【０１７１】
図１９は、リストア処理２５０を説明する図であり、図２０は、リストア処理２５０のフローチャートである。以下、これらを用いて、第二記憶サブシステム１００ＢのホストＣＨＡ１１０ＨＢが、ＪＮＬを利用し、データの更新を行う動作について説明する。なお、リストア処理２５０は、別のＣＨＡ１１０Ｂ（例えばシステムＣＨＡ１１０ＳＢ２）が行っても良いし、第二記憶サブシステム１００ＢのＤＫＡ１２０が行ってもよい。
【０１７２】
ホストＣＨＡ１１０ＨＢは、ＶＯＬ管理データ４００Ｂやパス管理データ５００Ｂなどを参照し、ＳＪＮＬＶＯＬ６Ｂ１に対応したＶＯＬ状態を調べる（ステップ２０２０）。ステップ２０２０の調べで、ＪＮＬＶＯＬ６Ｂ１のＶＯＬ状態が、“異常”の場合は、アクセス不可能なため、ホストＣＨＡ１１０ＨＢは、処理を終了する（ステップ２０２５）。
【０１７３】
ステップ２０２０の調べで、ＳＪＮＬＶＯＬ６Ｂ１のＶＯＬ状態が、“正常”の場合は、ホストＣＨＡ１１０ＨＢは、リストア対象のＪＮＬがＳＪＮＬＶＯＬ６Ｂ１に存在するかを調べる。具体的には、ホストＣＨＡ１１０ＨＢは、ポインタ管理データ７００Ｂの更新データ最古アドレスと更新データ最新アドレスを取得し、それらを比較する。ホストＣＨＡ１１０ＨＢは、更新データ最古アドレスと更新データ最新アドレスが等しい場合、ＪＮＬは存在しないため、リストア処理は一旦終了し、一定時間後、リストア処理を再開する（ステップ２０３０）。
【０１７４】
ステップ２０３０の調べで、リストア対象のＪＮＬが存在する場合、ホストＣＨＡ１１０ＨＢは、最古（最小）の更新番号を持つＪＮＬに対して次の処理を行う。最古（最小）の更新番号を持つＪＮＬの更新データは、ポインタ管理データ７００Ｂの更新データ最古アドレスから保存されている。ホストＣＨＡ１１０ＨＢは、キャッシュ領域を確保し、更新データ最古アドレスから更新データサイズ分の情報（つまり更新データそれ自体）をＳＪＮＬＶＯＬ６Ｂ１から読み出すことをＤＫＡ１２０Ｂに命令する（図１９の１９１０）。
【０１７５】
ＤＫＡ１２０Ｂは、その命令に応答して、リードライト処理２２０により、ＳＪＮＬＶＯＬ６Ｂ１から更新データを読み込み、その更新データを、上記確保されたキャッシュ領域に保存し、ホストＣＨＡ１１０ＨＢにリード終了を通知する（図１９の１９２０）。
【０１７６】
ホストＣＨＡ１１０ＨＢは、更新データのリード終了の通知を受け、キャッシュ領域内の更新データから、ライトデータの論理アドレスおよびライトデータのサイズを取得し、キャッシュ領域を確保し、その論理アドレスからそのサイズ分のデータ（つまり一つのライトデータ）をＳＪＮＬＶＯＬ６Ｂ１から読出すことをＤＫＡ１２０Ｂに命令する（図１９の１９３０）。
【０１７７】
ＤＫＡ１２０Ｂは、その命令に応答して、リードライト処理２２０により、ＳＪＮＬＶＯＬ６Ｂ２（換言すれば指定された論理アドレス）からライトデータを読み込み、そのライトデータをキャッシュ領域に保存し、リード終了をホストＣＨＡ１１０ＨＢに通知する（ステップ２０４０、図１９の１９４０）。
【０１７８】
ホストＣＨＡ１１０ＨＢは、更新するＳＶＯＬ６Ｂ２の論理アドレス（換言すれば、ライト命令の論理アドレス（図２参照））を更新データから求め、その論理アドレスから特定されるＳＶＯＬ６Ｂ２のアドレスにライトデータを書き込むことをＤＫＡ１２０Ｂに命令する（ステップ２０５０、図１９の１９５０）。ＤＫＡ１２０は、その命令に応答して、リードライト処理２２０により、ＳＶＯＬ６Ｂ２の論理アドレス（ライト命令の論理アドレス）に対応する記憶装置１５０の記憶領域に、キャッシュ領域に保存されたライトデータを書き込み、キャッシュ領域を開放し、ライト処理終了をホストＣＨＡ１１０ＨＢに通知する（図１９の１９６０）。
【０１７９】
ホストＣＨＡ１１０ＨＢは、ＤＫＡ１２０Ｂからライト処理完了の通知を受け、ＪＮＬの記憶領域を開放する。ＪＮＬの記憶領域の開放処理では、ホストＣＨＡ１１０ＨＢは、第二記憶サブシステム１００Ｂに備えられるポインタ管理データ７００Ｂの更新データ最古アドレスを、現在の更新データ最古アドレスに更新データのサイズを足した数値に変更する。ホストＣＨＡ１１０ＨＢは、更新データ最古アドレスが、ライトデータ領域先頭アドレスとなった場合は、ライトデータ領域先頭アドレスは０とする。ホストＣＨＡ１１０ＨＢは、そのポインタ管理データ７００Ｂのライトデータ最古アドレスを、現在のライトデータ最古アドレスに上記書き込んだライトデータのサイズを足した数値に変更する。ライトデータ最古アドレスが、ＳＪＮＬＶＯＬ６Ｂ１の容量以上の論理アドレスとなった場合は、ホストＣＨＡ１１０ＨＢは、ライトデータ領域先頭アドレスを減じ、補正する。その後、ホストＣＨＡ１１０ＨＢは、次のリストア処理を開始する（ステップ２０６０）。
【０１８０】
以上が、図１９〜図２０についての説明である。なお、前述したリストア処理２５０では、ＳＪＮＬＶＯＬ６Ｂ１からキャッシュメモリ１３０にＪＮＬを読み込んでいたが、キャッシュメモリ１３０に存在する場合は、当該処理は行わなくても良い。
【０１８１】
また、前述したＪＮＬリード受信処理とＪＮＬリード命令処理２４０では、第二記憶サブシステム１００Ｂが、受信するＪＮＬを決めてもよい。例えば、システムＣＨＡ１１０ＳＢ２が、ＪＮＬリード命令に更新番号を追加する。この場合、そのＪＮＬリード命令を受信するシステムＣＨＡ１１０ＳＡ１が、ＪＮＬリード受信処理にて、第二記憶サブシステム１００Ｂが指定した更新番号を含んだ更新データの論理アドレスを求めるために、第一記憶サブシステム１００Ａの共有メモリ１４０内に、更新データを格納した論理アドレスを更新番号から求めるテーブルもしくは検索方法を設けてもよい。
【０１８２】
また、前述したＪＮＬリード受信処理とＪＮＬリード命令処理２４０では、ＪＮＬリード命令を用いていたが、通常のリード命令を用いてもよい。例えば、第一記憶サブシステム１００Ａのポインタ管理データ７００Ａを予め第二記憶サブシステム１００Ｂに転送しておき、第二記憶サブシステム１００Ｂは、第一記憶サブシステム１００ＡのＰＪＮＬＶＯＬ６Ａ２のＪＮＬをリードしてもよい。
【０１８３】
また、前述したＪＮＬリード受信処理では、更新番号の順に、第一記憶サブシステム１００Ａから第二記憶サブシステム１００ＢにＪＮＬを送信すると説明したが、更新番号の順に送信せずともよい。また、第一記憶サブシステム１００Ａから第二記憶サブシステム１００Ｂに複数のＪＮＬリード命令を送信してもよい。この場合、リストア処理にて更新番号順にＪＮＬを処理するために、第二記憶サブシステム１００Ｂに、更新番号から更新データを格納した論理アドレスを求めるテーブルもしくは検索方法を設けることができる。
【０１８４】
以上が、ＪＮＬを利用したデータ処理の基本に関する実施形態の説明である。これまでに説明した方法で、ＰＶＯＬに格納されるオリジナルライトデータ２に基づくＪＮＬの生成や、生成されたＪＮＬのＰＪＮＬＶＯＬへの格納や、ＰＪＮＬＶＯＬからＳＪＮＬＶＯＬへのＪＮＬの複製や、ＳＪＮＬＶＯＬに格納されたＪＮＬに基づくＳＶＯＬへのライトデータのリストアが行われる。このような仕組みを応用することで、マルチターゲット方式に従う複製処理や、マルチホップ方式に従う複製処理や、マルチターゲット方式とマルチホップ方式との動的な切り替え等を実現することができる。以下、上述した実施形態の第一実施例として、マルチターゲット方式について詳細に説明し、その後、その実施形態の第二実施例として、マルチホップ方式について詳細に説明する。
【実施例１】
【０１８５】
図２１Ａは、本発明の一実施形態の第一実施例に係るデータ処理システムで通常時に行われる複製処理の概要を示し、図２１Ｂは、そのデータ処理システムにおいて第一ホスト端末で障害が発生した後の複製処理の概要を示し、図２２は、第一ホスト端末で障害が発生した場合に行われる、マルチターゲット方式からマルチホップ方式への切り替え処理の流れを示す。以下、上述した実施形態との相違点を主に説明し、共通点については説明を省略或いは簡略する。
【０１８６】
図２１Ａに示すように、第一実施例に係るデータ処理システム１では、第一ホスト端末１８０Ａとそれに接続された第一記憶サブシステム１００Ａは、第一サイト８４０Ａに存在し、第二ホスト端末１８０Ｂとそれに接続された第二記憶サブシステム１００Ｂは、第二サイト８４０Ｂに存在し、第三ホスト端末１８０Ｃとそれに接続された第三記憶サブシステム１００Ｃは、第三サイト８４０Ｃに存在する。
【０１８７】
通常時は（例えば、データ処理システム１において何の障害も発生していない場合は）、図２１Ａに示すように、第一記憶サブシステム１００ＡのＰＶＯＬ６Ａ１に書かれたオリジナルデータ２は、そのＰＶＯＬ６Ａ１を複製スタートＶＯＬとして、二つの複製経路及び複製方向に沿って、それら二つの複製経路及び複製方向のそれぞれの複製ゴールＶＯＬである第一ＳＶＯＬ６Ｂ２と第二ＳＶＯＬ６Ｃ２に複製される。すなわち、通常時は、第一記憶サブシステム１００ＡのＶＯＬ６Ａ１を複製スタートＶＯＬとし、第二記憶サブシステム１００ＢのＶＯＬ６Ｂ２と、第三記憶サブシステム１００ＣのＶＯＬ６Ｃ２とを複製ゴールＶＯＬとして、マルチターゲット方式に従う複製処理が行われる。
【０１８８】
この場合において、複製スタートＶＯＬを備える第一記憶サブシステム１００Ａに接続された第一ホスト端末１８０Ａで障害が発生した場合、マルチターゲット方式に従う複製処理からマルチホップ方式に従う複製処理に切り替えられる。以下、図２１Ｂ及び図２２を参照して、マルチターゲット方式に従う複製処理からマルチホップ方式に従う複製処理に切り替えられる場合に行われる処理流れを説明する。
【０１８９】
第一ホスト端末１８０Ａで障害が発生した場合（ステップＳ１００）、データ処理システム１においてそれが検出される。具体的には、例えば、第一記憶サブシステム１００Ａが、定期的に所定の信号を第一ホスト端末１８０Ａに送信しても何の応答も得られなかった場合に、第一ホスト端末１８０Ａに障害が発生したと判断しても良いし、第二ホスト端末１８０Ｂ（又は別の装置）が、ハートビート通信等の方法により、第一ホスト端末１８０Ａで障害が発生したことを検出しても良い。
【０１９０】
第一ホスト端末１８０Ａで障害が発生した場合、第二ホスト端末１８０Ｂ（又は第三ホスト端末１８０Ｃ）に第一ホスト端末１８０Ａの処理が引き継がれるテイクオーバ処理が実行される。処理の引継ぎ先となるホスト端末は、予め決められていても良いし、リストア処理の進行が最も遅い又は最も早いＳＶＯＬを有する記憶サブシステムに接続されたホスト端末であってもよい。以下、処理の引継ぎ先が第二ホスト端末１８０Ｂである場合を例に採って説明をする。
【０１９１】
第一ホスト端末１８０Ａで障害が発生した場合、第二ホスト端末１８０Ｂに第一ホスト端末１８０Ａの処理が引き継がれる（Ｓ１０１）。また、その後、第二ホスト端末１８０Ｂは、第二記憶サブシステム１００Ｂに、処理開始指示を送信する（Ｓ１０２）。
【０１９２】
第二記憶サブシステム１００Ｂは、処理開始指示に応答して、第一ＰＪＮＬＶＯＬ６Ａ２に対するＪＮＬリード命令を第一記憶サブシステム１００Ａに送信し、第一ＰＪＮＬＶＯＬ６Ａ２からＪＮＬ３を読み出し、読み出されたＪＮＬ３を第一ＳＪＮＬＶＯＬ６Ｂ１に格納する（Ｓ１０３Ａ）。第二記憶サブシステム１００Ｂは、第一ＰＪＮＬＶＯＬ６Ａ２に格納されている全てのＪＮＬ３を読み出し終えるまで、この処理を繰り返す。第一記憶サブシステム１００Ａは、ミラー管理サブデータ５０２ＡのＪＮＬ複製更新番号と同一の番号を含んだＪＮＬを第一ＰＪＮＬＶＯＬ６Ａ２から探して第二記憶サブシステム１００Ｂに送信し、且つ、そのＪＮＬ複製更新番号の値を１つ増やす。また、第一記憶サブシステム１００Ａは、ミラー管理サブデータ５０２ＡのＪＮＬ複製更新番号とＪＮＬ生成更新番号（例えば更新番号「１６」）とが同一になった場合には、第一ＰＪＮＬＶＯＬ６Ａ２には複製対象のＪＮＬは存在しない旨を第二記憶サブシステム１００Ｂに通知し、それにより、第二記憶サブシステム１００Ｂは、全てのＪＮＬの複製が完了したことを認識してもよい。また、第一記憶サブシステム１００Ａは、第一ＰＪＮＬＶＯＬ６Ａ２からＪＮＬ３が読み出された場合、読み出されたＪＮＬ３を第一ＰＪＮＬＶＯＬ６Ａ２から消去しても良い。すなわち、第一ＰＪＮＬＶＯＬ６Ａ２から全てのＪＮＬが読み出された場合、第一ＰＪＮＬＶＯＬ６Ａ２を空にしても良い。
【０１９３】
第二記憶サブシステム１００Ｂは、第一ＰＪＮＬＶＯＬ６Ａ２から読み出されたＪＮＬ３を第一ＳＪＮＬＶＯＬ６Ｂ１に書き込むことと同じ（又は異なる）タイミングで、第一ＳＪＮＬＶＯＬ６Ｂ１に格納されたＪＮＬ３に基づく第一ＳＶＯＬ６Ｂ２へのリストア処理を実行する（Ｓ１０３Ｂ）。第二記憶サブシステム１００Ｂは、第一ＳＪＮＬＶＯＬ６Ｂ１に格納されている全てのＪＮＬ３を読み出し終えるまで、この処理を繰り返す。
【０１９４】
以上のＳ１０３Ａ及びＳ１０３Ｂの処理が行われることにより、複製ゴールＶＯＬ６Ｂ２の内容を、複製スタートＶＯＬ６Ａ２の内容と完全に同じにすることができる。
【０１９５】
その後、第二記憶サブシステム１００Ｂは、ＳＪＮＬＶＯＬ６Ｂ１を含んだＶＯＬグループにおける複製方向を反転させるためのコピー反転処理を実行する（Ｓ１０４Ａ）。具体的には、例えば、第二記憶サブシステム１００Ｂは、ＳＪＮＬＶＯＬ６Ｂ１が構成するミラーペアのミラーＩＤ「１」を含んだＪＮＬコピー反転指示を生成し、且つ、パス管理データ５００Ｂを参照して、そのＳＪＮＬＶＯＬ６Ｂ１とミラーペアを構成するＰＪＮＬＶＯＬとそれを備える正記憶サブシステムを特定し、上記生成したＪＮＬコピー反転指示を、特定された正記憶サブシステム（つまり第一記憶サブシステム）１００Ａに送信する。また、例えば、第二記憶サブシステム１００Ｂは、パス管理データ５００Ｂにおいて、ミラーＩＤ「１」に関連したＰＪＮＬＶＯＬ−ＩＤ、ＰＶＯＬ−ＩＤ及び正記憶サブシステムＩＤと、ＳＪＮＬＶＯＬ−ＩＤ、ＳＶＯＬ−ＩＤ及び副記憶サブシステムＩＤとを入れ替える。また、例えば、第二記憶サブシステム１００Ｂは、第一記憶サブシステム１００Ａの後述のコピー反転処理によって受信したＪＮＬ生成更新番号を、反転後のＰＪＮＬＶＯＬ６Ｂ１に対応付けてパス管理データ５００Ｂに設定する。
【０１９６】
第二記憶サブシステム１００ＢからＪＮＬコピー反転指示を受信した第一記憶サブシステム１００Ａは、その指示に応答して、コピー反転処理を実行する（Ｓ１０４Ｂ）。具体的には、例えば、第一記憶サブシステム１００Ａは、パス管理データ５００Ａを参照し、ＰＪＮＬＶＯＬ６Ａ２に関するＪＮＬ生成更新番号（例えば更新番号「１６」）を第二記憶サブシステム１００Ｂに通知する。また、例えば、第一記憶サブシステム１００Ａは、パス管理データ５００Ａにおいて、ミラーＩＤ「１」に関連したＰＪＮＬＶＯＬ−ＩＤ、ＰＶＯＬ−ＩＤ及び正記憶サブシステムＩＤと、ＳＪＮＬＶＯＬ−ＩＤ、ＳＶＯＬ−ＩＤ及び副記憶サブシステムＩＤとを入れ替える。また、第一記憶サブシステム１００Ａは、反転後のＰＪＮＬＶＯＬ６Ｂ１に対するＪＮＬリード命令を第二記憶サブシステム１００Ｂに送信し、それにより、ＰＪＮＬＶＯＬ６Ｂ１内のＪＮＬを読み出し、そのＪＮＬを反転後のＳＪＮＬＶＯＬ６Ａ２に格納してもよい。
【０１９７】
第二記憶サブシステム１００Ｂは、第二ホスト端末１８０Ｂに、使用可能通知を送信する（Ｓ１０５）。なお、第二記憶サブシステム１００Ｂは、第二ホスト端末１８０ＢがＶＯＬ６Ｂ２に対するライト命令を送信できるよう、ＳＶＯＬ６Ｂ２のＶＯＬ−ＩＤを第二ホスト端末１８０Ｂに通知してもよい。
【０１９８】
以後、図２１Ｂに示した、マルチホップ方式に従う複製処理が行われる。具体的には、例えば、反転後のＰＶＯＬ６Ｂ２を含んだＶＯＬグループでは、以下の複製処理が行われる。
【０１９９】
すなわち、第二ホスト端末１８０Ｂは、第二記憶サブシステム１００ＢのＳ１０４の処理により使用可能通知を受信した後、ライトデータを生成し、生成したライトデータと、反転後のＰＶＯＬ６Ｂ２のＶＯＬ−ＩＤを有するライト命令とを、第二記憶サブシステム１００Ｂに送信する。第二記憶サブシステム１００Ｂは、受信したライトデータを反転後のＰＶＯＬ６Ｂ２に格納し、且つ、そのライトデータと、第一記憶サブシステム１００Ａから通知されたＪＮＬ生成更新番号（例えば更新番号「１６」）とを含んだＪＮＬを生成し、そのＪＮＬを反転後のＰＪＮＬＶＯＬ６Ｂ１に格納する。
【０２００】
また、第一記憶サブシステム１００Ａは、反転後のＳＪＮＬＶＯＬ６Ａ２にＪＮＬを格納したタイミングと同じ（又は異なる）タイミングで、ＳＪＮＬＶＯＬ６Ａ２内のＪＮＬを読み出し、そのＪＮＬに含まれているライトデータを、反転後のＳＶＯＬ（正確にはＳＶＰＯＬ）６Ａ１に格納する。
【０２０１】
以上の流れにより、反転後のＰＶＯＬ６Ｂ２を含んだＶＯＬグループでは、反転後のＰＶＯＬ６Ｂ２から反転後のＳＶＯＬ６Ａ１にかけて、ライトデータの複製が行われる。なお、コピー反転処理が行われていない別のＶＯＬグループでは、図２１Ａ及び図２１Ｂに示すように、通常時と同様の処理が行われる。
【０２０２】
以上、この第一実施例では、複製スタートＶＯＬを有する第一記憶サブシステム１００Ａに接続された第一ホスト端末１８０Ａで障害が発生した場合、第一記憶サブシステム１００Ａのパス管理データ５００Ａと、第二記憶サブシステム１００Ｂのパス管理データ５００Ｂとに基づいて、複製スタートＶＯＬ６Ａ１に対応付けられたＪＮＬＶＯＬ６Ａ２と、複製ゴールＶＯＬ６Ｂ２に対応付けられたＪＮＬＶＯＬ６Ｂ１とのＶＯＬ属性が反転され、且つ、それに応じて、複製スタートＶＯＬ６Ａ１と複製ゴールＶＯＬ６Ｂ２とのＶＯＬ属性も反転される。この処理により、複製方向が反転される。そして、その際、反転前のＰＪＮＬＶＯＬについてのＪＮＬ生成更新番号と、反転前のＳＪＮＬＶＯＬについてのＪＮＬ複製更新番号及びリストア更新番号とが一致するまで、ＰＪＮＬＶＯＬ６Ａ２からＳＪＮＬＶＯＬ６Ｂ１へのＪＮＬ複製処理と、ＳＪＮＬＶＯＬ６Ｂ１からＳＶＯＬ６Ｂ２へのリストア処理とが繰り返されて、反転前の複製スタートＶＯＬの内容と、反転前の複製ゴールＶＯＬの内容とが同一にされる。このように、第一実施例では、第一ホスト端末１８０Ａで障害が発生した場合には、ＰＶＯＬ６Ａ１を含んだ二つのＶＯＬグループ１６、１６のうちのいずれかのＶＯＬグループの複製方向が自動的に反転されて、信頼性の高い冗長性のある複製処理が維持される。
【０２０３】
以上が、第一実施例についての説明である。この第一実施例を抽象的に説明すると、以下の通りである。すなわち、第一記憶サブシステム１００Ａが、第一記憶デバイス６Ａ１と、一以上の第二記憶デバイス６Ａ２、６Ａ３とを備え、第二記憶サブシステム１００Ｂが、第三記憶デバイス６Ｂ１と、第四記憶デバイス６Ｂ２とを備え、第三記憶サブシステム１００Ｃが、第五記憶デバイス６Ｃ１と、第六記憶デバイス６Ｃ２とを備える。第一記憶サブシステム１００Ａは、第一記憶デバイス６Ａ１の更新順序を表す更新番号と、第一記憶デバイス６Ａ１に格納されるライトデータとを含んだデータセットを生成し、一以上の第二記憶デバイス６Ａ２、６Ａ３に格納し、そのデータセットを、第二及び第三記憶サブシステム１００Ｂ、１００Ｃに送信する。第二及び第三記憶サブシステム１００Ｂ、１００Ｃの各々は、受信したデータセットを第三又は第五記憶デバイス６Ｂ１、６Ｃ１に格納し、第三又は第五記憶デバイス６Ｂ１、６Ｃ１から、更新番号に従ってデータセットを読み出し、そのデータセット内のライトデータを、第四又は第六記憶デバイス６Ｂ２、６Ｃ２に格納する。
【０２０４】
ところで、この第一実施例について、幾つかの変形例が考えられる。以下、それらの変形例について説明する。
【０２０５】
（Ａ）第一実施例の第一変形例。
【０２０６】
図２３は、図２１Ａに示したマルチターゲット方式に従う複製処理が行われている際に、この第一変形例において、第一ホスト端末１８０Ａで障害が発生した後の複製処理の概要を示し、図２４は、第一ホスト端末１８０Ａで障害が発生した場合に行われる、マルチターゲット方式から別のマルチターゲット方式への切り替え処理の流れを示す。以下、上述した第一実施例との相違点を主に説明し、共通点については説明を省略或いは簡略する。
【０２０７】
この第一変形例で言う「別のマルチターゲット方式」では、一つのＰＶＯＬに対して複数のＰＪＮＬＶＯＬが対応付けられるのではなく、図２３に示すように、一つのＰＶＯＬ６Ｂ２に対しては一つのＰＪＮＬＶＯＬ６Ｂ１が対応付けられ、一つのＰＪＮＬＶＯＬ６Ｂ１に対して複数のＳＪＮＬＶＯＬ６Ａ２、６Ｃ１が対応付けられる。
【０２０８】
この第一変形例では、図２４に示すように、第一ホスト端末１８０Ａで障害が発生した場合、Ｓ１０１〜Ｓ１０５と同様の処理が行われ、それに加えて、ＶＯＬグループ再構築処理（Ｓ１０６）が行われる。以下、それについて詳述する。
【０２０９】
第一記憶サブシステム１００Ａは、コピー反転後のＰＪＮＬＶＯＬ６Ｂ１のＶＯＬＩＤと、第二ＳＪＮＬＶＯＬ６Ｃ１のＶＯＬＩＤとをパス管理データ５００Ａから特定し、それら２つのＶＯＬＩＤの対応付けを行うことのミラー形成指示、換言すれば、ＰＪＮＬＶＯＬ６Ｂ１と第二ＳＪＮＬＶＯＬ６Ｃ１のミラーペアを形成することの指示を、第二記憶サブシステム１００Ｂ及び第三記憶サブシステム１００Ｃに送信する。また、第一記憶サブシステム１００Ａは、ＰＪＮＬＶＯＬ６Ａ３のＶＯＬＩＤと、ＳＪＮＬＶＯＬ６Ｃ１のＶＯＬＩＤとをパス管理データ５００Ａから特定し、それら２つのＶＯＬＩＤの対応付けを解除することのミラー解除指示、換言すれば、ＰＪＮＬＶＯＬ６Ａ３とＳＪＮＬＶＯＬ６Ｃ１のミラーペアを解除することの指示を、第三記憶サブシステム１００Ｃに送信する。
【０２１０】
第二記憶サブシステム１００Ｂは、第一記憶サブシステム１００Ａからのミラー形成指示に応答して、ＰＪＮＬＶＯＬ６Ｂ１とＳＪＮＬＶＯＬ６Ｃ１とのミラーペアを表す情報をパス管理データ５００Ｂに設定する。
【０２１１】
第三記憶サブシステム１００Ｃは、第一記憶サブシステム１００Ａからのミラー解除指示に応答して、ＰＪＮＬＶＯＬ６Ａ３とＳＪＮＬＶＯＬ６Ｃ１とのミラーペアを表す情報をパス管理データ５００Ｂから除去する。また、第三記憶サブシステム１００Ｃは、第一記憶サブシステム１００Ａからのミラー形成指示に応答して、ＰＪＮＬＶＯＬ６Ｂ１とＳＪＮＬＶＯＬ６Ｃ１とのミラーペアを表す情報をパス管理データ５００Ｃに設定する。
【０２１２】
以上の一連の処理により、複製スタートＶＯＬをＶＯＬ６Ｂ２とし、中継ＪＮＬＶＯＬを６Ｂ１及び６Ｃ１とし、複製ゴールＶＯＬをＶＯＬ６Ｃ２とした新たなＶＯＬグループが構築される。
【０２１３】
その後、別のマルチターゲット方式に従う複製処理が実行される。
【０２１４】
例えば、第二ホスト端末１８０Ｂは、第二記憶サブシステム１００ＢのＳ１０４の処理により使用可能通知を受信した後、ライトデータを生成し、生成したライトデータと、ＰＪＮＬＶＯＬ６Ｂ２に対するライト命令とを、第二記憶サブシステム１００Ｂに送信する。第二記憶サブシステム１００Ｂは、受信したライトデータをＰＶＯＬ６Ｂ２に格納し、且つ、そのライトデータと、第一記憶サブシステム１００Ａから通知されたＪＮＬ生成更新番号（例えば更新番号「１６」）とを含んだＪＮＬを生成し、そのＪＮＬをＰＪＮＬＶＯＬ６Ｂ１に格納する。
【０２１５】
第一記憶サブシステム１００Ａは、更新後のパス管理データ５００Ａに基づいて、ＰＪＮＬＶＯＬ６Ｂ１に対するＪＮＬリード命令を第二記憶サブシステム１００Ｂに送信し、その命令に応答して、ＰＪＮＬＶＯＬ６Ｂ１内のＪＮＬを第二記憶サブシステム１００Ｂから受信し、受信したＪＮＬを、ＰＪＮＬＶＯＬ６Ｂ１とミラーペアを構成するＳＪＮＬＶＯＬ６Ａ２に格納する。また、第一記憶サブシステム１００Ａは、ＳＪＮＬＶＯＬ６Ａ２にＪＮＬを格納したタイミングと同じ（又は異なる）タイミングで、ＳＪＮＬＶＯＬ６Ａ２内のＪＮＬを読み出し、そのＪＮＬに含まれているライトデータを、ＳＶＯＬ６Ａ１に格納する。
【０２１６】
第三記憶サブシステム１００Ｃは、更新後のパス管理データ５００Ｃに基づいて、ＰＪＮＬＶＯＬ６Ｂ１に対するＪＮＬリード命令を第二記憶サブシステム１００Ｂに送信し、その命令に応答して、ＰＪＮＬＶＯＬ６Ｂ１内のＪＮＬを第二記憶サブシステム１００Ｂから受信し、受信したＪＮＬを、ＰＪＮＬＶＯＬ６Ｂ１とミラーペアを構成するＳＪＮＬＶＯＬ６Ｃ１に格納する。また、第三記憶サブシステム１００Ｃは、ＳＪＮＬＶＯＬ６Ｃ１にＪＮＬを格納したタイミングと同じ（又は異なる）タイミングで、ＳＪＮＬＶＯＬ６Ｃ１内のＪＮＬを読み出し、そのＪＮＬに含まれているライトデータを、ＳＶＯＬ６Ｃ２に格納する。
【０２１７】
以上、この第一実施例の第一変形例では、第一ホスト端末１８０Ａで障害が発生した場合には、ＰＶＯＬ６Ａ１を含んだ二つのＶＯＬグループ１６、１６のうちのいずれかのＶＯＬグループの複製方向が自動的に反転され、且つ、反転後のＰＪＮＬＶＯＬに対して複数のＳＪＮＬＶＯＬが対応付けられることにより、別のマルチターゲット方式が構築され、複製処理が継続される。これにより、第一ホスト端末１８０Ａで障害が発生しても、データ処理システム１全体がダウンすることが無いので、信頼性の高い複製処理が維持される。
【０２１８】
（Ｂ）第一実施例の第二変形例。
【０２１９】
図２５は、図２１Ａに示したマルチターゲット方式に従う複製処理において、第一記憶サブシステム１００Ａで障害が発生した後の複製処理の概要を示し、図２６は、第一記憶サブシステム１００Ａで障害が発生した場合に行われる処理の流れを示す。
【０２２０】
第一記憶サブシステム１００Ａで障害が発生した場合（Ｓ１１０）、第二ホスト端末１８０Ｂに第一ホスト端末１８０Ａの処理が引き継がれる（Ｓ１１１）。なお、第一記憶サブシステム１００Ａで障害が発生したことは、例えば、第二記憶サブシステム１００Ｂ又は第三記憶サブシステム１００Ｃが、第一記憶サブシステム１００ＡにＪＮＬリード命令を送信してから一定時間経過してもそれに応答してＪＮＬを受信できない場合に、第一記憶サブシステム１００Ａで障害が発生したと判断することができる。この場合、その判断をした記憶サブシステムは、自分に接続されているホスト端末にその旨を通知し、その通知を受けたホスト端末が、第一ホスト端末１００Ａとの間でテイクオーバ処理を行っても良い。
【０２２１】
この後、ＶＯＬグループの再構築処理が行われる（Ｓ１１２）。以下、この処理の具体例を説明する。
【０２２２】
第一ホスト端末１００Ａから処理を引き継いだ第二ホスト端末１００Ｂに接続されている第二記憶サブシステム１００Ｂは、ＪＮＬＶＯＬ６Ｂ１の属性をＳＪＮＬＶＯＬからＰＪＮＬＶＯＬへ変更し、それに伴い、ＶＯＬ６Ｂ２の属性をＳＶＯＬからＰＶＯＬに変更し、パス管理データ５００Ｂに、ＰＪＮＬＶＯＬ６Ｂ１とＳＪＮＬＶＯＬ６Ｃ１とによる新たなミラーペアに関する情報を追記する。また、第二記憶サブシステム１００Ｂは、以下のペア相手変更指示、すなわち、ＳＪＮＬＶＯＬ６Ｃ１のミラーペア相手を第二ＰＪＮＬＶＯＬ６Ａ３からＰＪＮＬＶＯＬ６Ｂ１に変更し、且つ、ＳＶＯＬ６Ｃ２のＶＯＬペア相手をＰＶＯＬ６Ａ１からＰＶＯＬ６Ｂ２に変更することのペア相手変更指示を、第三記憶サブシステム１００Ｃに送信する。第三記憶サブシステム１００Ｃは、第二記憶サブシステム１００Ｂからのペア相手変更指示に応答して、パス管理データ５００Ｃの内容を、ＳＪＮＬＶＯＬ６Ｃ１のミラーペア相手がＰＪＮＬＶＯＬ６Ｂ１であり、且つ、ＳＶＯＬ６Ｃ２のＶＯＬペア相手がＰＶＯＬ６Ｂ２であることを表す内容に更新する。
【０２２３】
以上の一連の処理により、複製スタートＶＯＬをＶＯＬ６Ｂ２とし、中継ＪＮＬＶＯＬを６Ｂ１及び６Ｃ１とし、複製ゴールＶＯＬをＶＯＬ６Ｃ２とした新たなＶＯＬグループが構築される。この後、その新たなＶＯＬグループに従う処理が実行される。例えば、第二記憶サブシステム１００Ｂは、新たなＶＯＬグループ構築後、ＰＪＮＬＶＯＬ６Ｂ１に格納するＪＮＬを初めて生成する場合、そのＪＮＬには、ＰＪＮＬＶＯＬ６Ｂ１中の一以上のＪＮＬのうちの最新の更新番号の次の更新番号を含める。また、第二記憶サブシステム１００Ｂは、新たなＶＯＬグループ構築後、ＰＪＮＬＶＯＬ６Ｂ１内のＪＮＬを初めて読み出して第三記憶サブシステム１００Ｃに送信する場合、第三記憶サブシステム１００Ｃに指定された更新番号を有するＪＮＬか、或いは、ＰＪＮＬＶＯＬ６Ｂ１中の一以上のＪＮＬのうち最も古い更新番号を有するＪＮＬを読み出して、第三記憶サブシステム１００Ｃに送信する。第三記憶サブシステム１００Ｃは、その最も古い更新番号を有するＪＮＬを受信したとき、その更新番号を含んだＪＮＬがＳＪＮＬＶＯＬ６Ｃ１に存在する場合（又はそのＪＮＬに基づくリストア処理が済んでいた場合）には、その受信したＪＮＬを破棄する（上記の場合であるか否かは、例えば、パス管理データ５００Ｃを参照することにより判別することができる）。また、第三記憶サブシステム１００Ｃは、ＪＮＬを受信した場合、そのＪＮＬ中の更新番号が、ＳＪＮＬＶＯＬ６Ｃ１中の一以上のＪＮＬの最新の更新番号（例えば「７」）の次の番号（例えば「８」）である場合には、そのＪＮＬをＳＪＮＬＶＯＬ６Ｃ１に格納する。また、第三記憶サブシステム１００Ｃは、最も古い更新番号を有するＪＮＬを受信した場合、その最も古い更新番号が、ＳＪＮＬＶＯＬ６Ｃ１中の一以上のＪＮＬの最新の更新番号（例えば「７」）の次の番号よりも大きい番号（例えば「９」）である場合には、複製処理を停止する。連続した更新番号順のリストア処理が行えないためである。
【０２２４】
以上、この第一実施例の第二変形例では、第一記憶サブシステム１００Ａで障害が発生した場合には、第一記憶サブシステム１００Ａに備えられるＶＯＬを除去した新たなＶＯＬグループが再構築され、その新たなＶＯＬグループに従って、複製処理が継続される。
【０２２５】
（Ｃ）第一実施例の第三変形例。
【０２２６】
図２７は、第一実施例の第三変形例に係るマルチターゲット方式に従う複製処理の概要を示す。
【０２２７】
この第三変形例では、一つのＰＶＯＬ６Ａ１に対して複数のＰＪＮＬＶＯＬが対応付けられるのではなく、図２７に示すように、一つのＰＶＯＬ６Ａ１に対しては一つのＰＪＮＬＶＯＬ６Ａ２が対応付けられ、一つのＰＪＮＬＶＯＬ６Ｂ１に対して複数のＳＪＮＬＶＯＬ６Ｂ１、６Ｃ１が対応付けられる。この場合、第二記憶サブシステム１００Ｂも第三記憶サブシステム１００Ｃも、ＰＪＮＬＶＯＬ６Ａ２に対するＪＮＬリード命令を送信し、それにより、ＰＪＮＬＶＯＬ６Ａ２から読み出されたＪＮＬを第一記憶サブシステム１０００Ａから受信する。
【０２２８】
この第三変形例によれば、第一記憶サブシステム１００Ａは、一つのオリジナルライトデータ２について複数のＪＮＬを作成する必要がなくなるので、第一記憶サブシステム１００Ａの負荷を軽減することができる。また、この第三変形例によれば、一つのＰＶＯＬ６Ａ１に対して一つのＰＪＮＬＶＯＬ６Ａ２を用意すれば良いので、記憶容量を削減することができる。
【０２２９】
（Ｄ）第一実施例の第四変形例。
【０２３０】
図２８Ａは、図２１Ａに示したマルチターゲット方式に従う複製処理において、第一記憶サブシステム１００Ａから第二記憶サブシステム１００ＢへのＪＮＬの複製を行うことができなくなった場合の例を示す。
【０２３１】
図２１Ａに示したマルチターゲット方式に従う複製処理において、第一記憶サブシステム１００Ａから第二記憶サブシステム１００ＢへのＪＮＬの複製を行うことができなくなる場合が有り得る。その場合としては、例えば、第一記憶サブシステム１００Ａと第二記憶サブシステム１００Ｂとを互いに接続する接続パス２００Ａで障害が発生した場合や、或いは、図２８Ｂに示すように、第二記憶サブシステム１００Ｂの読み出し対象であるＪＮＬがＰＪＮＬＶＯＬ６Ａ２に存在しない場合などが考えられる。また、第二記憶サブシステム１００Ｂの読み出し対象であるＪＮＬがＰＪＮＬＶＯＬ６Ａ２に存在しないという事態は、例えば、ＰＪＮＬＶＯＬ６Ａ２にＪＮＬが満杯になった後、更新番号が最も古いＪＮＬがそのＰＪＮＬＶＯＬ６Ａ２から消去されるようになっている場合に生じ得る（これは、マルチホップ方式に従う複製処理においても同様である）。
【０２３２】
このような場合、図２８に示すように、第一記憶サブシステム１００Ａは、第二記憶サブシステム１００ＢへのＪＮＬの複製を行うことを停止しても、第三記憶サブシステム１００ＣへのＪＮＬの複製は継続する。
【０２３３】
この第一実施例の第四変形例によれば、或る複製経路及び複製方向に従う複製処理が停止しても、別の複製経路及び複製方向に従う複製処理には影響がない。
【０２３４】
（Ｅ）第一実施例の第五変形例。
【０２３５】
図２９は、第一実施例の第五変形例に係るマルチターゲット方式に従う複製処理の概要を示す。
【０２３６】
第五変形例に従うマルチターゲット方式によれば、第一記憶サブシステム１００Ａにおいて、ＰＶＯＬ６Ａ１に、第三ＰＪＮＬＶＯＬ６Ａ４が用意され、その第三ＰＪＮＬＶＯＬ６Ａ４に、第四記憶サブシステム１００Ｄが備える第三ＳＪＮＬＶＯＬ６Ｄ１が対応付けられる。第三ＳＪＮＬＶＯＬ６Ｄ１には、第三ＳＶＯＬ６Ｄ２が対応付けられる。
【０２３７】
本発明の一実施形態及び第一実施例に基づいて、どのＰＶＯＬにどのＰＪＮＬＶＯＬを対応付けるか、どのＰＪＮＬＶＯＬにどのＳＪＮＬＶＯＬを対応付けてミラーペアを構成するか、どのＳＪＮＬＶＯＬにどのＳＶＯＬを対応付けるかにより、記憶サブシステムの数に関わらず、マルチターゲット方式に従う複製処理を実現することができる。
【実施例２】
【０２３８】
次に、本発明の一実施形態の第二実施例、すなわち、マルチホップ方式について、詳細に説明する。
【０２３９】
図３０Ａは、本発明の一実施形態の第二実施例に係るデータ処理システムで通常時に行われる、マルチホップ方式に従う複製処理の概要を示し、図３０Ｂは、そのデータ処理システムにおいて第二ホスト端末で障害が発生した後の複製処理の概要を示し、図３１は、第二ホスト端末で障害が発生した場合に行われる、マルチホップ方式からマルチターゲット方式への切り替え処理の流れを示す。
【０２４０】
図３０Ａに示すように、通常時は（例えば、データ処理システム１において何の障害も発生していない場合は）、第二記憶サブシステム１００ＢのＰＶＯＬ６Ｂ２に書かれたオリジナルデータ２は、そのＰＶＯＬ６Ｂ２を複製スタートＶＯＬとし、且つ、第三記憶サブシステム１００ＣのＶＯＬ６Ｃ２を複製ゴールＶＯＬとして、一つの複製経路及び複製方向に沿って下流側に流れていく。具体的には、例えば、第二記憶サブシステム１００Ｂは、ＰＶＯＬ６Ｂ２に書かれたオリジナルライトデータ２に基づいてＪＮＬ３を生成し、そのＪＮＬ３を、ＰＪＮＬＶＯＬ６Ｂ１に格納する。第一記憶サブシステム１００Ａは、ＰＪＮＬＶＯＬ６Ｂ１に対するＪＮＬリード命令を送信し、それに応答してＰＪＮＬＶＯＬ６Ｂ１から読み出されたＪＮＬを第二記憶サブシステム１００Ｂから受信し、ＳＪＮＬＶＯＬ６Ａ２に格納する。また、例えば、第一記憶サブシステム１００Ａは、ＳＪＮＬＶＯＬ６Ａ２へのＪＮＬ３の格納と同じタイミングで、そのＪＮＬ３に含まれるライトデータ２をＳＰＶＯＬ６Ａ１にリストアする。また、例えば、第一記憶サブシステム１００Ａは、そのライトデータ２のＳＰＶＯＬ６Ａ１へのリストア処理と同じ（又は異なる）タイミングで、そのライトデータ２と、それに対応した更新番号とを含んだＪＮＬを生成し、そのＪＮＬをＰＪＮＬＶＯＬ６Ａ３に格納する。すなわち、同一のサイト１４０Ａでは、ＳＪＮＬＶＯＬ６Ａ２へのＪＮＬ３の複製と、そのＪＮＬ３内のライトデータ２のＳＰＶＯＬ６Ａ１へのリストアと、リストアされたライトデータ２を含んだＪＮＬ３の生成及びＰＪＮＬＶＯＬ６Ａ３への格納とが、実質的に同じタイミングで行われる（異なるタイミングで行われても良い）。ＰＪＮＬＶＯＬ６Ａ３に格納されたＪＮＬは、第三記憶サブシステム１００ＣからのＪＮＬリード命令により読み出され、その読み出されたＪＮＬ中のライトデータ２は、ＳＰＶＯＬ６Ａ１とＶＯＬペアを構成する複製ゴールＶＯＬ（ＳＶＯＬ）６Ｃ２にリストアされる。
【０２４１】
この場合において、複製スタートＶＯＬを備える第二記憶サブシステム１００Ｂに接続された第二ホスト端末１８０Ｂで障害が発生した場合、マルチホップ方式に従う複製処理からマルチターゲット方式に従う複製処理に切り替えられる。以下、図３０Ｂ及び図３１を参照して、マルチホップ方式に従う複製処理からマルチターゲット方式に従う複製処理に切り替えられる場合に行われる処理流れを説明する。
【０２４２】
第二ホスト端末１８０Ｂで障害が発生した場合（Ｓ２００）、データ処理システム１においてそれが検出される。それの検出方法は、第一実施例と同様の方法を採用することができる。
【０２４３】
第二ホスト端末１８０Ｂで障害が発生した場合、第一ホスト端末１８０Ａ（又は第三ホスト端末１８０Ｃ）に第二ホスト端末１８０Ｂの処理が引き継がれるテイクオーバ処理が実行される。処理の引継ぎ先となるホスト端末は、予め決められていても良いし、リストア処理の進行が最も遅い又は最も早いＳＶＯＬを有する記憶サブシステムに接続されたホスト端末であってもよい。以下、処理の引継ぎ先が第一ホスト端末１８０Ａである場合を例に採って説明をする。
【０２４４】
第二ホスト端末１８０Ｂで障害が発生した場合、第一ホスト端末１８０Ａに第二ホスト端末１８０Ｂの処理が引き継がれる（Ｓ２０１）。また、その後、第一ホスト端末１８０Ａは、第一記憶サブシステム１００Ａに、処理開始指示を送信する（Ｓ２０２）。
【０２４５】
第一記憶サブシステム１００Ａは、処理開始指示に応答して、ＰＪＮＬＶＯＬ６Ｂ１に対するＪＮＬリード命令を第二記憶サブシステム１００Ｂに送信し、ＰＪＮＬＶＯＬ６Ｂ１からＪＮＬ３を読み出し、読み出されたＪＮＬ３をＳＪＮＬＶＯＬ６Ａ２に格納する（Ｓ２０３Ａ）。第一記憶サブシステム１００Ａは、ＰＪＮＬＶＯＬ６Ｂ１に格納されている全てのＪＮＬ３を読み出し終えるまで、この処理を繰り返す。第二記憶サブシステム１００Ｂは、ミラー管理サブデータ５０２ＢのＪＮＬ複製更新番号と同一の番号を含んだＪＮＬをＰＪＮＬＶＯＬ６Ｂ１から探して第一記憶サブシステム１００Ａに送信し、且つ、そのＪＮＬ複製更新番号の値を１つ増やす。また、第二記憶サブシステム１００Ｂは、ミラー管理サブデータ５０２ＢのＪＮＬ複製更新番号とＪＮＬ生成更新番号（例えば更新番号「１６」）とが同一になった場合には、ＰＪＮＬＶＯＬ６Ｂ１には複製対象のＪＮＬは存在しない旨を第一記憶サブシステム１００Ａに通知し、それにより、第一記憶サブシステム１００Ａは、全てのＪＮＬの複製が完了したことを認識してもよい。また、第二記憶サブシステム１００Ｂは、ＰＪＮＬＶＯＬ６Ｂ１からＪＮＬ３が読み出された場合、読み出されたＪＮＬ３をＰＪＮＬＶＯＬ６Ｂ１から消去しても良い。すなわち、ＰＪＮＬＶＯＬ６Ｂ１から全てのＪＮＬが読み出された場合、ＰＪＮＬＶＯＬ６Ｂ１を空にしても良い。
【０２４６】
第一記憶サブシステム１００Ａは、ＰＪＮＬＶＯＬ６Ｂ１から読み出されたＪＮＬ３をＳＪＮＬＶＯＬ６Ａ２に書き込むことと同じ（又は異なる）タイミングで、ＳＪＮＬＶＯＬ６Ａ２に格納されたＪＮＬ３に基づくＳＰＶＯＬ６Ａ１へのリストア処理を実行する（Ｓ２０３Ｂ）。第一記憶サブシステム１００Ａは、ＳＪＮＬＶＯＬ６Ａ２に格納されている全てのＪＮＬ３を読み出し終えるまで、この処理を繰り返す。
【０２４７】
以上のＳ２０３Ａ及びＳ２０３Ｂの処理が行われることにより、ＳＰＶＯＬ６Ａ１の内容を、複製スタートＶＯＬ６Ｂ２の内容と完全に同じにすることができる。
【０２４８】
その後、第一記憶サブシステム１００Ａは、第一ホスト端末１８０Ａに、使用可能通知を送信する（Ｓ２０５）。なお、第一記憶サブシステム１００Ａは、第一ホスト端末１８０ＡがＶＯＬ６Ａ１に対するライト命令を送信できるよう、ＶＯＬ６Ａ１のＶＯＬ−ＩＤを第一ホスト端末１８０Ａに通知してもよい。
【０２４９】
以後、図３０Ｂに示した、マルチターゲット方式に従う複製処理が行われる。具体的には、例えば、反転後のＳＶＯＬ６Ｂ２を含んだＶＯＬグループでは、以下の複製処理が行われる。
【０２５０】
すなわち、第一ホスト端末１８０Ａは、第一記憶サブシステム１００ＡのＳ２０４の処理により使用可能通知を受信した後、ライトデータを生成し、生成したライトデータと、反転後のＰＶＯＬ６Ａ１のＶＯＬ−ＩＤを有するライト命令とを、第一記憶サブシステム１００Ａに送信する。その場合、図１Ａ及び図２１Ａを参照して説明した、マルチターゲット方式に従う複製処理が実行される。
【０２５１】
以上、この第二実施例では、複製スタートＶＯＬを有する第二記憶サブシステム１００Ｂに接続された第二ホスト端末１８０Ａで障害が発生した場合、第二記憶サブシステム１００Ｂのパス管理データ５００Ｂと、第一記憶サブシステム１００Ａのパス管理データ５００Ａとに基づいて、複製スタートＶＯＬ６Ｂ２に対応付けられたＪＮＬＶＯＬ６Ｂ１と、ＳＰＶＯＬ６Ａ１に対応付けられたＪＮＬＶＯＬ６Ａ２とのＶＯＬ属性が反転され、且つ、それに応じて、複製スタートＶＯＬ６Ｂ２とＳＰＶＯＬ６Ａ１とのＶＯＬ属性も反転される。この処理により、複製方向が反転される。そして、その際、反転前のＰＪＮＬＶＯＬについてのＪＮＬ生成更新番号と、反転前のＳＪＮＬＶＯＬについてのＪＮＬ複製更新番号及びリストア更新番号とが一致するまで、ＰＪＮＬＶＯＬ６Ｂ１からＳＪＮＬＶＯＬ６Ａ２へのＪＮＬ複製処理と、ＳＪＮＬＶＯＬ６Ａ２からＳＰＶＯＬ６Ａ１へのリストア処理とが繰り返されて、反転前の複製スタートＶＯＬの内容と、ＳＰＶＯＬの内容とが同一にされる。このように、第二実施例では、第二ホスト端末１８０Ａで障害が発生した場合には、ＰＶＯＬ６Ｂ２を含んだＶＯＬグループ１６の複製方向が自動的に反転されて、信頼性の高い冗長性のある複製処理が維持される。
【０２５２】
以上が、第二実施例についての説明である。なお、この第二実施例について、幾つかの変形例が考えられる。以下、それらの変形例について説明する。
【０２５３】
（Ａ）第二実施例の第一変形例。
【０２５４】
図３２は、図３０Ａに示したマルチホップ方式に従う複製処理が行われている際に、この第一変形例において、第二ホスト端末１８０Ｂで障害が発生した後の複製処理の概要を示し、図３３は、第二ホスト端末１８０Ｂで障害が発生した場合に行われる、マルチホップ方式から別のマルチホップ方式への切り替え処理の流れを示す。以下、上述した第二実施例との相違点を主に説明し、共通点については説明を省略或いは簡略する。
【０２５５】
この第一変形例で言う「別のマルチホップ方式」では、複製経路は、図３２に示すように、図３０Ａに例示した複製経路と同一であるが、複製方向が、図３０Ａに例示した複製方向と反対になる。換言すれば、各ＶＯＬグループの複製方向が反転することにより、複製スタートＶＯＬと複製ゴールＶＯＬが反転し、且つ、各ＶＯＬグループにおける各ＶＯＬの属性も反転する。
【０２５６】
この第一変形例では、複製スタートＶＯＬを有する第二記憶サブシステム１００Ｂに接続された第二ホスト端末１８０Ｂで障害が発生した場合、複製ゴールＶＯＬを有する第三記憶サブシステム１００Ｃに接続された第三ホスト端末１８０Ｃに、第二ホスト端末１８０Ｂの処理が引き継がれる（Ｓ２１１）。また、その後、第三ホスト端末１８０Ｃは、第一記憶サブシステム１００Ａ及び第三記憶サブシステム１００Ｃに、処理開始指示を送信する（Ｓ２１２）。
【０２５７】
第一記憶サブシステム１００Ａに対する処理開始指示により、上述したＳ２０３Ａ及びＳ２０３Ｂと同様の処理が行われる（Ｓ２１３Ａ及びＳ２１３Ｂ）。それに加えて、第一記憶サブシステム１００Ａは、ＳＪＮＬＶＯＬ６Ａ２へのＪＮＬ３に含まれているライトデータ２をＳＰＶＯＬ６Ａ１にリストアするタイミングと同じタイミングで、そのライトデータ２に基づくＪＮＬを生成し、そのＪＮＬをＰＪＮＬＶＯＬ６Ａ３に格納する（Ｓ２１３Ｃ）。これにより、ＳＪＮＬＶＯＬ６Ａ２に格納されている一以上のＪＮＬ中の最新の更新番号と、ＰＪＮＬＶＯＬ６Ａ３に格納されている一以上のＪＮＬ中の最新の更新番号とが同じになる。
【０２５８】
第三記憶サブシステム１００Ｃは、処理開始指示に応答して、ＰＪＮＬＶＯＬ６Ａ３に対するＪＮＬリード命令を第一記憶サブシステム１００Ａに送信し、ＰＪＮＬＶＯＬ６Ａ３からＪＮＬ３を読み出し、読み出されたＪＮＬ３をＳＪＮＬＶＯＬ６Ｃ１に格納する（Ｓ２１３Ｄ）。第三記憶サブシステム１００Ｃは、ＰＪＮＬＶＯＬ６Ａ３に格納されている全てのＪＮＬ３を読み出し終えるまで、この処理を繰り返す。第一記憶サブシステム１００Ａは、ミラー管理サブデータ５０２ＡのＪＮＬ複製更新番号と同一の番号を含んだＪＮＬをＰＪＮＬＶＯＬ６Ａ３から探して第三記憶サブシステム１００Ｃに送信し、且つ、そのＪＮＬ複製更新番号の値を１つ増やす。また、第一記憶サブシステム１００Ａは、ミラー管理サブデータ５０２ＡのＪＮＬ複製更新番号とＪＮＬ生成更新番号（例えば更新番号「１６」）とが同一になった場合には、ＰＪＮＬＶＯＬ６Ａ３には複製対象のＪＮＬは存在しない旨を第三記憶サブシステム１００Ｃに通知し、それにより、第三記憶サブシステム１００Ｃは、全てのＪＮＬの複製が完了したことを認識してもよい。また、第一記憶サブシステム１００Ａは、ＰＪＮＬＶＯＬ６Ａ３からＪＮＬ３が読み出された場合、読み出されたＪＮＬ３をＰＪＮＬＶＯＬ６Ａ３から消去しても良い。すなわち、ＰＪＮＬＶＯＬ６Ａ３から全てのＪＮＬが読み出された場合、ＰＪＮＬＶＯＬ６Ａ３を空にしても良い。
【０２５９】
第三記憶サブシステム１００Ｃは、ＰＪＮＬＶＯＬ６Ａ３から読み出されたＪＮＬ３をＳＪＮＬＶＯＬ６Ｃ１に書き込むことと同じ（又は異なる）タイミングで、ＳＪＮＬＶＯＬ６Ｃ１に格納されたＪＮＬ３に基づくＳＶＯＬ６Ｃ２へのリストア処理を実行する（Ｓ２１３Ｅ）。第三記憶サブシステム１００Ｃは、ＳＪＮＬＶＯＬ６Ｃ１に格納されている全てのＪＮＬ３を読み出し終えるまで、この処理を繰り返す。
【０２６０】
以上のＳ２１３Ａ乃至Ｓ２１３Ｅの処理が行われることにより、ＳＶＯＬ６Ｃ２の内容を、複製スタートＶＯＬ６Ｂ２の内容と完全に同じにすることができる。
【０２６１】
第一記憶サブシステム１００Ａ及び第二記憶サブシステム１００Ｂにより、上記のＳ２０４Ａ及びＳ２０４Ｂと同様の処理が行われることにより、ＳＪＮＬＶＯＬ６Ａ２を含んだＶＯＬグループにおける複製方向が反転される（Ｓ２１４Ａ及びＳ２１４Ｂ）。また、第一記憶サブシステム１００Ａ（又は第二記憶サブシステム１００Ｂ）は、ＳＪＮＬＶＯＬ６Ａ２を含んだＶＯＬグループの反転に成功したか失敗したかを、第三記憶サブシステム１００Ｃに通知する（Ｓ２１４Ｃ）。
【０２６２】
第三記憶サブシステム１００Ｃは、ＳＪＮＬＶＯＬ６Ｃ１を含んだＶＯＬグループにおける複製方向を反転させるためのコピー反転処理を実行する（Ｓ２１４Ｄ）。具体的には、例えば、第三記憶サブシステム１００Ｃは、ＳＪＮＬＶＯＬ６Ｃ１が構成するミラーペアのミラーＩＤ「２」を含んだＪＮＬコピー反転指示を生成し、且つ、パス管理データ５００Ｃを参照して、そのＳＪＮＬＶＯＬ６Ｃ１とミラーペアを構成するＰＪＮＬＶＯＬとそれを備える正記憶サブシステムを特定し、上記生成したＪＮＬコピー反転指示を、特定された正記憶サブシステム（つまり第一記憶サブシステム）１００Ａに送信する。また、例えば、第三記憶サブシステム１００Ｃは、パス管理データ５００Ｃにおいて、ミラーＩＤ「２」に関連したＰＪＮＬＶＯＬ−ＩＤ、ＰＶＯＬ−ＩＤ及び正記憶サブシステムＩＤと、ＳＪＮＬＶＯＬ−ＩＤ、ＳＶＯＬ−ＩＤ及び副記憶サブシステムＩＤとを入れ替える。また、例えば、第三記憶サブシステム１００Ｃは、第一記憶サブシステム１００Ｂのコピー反転処理によって受信したＪＮＬ生成更新番号を、反転後のＰＪＮＬＶＯＬ６Ｃ１に対応付けてパス管理データ５００Ａに設定する。
【０２６３】
第三記憶サブシステム１００ＣからＪＮＬコピー反転指示を受信した第一記憶サブシステム１００Ａは、その指示に応答して、コピー反転処理を実行する（Ｓ２１４Ａ）。具体的には、例えば、第一記憶サブシステム１００Ａは、パス管理データ５００Ａを参照し、ＰＪＮＬＶＯＬ６Ａ３に関するＪＮＬ生成更新番号（例えば更新番号「１６」）を第三記憶サブシステム１００Ｃに通知する。また、例えば、第一記憶サブシステム１００Ａは、パス管理データ５００Ａにおいて、ミラーＩＤ「２」に関連したＰＪＮＬＶＯＬ−ＩＤ、ＰＶＯＬ−ＩＤ及び正記憶サブシステムＩＤと、ＳＪＮＬＶＯＬ−ＩＤ、ＳＶＯＬ−ＩＤ及び副記憶サブシステムＩＤとを入れ替える。また、第一記憶サブシステム１００Ａは、反転後のＰＪＮＬＶＯＬ６Ｃ１に対するＪＮＬリード命令を第三記憶サブシステム１００Ｃに送信し、それにより、ＰＪＮＬＶＯＬ６Ｃ１内のＪＮＬを読み出し、そのＪＮＬを反転後のＳＪＮＬＶＯＬ６Ａ３に格納してもよい。
【０２６４】
その後、第三記憶サブシステム１００Ｃは、第一記憶サブシステム１００Ａから反転失敗を受信した場合、第三ホスト端末１８０Ｃに反転失敗を通知し、一方、第一記憶サブシステム１００Ａから反転成功を受信した場合、第三ホスト端末１８０Ｃに、使用可能通知を送信する（Ｓ２１５）。なお、後者の場合、第三記憶サブシステム１００Ｃは、第三ホスト端末１８０ＣがＶＯＬ６Ｃ２に対するライト命令を送信できるよう、ＶＯＬ６Ｃ２のＶＯＬ−ＩＤを第三ホスト端末１８０Ｃに通知してもよい。
【０２６５】
第三ホスト端末１８０Ｃは、反転失敗を第三記憶サブシステム１００Ｃから受信した場合、ライトデータの生成やライト命令の送信を行わない。
【０２６６】
一方、反転成功が第三ホスト端末１８０Ｃに送信された場合、図３２に示した、新たなマルチホップ方式に従う複製処理が行われる。具体的には、例えば、反転後のＰＶＯＬ６Ｃ２を含んだＶＯＬグループでは、以下の複製処理が行われる。
【０２６７】
すなわち、第三ホスト端末１８０Ｃは、ライトデータを生成し、生成したライトデータと、反転後のＰＶＯＬ６Ｃ２のＶＯＬ−ＩＤを有するライト命令とを、第三記憶サブシステム１００Ｃに送信する。第三記憶サブシステム１００Ｃは、受信したライトデータをＰＶＯＬ６Ｃ２に格納し、且つ、そのライトデータと、パス管理データ５００Ｃに設定されたＪＮＬ生成更新番号（ＰＪＮＬＶＯＬ６Ｃ１に対応したＪＮＬ生成更新番号）とを含んだＪＮＬを生成し、そのＪＮＬをＰＪＮＬＶＯＬ６Ｃ１に格納する。第一記憶サブシステム１００Ａは、ＰＪＮＬＶＯＬ６Ｃ１に対するＪＮＬリード命令を第三記憶サブシステム１００Ｃに送信し、それに応答して読み出されたＪＮＬを、ＳＪＮＬＶＯＬ６Ａ３に格納する。また、第一記憶サブシステム１００Ａは、ＳＪＮＬＶＯＬ６Ａ３へのＪＮＬに含まれたライトデータを、ＳＰＶＯＬ６Ａ１に格納し、且つ、そのライトデータと、パス管理データ５００Ａに設定されたＪＮＬ生成更新番号（ＰＪＮＬＶＯＬ６Ａ２に対応したＪＮＬ生成更新番号）とを含んだＪＮＬを生成し、そのＪＮＬをＰＪＮＬＶＯＬ６Ａ２に格納する。以後、ＰＪＮＬＶＯＬ６Ａ２からＳＪＮＬＶＯＬ６Ｂ１へＪＮＬが複製され、且つ、そのＪＮＬ内のライトデータがＳＶＯＬ６Ｂ２にリストアされる。
【０２６８】
以上、この第二実施例の第一変形例では、第二ホスト端末１８０Ｂで障害が発生した場合には、全ての記憶サブシステム間で複製方向が自動的に反転されることにより、新たなマルチホップ方式が自動的に構築され、その新たなマルチホップ方式に従う複製処理が行われる。これにより、第二ホスト端末１８０Ｂで障害が発生しても、データ処理システム１全体がダウンすることが無いので、信頼性の高い複製処理が維持される。なお、この第一変形例を読めば、後述する図３６のマルチホップ方式でも、全ての記憶サブシステム間の複製方向（特にＪＮＬの複製方向、換言すれば、ＪＮＬＶＯＬの属性）を反転させることにより、新たなマルチホップ方式を構築することができる。
【０２６９】
（Ｂ）第二実施例の第二変形例。
【０２７０】
図３４は、図３０Ａに示したマルチホップ方式に従う複製処理において、第一記憶サブシステム１００Ａで障害が発生した後の複製処理の概要を示し、図３５は、第一記憶サブシステム１００Ａで障害が発生した場合に行われる処理の流れを示す。
【０２７１】
第一記憶サブシステム１００Ａで障害が発生した場合（Ｓ２２０）、そのことは、第一実施例の第二変形例と同様の方法で検出される。第一記憶サブシステム１００Ａで障害が発生したことが検出された場合、ＶＯＬグループの再構築処理が行われる（Ｓ２２１）。このＳ２２１の処理は、上述したＳ１１２（図２６参照）と同様である。
【０２７２】
第二記憶サブシステム１００Ｂは、パス管理データ５００Ｂに、ＰＪＮＬＶＯＬ６Ｂ１とＳＪＮＬＶＯＬ６Ｃ１とによる新たなミラーペアに関する情報を追記する。また、第二記憶サブシステム１００Ｂは、ＳＪＮＬＶＯＬ６Ｃ１のミラーペア相手を第二ＰＪＮＬＶＯＬ６Ａ３からＰＪＮＬＶＯＬ６Ｂ１に変更し、且つ、ＳＶＯＬ６Ｃ２のＶＯＬペア相手をＰＶＯＬ６Ａ１からＰＶＯＬ６Ｂ２に変更することのペア相手変更指示を、第三記憶サブシステム１００Ｃに送信する。第三記憶サブシステム１００Ｃは、第二記憶サブシステム１００Ｂからのペア相手変更指示に応答して、パス管理データ５００Ｃの内容を、ＳＪＮＬＶＯＬ６Ｃ１のミラーペア相手がＰＪＮＬＶＯＬ６Ｂ１であり、且つ、ＳＶＯＬ６Ｃ２のＶＯＬペア相手がＰＶＯＬ６Ｂ２であることを表す内容に更新する。
【０２７３】
以上の一連の処理により、複製スタートＶＯＬをＶＯＬ６Ｂ２とし、中継ＪＮＬＶＯＬを６Ｂ１及び６Ｃ１とし、複製ゴールＶＯＬをＶＯＬ６Ｃ２とした新たなＶＯＬグループが構築される。この後、その新たなＶＯＬグループに従う処理が実行される。例えば、第二記憶サブシステム１００Ｂは、新たなＶＯＬグループ構築後、ＰＪＮＬＶＯＬ６Ｂ１に格納するＪＮＬを初めて生成する場合、そのＪＮＬには、ＰＪＮＬＶＯＬ６Ｂ１中の一以上のＪＮＬのうちの最新の更新番号の次の更新番号（例えば「１６」）を含める。また、第二記憶サブシステム１００Ｂは、新たなＶＯＬグループ構築後、ＰＪＮＬＶＯＬ６Ｂ１内のＪＮＬを初めて読み出して第三記憶サブシステム１００Ｃに送信する場合、第三記憶サブシステム１００Ｃに指定された更新番号を有するＪＮＬか、或いは、ＰＪＮＬＶＯＬ６Ｂ１中の一以上のＪＮＬのうち最も古い更新番号を有するＪＮＬを読み出して、第三記憶サブシステム１００Ｃに送信する。第三記憶サブシステム１００Ｃは、その最も古い更新番号を有するＪＮＬを受信した場合、その更新番号を含んだＪＮＬがＳＪＮＬＶＯＬ６Ｃ１に存在する場合（又はそのＪＮＬに基づくリストア処理が済んでいた場合）には、その受信したＪＮＬを破棄する。また、第三記憶サブシステム１００Ｃは、ＪＮＬを受信した場合、そのＪＮＬ中の更新番号が、ＳＪＮＬＶＯＬ６Ｃ１中の一以上のＪＮＬの最新の更新番号（例えば「７」）の次の番号（例えば「８」）である場合には、そのＪＮＬをＳＪＮＬＶＯＬ６Ｃ１に格納する。また、第三記憶サブシステム１００Ｃは、最も古い更新番号を有するＪＮＬを受信した場合、その最も古い更新番号が、ＳＪＮＬＶＯＬ６Ｃ１中の一以上のＪＮＬの最新の更新番号（例えば「７」）の次の番号よりも大きい番号（例えば「９」）である場合には、複製処理を停止する。連続した更新番号順のリストア処理が行えないためである。
【０２７４】
以上、この第二実施例の第二変形例では、第一記憶サブシステム１００Ａで障害が発生した場合には、第一記憶サブシステム１００Ａに備えられるＶＯＬを除去した新たなＶＯＬグループが再構築され、その新たなＶＯＬグループに従って、複製処理が継続される。
【０２７５】
（Ｃ）第二実施例の第三変形例。
【０２７６】
図３６は、第二実施例の第三変形例に係るマルチホップ方式に従う複製処理の概要を示す。
【０２７７】
この第三変形例では、ＪＮＬＶＯＬ６Ａ２が、ＳＪＮＬＶＯＬとＰＪＮＬＶＯＬの両方の属性を兼ね備えたＳＰＪＮＬＶＯＬとなり、そのＳＰＪＮＬＶＯＬ６Ａ２に対して、ＳＶＯＬ６Ａ１と、ＳＪＮＬＶＯＬ６Ｃ１が対応付けられる。この場合、ＰＪＮＬＶＯＬ６Ｂ１からＳＰＪＮＬＶＯＬ６Ａ２へのＪＮＬに含まれているライトデータが、ＳＶＯＬ６Ａ１にリストアされ、且つ、ＳＰＪＮＬＶＯＬ６Ａ２へのＪＮＬが、ＳＪＮＬＶＯＬ６Ｃ１へ複製される。
【０２７８】
この第三変形例によれば、第一記憶サブシステム１００Ａは、ＪＮＬを作成する必要がなくなるので、第一記憶サブシステム１００Ａの負荷を軽減することができる。また、この第三変形例によれば、ＪＮＬＶＯＬ６Ａ３が不要になるので、記憶容量を削減することができる。
【０２７９】
以上が、この第二実施例の変形例についての説明である。なお、これまでの説明を読めば、記憶サブシステム１００の数が四以上の場合のマルチホップ方式を構築することが可能である。例えば、図３０Ａについての説明を読めば、図３７Ａに例示するマルチホップ方式を構築することは可能である。また、図３６についての説明を読めば、図３７Ｂに例示するマルチホップ方式を構築することは可能である。また、図３２及び図３３についての説明を読めば、例えば第二ホスト端末１８０Ｂで障害が発生した場合に、図３７Ａに例示したマルチホップ方式から図３８Ａに例示する別のマルチホップ方式に切り替えるための仕組みを構築することが可能である。また、図３４及び図３５についての説明を読めば、例えば第一記憶サブシステム１００Ａで障害が発生した場合に、図３７Ａに例示したマルチホップ方式から図３８Ｂに例示するまた別のマルチホップ方式に切り替えるための仕組みを構築することが可能である。
【実施例３】
【０２８０】
次に、本発明の一実施形態の第三実施例について説明する。この第三実施例は、上述した実施形態及び第一実施例〜第二実施例のうちの少なくとも一つを実現するための各種情報を設定するための方法例に関する。以下、その方法例が採用された場合に使用されるＧＵＩ（グラフィカルユーザインタフェース）画面について説明する。なお、以下に説明するＧＵＩ画面は、ＳＶＰ２８１Ａ〜２８１Ｃ或いは管理端末１０９にインストールされているソフトウェアによって提供されるＧＵＩ画面であるとする。また、以下の説明では、第一サイト１から第二サイト２にかけてのＶＯＬグループを作成する場合を例に採るが、その説明は、別のサイトとまた別のサイトとにかけてのＶＯＬグループを作成する場合にも適用することができる。
【０２８１】
図３９Ａは、第一のＧＵＩ画面の一例である。
【０２８２】
この第一のＧＵＩ画面は、ペアとなるＶＯＬの指定や、ペアの状態の確認を行うための画面である。この第一のＧＵＩ画面において、参照番号５００１が指すメニュー「Paircreate」が選択された場合、以下の第二のＧＵＩ画面が表示され、ＶＯＬグループの作成が可能となる。
【０２８３】
図３９Ｂは、第二のＧＵＩ画面の一例である。
【０２８４】
第二のＧＵＩ画面は、ＶＯＬグループに関する情報を入力するための画面である。例えば、参照番号５００２で示す欄には、第一サイト８４０ＡのライトデータＶＯＬ６Ａ１をＰＶＯＬとした場合のＶＯＬペア相手に関する情報、例えば、第二サイト１４０ＢのライトデータＶＯＬ６Ｂ２に関する情報を入力することができる。また、参照番号５００３で示す欄には、第一サイト８４０ＡのライトデータＶＯＬ６Ａ１（ＰＶＯＬ）に対応付けられるＪＮＬＶＯＬ（ＰＪＮＬＶＯＬ）６Ａ２に関する情報を入力することができる。また、参照番号５００５で示す欄には、ＪＮＬＶＯＬ６Ａ２とミラーペアを構成し、且つ、ライトデータＶＯＬ６Ｂ２に対応付けられるＪＮＬＶＯＬ（ＳＪＮＬＶＯＬ）６Ｂ１に関する情報を入力することができる。また、参照番号５００４で示す欄には、そのミラーペアのミラーＩＤを入力することができる。また、参照番号５００６で示す欄には、ペア相手ＶＯＬ６Ｂ２及び６Ｂ１を備える第二記憶サブシステム１００Ｂに関する情報を入力することができる。これらの情報が入力されて、「ＳＥＴ」ボタン５００７が押されると、例えば管理端末１０９からＳＶＰ２８１Ａ及び２８１Ｂを介して第一及び第二記憶サブシステム１００Ａ、１００Ｂにコピー実行指示が入力され、それにより、例えば、図１０に例示した初期コピー処理が実行される。また、入力された情報に基づいて、ボリューム管理データ４００Ａ及び４００Ｂや、パス管理データ５００Ａ及び５００Ｂの内容が更新される。
【０２８５】
以上、本発明の好適な実施形態及び幾つかの実施例を説明したが、本発明は、それらの実施形態及び実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０２８６】
例えば、記憶サブシステムの数が四以上になれば、マルチターゲット方式とマルチホップ方式の両方が採用されたデータ処理システムを構築することができる。
【０２８７】
また、例えば、第一実施例又は第二実施例の第二変形例等において、記憶サブシステム１００は、或る別の記憶サブシステム１００にＪＮＬリード命令を送信することにより、その或る記憶サブシステム１００から或るＪＮＬを受信し、その受信したＪＮＬ中の更新番号が、自分が備えるＳＪＮＬＶＯＬ中における最新の更新番号の次の更新番号よりも大きな番号（又は、その最新の更新番号以下の番号）である場合、その受信したＪＮＬを破棄し、また別の記憶サブシステム１００にＪＮＬリード命令（所望の更新番号の指定を含んでいても良い）を送信することにより、自分が備えるＳＪＮＬＶＯＬ中における最新の更新番号の次の更新番号（つまり所望の更新番号）を含んだＪＮＬを受信することを試みても良い。また、その際、或る記憶サブシステム１００は、より下流側に存在する別の記憶サブシステム１００に、ＪＮＬリード命令を送信しても良い。
【０２８８】
また、例えば、データ処理システム１に備えられる各記憶サブシステム１００の制御情報１４１には、自分及び／又は他の記憶サブシステム１００が複製経路においてどの位置にいるかを表す位置データ（例えば、記憶サブシステムＩＤに対応付けられた位置データ）が含められていても良い。記憶サブシステム１００は、一以上の位置データを参照することで、どの記憶サブシステム１００が複製経路のどの位置にいるかを特定することができる。また、この場合、記憶サブシステム１００は、例えば、自分が備えるＳＪＮＬＶＯＬ中における最新の更新番号の次の更新番号（つまり所望の更新番号）を含んだＪＮＬを或る記憶サブシステム１００から受信することに失敗した場合、自分が備える制御情報１４１を参照して、上記或る記憶サブシステム１００よりも下流側に存在する別の記憶サブシステム（例えば、最下流側に存在する記憶サブシステム）１００を特定し、特定された別の記憶サブシステム１００から、所望の更新番号を含んだＪＮＬを受信することを試みても良い。これは、例えば、ＪＮＬＶＯＬにＪＮＬが満杯になってしまったときに、古いＪＮＬから削除されるようになっている場合においては、特に、マルチホップ方式で有効であると考えられる。なぜなら、マルチホップ方式では、上流側よりも下流側に存在する記憶サブシステム１００の方が、より古い更新番号を含んだＪＮＬを保持している可能性が高いためである。
【０２８９】
また、例えば、ホスト端末又は記憶サブシステム等で障害が発生したために、複製経路及び複製方向の少なくとも一方が再構築される場合、記憶サブシステム１００は、自分が備えるＶＯＬに対応付ける新たな複製元ＶＯＬ又は複製先ＶＯＬを探し、自分が備える制御情報１４１の内容を、そのＶＯＬに新たな複製元ＶＯＬ又は複製先ＶＯＬが対応付けられた内容に更新することができる。その場合、新たな複製元ＶＯＬ又は複製先ＶＯＬは、以下の方法により決定することができる。例えば、制御情報１４１に、データ処理システム１における全ての複製経路及び複製方向に関する情報（例えば、複製方向に並んだ複数のＶＯＬＩＤ及び記憶サブシステムＩＤ）が登録されている場合には、記憶サブシステムは、その情報を参照することにより、新たな複製元ＶＯＬ又は複製先ＶＯＬを決定することができる。具体的には、例えば、第二記憶サブシステム１００Ｂは、第一記憶サブシステム１００Ａで障害が発生した場合には、上記全ての複製経路及び複製方向に関する情報が登録された第二制御情報１４１Ｂを参照し、複製先としての属性を有するＪＮＬＶＯＬ６Ｃ１を選択して、ＰＪＮＬＶＯＬ６Ｂ１に対し、ＳＪＮＬＶＯＬ６Ｃ１を対応付けても良い。
【０２９０】
また、例えば、記憶サブシステム１００が、ＪＮＬリード命令（又はＪＮＬライト命令）を送信するタイミングとしては、その記憶サブシステム１００の負荷（例えばＣＰＵ使用率）が一定の負荷以下の場合などが考えられる。
【０２９１】
また、例えば、第一サイト１４０Ａを第二サイト１４０Ｂにテイクオーバすることができるが、そのテイクオーバが実行されるための条件として、例えば、以下の（Ａ）及び（Ｂ）の条件を採用することができる。
【０２９２】
（Ａ）外部（構成）的条件
第一サイト１４０Ａ及び第二サイト１４０Ｂのインフラが正常であること。また、テイクオーバ先である第二サイト１４０Ｂに、少なくとも一つのホスト端末が接続されていること。ホスト端末は、第二サイト１４０Ｂ（例えばそのうちの記憶サブシステム１００Ｂ）にテイクオーバ指示を行うことができれば、どんなホスト端末でもよい。
【０２９３】
（Ｂ）内部（処理）的条件
テイクオーバを行う前の第一サイト１４０ＡにおけるＰＶＯＬ内の更新状況（例えば、ＰＶＯＬ内に最後に書かれたライトデータに対応する更新番号）と、第二サイト１４０ＢにおけるＳＶＯＬ内の更新状況（例えば、ＳＶＯＬ内に最後にリストアされたライトデータに対応する更新番号）が同じになった後にテイクオーバを行う。情報の整合（同一）性を保つ為ためである。なお、例えば、第一サイト１４０Ａで古いＪＮＬが廃棄されてしまっていて、第一サイト１４０ＡにおけるＰＶＯＬ内の更新状況と第二サイト１４０ＢにおけるＳＶＯＬ内の更新状況とを同一にできない場合には、第二サイト１４０Ｂの記憶サブシステム１００Ｂは、テイクオーバを中止してもよいし、或いは、別のサイトの別の記憶サブシステムにアクセスし、第一サイト１４０Ａで廃棄された古いＪＮＬをその別の記憶サブシステムから取得して、第一サイト１４０Ａと更新状況を同じにするようにしてもよい。
【図面の簡単な説明】
【０２９４】
【図１】図１Ａは、本発明の一実施形態に係るデータ処理システムが行う第一の複製処理の概要を示す。図１Ｂは、そのデータ処理システムが行う第二の複製処理の概要を示す。
【図２】図２は、更新データ４の構成例を示す。
【図３】図３は、ライトデータＶＯＬ及びＪＮＬＶＯＬの構成例であって、特に、図２に例示した更新データ４が表す構成例を示す。
【図４】図４は、本発明の一実施形態に係るデータ処理システム１の構成例を示す。
【図５】図５は、制御情報１４１Ａ〜１４１Ｃの各々の構成例を示す。
【図６】図６Ａは、図１Ａに例示したマルチターゲット方式が採用された場合のＶＯＬ管理データ４００Ａの構成例を示す。図６Ｂは、図１Ｂに例示したマルチホップ方式が採用された場合のＶＯＬ管理データ４００Ａの構成例を示す。
【図７】図７Ａは、図１Ａに例示したマルチターゲット方式が採用された場合のパス管理データ５００Ａの構成例を示す。図７Ｂは、図１Ｂに例示したマルチホップ方式が採用された場合のパス管理データ５００Ａの構成例を示す。
【図８】図８は、ポインタ管理データ７００の構成例を示す。
【図９】図９は、図８に例示したポインタ管理データ７００から特定されるＪＮＬＶＯＬ構成を示す。
【図１０】図１０は、初期コピー処理のフローチャートである。
【図１１】図１１は、第一の記憶サブシステム１００Ａが行う命令受信処理２１０の流れの概要を示す。
【図１２】図１２は、命令受信処理２１０のフローチャートを示す。
【図１３】図１３は、第一記憶サブシステム１００Ａが行うＪＮＬ作成処理のフローチャートを示す。
【図１４】図１４は、本発明の一実施形態のＪＮＬリード受信処理を説明する図である。
【図１５】図１５は、本発明の一実施形態のＪＮＬリード受信処理のフローチャートである。
【図１６】図１６は、本発明の一実施形態のＪＮＬリード命令処理を説明する図である。
【図１７】図１７は、本発明の一実施形態のＪＮＬリード命令処理のフローチャートである。
【図１８】図１８は、本発明の一実施形態のＪＮＬ格納処理のフローチャートである。
【図１９】図１９は、本発明の一実施形態のリストア処理を説明する図である。
【図２０】図２０は、本発明の一実施形態のリストア処理のフローチャートである。
【図２１】図２１Ａは、本発明の一実施形態の第一実施例に係るデータ処理システムで通常時に行われる複製処理の概要を示す。図２１Ｂは、そのデータ処理システムにおいて第一ホスト端末で障害が発生した後の複製処理の概要を示す。図２２は、第一ホスト端末で障害が発生した場合に行われる、マルチターゲット方式からマルチホップ方式への切り替え処理の流れを示す。
【図２２】図２２は、第一ホスト端末で障害が発生した場合に行われる、マルチターゲット方式からマルチホップ方式への切り替え処理の流れを示す。
【図２３】図２３は、図２１Ａに示したマルチターゲット方式に従う複製処理が行われている際に、第一変形例において、第一ホスト端末１８０Ａで障害が発生した後の複製処理の概要を示す。
【図２４】図２４は、図２１Ａに示したマルチターゲット方式に従う複製処理が行われている際に、第一ホスト端末１８０Ａで障害が発生した場合に行われる、マルチターゲット方式から別のマルチターゲット方式への切り替え処理の流れを示す。
【図２５】図２５は、図２１Ａに示したマルチターゲット方式に従う複製処理において、第一記憶サブシステム１００Ａで障害が発生した後の複製処理の概要を示す。
【図２６】図２６は、図２１Ａに示したマルチターゲット方式に従う複製処理において、第一記憶サブシステム１００Ａで障害が発生した場合に行われる処理の流れを示す。
【図２７】図２７は、本発明の第一実施例の第三変形例に係るマルチターゲット方式に従う複製処理の概要を示す。
【図２８】図２８Ａは、図２１Ａに示したマルチターゲット方式に従う複製処理において、第一記憶サブシステム１００Ａから第二記憶サブシステム１００ＢへのＪＮＬの複製を行うことができなくなった場合の例を示す。図２８Ｂは、その場合が起こる原因の具体例を示す。
【図２９】図２９は、本発明の第一実施例の第五変形例に係るマルチターゲット方式に従う複製処理の概要を示す。
【図３０】図３０Ａは、本発明の一実施形態の第二実施例に係るデータ処理システムで通常時に行われる、マルチホップ方式に従う複製処理の概要を示す。図３０Ｂは、そのデータ処理システムにおいて第二ホスト端末で障害が発生した後の複製処理の概要を示す。
【図３１】図３１は、図３０Ａの複製処理の際に第二ホスト端末で障害が発生した場合に行われる、マルチホップ方式からマルチターゲット方式への切り替え処理の流れを示す。
【図３２】図３２は、図３０Ａに示したマルチホップ方式に従う複製処理が行われている際に、この第一変形例において、第二ホスト端末１８０Ｂで障害が発生した後の複製処理の概要を示し、
【図３３】図３３は、図３０Ａの複製処理の際に第二ホスト端末１８０Ｂで障害が発生した場合に行われる、マルチホップ方式から別のマルチホップ方式への切り替え処理の流れを示す。
【図３４】図３４は、図３０Ａに示したマルチホップ方式に従う複製処理において、第一記憶サブシステム１００Ａで障害が発生した後の複製処理の概要を示す。
【図３５】図３５は、図３０Ａに示したマルチホップ方式に従う複製処理において第一記憶サブシステム１００Ａで障害が発生した場合に行われる処理の流れを示す。
【図３６】図３６は、本発明の第二実施例の第三変形例に係るマルチホップ方式に従う複製処理の概要を示す。
【図３７】図３７Ａは、本発明の第二実施例の第四変形例に係るマルチホップ方式に従う複製処理の概要を示す。図３７Ｂは、本発明の第二実施例の第五変形例に係るマルチホップ方式に従う複製処理の概要を示す。
【図３８】図３８Ａは、本発明の第二実施例の第六変形例に係るマルチホップ方式に従う複製処理の概要を示す。図３８Ｂは、本発明の第二実施例の第七変形例に係るマルチホップ方式に従う複製処理の概要を示す。
【図３９】図３９Ａは、本発明の第三実施例に係る第一のＧＵＩ画面の構成例を示す。図３９Ｂは、本発明の第三実施例に係る第二のＧＵＩ画面の構成例を示す。
【符号の説明】
【０２９５】
１…データ処理システム  １２…ミラーペア  １４…ＶＯＬペア  １６…ＶＯＬグループ  １００Ａ、１００Ｂ、１００Ｃ…記憶サブシステム  １０１Ａ、１０１Ｃ、１０１Ｃ…制御装置  １１０Ａ、１１０Ｂ、１１０Ｃ…チャネルアダプタ（ＣＨＡ）  １２０Ａ、１２０Ｂ、１２０Ｃ…ディスクアダプタ（ＤＫＡ）  １４１Ａ、１４１Ｂ、１４１Ｃ…制御情報  ６Ａ、６Ｂ、６Ｃ…論理ボリューム
【図１】
2006065629.tif 000003
【図２】
2006065629.tif 000004
【図３】
2006065629.tif 000005
【図４】
2006065629.tif 000006
【図５】
2006065629.tif 000007
【図６】
2006065629.tif 000008
【図７】
2006065629.tif 000009
【図８】
2006065629.tif 000010
【図９】
2006065629.tif 000011
【図１０】
2006065629.tif 000012
【図１１】
2006065629.tif 000013
【図１２】
2006065629.tif 000014
【図１３】
2006065629.tif 000015
【図１４】
2006065629.tif 000016
【図１５】
2006065629.tif 000017
【図１６】
2006065629.tif 000018
【図１７】
2006065629.tif 000019
【図１８】
2006065629.tif 000020
【図１９】
2006065629.tif 000021
【図２０】
2006065629.tif 000022
【図２１】
2006065629.tif 000023
【図２２】
2006065629.tif 000024
【図２３】
2006065629.tif 000025
【図２４】
2006065629.tif 000026
【図２５】
2006065629.tif 000027
【図２６】
2006065629.tif 000028
【図２７】
2006065629.tif 000029
【図２８】
2006065629.tif 000030
【図２９】
2006065629.tif 000031
【図３０】
2006065629.tif 000032
【図３１】
2006065629.tif 000033
【図３２】
2006065629.tif 000034
【図３３】
2006065629.tif 000035
【図３４】
2006065629.tif 000036
【図３５】
2006065629.tif 000037
【図３６】
2006065629.tif 000038
【図３７】
2006065629.tif 000039
【図３８】
2006065629.tif 000040
【図３９】
2006065629.tif 000041