(57)【要約】【課題】リストア処理時間を短縮する。【解決手段】リストア制御部１ｃは、コピー管理情報２１ａ，２２ａに基づいて、ボリューム１１，１２の間で１回以上データが更新されたブロックを示すリストア制御情報３１を生成し、ストレージ装置２に送信する。リストア制御部２ｂは、リストア制御情報３１を受信し、受信したリストア制御情報３１とコピー管理情報２３ａとに基づいて、ボリューム１１〜１３の間で１回以上データが更新されたブロックを示すリストア制御情報３２を生成する。そして、リストア制御部２ｂは、リストア元のボリューム１４からリストア先のボリューム１１に対して、リストア制御情報３２に基づいて差分コピーするリストア処理を実行する。【選択図】図１
2018169863.tif 000002
【特許請求の範囲】
【請求項１】
第１のストレージ装置と、第２のストレージ装置とを有するストレージシステムであって、
前記第１のストレージ装置と前記第２のストレージ装置のいずれかに含まれる複数のボリュームから選択されるコピー元ボリュームとコピー先ボリュームとをそれぞれ有する複数のボリュームペアであって、コピー元ボリュームが前記第１のストレージ装置に含まれコピー先ボリュームが前記第２のストレージ装置に含まれるボリュームペアを含む前記複数のボリュームペアが存在し、かつ、データのコピー方向に対して後方側のボリュームペアのコピー先ボリュームが前方側のボリュームペアのコピー元ボリュームとして設定され、かつ、前記コピー方向が前記第１のストレージ装置から前記第２のストレージ装置への方向となるように、前記複数のボリュームペアがカスケード状に接続されている状態において、
前記第１のストレージ装置は、
前記複数のボリュームペアのそれぞれに対応し、前記複数のボリュームペアのそれぞれのコピー元ボリュームにおける更新されたブロックを示す複数のコピー管理情報のうち、コピー元ボリュームが前記第１のストレージ装置に含まれる１以上の第１のボリュームペアにそれぞれ対応する１以上の第１のコピー管理情報を記憶する第１の記憶部と、
前記複数のボリュームペアのそれぞれについて、前記コピー方向に対して前方側のボリュームペアから順に、前記複数のコピー管理情報のうちの対応するコピー管理情報に基づいてコピー元ボリュームからコピー先ボリュームに対して差分コピーするバックアップ処理を実行させるバックアップ制御部と、
リストア実行指示に応じて、前記複数のボリュームペアの中から前記１以上の第１のボリュームペアを特定し、前記１以上の第１のコピー管理情報に基づいて、前記１以上の第１のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第１のリストア制御情報を生成し、前記第１のリストア制御情報を前記第２のストレージ装置に送信する第１のリストア制御部と、
を有し、
前記第２のストレージ装置は、
前記複数のコピー管理情報のうち、コピー元ボリュームが前記第２のストレージ装置に含まれる１以上の第２のボリュームペアにそれぞれ対応する１以上の第２のコピー管理情報を記憶する第２の記憶部と、
前記第１のリストア制御情報を受信し、前記複数のボリュームペアの中から前記１以上の第２のボリュームペアを特定し、受信した前記第１のリストア制御情報と前記１以上の第２のコピー管理情報とに基づいて、前記複数のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第２のリストア制御情報を生成し、前記複数のボリュームペアのうち前記コピー方向に対して最も前方側の第３のボリュームペアに含まれるコピー先ボリュームから、前記複数のボリュームペアのうち最も後方側の第４のボリュームペアに含まれるコピー元ボリュームに対して、前記第２のリストア制御情報に基づいて差分コピーするリストア処理を実行する第２のリストア制御部と、
を有するストレージシステム。
【請求項２】
前記第１のリストア制御部は、さらに、前記第４のボリュームペアに含まれるコピー元ボリュームのブロックのうち、前記リストア処理によってデータがコピーされたブロックが更新されたことを示すように、前記複数のコピー管理情報のうち前記第４のボリュームペアに対応する第３のコピー管理情報を更新する、
請求項１記載のストレージシステム。
【請求項３】
前記第１のリストア制御部は、さらに、前記１以上の第２のコピー管理情報を前記第２のストレージ装置から取得し、取得した前記１以上の第２のコピー管理情報と、前記１以上の第１のコピー管理情報のうち前記第３のコピー管理情報を除く１以上の第４のコピー管理情報とに基づき、前記１以上の第２のコピー管理情報と前記１以上の第４のコピー管理情報のいずれも更新されていないことを示しているブロックを特定し、特定されたブロックが更新されていないことを示すように前記第３のコピー管理情報を更新する、
請求項２記載のストレージシステム。
【請求項４】
ストレージ制御装置において、
前記ストレージ制御装置と他のストレージ制御装置のいずれかに設定された複数のボリュームから選択されるコピー元ボリュームとコピー先ボリュームとをそれぞれ有する複数のボリュームペアであって、コピー元ボリュームが前記ストレージ制御装置に設定されコピー先ボリュームが前記他のストレージ制御装置に設定されたボリュームペアを含む前記複数のボリュームペアが存在し、かつ、データのコピー方向に対して後方側のボリュームペアのコピー先ボリュームが前方側のボリュームペアのコピー元ボリュームとして設定され、かつ、前記コピー方向が前記ストレージ制御装置から前記他のストレージ制御装置への方向となるように、前記複数のボリュームペアがカスケード状に接続されている状態において、
前記複数のボリュームペアのそれぞれに対応し、前記複数のボリュームペアのそれぞれのコピー元ボリュームにおける更新されたブロックを示す複数のコピー管理情報のうち、コピー元ボリュームが前記ストレージ装置に設定された１以上の第１のボリュームペアにそれぞれ対応する１以上の第１のコピー管理情報を記憶する記憶部と、
前記複数のボリュームペアのそれぞれについて、前記コピー方向に対して前方側のボリュームペアから順に、前記複数のコピー管理情報のうちの対応するコピー管理情報に基づいてコピー元ボリュームからコピー先ボリュームに対して差分コピーするバックアップ処理を実行させるバックアップ制御部と、
リストア実行指示に応じて、前記複数のボリュームペアの中から前記１以上の第１のボリュームペアを特定し、前記１以上の第１のコピー管理情報に基づいて、前記１以上の第１のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第１のリストア制御情報を生成し、前記第１のリストア制御情報を前記他のストレージ制御装置に送信するリストア制御部と、
を有するストレージ制御装置。
【請求項５】
ストレージ制御装置において、
前記ストレージ制御装置と他のストレージ制御装置のいずれかに設定された複数のボリュームから選択されるコピー元ボリュームとコピー先ボリュームとをそれぞれ有する複数のボリュームペアであって、コピー元ボリュームが前記他のストレージ制御装置に設定されコピー先ボリュームが前記ストレージ制御装置に設定されたボリュームペアを含む前記複数のボリュームペアが存在し、かつ、データのコピー方向に対して後方側のボリュームペアのコピー先ボリュームが前方側のボリュームペアのコピー元ボリュームとして設定され、かつ、前記コピー方向が前記他のストレージ制御装置から前記ストレージ制御装置への方向となるように、前記複数のボリュームペアがカスケード状に接続されている状態において、
前記複数のボリュームペアのそれぞれに対応し、前記複数のボリュームペアのそれぞれのコピー元ボリュームにおける更新されたブロックを示す複数のコピー管理情報のうち、コピー元ボリュームが前記ストレージ装置に設定された１以上の第１のボリュームペアにそれぞれ対応する１以上の第１のコピー管理情報を記憶する記憶部と、
前記複数のボリュームペアのうち前記１以上の第１のボリュームペア以外の１以上の第２のボリュームペアにそれぞれ対応する１以上の第２のコピー管理情報に基づいて生成された、前記１以上の第２のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第１のリストア制御情報を、前記他のストレージ制御装置から受信し、前記複数のボリュームペアの中から前記１以上の第１のボリュームペアを特定し、受信した前記第１のリストア制御情報と前記１以上の第１のコピー管理情報とに基づいて、前記複数のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第２のリストア制御情報を生成し、前記複数のボリュームペアのうち前記コピー方向に対して最も前方側の第３のボリュームペアに含まれるコピー先ボリュームから、前記複数のボリュームペアのうち最も後方側の第４のボリュームペアに含まれるコピー元ボリュームに対して、前記第２のリストア制御情報に基づいて差分コピーするリストア処理を実行するリストア制御部と、
を有するストレージ制御装置。
【請求項６】
第１のストレージ装置と、第２のストレージ装置とを有するストレージシステムにおけるコピー制御方法であって、
前記第１のストレージ装置と前記第２のストレージ装置のいずれかに含まれる複数のボリュームから選択されるコピー元ボリュームとコピー先ボリュームとをそれぞれ有する複数のボリュームペアであって、コピー元ボリュームが前記第１のストレージ装置に含まれコピー先ボリュームが前記第２のストレージ装置に含まれるボリュームペアを含む前記複数のボリュームペアが存在し、かつ、データのコピー方向に対して後方側のボリュームペアのコピー先ボリュームが前方側のボリュームペアのコピー元ボリュームとして設定され、かつ、前記コピー方向が前記第１のストレージ装置から前記第２のストレージ装置への方向となるように、前記複数のボリュームペアがカスケード状に接続されており、かつ、前記複数のボリュームペアのそれぞれのコピー元ボリュームにおける更新されたブロックを示す複数のコピー管理情報が、前記複数のボリュームペアのそれぞれに対応付けられている状態において、
前記第１のストレージ装置が、
前記複数のボリュームペアのそれぞれについて、前記コピー方向に対して前方側のボリュームペアから順に、前記複数のコピー管理情報のうちの対応するコピー管理情報に基づいてコピー元ボリュームからコピー先ボリュームに対して差分コピーするバックアップ処理を実行させ、
リストア実行指示に応じて、前記複数のボリュームペアの中からコピー元ボリュームが前記第１のストレージ装置に含まれる１以上の第１のボリュームペアを特定し、前記複数のコピー管理情報のうち、前記１以上の第１のボリュームペアにそれぞれ対応する１以上の第１のコピー管理情報に基づいて、前記１以上の第１のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第１のリストア制御情報を生成し、前記第１のリストア制御情報を前記第２のストレージ装置に送信し、
前記第２のストレージ装置が、
前記第１のリストア制御情報を受信し、前記複数のボリュームペアの中からコピー元ボリュームが前記第２のストレージ装置に含まれる１以上の第２のボリュームペアを特定し、受信した前記第１のリストア制御情報と、前記複数のコピー管理情報のうち前記１以上の第２のボリュームペアにそれぞれ対応する１以上の第２のコピー管理情報とに基づいて、前記複数のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第２のリストア制御情報を生成し、前記複数のボリュームペアのうち前記コピー方向に対して最も前方側の第３のボリュームペアに含まれるコピー先ボリュームから、前記複数のボリュームペアのうち最も後方側の第４のボリュームペアに含まれるコピー元ボリュームに対して、前記第２のリストア制御情報に基づいて差分コピーするリストア処理を実行する、
コピー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ制御装置およびコピー制御方法に関する。
【背景技術】
【０００２】
ストレージシステムにおけるデータのバックアップ手法の１つとして、コピー元ボリュームのブロックのうち、更新されたブロックのデータのみを、コピー先ボリュームにコピーする手法がある。また、バックアップ用のボリュームを複数用意し、これらのボリュームを利用して過去の複数世代のバックアップデータを保存しておく手法もある。後者の手法によれば、コピー元ボリュームの状態を、過去の複数世代の中から選択された世代の状態にリストアすることができる。
【０００３】
後者の手法を用いた技術の一例として、リストアの対象となるリストア世代から最新の世代までの各世代に対応する更新情報を生成し、最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データをリストア世代のデータとして抽出するストレージ装置が提案されている。
【０００４】
また、他の一例として、正サイトの正ボリュームの更新が行われて発生した差分データと差分管理情報とが、副サイトに送信され、副サイトでは、差分データが世代ごとに区切られて世代管理ボリュームに記憶されるようにしたストレージシステムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１４００６５号公報
【特許文献２】特開２００５−２７５４９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、過去の複数世代のバックアップデータを保存する手法として、次のような手法が考えられる。この手法では、コピー元ボリュームからコピー先ボリュームへのコピーセッションを複数設定しておく。これとともに、ある１つのコピーセッションにおけるコピー先ボリュームが他の１つのコピーセッションにおけるコピー元ボリュームとなるように、複数のコピーセッションをカスケード状に接続する。なお、各コピーセッションでは、コピー元ボリュームにおいて更新されたブロックを管理する管理情報を用いて、差分コピーが行われるものとする。
【０００７】
このような構成では、コピー方向（コピー元からコピー先への方向）に対して前方のコピーセッションから順にコピー処理を実行していくことで、各ボリュームは世代の異なるバックアップデータを保存しておくことができる。
【０００８】
しかし、この構成において、最新世代から２世代以上前のバックアップデータを用いてリストアを行う場合には、次のような問題がある。リストア方法の１つとしては、リストア元ボリュームのすべてのデータをリストア先ボリュームにコピーする方法がある。しかし、この方法では、コピーされるデータ量が膨大になるため、リストア処理にかかる時間が長いという問題がある。
【０００９】
一方、差分コピーを用いる方法としては、上記のコピー方向に対して前方のコピーセッションから順に、コピー先ボリュームのデータをコピー元ボリュームに差分コピーしていく方法がある。しかし、この方法では、ボリューム間のコピー処理が複数回実行されるため、リストア処理にかかる時間が長いという問題がある。
【００１０】
１つの側面では、本発明は、リストア処理時間が短縮されたストレージシステム、ストレージ制御装置およびコピー制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、第１のストレージ装置と、第２のストレージ装置とを有するストレージシステムが提供される。このストレージシステムでは、第１のストレージ装置と第２のストレージ装置のいずれかに含まれる複数のボリュームから選択されるコピー元ボリュームとコピー先ボリュームとをそれぞれ有する複数のボリュームペアであって、コピー元ボリュームが第１のストレージ装置に含まれコピー先ボリュームが第２のストレージ装置に含まれるボリュームペアを含む複数のボリュームペアが存在する。また、データのコピー方向に対して後方側のボリュームペアのコピー先ボリュームが前方側のボリュームペアのコピー元ボリュームとして設定され、かつ、コピー方向が第１のストレージ装置から第２のストレージ装置への方向となるように、複数のボリュームペアがカスケード状に接続される。
【００１２】
このような状態において、第１のストレージ装置は、第１の記憶部、バックアップ制御部および第１のリストア制御部を有する。第１の記憶部は、複数のボリュームペアのそれぞれに対応し、複数のボリュームペアのそれぞれのコピー元ボリュームにおける更新されたブロックを示す複数のコピー管理情報のうち、コピー元ボリュームが第１のストレージ装置に含まれる１以上の第１のボリュームペアにそれぞれ対応する１以上の第１のコピー管理情報を記憶する。バックアップ制御部は、複数のボリュームペアのそれぞれについて、コピー方向に対して前方側のボリュームペアから順に、複数のコピー管理情報のうちの対応するコピー管理情報に基づいてコピー元ボリュームからコピー先ボリュームに対して差分コピーするバックアップ処理を実行させる。第１のリストア制御部は、リストア実行指示に応じて、複数のボリュームペアの中から１以上の第１のボリュームペアを特定し、１以上の第１のコピー管理情報に基づいて、１以上の第１のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第１のリストア制御情報を生成し、第１のリストア制御情報を第２のストレージ装置に送信する。
【００１３】
また、第２のストレージ装置は、第２の記憶部と第２のリストア制御部を有する。第２の記憶部は、複数のコピー管理情報のうち、コピー元ボリュームが第２のストレージ装置に含まれる１以上の第２のボリュームペアにそれぞれ対応する１以上の第２のコピー管理情報を記憶する。第２のリストア制御部は、第１のリストア制御情報を受信し、複数のボリュームペアの中から１以上の第２のボリュームペアを特定し、受信した第１のリストア制御情報と１以上の第２のコピー管理情報とに基づいて、複数のボリュームペアに含まれるコピー元ボリュームの間で１回以上データが更新されたブロックを示す第２のリストア制御情報を生成し、複数のボリュームペアのうちコピー方向に対して最も前方側の第３のボリュームペアに含まれるコピー先ボリュームから、複数のボリュームペアのうち最も後方側の第４のボリュームペアに含まれるコピー元ボリュームに対して、第２のリストア制御情報に基づいて差分コピーするリストア処理を実行する。
【００１４】
また、１つの案では、上記の第１のストレージ装置と同様の処理を実行するストレージ制御装置が提供される。
さらに、１つの案では、上記の第２のストレージ装置と同様の処理を実行するストレージ制御装置が提供される。
【００１５】
また、１つの案では、上記のストレージシステムと同様の処理が実行されるコピー制御方法が提供される。
【発明の効果】
【００１６】
１つの側面では、リストア処理時間を短縮できる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】基本的なコピー処理について説明するための図である。
【図４】カスケードコピーセッションの一例を示す図である。
【図５】カスケードコピーセッションの他の例を示す図である。
【図６】カスケードコピーセッションにおけるコピー処理手順の例を示す図（その１）である。
【図７】カスケードコピーセッションにおけるコピー処理手順の例を示す図（その２）である。
【図８】ＣＭが備える処理機能の構成例を示すブロック図である。
【図９】ボリューム管理テーブルの構成例を示す図である。
【図１０】セッション管理テーブルの構成例を示す図である。
【図１１】カスケード管理テーブルの構成例を示す図である。
【図１２】カスケードコピーセッションの特定方法について説明するための図である。
【図１３】リストア処理の第１の例を示す図である。
【図１４】リストア処理の第２の例を示す図である。
【図１５】リストア処理の第３の例を示す図である。
【図１６】バックアップ処理手順の例を示すフローチャートである。
【図１７】他方のＣＭにおけるバックアップ処理手順の例を示すフローチャートである。
【図１８】リストア処理手順の例を示すフローチャート（その１）である。
【図１９】リストア処理手順の例を示すフローチャート（その２）である。
【図２０】他方のＣＭにおけるリストア処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージシステムの構成例および処理例を示す図である。図１に示すストレージシステムは、ストレージ装置１とストレージ装置２とを有する。
【００１９】
ストレージ装置１は、ボリューム１１，１２を有する。ボリューム１１，１２は、例えば、ストレージ装置１が備える記憶装置（図示せず）によって実現される記憶領域である。ストレージ装置２は、ボリューム１３，１４を有する。ボリューム１３，１４は、例えば、ストレージ装置２が備える記憶装置（図示せず）によって実現される記憶領域である。なお、本実施の形態では、ボリューム１１〜１４は同じ容量であり、それぞれブロックＢＬ０〜ＢＬ３に分割されるものとする。
【００２０】
また、ストレージシステムでは、コピーが行われるボリュームのペアであるボリュームペア２１〜２３が設定されている。ボリュームペア２１は、ボリューム１１をコピー元とし、ボリューム１２をコピー先とするペアである。ボリュームペア２２は、ボリューム１２をコピー元とし、ボリューム１３をコピー先とするペアである。ボリュームペア２３は、ボリューム１３をコピー元とし、ボリューム１４をコピー先とするペアである。
【００２１】
さらに、ストレージシステムでは、コピー方向Ｄに対して後方側のボリュームペアのコピー先ボリュームが前方側のボリュームペアのコピー元ボリュームとなるように、ボリュームペア２１〜２３がカスケード状に接続されている。具体的には、ボリュームペア２１のコピー先であるボリューム１２は、ボリュームペア２２のコピー元として設定されている。また、ボリュームペア２２のコピー先であるボリューム１３は、ボリュームペア２３のコピー元として設定されている。なお、本実施の形態では、コピー方向Ｄは、ストレージ装置１からストレージ装置２への方向である。
【００２２】
また、ボリュームペア２１，２２，２３には、それぞれコピー管理情報２１ａ，２２ａ，２３ａが対応付けられている。コピー管理情報２１ａは、ボリュームペア２１のコピー元のボリューム１１における更新されたブロックを示す情報を保持する。コピー管理情報２２ａは、ボリュームペア２２のコピー元のボリューム１２における更新されたブロックを示す情報を保持する。コピー管理情報２３ａは、ボリュームペア２３のコピー元のボリューム１３における更新されたブロックを示す情報を保持する。コピー管理情報２１ａ，２２ａ，２３ａは、それぞれボリュームペア２１，２２，２３でのコピー処理で差分コピーを実行するために利用される。
【００２３】
本実施の形態では、例として、コピー管理情報２１ａ〜２３ａは、ボリューム内のブロックごとのビットを有する。ビットには、対応するブロックが更新されている場合には「１」がセットされ、更新されていない場合には「０」がセットされる。なお、本実施の形態では、ボリューム１１〜１４は４つのブロックを含むので、コピー管理情報２１ａ〜２３ａはいずれも４ビットのビット値を有する。
【００２４】
カスケード接続されたボリュームペア２１〜２３では、通常は、コピー元ボリュームとコピー先ボリュームが切り離された状態とされる。そして、この状態で、ストレージ装置１は、図示しないホスト装置などからのボリューム１１に対する読み書きのアクセスを受け付ける。そして、後述するバックアップ処理の実行により、ボリューム１３のデータがボリューム１４に、ボリューム１２のデータがボリューム１３に、ボリューム１１のデータがボリューム１２に、それぞれバックアップされる。
【００２５】
ストレージ装置１は、記憶部１ａ、バックアップ制御部１ｂおよびリストア制御部１ｃを有する。記憶部１ａは、例えば、ストレージ装置１が有する制御装置（図示せず）の記憶装置の記憶領域として実装される。バックアップ制御部１ｂおよびリストア制御部１ｃの処理は、例えば、ストレージ装置１が有する制御装置（図示せず）のプロセッサが、所定のプログラムを実行することで実現される。
【００２６】
一方、ストレージ装置２は、記憶部２ａおよびリストア制御部２ｂを有する。記憶部２ａは、例えば、ストレージ装置２が有する制御装置（図示せず）の記憶装置の記憶領域として実装される。リストア制御部２ｂの処理は、例えば、ストレージ装置２が有する制御装置（図示せず）のプロセッサが、所定のプログラムを実行することで実現される。
【００２７】
ストレージ装置１の記憶部１ａには、コピー管理情報２１ａ，２２ａが記憶される。一方、ストレージ装置２の記憶部２ａには、コピー管理情報２３ａが記憶される。ここで、コピー管理情報２１ａ，２２ａが記憶部１ａに記憶され、コピー管理情報２３ａが記憶部２ａに記憶される理由は、各ボリュームペアでのコピー処理が、コピー元ボリュームを含むストレージ装置が主体となって制御されるからである。すなわち、ボリュームペア２１，２２でのコピー処理はストレージ装置１が主体となって制御され、その際にコピー管理情報２１ａ，２２ａが参照される。また、ボリュームペア２３でのコピー処理はストレージ装置２が主体となって制御され、その際にコピー管理情報２３ａが参照される。
【００２８】
ストレージ装置１のバックアップ制御部１ｂは、カスケード状に接続されたボリュームペア２１〜２３を用いたバックアップ処理を実行させる（ステップＳ１）。このバックアップ処理では、ボリュームペア２３，２２，２１の順に差分コピーが行われることで、ボリューム１１〜１４に、それぞれ異なる世代のバックアップデータが保持される。バックアップ処理は、具体的には次のように実行される。
【００２９】
まず、ストレージ装置２は、コピー管理情報２３ａを用いて、ボリューム１３からボリューム１４への差分コピーを実行する（ステップＳ１ａ）。この処理では、ストレージ装置２は、ボリューム１３のブロックのうち、コピー管理情報２３ａにおいて「１」がセットされているビットに対応するブロックのデータだけを、ボリューム１４にコピーする。また、ストレージ装置２は、コピー管理情報２３ａのビットのうち、コピーが完了したブロックに対応するビットのビット値を「０」に更新する。
【００３０】
次に、ストレージ装置１は、コピー管理情報２２ａを用いて、ボリューム１２からボリューム１３への差分コピーを実行する（ステップＳ１ｂ）。この処理では、ストレージ装置１は、ボリューム１２のブロックのうち、コピー管理情報２２ａにおいて「１」がセットされているビットに対応するブロックのデータだけを、ボリューム１３にコピーする。また、ストレージ装置１は、コピー管理情報２２ａのビットのうち、コピーが完了したブロックに対応するビットのビット値を「０」に更新する。一方、ストレージ装置２は、コピー管理情報２３ａのビットのうち、ボリューム１３においてコピーが行われたブロックに対応するビット値を「１」に更新する。
【００３１】
次に、ストレージ装置１は、コピー管理情報２１ａを用いて、ボリューム１１からボリューム１２への差分コピーを実行する（ステップＳ１ｃ）。この処理では、ストレージ装置１は、ボリューム１１のブロックのうち、コピー管理情報２１ａにおいて「１」がセットされているビットに対応するブロックのデータだけを、ボリューム１２にコピーする。また、ストレージ装置１は、コピー管理情報２１ａのビットのうち、コピーが完了したブロックに対応するビットのビット値を「０」に更新する。さらに、ストレージ装置１は、コピー管理情報２２ａのビットのうち、ボリューム１２においてコピーが行われたブロックに対応するビット値を「１」に更新する。
【００３２】
ストレージ装置１は、以上の処理が完了し、ボリューム１１〜１４が切り離された状態で、ボリューム１１に対するアクセスの受け付けを再開する。これにより、ボリューム１１に最新世代のデータが保持され、ボリューム１２，１３，１４の順により古い世代のバックアップボリュームが保持される。
【００３３】
リストア制御部１ｃ，２ｂは、互いに連携しながらリストア処理を実行する。以下、ボリューム１４をリストア元とし、ボリューム１１をリストア先としてリストア処理が実行される場合について説明する。
【００３４】
まず、リストア制御部１ｃは、リストア実行指示に応じて、ボリュームペア２１〜２３の中から、コピー元ボリュームがストレージ装置１に含まれるボリュームペア２１，２２を特定する。そして、リストア制御部１ｃは、ボリュームペア２１，２２に対応するコピー管理情報２１ａ，２２ａに基づいて、ボリュームペア２１，２２に含まれるコピー元のボリューム１１，１２の間で１回以上データが更新されたブロックを示すリストア制御情報３１を作成する（ステップＳ２ａ）。本実施の形態では、コピー管理情報２１ａ，２２ａについてビットごとに論理和（ＯＲ）が演算されることで、リストア制御情報３１が作成される。
【００３５】
次に、リストア制御部１ｃは、生成されたリストア制御情報３１をストレージ装置２に送信する（ステップＳ２ｂ）。
リストア制御部２ｂは、送信されたリストア制御情報３１を受信すると、ボリュームペア２１〜２３の中から、コピー元ボリュームがストレージ装置２に含まれるボリュームペア２３を特定する。そして、リストア制御部２ｂは、受信したリストア制御情報３１と、特定されたボリュームペア２３に対応するコピー管理情報２３ａとに基づいて、ボリュームペア２１〜２３に含まれるコピー元のボリューム１１〜１３の間で１回以上データが更新されたブロックを示すリストア制御情報３２を作成する（ステップＳ２ｃ）。本実施の形態では、リストア制御情報３１とコピー管理情報２３ａについてビットごとに論理和が演算されることで、リストア制御情報３２が作成される。
【００３６】
次に、リストア制御部２ｂは、リストア元のボリューム１４からリストア先のボリューム１１に対して、作成されたリストア制御情報３２に基づいて差分コピーを行う（ステップＳ２ｄ）。すなわち、リストア制御部２ｂは、ボリューム１４のブロックのうち、リストア制御情報３２において「１」がセットされているビットに対応するブロックのデータだけを、ボリューム１１にコピーする。
【００３７】
以上のリストア制御部１ｃ，２ｂの処理によれば、リストアのためのボリューム間のコピー処理が１回だけに抑えられ、しかも、リストア制御情報３２を用いて差分コピーを実行できる。このため、リストア処理時間を短縮できる。
【００３８】
また、リストア元のボリューム１４とリストア先のボリューム１１との間のボリューム１２，１３のデータを維持したまま、リストア処理を実行できる。このため、リストア処理を実行しても、ボリューム１２，１３に保持された、ボリューム１４とは異なる世代のバックアップデータを、必要に応じて利用することができる。
【００３９】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ストレージ装置１００，２００とホスト装置３０１，３０２を含む。ストレージ装置１００は、ＣＭ（Controller Module）１１０とＤＥ（Drive Enclosure）１５０を有する。ストレージ装置２００は、ＣＭ２１０とＤＥ２５０を有する。ホスト装置３０１はＣＭ１１０に接続されており、ホスト装置３０２はＣＭ２１０に接続されている。
【００４０】
なお、ホスト装置３０１とＣＭ１１０との間、および、ホスト装置３０２とＣＭ２１０との間は、例えば、ファイバチャネル（ＦＣ：Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続されている。また、ストレージ装置１００，２００は、それぞれ個別の筐体の中に実装されるものとする。
【００４１】
ＣＭ１１０は、ホスト装置３０１からの要求に応じて、ＤＥ１５０に搭載された記憶装置へのアクセスを制御するストレージ制御装置である。ＤＥ１５０には、ホスト装置３０１からのアクセス対象となる記憶装置が複数台搭載されている。本実施の形態では例として、ＤＥ１５０は、記憶装置として複数台のＨＤＤ（Hard Disk Drive）１５１，１５２，１５３，・・・が搭載されたディスクアレイ装置である。
【００４２】
ＣＭ２１０も同様に、ホスト装置３０２からの要求に応じて、ＤＥ２５０に搭載された記憶装置へのアクセスを制御するストレージ制御装置である。本実施の形態では例として、ＤＥ２５０は、ホスト装置３０２からのアクセス対象となる記憶装置として複数台のＨＤＤ２５１，２５２，２５３，・・・が搭載されたディスクアレイ装置である。
【００４３】
また、ＣＭ１１０とＣＭ２１０は、互いに接続され、データを送受信できるようになっている。ＣＭ１１０とＣＭ２１０との間は、例えば、ＦＣやｉＳＣＳＩなどを用いたＳＡＮを介して接続されている。
【００４４】
ホスト装置３０１は、業務処理などの所定の処理に伴って、ストレージ装置１００内のＤＥ１５０に対してアクセスする。より具体的には、ＣＭ１１０によって、ＤＥ１５０内のＨＤＤを用いたボリューム（論理記憶領域）が提供され、ホスト装置３０１は、そのボリュームに対するアクセスをＣＭ１１０に要求することで、ＤＥ１５０内のＨＤＤにアクセスする。同様に、ホスト装置３０２は、ＣＭ２１０によって提供されるボリュームに対するアクセスをＣＭ２１０に要求することで、ＤＥ２５０内のＨＤＤにアクセスする。
【００４５】
以下、ＣＭ１１０，２１０のハードウェア構成例について説明する。
ＣＭ１１０は、プロセッサ１１１、ＲＡＭ（Random Access Memory）１１２、ＳＳＤ（Solid State Drive）１１３、ＣＡ（Channel Adapter）１１４，１１５、ＤＩ（Disk Interface）１１６，１１７およびＲＡ（Remote Adapter）１１８，１１９を有する。なお、図示しないが、ＲＡＭ１１２、ＳＳＤ１１３、ＣＡ１１４，１１５、ＤＩ１１６，１１７およびＲＡ１１８，１１９は、バスやバスコントローラを介してプロセッサ１１１と接続されている。
【００４６】
プロセッサ１１１は、ＣＭ１１０全体を統括的に制御する。プロセッサ１１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１１１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４７】
ＲＡＭ１１２は、ＣＭ１１０の主記憶装置として使用される。ＲＡＭ１１２には、プロセッサ１１１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１１２には、プロセッサ１１１による処理に必要な各種データが格納される。
【００４８】
ＳＳＤ１１３は、ＣＭ１１０の補助記憶装置として使用される。ＳＳＤ１１３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＨＤＤなどの他の種類の不揮発性記憶装置が用いられてもよい。
【００４９】
ＣＡ１１４，１１５は、ホスト装置３０１と通信するためのインタフェースである。ＤＩ１１６，１１７は、ＤＥ１５０内のＨＤＤ１５１，１５２，１５３，・・・と通信するためのインタフェースである。ＲＡ１１８，１１９は、他方のＣＭ２１０と通信するためのインタフェースである。
【００５０】
ＣＭ２１０も、ＣＭ１１０と同様のハードウェア構成を有している。すなわち、ＣＭ２１０は、ＲＡＭ２１２、ＳＳＤ２１３、ＣＡ２１４，２１５、ＤＩ２１６，２１７およびＲＡ２１８，２１９を有する。
【００５１】
なお、ホスト装置３０１，３０２も、ＣＭ１１０，２１０と同様に、プロセッサやＲＡＭなどを有するコンピュータとして実現することができる。
次に、本実施の形態のストレージシステムにおいて実行されるコピー処理について説明する。
【００５２】
図３は、基本的なコピー処理について説明するための図である。本実施の形態のストレージシステムでは、ボリューム間でのデータのコピー処理を実行できるようになっている。コピー処理を実行する場合には、コピー元ボリュームとコピー先ボリュームとを指定したコピーセッションが設定される。図３の例では、コピー元としてボリュームＶＬ０が指定され、コピー先としてボリュームＶＬ１が指定されたコピーセッションＣＳ０が設定されている。
【００５３】
なお、コピー元ボリュームとコピー先ボリュームは、同一のストレージ装置に設定されたボリュームであってもよいし、異なるストレージ装置に設定されたボリュームであってもよい。同一のストレージ装置に設定されたコピー元ボリュームからコピー先ボリュームへのコピーを、「ローカルコピー」と呼ぶ。また、一方のストレージ装置に設定されたコピー元ボリュームから他方のストレージ装置に設定されたコピー先ボリュームへのコピーを、「リモートコピー」と呼ぶ。
【００５４】
また、１つのコピーセッションには、１つのビットマップが対応付けて記録される。ビットマップは、ボリューム内の単位領域ごとにコピーの要否を管理するためのコピー管理情報である。以下、ボリューム内の単位領域を「ブロック」と呼び、ブロックをＬＢＡ（Logical Block Address）によって識別する。
【００５５】
図３の例では、コピーセッションＣＳ０に対してビットマップＢＭ０が対応付けられている。また、ボリュームＶＬ０，ＶＬ１はともに、ＬＢＡ＃０〜ＬＢＡ＃３という４つのブロックを有するものとする。この場合、ビットマップＢＭ０は、４つのブロックにそれぞれ対応するビット値を有する４ビットデータとして実現される。
【００５６】
コピーセッションは、切り離し状態と同期状態という２つの状態をとり得る。切り離し状態は、コピー元ボリュームとコピー先ボリュームとが切り離された状態である。この状態では、コピー先ボリュームにバックアップされたデータを維持したまま、ホスト装置からのコピー元ボリュームに対するアクセスを受け付けることができる。このとき、コピー元ボリュームにおいて更新されたブロックが、ビットマップに記録される。
【００５７】
一方、同期状態は、コピー元ボリュームのデータをコピー先ボリュームに二重化するためのコピー処理が実行される状態である。この状態では、ビットマップを用いることで、コピー元ボリュームのうち更新されたブロックのデータのみがコピー先ボリュームにコピーされる「差分コピー」を実行することができる。
【００５８】
図３の上段は、コピーセッションＣＳ０が切り離し状態である場合を示す。切り離し状態に遷移した時点では、ボリュームＶＬ０とボリュームＶＬ１とは等価な状態であり、このとき、ビットマップＢＭ０のすべてのビットは「０」にセットされる。この状態から、例えば、ボリュームＶＬ０のＬＢＡ＃０，＃２のブロックに、ホスト装置からの要求によってデータが書き込まれたとする。この場合、ビットマップＢＭ０におけるＬＢＡ＃０，＃２のブロックに対応するビット値が「１」に更新される。
【００５９】
この状態から、図３の下段に示すように、コピーセッションＣＳ０が同期状態に遷移したとする。この状態では、ビットマップＢＭ０が参照され、ボリュームＶＬ０のブロックのうち、対応するビット値が「１」であるブロックのデータのみが、ボリュームＶＬ１にコピーされる。また、ビットマップＢＭ０においては、コピーが完了したブロックに対応するビット値が「０」に更新される。
【００６０】
図４は、カスケードコピーセッションの一例を示す図である。本実施の形態のストレージシステムでは、あるコピーセッションのコピー先ボリュームを、別のコピーセッションのコピー元ボリュームとして用いることができる。このように、コピーセッションをカスケード状に接続して実行されるコピーを「カスケードコピー」と呼ぶ。また、カスケード状に接続されたコピーセッションのグループを「カスケードコピーセッション」と呼ぶ。
【００６１】
図４の例では、それぞれ同じ大きさのボリュームＶＬ０〜ＶＬ３がストレージ装置１００に設定されている。ここで、「ボリュームがストレージ装置１００に設定されている」とは、ストレージ装置１００のＤＥ１５０内のＨＤＤによってそのボリュームが実現されることを指す。
【００６２】
また、図４の例では、カスケード状に接続された３つのコピーセッションＣＳ０〜ＣＳ２が設定されている。コピーセッションＣＳ０では、ボリュームＶＬ０をコピー元とし、ボリュームＶＬ１をコピー先としたローカルコピーが、ビットマップＢＭ０を用いて実行される。コピーセッションＣＳ１では、ボリュームＶＬ１をコピー元とし、ボリュームＶＬ２をコピー先としたローカルコピーが、ビットマップＢＭ１を用いて実行される。コピーセッションＣＳ２では、ボリュームＶＬ２をコピー元とし、ボリュームＶＬ３をコピー先としたローカルコピーが、ビットマップＢＭ２を用いて実行される。
【００６３】
また、次の図５に例示するように、カスケードコピーセッションには、ローカルコピーセッションだけでなくリモートコピーセッションが含まれていてもよい。
図５は、カスケードコピーセッションの他の例を示す図である。図５の例では、ボリュームＶＬ０，ＶＬ１がストレージ装置１００に設定され、ボリュームＶＬ２，ＶＬ３がストレージ装置２００に設定されている。そして、コピーセッションＣＳ０は、ストレージ装置１００内でのローカルコピーセッションとなっている。コピーセッションＣＳ１は、ストレージ装置１００とストレージ装置２００との間のリモートコピーセッションとなっている。コピーセッションＣＳ２は、ストレージ装置２００内でのローカルコピーセッションとなっている。
【００６４】
なお、リモートコピーセッションにおけるコピー処理は、コピー元のボリュームが設定されたストレージ装置のＣＭが制御主体となって実行される。図５の例では、コピーセッションＣＳ１に対応するビットマップＢＭ１は、少なくともストレージ装置１００のＣＭ１１０に記憶される。そして、ＣＭ１１０は、ビットマップＢＭ１を用いて、コピーセッションＣＳ１におけるボリュームＶＬ１からボリュームＶＬ２へのデータコピーを制御する。
【００６５】
以上のようなカスケードコピーセッションでは、コピーの方向とは逆方向に対して各コピーセッションのコピー処理を実行していくことで、ボリュームごとに異なる世代のバックアップデータを保持することができる。図４、図５の例では、ボリュームＶＬ０に最新世代のデータが保持され、以下、ボリュームＶＬ１，ＶＬ２，ＶＬ３の順に古い世代のデータが保持される。
【００６６】
以下、図４に示したカスケードコピーセッションにおけるコピー処理手順の例について、図６、図７を用いて説明する。
図６、図７は、カスケードコピーセッションにおけるコピー処理手順の例を示す図である。なお、図６、図７では、同じ世代のデータが格納されたブロックに対して、同じ種類のハッチングを施して示す。
【００６７】
まず、初期状態では、すべてのボリュームＶＬ０〜ＶＬ３を等価にするための処理が実行される。具体的には、ストレージ装置１００のＣＭ１１０は、すべてのビットマップＢＭ０〜ＢＭ２のすべてのビットに「１」を設定する。そして、ＣＭ１１０は、コピーの方向（世代の新しいボリュームから世代の古いボリュームへの方向）に沿って順番にコピーセッションを同期状態に遷移させて、各コピーセッションのコピー処理を実行する。
【００６８】
図６の状態ＳＴ１では、１番目のコピーセッションＣＳ０におけるボリュームＶＬ０からボリュームＶＬ１へのコピー処理が実行されている。ビットマップＢＭ０のすべてのビットが「１」なので、ボリュームＶＬ０のすべてのブロックのデータがボリュームＶＬ１にコピーされる。コピーセッションＣＳ０のコピー処理が完了したとき、ビットマップＢＭ０のすべてのビットは「０」に更新されている。
【００６９】
以下、ＣＭ１１０は、コピーセッションＣＳ１のコピー処理を実行し、さらにコピーセッションＣＳ２のコピー処理を実行する。これにより、状態ＳＴ２に示すように、ボリュームＶＬ０〜ＶＬ３に同じデータが格納され、ビットマップＢＭ０〜ＢＭ２のすべてのビットに「０」がセットされた状態になる。そして、この状態で、ＣＭ１１０は、すべてのコピーセッションＣＳ０〜ＣＳ２を切り離し状態に遷移させ、最新世代のボリュームＶＬ０に対するホスト装置３０１からのアクセスを受け付ける。
【００７０】
状態ＳＴ３では、ボリュームＶＬ０のＬＢＡ＃０のブロックに新たなデータが書き込まれたとする。このとき、ＣＭ１１０は、ビットマップＢＭ０のビットのうち、ＬＢＡ＃０のブロックに対応するビットを「１」に更新する。そして、この状態でカスケードコピーの実行が要求されたとする。
【００７１】
この場合、ＣＭ１１０は、まず、コピーセッションＣＳ２を同期状態に遷移させて、ビットマップＢＭ２に基づいて、ボリュームＶＬ２からボリュームＶＬ３へのコピー処理を実行する。状態ＳＴ４は、このときの状態を示す。次に、ＣＭ１１０は、コピーセッションＣＳ２を切り離し状態に遷移させ、コピーセッションＣＳ１を同期状態に遷移させて、ビットマップＢＭ１に基づいて、ボリュームＶＬ１からボリュームＶＬ２へのコピー処理を実行する。なお、ビットマップＢＭ１，ＢＭ２のすべてのビットが「０」であるので、これら２つのコピー処理では実体的なデータのコピーは行われない。
【００７２】
次に、ＣＭ１１０は、コピーセッションＣＳ１を切り離し状態に遷移させ、コピーセッションＣＳ０を同期状態に遷移させて、ビットマップＢＭ０に基づいて、ボリュームＶＬ０からボリュームＶＬ１へのコピー処理を実行する。この処理では、状態ＳＴ５に示すように、ＣＭ１１０は、ビットマップＢＭ０に基づいて、ボリュームＶＬ０のＬＢＡ＃０のブロックからボリュームＶＬ１のＬＢＡ＃０のブロックへのデータコピーを実行する。そして、ＣＭ１１０は、ビットマップＢＭ０のビットのうち、ＬＢＡ＃０のブロックに対応するビットを「０」に更新する。また、コピーセッションＣＳ１は切り離し状態なので、ＣＭ１１０は、ビットマップＢＭ１のビットのうち、ＬＢＡ＃０のブロックに対応するビットを「１」に更新する。状態ＳＴ６は、このときの状態を示す。
【００７３】
この状態から、ＣＭ１１０は、コピーセッションＣＳ０を切り離し状態に遷移させて、最新世代のボリュームＶＬ０に対するホスト装置３０１からのアクセスの受け付けを再開する。すなわち、ＣＭ１１０は、ボリュームＶＬ１に前世代のバックアップデータを保持したまま、ボリュームＶＬ０に新たなデータの書き込みを受け付けることができる。図７の状態ＳＴ７では、ボリュームＶＬ０のＬＢＡ＃１のブロックに新たなデータが書き込まれたとする。このとき、ＣＭ１１０は、ビットマップＢＭ０のビットのうち、ＬＢＡ＃１のブロックに対応するビットを「１」に更新する。
【００７４】
次に、この状態でカスケードコピーの実行が要求されたとする。この場合、状態ＳＴ４〜ＳＴ６の遷移時と同様に、ＣＭ１１０は、まず、コピーセッションＣＳ２を同期状態に遷移させ、ビットマップＢＭ２に基づいて、ボリュームＶＬ２からボリュームＶＬ３へのコピー処理を実行する。ただし、ビットマップＢＭ２のすべてのビットが「０」であるので、実体的なデータコピーは実行されない。
【００７５】
次に、ＣＭ１１０は、コピーセッションＣＳ２を切り離し状態に遷移させ、コピーセッションＣＳ１を同期状態に遷移させて、ビットマップＢＭ１に基づいて、ボリュームＶＬ１からボリュームＶＬ２へのコピー処理を実行する。これにより、ボリュームＶＬ１のＬＢＡ＃０のブロックからボリュームＶＬ２のＬＢＡ＃０のブロックへのデータコピーが実行される。また、ビットマップＢＭ１のビットのうち、ＬＢＡ＃０のブロックに対応するビットが「０」に更新され、ビットマップＢＭ２のビットのうち、ＬＢＡ＃０のブロックに対応するビットが「１」に更新される。
【００７６】
次に、ＣＭ１１０は、コピーセッションＣＳ１を切り離し状態に遷移させ、コピーセッションＣＳ０を同期状態に遷移させて、ビットマップＢＭ０に基づいて、ボリュームＶＬ０からボリュームＶＬ１へのコピー処理を実行する。これにより、ボリュームＶＬ０のＬＢＡ＃１のブロックからボリュームＶＬ２のＬＢＡ＃１のブロックへのデータコピーが実行される。また、ビットマップＢＭ０のビットのうち、ＬＢＡ＃１のブロックに対応するビットが「０」に更新され、ビットマップＢＭ１のビットのうち、ＬＢＡ＃１のブロックに対応するビットが「１」に更新される。状態ＳＴ８は、このときの状態を示す。
【００７７】
さらに、この状態から、ＣＭ１１０は、コピーセッションＣＳ０を切り離し状態に遷移させて、最新世代のボリュームＶＬ０に対するホスト装置３０１からのアクセスの受け付けを再開する。このとき、ＣＭ１１０は、ボリュームＶＬ１に前世代のバックアップデータを保持し、ボリュームＶＬ２にさらに前の世代のバックアップデータを保持したまま、ボリュームＶＬ０に新たなデータの書き込みを受け付けることができる。状態ＳＴ９では、ボリュームＶＬ０のＬＢＡ＃０，＃１のブロックに新たなデータが書き込まれたとする。このとき、ＣＭ１１０は、ビットマップＢＭ０のビットのうち、ＬＢＡ＃０，＃１のブロックに対応するビットを「１」に更新する。
【００７８】
そして、この状態でカスケードコピーの実行が要求されたとする。この場合、状態ＳＴ４〜ＳＴ６の遷移時や状態ＳＴ７〜ＳＴ８の遷移時と同様に、ＣＭ１１０は、コピーセッションＣＳ２，ＣＳ１，ＣＳ０の順にコピー処理を実行する。これにより、状態ＳＴ１０に示す状態となる。
【００７９】
この状態から、ＣＭ１１０は、最新世代のボリュームＶＬ０に対するホスト装置３０１からのアクセスの受け付けを再開する。状態ＳＴ１１では、ボリュームＶＬ０のＬＢＡ＃０，＃２のブロックに新たなデータが書き込まれたとする。この状態では、ボリュームＶＬ０〜ＶＬ３にそれぞれ異なる世代のバックアップデータが保持される。
【００８０】
以上のように、カスケードコピーを実行することで、バックアップデータを３世代以上の世代別に管理することができる。また、カスケードコピーセッションにおける各ボリュームには、コピーの方向に沿って順に１つ前の世代のバックアップデータが保持される。このため、最新世代を基準としてどの世代のバックアップデータがどのボリュームに保持されているかが固定的に設定されている。したがって、どのボリュームに保持されたデータがどの世代であるかの判別が容易であり、世代の管理効率が高いという特徴を有する。
【００８１】
しかしながら、カスケードコピーでは、データのリストアの処理効率が低いという問題がある。例えば、図７の状態ＳＴ１１から、ボリュームＶＬ３に格納されたデータを用いてボリュームＶＬ０をリストアする場合を考える。１つの方法としては、ボリュームＶＬ３のすべてのブロックのデータをボリュームＶＬ０にコピーする方法が考えられる。しかし、この方法ではコピーされるデータ量が膨大になり、リストア処理にかかる時間が長くなる。また、ボリュームＶＬ０のすべてのブロックが更新されてしまうので、その後に図６、図７のようなバックアップ処理を実行しようとすると、ボリュームＶＬ０のすべてのブロックについてのデータコピーが発生してしまう。
【００８２】
これに対して、差分コピーを用いる方法としては、次のような方法が考えられる。ＣＭ１１０は、カスケードコピーセッションに含まれる各コピーセッションについてのリストアを、コピー方向とは逆方向に順次実行する。具体的には、ＣＭ１１０は、まず、ボリュームＶＬ３からボリュームＶＬ２へのデータコピーを実行し、次に、ボリュームＶＬ２からボリュームＶＬ１へのデータコピーを実行し、次に、ボリュームＶＬ１からボリュームＶＬ０へのデータコピーを実行する。
【００８３】
この方法では、ボリュームＶＬ０のリストアが完了するまでにボリューム間のコピー処理が３回実行されることになり、リストア完了までの処理時間が長くなるという問題がある。リストア完了までの処理時間は、リストア元のボリュームとリストア先のボリュームとの世代の差に比例して増大する。
【００８４】
さらに、この方法では、ボリュームＶＬ０〜ＶＬ３のすべてのバックアップデータが同一になってしまうので、ボリュームＶＬ１，ＶＬ２に保持されていた途中の世代のバックアップデータが失われてしまうという問題もある。
【００８５】
このような問題に対し、本実施の形態では、カスケードコピーセッションに含まれる各コピーセッションのビットマップをマージすることにより、リストア用のビットマップが作成される。そして、作成されたビットマップを用いることで、リストア元のボリュームからリストア先のボリュームに対する直接的なコピー処理が実行される。これにより、リストア処理過程で実行されるボリューム間コピーの回数が１回のみに抑制され、リストア処理にかかる時間を短縮できる。また、データの書き込みがリストア先のボリュームだけに行われ、最新世代を除くすべての世代のバックアップデータを残しておくことができる。
【００８６】
図８は、ＣＭが備える処理機能の構成例を示すブロック図である。まず、ＣＭ１１０は、記憶部１２０、ＩＯ（Input／Output）制御部１３１、コピー制御部１３２およびリストア制御部１３３を有する。なお、記憶部１２０は、例えば、ＲＡＭ１１２やＳＳＤ１１３など、ＣＭ１１０が備える記憶装置の記憶領域として実現される。また、ＩＯ制御部１３１、コピー制御部１３２およびリストア制御部１３３の処理は、例えば、プロセッサ１１１が所定のプログラムを実行することにより実現される。
【００８７】
記憶部１２０には、ボリューム管理テーブル１２１、セッション管理テーブル１２２およびカスケード管理テーブル１２３の各種情報が記憶される。ボリューム管理テーブル１２１には、ＣＭ１１０，２１０に設定されたボリュームに関する情報が登録される。セッション管理テーブル１２２には、ＣＭ１１０，２１０に設定されたコピーセッションに関する情報が登録される。なお、コピーセッションに関する情報としては、ビットマップが含まれる。カスケード管理テーブル１２３は、ＣＭ１１０，２１０に設定されたカスケードコピーセッションに関する情報が登録される。
【００８８】
ＩＯ制御部１３１は、ホスト装置３０１からの要求に応じて、ＣＭ１１０に設定されたボリュームに対するＩＯアクセスを実行する。ここで言う「ＣＭ１１０に設定されたボリューム」とは、ＤＥ１５０内のＨＤＤの記憶領域によって実現されるボリュームである。また、アクセス先のボリュームがコピーセッションのコピー元として設定されている場合、ＩＯ制御部１３１は、ボリュームにデータを書き込む際、そのコピーセッションに対応するビットマップを更新する。
【００８９】
コピー制御部１３２は、コピーセッションのコピー処理を制御する。基本的に、コピー制御部１３２は、ＣＭ１１０，２１０に設定されたコピーセッションのうち、少なくともコピー元ボリュームがＣＭ１１０に設定されているコピーセッションについて、主体的にコピー処理を制御する。また、コピー制御部１３２は、コピー先ボリュームがＣＭ１１０に設定されているリモートコピーセッションについては、ＣＭ２１０からの指示に応じて、ＣＭ２１０から送信されたデータをコピー先ボリュームに書き込む。
【００９０】
さらに、コピー制御部１３２は、最新世代のバックアップデータを保持するボリュームがＣＭ１１０に設定されているカスケードコピーセッションのコピー処理を、主体的に制御する。逆に、コピー制御部１３２は、最新世代のバックアップデータを保持するボリュームがＣＭ２１０に設定されているカスケードコピーセッションのコピー処理の一部を、ＣＭ２１０からの指示に応じて実行する。
【００９１】
リストア制御部１３３は、ボリュームのリストア処理を制御する。特に、リストア制御部１３３は、ＣＭ１１０，２１０にそれぞれ設定されたボリューム間のリストアが行われる際には、ＣＭ２１０と協調しながらリストア処理を制御する。
【００９２】
一方、ＣＭ２１０は、記憶部２２０、ＩＯ制御部２３１、コピー制御部２３２およびリストア制御部２３３を有する。なお、記憶部２２０は、例えば、ＲＡＭ２１２やＳＳＤ２１３など、ＣＭ２１０が備える記憶装置の記憶領域として実現される。また、ＩＯ制御部２３１、コピー制御部２３２およびリストア制御部２３３の処理は、例えば、プロセッサ２１１が所定のプログラムを実行することにより実現される。
【００９３】
記憶部２２０には、ボリューム管理テーブル２２１、セッション管理テーブル２２２およびカスケード管理テーブル２２３が記憶される。ボリューム管理テーブル２２１、セッション管理テーブル２２２およびカスケード管理テーブル２２３には、基本的に、ボリューム管理テーブル１２１、セッション管理テーブル１２２およびカスケード管理テーブル１２３とそれぞれ同じ情報が登録される。
【００９４】
ＩＯ制御部２３１、コピー制御部２３２およびリストア制御部２３３の各機能は、基本的に、ＩＯ制御部１３１、コピー制御部１３２およびリストア制御部１３３の機能とそれぞれ同様である。ただし、ＩＯ制御部２３１は、ホスト装置３０２からの要求に応じて、ＣＭ２１０に設定されたボリュームに対するＩＯアクセスを実行する。また、コピー制御部２３２は、ＣＭ１１０，２１０に設定されたコピーセッションのうち、少なくともコピー元ボリュームがＣＭ２１０に設定されているコピーセッションについて、主体的にコピー処理を制御する。
【００９５】
図９は、ボリューム管理テーブルの構成例を示す図である。図９は、例として、ＣＭ１１０の記憶部１２０に記憶されたボリューム管理テーブル１２１を示す。
ボリューム管理テーブル１２１は、設定されたボリュームごとのレコード１２１ａ，１２１ｂ，・・・を有する。レコード１２１ａ，１２１ｂ，・・・のそれぞれには、ボリュームＩＤ、サイズ、筐体ＩＤ、先頭セッションおよび末尾セッションが登録される。
【００９６】
ボリュームＩＤは、ボリュームの識別番号を示す。サイズは、ボリュームの記憶容量を示す。筐体ＩＤは、ボリュームがストレージ装置１００，２００のどちらに設定されているかを示す識別番号である。
【００９７】
先頭セッションは、対応するボリュームをコピー元とするコピーセッションのうち、最初に作成されたコピーセッションの識別番号を示す。末尾セッションは、対応するボリュームをコピー元とするコピーセッションのうち、最後に作成されたコピーセッションの識別番号を示す。先頭セッションは、対応するボリュームをコピー元とする最初のコピーセッションが設定されたときに設定され、末尾セッションは、対応するボリュームをコピー元とするコピーセッションが設定されるたびに更新される。これらの先頭セッションおよび末尾セッションは、コピーセッション間のリンク状況を示す情報の１つであり、後述するように、カスケードコピーセッションを特定するために用いられる。
【００９８】
なお、ＣＭ１１０，２１０の間では、一方のＣＭに対して新たにボリュームが設定され、その内容が一方のＣＭのボリューム管理テーブルに登録されると、その登録内容によって他方のＣＭのボリューム管理テーブルが更新される。これにより、ボリューム管理テーブル１２１，２２１の記憶内容が同一になるようにされる。
【００９９】
図１０は、セッション管理テーブルの構成例を示す図である。図１０では、例として、ＣＭ１１０の記憶部１２０に記憶されたセッション管理テーブル１２２を示す。
セッション管理テーブル１２２は、設定されたコピーセッションごとのレコード１２２ａ，１２２ｂ，・・・を有する。ここで言うコピーセッションには、ローカルコピーセッションとリモートコピーセッションとが含まれる。レコード１２２ａ，１２２ｂ，・・・のそれぞれには、セッションＩＤ、コピー元ボリューム、コピー先ボリューム、ビットマップ、リンク前方セッションおよびリンク後方セッションが登録される。
【０１００】
セッションＩＤは、コピーセッションの識別番号を示す。コピー元ボリュームは、コピー元として設定されたボリュームの識別番号を示す。コピー先ボリュームは、コピー先として設定されたボリュームの識別番号を示す。ビットマップは、ブロックごとにコピーの要否（更新の有無）を管理するためのコピー管理情報である。
【０１０１】
リンク前方セッションは、対応するコピーセッションとコピー元ボリュームが同じである他のコピーセッションのうち、時間的に１つ前に作成されたコピーセッションの識別番号を示す。リンク後方セッションは、対応するコピーセッションとコピー元ボリュームが同じである他のコピーセッションのうち、時間的に１つ後に作成されたコピーセッションの識別番号を示す。これらのリンク前方セッションおよびリンク後方セッションは、後述するように、カスケードコピーセッションを特定するために用いられる。
【０１０２】
なお、ＣＭ１１０，２１０の間では、一方のＣＭにおいて新たにコピーセッションが設定され、その内容が一方のＣＭのセッション管理テーブルに登録されると、その登録内容によって他方のＣＭのセッション管理テーブルが更新される。これにより、セッション管理テーブル１２２，２２２の記憶内容が同一になるようにされる。ただし、ビットマップについては、コピー元ボリュームが設定されているＣＭのセッション管理テーブルにのみ登録されていればよい。
【０１０３】
図１１は、カスケード管理テーブルの構成例を示す図である。図１１では、例として、ＣＭ１１０の記憶部１２０に記憶されたカスケード管理テーブル１２３を示す。
カスケード管理テーブル１２３は、設定されたカスケードコピーセッションごとのレコード１２３ａ，１２３ｂ，・・・を有する。レコード１２３ａ，１２３ｂ，・・・のそれぞれには、カスケードコピーセッションＩＤと、複数のセッションＩＤとが登録される。
【０１０４】
カスケードコピーセッションＩＤは、カスケードコピーセッションの識別番号を示す。セッションＩＤは、カスケードコピーセッションに含まれる各コピーセッションの識別番号を示す。例えば、レコードには、カスケードコピーに含まれるコピーセッションのセッションＩＤが、コピーセッションの接続順に登録される。
【０１０５】
なお、ＣＭ１１０，２１０の間では、一方のＣＭにおいて新たにカスケードコピーセッションが設定され、その内容が一方のＣＭのカスケード管理テーブルに登録されると、その登録内容によって他方のＣＭのカスケード管理テーブルが更新される。これにより、カスケード管理テーブル１２３，２２３の記憶内容が同一になるようにされる。
【０１０６】
図１２は、カスケードコピーセッションの特定方法について説明するための図である。ＣＭ１１０，２１０は、コピーセッションが設定されると、それらの設定情報に基づいてカスケードコピーセッションを特定できる。図１２では例として、ＣＭ１１０により、ボリューム管理テーブル１２１およびセッション管理テーブル１２２を用いてカスケードコピーセッションが特定される場合の処理例を説明する。
【０１０７】
図１２に示すように、ボリューム＃Ａ〜＃Ｄと、コピーセッション＃００〜＃０２が設定されているとする。コピーセッション＃００では、ボリューム＃Ａがコピー元として設定され、ボリューム＃Ｂがコピー先として設定されている。コピーセッション＃０１では、ボリューム＃Ｂがコピー元として設定され、ボリューム＃Ｃがコピー先として設定されている。コピーセッション＃０２では、ボリューム＃Ａがコピー元として設定され、ボリューム＃Ｄがコピー先として設定されている。
【０１０８】
また、コピーセッションについては、コピーセッション＃００，＃０１，＃０２の順で設定されたとする。この場合、ボリューム管理テーブル１２１には、先頭セッションおよび末尾セッションとして次のような情報が登録される。ボリューム＃Ａに対応するレコード１２１ａには、先頭セッションとしてコピーセッション＃００が登録され、末尾セッションとしてコピーセッション＃０２が登録される。ボリューム＃Ｂに対応するレコード１２１ｂには、先頭セッションとしてコピーセッション＃０１が登録され、末尾セッションとしてコピーセッション＃０１が登録される。ボリューム＃Ｃに対応するレコード１２１ｃおよびボリューム＃Ｄに対応するレコード１２１ｄには、先頭セッションおよび末尾セッションの両方ともは登録されない。
【０１０９】
また、セッション管理テーブル１２２には、リンク前方セッションおよびリンク後方セッションとして次のような情報が登録される。コピーセッション＃００に対応するレコード１２２ａには、リンク前方セッションは登録されないが、リンク後方セッションとしてコピーセッション＃０２が登録される。コピーセッション＃０１に対応するレコード１２２ｂには、リンク前方セッションおよびリンク後方セッションの両方とも登録されない。コピーセッション＃０２に対応するレコード１２２ｃには、リンク前方セッションとしてコピーセッション＃００が登録され、リンク後方セッションは登録されない。
【０１１０】
ＣＭ１１０のコピー制御部１３２は、例えば、コピーセッション＃００を検索の起点として選択した場合、次のようにしてカスケードコピーセッションを検索する。コピー制御部１３２は、まず、セッション管理テーブル１２２から、コピーセッション＃００のコピー先としてボリューム＃Ｂを特定する。次に、コピー制御部１３２は、ボリューム管理テーブル１２１のボリューム＃Ｂに対応するレコード１２１ｂから、ボリューム＃Ｂをコピー元とするコピーセッションを検索する。レコード１２１ｂには、該当するコピーセッションとしてコピーセッション＃０１のみが登録されているので、コピーセッション＃００，＃０１がカスケードの関係にあることがわかる。
【０１１１】
次に、コピー制御部１３２は、セッション管理テーブル１２２から、コピーセッション＃０１のコピー先としてボリューム＃Ｃを特定する。次に、コピー制御部１３２は、ボリューム管理テーブル１２１のボリューム＃Ｃに対応するレコード１２１ｃから、ボリューム＃Ｃをコピー元とするコピーセッションを特定する。レコード１２１ｃには、該当するコピーセッションが登録されていないので、コピーセッション＃００をコピー元側の末端としてカスケードの関係にあるコピーセッションは、コピーセッション＃０１だけであることがわかる。
【０１１２】
コピー制御部１３２は、設定された各コピーセッションを起点として上記の検索処理を実行することで、カスケードの関係にあるコピーセッションの組み合わせを特定することができる。図１２の例では、コピー元側から順にコピーセッション＃００，＃０１を含むカスケードコピーセッションが特定される。コピー制御部１３２は、特定されたコピーセッションに関する情報をカスケード管理テーブル１２３に登録する。
【０１１３】
次に、リストア処理について説明する。まず、図１３を用いて、ローカルコピーセッションだけを含むカスケードコピーセッションにおけるリストア処理について説明する。
まず、図１３は、リストア処理の第１の例を示す図である。図１３では、図４に示したようにストレージ装置１００にカスケードコピーセッションが設定されているとする。そして、図７の状態ＳＴ１１の時点で、ボリュームＶＬ３からボリュームＶＬ０に対するリストアを行うものとする。
【０１１４】
ＣＭ１１０のリストア制御部１３３は、セッション管理テーブル１２２から、コピーセッションＣＳ０，ＣＳ１，ＣＳ２にそれぞれ対応するビットマップＢＭ０，ＢＭ１，ＢＭ２を読み出す。リストア制御部１３３は、これらのビットマップＢＭ０，ＢＭ１，ＢＭ２をマージして、リストア用のビットマップＢＭ１０を作成する（ステップＳ１１）。マージ処理では、ビットマップＢＭ０，ＢＭ１，ＢＭ２のビットごとに、ビット値の論理和が計算される。
【０１１５】
また、リストア制御部１３３は、コピー元をボリュームＶＬ３とし、コピー先をボリュームＶＬ０としたリストア用のコピーセッション＃１０を設定する（ステップＳ１２）。ビットマップＢＭ１０は、コピーセッション＃１０用のコピー管理情報として設定される。
【０１１６】
そして、リストア制御部１３３は、作成されたビットマップＢＭ１０を用いて、コピーセッション＃１０のコピー処理を実行する（ステップＳ１３）。すなわち、このコピー処理では、リストア制御部１３３は、ボリュームＶＬ３のブロックのうち、ビットマップＢＭ１０においてビット値が「１」であるＬＢＡ＃０〜＃２のブロックのデータだけを、ボリュームＶＬ０にコピーする。リストア制御部１３３は、ビットマップＢＭ１０のビット値のうち、コピーが実行されたブロックに対応するビット値を「０」に更新する。
【０１１７】
ここで、ビットマップＢＭ０，ＢＭ１，ＢＭ２をマージして生成されたリストア用のビットマップＢＭ１０は、ボリュームＶＬ３の世代からボリュームＶＬ０の世代までの間でデータが更新されたブロックの位置を表すことになる。このため、上記のようにビットマップＢＭ１０を用いることで、リストア元のボリュームＶＬ３からリストア先のボリュームＶＬ０に対して直接的にコピー処理を実行することが可能となる。
【０１１８】
これにより、リストア処理過程で実行されるボリューム間コピーの回数が１回のみに抑制され、リストア処理にかかる時間を短縮できる。また、データの書き込みがリストア先のボリュームＶＬ０だけに行われるので、ボリュームＶＬ１，ＶＬ２に格納された途中の世代のバックアップデータを残しておくことができる。
【０１１９】
また、リストア制御部１３３は、コピーセッション＃１０のコピー処理の実行に伴い、コピー先のボリュームＶＬ０をコピー元とするコピーセッションＣＳ０のビットマップＢＭ０を更新する（ステップＳ１４）。具体的には、リストア制御部１３３は、ビットマップＢＭ０のビット値のうち、ボリュームＶＬ３からデータがコピーされたブロックに対応するビット値を「１」に更新する。図１３の例では、ビットマップＢＭ０のビット値のうちＬＢＡ＃０〜＃２に対応するビット値が更新の対象となるが、ＬＢＡ＃０，＃２に対応するビット値はすでに「１」であるので、ＬＢＡ＃１に対応するビット値のみが「０」から「１」に更新される。
【０１２０】
これにより、その後にボリュームＶＬ０からボリュームＶＬ１への差分コピーがビットマップＢＭ０を用いて行われる際に、ボリュームＶＬ０における更新されたブロックのデータをボリュームＶＬ１に確実にコピーすることができる。
【０１２１】
ただし、リストア元のボリュームからリストア先のボリュームへのコピー処理により、全世代のボリュームにおいてデータが同じになるブロックが発生する場合がある。このようなブロックについては、その後の差分コピー時にデータのコピーが行われないように、ビットマップＢＭ０の対応するビット値を更新しておく方が望ましい。
【０１２２】
そこで、リストア制御部１３３は、カスケードコピーセッションに含まれるコピーセッションのうち、コピー元側の末端以外のコピーセッションに対応するビットマップＢＭ１，ＢＭ２を参照する。リストア制御部１３３は、ビットマップＢＭ１，ＢＭ２のすべてにおいてビット値が「０」であるブロックを特定する。
【０１２３】
図１３の例では、このようなブロックとしてＬＢＡ＃２のブロックが特定される。特定されたブロックでは、ボリュームＶＬ１〜ＶＬ３のいずれにも同じデータが格納されており、上記のリストア処理によってボリュームＶＬ０にも同じデータがコピーされている。このため、リストア制御部１３３は、ビットマップＢＭ０におけるＬＢＡ＃２に対応するビット値を「０」に更新する（ステップＳ１５）。これにより、その後にボリュームＶＬ０からボリュームＶＬ１への差分コピーがビットマップＢＭ０を用いて行われる際に、ＬＢＡ＃２のブロック間でのデータコピーが実行されなくなり、コピー処理効率を向上させることができる。
【０１２４】
次に、図１４、図１５を用いて、リモートコピーセッションを含むカスケードコピーセッションにおけるリストア処理について説明する。
図１４は、リストア処理の第２の例を示す図である。図１４では、図５に示したようにストレージ装置１００，２００にカスケードコピーセッションが設定されているとする。すなわち、ボリュームＶＬ０，ＶＬ１がストレージ装置１００に設定され、ボリュームＶＬ２，ＶＬ３がストレージ装置２００に設定されている。そして、ボリュームＶＬ０，ＶＬ１のペア、ボリュームＶＬ１，ＶＬ２のペア、ボリュームＶＬ２，ＶＬ３のペアに対して、それぞれコピーセッションＣＳ０，ＣＳ１，ＣＳ２が設定されている。また、コピーセッションＣＳ０，ＣＳ２はローカルコピーセッションであり、コピーセッションＣＳ１はリモートコピーセッションである。この場合、コピーセッションＣＳ１に対応するビットマップＢＭ１は、ストレージ装置１００のＣＭ１１０に保持されている。
【０１２５】
なお、図１４では、ボリュームＶＬ０〜ＶＬ３に記憶されたデータの状態が図７の状態ＳＴ１１のようになっている時点で、リストアの実行が指示されたものとする。
この場合、まず、ＣＭ１１０のリストア制御部１３３は、コピーセッションＣＳ０〜ＣＳ２のうち、コピー元ボリュームがＣＭ１１０に設定されているコピーセッションＣＳ０，ＣＳ１を特定する。そして、リストア制御部１３３は、セッション管理テーブル１２２から、コピーセッションＣＳ０，ＣＳ１に対応するビットマップＢＭ０，ＢＭ１を読み出す。リストア制御部１３３は、これらのビットマップＢＭ０，ＢＭ１をマージして、リストア用のビットマップを仮作成する（ステップＳ２１）。図１４の例では、「１１１０」というビットマップが仮作成される。
【０１２６】
次に、リストア制御部１３３は、仮作成されたビットマップ「１１１０」をストレージ装置２００のＣＭ２１０に転送して、リストア元をボリュームＶＬ３とし、リストア先をボリュームＶＬ０として指定したリストア処理の実行を指示する（ステップＳ２２）。ＣＭ２１０のリストア制御部２３３は、実行指示に応じて、セッション管理テーブル２２２から、コピーセッションＣＳ２に対応するビットマップＢＭ２を読み出す。そして、リストア制御部２３３は、読み出したビットマップＢＭ２と、ＣＭ１１０から転送されたビットマップ「１１１０」とをマージして、リストア用のビットマップＢＭ１１を作成する（ステップＳ２３）。
【０１２７】
また、リストア制御部２３３は、コピー元をボリュームＶＬ３とし、コピー先をボリュームＶＬ０としたリストア用のコピーセッション＃１１を設定する。ビットマップＢＭ１１は、コピーセッション＃１１用のコピー管理情報として設定される。
【０１２８】
そして、リストア制御部２３３は、ＣＭ１１０のリストア制御部１３３と連携しながら、作成されたビットマップＢＭ１１を用いて、コピーセッション＃１１のコピー処理を実行する（ステップＳ２４）。このコピー処理では、ボリュームＶＬ３のブロックのうち、ビットマップＢＭ１１においてビット値が「１」であるＬＢＡ＃０〜＃２のブロックのデータのみが、ボリュームＶＬ０にコピーされる。また、リストア制御部１３３は、コピー処理の実行に伴うボリュームＶＬ０へのデータ書き込みに応じて、ボリュームＶＬ０をコピー元とするコピーセッションＣＳ０のビットマップＢＭ０を更新する（ステップＳ２５）。
【０１２９】
さらに、コピー処理が完了すると、リストア制御部１３３は、リストア制御部２３３からビットマップＢＭ２を取得する。そして、リストア制御部１３３は、ビットマップＢＭ１，ＢＭ２のすべてにおいてビット値が「０」であるブロックを特定する。図１４の例では、このようなブロックとしてＬＢＡ＃２のブロックが特定されるので、リストア制御部１３３は、ビットマップＢＭ０におけるＬＢＡ＃２に対応するビット値を「０」に更新する（ステップＳ２６）。
【０１３０】
以上の処理により、図１３の場合と同様に、リストア処理過程で実行されるボリューム間コピーの回数が１回のみに抑制され、リストア処理にかかる時間を短縮できる。また、データの書き込みがリストア先のボリュームＶＬ０だけに行われるので、ボリュームＶＬ１，ＶＬ２に格納された途中の世代のバックアップデータを残しておくことができる。
【０１３１】
さらに、ステップＳ２５でのビットマップＢＭ０の更新により、その後にボリュームＶＬ０からボリュームＶＬ１への差分コピーがビットマップＢＭ０を用いて行われる際に、ボリュームＶＬ０における更新されたブロックのデータをボリュームＶＬ１に確実にコピーすることができる。また、ステップＳ２６でのビットマップＢＭ０の更新により、その後にボリュームＶＬ０からボリュームＶＬ１への差分コピーがビットマップＢＭ０を用いて行われる際に、ＬＢＡ＃２のブロック間でのデータコピーが実行されなくなる。その結果、コピー処理効率を向上させることができる。
【０１３２】
図１５は、リストア処理の第３の例を示す図である。図１５では、図５、図１４に示したようにカスケードコピーセッションが設定されている状況において、リストア元としてボリュームＶＬ２が指定され、リストア先としてボリュームＶＬ０が指定され、リストアの実行が指示されたものとする。なお、図１５では、ボリュームＶＬ０〜ＶＬ２に記憶されたデータの状態が図７の状態ＳＴ１１のようになっている時点で、リストアの実行が指示されたものとする。
【０１３３】
この場合、まず、ＣＭ１１０のリストア制御部１３３は、カスケードコピーセッションに含まれるコピーセッションＣＳ０〜の中から、リストア元のボリュームＶＬ２からリストア先のボリュームＶＬ０までのコピー経路に含まれるコピーセッションＣＳ０，ＣＳ１を特定する。次に、リストア制御部１３３は、特定されたコピーセッションＣＳ０，ＣＳ１のうち、コピー元ボリュームがＣＭ１１０に設定されているコピーセッションＣＳ０，ＣＳ１を特定する。
【０１３４】
そして、リストア制御部１３３は、セッション管理テーブル１２２から、コピーセッションＣＳ０，ＣＳ１に対応するビットマップＢＭ０，ＢＭ１を読み出す。リストア制御部１３３は、これらのビットマップＢＭ０，ＢＭ１をマージして、リストア用のビットマップ「１１１０」を仮作成する（ステップＳ３１）。
【０１３５】
次に、リストア制御部１３３は、仮作成されたビットマップ「１１１０」をストレージ装置２００のＣＭ２１０に転送して、リストア元をボリュームＶＬ２とし、リストア先をボリュームＶＬ０として指定したリストア処理の実行を指示する（ステップＳ３２）。実行指示を受けたＣＭ２１０のリストア制御部２３３は、リストア元のボリュームＶＬ２からリストア先のボリュームＶＬ０までのコピー経路に、コピー元ボリュームがＣＭ２１０に設定されているコピーセッションが含まれないことを認識する。この場合、リストア制御部２３３は、リストア制御部１３３から転送されたビットマップ「１１１０」を、そのままリストア用ビットマップＢＭ１２として設定する（ステップＳ３３）。
【０１３６】
また、リストア制御部２３３は、コピー元をボリュームＶＬ２とし、コピー先をボリュームＶＬ０としたリストア用のコピーセッション＃１２を設定する。ビットマップＢＭ１２は、コピーセッション＃１２用のコピー管理情報として設定される。
【０１３７】
そして、リストア制御部２３３は、ＣＭ１１０のリストア制御部１３３と連携しながら、作成されたビットマップＢＭ１２を用いて、コピーセッション＃１２のコピー処理を実行する（ステップＳ３４）。また、リストア制御部１３３は、コピー処理の実行に伴うボリュームＶＬ０へのデータ書き込みに応じて、ボリュームＶＬ０をコピー元とするコピーセッションＣＳ０のビットマップＢＭ０を更新する（ステップＳ３５）。
【０１３８】
さらに、コピー処理が完了すると、リストア制御部１３３は、リストア元のボリュームＶＬ２からリストア先のボリュームＶＬ０までのコピー経路に、コピー元ボリュームがＣＭ２１０に設定されているコピーセッションが含まれないことを認識する。この場合、リストア制御部１３３は、ビットマップＢＭ１のみを参照し、ビット値が「０」であるブロックを特定する。図１５の例では、このようなブロックとしてＬＢＡ＃２のブロックが特定されるので、リストア制御部１３３は、ビットマップＢＭ０におけるＬＢＡ＃２に対応するビット値を「０」に更新する（ステップＳ３６）。
【０１３９】
以上の処理により、図１３、図１４の場合と同様の効果が得られる。
次に、ＣＭ１１０，２１０の処理についてフローチャートを用いて説明する。
まず、図１６は、バックアップ処理手順の例を示すフローチャートである。バックアップ処理とは、図６、図７の例のように、カスケードコピーセッションにおけるコピー先側の末端のコピーセッションからコピー処理を順に実行することで世代別のバックアップデータを保存する処理を示す。図１６では例として、ストレージ装置１００に設定されたボリュームが最新世代のコピー元ボリュームとなっているカスケードコピーセッションにおけるバックアップ処理の実行が指示されたものとする。
【０１４０】
［ステップＳ５１］ＣＭ１１０のコピー制御部１３２は、例えばホスト装置３０１からバックアップ処理の実行指示を受信する。このとき、コピー制御部１３２は、例えば、バックアップ処理を実行させるカスケードコピーセッションの識別番号の指定を受け付ける。
【０１４１】
［ステップＳ５２］コピー制御部１３２は、指定されたカスケードコピーセッションに含まれるコピーセッションの中に、他方のストレージ装置２００のＣＭ２１０の制御下にあるコピーセッションがあるかを判定する。ＣＭ２１０の制御下にあるコピーセッションとは、ＣＭ２１０に設定されたボリュームをコピー元とするローカルコピーセッションである。
【０１４２】
コピー制御部１３２は、カスケード管理テーブル１２３、セッション管理テーブル１２２およびボリューム管理テーブル１２１を参照することで、上記の判定を実行する。コピー制御部１３２は、該当するコピーセッションがある場合、ステップＳ５３の処理を実行し、該当するコピーセッションがない場合、ステップＳ５４の処理を実行する。
【０１４３】
［ステップＳ５３］コピー制御部１３２は、他方のストレージ装置２００のＣＭ２１０に対して、ＣＭ２１０の制御下にあるコピーセッションのコピー処理の実行を指示する。ＣＭ２１０のコピー制御部２３２は、この指示に応じて、該当するコピーセッションのコピー処理を実行する。例えば、図５に示すようなカスケードコピーセッションの場合、コピーセッションＣＳ２のコピー処理が、コピー制御部２３２によって実行される。
【０１４４】
ＣＭ１１０のコピー制御部１３２は、ＣＭ２１０のコピー制御部２３２からコピー処理の完了通知を受信すると、ステップＳ５４の処理を実行する。
［ステップＳ５４］コピー制御部１３２は、ＣＭ１１０の制御下にあるコピーセッションのコピー処理を実行する。コピーセッションが複数存在する場合、コピー制御部１３２は、コピー先側の末端のコピーセッションから順にコピー処理を実行する。例えば、図５に示すようなカスケードコピーセッションの場合、まず、コピーセッションＣＳ１のコピー処理が実行され、次にコピーセッションＣＳ０のコピー処理が実行される。なお、図６、図７で説明したように、コピーセッションのコピー処理は、コピーセッションに対応するビットマップを参照、更新しながら実行される。
【０１４５】
図１７は、他方のＣＭにおけるバックアップ処理手順の例を示すフローチャートである。この図１７では例として、図１６のようにＣＭ１１０のコピー制御部１３２がバックアップ処理の実行指示を受信した場合におけるＣＭ２１０のコピー制御部２３２の処理について説明する。ただし、バックアップ処理の対象として指定されたカスケードコピーセッションには、ＣＭ２１０の制御下にあるコピーセッション（ＣＭ２１０に設定されたボリュームをコピー元とするローカルコピーセッション）を含むものとする。
【０１４６】
［ステップＳ６１］コピー制御部２３２は、他方のストレージ装置１００のＣＭ１１０から、ＣＭ２１０の制御下にあるコピーセッションのコピー処理の実行指示を受信する。この実行指示は、図１６のステップＳ５３で出力されるものである。コピー制御部２３２はこのとき、バックアップ処理の対象とするカスケードコピーセッションの識別番号の指定を受ける。
【０１４７】
［ステップＳ６２］コピー制御部２３２は、指定されたカスケードコピーセッションに含まれるコピーセッションのうち、ＣＭ２１０の制御下にあるコピーセッション（ローカルコピーセッション）を特定する。この特定処理は、カスケード管理テーブル２２３、セッション管理テーブル２２２およびボリューム管理テーブル２２１を参照することで行われる。例えば、図５に示すようなカスケードコピーセッションの場合、コピーセッションＣＳ３が特定される。
【０１４８】
コピー制御部２３２は、特定されたコピーセッションのコピー処理を実行する。コピーセッションが複数特定された場合、コピー制御部２３２は、末尾側のコピーセッションから順にコピー処理を実行する。なお、図６、図７で説明したように、コピーセッションのコピー処理は、コピーセッションに対応するビットマップを参照、更新しながら実行される。
【０１４９】
次に、図１８〜図２０を用いて、リストア処理手順について説明する。なお、図１８、図１９では、カスケードコピーセッションに限らず、単独のコピーセッションにおけるリストアの実行が指示された場合の処理も包含されている。
【０１５０】
図１８、図１９は、リストア処理手順の例を示すフローチャートである。
［ステップＳ８１］ＣＭ１１０のリストア制御部１３３は、例えばホスト装置３０１からリストア処理の実行指示を受信する。このとき、リストア制御部１３３は、例えば、リストア処理を実行させるカスケードコピーセッションの識別番号と、リストア元ボリュームの識別番号、または、何世代前のバックアップデータでリストアするかを示す情報を受け付ける。なお、リストア処理の対象が単独のコピーセッションの場合、リストア制御部１３３は、そのコピーセッションの識別番号を受け付ける。
【０１５１】
［ステップＳ８２］リストア制御部１３３は、カスケード管理テーブル１２３を参照して、該当するカスケードコピーセッションにおけるリストア元ボリュームとリストア先ボリュームとの間の接続経路を特定する。なお、リストア処理の対象として単独のコピーセッションが指定された場合、ステップＳ８２の処理はスキップされる。
【０１５２】
［ステップＳ８３］リストア制御部１３３は、ステップＳ８２での特定結果に基づいて、リストア元ボリュームとリストア先ボリュームとの間において複数のコピーセッションがカスケード接続されているかを判定する。リストア制御部１３３は、カスケード接続されている場合、ステップＳ８５の処理を実行し、カスケード接続されていない場合、ステップＳ８４の処理を実行する。なお、リストア処理の対象として単独のコピーセッションが指定された場合、無条件でステップＳ８４の処理が実行される。
【０１５３】
［ステップＳ８４］リストア制御部１３３は、リストア元ボリュームとリストア先ボリュームとの間に含まれる１つのコピーセッションに対応するビットマップを、セッション管理テーブル１２２から読み出す。リストア制御部１３３は、読み出したビットマップをそのままリストア用ビットマップにすることで、リストア用ビットマップを作成する。
【０１５４】
［ステップＳ８５］リストア制御部１３３は、セッション管理テーブル１２２とボリューム管理テーブル１２１とを参照して、リストア元ボリュームとリストア先ボリュームとの間に含まれるコピーセッションのうち、ＣＭ１１０の制御下にあるコピーセッションを特定する。リストア制御部１３３は、特定されたコピーセッションに対応するビットマップをセッション管理テーブル１２２から読み出す。リストア制御部１３３は、読み出されたビットマップをマージして、リストア用ビットマップを仮作成する。なお、前述のように、マージとは、ビットごとのビット値の論理和を演算することである。
【０１５５】
［ステップＳ８６］リストア制御部１３３は、リストア元ボリュームとリストア先ボリュームとの間に含まれるコピーセッションの中にリモートコピーセッションがあるかを判定する。リストア制御部１３３は、リモートコピーセッションがある場合、図１９のステップＳ１０１の処理を実行し、リモートコピーセッションがない場合、ステップＳ８７の処理を実行する。
【０１５６】
［ステップＳ８７］リストア制御部１３３は、リストア元ボリュームをコピー元とし、リストア先ボリュームをコピー先としたリストア用コピーセッションを設定する。具体的には、リストア制御部１３３は、このリストア用コピーセッションに対応するレコードをセッション管理テーブル１２２に追加設定する。このレコードのビットマップの欄には、ステップＳ８４，Ｓ８５のいずれかで作成されたリストア用ビットマップが設定される。
【０１５７】
［ステップＳ８８］リストア制御部１３３は、設定されたリストア用ビットマップを用いて、リストア用コピーセッションのコピー処理を実行する。ステップＳ８８が実行されるケースでは、リストア元とリストア先の各ボリュームはＣＭ１１０に設定されている。リストア制御部１３３は、リストア元ボリュームのブロックのうち、リストア用ビットマップにおいて対応するビット値が「１」であるブロックのデータを、リストア先ボリュームの対応するブロックにコピーする。また、リストア制御部１３３は、リストア用ビットマップのビット値のうち、コピーが完了したブロックに対応するビット値を「０」に更新する。
【０１５８】
［ステップＳ８９］リストア制御部１３３は、リストア先側ビットマップのビット値のうち、ステップＳ８８でデータがコピーされたブロックに対応するビット値を「１」に更新する。このリストア先側ビットマップとは、リストア先ボリュームをコピー元としたコピーセッションに対応するビットマップである。なお、このビット値の更新は、ステップＳ８８で各ブロックにデータがコピーされるたびに行われてもよい。
【０１５９】
［ステップＳ９０］リストア制御部１３３は、リストア元ボリュームとリストア先ボリュームとの間に含まれるコピーセッションのうち、コピー元側の末端以外のコピーセッションに対応するビットマップを、セッション管理テーブル１２２から読み出す。リストア制御部１３３は、読み出されたビットマップのビット値をビットごとに比較し、すべてのビットマップでビット値が「０」であるビットを特定する。リストア制御部１３３は、該当するビットが特定された場合、ステップＳ８９で更新対象としたリストア先側ビットマップのビット値のうち、特定されたビットのビット値を「１」に更新する。
【０１６０】
［ステップＳ９１］リストア制御部１３３は、ステップＳ８７で設定されたリストア用コピーセッションを削除する。これにより、作成されたリストア用ビットマップも削除される。
【０１６１】
以下、図１９を用いて説明を続ける。
［ステップＳ１０１］リストア制御部１３３は、他方のＣＭ２１０に対してリストア制御の引き継ぎを指示する。このとき、リストア制御部１３３は、カスケードコピーセッションの識別番号、リストア元とリストア先の各ボリュームの識別番号、および、図１８のステップＳ８５で仮作成されたリストア用ビットマップをＣＭ２１０に送信する。この後、リストア制御部１３３は、ＣＭ２１０からの送信情報を待機する状態となる。
【０１６２】
［ステップＳ１０２］ＣＭ２１０のリストア制御部２３３では、リストア用コピーセッションが設定され、このリストア用コピーセッションをＣＭ１１０側にも設定するための設定指示が送信される。ＣＭ１１０のリストア制御部１３３は、設定指示を受信する。
【０１６３】
［ステップＳ１０３］リストア制御部１３３は、リストア元ボリュームのブロックから読み出されたデータがＣＭ２１０のリストア制御部２３３から送信されると、このデータを受信し、リストア先ボリュームの対応するブロックに書き込む。また、リストア制御部１３３は、リストア先ボリュームをコピー元とするコピーセッションに対応するビットマップ（リストア先側ビットマップ）のビットのうち、データを書き込んだブロックに対応するビットのビット値を「１」に更新する。
【０１６４】
このステップＳ１０３の処理は、ＣＭ２１０のリストア制御部２３３からブロックのデータが送信されるたびに実行される。そして、リストア制御部１３３は、ＣＭ２１０のリストア制御部２３３からデータ送信の完了通知を受信すると、次のステップＳ１０４の処理を実行する。
【０１６５】
［ステップＳ１０４］リストア制御部１３３は、ＣＭ２１０のリストア制御部２３３からビットマップを受信する。このビットマップは、リストア元ボリュームとリストア先ボリュームとの間に含まれるコピーセッションのうち、コピー元ボリュームがＣＭ２１０に設定されているコピーセッションに対応するビットマップである。なお、該当するビットマップが存在しない場合、ＣＭ２１０のリストア制御部２３３からは、その旨を示す情報が送信される。
【０１６６】
［ステップＳ１０５］リストア制御部１３３は、リストア元ボリュームとリストア先ボリュームとの間に含まれるコピーセッションのうち、コピー元ボリュームがＣＭ１１０に設定され、かつ、コピー元側の末端以外のコピーセッションに対応するビットマップを、セッション管理テーブル１２２から読み出す。リストア制御部１３３は、読み出されたビットマップおよびステップＳ１０４で受信したビットマップをビットごとに比較し、すべてのビットマップでビット値が「０」であるビットを特定する。リストア制御部１３３は、該当するビットが特定された場合、ステップＳ１０４で更新対象としたリストア先側ビットマップのビット値のうち、特定されたビットのビット値を「１」に更新する。
【０１６７】
［ステップＳ１０６］リストア制御部１３３は、ステップＳ８５で仮作成されたリストア用ビットマップと、ステップＳ１０２で設定されたリストア用コピーセッションとを削除する。
【０１６８】
［ステップＳ１０７］リストア制御部１３３は、処理の完了通知をＣＭ２１０のリストア制御部２３３に送信する。リストア制御部１３３は、処理の完了通知の送信が完了し、かつ、ＣＭ２１０のリストア制御部２３３から処理の完了通知を受信すると、処理を終了する。
【０１６９】
図２０は、他方のＣＭにおけるリストア処理手順の例を示すフローチャートである。この図２０では例として、図１８のようにＣＭ１１０のリストア制御部１３３がリストア処理の実行指示を受信した場合におけるＣＭ２１０のリストア制御部２３３の処理について説明する。なお、図２０の処理は、リストア元のボリュームとリストア先のボリュームとの間にリモートコピーセッションが含まれる場合のみ実行される。
【０１７０】
［ステップＳ１１１］リストア制御部２３３は、ＣＭ１１０のリストア制御部１３３からリストア制御の引き継ぎ指示を受信する。この引き継ぎ指示は、図１９のステップＳ１０１で送信されるものである。リストア制御部２３３は、引き継ぎ指示とともに、カスケードコピーセッションの識別番号、リストア元とリストア先の各ボリュームの識別番号、および、図１８のステップＳ８５で仮作成されたリストア用ビットマップを受信する。
【０１７１】
［ステップＳ１１２］リストア制御部２３３は、カスケード管理テーブル２２３を参照して、該当するカスケードコピーセッションにおけるリストア元ボリュームとリストア先ボリュームとの間の接続経路を特定する。そして、リストア制御部１３３は、セッション管理テーブル１２２とボリューム管理テーブル１２１とを参照して、リストア元ボリュームとリストア先ボリュームとの間に含まれるコピーセッションの中に、ＣＭ２１０の制御下にあるコピーセッションがあるかを判定する。ＣＭ２１０の制御下にあるコピーセッションとは、コピー元ボリュームがＣＭ２１０に設定されているコピーセッションである。
【０１７２】
リストア制御部２３３は、該当するコピーセッションがある場合、ステップＳ１１３の処理を実行し、該当するコピーセッションがない場合、ステップＳ１１４の処理を実行する。
【０１７３】
［ステップＳ１１３］リストア制御部２３３は、ステップＳ１１２で存在すると判定された、ＣＭ２１０の制御下にあるコピーセッションに対応するビットマップを、セッション管理テーブル２２２から読み出す。リストア制御部２３３は、ステップＳ１１１で受信したビットマップと、セッション管理テーブル２２２から読み出したビットマップとをマージして、リストア用ビットマップを作成する。
【０１７４】
［ステップＳ１１４］リストア制御部２３３は、ステップＳ１１１で受信したビットマップをそのままリストア用ビットマップにすることで、リストア用ビットマップを作成する。
【０１７５】
［ステップＳ１１５］リストア制御部２３３は、リストア元ボリュームをコピー元とし、リストア先ボリュームをコピー先としたリストア用コピーセッションを設定する。具体的には、リストア制御部２３３は、このリストア用コピーセッションに対応するレコードをセッション管理テーブル２２２に追加設定する。このレコードのビットマップの欄には、ステップＳ１１３，Ｓ１１４のいずれかで作成されたリストア用ビットマップが設定される。
【０１７６】
また、リストア制御部２３３は、設定されたリストア用コピーセッションの情報をＣＭ１１０に送信し、リストア用コピーセッションの設定を指示する。なお、ＣＭ１１０のリストア制御部１３３では、送信された設定指示に応じて図１９のステップＳ１０２の処理が実行される。
【０１７７】
［ステップＳ１１６］リストア制御部２３３は、設定されたリストア用ビットマップを用いて、リストア用コピーセッションのコピー処理を実行する。具体的には、リストア制御部２３３は、リストア元ボリュームのブロックのうち、リストア用ビットマップで対応するビット値が「１」であるブロックからデータを読み出す。リストア制御部２３３は、読み出したデータをＣＭ１１０のリストア制御部１３３に送信して、リストア先ボリュームへの書き込みを要求する。また、リストア制御部２３３は、リストア用ビットマップのビットのうち、リストア先ボリュームへのコピーが完了したビットのビット値を「０」に更新する。
【０１７８】
上記処理の実行に伴い、ＣＭ１１０のリストア制御部１３３では、図１９のステップＳ１０３の処理が実行される。そして、リストア制御部２３３は、リストア用ビットマップで対応するビット値が「１」であるすべてのブロックについてのコピーが完了すると、データ転送の完了通知をＣＭ１１０に送信する。
【０１７９】
［ステップＳ１１７］リストア制御部２３３は、リストア元ボリュームとリストア先ボリュームとの間に含まれるコピーセッションのうち、コピー元ボリュームがＣＭ２１０に設定されているコピーセッションに対応するビットマップを、ＣＭ１１０のリストア制御部１３３に送信する。ただし、該当するコピーセッションが存在しない場合（ステップＳ１１２でＮｏと判定された場合）には、リストア制御部２３３は、その旨を示す情報を送信する。
【０１８０】
［ステップＳ１１８］リストア制御部２３３は、ステップＳ１１５で設定されたリストア用コピーセッションを削除する。これにより、ステップＳ１１３，Ｓ１１４のいずれかで作成されたリストア用ビットマップも削除される。
【０１８１】
［ステップＳ１１９］リストア制御部２３３は、処理の完了通知をＣＭ１１０のリストア制御部１３３に送信する。リストア制御部２３３は、処理の完了通知の送信が完了し、かつ、ＣＭ１１０のリストア制御部１３３から処理の完了通知を受信すると、処理を終了する。
【０１８２】
なお、上記の各実施の形態に示した装置（例えば、ストレージ装置１，２、ＣＭ１１０，２１０）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１８３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１８５】
１，２  ストレージ装置
１ａ，２ａ  記憶部
１ｂ  バックアップ制御部
１ｃ，２ｂ  リストア制御部
１１〜１４  ボリューム
２１〜２３  ボリュームペア
２１ａ〜２３ａ  コピー管理情報
３１，３２  リストア制御情報
Ｄ  コピー方向
Ｓ１，Ｓ１ａ〜Ｓ１ｃ，Ｓ２ａ〜Ｓ２ｄ  ステップ
【図１】
2018169863.tif 000003
【図２】
2018169863.tif 000004
【図３】
2018169863.tif 000005
【図４】
2018169863.tif 000006
【図５】
2018169863.tif 000007
【図６】
2018169863.tif 000008
【図７】
2018169863.tif 000009
【図８】
2018169863.tif 000010
【図９】
2018169863.tif 000011
【図１０】
2018169863.tif 000012
【図１１】
2018169863.tif 000013
【図１２】
2018169863.tif 000014
【図１３】
2018169863.tif 000015
【図１４】
2018169863.tif 000016
【図１５】
2018169863.tif 000017
【図１６】
2018169863.tif 000018
【図１７】
2018169863.tif 000019
【図１８】
2018169863.tif 000020
【図１９】
2018169863.tif 000021
【図２０】
2018169863.tif 000022