(57)【要約】【課題】  計算機が使用するデータをストレージシステムが格納し、ストレージシステムがこのデータを別のストレージシステムに転送して別のストレージシステムにデータの複製を保持するシステムにおいて、ライトデータにライト時刻を付与しない計算機がストレージシステムに書き込んだデータについても、複製の整合性を保持する。【解決手段】  正ストレージシステムは、ライト要求にライト時刻が付与されている場合はライト時刻を記録すると共に受領したライトデータにこのライト時刻を付与し、ライト時刻が付与されていない場合は記録されているライト時刻を受領したライトデータに付与し、ライト時刻付きのライトデータを別のストレージシステムへ転送する。副ストレージシステムはライト時刻に基づき副ストレージシステム内の論理ボリュームへのライトデータを格納する。【選択図】  図１
2005190456.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置システム間でデータをコピーするシステムであって、
計算機に接続され、計算機から受信するデータが格納される第一の論理ボリュームを有する第一の記憶装置システムと、
前記第一の記憶装置システムに接続され、前記第一の論理ボリュームに格納されるデータの複製データが格納される第二の論理ボリュームを有する第二の記憶装置システムとを有し、
前記第一の記憶装置システムは、計算機から受信したライトデータに時刻情報を付与し、ライトデータと時刻情報とを前記第二の記憶装置システムに送信し、
前記第二の記憶装置システムは、前記第一の記憶装置システムから受信したライトデータを、該ライトデータに付与されている時刻情報に基づいた順序で前記第二の論理ボリュームに格納することを特徴とするシステム。
【請求項２】
請求項１記載のシステムにおいて、
前記第一の記憶装置システムは、
計算機から受信したライト要求若しくはライトデータにライト時刻が付与されている場合には、受信したライト時刻を記録すると共に、受信したライト時刻を受信したライトデータに付与して前記第二の記憶装置システムに送信し、
計算機から受信したライト要求若しくはライトデータにライト時刻が付与されていない場合には、受信したライトデータに前記第一の記憶装置システムが記録しているライト時刻を付与して前記第二の記憶装置システムに送信することを特徴とするシステム。
【請求項３】
請求項２記載のシステムにおいて、
前記第一の記憶装置システムは複数の第一の論理ボリュームを有しており、
前記第二の記憶装置システムは複数の第二の論理ボリュームを有しており、
前記複数の第二の論理ボリュームは各々、複数の論理ボリュームグループのいずれかに属しており、
前記第二の記憶装置システムは、前記複数の論理ボリュームグループ各々について、論理ボリュームグループ内の論理ボリュームに格納されるライトデータに付与されているライト時刻のうち最も現時刻に近いライト時刻を記録し、
記録されているライト時刻のうち最も以前のライト時刻より前の時刻を示すライト時刻が付与されたライトデータを、前記第二の論理ボリュームに格納することを特徴とするシステム。
【請求項４】
請求項３記載のシステムにおいて、
前記第一の記憶装置システムは更に、論理ボリュームグループごとに、論理ボリュームグループに属する論理ボリュームに対するライトーデータに、シーケンシャル番号を付与して前記第二の記憶装置システムに送信し、
前記第二の記憶装置システムは、論理ボリュームグループ毎に、ライトデータに付与されているシーケンシャル番号順に第二の論理ボリュームにライトデータを格納することを特徴とするシステム。
【請求項５】
請求項４記載のシステムにおいて、
前記第二の記憶装置システムは、論理ボリュームグループごとに、第二の論理ボリュームに格納されるライトデータに付与されているシーケンシャル番号に抜けがないよう、シーケンシャル番号順にライトデータを第二の論理ボリュームに格納することを特徴とするシステム。
【請求項６】
請求項１記載のシステムにおいて、
前記第一の記憶装置システムがライトデータに付与する時刻情報は、ライトデータの受信順にライトデータに付与されるシーケンシャルな番号であることを特徴とするシステム。
【請求項７】
複数の記憶装置システム間でデータをコピーするシステムであって、
計算機に接続され、計算機から受信するデータが格納される第一の論理ボリュームを有する第一の記憶装置システムと、
前記第一の論理ボリュームに格納されるデータの複製データが格納される第二の論理ボリュームを有する第二の記憶装置システムと、
前記第一の論理ボリュームに格納されるデータの複製データが格納される第三の論理ボリュームを有する第三の記憶装置システムとを有し、
前記第一の記憶装置システムは、計算機から受信したライトデータを前記第一の論理ボリュームに格納し、更に計算機から受信したライトデータを前記第二の記憶装置システムに送信し、
前記第二の記憶装置システムは、前記第一の記憶装置システムから受信したライトデータに時刻情報を付与して前記第三の記憶装置システムに送信し、
前記第三の記憶装置システムは、前記第二の記憶装置システムから受信したライトデータを、ライトデータに付与されている時刻情報に従って前記第三の論理ボリュームに格納することを特徴とするシステム。
【請求項８】
請求項７記載のシステムであって、
前記第二の記憶装置システムがライトデータに付与する時刻情報は、ライトデータの受信順にライトデータに付与されるシーケンシャルな番号であることを特徴とするシステム。
【請求項９】
請求項７記載のシステムであって、
前記第一の記憶装置システムは、前記第二の記憶装置システムからライトデータの受信報告を受信した後に、計算機に完了報告を通知することを特徴とするシステム。
【請求項１０】
請求項７記載のシステムであって、
前記第一の記憶装置システムは、計算機からのライト要求またはライトデータにライト時刻が付与されていれば、受信したライト時刻を受信したライトデータに付与して前記第二の記憶装置システムに送信し、
前記第二の記憶装置システムは、前記第一の記憶装置システムから受信したライトデータにライト時刻が付与されていれば、受信したライト時刻を記録すると共に、受信したライト時刻を受信したライトデータに付与して前記第三の記憶装置システムに送信し、前記第一の記憶装置システムから受信したライトデータにライト時刻が付与されていなければ前記第二の記憶装置システムに記録されているライト時刻を受信したライトデータに付与して前記第三の記憶装置システムに送信し、
前記第三の記憶装置システムはライトデータに付与されているライト時刻に基づいて、受信したライトデータを前記第三の論理ボリュームに格納することを特徴とするシステム。
【請求項１１】
請求項１０記載のシステムにおいて、
前記第二の記憶装置システムは複数の第二の論理ボリュームを有しており、
前記第三の記憶装置システムは複数の第三の論理ボリュームを有しており、
前記複数の第二の論理ボリューム及び前記複数の第三の論理ボリュームは各々、複数の論理ボリュームグループのいずれかに属しており、
前記第三の記憶装置システムは、前記複数の論理ボリュームグループ各々について、論理ボリュームグループ内の論理ボリュームに格納されるライトデータに付与されているライト時刻のうち最も現時刻に近いライト時刻を記録し、
記録されているライト時刻のうち最も以前のライト時刻より前の時刻を示すライト時刻が付与されたライトデータを、第三の論理ボリュームに格納することを特徴とするシステム。
【請求項１２】
請求項１１記載のシステムにおいて、
前記第二の記憶装置システムは更に、論理ボリュームグループごとに、論理ボリュームグループに属する論理ボリュームに対するライトーデータに、シーケンシャル番号を付与して前記第三の記憶装置システムに送信し、
前記第三の記憶装置システムは、ライトデータに付与されているシーケンシャル番号順に第三の論理ボリュームにライトデータを格納することを特徴とするシステム。
【請求項１３】
複数の記憶装置システム間でデータをコピーするシステムであって、
計算機に接続され、計算機から受信するライトデータを格納する第一の論理ボリュームを有する第一の記憶装置システムと、
前記第一の記憶装置システムに接続され、前記第一の論理ボリュームに格納されるデータの複製データを格納する第二の論理ボリュームを有する第二の記憶装置システムとを有し、
前記第一の記憶装置システムは、
計算機から受信するライトデータにシーケンシャル番号を付与して前記第二の記憶装置システムに送信し、シーケンシャル番号が付与されたマーカを作成してマーカを前記第二の記憶装置システムに送信し、
前記第二の記憶装置システムは、
前記第一の記憶装置システムから受信するライトデータのうち、前記第一の記憶装置システムから受信するマーカに含まれるシーケンシャル番号より小さいシーケンシャル番号が付与されているライトデータを、ライトデータに付与されているシーケンシャル番号順に前記第二の論理ボリュームに格納することを特徴とするシステム。
【請求項１４】
請求項１３記載のシステムにおいて、
前記第一の記憶装置システムは、計算機からの指示に基づいて計算機から受信するライト要求の処理を保留し、計算機からの指示に基づいてシーケンシャル番号が付与されたマーカを作成してマーカを前記第二の記憶装置システムに送信し、マーカを送信した後に保留していたライト要求の処理を再開することを特徴とするシステム。
【請求項１５】
請求項１３記載のシステムにおいて、
前記第一の記憶装置システムは、計算機から前記第一の記憶装置システムへのライト要求の発行が保留されている間に、シーケンシャル番号が付与されたマーカを作成してマーカを前記第二の記憶装置システムに送信することを特徴とするシステム。
【請求項１６】
請求項１３記載のシステムにおいて、
更に複数の第一の記憶装置システムと、複数の第二の記憶装置システムとを有しており、
複数の第一の記憶装置システムは各々、計算機からの指示に応じてシーケンシャル番号を有するマーカを作成し、作成したマーカを前記複数の第二の記憶装置システムのいずれかに送信し、
複数の第二の記憶装置システムは各々、受信したマーカに含まれるシーケンシャル番号より小さいシーケンシャル番号が付与されたライトデータを、シーケンシャル番号順に第二の論理ボリュームに格納することを特徴とするシステム。
【請求項１７】
請求項１３記載のシステムにおいて、
前記複数の第一の記憶装置システムは複数の第一の論理ボリュームを有しており、
前記複数の第二の記憶装置システムは複数の第二の論理ボリュームを有しており、
前記複数の第一の論理ボリューム及び前記複数の第二の論理ボリュームは各々、複数の論理ボリュームグループのいずれかに属しており、
前記第一の記憶装置システムは、論理ボリュームグループ毎に、該論理ボリュームグループに属する論理ボリュームに対するライトデータにシーケンシャル番号を付与して前記第二の記憶装置システムに送信し、論理ボリュームグループ毎にシーケンシャル番号を有するマーカを作成して前記第二の記憶装置システムに送信し、
前記第二の記憶装置システムは、論理ボリュームグループ毎に、該論理ボリュームグループに対応するマーカに含まれるシーケンシャル番号より小さいシーケンシャル番号が付与された、該論理ボリュームグループに属する論理ボリュームに対するライトデータを、第二の論理ボリュームに格納することを特徴とするシステム。
【請求項１８】
複数の記憶装置システム間でデータをコピーするシステムにおいて、
計算機と接続され、計算機から受信するライトデータを格納する第一の論理ボリュームを有する第一の記憶装置システムと、
前記第一の記憶装置システムと接続され、前記第一の論理ボリュームに格納されるデータの複製データが格納される第二の論理ボリュームを有する第二の記憶装置システムと、
前記第二の記憶装置システムと接続され、前記第一の論理ボリュームに格納されるデータの複製データが格納される第三の論理ボリュームを有する第三の記憶装置システムとを有しており、
前記第一の記憶装置システムは、計算機から受信するデータを前記第一の論理ボリュームに格納すると共に、前記第二の記憶装置システムに送信し、
前記第二の記憶装置システムは、前記第一の記憶装置システムから受信するデータにシーケンシャル番号を付与して前記第三の記憶装置システムに送信し、シーケンシャル番号が付与されたマーカを作成してマーカを前記第三の記憶装置システムに送信し、
前記第三の記憶装置システムは、
前記第二の記憶装置システムから受信するデータのうち、前記第二の記憶装置システムから受信するマーカに含まれるシーケンシャル番号より小さいシーケンシャル番号が付与されているデータを、データに付与されているシーケンシャル番号順に前記第三の論理ボリュームに格納することを特徴とするシステム。
【請求項１９】
請求項１８記載のシステムにおいて、
前記第一の記憶装置システムは計算機から受信する指示に基づいて、計算機から受信するライト要求に対する処理を保留し、
前記第一の記憶装置システムは計算機から受信するマーカの作成指示を前記第二の記憶装置システムに転送し、
前記第二の記憶装置システムは前記第一の記憶装置システムから受信したマーカの作成指示に基づいてマーカを作成することを特徴とするシステム。
【請求項２０】
請求項１８記載のシステムにおいて、
前記第二の記憶装置システムは、計算機がライト要求の発行を保留している間にマーカを作成することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機が使用するデータを格納し、計算機からデータの更新を受けるストレージシステムに関し、特に、複数のストレージシステム間でデータの複製を保持する処理に関する。
【背景技術】
【０００２】
特許文献１には、計算機が使用するデータをストレージシステムが格納し、遠隔地に設置された別のストレージシステムにこのデータのコピーを、データのライト順を反映しつつ格納する技術が開示されている。特許文献１に示された処理では、正側のホスト計算機からライトデータを受領した正側のストレージシステムは、ライトデータ受領後直ちに、ライトデータの受領完了を、正側のホスト計算機に報告する。このあと正側のホスト計算機はライトデータのコピーを、正側のストレージシステムから読み出す。このライトデータには、ライトデータについてのライト要求が発行された時刻であるライト時刻が付与されていて、ライトデータが正側のホスト計算機に読み出される際には、ライト時刻も正側のホスト計算機に渡される。さらに正側のホスト計算機はライトデータとライト時刻を副側のホスト計算機に転送する。ライトデータとライト時刻を受け取った副側のホスト計算機は、ライト時刻などの情報を副側のストレージシステムにある制御用のボリュームに書き込み、さらに各ライトデータに付与されたライト時刻を参照してライト時刻順にライトデータを副側のストレージシステムに書き込む。ライト時刻順にライトデータを副側のストレージシステムに書き込むことで、副側のストレージシステムに整合性のあるデータを保持することができる。
【０００３】
ここで、もしライト順を無視してライトデータを副側のストレージシステムに反映（副側のストレージシステムにライトデータを格納することを、以下、データを反映する、とも表現する。）していくと、例えば銀行口座のデータベースにおいて口座Ａから口座Ｂに預金を移す処理において、口座Ａの減額と口座Ｂの増額を１つのトランザクションとして再現できず、例えば副側のストレージシステムにおいて、口座Ａの預金額を減額する前に口座Ｂの預金額を増額している期間が生じ得る。この場合、副側のストレージシステムにおいて口座Ａの預金額が減額される前に、正側のストレージシステムに障害が発生して使用不可能になると、副側のストレージシステムには整合性のないデータが残ることになり、そのあと副側のホスト計算機で業務を引き継いだとしても正しくない処理を行うことになる。従ってライト順を守って副側のストレージシステムにライトデータを格納することにより、整合性のあるデータを保持することができ、関連のあるデータに対する関連のある操作間の順序の正しさが保証される。
【０００４】
特許文献２には、計算機が使用するデータをストレージシステムが格納し、このストレージシステムが格納されたデータを遠隔地に設置された別のストレージシステムにもコピーすることで、一方のストレージシステムが天災や火災などで使用不能になっても別のストレージシステムでデータを保持する技術が開示されている。
【０００５】
特許文献３には、計算機が使用するデータをストレージシステムが格納し、このストレージシステムが格納されたデータを遠隔地に設置された別のストレージシステムにもコピーし、さらにこの別のストレージシステムが受信したデータを第三のストレージシステムにもコピーすることで、データに対するより高いレベルの冗長性を得る技術が開示されている。
【０００６】
【特許文献１】欧州特許出願公開第０６７２９８５号明細書
【特許文献２】米国特許第６０９２０６６号公報
【特許文献３】米国特許第６２０９００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示の技術では、ホスト計算機からのライトデータを副側のストレージシステムに反映する際に、ライトデータにホスト計算機が付与したライト時刻を用いてライト順序を守っているため、ホスト計算機がライトデータにライト時刻を付与しない場合は、副側のストレージシステムに格納しているデータの複製の整合性を保持することができない。いわゆるメインフレームのホスト計算機ではライト要求にライト時刻を付与できるが、いわゆるオープンシステムのホスト計算機ではライト要求にライト時刻を付与しない。従って、特許文献１に開示の技術ではオープンシステムのホスト計算機からのＩ／Ｏに対して、副側のストレージシステムに格納されるデータの複製の整合性を保持することができない。
【０００８】
また特許文献２および特許文献３にも、ホスト計算機にオープンシステムのホスト計算機が含まれている場合の副側のストレージシステムに格納されるデータの複製の整合性保持に関しての開示はない。
【０００９】
そこで、計算機が使用するデータをストレージシステムが格納し、このストレージシステムが格納しているデータを別のストレージシステムに転送して別のストレージシステムでもデータの複製を保持する計算機システムにおいて、オープンシステムのホスト計算機のようにライトデータにライト時刻を付与しないホスト計算機がストレージシステムに書き込むデータに対しても、別のストレージシステム（即ち、副側のストレージシステム）に格納されるデータの複製の整合性を保持する技術を開示する。
【課題を解決するための手段】
【００１０】
システムは、計算機に接続され、計算機から受信するデータが格納される第一の論理ボリュームを有する第一の記憶装置システムと、第一の記憶装置システムに接続され、第一の論理ボリュームに格納されるデータの複製データが格納される第二の論理ボリュームを有する第二の記憶装置システムとを有する。
【００１１】
第一の記憶装置システムは、計算機から受信したライトデータに時刻情報を付与し、ライトデータと時刻情報とを第二の記憶装置システムに送信し、第二の記憶装置システムは、第一の記憶装置システムから受信したライトデータを、該ライトデータに付与されている時刻情報に従って第二の論理ボリュームに格納する。
【発明の効果】
【００１２】
計算機が使用するデータをストレージシステムが格納し、このストレージシステムがデータを別のストレージシステムに転送してデータの複製を別のストレージシステムでも保持する計算機システムにおいて、オープンシステムのホスト計算機のようにライトデータにライト時刻を付与しないホスト計算機がストレージシステムに格納したデータについても、別のストレージシステム（副側のストレージシステム）に格納されるデータの複製の整合性を保持することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を説明する。尚、本発明は以下に説明する実施形態によって限定されるものではない。
【実施例１】
【００１４】
図１は第一の実施形態における計算機システムの構成例を示す図である。
【００１５】
本システムは記憶装置（ストレージシステムともいう。）Ａ１００、メインフレームホスト計算機Ａ（ＭＦＡともいう。）６００、オープンシステムホスト計算機Ａ７００、記憶装置Ｂ１９０、メインフレームホスト計算機Ｂ（ＭＦＢともいう。）６９０、オープンシステムホスト計算機Ｂ７９０からなる。記憶装置Ａ１００とＭＦＡ６００、オープンシステムホストＡ７００はそれぞれＩ／Ｏパス９００で接続されている。記憶装置Ｂ１９０とＭＦＢ６９０、オープンシステムホストＢ７９０もそれぞれＩ／Ｏパス９００で接続されている。ＭＦＢ６９０とオープンシステムホストＢ７９０は、通常時はスタンバイ系である。ＭＦＡ６００とＭＦＢ６９０とオープンシステムホストＡ７００とオープンシステムホストＢ７９０はネットワーク９２０で接続されている。
【００１６】
ＭＦＡ６００とＭＦＢ６９０にはＯＳ６１０とアプリケーションソフトウェア（ＡＰＰ）６２０が存在する。またオープンシステムホストＡ７００とオープンシステムホストＢ７９０にもＯＳ７１０とＡＰＰ７２０が存在する。ＭＦＡ６００、ＭＦＢ６９０、オープンシステムホストＡ７００、若しくはオープンシステムホストＢ７９０のＡＰＰからＯＳを介して発行されるＩ／Ｏ要求がＩ／Ｏパス９００を介して記憶装置Ａ１００や記憶装置Ｂ１９０に発行される。ここではＤＢＭＳなどのソフトウェアもＡＰＰ６２０やＡＰＰ７２０に含む。
【００１７】
記憶装置Ａ１００は制御部２００、制御用メモリ３００、キャッシュ４００を有する。制御部２００はライトデータ受領部Ａ２１０とライトデータ転送部Ａ２２０を備える。制御部２００は制御用メモリ３００にアクセスして、制御用メモリに格納されている情報を利用して後述の処理を行う。キャッシュ４００は主にリードデータやライトデータを格納する高速なメモリであり、記憶装置Ａはこれを使用することによって高いＩ／Ｏ処理性能を実現することができる。尚、これらの部位は耐障害性、可用性のために二重化され、バックアップ電源が用意されていることが望ましい。
【００１８】
記憶装置Ｂ１９０も制御部２００、制御メモリ３００、キャッシュ４００を有する。制御部２００はライトデータ受領部Ｂ２１１とライトデータ反映指示部２３０と、ライトデータ反映部２４０を備える。制御メモリ３００とキャッシュ４００の役割は前述の記憶装置Ａ１００の説明と同様である。
【００１９】
記憶装置Ａ１００と記憶装置Ｂ１９０は、ＭＦＡ６００、オープンシステムホストＡ７００、ＭＦＢ６９０、オープンシステムホストＢ７９０に対し、データの記憶領域として論理ボリューム５００を提供する。１つの論理ボリューム５００は物理的には１つの装置である必要はなく、例えば複数の磁気ディスク装置に分散した記憶領域の集合であってもよい。また論理ボリュームは、例えばミラー構成や、パリティデータを付加したＲＡＩＤ構成などの冗長性を持たせた構成であってもよい。
【００２０】
記憶装置Ａ１００は上記のように論理ボリューム５００を提供するが、ＭＦＡ６００とオープンシステムホストＡ７００とでは、記憶装置Ａ１００が提供する論理ボリューム５００のタイプが異なり、またＩ／Ｏパス９００の論理的および／または物理的インタフェースが異なる。記憶装置Ｂ１９０、ＭＦＢ６９０、オープンシステムホストＢ７９０についても同様である。ＭＦＡ６００からのライト要求６３０には、ライト要求６３０の時刻がライト時刻６５０として含まれているが、オープンシステムホストＡ７００からのライト要求７３０には含まれていない。
【００２１】
記憶装置Ａ１００と記憶装置Ｂ１９０は転送パス９１０で接続されている。記憶装置Ａ１００と記憶装置Ｂ１９０は後述のように一方の論理ボリュームの内容の複製をもう一方の論理ボリュームに保持することができる。本実施例の例では記憶装置Ａ１００の論理ボリューム５００の内容の複製が、記憶装置Ｂ１９０の論理ボリューム５００に保持され、記憶装置Ａ１００の論理ボリューム５００に対して行われた更新の内容は転送パス９１０を介して記憶装置Ｂ１９０に送られ、記憶装置Ｂ１９０の論理ボリューム５００にも格納される。記憶装置Ａ１００と記憶装置Ｂ２００は複製について後述のように、論理ボリューム間の関係を示す管理情報を持ち、これを用いて上記の複製の保持が行われる。論理ボリューム間の関係および後述する論理ボリュームグループの関係はユーザの必要に応じてユーザにより設定される。
【００２２】
本実施例では、論理ボリューム間の関係はグループ化されている。論理ボリュームのグループの一例を表す概念図を図２に示す。破線は論理ボリューム５００間または論理ボリュームグループ間の複製関係、即ち正側（ソースともいう。）と副側（ターゲットともいう。）の対応関係を示している。本実施例ではこのような複数の論理ボリュームを有する論理ボリュームグループの単位で、記憶装置Ａ１００におけるライトデータの順序や、記憶装置間のライトデータの転送や、記憶装置Ｂ１９０における反映を管理していて、また上記のような処理に必要なリソースの割り当ても、論理ボリュームグループ単位で行っている。
【００２３】
もしこれらを個々の論理ボリューム毎に行うと、管理対象が多く管理が煩雑になり、また処理に必要なリソースも処理対象が多いため増大する可能性がある。一方、記憶装置Ａ１００全体で１つの単位としてしまうときめこまやかな管理が行えなくなる。特にメインフレームホストとオープンシステムホストでは論理ボリューム５００に対する性能などの要求が大きく異なるため、これらは別のグループに分けてそれぞれで処理を行うようにし、また処理に対するユーザからの操作やチューニング条件の設定などを別々に受けられるようにすることが好ましい。このような論理ボリュームグループを設けることで、ユーザや業務の必要に応じた、柔軟な複製処理および管理を提供することができる。
【００２４】
続いて、ＭＦＡ６００とオープンシステムホストＡ７００が使用する論理ボリューム５００を異なる論理ボリュームグループに属するようにしている場合において、各論理ボリューム５００へ行われたデータのライトに対する処理と、記憶装置Ｂ１９０へのデータの転送および記憶装置Ｂ１９０におけるデータの反映の処理について説明する。これらの処理によって記憶装置Ａ１００の各論理ボリューム間のライト順序どおりに複製への反映を行い、各複製間の整合性について、メインフレームホストのデータとオープンシステムホストのデータでも共通の整合性を常に維持できるようにする。
【００２５】
図３は、記憶装置Ａ１００が複製を作成している論理ボリューム５００（ソースとなる論理ボリューム５００）に対してＭＦＡ６００またはオープンシステムホストＡ７００からライト要求を受領した場合の処理を示した図である。ライトデータ受領部Ａ２１０はＭＦＡ６００またはオープンシステムホストＡ７００からライト要求を受領する（ステップ１０００）。ライトデータ受領部Ａ２１０は受領したライト要求にライト時刻６５０が含まれていれば（ステップ１００１）、ライトデータをキャッシュ４００に格納し（ステップ１００２）、シーケンシャル番号をライトデータに与えてライトデータ管理情報３３０を作成する（ステップ１００３）。このときライトデータ受領部Ａ２１０はライト時刻６５０をライトデータ管理情報３３０に記録する。またシーケンシャル番号を付与する際に、ライトデータ受領部Ａ２１０は、ライト対象の論理ボリュームが属する論理ボリュームグループのグループ管理情報３１０からシーケンシャル番号を参照し、これに１を加えた値をライトデータのシーケンシャル番号としてライトデータ管理情報３３０に記録し、この新しいシーケンシャル番号をグループ管理情報３１０に記録する。
【００２６】
図４は各論理ボリュームグループのグループ管理情報３１０の一例を示す図である。グループＩＤは記憶装置Ａ１００において論理ボリュームグループを特定するためのＩＤである。シーケンシャル番号は当該論理ボリュームグループに属する論理ボリュームに対するライトデータに連続的に与えられる番号であり、初期値は例えば０で、順次１ずつ増やした番号がライトデータに与えられていく。論理ボリューム数は当該論理ボリュームグループに属している論理ボリュームの数である。論理ボリューム番号は記憶装置Ａ１００において当該論理ボリュームグループに属している論理ボリュームのＩＤである。相手記憶装置ＩＤは、当該論理ボリュームグループと対となる論理ボリュームグループを有し、当該論理ボリュームグループに属する論理ボリュームの内容の複製を格納する記憶装置（本実施例では記憶装置Ｂ１９０）を特定するＩＤ（シリアル番号など）である。相手グループＩＤは相手記憶装置（記憶装置Ｂ１９０）において、当該論理ボリュームグループの対となる論理ボリュームグループ、即ち当該論理ボリュームグループに属する論理ボリュームの内容の複製を格納している論理ボリューム５００（相手論理ボリュームとも呼ぶ。）が属する論理ボリュームグループを特定するＩＤである。
【００２７】
図５は各ライトデータを管理するためのライトデータ管理情報３３０の一例を示す図である。論理ボリュームＩＤはライトデータが格納される論理ボリュームのＩＤである。ライトアドレスは前記論理ボリュームにおける当該ライトデータのライト開始アドレスである。ライトデータ長は当該ライトデータの長さである。ライトデータポインタはキャッシュ４００における当該ライトデータの格納開始アドレスである。シーケンシャル番号はライトデータが書き込まれる論理ボリュームが属する論理ボリュームグループにおいて、ライトデータに連続的に与えられている番号である。ライト時刻については後述する。転送必要ビットは当該ライトデータを記憶装置Ｂに転送する必要があるか否かを示すビットであり、ライトデータ受領部Ａ２１０がライトデータを受領してライトデータ管理情報３３０を作成する際にＯＮにする。ライトデータ管理情報３３０は例えば論理ボリュームグループ毎にリスト管理される。
【００２８】
図３に戻って、ステップ１００４でライトデータ受領部Ａ２１０はライト時刻６５０を制御用メモリ３００にライト時刻情報３４０として記録する。
【００２９】
ステップ１００１でライト要求にライト時刻が含まれていない場合には、ライトデータ受領部Ａ２１０はライトデータをキャッシュ４００に格納し（ステップ１００５）、ライト時刻情報３４０を参照してライトデータにライト時刻を与え、またグループ管理情報３１０を参照してシーケンシャル番号を与えてライトデータ管理情報３３０を作成する（ステップ１００６）。この際ライトデータ受領部Ａ２１０は、ライトデータ管理情報３００のライト時刻にはその時点でライト時刻情報３４０に記録されている時刻を記録し、シーケンシャル番号は前述のステップ１００３と同様の手順で求めて、ライトデータ管理情報３００に記録する。
【００３０】
最後にステップ１００７でＭＦＡ６００またはオープンシステムホストＡ７００にライト完了報告を行う。上記の処理には、キャッシュ４００に格納されたライトデータを論理ボリューム５００の物理的記録媒体へ書き込んだり、記憶装置Ｂ１９０へライトデータを転送したりといった時間のかかる処理は含まれず、これらは後に適当なタイミングで非同期に行う。よってライトデータ受領部Ａ２１０がライト要求を受領してからライト完了を報告するまでの時間は短時間ですみ、ＭＦＡ６００またはオープンシステムホストＡ７００に対する高速な応答を実現することができる。
【００３１】
図６は記憶装置Ａ１００から記憶装置Ｂ１９０へのライトデータの転送処理の一例を示す図である。ライトデータ転送部Ａ２２０はライトデータ管理情報３３０のリストを参照して、転送が必要なライトデータを求め、更にライトデータ管理情報３３０とグループ管理情報３１０と相手論理ボリューム情報３２０を参照して、記憶装置Ｂ１９０へ転送されるライトデータに関する情報を求める（ステップ１１００）。この情報には、ライトデータ管理情報３３０から取得したライトアドレス、ライトデータ長、シーケンシャル番号、ライト時刻と、相手論理ボリューム情報３２０から取得した相手記憶装置ＩＤ、相手論理ボリューム番号と、論理ボリュームＩＤを用いてグループ管理情報３１０から参照した相手グループ番号が含まれる。
【００３２】
図７は各論理ボリュームの相手論理ボリューム情報３２０の一例を示す図である。論理ボリュームＩＤはソース側の論理ボリューム（実施例１では記憶装置Ａが有する論理ボリューム）のＩＤである。相手記憶装置ＩＤは、当該論理ボリュームと対となっており当該論理ボリュームに格納されるデータの複製を格納する論理ボリューム（相手論理ボリュームともいう。）を有する記憶装置（実施例１では記憶装置Ｂ１９０）を特定するＩＤ（シリアル番号など）である。相手論理ボリュームＩＤは相手記憶装置（実施例１では記憶装置Ｂ１９０）において、相手論理ボリューム（即ち、論理ボリュームに格納されるデータの複製を格納するターゲット側の論理ボリューム５００）を特定するＩＤである。
【００３３】
次に図６に戻って、ライトデータ転送部Ａ２２０はライトデータとステップ１１００で求めた情報を記憶装置Ｂ１９０に転送する（ステップ１１０１）。記憶装置Ｂのライトデータ受領部Ｂ２１１は、受信したライトデータと情報をキャッシュ４００に格納し（ステップ１１０２）、受信した情報からライトデータ管理情報３３０を作成する（ステップ１１０３）。記憶装置Ｂ１９０のライトデータ管理情報３３０の項目は、記憶装置Ａ１００のライトデータ管理情報３３０のものと同じである。記憶装置Ｂ１９０のライトデータ管理情報３３０の内容に関しては、論理ボリュームＩＤは複製を格納するターゲット側の論理ボリューム５００のＩＤであり、ライトデータポインタは記憶装置Ｂ１９０のキャッシュ４００におけるライトデータの格納開始アドレスであり、転送必要ビットは常にＯＦＦであることが、記憶装置Ａ１００のライトデータ管理情報３３０とは異なるが、他は同じとなる。
【００３４】
記憶装置Ｂ１９０はグループ管理情報３１０も持つが、この項目も記憶装置Ａ１００のものと同じである。グループ管理情報３１０の内容に関しては、グループＩＤは複製を格納するターゲット側の論理ボリューム５００が属する論理ボリュームグループを特定するＩＤであり、相手記憶装置ＩＤはソースとなる記憶装置（実施例１では記憶装置Ａ１００）のＩＤであり、相手グループＩＤは相手記憶装置（実施例１では記憶装置Ａ１００）において相手論理ボリューム（即ちソースとなる論理ボリューム５００）が属する論理ボリュームグループを特定するＩＤとなる。また記憶装置Ｂ１９０は相手論理ボリューム情報３２０も持つが、これの項目も記憶装置Ａ１００のものと同じであって、内容に関しては、論理ボリュームＩＤは複製を格納する論理ボリューム５００を特定するＩＤであり、相手記憶装置ＩＤはソースとなる記憶装置（記憶装置Ａ１００）のＩＤを特定するＩＤであり、相手論理ボリュームＩＤは相手記憶装置（記憶装置Ａ１００）において相手論理ボリューム（ソースとなる論理ボリューム５００）を特定するＩＤとなる。
【００３５】
図６に戻って、次にライトデータ受領部Ｂ２１１は到着済みライト時刻情報３５０を更新する（ステップ１１０４）。
【００３６】
図８は各グループの到着済みライト時刻情報３５０の一例を示す図である。グループＩＤは記憶装置Ｂ１９０において論理ボリュームグループを特定するＩＤである。到着済みライトデータの最新ライト時刻は、記憶装置Ｂ１９０の論理ボリュームグループについて、ライトデータ受領部Ｂ２１１が受領したライトデータに与えられていたライト時刻のうち最も現時刻に近い最新の時刻である。但しシーケンシャル番号順で見て一部未到着のライトデータがある場合（途中抜けているライトデータがある場合）は、シーケンシャル番号順で連続している最後のライトデータ（抜けの直前のライトデータ）までを時刻比較の範囲として、これらのライトデータに付与されているライト時刻のうち最新の時刻が、到着済ライト時刻情報として記録される。
【００３７】
ライトデータ転送部Ａ２２０とライトデータ受領部Ｂ２１１との間のライトデータの転送においては、複数ライトデータを並列に同時に転送してもよい。このためライトデータ受領Ｂ２１１はライトデータをシーケンシャル番号順に受領するとは限らないが、後述するようにライトデータは各論理ボリュームグループごとに、シーケンシャル番号順に反映される（即ち記憶装置Ｂの論理ボリュームに格納される）ため、更新順序どおりに（即ち記憶装置Ａにおけるライトデータのライト順通りに）複製に反映される。
【００３８】
再び図６に戻って、最後にライトデータ受領部Ｂ２１１は、ライトデータ転送部Ａ２２０にライトデータ受領完了を報告する（ステップ１１０５）。これを受信した記憶装置Ａのライトデータ転送部Ａは、ライトデータ受領完了の報告に対応するライトデータについて、ライトデータ管理情報３３０の転送必要ビットをＯＦＦにする。この時点で記憶装置Ａ１００は、記憶装置Ｂへの転送用に保持していた転送済のライトデータをキャッシュから破棄できる。
【００３９】
図９は記憶装置Ｂ１９０におけるライトデータの反映処理（即ち、ライトデータの論理ボリュームへの格納処理）の一例を示す図である。
【００４０】
ライトデータ反映指示部Ｂ２３０は記憶装置Ｂ１９０の全論理ボリュームグループの到着済みライト時刻情報３５０を調べ、この中で最も過去の時刻を求める（ステップ１２００）。ライトデータ反映指示部Ｂ２３０は求めた時刻よりライト時刻が前のライトデータの論理ボリュームへの反映をライトデータ反映部Ｂ２４０に指示（若しくは許可）する（ステップ１２０１）。この指示（若しくは許可）を受けたライトデータ反映部２４０は、ライトデータ管理情報３３０とグループ管理情報３１０を参照して、ライト時刻順に、また同じライト時刻であれば各論理ボリュームグループにおけるシーケンシャル番号順に、指示された時刻範囲のライトデータ（即ちライト時刻がステップ１２００で求めた時刻より以前のライトデータ）を、複製を格納している論理ボリューム５００に対して反映する（即ちターゲット側の論理ボリュームにライトデータを格納する。）（ステップ１２０２）。ステップ１２０２において指示された範囲のライトデータを全て反映し終わったら、ライトデータ反映部Ｂ２４０は指示された処理の完了をライトデータ反映指示部２３０に報告する（ステップ１２０３）。記憶装置Ｂは、反映したライトデータはキャッシュ４００から破棄できる。
【００４１】
以上ステップ１２００からステップ１２０３の処理によって、１サイクルの反映処理が終了する。記憶装置Ａから転送されてくるライトデータを継続して反映するためにライトデータ反映指示部Ｂ２３０とライトデータ反映部Ｂ２４０は上記のサイクルを繰り返す。
【００４２】
上記の処理により、メインフレームホストによるデータの更新とオープンシステムホストによるデータの更新の間の順序を守って、記憶装置Ｂ１９０の更新されたデータの複製を格納し、各複製間のデータ整合性について、メインフレームホストのデータとオープンシステムホストのデータでも共通の整合性を維持することができる。
【００４３】
すなわち記憶装置Ａは、メインフレームホストから受信するライト要求６３０に含まれているライト時刻６５０を利用して、オープンシステムホストから受信するライトデータにもライト時刻を付与し、更に受信したライトデータをライト時刻と共にシーケンシャル番号をも用いて管理する。副側の記憶装置Ｂでは、反映可能な（即ちターゲット側の論理ボリュームに格納可能な）ライトデータを、シーケンシャル番号とライト時刻を用いて指定し、指定されたライトデータをターゲット側の論理ボリュームに格納する。この結果、途中のバッファリングや転送は並列であっても、メインフレームホストから書き込まれたデータとオープンシステムホストから書き込まれたデータとの間の書き込み順序を守った上で、副側の記憶装置Ｂ１９０の論理ボリュームにコピーデータを格納することができる。
【００４４】
また、例えば記憶装置Ａ１００に障害が発生し、先に更新されたライトデータが記憶装置Ｂ１９０に届かなかったとしても、届かなかったライトデータのライト時刻以降のライト時刻のライトデータにはついては、シーケンシャル番号が連続しないため、反映が許可されない。従って副側の記憶装置Ｂにおいてデータ更新の抜けは生じず、正側の記憶装置Ａと副側の記憶装置Ｂとの間の整合性が確保される。この結果、正側の記憶装置Ａに障害が生じた場合であっても、ＭＦＢ６９０やオープンシステムホストＢ７９０は整合性のとれた記憶装置Ｂ１９０の論理ボリューム５００の内容を用いて業務を引き継ぐことができる。
【００４５】
また上記の処理では記憶装置Ａが受信する全てのライトデータにライト時刻が与えられるため、データを使用するホストがメインフレームホストかオープンシステムホストかにかかわらず、任意の論理ボリューム５００においてどのライト時刻までのライトデータが記憶装置Ａから記憶装置Ｂへ転送済みか、記憶装置Ｂに到着ずみか、記憶装置Ｂにおいて反映済み（即ち論理ボリュームに格納済）か等の情報を知ることができる。
【００４６】
尚、上記のステップ１２０２において処理負荷を軽減するために、ライト時刻順は無視して各論理ボリュームグループにおけるシーケンシャル番号順に、指示された時刻範囲のライトデータを、複製を格納している論理ボリューム５００に格納しても良い。この場合には、ステップ１２０３での処理完了報告のタイミングで複製間（即ち副側の記憶装置Ｂの論理ボリューム間）の整合性が保持されることになる。処理完了報告と次の処理完了報告との間の期間も整合性のあるデータを保持したい場合は、複製を格納している論理ボリューム５００のスナップショットを処理完了報告のタイミングで取得すればよい。このようなスナップショットを取得する方法としては例えば米国特許６６５８４３４号に開示の技術がある。この方法では記憶装置Ｂ１９０の別の論理ボリューム５００（副ボリューム）にスナップショットを取得すべきデータを格納している論理ボリューム５００（正ボリューム）の格納内容をコピーし、正ボリュームが更新されたら副ボリュームにも更新内容を反映することとなるが、本実施形態においては、一旦正ボリュームのスナップショットを副ボリュームに格納した時点で、反映を停止して、副ボリュームの内容を静止、確定させる。
【００４７】
また上記のライトデータの転送処理において、最初にライトデータ転送部Ａ２２０がライトデータ受領部Ｂ２１１に対してライトデータを転送するとしたが、最初にライトデータ受領部Ｂ２１１がライトデータ転送部２２０に対してライトデータの転送要求を発行し、この要求を受領したライトデータ転送部Ａ２２０がライトデータ受領部Ｂ２１１に対してライトデータを転送してもよい。ライトデータの転送要求を用いることで、記憶装置Ｂ１９０の処理の状況や負荷、ライトデータの蓄積量などに応じて、ライトデータの転送のペースを調整することが可能となる。
【００４８】
また上記の処理ではライトデータを格納する場所をキャッシュ４００としたが、別にライトデータ格納用の論理ボリューム５００を用意して、この論理ボリューム５００にライトデータを格納してもよい。一般にキャッシュ４００に対し論理ボリューム５００は大容量を用意できるため、より多くのライトデータを蓄積することが可能となる。
【００４９】
また上記の処理ではライト時刻情報３４０をメインフレームホストから受信するライト時刻６５０により更新するとしたが、記憶装置Ａ１００が内部に時計を有し、この時計を参照してライト時刻情報３４０を常時更新してもよい。この場合に、記憶装置Ａ１００が複製を作成している論理ボリューム５００（ソースとなる論理ボリューム５００）に対するライト要求を、ＭＦＡ６００またはオープンシステムホストＡ７００から受領した際に実行する処理の一例を図１０に示す。この処理は図３に示す処理に対応する処理である。
【００５０】
ライトデータ受領部Ａ２１０はＭＦＡ６００またはオープンシステムホストＡ７００からライト要求を受領する（ステップ１３００）。ライトデータ受領部Ａ２１０はライトデータをキャッシュ４００に格納し（ステップ１３０１）、記憶装置Ａが有する時計合わせて常時更新されているライト時刻情報３４０を参照してライトデータにライト時刻を与え、またグループ管理情報３１０を参照してライトデータにシーケンシャル番号を与えてライトデータ管理情報３３０を作成する（ステップ１３０２）。最後にＭＦＡ６００またはオープンシステムホストＡ７００にライト完了報告を行う（ステップ１３０３）。
【００５１】
また上記の処理では時刻をライト時刻情報３４０やライトデータ管理情報３００のライト時刻や到着済みライト時刻情報３５０に用いるとしたが、この際使用される時刻は必ずしも年、月、日、時、分、秒、ミリ秒、マイクロ秒、ナノ秒やもしくは通算時間といった形式でなくても良く、シーケンシャルな番号を用いてもよい。特に記憶装置Ａ１００がみずからライト時刻情報３４０を更新する場合の、記憶装置Ａ１００が複製を作成している論理ボリューム５００（ソースとなる論理ボリューム５００）に対するライト要求を、ＭＦＡ６００またはオープンシステムホストＡ７００から受領した場合の処理の一例を図１１に示す。この処理は図３や図１０に対応する処理である。尚、図１１においては、ライト時刻情報３４０の初期値は例えば０で、下記のように順次１ずつ増やした番号をライト時刻としてライトデータに与えていく。
【００５２】
ライトデータ受領部Ａ２１０はＭＦＡ６００またはオープンシステムホストＡ７００からライト要求を受領する（ステップ１４００）。ライトデータ受領部Ａ２１０はライトデータをキャッシュ４００に格納し（ステップ１４０１）、ライト時刻情報３４０から番号を読み出しこれに１を加えた値をライト時刻としてライトデータに与え（ステップ１４０２）、ステップ１４０２において１を加えられた後の値をライト時刻情報３４０として記録してライト時刻情報３４０を更新する（ステップ１４０３）。またグループ管理情報３１０を参照してシーケンシャル番号をライトデータに与えて（ステップ１４０４）、ライトデータ管理情報３３０を作成する（ステップ１４０５）。ライトデータ受領部Ａ２１０は、最後にＭＦＡ６００またはオープンシステムホストＡ７００にライト完了報告を行う（ステップ１４０６）。
【００５３】
このようにライト時刻としてシーケンシャルな番号を用いる場合は、記憶装置Ｂ１９０での処理においてライトデータ受領部Ｂ２１１が受信したライトデータに付与されているライト時刻を用いて到着済みライト時刻情報３５０を更新し、ライトデータ反映指示部Ｂ２３０が各論理ボリュームグループの到着済みライト時刻情報３５０をチェックして記憶装置Ｂの論理ボリュームに格納可能なライトデータの範囲を指定する代わりに、ライトデータ反映部２４０はライトデータ管理情報３３０のライト時刻に記録されるシーケンシャルな番号を参照して、記憶装置Ｂに到着しているライトデータを番号順に番号を飛ばすことなく論理ボリューム５００に反映（即ち格納）するようにしてもよい。
【実施例２】
【００５４】
図１２は第二の実施形態における計算機システムの構成例を示す図である。
【００５５】
実施例１との違いはＭＦＡ６００とオープンシステムホストＡ７００は記憶装置Ｃ１８０にＩ／Ｏパス９００を介して接続しており、記憶装置Ｃ１８０は転送パス９１０を介して記憶装置Ａ１００に接続している点である。本実施例では記憶装置Ｃ１８０の論理ボリューム５００に格納されているデータの複製を記憶装置Ａ１００の論理ボリューム５００に格納する。そしてさらに記憶装置Ａの論理ボリューム５００に格納されているデータの複製を実施例１に説明した処理と同様の処理で記憶装置Ｂ１９０の論理ボリューム５００に格納する。すなわち本実施例では記憶装置Ｃ１８０の論理ボリューム５００に格納されているデータの複製が記憶装置Ａ１００と記憶装置Ｂ１８０に格納される。
【００５６】
かかる処理を実現するために、記憶装置Ｃ１８０は実施例１で説明した記憶装置Ａ１００と同様の構成や各種情報などを備える。但し、ライトデータ受領部Ｃ２１２がライトデータに対するライト完了通知を送信するタイミングは実施例１とは異なる。ライトデータ受領部は下記の様に、記憶装置Ａのライトデータ受領部Ａから受領完了通知を受信した後にＭＦＡ６００若しくはオープンシステムホストＡにライト完了通知を送信する。その他の記憶装置Ｃの構成は実施例１で説明した記憶装置Ａと同様である。
【００５７】
ＭＦＡ６００やオープンシステムホストＡ７００から論理ボリューム５００へのライト要求６３０やライト要求７３０を受領した記憶装置Ｃ１８０は、受領したライトデータ６４０やライトデータ７４０を記憶装置Ｃ内の論理ボリュームに格納するとともに、記憶装置Ａのライトデータ受領部Ａ２１０に転送する。このとき実施例１で説明した処理とは異なり、記憶装置Ｃ１８０はライトデータ受領部Ａ２１０からの受領完了通知を待ってからＭＦＡ６００若しくはオープンシステムホストＡ７００にライト完了通知を送ることで、記憶装置Ｃ１８０はライトしたライトデータ６４０やライトデータ７４０の複製が記憶装置Ａ１００に存在することを保証する。これにより例えば記憶装置Ｃ１８０や転送パス９１０に障害が発生し記憶装置Ａ１００にデータが転送できなくなったとしても、記憶装置Ａ１００に転送されなかったライトデータはＭＦＡ６００やオープンシステムホストＡ７００にとってライトされていないことになるし、記憶装置Ａ１００に受領されたライトデータは確実にライトされていることになるので、ＭＦＡ６００上のＡＰＰ６２０やオープンシステムホストＡ７００上のＡＰＰ７２０の期待通りの複製が記憶装置Ａ１００に存在することとなる。
【００５８】
さらに記憶装置Ａ１００が受領したライトデータを記憶装置Ｂ１９０に全て送った後は、記憶装置Ｂ１９０にも期待通りの複製が存在するので、ＭＦＢ６９０やオープンシステムホストＢ７９０は、ＭＦＡ６００やオープンシステムホストＡ７００が実行していた処理が中断した時点においてＭＦＡ６００若しくはオープンシステムホストＡ７００が書き込み済みだと認識していたデータと同じ期待通りのデータを用いて業務を引き継ぐことができる。
【００５９】
実施例１で最初に示したようにライト時刻情報３４０をライトデータに付与されているライト時刻６５０により更新する場合、記憶装置Ｃ１００のライトデータ受領部Ｃ２１２は受領したライト要求６３０にライト時刻６５０が含まれていたならば、ライトデータ管理情報３３０にライト時刻も記録し、ライトデータ転送部Ｃ２２２はライトデータ転送時にライト時刻も記憶装置Ａ１００のライトデータ受領部Ａ２１０に転送する。
【００６０】
ライトデータと共にライト時刻を受領したライトデータ受領部Ａ２１０は、実施例１でメインフレームホストから受信したライト要求６３０を処理したのと同様の方法で、記憶装置Ｃから受信したライトデータとライト時刻を処理することで、記憶装置Ａ内の論理ボリュームに格納される各複製間の整合性を維持し、メインフレームホストから発行されるライトデータとオープンシステムホストから発行されるライトデータとの間でも整合性を維持することができる。
【００６１】
これにより大規模災害などで記憶装置Ｃ１８０と記憶装置Ａ１００の両方に障害が発生したとしても、ＭＦＢ６９０やオープンシステムホストＢ７９０は整合性のとれた記憶装置Ｂ１９０の論理ボリューム５００の内容を用いて業務を引き継ぐことができる。
【００６２】
実施例１の最後で示したように記憶装置Ａ１００がみずからライト時刻情報３４０を更新する場合は、記憶装置Ｃ１８０からのライト時刻の転送は不要で、記憶装置Ｃからライトデータを受領したライトデータ受領部Ａ２１０はライトデータを実施例１の最後で示した図１１の処理と同様に処理すればよい。
【００６３】
尚、記憶装置Ａ１００に接続して記憶装置Ａ１００にライトデータの複製を送信し、記憶装置Ａにライトデータの複製を格納させる記憶装置Ｃ１８０が複数台存在しても良い。
【００６４】
また図示していないメインフレームホストおよびオープンシステムホストが記憶装置Ａ１００にＩ／Ｏパスで接続している場合には、記憶装置Ａに接続されるメインフレームホストやオープンシステムホストは、ＭＦＡ６００やオープンシステムホストＡ７００や記憶装置Ｃ１８０に障害が発生した場合などに、整合性のとれた記憶装置Ａ１００の論理ボリューム５００の内容を用いて、ＭＦＡ６００やオープンシステムホストＡ７００が実行していた業務を引き継ぐことができる。
【実施例３】
【００６５】
図１３は実施例３における計算機システムの構成例を示す図である。
【００６６】
実施例１との主な違いは記憶装置Ａ１００と記憶装置Ｂ１９０がそれぞれ複数台あり、ＭＦＡ６００とオープンシステムホストＡ７００が複数台の記憶装置Ａ１００それぞれにＩ／Ｏパス９００を介して接続し、ＭＦＢ６９０とオープンシステムホストＢ７９０が複数の記憶装置Ｂ１９０それぞれにＩ／Ｏパス９００を介して接続し、ＭＦＡ６００に管理ソフトＡ８００が存在し、ＭＦＢ６９０に管理ソフトＢ８９０が存在する点である。その他の差異については以下に説明していく。
【００６７】
以下にＭＦＡ６００とオープンシステムホストＡ７００が使用する論理ボリューム５００について、各論理ボリューム５００へ行われたライトに対する処理と、記憶装置Ｂ１９０へのライトデータの転送および記憶装置Ｂ１９０におけるライトデータの反映（即ちライトデータの論理ボリュームへの格納）処理について説明する。これらの処理によって複数の記憶装置Ｂが有する複数の論理ボリューム各々に格納されている複製間の整合性について、メインフレームホストのデータとオープンシステムホストのデータとの間でも共通の整合性を維持できるようにする。
【００６８】
図１４は記憶装置Ａ１００が複製を作成している論理ボリューム５００（ソースとなる論理ボリューム５００）に対するライト要求を、ＭＦＡ６００またはオープンシステムホストＡ７００から受領した場合の処理の一例を示した図である。
【００６９】
ライトデータ受領部Ａ２１０はＭＦＡ６００またはオープンシステムホストＡ７００からライト要求を受領する（ステップ１５００）。ライトデータ受領部Ａ２１０はライトデータをキャッシュ４００に格納し（ステップ１５０１）、また実施例１と同様にグループ管理情報３１０を参照してシーケンシャル番号を取得してライトデータ管理情報３３０を作成する（ステップ１５０２）。最後にＭＦＡ６００またはオープンシステムホストＡ７００にライト完了報告を行う（ステップ１５０３）。グループ管理情報３１０は実施例１のものと同じである。本実施例のライトデータ管理情報３３０については後で説明する。
【００７０】
図１５は管理ソフトＡ８００が記憶装置Ａ１００に対してライト要求の処理の保留とマーカ作成を指示した場合の処理の一例を示した図である。後で説明するように、記憶装置Ａ１００の論理ボリューム５００に対する更新間でこの処理が行われたタイミングで、のちに各複製への反映の同期が行われて、複数の記憶装置Ｂ１９０に格納されている複製間の整合性が確立される。
【００７１】
まず管理ソフトＡ８００は全ての記憶装置Ａ１００にライト要求の処理の保留を指示する（ステップ１６００）。この指示を受けてライトデータ受領部Ａ２１０はライト要求の処理を保留し（ステップ１６０１）、保留を開始したことを管理ソフトＡ８００に報告する（ステップ１６０２）。管理ソフトＡ８００は指示した記憶装置Ａ１００全てから保留開始の報告があるのを確認してから次の処理に進む（ステップ１６０３、ステップ１６０４）。
【００７２】
次に管理ソフトＡ８００はマーカ作成を全ての記憶装置Ａ１００に指示する（ステップ１６０５）。この指示にはパラメータとしてマーカ番号が含まれる。マーカ番号については後述する。この指示を受けてマーカ作成部Ａ２５０は受領したマーカ番号を制御メモリ３００に格納されている図１６に示すマーカ番号情報３６０に記録し（ステップ１６０６）、情報伝達用の特殊なライトデータ（以降マーカと呼ぶ）を全論理ボリュームグループに対して作成する（ステップ１６０７）。尚、マーカとはライトデータ管理情報３００にマーカ属性を設定したライトデータである。
【００７３】
図１７は本実施例におけるライトデータのライトデータ管理情報３３０の一例を示す図であり、実施例１のライトデータ管理情報３３０に対してマーカ属性ビットとマーカ番号が加わっている。
【００７４】
マーカ属性ビットは当該ライトデータがマーカであることを示すビットであり、通常のライトデータではＯＦＦであるが、マーカに対してはＯＮに設定される。マーカ番号には前述のマーカ番号が設定される。マーカに対しても通常のライトデータ同様にグループにおけるシーケンシャル番号が取得され与えられる。すなわちマーカの作成に際してマーカ作成部Ａ２５０はライトデータ受領部Ａの処理と同様にグループのグループ管理情報３１０からシーケンシャル番号を参照し、これに１を加えた値を前記マーカのシーケンシャル番号としてライトデータ管理情報３３０に記録し、新しいシーケンシャル番号をグループ管理情報３１０に記録する。このようにマーカにはシーケンシャル番号が与えられて通常のライトデータ同様に記憶装置Ｂ１９０に転送されるが、マーカは論理ボリューム５００には反映されない。
【００７５】
マーカ番号はマーカがどの指示に基づいて作成されたかを特定するための番号であり、例えば初期値は０であって管理ソフトＡ８００はマーカ作成指示を発行する際にマーカ番号を１ずつ増やしてから発行する。管理ソフトＡ８００はマーカ番号情報３６０に記録されたマーカ番号を読み出して、現在のマーカ番号を確認することができる。
【００７６】
図１５に戻って、全論理ボリュームグループに対してマーカを作成したマーカ作成部Ａ２５０はマーカ作成完了を管理ソフトＡ８００に報告する（ステップ１６０８）。管理ソフトＡ８００は指示した記憶装置Ａ１００全てからマーカ作成完了の報告があるのを確認してから次の処理に進む（ステップ１６０９、ステップ１６１０）。
【００７７】
管理ソフトＡ８００は全ての記憶装置Ａ１００にライト要求の処理保留の解除を指示する（ステップ１６１１）。この指示を受けてライトデータ受領部Ａ２１０はライト要求の処理保留を解除し（ステップ１６１２）、保留解除したことを管理ソフトＡ８００に報告する（ステップ１６１３）。
【００７８】
図１８は記憶装置Ａ１００から記憶装置Ｂ１９０へのライトデータの転送処理の一例を示す図である。この処理は実施例１の図６で説明した転送処理とほぼ同様であるが、ライトデータ受領部Ｂ２１１による到着済みライト時刻情報３５０の更新が行われないことが異なる。尚記憶装置Ｂ１９０のライトデータ管理情報３３０は前述の図１７に示すライトデータ管理情報と同じであり、ステップ１７０３においては、ライトデータのマーカ属性の有無やマーカ番号もライトデータ管理情報３３０に記録される。
【００７９】
図１９は記憶装置Ｂ１９０における論理ボリュームへのライトデータの反映（格納）処理の一例を示す図である。まず管理ソフトＢ８９０は全ての記憶装置Ｂ１９０に、複製を格納する論理ボリューム５００へのマーカまでのライトデータの反映を指示する（ステップ１８００）。この指示を受けたライトデータ反映部Ｂ２４０はライトデータ情報３３０とグループ管理情報３１０を参照して、複製を格納する論理ボリューム５００に対してマーカまでのライトデータを各グループにおけるシーケンシャル番号順に反映する（ステップ１８０１）。即ちライトデータ反映部Ｂ２４０は、ライトデータをシーケンシャル番号順に論理ボリュームに格納してゆき、マーカ属性のライトデータ（即ちマーカ）を見つけたらデータの格納処理を停止し、反映完了を管理ソフトＢ８９０に報告する（ステップ１８０２）。上記の処理においてライトデータ反映部Ｂはマーカのライトデータ管理情報３３０に記録されているマーカ番号を調べ、マーカ番号が正しいか（前述のマーカ番号決定ルールと同じルールに従っているか、例えば初期値が０からなる番号で、前回のマーカ番号に対して１加えられた番号であるか）を判定し、正しくない場合は管理ソフトＢ８９０に異常を報告し、正しい場合はマーカ番号をマーカ番号情報３６０に記録して正常を報告する。管理ソフトＢ８９０はマーカ番号情報３６０に記録されたマーカ番号を読み出して、現在のマーカ番号を確認することができる。
【００８０】
管理ソフトＢ８９０は指示した記憶装置Ｂ１９０全てから正常な反映完了の報告があるのを確認してから次の処理に進む（ステップ１８０３、ステップ１８０４）。
【００８１】
次に管理ソフトＢ８９０は全ての記憶装置Ｂ１９０に、複製を格納する論理ボリューム５００のスナップショットの更新を指示する（ステップ１８０５）。この指示を受けたスナップショット取得部Ｂ２６０は論理ボリューム５００の内容のスナップショットを更新する（ステップ１８０６）。このようなスナップショットを取得する方法としては例えば米国特許６６５８４３４号に開示の技術がある。尚、本実施形態では実施例１で説明した方法と同様、スナップショット取得の時点でスナップショットデータを格納するボリュームへのライトデータの反映を停止して、スナップショットデータを格納するボリュームの内容を静止させる。スナップショットを更新したスナップショット取得部Ｂ２６０はスナップショット更新完了を管理ソフトＢ８９０に報告する（ステップ１８０７）。管理ソフトＢ８９０は指示した記憶装置Ｂ１９０全てからスナップショット更新完了の報告があるのを確認してから次の処理に進む（ステップ１８０８、ステップ１８０９）。
【００８２】
管理ソフトＡ８００と管理ソフトＢ８９０はそれぞれ上記ステップ１６００からステップ１６１３、及びステップ１８００からステップ１８０９の処理を繰り返す。これにより記憶装置Ａ１００の論理ボリューム５００への更新が、記憶装置Ｂ１９０の論理ボリューム５００に定常的に反映される。
【００８３】
上記のように処理することによって、ＭＦＡ６００とオープンシステムホストＡ７００によるデータ更新をとめて、更新状況を複数記憶装置間で統一するタイミング（チェックポイント）としてマーカを作成し、複数の副側の記憶装置Ｂが有する複数の副側論理ボリュームに格納されている複製データへの更新データの反映（即ち格納）はマーカが書き込まれる直前の時点で同期させることができるので、各複製間の整合性について、このマーカの時点でメインフレームホストのデータとオープンシステムホストのデータで共通の整合性を得ることができる。さらに複製データへの更新データの反映が、複数の複製データ間で同期した時点でスナップショットを取得して、共通の整合性を持つ複製をスナップショットボリュームに保持しているので、ＭＦＢ６９０やオープンシステムホストＢ７９０はスナップショットボリュームに格納されている整合性のとれたデータを用いて業務を引き継ぐことができる。
【００８４】
上記の処理では管理ソフトＢ８９０の指示に基づいて記憶装置Ｂ１９０がスナップショットを更新するとしたが、記憶装置Ｂが複数の複製データ間で更新データの反映を同期させるタイミングでスナップショットを更新してもよい。この場合の記憶装置Ｂ１９０における複製へのライトデータの反映処理の一例を図２０に示す。
【００８５】
管理ソフトＢ８９０は全ての記憶装置Ｂ１９０に、複製を格納する論理ボリューム５００へのマーカまでのライトデータの反映を指示する（ステップ１９００）。この指示を受けたライトデータ反映部Ｂ２４０は図１９で説明した処理と同様にライトデータを反映し、マーカを見つけたら反映を停止しスナップショット取得部Ｂ２６０に通知する（ステップ１９０１）。通知を受けたスナップショット取得部Ｂ２６０は論理ボリューム５００の内容のスナップショットを更新し、ライトデータ反映部Ｂ２４０に通知する（ステップ１９０２）。通知をうけたライトデータ反映部Ｂ２４０は反映完了を管理ソフトＢ８９０に報告する（ステップ１９０３）。管理ソフトＢ８９０は指示した記憶装置Ｂ１９０全てからスナップショット更新完了の報告があるのを確認してから次の処理に進む（ステップ１９０４、ステップ１９０５）。
【００８６】
また上記の処理では管理ソフトＡ８００または管理ソフトＢ８９０からの各種指示に対し記憶装置Ａ１００または記憶装置Ｂ１９０が処理完了を報告するとしているが、管理ソフトＡ８００または管理ソフトＢ８９０が前記指示に対して処理状態を定期的に記憶装置Ａ１００または記憶装置Ｂ１９０に問い合わせることで管理ソフトＡ８００または管理ソフトＢ８９０が記憶装置Ａ１００または記憶装置Ｂ１９０の各種処理完了を検出してもよい。
【００８７】
また上記の処理では記憶装置Ａ１００から記憶装置Ｂ１９０へのライトデータの転送処理を継続して行っているが、記憶装置Ａ１００はマーカを作成してライトデータを転送した後はライトデータの転送を停止し、さらに記憶装置Ｂ１９０は受領したマーカを反映処理で検出した後（マーカ以前のライトデータは反映した後）はライトデータの反映を停止し、すなわち記憶装置Ａ１００と記憶装置Ｂ１９０による複製処理を停止状態（サスペンド状態と呼ぶ）にしてもよい。ただし記憶装置Ｂ１９０は管理ソフトＢ８９０からの指示に関係なくマーカ検出まではライトデータの反映を行うとする。この場合、マーカ作成指示はサスペンド状態移行指示と等価となり、全ての記憶装置Ｂ１９０がサスペンド状態に移行した時点で、記憶装置Ｂ１９０の論理ボリューム５００には共通の整合性のある複製が作成される。複製処理を再開する際は論理ボリューム５００のスナップショットを取得してから、管理ソフトＡ８００または管理ソフトＢ８９０から複製処理再開を指示して記憶装置Ａ１００と記憶装置Ｂ１９０による複製処理を再開させる。この結果共通の整合性を持つ複製をスナップショットが格納されているデータに保持することができ、ＭＦＢ６９０やオープンシステムホストＢ７９０は整合性のとれたデータを用いて業務を引き継ぐことができる。
【００８８】
また上記の処理において管理ソフトＡ８００や管理ソフトＢ８９０と記憶装置Ａ１００や記憶装置Ｂ１９０との間の各種の指示、報告及び情報の送受信は、Ｉ／Ｏパス９００経由で実行されてもよく、ネットワーク９２０経由で実行されてもよい。マーカ作成指示が記憶装置Ａ１００へのライト要求の形式で行われる場合は、ライト要求の処理保留の対象外となる論理ボリューム５００を記憶装置Ａ１００に設け、マーカ作成指示はこの論理ボリューム５００に対して行われる。
【００８９】
また上記の処理において記憶装置Ａ１００と記憶装置Ｂ１９０は一対一で接続している必要はなく、それぞれの論理ボリューム５００および論理ボリュームグループがソースおよび複製として対応していれば、同じ台数である必要もない。
【００９０】
また上記の構成では管理ソフトＡ８００はＭＦＡ６００に存在し、管理ソフトＢ８９０はＭＦＢ６９０に存在するとしたが、管理ソフトＡ８００および管理ソフトＢ８９０はＭＦＡ６００、ＭＦＢ６９０、オープンシステムホストＡ７００、オープンシステムホストＢ７９０、記憶装置Ａ１００、記憶装置Ｂ１９０のいずれに存在してもかまわない。また記憶装置Ａ１００や記憶装置Ｂ１９０と接続する図示されていない他の計算機に存在してもよい。
【００９１】
上記の処理ではライトデータ反映部Ｂ２４０が正しいマーカ番号を決定するとしたが、正しいマーカ番号を管理ソフトＢが反映指示のパラメータとして記憶装置Ｂ１９０に指定してもよい。また管理ソフトＡ８００が記憶装置Ａ１００に対してライト要求の処理の保留とマーカ作成を指示する際に一意なマーカ番号を決定して記憶装置Ａ１００に指定するとともに管理ソフトＢ８９０に通知し、このマーカ番号を管理ソフトＢ８９０が記憶装置Ｂ１９０に指定してもよい。
【００９２】
上記の処理において、管理ソフトＡ８００が記憶装置Ａ１００に対してライト要求の処理の保留とマーカ作成を指示する契機は、ＡＰＰ６２０やＡＰＰ７２０の処理に連動して決定されてもよい。例えばＤＢＭＳのチェックポイント作成の契機でライト要求処理の保留とマーカ作成を指示することで、チェックポイントで複製への反映の同期が行われることになる。従って、チェックポイントにおける正側の論理ボリューム５００の格納内容が副側の論理ボリューム中の複製に反映された状態でスナップショットが取得され、ＭＦＢ６９０やオープンシステムホストＢ７９０はこの状態のデータを用いて業務を引き継ぐことができる。
【００９３】
また管理ソフトＡ８００が記憶装置Ａ１００に対してライト要求の処理の保留および保留解除を指示する代わりに、ＯＳ６１０やＯＳ７１０が管理ソフトＡ８００と連携することにより、ＭＦＡ６００やオープンシステムホストＡ７００が記憶装置Ａ１００へのライト要求の発行を保留したり、再開したりすることとしてもよい。
【００９４】
また実施例１で説明したように、キャッシュ４００とは別にライトデータ格納用の論理ボリューム５００を用意して、このライトデータ格納用論理ボリューム５００にライトデータを格納してもよい。またライトデータの転送処理においても、最初にライトデータ受領部Ｂ２１１がライトデータ転送部２２０に対してライトデータの転送要求を発行し、この要求を受領したライトデータ転送部Ａ２２０がライトデータ受領部Ｂ２１１に対してライトデータを転送してもよい。
【００９５】
本実施例で説明した処理はライト要求にライト時刻が含まれていなくても実施可能である。
【実施例４】
【００９６】
図２１は実施形態４における計算機システムの構成例を示す図である。
【００９７】
実施例３との違いはＭＦＡ６００とオープンシステムホストＡ７００は複数の記憶装置Ｃ１８０各々にＩ／Ｏパス９００を介して接続しており、複数の記憶装置Ｃ１８０は転送パス９１０を介して複数の記憶装置Ａ１００に接続している点である。さらに複数の記憶装置Ｃ１８０はネットワーク９２０で他の計算機や装置に接続している。尚、実施例４の記憶装置Ａ及び記憶装置Ｂは、実施例３における記憶装置Ａ及び記憶装置Ｂと同様の構成、機能を有する。
【００９８】
本実施例では実施例２と同様に記憶装置Ｃ１８０の論理ボリューム５００に格納されたデータの複製を記憶装置Ａ１００の論理ボリューム５００に格納する。すなわち記憶装置Ｃ１８０は実施例２と同様の構成や各種情報などを備えて、ＭＦＡ６００やオープンシステムホストＡ７００から論理ボリューム５００へのライト要求を受領した記憶装置Ｃ１８０は、受領したライトデータを格納するとともに、記憶装置Ａのライトデータ受領部Ａ２１０に転送するが、このとき実施例２と同様にライトデータ受領部Ａ２１０からの受領完了通知を待ってからＭＦＡ６００やオープンシステムホストＡ７００にライト完了通知を送り、記憶装置Ｃ１８０はライトしたライトデータ６４０やライトデータ７４０の複製が記憶装置Ａ１００に存在することを保証する。
【００９９】
さらに記憶装置Ａは記憶装置Ｃの論理ボリューム５００に格納されているデータの複製を、実施例３で説明した処理と同様の処理で記憶装置Ｂ１９０の論理ボリューム５００に格納する。上記のような処理により、実施例２で説明したように、例えば記憶装置Ｃ１８０や転送パス９１０に障害が発生し記憶装置Ａ１００にデータが転送できなくなったとしても、ＭＦＢ６９０やオープンシステムホストＢ７９０は、ＭＦＡ６００やオープンシステムホストＡ７００が処理を中断した際記憶装置Ｃに格納されていると認識している期待通りの内容を記憶装置Ｂから得ることができるので、このデータを用いて業務を引き継ぐことができる。
【０１００】
上記の処理において、管理ソフトＡ８００は、実施例３で記憶装置Ａ１００に対して行った処理と同様に、全ての記憶装置Ｃ１８０に対して、ライト要求の処理の保留や、マーカ作成や、ライト要求の処理保留の解除の指示を行う。実施例３のステップ１６００と同様に、まず管理ソフトＡ８００は全ての記憶装置Ｃ１８０にライト要求の処理の保留を指示する。この指示を受けた記憶装置Ｃ１８０のライトデータ受領部Ｃ２１２は実施例３のステップ１６０１とステップ１６０２で記憶装置Ａ１００が行った処理と同様に、ライト要求の処理を保留し、管理ソフトＡ８００に保留開始を報告する。前述のようにこの時点でＭＦＡ６００やオープンシステムホストＡ７００に対してライト完了通知済みのライトデータは記憶装置Ａ１００に転送済みであり、記憶装置Ａ１００においてライトデータのライトデータ管理情報３００が作成されている。管理ソフトＡ８００は実施例３のステップ１６０３とステップ１６０４と同様に、指示した記憶装置Ｃ１８０全てから保留開始の報告があるのを確認してから次の処理に進む。
【０１０１】
次に管理ソフト８００は実施例３のステップ１６０５と同様に、全ての記憶装置Ｃ１８０にマーカ作成を指示する。この指示を受領した記憶装置Ｃ１８０は複製を格納する記憶装置Ａ100マーカ作成指示を転送パス９１０またはネットワーク９２０を介して伝達する。マーカ作成指示を受けた記憶装置Ａ１００は、実施例３のステップ１６０６、ステップ１６０７とステップ１６０８と同様にマーカを作成し、前記記憶装置Ｃ１８０にマーカ作成完了を転送パス９１０またはネットワーク９２０を介して報告する。報告を受領した記憶装置Ｃ１８０は管理ソフト８００にマーカ作成完了を報告する。管理ソフトＡ８００は実施例３のステップ１６０９とステップ１６１０と同様に、指示した記憶装置Ｃ１８０全てからマーカ作成完了の報告があるのを確認してから次の処理に進む。
【０１０２】
次に管理ソフトＡ８００は実施例３のステップ１６１１と同様に、全ての記憶装置Ｃ１８０にライト要求の処理保留の解除を指示する。この指示を受けた記憶装置Ｃ１８０のライトデータ受領部Ｃ２１２は、実施例３のステップ１６１２とステップ１６１３で記憶装置Ａ１００が行った処理と同様に、ライト要求の処理保留を解除し、保留解除したことを管理ソフトＡ８００に報告する。
【０１０３】
すなわちライト要求の処理保留と保留解除は記憶装置Ｃ１８０が行い、その間のマーカ作成は記憶装置Ｃ１８０が記憶装置Ａ１００に指示を伝達して記憶装置Ａ１００が行う。前述のようにＭＦＡ６００やオープンシステムホストＡ７００に対してライト完了通知済みのライトデータは記憶装置Ａ１００に転送済みであり、記憶装置Ａ１００において係るライトデータのライトデータ管理情報３００が作成されているので、実施例３で記憶装置Ａ１００がライト要求の処理の保留を行うことと、本実施例で記憶装置Ｃ１８０がライト要求の処理の保留を行うことは同等である。よって上記の処理を行い、また他の処理を実施例３で説明したように行うことによって、本実施例の構成においても実施例３と同様に、ＭＦＡ６００とオープンシステムホストＡ７００によるデータ更新をとめて、更新状況を複数記憶装置間で統一するタイミング（チェックポイント）としてマーカを作成し、複製への更新の反映はマーカの時点で同期させ、各複製間の整合性について、この時点でメインフレームホストのデータとオープンシステムホストのデータで共通の整合性を得ることができる。さらに反映の同期の時点でスナップショットを取得して共通の整合性を持つ複製をスナップショットボリュームに保持し、ＭＦＢ６９０やオープンシステムホストＢ７９０は整合性のとれたデータを用いて業務を引き継ぐことができる。
【０１０４】
上記の処理では、管理ソフトＡ８００がマーカ作成を記憶装置Ｃ１８０に指示し、記憶装置Ｃ１８０はこの指示を記憶装置Ａ１００に伝達するとしたが、管理ソフトＡ８００が全ての記憶装置Ａ１００にマーカ作成を直接指示し、記憶装置Ａ１００が管理ソフト８００にマーカ作成完了を報告してもよい。すなわち管理ソフトＡ８００はまず全ての記憶装置Ｃ１８０にライト要求の処理の保留を指示し、指示した記憶装置Ｃ１８０全てから保留開始の報告があるのを確認して、実施例３のステップ１６０５と同様に、全ての記憶装置Ａ１８０にマーカ作成を指示する。この指示を受けた前記記憶装置Ａ１００は、実施例３のステップ１６０６、ステップ１６０７とステップ１６０８と同様にマーカを作成し、管理ソフト８００にマーカ作成完了を報告する。管理ソフトＡ８００は実施例３のステップ１６０９とステップ１６１０と同様に、指示した記憶装置Ａ１００全てからマーカ作成完了の報告があるのを確認して、全ての記憶装置Ｃ１８０にライト要求の処理保留の解除を指示するようにしてもよい。
【０１０５】
または記憶装置Ｃ１８０がマーカ作成部とマーカ番号情報３３０を有し、管理ソフトＡ８００からのマーカ作成の指示を受けてマーカを作成し、ライトデータとして作成したマーカを記憶装置Ａ１００に転送し、記憶装置Ａ１００のライトデータ受領部２１０からの受領報告を受けて、管理ソフトＡ８００にマーカ作成完了を報告してもよい。この場合は、記憶装置Ａ１００は受領したマーカを特殊なライトデータとして扱い、通常のライトデータ同様に処理して記憶装置Ｂ１９０に転送するが、複製への反映は行わない。
【０１０６】
いずれにせよ上記は記憶装置Ａ１００に接続して記憶装置Ａ１００に複製を置く記憶装置Ｃ１８０の数に関わらず実現できる。
【０１０７】
また図示していないメインフレームホストおよびオープンシステムホストが記憶装置Ａ１００にＩ／Ｏパスで接続している場合には、前記メインフレームホストおよび前記オープンシステムホストはＭＦＡ６００やオープンシステムホストＡ７００や記憶装置Ｃ１８０に障害が発生した場合などに整合性のとれた記憶装置Ａ１００の論理ボリューム５００の内容を用いて業務を引き継ぐことができる。
【実施例５】
【０１０８】
図２２は本発明を適用した計算機システムの実施例５における構成例を示す図である。
【０１０９】
実施例３との違いは管理ソフトＡ８００が１つの記憶装置Ａ１００に存在し、管理ソフトＢ８９０が１つの記憶装置Ｂ１９０に存在し、各記憶装置Ａ１００は転送バス９１０によって接続し、各記憶装置Ｂ１９０も転送パス９１０によって接続している点である。また各記憶装置Ｂ１９０は後述する到着済マーカ番号情報３７０を制御メモリ３００に有する。到着済マーカ番号情報３７０はグループ毎に存在する。その他の差異については以下に説明していく。
【０１１０】
以下にＭＦＡ６００とオープンシステムホストＡ７００が使用する論理ボリューム５００について、各論理ボリューム５００へ行われたライトに対する処理と、記憶装置Ｂ１９０への転送および記憶装置Ｂ１９０における反映の処理について説明する。これらの処理によって各複製間の整合性について、メインフレームホストのデータとオープンシステムホストのデータでも共通の整合性を常に維持できるようにする。本実施例では、各複製間の整合性を確保するための処理を、記憶装置Ａ１００および記憶装置Ｂ１９０が前述の転送パス９１０を介して制御することによって、記憶装置Ａ１００および記憶装置Ｂ１９０の処理のみで実現することができる。
【０１１１】
本実施例においては、複製が作成される論理ボリューム５００（ソースとなる論理ボリューム５００）に対して記憶装置Ａ１００がＭＦＡ６００またはオープンシステムホストＡ７００からライト要求を受領した場合の処理は、実施例３で説明した処理と同様であり、記憶装置Ａ１００は実施例３で図１４で説明した処理を行う。本実施例における各種管理情報は到着済マーカ番号情報３７０を除き、実施例３で説明したものと同様である。
【０１１２】
図２３は記憶装置Ａ１００に存在する管理ソフトＡ８００が各記憶装置Ａ１００に対してライト要求の処理の保留とマーカ作成を指示した場合の処理を示した図である。実施例３で図１５で説明した処理とほぼ同様である。但し、本実施例においては実施例３とは異なり、上述の様に管理ソフトＡが複数の記憶装置Ａのうちのある記憶装置Ａに存在するので、管理ソフトＡと記憶装置Ａとの間のやりとりは、管理ソフトＡと、管理ソフトＡが存在する記憶装置Ａ内のライトデータ受領部やマーカ作成部との間、若しくは、管理ソフトＡと、管理ソフトＡが存在する記憶装置Ａ以外の記憶装置Ａ内のライトデータ受領部やマーカ作成部との間で実行される。更に、本実施例においてはマーカ番号について、マーカ番号を採用する規則として、ステップ３００５で指定するマーカ番号は前回のマーカ番号に対して１を加えた番号（１ずつ増やした番号）としている。
【０１１３】
図２４は記憶装置Ａ１００から記憶装置Ｂ１９０へのライトデータの転送処理を示す図である。実施例３で図１８で説明した処理とほぼ同様であるが、ステップ３１０６でライトデータ受領部Ｂ２１１がライトデータ転送部Ａ２２０にライトデータ受領完了を報告する前に、ステップ３１０４でライトデータ受領部Ｂ２１１は受領したライトデータがマーカであるか判定し、マーカであった場合は、ステップ３１０５でライトデータ受領部Ｂ２１１は前記マーカのマーカ番号を図２５に示す到着済マーカ番号情報３７０に記録する点が異なる。到着済マーカ番号情報３７０はグループ毎に存在し、管理ソフトＢ８９０は各グループの到着済マーカ番号情報３７０に記録されたマーカ番号を読み出して各グループの到着済マーカ番号を取得することができる。
【０１１４】
図２６は記憶装置Ｂ１９０における複製へのライトデータの反映処理を示す図である。記憶装置Ｂ１９０に存在する管理ソフトＢ８９０は到着済マーカ番号情報３７０に記録されているマーカ番号を全ての記憶装置Ｂ１９０の全グループから取得し、取得したマーカ番号のうち最も小さいマーカ番号を求める（ステップ３２００）。次に管理ソフトＢ８９０は求めたマーカ番号を持つマーカまでのライトデータの論理ボリューム５００への反映を各グループに関し全ての記憶装置Ｂ１９０に指示する（ステップ３２０１）。この指示を受けたライトデータ反映部Ｂ２４０はライトデータ情報３３０とグループ管理情報３１０を参照して、複製を格納する論理ボリューム５００にライトデータを、各グループにおけるシーケンシャル番号順に、指示されたマーカまで反映する（ステップ３２０２）。ライトデータ反映部Ｂ２４０は各グループについてライトデータをシーケンシャル番号順に処理する中で、グループ毎に指示されたマーカを見つけたら反映を停止し、反映完了を管理ソフトＢ８９０に報告する（ステップ３２０３）。ステップ３２００で最も小さいマーカ番号を求めているので、このマーカ番号のマーカは各記憶装置Ｂ１９０の各グループに必ず到着しており、よって指示されたマーカまでのライトデータの反映は必ず可能である。ライトデータ反映部Ｂ２４０は反映したマーカのマーカ番号をマーカ番号情報３６０に記録し、管理ソフトＢ８９０はマーカ番号情報３６０に記録されたマーカ番号を読み出して確認することができる。管理ソフトＢ８９０は各グループに関し指示した記憶装置Ｂ１９０全てから正常な反映完了の報告があるのを確認してから次の処理に進む（ステップ３２０４、ステップ３２０５）。
【０１１５】
管理ソフトＡ８００と管理ソフトＢ８９０はそれぞれ上記の処理を繰り返す。これにより記憶装置Ａ１００の論理ボリューム５００への更新が、記憶装置Ｂ１９０の論理ボリューム５００に定常的に反映される。
【０１１６】
上記の反映処理ではスナップショットを用いずに各複製間の整合性を確保、維持するため、スナップショット用の論理ボリューム５００（副ボリューム）といったスナップショット用の記憶領域は不要である。一方、前述のような管理ソフトＡ８００および管理ソフトＢ８９０が記憶装置Ａ１００および記憶装置Ｂ１９０に存在する構成でも、実施例３で説明した反映処理のようにスナップショットを用いた整合性確保を行う処理は可能である。
【０１１７】
上記の処理により、複数の記憶装置Ａ１００および複数の記憶装置Ｂ１９０で作成される各複製間の整合性について、メインフレームホストのデータとオープンシステムホストのデータでも共通の整合性を常に維持できる。さらに各複製間の整合性を確保するための処理を、記憶装置Ａ１００および記憶装置Ｂ１９０が制御することによって、各複製間の整合性の確保を記憶装置Ａ１００および記憶装置Ｂ１９０の処理のみで実現することができ、ホスト上の資源を使用しなくてすむ。
【０１１８】
上記の処理において管理ソフトＡ８００や管理ソフトＢ８９０と記憶装置Ａ１００や記憶装置Ｂ１９０との間の各種の指示や報告や情報取得は転送パス９１０経由としたが、ネットワーク９２０経由でもよい。マーカ作成指示が記憶装置Ａ１００へのライト要求の形式で行われる場合は、ライト要求の処理保留の対象外となる論理ボリューム５００を記憶装置Ａ１００に設け、前記マーカ作成指示は前記論理ボリューム５００に対して行われる。
【０１１９】
また上記の処理において記憶装置Ａ１００と記憶装置Ｂ１９０は一対一で接続している必要はなく、それぞれの論理ボリューム５００およびグループがソースおよび複製として対応していれば、同じ台数である必要もない。
【０１２０】
また実施例１で説明したように、キャッシュ４００とは別にライトデータ格納用の論理ボリューム５００を用意して、前記論理ボリューム５００にライトデータを格納してもよく、またライトデータの転送処理において最初にライトデータ受領部Ｂ２１１がライトデータ転送部２２０に対してライトデータの転送要求を発行し、前記要求を受領したライトデータ転送部Ａ２２０がライトデータ受領部Ｂ２１１に対してライトデータを転送してもよい。
【０１２１】
また実施例４のように、記憶装置Ｃ１８０に相当する図示していない他の記憶装置Ｄを記憶装置Ａ１００に転送パス９１０を介して接続し、ＭＦＡ６００とオープンシステムホストＡ７０をこの他の記憶装置ＤにＩ／Ｏパス９００を介して接続してもよい。この場合、実施例２または実施例４で説明した処理と同様、記憶装置Ｄの論理ボリューム５００の複製を記憶装置Ａ１００の論理ボリューム５００に格納し、さらに本実施例で既に説明したように記憶装置Ａ１００の前記論理ボリューム５００の複製を記憶装置Ｂ１９０の論理ボリューム５００に格納することで、実施例４または実施例２で説明したように、例えば記憶装置Ｄや転送パス９１０に障害が発生し、記憶装置Ａ１００にデータが転送できなくなったとしても、ＭＦＢ６９０やオープンシステムホストＢ７９０はＭＦＡ６００やオープンシステムホストＡ７００の処理中断直後の期待通りの内容を用いて業務を引き継ぐことができる。
【０１２２】
上記の処理に関し、記憶装置Ａ１００は以下のインタフェース（ＣＬＩやＧＵＩやＡＰＩ）を提供する。
【０１２３】
（１）管理ソフトＡ８００が行う上記処理を開始または停止するインタフェース。
【０１２４】
（２）管理ソフトＡ８００の処理状態を取得または表示するインタフェース。
【０１２５】
（３）管理ソフトＡ８００が動作する記憶装置Ａ１００を決定または指定するインタフェース。前記記憶装置Ａ１００はユーザや管理者に指定されてもよく、処理負荷バランスを考慮して処理負荷の小さい記憶装置Ａ１００が自動的に選択されてもよい。また管理ソフトＡ８００が動作可能な記憶装置Ａ１００を示すインタフェースが提供され、ユーザや管理者は前記インタフェースを用いて管理ソフトＡ８００が動作可能な記憶装置Ａ１００を把握し、この中から管理ソフトＡ８００を動作させる前記記憶装置Ａ１００を選択し指定してもよい。
【０１２６】
（４）管理ソフトＡ８００が行う上記処理の対象となる記憶装置Ａ１００およびグループを指定するインタフェース。記憶装置Ａ１００のシリアル番号や識別子、グループ番号や識別子などがパラメータとして指定される。または管理ソフトＡ８００が行う上記処理の対象となることが可能な記憶装置Ａ１００およびグループを示すインタフェースが提供され、ユーザや管理者は前記インタフェースを用いて上記処理の対象となることが可能な記憶装置Ａ１００およびグループを把握し、この中から上記処理の対象となる記憶装置Ａ１００およびグループを選択し指定してもよい。
【０１２７】
（５）管理ソフトＡ８００が行う上記処理の対象から記憶装置Ａ１００またはグループを削除するインタフェース。記憶装置Ａ１００のシリアル番号や識別子、グループ番号や識別子などがパラメータとして指定される。または現在管理ソフトＡ８００が行う上記処理の対象となっている記憶装置Ａ１００およびグループを示すインタフェースが提供され、ユーザや管理者は前記インタフェースを用いて上記処理の対象から削除可能な記憶装置Ａ１００およびグループを把握し、この中から上記処理の対象から削除する記憶装置Ａ１００およびグループを選択し指定してもよい。
【０１２８】
（６）管理ソフトＡ８００が上記処理を繰り返す間隔（インターバル）を決定または指定するインタフェース。前記間隔はユーザや管理者に指定されてもよく、処理負荷を考慮して自動的に決定されてもよく、ライトデータ量に基づいて自動的に決定されてもよい。
【０１２９】
（７）管理ソフトＡ８００が行う上記処理において記憶装置Ａ１００からの報告を待つ上限時間を決定または指定するインタフェース。
【０１３０】
（８）管理ソフトＡ８００が行う上記処理において障害要因を特定または表示するインタフェース。
【０１３１】
（９）管理ソフトＡ８００が行う上記処理において障害が発生した場合の影響範囲を、管理ソフトＡ８００が行う上記処理の対象全体とするか、前記障害に関連する一部の記憶装置Ａ１００とするか、一部のグループとするか、一部の論理ボリューム５００とするかを選択するインタフェース。
【０１３２】
（１０）作成済マーカ番号を取得または表示するインタフェース。
【０１３３】
また上記の処理に関し、記憶装置Ｂ１９０は以下のユーザインタフェースを提供する。
【０１３４】
（１１）管理ソフトＢ８９０が行う上記処理を開始または停止するインタフェース。
【０１３５】
（１２）管理ソフトＢ８９０の処理状態を取得または表示するインタフェース。
【０１３６】
（１３）管理ソフトＢ８９０が動作する記憶装置Ｂ１９０を決定または指定するインタフェース。前記記憶装置Ｂ１９０はユーザや管理者に指定されてもよく、処理負荷バランスを考慮して処理負荷の小さい記憶装置Ｂ１９０が自動的に選択されてもよい。また管理ソフトＢ８９０が動作可能な記憶装置Ｂ１９０を示すインタフェースが提供され、ユーザや管理者は前記インタフェースを用いて管理ソフトＢ８９０が動作可能な記憶装置Ｂ１９０を把握し、この中から管理ソフトＢ８９０を動作させる前記記憶装置Ｂ１９０を選択し指定してもよい。
【０１３７】
（１４）管理ソフトＢ８９０が行う上記処理の対象となる記憶装置Ｂ１９０およびグループを指定するインタフェース。記憶装置Ｂ１９０のシリアル番号や識別子、グループ番号や識別子などがパラメータとして指定される。または管理ソフトＢ８９０が行う上記処理の対象となることが可能な記憶装置Ｂ１９０およびグループを示すインタフェースが提供され、ユーザや管理者は前記インタフェースを用いて上記処理の対象となることが可能な記憶装置Ｂ１９０およびグループを把握し、この中から上記処理の対象となる記憶装置Ｂ１９０およびグループを選択し指定してもよい。
【０１３８】
（１５）管理ソフトＢ８９０が行う上記処理の対象から記憶装置Ｂ１９０またはグループを削除するインタフェース。記憶装置Ｂ１９０のシリアル番号や識別子、グループ番号や識別子などがパラメータとして指定される。または現在管理ソフトＢ８９０が行う上記処理の対象となっている記憶装置Ｂ１９０およびグループを示すインタフェースが提供され、ユーザや管理者は前記インタフェースを用いて上記処理の対象から削除可能な記憶装置Ｂ１９０およびグループを把握し、この中から上記処理の対象から削除する記憶装置Ｂ１９０およびグループを選択し指定してもよい。
【０１３９】
（１６）管理ソフトＢ８９０が上記処理を繰り返す間隔（インターバル）を決定または指定するインタフェース。前記間隔はユーザや管理者に指定されてもよく、処理負荷を考慮して自動的に決定されてもよく、記憶装置Ｂ１９０に到着して反映されていないライトデータ量や、反映済マーカ番号と到着済マーカ番号の差に基づいて自動的に決定されてもよい。
【０１４０】
（１７）管理ソフトＢ８９０が行う上記処理において記憶装置Ｂ１９０からの報告を待つ上限時間を決定または指定するインタフェース。
【０１４１】
（１８）管理ソフトＢ８９０が行う上記処理において障害要因を特定するインタフェース。
【０１４２】
（１９）管理ソフトＢ８９０が行う上記処理において障害が発生した場合の影響範囲を、管理ソフトＢ８９０が行う上記処理の対象全体とするか、前記障害に関連する一部の記憶装置Ｂ１９０とするか、一部のグループとするか、一部の論理ボリューム５００とするかを選択するインタフェース。
【０１４３】
（２０）到着済マーカ番号および反映済マーカ番号を取得または表示するインタフェース。記憶装置Ｂ１９０のシリアル番号や識別子、グループ番号や識別子などがパラメータとして指定される。
【０１４４】
（２１）到着して反映していないライトデータ量を取得または表示するインタフェース。記憶装置Ｂ１９０のシリアル番号や識別子、グループ番号や識別子などがパラメータとして指定される。
【０１４５】
（２２）到着して反映していないライトデータを格納する記憶領域の大きさを指定するインタフェース。記憶装置Ｂ１９０のシリアル番号や識別子、グループ番号や識別子などがパラメータとして指定される。
【０１４６】
上記のインタフェースの形式としてはＣＬＩやＧＵＩやＡＰＩがありうる。また上記のインタフェースの使用方法としては、記憶装置Ａ１００や記憶装置Ｂ１９０の端末を直接使用することも可能であり、ネットワーク９２０やＩ／Ｏパス９１０や転送パス９２０を介してＭＦＡ６００やＭＦＢ６９０やオープンシステムホストＡ７００やオープンシステムホストＢ７９０や図示されていない他の計算機から遠隔で使用することも可能である。
【０１４７】
上の説明では管理ソフトＡ８００が記憶装置Ａ１００に存在し、管理ソフトＢ８９０が記憶装置Ｂ１９０に存在するとしたが、転送パス９１０やネットワーク９２０を介して各種の指示や報告や情報取得を行うことによって、管理ソフトＡ８００が記憶装置Ｂ１９０で動作してもよく、管理ソフトＢ８９０が記憶装置Ａ１００で動作してもよい。この場合でも各複製間の整合性を確保するための処理を、記憶装置Ａ１００および記憶装置Ｂ１９０が制御することによって、各複製間の整合性の確保を記憶装置Ａ１００および記憶装置Ｂ１９０の処理のみで実現することができ、ホスト上の資源を使用しなくてすむ。
【図面の簡単な説明】
【０１４８】
【図１】実施例１における計算機システムの構成例を示す図である。
【図２】論理ボリュームグループの一例を示す概念図である。
【図３】記憶装置Ａがライト要求を受領した場合の処理の一例を示すフロー図である。
【図４】グループ管理情報の一例を示す図である。
【図５】ライトデータを管理するためのライトデータ管理情報の一例を示す図である。
【図６】記憶装置Ａから記憶装置Ｂへのライトデータの転送処理の一例を示すフロー図である。
【図７】論理ボリュームの相手論理ボリューム情報の一例を示す図である。
【図８】到着済みライト時刻情報の一例を示す図である。
【図９】記憶装置Ｂでのライトデータの反映処理の一例を示すフロー図である。
【図１０】記憶装置Ａがライト要求を受領した場合の処理の他の一例を示すフロー図である。
【図１１】記憶装置Ａがライト要求を受領した場合の処理の他の一例を示すフロー図である。
【図１２】実施例２における計算機システムの構成例を示す図である。
【図１３】実施例３における計算機システムの構成例を示す図である。
【図１４】実施例３での記憶装置Ａがライト要求を受領した場合の処理の一例を示すフロー図である。
【図１５】管理ソフトＡが記憶装置Ａに対してライト要求の処理の保留とマーカ作成を指示した場合の処理の一例を示すフロー図である。
【図１６】マーカ番号情報の一例を示す図である。
【図１７】ライトデータ管理情報の他の一例を示す図である。
【図１８】実施例３での記憶装置Ａから記憶装置Ｂへのライトデータの転送処理の一例を示すフロー図である。
【図１９】実施例３での記憶装置Ｂにおけるライトデータの反映処理の一例を示すフロー図である。
【図２０】実施例３での記憶装置Ｂにおけるライトデータの反映処理の他の一例を示すフロー図である。
【図２１】実施例４における計算機システムの構成例を示す図である。
【図２２】実施例５における計算機システムの構成図例を示す図である。
【図２３】実施例５での管理ソフトＡが記憶装置Ａに対してライト要求の処理の保留とマーカ作成を指示した場合の処理の一例を示すフロー図である。
【図２４】実施例５での記憶装置Ａから記憶装置Ｂへのライトデータの転送処理の一例を示すフロー図である。
【図２５】到着済マーカ番号情報の一例を示す図。
【図２６】実施例５での記憶装置Ｂにおける複製へのライトデータの反映処理の一例を示すフロー図である。
【符号の説明】
【０１４９】
１００…記憶装置Ａ
１８０…記憶装置Ｃ
１９０…記憶装置Ｂ
２００…制御部
２１０…ライトデータ受領部Ａ
２１１…ライトデータ受領部Ｂ
２１２…ライトデータ受領部Ｃ
２２０…ライトデータ転送部Ａ
２２２…ライトデータ転送部Ｃ
２３０…ライトデータ反映指示部Ｂ
２４０…ライトデータ反映部Ｂ
２５０…マーカ作成部Ａ
２６０…スナップショット取得部Ｃ
３００…制御用メモリ
３１０…グループ管理情報
３２０…相手論理ボリューム管理情報
３３０…ライトデータ管理情報
３４０…ライト時刻情報
３５０…到着済みライト時刻情報
３６０…マーカ番号情報
４００…キャッシュ
５００…論理ボリューム
６００…メインフレームホストＡ（ＭＦＡ）
６１０…ＯＳ
６２０…アプリケーションソフト（ＡＰＰ）
６３０…ライト要求
６４０…ライトデータ
６５０…ライト時刻
６９０…メインフレームホストＢ（ＭＦＢ）
７００…オープンシステムホストＡ
７１０…ＯＳ
７２０…アプリケーションソフト（ＡＰＰ）
７３０…ライト要求
７４０…ライトデータ
７９０…オープンシステムホストＢ
８００…管理ソフトＡ
８９０…管理ソフトＢ
９００…Ｉ／Ｏパス
９１０…転送パス
９２０…ネットワーク
【図１】
2005190456.tif 000003
【図２】
2005190456.tif 000004
【図３】
2005190456.tif 000005
【図４】
2005190456.tif 000006
【図５】
2005190456.tif 000007
【図６】
2005190456.tif 000008
【図７】
2005190456.tif 000009
【図８】
2005190456.tif 000010
【図９】
2005190456.tif 000011
【図１０】
2005190456.tif 000012
【図１１】
2005190456.tif 000013
【図１２】
2005190456.tif 000014
【図１３】
2005190456.tif 000015
【図１４】
2005190456.tif 000016
【図１５】
2005190456.tif 000017
【図１６】
2005190456.tif 000018
【図１７】
2005190456.tif 000019
【図１８】
2005190456.tif 000020
【図１９】
2005190456.tif 000021
【図２０】
2005190456.tif 000022
【図２１】
2005190456.tif 000023
【図２２】
2005190456.tif 000024
【図２３】
2005190456.tif 000025
【図２４】
2005190456.tif 000026
【図２５】
2005190456.tif 000027
【図２６】
2005190456.tif 000028