(57)【特許請求の範囲】
【請求項１】
ホストコンピュータと、第１及び第２の記憶領域を有する正記憶装置システムと、前記正記憶装置システムと接続された副記憶装置システムとを有する情報処理システムに用いられ、前記正記憶装置システムに記憶されたデータをバックアップするバックアップ方法であって、
前記ホストコンピュータから前記正記憶装置システムに対して凍結指示を送出する第１ステップと、
前記凍結指示前に前記ホストコンピュータから送出されたライトデータを前記第１の記憶領域に格納する第２ステップと、
前記第１の記憶領域に格納されたデータを前記副記憶装置システムに転送する第３ステップと、
前記凍結指示後に前記ホストコンピュータから送出されたライトデータのうち、前記凍結指示前に前記第１の記憶領域に格納され、前記副記憶システムに転送されたデータを更新するライトデータを、前記第１の記憶領域に格納するとともに、前記凍結指示前に前記第１の記憶領域に格納され、前記副記憶システムに転送されていないデータを更新するライトデータを、前記第２の記憶領域に格納する第４ステップと、
前記転送されたデータに基づいて、前記凍結指示時点において前記正記憶装置システムに記憶されていたデータ及び該データの配置を、前記副記憶システムに記憶する第５ステップとを備える
ことを特徴とするバックアップ方法。
【請求項２】
前記凍結指示時点において前記第１の記憶領域に格納されていたデータの全てを前記副記憶装置システムに転送したときに、転送完了を示す信号を前記正記憶装置システムから前記副記憶装置システムに送信する第６ステップを備え、
前記第５ステップは、
前記副記憶装置システムが前記転送完了の信号を受信したときに、前記凍結指示時点において前記正記憶装置システムに記憶されていたデータ及び該データの配置を、前記副記憶システムに記憶する
ことを特徴とする請求項１に記載のバックアップ方法。
【請求項３】
前記副記憶装置システムは、第３及び第４の記憶領域を有しており、
前記第５ステップは、
前記転送されたデータを前記第３の記憶領域に格納するステップと、
前記第３の記憶領域に格納されたデータに基づいて、前記凍結指示時点において前記正記憶装置システムに記憶されていたデータ及び該データの配置を前記第４の記憶領域に格納するステップとを含む
ことを特徴とする請求項１に記載のバックアップ方法。
【請求項４】
前記第４の記憶領域は、前記データ及び該データの配置が格納される前に、前記凍結指示前の所定の時点において前記第１の記憶領域に格納されていたデータを格納している
ことを特徴とする請求項３に記載のバックアップ方法。
【請求項５】
ホストコンピュータと、第１及び第２の記憶領域を有する正記憶装置システムと、前記正記憶装置システムと接続された副記憶装置システムとを有する情報処理システムに用いられ、前記正記憶装置システムに記憶されたデータをバックアップするバックアップ方法であって、
前記ホストコンピュータから前記正記憶装置システムに対して凍結指示を送出する第１ステップと、
前記ホストコンピュータから送出されたライトデータを前記第１の記憶領域に格納する第２ステップと、
前記凍結指示後に、前記凍結指示時点において前記第１の記憶領域に格納されていたデータを前記第２の記憶領域に複写する第３ステップと、
前記凍結指示前は前記第１の記憶領域に格納されたデータを前記副記憶装置システムに転送し、前記凍結指示後は前記第２の記憶領域に複写されたデータを前記副記憶装置システムに転送する第４ステップと、
前記転送されたデータに基づいて、前記凍結指示時点において前記正記憶装置システムに記憶されていたデータ及び該データの配置を、前記副記憶システムに記憶する第５ステップとを備える
ことを特徴とするバックアップ方法。
【請求項６】
ホストコンピュータと、第１及び第２の記憶領域と正ディスクコントローラとを有する正記憶装置システムと、前記正記憶装置システムと接続され、副ディスクコントローラを有する副記憶装置システムとを備える情報処理システムであって、
前記ホストコンピュータは、
前記正記憶装置システムに対して凍結指示を送出する第１手段を有し、
前記正ディスクコントローラは、
前記凍結指示前に前記ホストコンピュータから送出されたライトデータを前記第１の記憶領域に格納する第２手段と、
前記第１の記憶領域に格納されたデータを前記副記憶装置システムに転送する第３手段と、
前記凍結指示後に前記ホストコンピュータから送出されたライトデータのうち、前記凍結指示前に前記第１の記憶領域に格納され、前記副記憶システムに転送されたデータを更新するライトデータを、前記第１の記憶領域に格納するとともに、前記凍結指示前に前記第１の記憶領域に格納され、前記副記憶システムに転送されていないデータを更新するライトデータを、前記第２の記憶領域に格納する第４手段とを有し、
前記副ディスクコントローラは、
前記転送されたデータに基づいて、前記凍結指示時点において前記正記憶装置システムに記憶されていたデータ及び該データの配置を、前記副記憶システムに記憶する第５手段を有する
ことを特徴とする記憶装置システム。
【請求項７】
前記正ディスクコントローラは、
前記凍結指示時点において前記第１の記憶領域に格納されていたデータの全てを前記副記憶装置システムに転送したときに、転送完了を示す信号を前記正記憶装置システムから前記副記憶装置システムに送信する第６手段を有し、
前記第５手段は、
前記副記憶装置システムが前記転送完了の信号を受信したときに、前記凍結指示時点において前記正記憶装置システムに記憶されていたデータ及び該データの配置を記憶する
ことを特徴とする請求項６に記載の記憶装置システム。
【請求項８】
前記副記憶装置システムは、第３及び第４の記憶領域を有し、
前記第５手段は、
前記転送されたデータを前記第３の記憶領域に格納し、該第３の記憶領域に格納されたデータに基づいて、前記凍結指示時点において前記正記憶装置システムに記憶されていたデータ及び該データの配置を前記第４の記憶領域に格納する
ことを特徴とする請求項６に記載の記憶装置システム。
【請求項９】
前記第４の記憶領域は、前記データ及び該データの配置が格納される前に、前記凍結指示前の所定の時点において前記第１の記憶領域に格納されていたデータを格納している
ことを特徴とする請求項８に記載の記憶装置システム。
【請求項１０】
前記正ディスクコントローラは、
前記副記憶装置システムに前記データを転送するときに該データを暗号化する第７手段を有し、
前記副ディスクコントローラは、
前記正記憶装置から暗号化されて転送されたデータを復号化する第８手段を有する
ことを特徴とする請求項６に記載の記憶装置システム。
【請求項１１】
ホストコンピュータと、第１及び第２の記憶領域と正ディスクコントローラとを有する正記憶装置システムと、前記正記憶装置システムと接続され、副ディスクコントローラを有する副記憶装置システムとを備える情報処理システムであって、
前記ホストコンピュータは、
前記正記憶装置システムに対して凍結指示を送出する第１手段を有し、
前記正ディスクコントローラは、
前記ホストコンピュータから送出されたライトデータを前記第１の記憶領域に格納する第２手段と、
前記凍結指示後に、前記凍結指示時点において前記第１の記憶領域に格納されていたデータを前記第２の記憶領域に複写する第３手段と、
前記凍結指示前は前記第１の記憶領域に格納されたデータを前記副記憶装置システムに転送し、前記凍結指示後は前記第２の記憶領域に複写されたデータを前記副記憶装置システムに転送する第４手段とを有し、
前記副ディスクコントローラは、
前記転送されたデータに基づいて、前記凍結指示時点において前記正記憶装置システムに記憶されたデータ及び該データの配置を、前記副記憶システムに記憶する第５手段を有する
ことを特徴とする記憶装置システム。
【請求項１２】
前記副記憶装置システムは、第３及び第４の記憶領域を有し、
前記第４の記憶領域は、前記データ及び該データの配置が格納される前に、前記凍結指示前の所定の時点において前記第１の記憶領域に格納されていたデータを格納している
ことを特徴とする請求項１１に記載の記憶装置システム。
【請求項１３】
前記正ディスクコントローラは、
前記副記憶装置に前記データを転送するときに該データを暗号化する第６手段を有し、
前記副ディスクコントローラは、
前記正記憶装置から暗号化されて転送されたデータを復号化する第７手段を有する
ことを特徴とする請求項１１に記載の記憶装置システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、遠隔地にあるディスク装置へデータのコピー（リモートコピー）を行う記憶装置システムに関する。特に、ホストコンピュータから記憶装置システムに対するデータの書き込みの順番と、データが書き込まれた記憶装置システムが他の記憶装置システムへデータを送信する順番とが一致しないタイプのリモートコピーを行う情報処理システムに関する。
【０００２】
【従来の技術】
ホストコンピュータ及び複数の記憶装置システムを有する情報処理システムにおいて、記憶装置システム間でのデータのコピーを行う技術として、リモートコピーがある。
【０００３】
リモートコピーとは、情報処理システム間において、ホストコンピュータが介在することなしに、物理的に離れた場所にある複数の記憶装置システム同士がデータのコピー、すなわちデータの２重書きを行う技術である。
【０００４】
記憶装置システムとは、複数の記憶装置及びそれらの記憶装置を制御するコントローラとから構成されるシステムを指す。
【０００５】
リモートコピーを行う情報処理システムにおいては、物理的に離れた場所にそれぞれ配置された記憶装置システムが専用回線あるいは公衆回線でお互いに接続されている。ある記憶装置システムが有する論理的な記憶領域（以下、「論理ボリューム」）のうち、リモートコピーの対象となる論理ボリューム（以下、「コピー元論理ボリューム」）の容量と同容量の論理ボリュームが、コピー元論理ボリュームがコピーされる記憶装置システムに確保される。この確保された論理ボリューム（以下、「コピー先論理ボリューム」）は、コピー元論理ボリュームと一対一の対応関係を有するように形成される。
コピー元論理ボリュームのデータは、専用回線又は公衆回線を介してコピー先論理ボリュームにコピーされる。
コピー元論理ボリュームに含まれるデータの更新があった場合、更新されたデータは専用回線等を介してコピー先論理ボリュームを有する記憶装置システムに転送され、コピー元論理ボリュームに対応するコピー先論理ボリュームにも更新されたデータが書き込まれる。
【０００６】
リモートコピーの技術を用いると、複数の記憶装置システムを有する情報処理システムにおいて、複数の記憶装置システムで同一内容の論理ボリュームを保持することができる。
【０００７】
リモートコピーに関する技術は、米国特許5,742,792号公報に開示されている。
【０００８】
米国特許5,742,792号公報には、さらにアダプティブコピーという技術が開示されている。
【０００９】
アダプティブコピーとは、リモートコピー技術の一つである。コピー元論理ボリュームからコピー先論理ボリュームへデータがコピーされる際に、コピー元論理ボリュームを有する記憶装置システムが、コピー先論理ボリュームを有する記憶装置システムから送信されるデータを受領したことを示す信号の受信を待たずに、コピー元論理ボリュームからコピー先論理ボリュームへ次のデータの転送を行うものである。
【００１０】
アダプティブコピーにおいては、データの送信順番がシリアライズされず、ホストコンピュータがコピー元論理ボリュームにデータを書き込んだ順番と、それらのデータがコピー先論理ボリュームに転送される順番が異なる場合がある（以降、このようなリモートコピーを「順序無保証」のリモートコピーと称する）。
【００１１】
この性質に基づいて、ホストコンピュータがコピー元論理ボリュームの同じ位置に繰り返しデータを書き込んだ場合、一番最後に書き込まれたデータのみをコピー先論理ボリュームを有する記憶装置システムに送ることができる。したがって、記憶装置システム間の専用線等のネットワークにかかる負荷を低減することができる。
【００１２】
一方、いわゆるオープンシステムで使用されるファイルシステムが組み込まれたホストコンピュータが記憶装置システムへデータを書き込む場合には、一般的に、ホストコンピュータが有するバッファ等を使用することにより、ホストコンピュータから記憶装置システムへのデータ転送の指示と記憶装置システムへのデータの書きこみが非同期に行われる。
【００１３】
しかし、様々な障害によってファイルのデータが破壊された場合にそのファイルのデータを確実に回復するため、少なくとも、ファイルを管理するためのデータであるディレクトリやi-nodeのようなメタデータについては、ホストコンピュータから記憶装置システムへのデータの転送指示と記憶装置システムへの書き込みが同期して行われる。上記技術は、The Design and Implementation of a Log-Structured File System, Mendel Rosenblum and John K. Ousterhout, ACM Transactions on Computer Systems, Vol.10, No.1, February 1992, Pages 29に詳細に開示されている
このような処理を行うことで、突然の電源遮断等で非同期書きこみのためにホストコンピュータにバッファされているファイルのデータが失われても、メタデータ等は失われないようにすることができる。そして、破壊されなかったメタデータ等を使用してファイルデータの回復を行い、ホストコンピュータが破壊されることによるファイルデータの損失を最小限に抑えることができる。
【００１４】
【発明が解決しようとする課題】
順序無保証のリモートコピーを行うことで、記憶装置システム間の専用線等のネットワークにかかる負荷を低減することができる。
しかし、従来の技術に基づく順序無保証のリモートコピーにおいては、ディレクトリ構造の情報等のメタデータについて同期をとることで、確実にデータを回復するということまでは考慮されていない。
【００１５】
具体的には、コピー元論理ボリュームに対してファイルシステムが書き込んだデータがファイルシステムの書き込みと同期してコピー先論理ボリュームへ転送されない場合には、コピー先論理ボリュームを有する記憶装置システムのディレクトリ構造は、ホストコンピュータのファイルシステムが意図した状態となっていない場合がありえる。
【００１６】
このような状態でコピー元論理ボリュームを有する記憶装置システムのデータが破壊された場合、コピー元論理ボリュームを有する記憶装置システムのディレクトリ構造とコピー先論理ボリュームを有する記憶装置システムのディレクトリ構造とに矛盾がないことを前提としたfsck等のファイルシステム修復プログラムをコピー先論理ボリュームを有する記憶装置システムに対して実行しても有効に機能せず、多くのファイルが失われてしまう可能性が高い。
【００１７】
本発明の目的は、順序無保証のリモートコピーを行う場合においても、複数の記憶装置システム間で整合性の取れたデータ構造を保持することで、一方の記憶装置システムのデータが破壊された場合にも他の記憶装置システムにおいてデータを回復する手段を提供することである。
【００１８】
【課題を解決するための手段】
上記課題を解決するために、本発明は、ホストコンピュータ、正記憶装置システム及び正記憶装置システムと接続された副記憶装置システムを有する記憶装置システムにおいて、ホストコンピュータから正記憶装置システムへ、正記憶装置システムのデータの状態を維持するよう指示を送り、指示があった時点における正記憶装置システムのデータの状態を維持し、維持されたデータに基づいて、副記憶装置システム上に、指示時点における前記正記憶装置システムが有するデータを構成する。
【００１９】
さらに、正記憶装置システムに維持されたデータを副記憶装置システムに転送し、維持されたデータを転送し終わったら、転送完了を示す信号を正記憶装置システムから副記憶装置システムに転送し、転送完了の信号の受信を契機に、副記憶装置システムに前記データを構成するようにしてもよい。
【００２０】
また、データの状態を維持するステップは、ホストコンピュータの指示があるまでは正記憶装置システムの第一の記憶領域にデータを記憶し、ホストコンピュータの指示があった後に、当該指示時点における第一の記憶領域に記憶されたデータを正記憶装置の第二の記憶領域に複写し、データを転送するステップは、第二の記憶領域に複写されたデータを、副記憶装置システムに転送することもできる。
【００２１】
また、データを構成するステップは、転送された維持されたデータを副記憶装置システムの第三の記憶領域に格納し、第三の記憶領域に保持されたデータを使用して、副記憶装置システムの第四の記憶領域に維持されたデータを構成することもできる。
【００２２】
また、本発明として、第一の記憶領域、第二の記憶領域及び正ディスクコントローラを有し、ホストコンピュータと接続された正記憶装置システムと、第三の記憶領域、第四の記憶領域及び副ディスクコントローラを有し、正記憶装置システムと接続された副記憶装置システムを有する記憶装置システムにおいて、正ディスクコントローラは、ホストコンピュータからの指示があるまでは、第一の記憶領域に前記ホストコンピュータから送出されるデータを記録する手段と、ホストコンピュータからの指示に応答して、第二の記憶領域に第一の記憶領域に記録されたデータを複写する手段と、複写されたデータを副記憶装置システムに送出する手段とを有する。そして、副ディスクコントローラは、送出されたデータを受け取って第三の記憶領域に保持する手段と、第三の記憶領域に保持されたデータを用いて第四の記憶領域に前記ホストコンピュータからの指示があった時点での第一の記憶領域に保持されているデータを構成する手段とを有する構成とする。
【００２３】
異なる態様としては、ホストコンピュータはデータ転送元の記憶装置システムに凍結指示を出し、転送元の記憶装置システムは凍結指示時点の記憶装置システムに保存されているデータ及びその配置（以下「ボリュームイメージ」と称する。）をデータ転送先の記憶装置システムに転送する。そして、凍結指示があった時点のボリュームイメージがデータ転送先の記憶装置システムに転送済みであることを意味する全データ転送済みを通知する。
【００２４】
データ転送先の記憶装置システムでは、データ転送元における凍結指示時点のボリュームイメージのデータを保持しおり、これを次にデータ転送済みの通知があった場合に転送されたデータを使用してボリュームイメージの更新を行う。
【００２５】
これにより、任意の時点でデータ転送元のディスク装置システムが使用不能となったときに、データ転送先の記憶装置システムが保持しているボリュームイメージを利用することができる。
【００２６】
【発明の実施の形態】
図1は、本発明を適用したコンピュータシステム１０００の第1の実施の形態の構成を示した図である。
【００２７】
コンピューターシステム１０００は、ホストコンピュータ１０１０、正記憶装置システム１１８０、正記憶装置システム１１８０との間でリモートコピーを行う副記憶装置システム１１９０、副ホストコンピュータ１０２０、及び正記憶装置システム１１８０と副記憶装置システム１１９０を結ぶネットワーク１０５０を有する。
【００２８】
副記憶装置システム１１９０は、災害などにより正記憶装置システム１１８０が使用不可能となった場合に使用される。副ホストコンピュータ１０２０は、ホストコンピュータ１０１０や正記憶装置システム１１８０が使用不可能となった場合に、副記憶装置システム１１９０のデータを使って、本来ホストコンピュータ１０１０が行うはずであった処理を肩代わりする。
【００２９】
ネットワーク１０５０は、インターネットネットワークのような共用回線で、データの転送速度があまり高速でないものと仮定する。本実施形態においては、正記憶装置システム１１８０及び副記憶装置システム１１９０で行なわれるリモートコピーは、ネットワーク１０５０に負荷をかけない順序無保証で行うものとする。尚、ネットワーク１０５０のデータ転送速度が高速であっても構わない。
【００３０】
正記憶装置システム１１８０は、ホストコンピュータ１０１０から転送されるデータを格納する正ディスク装置１１３０及び正ディスク装置１１３０の制御を行う正ディスクコントローラ（以下「DKC」）１０３０を有する。
【００３１】
本実施形態では、ホストコンピュータ１０１０が、所定のタイミングで正記憶装置システム１１８０に対して、「凍結」を行うように指示（以下、「凍結指示」と称する）を出す。
「凍結」とは、ホストコンピュータ１０１０が指示を出した時点において正記憶装置システム１１８０のボリュームイメージと同一のボリュームイメージを副記憶装置システム１１９０に確保することをいう。
【００３２】
正ディスク装置１１３０は、正ボリューム１１２０及び正差分ボリューム１１４０を有する。正ボリューム及び正差分ボリュームは論理ボリュームでも物理ボリュームでも良い。論理ボリュームの場合には、本実施例のように、正ディスク装置の中に複数のボリュームが存在することがある。物理ボリュームの場合には、正ディスク装置は、さらに複数のディスク装置から構成され、その各々が物理ボリュームを構成する。
【００３３】
正ボリューム１１２０には、ホストコンピュータ１０１０から正ディスク装置１１３０に転送されるデータが格納される。
【００３４】
正差分ボリューム１１４０には、正ディスク装置１１３０がホストコンピュータ１０１０から凍結指示を受け取ってから凍結の処理を完了するまでの間（以下、「凍結中」と称する）、ホストコンピュータ１０１０から転送されるデータが格納される。
【００３５】
正DKC１０３０は、正凍結モード１０６０、正ビットマップ１０７０及び正差分ビットマップ１０８０をメモリ上に有する。
【００３６】
正凍結モード１０６０は、正DKC１０３０自身が凍結中の処理を実行しているかどうかを示し、たとえば、凍結中であれば、モードは１となる。
【００３７】
正ビットマップ１０７０及び正差分ビットマップ１０８０は、正ボリューム１１２０及び正差分ボリューム１１４０が有するブロックのそれぞれに対応したビットを持つ。
【００３８】
正ビットマップ１０７０は、正記憶装置システム１１８０がホストコンピュータ１０１０から凍結指示を受ける以前に、正ボリューム１１２０に格納されたデータのうち、まだ副DKC１０４０に転送されていない正ボリューム１１２０のブロックを示す。
正差分ビットマップ１０８０は、正DKC１０３０が凍結中の処理を行っている間に正ディスク装置１１３０がホストコンピュータ１０１０から受け取ったデータが含まれているブロックを示す。
【００３９】
正差分ボリューム１１４０にはデータがログストラクチャードの追記型ファイル形式で格納される。格納されるデータには、正ボリューム１１２０内のブロックを示すブロック番号も含まれる。
【００４０】
正DKC１０３０が凍結中の処理を行っている間に正ディスク装置１１３０にデータが書き込まれる場合には、正DKC１０３０は、正差分ビットマップ１０８０を確認する。書き込まれるデータが既に正差分ボリューム１１４０に格納されていた場合には、同じブロックに書き込まれるデータが正差分ボリューム１１４０に複数存在しないように、それ以前に正差分ボリューム１１４０に書きこまれていたデータを破棄する。
副記憶装置システム１１９０は、正記憶装置システム１１８０からリモートコピーされたデータを格納する副ディスク装置１１６０、副ディスク装置１１６０をコントロールする副DKC１０４０を有する。
【００４１】
副ディスク装置１１６０は、副ボリューム１１５０、副差分ボリュームＡ１１７０及び副差分ボリュームＢ１１７５を有する。
【００４２】
副ボリューム１１５０には、ある時点、具体的には、以前にホストコンピュータ１０１０が正記憶装置システム１１８０に凍結指示を出した時点における正ボリューム１１２０のボリュームイメージが格納されている。
副差分ボリュームＡ１１７０には、以前にホストコンピュータ１０１０が正記憶装置システム１１８０に凍結指示を出した時点以降に、正記憶装置システム１１８０に書き込まれたデータが格納される。
副ボリューム１１５０と正ボリューム１１２０のブロックは一対一に対応している。
【００４３】
副DKC１０４０は、副凍結モード１０９０、副ビットマップ１１００及び副差分ビットマップ１１１０をメモリ（図示しない）上に有する。
副凍結モード１０９０の値は、副DKC１０４０が凍結の処理をしていないなら値０、凍結の処理中なら値１あるいは２となる。
【００４４】
副ビットマップ１１００及び副差分ビットマップ１１１０は副ボリュームＡ１１５０及び副差分ボリュームＢ１１７５が有するブロック数と同じビット数で構成され、１ビットが1ブロックに対応している。
副ビットマップ１１００は、副差分ボリュームＡ１１７０に格納されているデータの有無を示す。
【００４５】
副差分ビットマップ１１１０は、副差分ボリュームＢ１１７５に格納されているデータの有無を示す。
正差分ボリューム１１４０と同様に、副差分ボリュームＡ１１７０及び副差分ボリュームＢ１１７５には、ログストラクチャードの追記式ファイル形式でデータが格納される。それぞれに格納されるデータには、副ボリューム１１５０内のブロックを示すブロック番号が含まれる。
【００４６】
副DKC１０４０は、正DKC１０３０と同様の処理を行うことで、副差分ボリュームＡ１１７０及び副差分ボリュームＢ１１７５内に同一ブロックに対応するデータが二つ以上存在しないように、古いデータを破棄する。
【００４７】
ホストコンピュータ１０１０が凍結の指示を出すのではなく、正DKC１０３０や副DKC１０４０が凍結指示を発行してもよい。
【００４８】
ホストコンピュータ１０１０上で動作するアプリケーションプログラムは正記憶装置システム１１８０へのデータの書き込みを指示するが、実際はホストコンピュータ１０１０のキャッシュメモリにそのデータが書き込まれ、正記憶装置システム１１８０に格納されているデータの内容がアプリケーションプログラムが意図していない状態となっている（つまり、書いた筈のデータが書かれていない）場合がある。
この状態で電源断などの原因でホストコンピュータ１０１０がダウンし、fsck等のファイルシステム復旧プログラムを正記憶装置システム１１８０に対して実行すると、正記憶装置システム１１８０に反映されていないデータは失われてしまう可能性がある。
正記憶装置システム１１８０に反映されていないデータの損失を避けるためには、正DKC１０３０等が凍結の指示を自由に出すのではなく、ホストコンピュータ１０１０がキャッシュ上の未反映データを全て正記憶装置システム１１８０に書き出してから、凍結指示を出すようにするほうが良い。
【００４９】
図２に、本実施形態におけるデータの流れを示す。
【００５０】
図２（ａ）は、ホストコンピュータ１０１０が凍結指示を出していない状態、すなわち通常の状態でのデータの流れを示した図である。
【００５１】
ホストコンピュータ１０１０から送られたデータは、正ボリューム１１２０に書き込まれる（矢印Ａ100）。正ボリューム１１２０に新たに書き込まれたデータは、正ボリューム１１２０から正DKC１０３０に読み出され、副DKC１０４０に転送されて、副差分ボリュームＡ１１７０に書き込まれる（矢印Ｂ110）。
【００５２】
任意の時点において、副ボリューム１１５０には、前回ホストコンピュータ１０１０が凍結指示を出した時点の正ボリューム１１２０のボリュームイメージと同一のボリュームイメージが格納されている。
【００５３】
図２（ｂ）は、ホストコンピュータ１０１０が凍結指示を発行してから、正DKC１０３０が全てのデータを転送したことを伝える信号（以下「全凍結データ送信済み」と称する。）を副DKC１０４０に発行するまでのデータの流れを示す図である。
【００５４】
ホストコンピュータ１０１０から送られたデータが、凍結指示時点のデータが既に副DKC１０４０に送られている正ディスク装置１１３０内のブロックに格納すべきデータであれば、そのまま正ボリューム1120に書き込まれる（矢印Ｃ120）。ホストコンピュータ１０１０から送られたデータが、まだ副DKC１０４０に送られていないデータを有するブロックに格納すべきデータである場合には、正差分ボリューム１１４０に書き込まれる（矢印Ｄ130）。
【００５５】
ホストコンピュータ１０１０から凍結指示があった時点で、正ボリューム１１２０に格納されていたデータでまだ副DKC１０４０に送られていないデータを含むブロックは、正ボリューム１１２０から正DKC１０３０に読み出され、副DKC１０４０に転送されて、副差分ボリュームＡ１１７０に書き込まれる（矢印Ｅ140）。
【００５６】
正DKC１０３０は正ビットマップ１０７０の内容にしたがって、ホストコンピュータ１０１０から凍結指示があった時点の正ボリューム１１２０と副ボリューム１１５０の差分データを全て副差分ボリュームＡ１１７０に転送する。転送が完了したら、正DKC１０３０は副DKC１０４０に対して全凍結データ転送済みを通知する。
【００５７】
任意の時点において、副ボリューム１１５０には、前回ホストコンピュータ１０１０が凍結の指示を出した時点で正ボリューム１１２０が保持しているボリュームイメージと同一内容のボリュームイメージが格納されている。
【００５８】
図２（ｃ）は、正DKC１０３０が副DKC１０４０に対し全凍結データ転送済みを通知した後、正DKC１０３０が正差分ボリューム１１４０に格納されているデータに基づいて正ボリューム１１２０に格納されたデータを更新し、副DKC１０４０が副差分ボリュームＡ１１７０に格納されたデータを用いて副ボリューム１１５０に格納されたデータを更新するまでのデータの流れを示す図である。
【００５９】
ホストコンピュータ１０１０から転送されたデータは、正ボリューム１１２０に書き込まれる（矢印Ｆ150）。
正ボリューム１１２０に格納されたデータは、正差分ボリューム１１４０に格納されたデータに基づいて更新される（矢印Ｇ160）。ただし、更新の対象となるデータを含むブロックが、ホストコンピュータ１０１０から転送されたデータに基づいて更新されている場合には、正差分ボリューム１１４０に格納されているデータに対応する正ボリューム１１２０のデータの更新は行われない。
【００６０】
ホストコンピュータ１０１０が凍結指示を発行した後に、ホストコンピュータ１０１０から正ディスク装置１１３０に転送されたデータは、正ボリューム１１２０から正DKC１０３０に読み出され、副DKC１０４０に送られて、副差分ボリュームＢ１１７５に格納される（矢印Ｈ170）。
【００６１】
副DKC１０４０は、副差分ボリュームＡ１１７０のデータを副DKC１０４０に読み出し、副ボリューム１１５０に格納する（矢印Ｉ180）。
【００６２】
任意の時点において、副ボリューム１１５０及び副差分ボリュームＡ１１７０に格納されたデータを組み合わせることで、今回ホストコンピュータ１０１０が正DKC１０３０に凍結指示を出した時点での正ボリューム１１２０のボリュームイメージが再現される。
【００６３】
以上より、図２（ａ）、（ｂ）においては、前回ホストコンピュータ１０１０から凍結指示があった時点での正ディスク装置１１２０のボリュームイメージと同一内容のボリュームイメージが副ボリューム１１５０に存在する。図２（ｃ）においては、凍結指示があった時点での正ディスク装置１１２０のボリュームイメージと同一内容のボリュームイメージを、副ボリューム１１５０及び副差分ボリュームＡ１１７０に格納されたデータを組み合わせて再現することができる。
【００６４】
つまり、いかなる場合においても、ある時点の正ディスク装置１１２０のボリュームイメージと矛盾しないボリュームイメージを副ディスク装置１１６０に用意することができる。
【００６５】
図３は、正DKC１０３０の構成を示す図である。
【００６６】
正DKC１０３０は、ホストインターフェース１２１０、ドライブインターフェース１２３０、ネットワークインターフェース１２２０、CPU１２４０、ROM１２５０、RAM１２６０及びダイレクトメモリアクセスコントローラ１２７０を有する。
【００６７】
ROM１２５０には、CPU１２４０で実行されるプログラムが格納されている。
【００６８】
RAM１２６０には、正凍結モード１０６０、正ビットマップ１０７０、正差分ビットマップ１０８０のデータのデータが格納されている。ＲＡＭ１２６０はキャッシュメモリとしても使用される。
CPU１２４０は正記憶装置システム１１８０の制御を行う。CPU１２４０では、マルチタスクを行うことが出来るオペレーティングシステムが実行されており、ライト処理２０００や正凍結処理２６００等を並列に処理することができる。
副DKC１０４０も正DKC１０３０と同一の構成を有する。ただし、副DKC１０４０においては、ホストインターフェース１２１０は副ホストコンピュータ１０２０と接続され、ドライブインターフェース１２３０は副ディスク装置１１６０と接続されている。ＲＡＭ１２６０には、副凍結モード１０９０、副ビットマップ１１００、副差分ビットマップ１１１０のデータが格納されている。
【００６９】
図４は、ホストコンピュータ１０１０が正記憶装置システム１１８０にデータの書き込みを指示するライトコマンド及び書き込まれるデータ（以下「ライトデータ」という。）を送った時に、正DKC１０３０で実行されるライト処理２０００のフローチャートである。
【００７０】
正DKC１０３０は、ホストインターフェース１２１０を介してライトデータを受領し（ステップ２０１０）、ＲＡＭ１２６０に格納された正凍結モード１０６０がオンであるかどうかを判定する（ステップ２０２０）。
【００７１】
正凍結モード１０６０がオフと判定された場合、正DKC１０３０は、正ボリューム１１２０が有するブロックのうち、正DKC１０３０が受領したライトデータが書き込まれるブロックに対応する正ビットマップ１０７０のビットを１にする（ステップ２０３０）。
【００７２】
正DKC１０３０は、正ボリューム１１２０にライトデータが書き込まれるよう正ディスク装置１１３０を制御する（ステップ２０４０）。正DKC１０３０自身が、後述する正リモートコピー処理２２００を実行中であるかどうかを判定し（ステップ２０５０）、実行中でなければ正DKC１０３０は正リモートコピー処理２２００を実行した後に、実行中であれば何もせずにライト処理２０００を終了する。
【００７３】
ステップ２０２０で正凍結モード１０６０がオンであると判定された場合、正DKC１０３０は、受領したライトデータが書き込まれるブロックに対応する正ビットマップ１０７０のビットが1であるかどうかを判定する（ステップ２０６０）。対応するビットが０であればステップ２０３０の処理を実行する。対応するビットが1であれば、受領したライトデータが格納されるブロックであって正ボリューム１１２０が有するブロックに対応する正差分ビットマップ１０８０のビットを1にする（ステップ２０７０）。
【００７４】
正DKC１０３０は、受領したライトデータに正ボリューム１１２０内のブロック番号情報を付加し、当該データが正差分ボリューム１１４０に書き込まれるよう正ディスク装置１１３０を制御する（ステップ２０８０）。その後ステップ２０５０の処理を行う。
【００７５】
図５は、正DKC１０３０が実行する正リモートコピー処理２２００のフローチャートである。
【００７６】
正リモートコピー処理２２００は、上述したライト処理２０００及び後述する正凍結処理２６００に呼び出される処理である。
【００７７】
正DKC１０３０は、正ビットマップ1070のビットが１で、かつＲＡＭ１２６０に格納されているデータが含まれるブロックが正ボリューム１１２０に存在するかどうかを判定する（ステップ２２３０）。条件に該当するブロックが存在すると判定した場合、正DKC１０３０はそのブロックを特定してステップ２２６０の処理を行う。
【００７８】
条件に該当するブロックが存在しないと判定した場合、正DKC１０３０は、正ビットマップ１０７０に１のビットが存在するかどうかを判定する（ステップ２２４０）。正ビットマップ１０７０に１のビットが存在しないと判定されたら、正リモートコピー処理２２００を終了する。
【００７９】
正ビットマップ１０７０に１のビットが存在すると判定した場合、正DKC１０３０は、正ビットマップ１０７０の１のビットに対応するブロックを指定して、指定されたブロックのデータを正ボリューム１１２０から読み出してＲＡＭ１２６０に格納する（ステップ２２５０）。
【００８０】
正DKC１０３０は、指定したブロックに対応する正ビットマップ１０７０のビットを０にする（ステップ２２６０）。正DKC１０３０は、読み出したデータをネットワークインタフェース１２２０を介して副DKC１０４０に転送する（ステップ２２７０）。
【００８１】
副DKC１０４０から受領報告を受けたら（ステップ２２８０）、正DKC１０３０は、ステップ２２３０の処理に戻る。
【００８２】
図６は、正DKC１０３０が副DKC１０４０にデータを送った場合に、副DKC１０４０が実行する副リモートコピー処理２４００のフローチャートである。
【００８３】
副DKC１０４０は、ネットワークインターフェース１２２０を介して正DKC１０３０から送られたデータを受領し（ステップ２４１０）、正DKC１０３０へ受領を示す報告を送信する（ステップ２４２０）。
副DKC１０４０は、ＲＡＭ１２６０に格納された副凍結モード１０９０の値が２であるかどうかを判定し（ステップ２４３０）、２でなければ副差分ボリュームＡ１１７０へ受領したデータが書き込まれるよう、副ディスク装置１１６０を制御する（ステップ２４４０）。
副DKC１０４０は、書き込まれたデータを有するブロックに対応する副ビットマップ１１００のビットを１にして、副リモートコピー処理２４００を終了する（ステップ２４５０）。
【００８４】
副凍結モード１０９０の値が２である場合、副DKC１０４０は、受領したデータが副差分ボリュームＢ１１７５に書き込まれるよう副ディスク装置１１６０を制御する（ステップ２４６０）。
副DKC１０４０は、書き込まれたデータを有するブロックに対応する副差分ビットマップ１１１０のビットを１にして、副リモートコピー処理２４００を終了する（ステップ２４７０）。
【００８５】
図７は、ホストコンピュータ１０１０が凍結指示を行ったときに、正DKC１０３０が実行する正凍結処理２６００のフローチャートである。
【００８６】
正DKC１０３０は、ホストインターフェース１２１０を介してホストコンピュータ１０１０から凍結指示を受け取ったら、ＲＡＭ１２６０に格納されている正凍結モード１０６０をオンにする（ステップ２６１０）。
正DKC１０３０は、副DKC１０４０に凍結指示を送信する（ステップ２６２０）。
正DKC１０３０は、正DKC１０３０自身がリモートコピー処理２２００を実行中であるかどうかの判定を行う（ステップ２６２５）。
正DKC１０３０自身がリモートコピー処理２２００を実行中であれば、正DKC１０３０は、しばらく(たとえば数ミリ秒)ウエイトをした後に（ステップ２６３５）、ステップ２６４０の処理を行う。
正DKC１０３０自身がリモートコピー処理２２００を実行中でなければ、正リモートコピー処理２２００を行って（ステップ２６３０）、ステップ２６４０の処理を行う。
ステップ２６４０で、正DKC１０３０は、正ビットマップ１０７０がすべて０であるかどうかを判定する。正ビットマップ１０７０に１を示すビットがあれば、副DKC１０４０へ送るべきデータがまだ正ディスク装置１１３０内に残っているので、正DKC１０３０は再度ステップ２６２５以下の処理を正ビットマップ１０７０のビットが全て０になるまで行う。
【００８７】
正ビットマップ１０７０がすべて０である場合、正DKC１０３０は、副DKC１０４０に全凍結データ送信済みを送信する（ステップ２６５０）。
正DKC１０３０は、正差分ビットマップ１０８０の値がすべて０であるかどうかを判定する（ステップ２６６０）。
正差分ビットマップ１０８０の値が全て０でなければ、正DKC１０３０は、正差分ボリューム１１４０から正差分ビットマップ１０８０のビットが１であるブロックのデータを読み出し（ステップ２６７０）、正ボリューム１１２０の対応するブロックに書き込むよう、正ディスク装置１１３０を制御する（ステップ２６８０）。
正DKC１０３０は、書き込まれたデータを含むブロックに対応する正差分ビットマップ１０８０のビットを０にし（ステップ２６９０）、正ビットマップ１０７０の対応するビットを１にして、ステップ２６６０の処理に戻る（ステップ２６９５）。
【００８８】
ステップ２６６０で、正差分ビットマップ１０８０の値がすべて０であると判定された場合、正DKC１０３０は、副DKC１０４０からの完了報告を待つ（ステップ２７００）。副DKC１０４０から送信される完了報告を受け取ったら（ステップ２７１０）、正DKC１０３０は、ＲＡＭ１２６０に格納されている正凍結モード１０６０をオフとし（ステップ２７２０）、ホストコンピュータ1010に凍結処理完了報告を示す信号を送信して、正凍結処理２６００を終了する（ステップ２７３０）。
【００８９】
ステップ２６５０が終了した段階ですぐにステップ２７００の処理を行い、正差分ボリュームの更新処理（ステップ２６６０〜２６９５）は正凍結処理終了後に実行されても良い。
【００９０】
図８は、正DKC１０３０が副DKC１０４０に凍結指示を行ったときに、副DKC１０４０が実行する副凍結処理２８００のフローチャートである。
【００９１】
副DKC１０４０は、正DKC１０３０から凍結指示の信号を受け取ったら、ＲＡＭ１２６０に格納されている副凍結モード１０９０を１にし（ステップ２８１０）、正DKC１０３０より全凍結データ送信済みが送信されるのを待つ（ステップ２８２０）。
正DKC１０３０より全凍結データ送信済みを受け取ったら、副DKC１０４０は、副凍結モード１０９０を２にする（ステップ２８２５）。
副DKC１０４０は、ＲＡＭ１２６０に格納されている副ビットマップ１１００の対応するビットが１でかつＲＡＭ１２６０上にデータのあるブロックがあるかどうかを判定する（ステップ２８３０）。
該当するブロックがＲＡＭ１２６０上に存在すると判定されたら、副DKC１０４０は、ステップ２８６０の処理を行う。該当するブロックが存在しないと判定されたら、対応する副ビットマップ１１００のビットが１であるブロックがあるかどうかを判定する（ステップ２８４０）。
【００９２】
対応する副ビットマップ１１００のビットが１であるブロックがあると判定されたら、副DKC１０４０は、副差分ボリュームＡ１１７０より、１であるビットに対応するデータをＲＡＭ１２６０に読み込み（ステップ２８５０）、ＲＡＭ１２６０に読み込んだデータに対応する副ボリューム１１５０のブロックに当該データを書き込む（ステップ２８６０）。
副DKC１０４０は、書き込みが終了したデータに対応する副ビットマップ１１００のビットを０にして（ステップ２８７０）、ステップ２８３０の処理に戻る。
【００９３】
ステップ２８４０で副ビットマップ１１００のビットが１であるブロックが無いと判定された場合、副DKC１０４０は、副凍結モード１０９０を０とし（ステップ２８８０）、正DKC１０３０に副凍結処理の完了報告を送信して（ステップ２８９０）、副凍結処理２８００を終了する。
【００９４】
図９は、ホストコンピュータ１０１０及び正記憶装置システム１１８０が災害などのために全く使用不可能となった場合に、副ホストコンピュータ１０２０の指示に基づいて副DKC１０４０が行う副復旧処理３０００のフローチャートである。
【００９５】
副ホストコンピュータ１０２０からの指示を受領したら、副DKC１０４０は、副凍結モード１０９０が１かどうかを判定する（ステップ３０１０）。副凍結モード１０９０が１であれば、副DKC１０４０は、副DKC１０４０自身が実行中の副凍結処理２８００を中断し（ステップ３０４０）、副凍結モードを０にする（ステップ３０５０）。
副DKC１０４０は、副差分ビットマップの値を全て０に初期化し（ステップ３０６０）、副差分ボリュームＡ１１７０及び副差分ボリュームＢ１１７５が有する情報を消去する（ステップ３０７０）。
副DKC１０４０は、副ホストコンピュータ１０２０に完了報告を送信し（ステップ３０８０）、副復旧処理３０００を終了する。
【００９６】
ステップ３０１０で副凍結モード１０９０が１でないと判定された場合、副DKC１０４０は、副凍結モード１０９０が０であるかどうかを判定する（ステップ３０２０）。副凍結モード１０９０が０であれば、副DKC１０４０は、ステップ３０６０の処理を行い、副凍結モード１０９０が０でなければ、副凍結モード１０９０が０になるのを待ってステップ３０２０の処理を行う（ステップ３０３０）。
【００９７】
副復旧処理３０００によって、副ボリューム１１５０には、前回あるいは今回ホストコンピュータ１０１０より正DKC１０３０への凍結指示があった時点での正ボリューム１１２０のボリュームイメージの複製が行われ、副ホストコンピュータ１０２０はそれを自由に使うことができる。
【００９８】
図１０は、ホストコンピュータ１０１０が正記憶装置システム１１８０に対してデータのリードコマンドを発行したときに、正DKC１０３０が実行するリード処理３２００のフローチャートである。
【００９９】
ホストコンピュータ１０１０から発行されたリードコマンドを受領すると、正DKC１０３０は、ホストコンピュータ１０１０から要求されたデータがＲＡＭ１２６０に存在するか否かを判定する（ステップ３２０５）。
要求されたデータがＲＡＭ１２６０に存在しないと判定されたら、正DKC１０３０は、正凍結モード１０６０を調べる（ステップ３２１０）。正凍結モード１０６０がオフであれば、正DKC１０３０は、正ボリューム１１２０から要求されたデータを読み出し（ステップ３２２０）、ホストコンピュータ１０１０にそのデータを転送してリード処理３２００を終了する（ステップ３２３０）。
【０１００】
ステップ３２１０で正凍結モード１０６０がオンであると判定された場合、正DKC１０３０は、ホストコンピュータ１０１０から要求されたデータに対応する正差分ビットマップ１０８０のビットが１であるかどうかを判定する（ステップ３２４０）。
対応するビットが０であれば、正DKC１０３０は、ステップ３２２０の処理を行う。対応するビットが１であれば、正DKC１０３０は、ホストコンピュータ１０１０から要求されたデータを正差分ボリューム１１４０から探して読み出し、ステップ３２３０の処理を行う（ステップ３２５０）。
【０１０１】
ステップ３２０５で、要求されたデータがＲＡＭ１２６０に存在すると判定されたら、正DKC１０３０はステップ３２３０の処理を行う。
【０１０２】
図１１は、コンピューターシステム１０００が有する各装置間における凍結指示の授受を示す図である。
図１１では、縦が時間軸になっており、図面の下部に行くほど時間が経過することを意味する。
【０１０３】
ホストコンピュータ１０１０は、正DKC１０３０に凍結指示を出し、正DKC１０３０はそれを受けて副DKC１０４０に凍結指示を出す。
【０１０４】
正DKC１０３０は、凍結指示を受けた時点での正ボリューム１１２０のボリュームイメージを副DKC１０４０に転送し終わったら、副DKC１０４０に対して全凍結データ転送済みを送信する。
【０１０５】
副DKC１０４０は、凍結指示時点での正ボリューム１１２０のデータを副ボリューム１１５０に反映し、データの反映が終了したら、正DKC１０３０に凍結完了を報告する。正DKC１０３０はそれを受けて、ホストコンピュータ１０１０に凍結完了を報告する。
【０１０６】
本実施形態の構成とすることで、正ディスク装置に保持されているデータと矛盾しないデータを副ディスク装置に保持することができ、データ破壊等があった場合にも、データの損失を減少させることができる。
つまり、副記憶装置システム１１９０は、凍結指示時点のデータを持つと同時に、それ以降ライトされたデータを差分データとして保持する。この凍結を定期的に行うことで、何らかの原因で正記憶装置システム１１８０のデータが使えなくった場合、前回凍結された時点の全てのデータを副記憶装置システム１１９０から得ることができる。
尚、本実施形態では、正ディスク装置１１３０の内部に複数のボリュームがあるとして説明したが、正記憶装置システム１１８０内に複数のディスク装置があって、それぞれがボリュームの役目を担ってもよい。副ディスク装置１１６０についても、同様である。
【０１０７】
図１２は、本発明が適用されたコンピューターシステム１０００の第２の実施形態を示す図である。
本実施形態は、ホストコンピュータ１０１０から凍結指示があった時のボリュームイメージのコピーを正ディスク装置１１３０内にいったん作成し、作成されたボリュームから副DKCにデータを転送する点が、第一の実施形態とは異なる。
副記憶装置システムに二つのボリュームを用意し、一つは正ディスク装置１１３０と無矛盾のボリュームを保持するために使用するボリュームとする点でも第一の実施形態と異なる。
【０１０８】
以下、第1の実施形態のコンピュータシステム１０００と異なる点について説明する。
説明されない部分については、第一の実施形態と同様の構成を有するものとし、同一の符号が与えられている。
【０１０９】
正ディスク装置１１３０’は、正正ボリューム１３００及び正副ボリューム１３１０を有する。
正正ボリューム１３００には、ホストコンピュータ１０１０から転送されるデータが格納される。正副ボリューム１３１０は、凍結指示があった時点の正正ボリューム１３００のボリュームイメージを複製する際に使用される。正正ボリューム１３００及び正副ボリューム１３１０が有するブロックは、一対一に対応している。
【０１１０】
正DKC１０３０’は、正ビットマップＡ１３４０、正ビットマップＢ１３５０、正ビットマップＣ１３６０をＲＡＭ１２６０に有する。
【０１１１】
正ビットマップＡ１３４０は、含まれるビットが１である場合には、そのビットに対応するブロックについては、正正ボリューム１３００と正副ボリューム１３１０で格納されているデータの内容が異なることを示す。
【０１１２】
正ビットマップＢ１３５０も正正ボリューム１３００と正副ボリューム１３１０との差を示すが、ホストコンピュータ１０１０から凍結指示が送信された後に正正ボリューム１３００に書き込みが行われたブロックに対応するビットのみ１になる。
正ビットマップＣ１３６０は、正副ボリューム１３１０と副正ボリューム１３２０に格納されたデータの内容に差があることを示す。
副ディスク装置１１６０’は、副正ボリューム１３２０と副副ボリューム１３３０を有する。
副正ボリューム１３２０には、正DKC１０３０’から転送されたデータが書き込まれる。副副ボリューム１３３０には、前回凍結処理が行われた時点における正正ボリューム１３００のボリュームイメージが構築される。
【０１１３】
副DKC１０４０’は、副正ボリューム１３２０と副副ボリューム１３３０の差分を示す副ビットマップＡ１３７０をＲＡＭ１２６０に有する。本実施形態において副凍結モード１０９０は使用されない。
【０１１４】
図１３は、本実施例に対応するデータの流れを示す図である。
【０１１５】
図１３（ａ）に、ホストコンピュータ１０１０が凍結指示を発行していない場合のデータの流れを示す。
【０１１６】
ホストコンピュータ１０１０から転送されたデータは、正正ボリューム１３００に書き込まれる（矢印Ｊ190）。
副副ボリューム１３３０には、前回ホストコンピュータ１０１０が凍結指示を発行した時点の正正ボリューム１３００のボリュームイメージが格納されているとする。
【０１１７】
図１３（ｂ）に、ホストコンピュータ１０１０が凍結指示を出してから、正記憶装置システム１１８０が凍結指示時点の正正ボリューム１３００のボリュームイメージのコピーを正副ボリューム１３１０に作成するまでの間のデータの流れを示す。
【０１１８】
正ディスク装置１１３０は、正正ボリューム１３００から正副ボリューム１３１０へデータのコピーを行う（矢印Ｌ210）。
正DKC１０３０’が受け取ったデータは、正正ボリューム１３００に書き込まれる（矢印Ｋ200）が、正副ボリューム１３１０へのコピーがまだ行われていないブロックに対する書き込みであった場合には、矢印Ｌ210に示されるデータのコピー処理が終了してから、正正ボリューム１３００にデータが書き込まれる。
【０１１９】
図１３（ｃ）に、ホストコンピュータ１０１０が凍結指示を行った時点での正正ボリューム１３００のボリュームイメージが正副ボリューム１３１０に作成されてから、正副ボリューム１３１０に作成されたボリュームイメージが副DKC１０４０’が管理する副正ボリューム１３２０に作成されるまでの間のデータの流れを示す。
ホストコンピュータ１０１０から転送されたデータは、正正ボリューム１３００に書き込まれる（矢印Ｍ220）。データが正正ボリュームに書き込まれている間に、正副ボリューム１３１０のデータは正DKC１０３０’に読み出され、副DKC１０４０’に転送されて、副正ボリューム１３２０に書き込まれる（矢印Ｎ220）。
【０１２０】
図１３（ｄ）に、副正ボリューム１３２０に、ホストコンピュータ１０１０が凍結指示を出した時点の正正ボリューム１３００のボリュームイメージが作成されてから、それが副副ボリューム１３３０にコピーされるまでの間のデータの流れを示す。
【０１２１】
ホストコンピュータ１０１０から転送されるデータは、正正ボリューム１３００に書き込まれる（矢印Ｏ240）。
副DKC１０４０’が、副正ボリューム１３２０から副副ボリューム１３３０へのデータのコピーを制御する（矢印Ｐ250）。
【０１２２】
本実施形態においては、正正ボリューム１３００のボリュームイメージを複製するためのデータのコピーは、コピー元ボリュームとコピー先ボリュームに格納されているデータのうち、異なるデータのみを差分コピーする形態で行う。
図１３（ａ）、（ｂ）、（ｃ）において、副副ボリューム１３３０は、前回ホストコンピュータ1010が凍結指示を発行した時点の正正ボリューム１３００のボリュームイメージを保持している。
図１３（ｄ）において、副正ボリューム１３２０は、今回ホストコンピュータ１０１０が凍結指示を発行した時点の正正ボリューム１３００のボリュームイメージを保持することになる。
したがって、ある時点における正正ボリューム１３００のボリュームイメージがどの場合においても保持されていることとなる。
【０１２３】
図１４は、本実施形態のコンピュータシステム１０００における凍結指示の流れを示す図である。本図においては縦が時間軸になっており、図面の下に行くほど時間が経過することを意味する。
【０１２４】
ホストコンピュータ１０１０は、正DKC１０３０’に凍結指示を出す。
凍結指示を受け取ると、正DKC１０３０’は、凍結指示があった時点で正正ボリューム１３００に格納されているデータを全て正副ボリューム１３１０に差分コピー（以下、「split」と称する。）する。差分コピーが終了すると、正DKC１０３０’は、正副ボリューム１３１０のデータを読み出して、副DKC１０４０’に送信する。副DKC１０４０’は、正DKC１０３０’から受け取ったデータを副正ボリューム１３２０に書き込む。
正DKC１０３０’は、副DKC１０４０’に対して凍結指示を発行する。凍結指示を受け取った副DKC１０４０’は、副正ボリューム１３２０のボリュームイメージを副副ボリューム１３３０にsplitする。Splitが終了したら、副DKC１０４０’は、正DKC１０３０’に凍結完了を送信し、凍結完了を受け取った正DKC１０３０’は、ホストコンピュータ１０１０に凍結完了を報告する。
【０１２５】
図１５は、ホストコンピュータ１０１０が正記憶装置システム１１８０にデータを転送したときに、正DKC１０３０’が実行するライト処理Ａ３４００のフローチャートである。
【０１２６】
正DKC１０３０’は、ホストコンピュータ１０１０よりライトデータを受領し（ステップ３４１０）、正凍結モード１０６０がオンかどうかを判定する（ステップ３４２０）。
正凍結モード１０６０がオンならば、正DKC１０３０’は、転送されたデータを格納するブロックに対応する正ビットマップＡ１３４０のビットが１かどうかを判定する（ステップ３４３０）。
正ビットマップＡ１３４０のビットが０であれば、正DKC１０３０’は、ステップ３４７の処理を行う。正ビットマップＡ１３４０のビットが１であれば、正DKC１０３０’は、１のビットに対応するブロックに格納されているデータを正正ボリューム１３００から正副ボリューム１３１０にコピーするように正ディスク装置１１３０を制御する（ステップ３４４０）。
コピーが終了したら、正DKC１０３０’は、正ビットマップＡ１３４０の対応ビットを０とし（ステップ３４５０）、正ビットマップＣ１３６０の対応ビットを１にする（ステップ３４６０）。
正DKC１０３０’は、転送されたデータを格納するブロックに対応する正ビットマップＢ１３５０のビットを１として（ステップ３４７０）、ライトデータを正正ボリューム１３００の対応するブロックに書き込んでライト処理Ａ３４００を終了する（ステップ３４８０）。
【０１２７】
ステップ３４２０で正凍結モードがオフであると判定した場合、正DKC１０３０’は、対応する正ビットマップＡのビットを1としてステップ３４８０の処理を行う（ステップ３４９０）。
【０１２８】
図１６は、ホストコンピュータ１０１０が正DKC１０３０’に凍結指示を発行したときに、正DKC１０３０’が実行する正凍結処理Ａ３６００のフローチャートである。
【０１２９】
正DKC１０３０’は、ホストコンピュータ１０１０より凍結指示を受領すると（ステップ３６１０）、正凍結モードをオンとして（ステップ３６２０）、正ビットマップＡ１３４０のビットが全て０かどうかを判定する（ステップ３６３０）。
【０１３０】
ステップ３６３０で正ビットマップＡ１３４０のビットが全て０ではないと判定した場合、正DKC１０３０’は、正ビットマップＡ１３４０でビットが１となっているブロックを指定する（ステップ３６４０）。正DKC１０３０’は、正正ボリューム１３００の指定されたブロックを読み出し、正副ボリューム１３１０にコピーするように、正ディスク装置１１３０’を制御する（ステップ３６５０）。
指定されたブロックのコピーが終了したら、正DKC１０３０’は、正ビットマップＡ１３４０の対応するビットを０とし（ステップ３６６０）、正ビットマップＣ１３６０の対応するビットを１としてステップ３６３０の処理に戻る（ステップ３６７０）。
【０１３１】
ステップ３６３０で正ビットマップＡ１３４０のビットが全て０ではないと判定した場合、正DKC１０３０’は、正ビットマップＣ１３６０のビットが全て０であるかどうかを判定する（ステップ３６８０）。
正ビットマップＣ１３６０のビットが全て０ではないと判定した場合、正DKC１０３０’は、正ビットマップＣ１３６０の１であるビットを選択し（ステップ３６９０）、正副ボリューム１３１０のビットに対応するブロックを読み出し、副DKC１０４０’に送信する（ステップ３７００）。
正DKC１０３０’は正ビットマップＣ１３６０の対応するビットを０としてステップ３６８０の処理に戻る（ステップ３７１０）。
【０１３２】
ステップ３６８０で正ビットマップＣ１３６０のビットが全て０であると判定した場合、正DKC１０３０’は、副DKC１０４０’に凍結指示を発行し（ステップ３７２０）、副DKC１０４０’から凍結完了報告が来るのを待つ（ステップ３７３０）。
副DKC１０４０’から凍結完了報告を受領したら（ステップ３７４０）、正DKC１０３０’は、正ビットマップＢ１３５０の内容を正ビットマップＡ１３４０にコピーし（ステップ３７５０）、正ビットマップＢ１３５０を全て０にする（ステップ３７６０）。正DKC１０３０’は、正凍結モード１０６０をオフとし（ステップ３７７０）、ホストコンピュータ１０１０に凍結完了報告を送信して正凍結処理Ａ３６００を終了する（ステップ３７８０）。
【０１３３】
図１７は、正DKC１０３０’が、正凍結処理Ａ３６００のステップ３７００で副DKC１０４０に対してリモートコピーの処理を行ったときに、副DKC１０４０が実行する副リモートコピー処理Ａ３８００のフローチャートである。
【０１３４】
正DKC１０３０’よりデータを受領したら（ステップ３８１０）、副DKC１０４０は、受領したデータを副正ボリューム１３２０の対応するブロックに書き込むよう、副ディスク装置１１６０を制御する（ステップ３８２０）。
データの書き込みが終了したら、副DKC１０４０は、副ビットマップＡ１３７０の対応するビットを１として副リモートコピー処理A３８００を終了する（ステップ３８３０）。
【０１３５】
図１８は、正DKC１０３０’が副DKC１０４０’に凍結指示を発行したとき、副DKC１０４０’が実行する副凍結処理Ａ４０００のフローチャートである。
【０１３６】
正DKC１０３０’から凍結指示を受領した副DKC１０４０’は、副ビットマップＡ１３７０が全て０であるかどうかを判定する（ステップ４０１０）。
副ビットマップＡ１３７０が全て０ではないと判定した場合、副DKC１０４０’は、副ビットマップＡ１３７０の１であるビットに対応する副正ボリューム１３２０のブロックを選択し（ステップ４０２０）、そのブロックを読み出し、副副ボリューム１３３０の対応ブロックにコピーするよう、副ディスク装置１１６０’を制御する（ステップ４０３０）。
対応するブロックのコピーが終了したら、副DKC１０４０’は、副ビットマップＡ１３７０の対応するビットを０としてステップ４０１０の処理に戻る（ステップ４０４０）。
【０１３７】
ステップ４０１０で副ビットマップＡ１３７０が全て０であると判定した場合、副DKC１０４０’は、正DKC１０３０’へ凍結完了を送信し、副凍結処理Ａ４０００を終了する（ステップ４０５０）。
【０１３８】
本実施形態では、前回ホストコンピュータ１０１０から凍結指示があった時点の正正ボリューム１３００のボリュームイメージが、副副ボリューム１３３０あるいは副正ボリューム１３２０に格納されているため、副復旧処理３０００に相当する処理は不要である。
ホストコンピュータ１０１０からリード要求があった場合には、第一の実施形態のような処理を行う必要はなく、単に正正ボリューム１３００のデータを転送すればいい。
【０１３９】
図１９は、本発明を適用したコンピューターシステム１０００の第三の実施形態の構成を示す図である。
【０１４０】
本実施形態は、第二の実施形態では、図１３の中で図１３（ｃ）でしかリモートコピーを行っておらず、ネットワークを有効に使うことができなかった点を改良したものである。
以下、第二の実施形態と異なる点についてのみ説明する。
【０１４１】
正DKC１０３０’’は、正ビットマップＤ１３８０をＲＡＭ１２６０に有する。
【０１４２】
正ビットマップＤ１３８０は、正副ボリューム１３１０にまだコピーされていない正正ボリューム１３００に格納されたデータで、かつ凍結指示が出される前に副正ボリューム１３２０にリモートコピーされたブロックを示す。
【０１４３】
副DKC１０４０’’は、副ビットマップＢ１３９０を有する。
副ビットマップＢ１３９０は、今回凍結指示があった以降、さらに次の凍結指示が出される前に、正DKC１０３０’’から副正ボリューム１３２０にリモートコピーされたブロックを示す。
【０１４４】
本実施形態において、正凍結モード１０６０は０から３までの整数値をとる。副凍結モード１０９０はオン・オフのいずれかを示す。
【０１４５】
図２０は、本実施形態のコンピュータシステム１０００におけるデータの流れを示す図である。
以下、第二の実施形態を適用したコンピュータシステム１０００におけるデータの流れを示した図１３と比較しながら説明する。
【０１４６】
図２０（ａ）において、ホストコンピュータ１０１０から正正ボリューム１３００に書き込まれたデータは、ホストコンピュータ１０１０が凍結指示を発行する前に、先行して副DKC１０４０’’に転送される（矢印Ｒ270）。矢印Ｑ260は、図１３の矢印Ｊ190に相当する。
【０１４７】
図２０（ｂ）の矢印Ｓ280及び矢印Ｔ290は、それぞれ図１３（ｂ）に示される矢印Ｋ200、矢印Ｌ210に対応するデータの流れを示す。
正副ボリューム１３１０にコピー（矢印Ｔ290）されたデータで、まだ副正ボリューム１３２０に送られていないものは、正副ボリューム１３１０の該当するブロックから正DKC１０３０’’を介して副DKC１０４０’’に転送されて、副正ボリューム１３２０に書き込まれる（矢印Ｕ300）。
図２０（ｃ）に示す矢印Ｖ310及び矢印Ｗ320は、それぞれ図１３（ｃ）に示す矢印Ｍ220及び矢印Ｎ230に対応している。
【０１４８】
図２０（ｄ）に示す矢印Ｘ330及びＺ350は、それぞれ図１３にて示した矢印Ｏ240及び矢印Ｐ250に対応している。
正正ボリューム１３００に新たに書き込まれたデータ（矢印Ｘ330）は、ホストコンピュータ１０１０の次の凍結指示が発行される前に先行して副正ボリューム１３２０にコピーされる（矢印Ｙ340）。
副正ボリューム１３２０から副副ボリューム１３００へまだコピーされていないブロックに対するデータを、副DKC１０４０’’が正DKC１０３０’’より受け取った場合には、副DKC１０４０’’は、いったん受け取ったデータを含むブロックを副正ボリューム１３２０から副副ボリューム１３３０にコピーする（矢印Ｚ350）。その後、副DKC１０４０’’は、副正ボリューム１３２０の対応するブロックにデータが書き込まれる様に、副ディスク装置１１６０’を制御する。
【０１４９】
図２１は、本実施形態を適用したコンピューターシステム１０００における凍結指示の流れを示す図である。縦が時間軸になっており、図の下に行くほど時間が経過することを意味する。
【０１５０】
図１４と比較すると、より長い時間リモートコピーが行われている点が異なる。
【０１５１】
図２２は、ホストコンピュータ１０１０から正記憶装置システム１１８０にデータが転送されたときに、正DKC１０３０’’が実行するライト処理Ｂ４２００のフローチャートである。
【０１５２】
正DKC１０３０’’は、ホストコンピュータ１０１０よりライトデータを受領した（ステップ４２１０）、正凍結モード１０６０が０であるかどうかを判定する（ステップ４２２０）。正凍結モード１０６０が０でなければ、正DKC１０３０’’は、正凍結モード１０６０が１であるかどうかを判定する（ステップ４２３０）。
正凍結モード１０６０が１でなければ、正DKC１０３０’’は、正凍結モード１０６０が２であるかどうかを判定する（ステップ４２４０）。
正凍結モード１０６０が２であれば、正DKC１０３０’’は、ステップ４２６０の処理を実行し、２でなければ（つまり３であれば）、正DKC１０３０’’は、転送されたブロックに対応する正ビットマップＤ１３８０のビットを０とする（ステップ４２５０）。
正DKC１０３０’’は、正ビットマップＡ１３４０のライトデータに対応するビットを１として（ステップ４２６０）、正正ボリューム１３００の対応するブロックにライトデータを格納するよう正ディスク装置１１３０’を制御して、正ライト処理Ｂ４２００を終了する（ステップ４２７０）。
【０１５３】
ステップ４２２０で正凍結モード１０６０が０であると判定した場合、正DKC１０３０’’は、正ビットマップＣ１３８０の対応するビットを０としてステップ４２５０の処理を行う（ステップ４２８０）。
【０１５４】
ステップ４２３０で正凍結モード１０６０が１であると判定した場合、正DKC１０３０’’は、正ビットマップＡ１３４０の対応するビットが１であるかどうかを判定する（ステップ４２９０）。対応するビットが０であったら、正DKC１０３０’’は、ステップ４３３０の処理を行い、１であったら、ビットに対応する正正ボリューム１３００のブロックのデータを正副ボリューム１３１０の対応するブロックにコピーするように、正ディスク装置１１６０’を制御する（ステップ４３００）。
正DKC１０３０’’は、コピーされたデータに対応する正ビットマップＡ１３４０のビットを０とする（ステップ４３１０）。正DKC１０３０’’は、コピーされたデータに対応する正ビットマップＣ１３６０のビットを１とする（ステップ４３２０）。正DKC１０３０’’は、コピーされたデータに対応する正ビットマップＢ１３５０のビットを１として（ステップ４３３０）、ステップ４２７０の処理に戻る。
【０１５５】
図２３は、ホストコンピュータ１０１０が正DKC１０３０’’に凍結指示を発行したときに正DKC１０３０’’が実行する正凍結処理Ｂ４４００のフローチャートである。
【０１５６】
正DKC１０３０’’は、ホストコンピュータ１０１０より凍結指示を受領すると（ステップ４４１０）、正凍結モード１０６０を１として、正凍結処理Ｂ４４００を終了する（ステップ４４２０）。
【０１５７】
図２４は、正記憶装置システム１１８０の電源が入れられた時に正DKC１０３０’’で起動され、その後、正DKC１０３０’’が一つのタスクとしてずっと実行している正コピー処理４６００のフローチャートである。
【０１５８】
正DKC１０３０’’は、正凍結モード１０６０が１であるかどうかを判定する（ステップ４６１０）。正凍結モード１０６０が１であれば、正ビットマップＡ１３４０に含まれるビットに１のビットがあるかどうかを判定する（ステップ４６２０）。
正ビットマップＡ１３４０に１のビットがあれば、正DKC１０３０’’は、そのビットに対応するブロックを選択し（ステップ４６３０）、選択された正正ボリューム１３００のビットに対応するブロックのデータを、正副ボリューム１３１０の対応するブロックにコピーするよう、正ディスク装置１１３０’を制御する（ステップ４６４０）。
コピーが終了したら、正DKC１０３０’’は、正ビットマップＡ１３４０の対応するビットを０とし（ステップ４６５０）、正ビットマップＣ１３６０の対応するビットを１として、ステップ４６２０の処理に戻る（ステップ４６６０）。
【０１５９】
ステップ４６１０で正凍結モードが１ではないと判定した場合、正DKC１０３０’’は、ステップ４６８０の処理を行う。
【０１６０】
ステップ４６２０で正ビットマップＡ１３４０に１のビットが無いと判定した場合、正DKC１０３０’’は、正凍結モード１０６０を２とし（ステップ４６７０）、しばらく（数ミリ秒程度）ウエイトしてステップ４６１０の処理に戻る（ステップ４６８０）。
【０１６１】
図２５は、正記憶装置システム１１８０の電源が入れられた時に正DKC１０３０’’で起動され、正DKC１０３０’’一つのタスクとして実行している正リモートコピー処理４８００のフローチャートである。
【０１６２】
正DKC１０３０’’は、正凍結モード１０６０が０あるいは３であるかどうかを判定する（ステップ４８１０）。正凍結モード１０６０が０あるいは３であった場合、正ビットマップＡ１３４０のビットが１であるブロックがあるかどうかを判定し（ステップ４８２０）、あればそのブロックを選択する（ステップ４８３０）。
正DKC１０３０’’は、選択したブロックに対応する正ビットマップＤ１３８０のビットを1として（ステップ４８４０）、正正ボリューム１３００より対応するブロックを読み出し、副DKC１０４０’’に転送する（ステップ４８５０）。正DKC１０３０’’は、副DKC１０４０’’よりデータの受領報告を受け取り、ステップ４８１０の処理に戻る（ステップ４８６０）。
【０１６３】
ステップ４８２０で正ビットマップＡ１３４０のビットが１であるブロックが無いと判定した場合、正DKC１０３０’’は、しばらく（数ミリ秒程度）ウエイトし、ステップ４８１０の処理に戻る（ステップ４８７０）。
【０１６４】
ステップ４８１０で正凍結モード１０６０が０でも３でも無いと判定した場合、正DKC１０３０’’は、正ビットマップＣ１３６０が１で、かつ正ビットマップＤ１３８０が０であるブロックがあるかどうかを判定する（ステップ４８８０）。
条件を満たすブロックがあれば、正DKC１０３０’’は、そのブロックを選択し（ステップ４８９０）、正ビットマップＣ１３６０の対応するビットを０とする（ステップ４９００）。正DKC１０３０’’は、正副ボリューム１３１０より選択したブロックを読み出し、副DKC１０４０’’に転送する（ステップ４９１０）。
正DKC１０３０’’は、副DKC１０４０’’よりデータの受領報告を受け取り、ステップ４８１０の処理に戻る（ステップ４９２０）。
【０１６５】
ステップ４８８０で、正ビットマップＣ１３６０が１でかつ正ビットマップＤ１３８０が０であるブロックが存在しないと判定した場合、正DKC１０３０’’は、正凍結モード１０６０が２であるかどうかを判定する（ステップ４９３０）。
正凍結モード１０６０が２であれば、正DKC１０３０’’は、正ビットマップＤ１３８０を全て０にクリアし（ステップ４９４０）、正凍結モード１０６０を３とし（ステップ４９５０）、副DKC１０４０’’に凍結指示を発行してステップ４８１０の処理へ戻る（ステップ４９６０）。
【０１６６】
ステップ４９３０で正凍結モード１０６０が２でないと判定した場合、正DKC１０３０’’は、しばらく（数ミリ秒程度）ウエイトし、ステップ４８１０の処理に戻る（ステップ４９７０）。
【０１６７】
図２６は、副DKC１０４０’’から凍結完了報告を受領したときに正DKC１０３０’’が実行する正凍結完了処理５０００のフローチャートである。
【０１６８】
正DKC１０３０’’は、副DKC１０４０’’から凍結完了報告を受領すると（ステップ５０１０）、正凍結モード１０６０を０とし（ステップ５０２０）、ホストコンピュータ１０１０に対して凍結完了報告を行って、正凍結完了処理５０００を終了する（ステップ５０３０）。
【０１６９】
図２７は、正DKC１０３０’’が副DKC１０４０’’に対して凍結指示を発行したときに、副DKC１０４０’’が実行する副凍結処理５２００のフローチャートである。
【０１７０】
副DKC１０４０’’は、正DKC１０３０’’より凍結指示を受領すると（ステップ５２１０）、副凍結モード１０９０をオンとして（ステップ５２２０）、副ビットマップＡ１３７０に１のビットがあるかどうかを判定する（ステップ５２３０）。
副ビットマップＡ１３７０に１のビットがある場合、副DKC１０４０’’は、そのビットに対応するブロックを選択し（ステップ５２４０）、副正ボリューム１３２０の選択されたブロックを読み出し、副副ボリューム１３３０の対応するブロックにコピーするよう副ディスク装置１１６０’を制御する（ステップ５２５０）。
副DKC１０４０’’は、副ビットマップＡ１３７０の対応するビットを０として、ステップ５２３０の処理に戻る（ステップ５２６０）。
【０１７１】
ステップ５２３０で副ビットマップＡ１３７０に１のビットが無いと判定した場合、副DKC１０４０’’は、副ビットマップＢ１３９０を副ビットマップＡ１３７０にコピーし（ステップ５２７０）、副ビットマップＢ１３９０を全て０にクリアする（ステップ５２８０）。
副DKC１０４０’’は、副凍結モード１０９０をオフにし（ステップ５２９０）、正DKC１０４０’’に対して凍結完了報告を行って副凍結処理５２００を終了する（ステップ５３００）。
【０１７２】
図２８は、正リモートコピー処理Ｂ４８００におけるステップ４９１０で、正DKC１０３０’’が副DKC１０４０’’に対してデータのリモートコピーを行ったときに、副DKC１０４０’’が実行する副リモートコピー処理Ｂ５４００のフローチャートである。
【０１７３】
副DKC１０４０’’は、正DKC１０３０’’よりデータを受領すると（ステップ５４１０）、正DKC１０３０’’へデータの受領を報告する（ステップ５４２０）。
その後、副DKC１０４０’’は、副凍結モード１０９０がオンであるかどうかを判定する（ステップ５４３０）。副凍結モードがオンであれば、副DKC１０４０’’は、副ビットマップＡ１３７０に１のビットがあるかどうかを判定する（ステップ５４４０）。副ビットマップＡ１３７０に１のビットが無い場合、副DKC１０４０’’は、ステップ５４７０の処理を行う。
副ビットマップＡ１３７０に１のビットがある場合、副DKC１０４０’’は、１のビットに対応する副正ボリューム１３２０のブロックを読み出し、副副ボリューム１３３０の対応するブロックにコピーするように副ディスク装置１１６０’を制御する（ステップ５４５０）。
副DKC１０４０’’は、副ビットマップＡ１３７０の対応するビットを０とし（ステップ５４６０）、副ビットマップＢ１３９０の対応するビットを１にする（ステップ５４７０）。副DKC１０４０’’は、受領したデータを副正ボリューム１３２０に書き込むよう副ディスク装置１１６０’を制御し、副リモートコピー処理Ｂ５４００を終了する（ステップ５４８０）。
【０１７４】
ステップ５４３０で副凍結モード１０９０がオフであると判定した場合、副DKC１０４０’’は、副ビットマップＡ１３７０の対応するビットを１としてステップ５４８０の処理を行う（ステップ５４９０）。
【０１７５】
本実施形態では、前回ホストコンピュータ１０１０から凍結指示があった時点の正正ボリューム１３００のボリュームイメージを、副副ボリューム１３３０、あるいは副副ボリューム１３３０及び副正ボリューム１３２０に格納されたデータの組み合わせとして保持しているので、副復旧処理３０００に相当する処理は不要である。
ホストコンピュータ１０１０からデータのリード要求があった場合には、正正ボリューム１３００のデータを転送すればいい。
【０１７６】
次に、第四の実施形態について説明する。
【０１７７】
第四の実施形態は、正記憶装置システム１１３０から副記憶装置システム１１６０へ転送されるデータが暗号化されている点が他の実施形態と異なる。
以下、第二の実施の形態に基づいて第四の実施の形態を説明する。ただし、第一及び第三の実施形態においても、本実施形態を採用することが出来るのは論を待たない。
本実施形態においては、正正ボリューム１３００から正副ボリューム１３１０にデータが転送される際に、転送されるデータが暗号化（符号化）される。
また、正副ボリューム１３１０から副正ボリューム１３２０にはその暗号化されたデータが転送され、副正ボリューム１３２０から副副ボリューム１３３０に暗号化されたデータがコピーされる際にデータが復号化される。
このようにすることで、ネットワーク１０５０上では暗号化されたデータが転送されることになる。以下、第二の実施形態と異なる点についてのみ説明する。
【０１７８】
本実施形態では、図１３（ｂ）において、正正ボリューム１３００から正副ボリューム１３１０にデータを暗号化（符号化）しながらコピーが行われる（矢印L210）。
【０１７９】
又、図１３（ｄ）において、副DKC１０４０’では、副正ボリュームから副副ボリューム１３３０に、暗号化されたデータを復号しながらデータコピーが行われる（矢印P250）。
【０１８０】
図１４においては、正DKC１０３０’がsplitする時に格納データが暗号化される。また、副DKC１０４０’がsplitする時に、暗号化されている格納データが復号化される。
【０１８１】
図１５に示すステップ３４４０では、正DKC１０３０’は、対応するブロックに格納されているデータを正正ボリューム１３００から正副ボリューム１３１０に暗号化してコピーする。
【０１８２】
図１６に示すステップ３６５０では、正DKC１０３０’は、正正ボリューム１３００の該当ブロックを読み出して暗号化し、正副ボリューム１３１０に暗号化したデータをコピーするよう、正ディスク装置１１３０’を制御する。
【０１８３】
図１８に示すステップ４０３０では、副DKC１０４０’は、副正ボリューム１３２０の対応するブロックを副DKC１０４０’に読み出し、暗号化されているデータを復号化して、副副ボリューム１３３０の対応ブロックにコピーをするよう、副ディスク装置１１６０’を制御する。
【０１８４】
本実施例の構成とすることで、転送するデータの安全性を確保しながら、凍結時におけるボリュームイメージを、いずれかのディスク装置に確保することが出来る。
【０１８５】
【発明の効果】
本発明の構成により、順序無保証のリモートコピーを行う場合にも、整合性の取れたボリュームイメージを確保することができる。
【図面の簡単な説明】
【図１】第１の実施形態を適用したコンピューターシステムの構成図である。
【図２】第１の実施形態におけるデータのフロー図である。
【図３】DKCの内部構成を示す図である。
【図４】第１の実施形態におけるライト処理のフローチャートである。
【図５】第１の実施形態における正リモートコピー処理のフローチャートである。
【図６】第１の実施形態における副リモートコピー処理のフローチャートである。
【図７】第１の実施形態における正凍結処理処理のフローチャートである。
【図８】第１の実施形態における副凍結処理のフローチャートである。
【図９】第１の実施形態における副復旧処理のフローチャートである。
【図１０】第１の実施形態におけるリード処理のフローチャートである。
【図１１】第1の実施形態に対応する凍結指示の流れ図である。
【図１２】第２の実施形態のコンピューターシステムの構成図である。
【図１３】第２の実施形態におけるデータの流れ図である。
【図１４】第２の実施形態における凍結指示の流れ図である。
【図１５】第２の実施形態におけるライト処理Ａのフローチャートである。
【図１６】第２の実施形態における正凍結処理Ａのフローチャートである。
【図１７】第２の実施形態における副リモートコピー処理Ａのフローチャートである。
【図１８】第２の実施形態における副凍結処理Ａのフローチャートである。
【図１９】第３の実施形態のコンピューターシステムの構成図である。
【図２０】第３の実施形態におけるデータの流れ図である。
【図２１】第３の実施形態における凍結指示の流れ図である。
【図２２】第３の実施形態における正ライト処理Ｂのフローチャートである。
【図２３】第３の実施形態における正凍結処理Ｂのフローチャートである。
【図２４】第３の実施形態における正コピー処理Ｂのフローチャートである。
【図２５】第３の実施形態における正リモートコピー処理Ｂのフローチャートである。
【図２６】第３の実施形態における正凍結完了処理のフローチャートである。
【図２７】第３の実施形態における副凍結処理のフローチャートである。
【図２８】第３の実施形態における副リモートコピー処理Ｂのフローチャートである。
【符号の説明】
1000…コンピューターシステム、1010…ホストコンピュータ、1030、1030’、1030’’…正DKC１０４０、1040’、1040’’…副DKC、1060…正凍結モード、1070…正ビットマップ、1080…正差分ビットマップ、1090…副凍結モード、1100…副ビットマップ、1110…副差分ビットマップ、1120…正ボリューム、1140…正差分ボリューム、1150…副ボリューム、1170…副差分ボリューム
【図１】
0004135855.tif 000002
【図２】
0004135855.tif 000003
【図３】
0004135855.tif 000004
【図４】
0004135855.tif 000005
【図５】
0004135855.tif 000006
【図６】
0004135855.tif 000007
【図７】
0004135855.tif 000008
【図８】
0004135855.tif 000009
【図９】
0004135855.tif 000010
【図１０】
0004135855.tif 000011
【図１１】
0004135855.tif 000012
【図１２】
0004135855.tif 000013
【図１３】
0004135855.tif 000014
【図１４】
0004135855.tif 000015
【図１５】
0004135855.tif 000016
【図１６】
0004135855.tif 000017
【図１７】
0004135855.tif 000018
【図１８】
0004135855.tif 000019
【図１９】
0004135855.tif 000020
【図２０】
0004135855.tif 000021
【図２１】
0004135855.tif 000022
【図２２】
0004135855.tif 000023
【図２３】
0004135855.tif 000024
【図２４】
0004135855.tif 000025
【図２５】
0004135855.tif 000026
【図２６】
0004135855.tif 000027
【図２７】
0004135855.tif 000028
【図２８】
0004135855.tif 000029