(57)【要約】【課題】本発明は、記憶領域の使用を効率化し得る記憶システムを提案するものである。【解決手段】所定の領域ごとに動的に第１の記憶領域が割り当てられる第１の論理ボリュームを有し、ホスト計算機から送信されるデータを第１の記憶領域に記憶する第１のストレージサブシステムと、第１の論理ボリュームをバックアップするための第２の記憶領域を有する第２のストレージサブシステムとを有する記憶システムであって、第１の論理ボリュームの領域ごとに割り当てられる第１の記憶領域の有無を管理する第１の管理部と、第１の論理ボリュームの領域に割り当てられた第１の記憶領域に記憶されているデータを、第２のストレージサブシステムに転送する転送部と、第１の管理部に管理された第１の記憶領域の有無、及び又は第２のストレージサブシステムから転送されたデータに基づいて、第１の論理ボリュームを復元する復元部とを備える。【選択図】図１
2007199922.tif 000002
【特許請求の範囲】
【請求項１】
所定の領域ごとに動的に第１の記憶領域が割り当てられる第１の論理ボリュームを有し、ホスト計算機から送信されるデータを前記第１の記憶領域に記憶する第１のストレージサブシステムと、前記第１の論理ボリュームをバックアップするための第２の記憶領域を有する第２のストレージサブシステムとを有する記憶システムであって、
前記第１のストレージサブシステムは、
前記第１の論理ボリュームの前記領域ごとに割り当てられる前記第１の記憶領域の有無を管理する第１の管理部と、
前記第１の論理ボリュームの前記領域に割り当てられた前記第１の記憶領域に記憶されている前記データを、前記第２のストレージサブシステムに転送する転送部と、
前記第１の管理部に管理された前記第１の記憶領域の有無、及び又は前記第２のストレージサブシステムから転送された前記データに基づいて、前記第１の論理ボリュームを復元する復元部と
を備えることを特徴とする記憶システム。
【請求項２】
前記復元部は、
前記第１の論理ボリュームを復元する際に、前記第１の管理部により前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域を割り当てる第１の割当て部
を備え、
前記第１の割当て部により割り当てた前記第１の記憶領域に、前記第２のストレージサブシステムから転送された前記データを書き込むことにより、前記第１の論理ボリュームを復元する
ことを特徴とする請求項１に記載の記憶システム。
【請求項３】
前記第１の割当て部は、
前記第１の論理ボリュームを復元する際に、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域をすべて解放し、前記第１の管理部により前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域を新たに割り当てる
ことを特徴とする請求項２に記載の記憶システム。
【請求項４】
前記第１の割当て部は、
前記第１の論理ボリュームを復元する際に、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域のうち不要とみなされた領域を解放し、前記第１のステップにおいて前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられていない場合に、当該領域に前記第１の記憶領域を割り当てる
ことを特徴とする請求項２に記載の記憶システム。
【請求項５】
前記第１の割当て部は、
前記第１の論理ボリュームを復元する際に、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域のうち指定された領域を解放し、前記第１のステップにおいて前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられていない場合に、当該領域に前記第１の記憶領域を割り当てる
ことを特徴とする請求項２に記載の記憶システム。
【請求項６】
前記第１の割当て部は、
前記第１の論理ボリュームを復元する際に、前記第１の管理部により前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられていない場合に、当該領域に前記第１の記憶領域を割り当て、前記第１の管理部により前記第１の記憶領域が無として管理されている前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられている場合に、当該領域に割り当てられている前記第１の記憶領域を解放する
ことを特徴とする請求項２に記載の記憶システム。
【請求項７】
前記復元部は、
前記第１の論理ボリュームの前記領域に前記第１の記憶領域が割り当てられている場合に、当該領域に対応した、前記第２のストレージサブシステムから転送された前記データを書き込み、前記第１の論理ボリュームの前記領域に前記第１の記憶領域が割り当てられていない場合に、当該領域に対応した、前記第２のストレージサブシステムから転送された前記データを破棄する
ことを特徴とする請求項１に記載の記憶システム。
【請求項８】
前記復元部は、
前記第１の論理ボリュームを復元する際に、前記第１の管理部により前記第１の記憶領域が有として管理されている前記第１の論理ボリュームの前記領域に、当該領域ごとに割り当てられていた前記第１の記憶領域と異なる記憶領域を割り当てる
ことを特徴とする請求項２に記載の記憶システム。
【請求項９】
前記第１の転送部は、
前記管理部により管理された前記第１の論理ボリュームの前記領域ごとに割り当てられる前記第１の記憶領域の有無を前記第２のストレージサブシステムに転送し、
前記第２のストレージサブシステムは、
前記領域ごとに動的に前記第２の記憶領域が割り当てられる第２の論理ボリューム
を有し、
前記第１の転送部により転送された前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域の有無を、前記第２の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域の有無として管理する第２の管理部と、
前記第２の管理部により前記第２の記憶領域が有として管理された前記第２の論理ボリュームの前記領域に、前記第２の記憶領域を割り当てる第２の割当て部と、
前記第２の割当て部により割り当てた前記第２の記憶領域に、前記第１の転送部により転送された前記データを、対応する前記第２の記憶領域に書き込むことにより、第２の論理ボリュームとして、前記第１の論理ボリュームを複製する複製部と
を備えることを特徴とする請求項１に記載の記憶システム。
【請求項１０】
前記第１の管理部は、
前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域の有無をビットマップで管理すると共に、当該ビットマップを番号と対応付けて管理し、
前記第１の転送部は、
前記ビットマップに対応づけられている前記番号を前記第２のストレージサブシステムに転送し、
前記復元部は、
前記第２のストレージサブシステムから転送された前記番号に対応付けられた前記ビットマップに基づいて、前記第１の論理ボリュームを復元する
ことを特徴とする請求項１に記載の記憶システム。
【請求項１１】
前記第１の管理部は、
前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域の有無をビットマップで管理し、
前記第１の転送部は、
前記ビットマップを前記第２のストレージサブシステムに転送し、
前記第２のストレージサブシステムは、
前記第１の転送部により転送された前記データを前記第２の記憶領域に保持する保持部と、
前記第１の論理ボリュームを復元する際に、前記第１の転送部により転送された前記ビットマップに基づいて、前記第１の記憶領域を割当てていた箇所についてのみ、前記保持部により保持された前記データを前記第１のストレージサブシステムに転送する第２の転送部と
を備えることを特徴とする請求項１に記載の記憶システム。
【請求項１２】
前記第２の記憶領域は、
書き込んだデータに対して変更を加えてはならないテープメディアでなる
ことを特徴とする請求項１に記載の記憶システム。
【請求項１３】
前記第１の管理部は、
前記第１の論理ボリュームに格納されている、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域の有無を管理し、
前記第１の転送部は、
前記第１の論理ボリュームに格納されている、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域の有無、及び前記データを前記第２のストレージサブシステムに転送し、
前記復元部は、
前記第２のストレージサブシステムから転送された、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域の有無に基づいて、前記第１の論理ボリュームを復元する
ことを特徴とする請求項１に記載の記憶システム。
【請求項１４】
前記第１の管理部は、
前記第１の論理ボリュームの更新の発生を管理し、
前記第１の転送部は、
前記第１の管理部により管理された、前記第１の論理ボリュームの更新が発生した記憶領域の有無、及び当該記憶領域に記憶されている前記データを前記第２のストレージサブシステムに転送し、
前記第２のストレージサブシステムは、
前記第１の転送部により転送された、前記第１の論理ボリュームの更新が発生した記憶領域の有無を管理する第２の管理部と、
前記第１の転送部により転送された前記データを前記第２の記憶領域に保持する保持部と、
前記第１の論理ボリュームを復元する際に、前記第２の管理部により管理された前記第１の論理ボリュームの更新が発生した記憶領域の有無に基づいて、前記第１の論理ボリュームの更新が発生した箇所についてのみ、前記保持部により保持された前記データを前記第１のストレージサブシステムに転送する第２の転送部と
を備えることを特徴とする請求項１に記載の記憶システム。
【請求項１５】
前記第１のストレージサブシステムは、
前記第１の論理ボリュームの前記第１の記憶領域を割り当てた容量の合計容量と同容量でなるバックアップボリュームを有し、
前記第１の管理部は、
前記第１の論理ボリュームに割り当てられている前記第１の記憶領域、及び前記バックアップボリュームに割り当てられている前記第１の記憶領域が同一の記憶領域を共有するように管理する
ことを特徴とする請求項１に記載の記憶システム。
【請求項１６】
所定の領域ごとに動的に第１の記憶領域が割り当てられる第１の論理ボリュームを有し、ホスト計算機から送信されるデータを前記第１の記憶領域に記憶する第１のストレージサブシステムと、前記第１の論理ボリュームをバックアップするための第２の記憶領域を有する第２のストレージサブシステムとを有する記憶システムのデータ復元方法であって、
前記第１の論理ボリュームの前記領域ごとに割り当てられる前記第１の記憶領域の有無を管理する第１のステップと、
前記第１の論理ボリュームの前記領域に割り当てられた前記第１の記憶領域に記憶されている前記データを、前記第２のストレージサブシステムに転送する第２のステップと、
前記第１のステップにおいて管理した前記第１の記憶領域の有無、及び又は前記第２のストレージサブシステムから転送された前記データに基づいて、前記第１の論理ボリュームを復元する第３のステップと
を備えることを特徴とする記憶システムのデータ復元方法。
【請求項１７】
前記第３のステップでは、
前記第１の論理ボリュームを復元する際に、前記第１のステップにおいて前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域を割り当て、割り当てた前記第１の記憶領域に、前記前記第２のストレージサブシステムから転送された前記データを書き込むことにより、前記第１の論理ボリュームを復元する
ことを特徴とする請求項１６に記載の記憶システムのデータ復元方法。
【請求項１８】
前記第３のステップでは、
前記第１の論理ボリュームを復元する際に、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域をすべて解放し、前記第１のステップにおいて前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域を新たに割り当てる
ことを特徴とする請求項１７に記載の記憶システムのデータ復元方法。
【請求項１９】
前記第３のステップでは、
前記第１の論理ボリュームを復元する際に、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域のうち不要とみなされた領域を解放し、前記第１のステップにおいて前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられていない場合に、当該領域に前記第１の記憶領域を割り当てる
ことを特徴とする請求項１７に記載の記憶システムのデータ復元方法。
【請求項２０】
前記第３のステップでは、
前記第１の論理ボリュームを復元する際に、前記第１の論理ボリュームの前記領域ごとに割り当てられている前記第１の記憶領域のうち指定された領域を解放し、前記第１のステップにおいて前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられていない場合に、当該領域に前記第１の記憶領域を割り当てる
ことを特徴とする請求項１７に記載の記憶システムのデータ復元方法。
【請求項２１】
前記第３のステップでは、
前記第１の論理ボリュームを復元する際に、前記第１のステップにおいて前記第１の記憶領域が有として管理された前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられていない場合に、当該領域に前記第１の記憶領域を割り当て、前記第１のステップにおいて前記第１の記憶領域が無として管理されている前記第１の論理ボリュームの前記領域に、前記第１の記憶領域が割り当てられている場合に、当該領域に割り当てられている前記第１の記憶領域を解放する
ことを特徴とする請求項１７に記載の記憶システムのデータ復元方法。
【請求項２２】
前記第３のステップでは、
前記第１の論理ボリュームの前記領域に前記第１の記憶領域が割り当てられている場合に、当該領域に対応した、前記第２のストレージサブシステムから転送された前記データを書き込み、前記第１の論理ボリュームの前記領域に前記第１の記憶領域が割り当てられていない場合に、当該領域に対応した、前記第２のストレージサブシステムから転送された前記データを破棄する
ことを特徴とする請求項１７に記載の記憶システムのデータ復元方法。
【請求項２３】
前記第３のステップでは、
前記第１の論理ボリュームを復元する際に、前記第１のステップにおいて前記第１の記憶領域が有として管理されている前記第１の論理ボリュームの前記領域に、当該領域ごとに割り当てられていた前記第１の記憶領域と異なる記憶領域を割り当てる
ことを特徴とする請求項１７に記載の記憶システムのデータ復元方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システム及びそのデータ復元方法に関し、例えば、データを格納するボリュームの記憶領域を動的に割当てる機能を有するストレージサブシステムにおけるバックアップ、及びバックアップしたデータを基にリストアする技術に適用して好適なものである。
【背景技術】
【０００２】
従来、データを格納するボリュームの記憶領域を動的に割当てる機能を有するストレージサブシステムが知られており、これに関する種々の技術が提案されている。
【０００３】
例えば、特許文献１では、ストレージサブシステムと、ストレージサブシステム内の記憶領域を仮想ボリュームに動的に割当てるスイッチ装置とを有する記憶システムについて開示されている。この場合、記憶システムでは、スイッチ装置において、ホスト計算機からの書き込み要求を受信した際に、仮想ボリュームに対して記憶領域を動的に割当てると共に、仮想ボリュームと、該仮想ボリュームに割当てられているストレージサブシステム内の記憶領域の対応関係を記録したアクセス変換テーブルを更新する。
【０００４】
また、この記憶システムでは、スイッチ装置において、アクセス変換テーブルを更新して、仮想ボリュームに割り当てられている記憶領域のうち、前記ホスト計算機に使用されなくなった記憶領域の割り当てを解放すると共に、アクセス変換テーブルを更新する。
【０００５】
一方、特許文献２では、遠隔のストレージサブシステムに対し、データを転送することで複製（バックアップ）し、ストレージサブシステムにおけるデータ消失等の災害時に、該バックアップしたデータを戻すことで、ストレージサブシステムを復元（リストア）するリモートコピー機能を有する記憶システムについて開示されている。この場合、記憶システムでは、遠隔のストレージサブシステム間で同期若しくは非同期でデータの転送を行い、この進捗を管理する。
【０００６】
また、この記憶システムでは、データをバックアップして長期的に保存する場合、バックアップを制御するために設置されたサーバが管理するテープ装置のテープライブラリに対して、ストレージサブシステムの全領域のデータを格納する。
【特許文献１】特開２００５-１１３１６号公報
【特許文献２】特開２００３-１２２５０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、前述の記憶領域を動的に割当てる機能と、リモートコピー機能とを組み合わせた場合、バックアップされたデータをリストアするときに、リストア先のストレージサブシステムの仮想ボリュームの全領域にデータの書き込みが発生することとなる。
【０００８】
特に、バックアップ先のストレージサブシステムが、テープ装置や旧機種などであり、記憶領域を動的に割当てる機能を有さない場合、バックアップしたときに、割当てた記憶領域に関する情報が失われているため、これに伴って、リストアするときに、ストレージサブシステムの仮想ボリュームに不要な記憶領域を割当てることから、記憶領域を無駄に浪費してしまうという問題が生じ、この結果、ストレージサブシステムの記憶領域を効率的に使用することができないこととなる。
【０００９】
本発明は以上の点を考慮してなされたもので、記憶領域の使用を効率化し得る記憶システム及びそのデータ復元方法を提案するものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するために本発明においては、所定の領域ごとに動的に第１の記憶領域が割り当てられる第１の論理ボリュームを有し、ホスト計算機から送信されるデータを第１の記憶領域に記憶する第１のストレージサブシステムと、第１の論理ボリュームをバックアップするための第２の記憶領域を有する第２のストレージサブシステムとを有する記憶システムであって、第１のストレージサブシステムは、第１の論理ボリュームの領域ごとに割り当てられる第１の記憶領域の有無を管理する第１の管理部と、第１の論理ボリュームの領域に割り当てられた第１の記憶領域に記憶されているデータを、第２のストレージサブシステムに転送する転送部と、第１の管理部に管理された第１の記憶領域の有無、及び又は第２のストレージサブシステムから転送されたデータに基づいて、第１の論理ボリュームを復元する復元部とを備えるようにした。
【００１１】
従って、第１の論理ボリュームを復元する際に、第１の論理ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的に第１の論理ボリュームに記憶領域を割当てることができる。
【００１２】
また、本発明においては、所定の領域ごとに動的に第１の記憶領域が割り当てられる第１の論理ボリュームを有し、ホスト計算機から送信されるデータを第１の記憶領域に記憶する第１のストレージサブシステムと、第１の論理ボリュームをバックアップするための第２の記憶領域を有する第２のストレージサブシステムとを有する記憶システムのデータ復元方法であって、第１の論理ボリュームの領域ごとに割り当てられる第１の記憶領域の有無を管理する第１のステップと、第１の論理ボリュームの領域に割り当てられた第１の記憶領域に記憶されているデータを、第２のストレージサブシステムに転送する第２のステップと、第１のステップにおいて管理した第１の記憶領域の有無、及び又は第２のストレージサブシステムから転送されたデータに基づいて、第１の論理ボリュームを復元する第３のステップとを備えるようにした。
【００１３】
従って、第１の論理ボリュームを復元する際に、第１の論理ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的に第１の論理ボリュームに記憶領域を割当てることができる。
【発明の効果】
【００１４】
本発明によれば、第１の論理ボリュームの領域ごとに割り当てられる第１の記憶領域の有無を管理し、第１の論理ボリュームの領域に割り当てられた第１の記憶領域に記憶されているデータを、第２のストレージサブシステムに転送した後に、第１のステップにおいて管理した第１の記憶領域の有無、及び又は第２のストレージサブシステムから転送されたデータに基づいて、第１の論理ボリュームを復元することにより、第１の論理ボリュームを復元する際に、第１の論理ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的に第１の論理ボリュームに記憶領域を割当てることができ、かくして、記憶領域の使用を効率化し得る記憶システム及びそのデータ復元方法を実現できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態を、図面を用いて説明する。なお、本発明は以下に説明する実施形態に限定されるものではない。
【００１６】
（１）第１の実施の形態
（１−１）第１の実施の形態における記憶システムの構成
図１は、本発明を適用した記憶システムの第１の実施の形態における構成を示す図である。本実施の形態による記憶システム１０００は、第１のストレージサブシステム１１００、第２のストレージサブシステム１２００及びホスト計算機１３００が例えばＳＡＮ（Storage Area Network）等のネットワーク１４００により接続されて構成されている。
【００１７】
なお、本実施の形態においては、第１のストレージサブシステム１１００、第２のストレージサブシステム１２００及びホスト計算機１３００が同一のネットワーク１４００に接続された構成としてここに示しているが、この構成以外にも、第１のストレージサブシステム１１００及びホスト計算機１３００間のネットワークと、第１のストレージサブシステム１１００及び第２のストレージサブシステム１２００間のネットワークが分離した構成でも良い。
【００１８】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をＲＡＩＤ（Redundant Array of Independent Disks）やＪＢＯＤ（Just Bunch Of Disks）構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【００１９】
第１のストレージサブシステム１１００は、第１の制御装置１１１０と第１の管理端末１１３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第１の管理端末１１３０により行うことができる。また、各種機能の設定はホスト計算機１３００により行うこともできる。
【００２０】
また、第１のストレージサブシステム１１００は、所定のネットワーク１５００により外部ストレージ装置１６００と接続されている。
【００２１】
第１の制御装置１１１０は、当該第１の制御装置１１１０全体を制御する１個以上のＣＰＵ（Central Processing Unit）１１１１、ネットワーク１４００との接続のためのネットワークＩ／Ｆ（Interface）１１１２、ネットワーク１５００との接続のためのネットワークＩ／Ｆ１１１３、第１の管理端末１１３０との接続のためのＮＩＣ（Network Interface Card）１１１４、複数のハードディスクドライブ等でなり、当該第１の制御装置１１１０の各種設定情報やプログラム等が格納されていると共に、ホスト計算機１３００から送信されるデータが格納される内部ストレージ装置１１１５、及び当該各種設定情報やプログラム等が展開されるメモリ１１１６から構成されている。
【００２２】
メモリ１１１６には、ボリューム管理プログラム１１２０、動的記憶領域割当てプログラム１１２１、遠隔コピー管理プログラム１１２２、記憶領域管理テーブル１１２３及びバックアップ記憶領域テーブル１１２４が展開されている。このボリューム管理プログラム１１２０、動的記憶領域割当てプログラム１１２１、遠隔コピー管理プログラム１１２２は、ＣＰＵ１１１１によって実行されるプログラムである。
【００２３】
第１の管理端末１１３０は、当該第１の管理端末１１３０全体を制御する１個以上のＣＰＵ１１３１、当該第１の制御装置１１１０の各種設定情報やプログラム等が格納されている記憶装置１１３２、各種設定情報やプログラム等が展開されるメモリ１１３３及び第１の制御装置１１１０との接続のためのＮＩＣ１１３４から構成されている。
【００２４】
一方、第２のストレージサブシステム１２００は、第２の制御装置１２１０と第２の管理端末１２３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第２の管理端末１２３０により行うことができる。
【００２５】
第２の制御装置１２１０は、ネットワーク１５００との接続のためのネットワークＩ／Ｆが設けられていないこと、及びメモリ１１１６に動的記憶領域割当てプログラム、記憶領域管理テーブル及びバックアップ記憶領域テーブルが展開されていない（設けられていない）ことを除いて、第１の制御装置１１１０と同様に構成されており、ＣＰＵ１２１１、ネットワークＩ／Ｆ１２１２、ＮＩＣ１２１４、内部ストレージ装置１２１５及びメモリ１２１６から構成されている。
【００２６】
メモリ１２１６には、ボリューム管理プログラム１２２０、遠隔コピー管理プログラム１２２１が展開されている。このボリューム管理プログラム１２２０、遠隔コピー管理プログラム１２２１は、ＣＰＵ１２１１によって実行されるプログラムである。
【００２７】
第２の管理端末１２３０は、第２の管理端末１２３０と同様に構成されており、ＣＰＵ１２３１、記憶装置１２３２、メモリ１２３３及びＮＩＣ１２３４から構成されている。
【００２８】
他方、ホスト計算機１３００は、ＣＰＵ１３０１及びネットワーク１４００との接続のためのネットワークＩ／Ｆ１３０２を有するコンピュータ装置であり、例えばＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）をＯＳ（Operation System）とするサーバなどから構成される。また、ホスト計算機１３００は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機１３００は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【００２９】
この場合、第１のストレージサブシステム１１００のボリュームの管理は、ストレージ制御装置１１１０のメモリ１１１６に格納されているボリューム管理プログラム１１２０がＣＰＵ１１１１に実行されることにより動作する。
【００３０】
第１のストレージサブシステム１１００は、外部ストレージ装置１６００を内部ストレージ装置１１１５と同様に扱い、ホスト計算機１３００に提供するボリュームを構成するストレージ装置としても良い。また、第１のストレージサブシステム１１００は、内部ストレージ装置１１１５を持たず、外部ストレージ装置１６００のみでボリュームをホスト計算機１３００に対して提供しても良い。なお、外部ストレージ装置１６００は、他のストレージサブシステムが提供するボリュームであっても良い。
【００３１】
第１のストレージサブシステム１１００は、ボリュームを提供する場合、ホスト計算機１３００によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置１１１５及び外部ストレージ装置１６００の物理デバイス（ハードディスクドライブ等）の特定領域を指す。
【００３２】
動的記憶領域割り当て機能は、メモリ１１１６に格納されるボリューム管理プログラム１１２０及び動的記憶領域割当てプログラム１１２１がＣＰＵ１１１１に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム１１２１は、記憶領域管理テーブル１１２３に格納された情報を基に動作する。
【００３３】
この動的記憶領域割り当て機能では、ホスト計算機１３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム１１２１により、記憶領域管理テーブル１１２３を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル１１２３に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【００３４】
また、動的記憶領域割り当て機能では、ホスト計算機１３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム１１２１により、記憶領域管理テーブル１１２３を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル１１２３に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【００３５】
さらに、動的記憶領域割り当て機能では、ホスト計算機１３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム１１２０により、記憶領域管理テーブル１１２３を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「０」等の予め決められたパターンをホスト計算機１３００に対して送信する。
【００３６】
さらに、動的記憶領域割り当て機能では、ホスト計算機１３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム１１２０により、記憶領域管理テーブル１１２３を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル１１２３に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機１３００に対して送信する。
【００３７】
第２のストレージサブシステム１２００は、動的記憶領域割り当て機能を有さない、若しくは動的記憶領域割り当て機能を有していてもその機能が動作していない、若しくは動的記憶領域割り当て機能を有していても、第１のストレージサブシステム１１００と動的記憶領域割り当て機能について連携を行うことができないストレージサブシステムである。
【００３８】
なお、第２のストレージサブシステム１２００が動的記憶領域割り当て機能を有している場合でも、本実施の形態を用いることができるが、その場合には本実施の形態以外の方法を使用するのが望ましい。
【００３９】
第１のストレージサブシステム１１００及び第２のストレージサブシステム１２００は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【００４０】
ここで、第１のストレージサブシステム１１００のボリュームを複製元とし、第２のストレージサブシステム１２００のボリュームを複製先とした場合、遠隔コピー管理プログラム１１２２がＣＰＵ１１１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【００４１】
逆に、第２のストレージサブシステム１２００のボリュームを複製元とし、第１のストレージサブシステム１１００のボリュームを複製先とした場合、遠隔コピー管理プログラム１２２２がＣＰＵ１２１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【００４２】
なお、第１のストレージサブシステム１１００のボリュームを複製元とし、第２のストレージサブシステム１２００のボリュームを複製先とした場合、第１のストレージサブシステム１１００のボリュームをバックアップ元ボリューム、第２のストレージサブシステム１２００のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【００４３】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【００４４】
また、バックアップを行った後に、第２のストレージサブシステム１２００のボリュームを複製元、第１のストレージサブシステム１１００のボリュームを複製先とした場合、第２のストレージサブシステム１２００のボリュームをリストア元ボリューム、第１のストレージサブシステム１１００のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【００４５】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【００４６】
（１−２）第１の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第１のストレージサブシステム１１００から第２のストレージサブシステム１２００に対するバックアップの制御方式について説明を行う。
【００４７】
この記憶システム１０００では、第１のストレージサブシステム１１００の動的記憶領域割り当て機能を使用するボリュームにより、第２のストレージサブシステム１２００のボリュームに対してリモートコピー機能によるバックアップを行う。
【００４８】
第１のストレージサブシステム１１００の動的記憶領域割り当て機能を使用するボリュームと第２のストレージサブシステム１２００のボリュームとの間のリモートコピー機能によるバックアップは、第１のストレージサブシステム１１００側では、ボリューム管理プログラム１１２０と、遠隔コピー管理プログラム１１２２と、動的記憶領域割当てプログラム１１２１とがＣＰＵ１１１１に実行されることにより動作する。
【００４９】
一方、第２のストレージサブシステム１２００側では、ボリューム管理プログラム１２２０と、遠隔コピー管理プログラム１２２２とがＣＰＵ１２１１に実行されることにより動作する。
【００５０】
このうち、ボリューム管理プログラム１１２０及びボリューム管理プログラム１２２０は、対象のボリュームが動的記憶領域割り当て機能を使用するか否かを管理する。また、遠隔コピー管理プログラム１１２２及び遠隔コピー管理プログラム１２２２は、ネットワーク１４００を通してバックアップ元ボリュームからバックアップ先ボリュームに対するバックアップを行う。
【００５１】
本バックアップは、ホスト計算機１３００若しくは第１のストレージサブシステム１１００の第１の管理端末１１３０から、第１の制御装置１１１０に対してバックアップ要求を発行し、ネットワーク１４００を介して第２のストレージサブシステム１２００の第２の制御装置１２１０にバックアップ要求を転送し、第２の制御装置１２１０が該バックアップ要求を受信した後に開始する。
【００５２】
該バックアップ要求は、ホスト計算機１３００若しくは第２の管理端末１２２０から、第２の制御装置１２１０に対して発行しても良い。この場合、本バックアップは、ネットワーク１４００を介して第２のストレージサブシステム１２００のストレージ制御装置１２１０より第１のストレージサブシステム１１００のストレージ制御装置１１１０にバックアップ要求を転送し、第１の制御装置１１１０が該バックアップ要求を受信した後に開始する。
【００５３】
この場合、遠隔コピー管理プログラム１１２２は、対象のボリューム全体のデータを送信することでバックアップを行うが、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームである場合、記憶領域管理テーブル１１２３を基に、前述の動的記憶領域割り当て機能を使用するボリュームに対する読み出し処理に従ってボリューム全体を転送する。
【００５４】
このとき、第１のストレージサブシステム１１００の遠隔コピー管理プログラム１１２２は、動的記憶領域割当てプログラム１１２１に対して、対象のボリュームの記憶領域を割当てた箇所についての情報のバックアップを行うように要求する。
【００５５】
該バックアップ要求を受けた動的記憶領域割当てプログラム１１２１は、記憶領域管理テーブル１１２３を参照し、記憶領域を割当てた箇所についての情報をビットマップ化してバックアップ記憶領域テーブル１１２４に保存する。
【００５６】
バックアップ記憶領域テーブル１１２４の格納先は、メモリ１１１６や内部ストレージ装置１１１５や外部ストレージ装置１６００等、第１の制御装置１１１０より参照可能なデータ保存可能箇所であるならば記憶装置の種類を問わない。
【００５７】
また、第１の管理端末１１３０内のメモリ１１３３や記憶装置１１３２等の第１の制御装置１１１０からの参照要求に対する応答が可能である外部管理端末内の記憶装置であっても良い。
【００５８】
以下に、本実施の形態における前述のバックアップを行ったデータを元とした第２のストレージサブシステム１２００から、第１のストレージサブシステム１１００に対するリストアの制御方式について説明を行う。
【００５９】
第１のストレージサブシステム１１００のボリュームデータ消失等の災害が発生した場合、ホスト計算機１３００やストレージ管理端末１１２０やストレージ管理端末１２２０は、バックアップ先ボリュームのデータをバックアップ元ボリュームに対してコピーするリストア開始を要求する。
【００６０】
該リストアは、前述のバックアップ制御のバックアップ元がリストア先に、バックアップ先がリストア元に逆転し、リモートコピー機能におけるバックアップと逆向きの方向にデータを送信する制御である。
【００６１】
このとき、遠隔コピー管理プログラム１１２２は、リストア先が第１のストレージサブシステム１１００の動的記憶領域割り当て機能を使用するボリュームであることをボリューム管理プログラム１１２０が検出した場合、リモートコピー機能によるバックアップと同時に保存した、対象のボリュームの記憶領域を割当てた箇所についての情報を、保存先のストレージサブシステムに格納されたバックアップ記憶領域テーブル１１２４により取得し、これを基にバックアップ時の記憶領域の割当てを再現するように記憶領域管理テーブル１１２３を変更する。
【００６２】
このとき、記憶領域管理テーブル１１２３では、必ずしもバックアップ時の記憶領域との対応が復元される必要は無く、対象のボリュームに対してバックアップ時に記憶領域が割当てられていた箇所に対してリストア時に記憶領域が割当てられていて、バックアップ時に記憶領域が割当てられていなかった箇所に対してリストア時に記憶領域が割当てられていないことが保障されれば良い。
【００６３】
リストアに伴い、ネットワーク１４００を介して遠隔コピー管理プログラム１２２０から第１の制御装置１１１０に対して、リストア元ボリュームよりリストア先ボリュームへのボリューム全体のコピーが行われる。
【００６４】
データを受信した第１の制御装置１１１０は、遠隔コピー管理プログラム１１２２により、動的記憶領域割当てプログラム１１２１を呼び出し、記憶領域管理テーブル１１２３を参照して、対象のデータの書き込み箇所に対して、記憶領域が割当てられているならば、受信したデータを該記憶領域に対して書き込み、記憶領域が割当てられていないならば、受信したデータを破棄する。
【００６５】
このように記憶システム１０００では、記憶領域を割当てた箇所についての情報と、割当てられた記憶領域に格納されたデータを復元することで、第１の制御装置１１１０の対象のボリュームのデータを復元し、なおかつ、対象のボリュームに対してバックアップ前に割当てていた記憶領域も復元することができる。
【００６６】
図２は、記憶領域管理テーブル１１２３の構造概要を示す図である。記憶領域管理テーブル１１２３は、ボリュームブロック番号格納欄１１２３１、記憶領域割り当て有無格納欄１１２３２及びデータ記憶領域ＩＤ格納欄１１２３３から構成されている。
【００６７】
記憶領域管理テーブル１１２３は、動的記憶領域割り当て機能を使用するボリュームをブロック単位に管理を行い、該ボリュームブロック番号をボリュームブロック番号格納欄１１２３１に格納する。
【００６８】
また、記憶領域管理テーブル１１２３は、ボリュームブロック番号に対する記憶領域の割り当ての有無を、記憶領域割り当て有無格納欄１１２３２に格納する。
【００６９】
さらに、記憶領域管理テーブル１１２３は、対象のボリュームブロック番号に対して記憶領域を割当てているのならば、該ボリュームブロック番号に対して割当てている記憶領域のＩＤをデータ記憶領域ＩＤ格納欄１１２３３に格納する。
【００７０】
さらに、記憶領域管理テーブル１１２３は、対象のボリュームブロック番号に対して記憶領域を割当てていないならば、ＮＵＬＬ等を、記憶領域先ＩＤ格納欄１１２３３に格納して対象のボリュームブロック番号に対しての記憶領域の割当てが未発生であることを明示する。
【００７１】
そして、動的記憶領域割り当て機能は、該ボリュームブロック番号に対して割当てている記憶領域のＩＤ及びＮＵＬＬの情報を元に、記憶領域の割当て有無、及びデータ格納先の情報を取得し動作を行う。
【００７２】
図３は、バックアップ記憶領域テーブル１１２４の構造概要を示す図である。バックアップ記憶領域テーブル１１１４は、ボリュームブロック番号格納欄１１２３１及び記憶領域割り当て有無格納欄１１２４２から構成されている。
【００７３】
バックアップ記憶領域テーブル１１２４は、バックアップ要求のあった任意の時点における動的記憶領域割り当て機能を使用するボリュームのボリュームブロック番号をボリュームブロック番号格納欄１１２４１に格納すると共に、ボリュームブロック番号に対する記憶領域の割り当ての有無を、記憶領域割り当て有無格納欄１１２４２に格納する。
【００７４】
バックアップ記憶領域テーブル１１２４では、記憶領域管理テーブル１１２３を基に、記憶領域との対応があるブロックを「割当て有」、記憶領域との対応がないブロックを「割当て無」と見做すことで作成を行うことができる。
【００７５】
図４は、リモートコピー機能を用いたバックアップにおける、データ送信元である第１の制御装置１１１０のＣＰＵ１１１１での、ボリューム管理プログラム１１２０と、動的記憶領域割当てプログラム１１２１と、遠隔コピー管理プログラム１１２２との連携制御方式の動作概要についてのフローチャートを示している。
【００７６】
まず、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１００にて、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム１１２０を呼び出し、調査を行う。
【００７７】
第１の制御装置１１１０のＣＰＵ１１１１は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、対象のボリューム内の全領域のデータを、全てバックアップ先ボリュームに対して転送するステップＳ１０２に進む。本転送処理は、遠隔コピー管理プログラム１１２０に基づいて行われる。
【００７８】
一方、第１の制御装置１１１０のＣＰＵ１１１１は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、ステップＳ１０１に進み、ステップＳ１０１にて、記憶領域管理テーブル１１２３からバックアップ記憶領域テーブル１１２４を作成する。本テーブル作成処理は、動的記憶領域割当てプログラム１１２１に基づいて行われる。
【００７９】
第１の制御装置１１１０のＣＰＵ１１１１は、バックアップ記憶領域テーブル１１２４の作成処理であるステップＳ１０１の完了の後、対象のボリューム内の全領域のデータの転送処理であるステップＳ１０２に進む。本処理完了に伴い、バックアップ完了となる。
【００８０】
なお、第１の制御装置１１１０のＣＰＵ１１１１は、対象のボリューム全体に対してステップＳ１０１完了の後に、ステップＳ１０２を行うとしているが、該ボリュームを適当な領域に区切り、ある前述の領域に対してステップＳ１０１が完了の後にステップＳ１０２を実行し、ステップＳ１０２の転送中に次の領域に対してステップＳ１０１を行うことで処理性能向上を図っても良い。
【００８１】
図５は、リモートコピー機能を用いたバックアップデータからのリストア制御方式の動作概要についてのフローチャートを示している。
【００８２】
まず、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１０にて、リストア先ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム１１２０を呼び出し、調査を行う。
【００８３】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１０にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、第２のストレージサブシステム１２００において、リストア元ボリュームの全領域のデータを、全てリストア先ボリュームに対して転送するステップＳ１１６に進む。本転送処理は、遠隔コピー管理プログラム１２２２に基づいて行われる。
【００８４】
一方、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１０にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、バックアップ時に、同時に保存したバックアップ記憶領域テーブル１１２４が保管されているかの調査を行うステップＳ１１１へ進む。
【００８５】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１１にて、バックアップ記憶領域テーブル１１２４が保管されているかの調査の結果、対象のボリュームに対するバックアップ記憶領域テーブル１１２４が保管されていないことが判明した場合、バックアップ取得時の記憶領域割当ての状態を復元できないため、リストア元ボリュームの全領域に対するデータを、リストア先ボリュームの全領域に対して書き込む必要がある。このため、リストア先ボリュームの全領域に対し、記憶領域を割当てるステップＳ１１４へ進む。
【００８６】
一方、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１１にて、バックアップ記憶領域テーブル１１２４が保管されているかの調査の結果、対象のボリュームに対するバックアップ記憶領域テーブル１１２４が保管されていることが判明した場合、バックアップしたデータに対し、第２のストレージサブシステム１２００側で更新を行っていないかのチェックを行うため、ステップＳ１１２へ進む。
【００８７】
リモートコピー機能では、リモートコピー完了後、バックアップ元ボリュームに対する書き込みによる更新箇所を遠隔コピー管理プログラム１１２２が、バックアップ先ボリュームに対する書き込みによる更新箇所を遠隔コピー管理プログラム１２２２がそれぞれ差分ビットマップ等を用いて管理している。
【００８８】
そのため、第１の制御装置１１１０のＣＰＵ１１１１は、遠隔コピー管理プログラム１２２２から、差分ビットマップの状況を通知してもらうことで、ステップＳ１１２の判定を行う。
【００８９】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１２の結果、更新ありと判断した場合、バックアップ記憶領域テーブル１１２４を保管した時点のバックアップ元ボリュームのデータと、リストア元ボリュームのデータとを異なったデータであると見做す為、保管されているバックアップ記憶領域テーブル１１２４を用いて管理情報を復元することができない。そのため、第２のストレージサブシステム１２００において、リストア元ボリュームの全領域に対するデータを、リストア先ボリューム全領域に対して書き込む必要がある。
【００９０】
これにより、第１の制御装置１１１０のＣＰＵ１１１１は、リストア先ボリュームの全領域に対し、記憶領域を割当てるステップＳ１１４へ進む。
【００９１】
一方、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１２の結果、更新なしと判断した場合、バックアップ時の記憶領域割当て状況を復元するステップＳ１１３へ進む。
【００９２】
なお、第１の制御装置１１１０のＣＰＵ１１１１は、遠隔コピー管理プログラム１２２２から、遠隔コピー管理プログラム１１２２に対し、差分の発生状況が通知されない場合には、差分発生の状況を判断できないため、ステップＳ１１４へ進む必要がある。
【００９３】
ただし、第１の制御装置１１１０のＣＰＵ１１１１は、バックアップ時にリモートコピー先を「書き込み不可」に設定でき、バックアップ後のバックアップ先ボリュームに対する更新が不可能であることが明示的に判明しており、なおかつその情報を第２のストレージサブシステム１２００から、第１のストレージサブシステム１１００に対して通知可能であるならば、更新は発生していないと見做してステップＳ１１３へ進む。
【００９４】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１３にて、バックアップ時に取得したバックアップ記憶領域テーブル１１２４を基に、記憶領域割当て要不要箇所を特定し、記憶領域の割当てが必要な箇所に対して記憶領域の割当てを行う。第１の制御装置１１１０のＣＰＵ１１１１は、この処理の後、ステップＳ１１５に進む。
【００９５】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１４にて、リストア先ボリューム全領域に対して記憶領域の割当てを行い、ステップＳ１１５に進む。
【００９６】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１５にて、遠隔コピー管理プログラム１２２２により、リストア元ボリュームからリストア先ボリュームに対して送信されるデータのうち、記憶領域を割当てた箇所に対してのデータについて、対応する記憶領域へ書き込みを行う。また、第１の制御装置１１１０のＣＰＵ１１１１は、それ以外のデータについては破棄を行う。当該処理の完了に伴い、リストアを完了する。
【００９７】
なお、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１３及びステップＳ１１４の記憶領域割当て処理についてのリストア完了までの時間を短縮する為、ステップＳ１１５のデータ送受信処理を行いながら実行しても良い。また、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１１５とステップＳ１１６の処理を共通化し、ステップＳ１１６を記憶領域の割当てが既に完了しているボリュームと見做してデータ送受信処理を行っても良い。
【００９８】
図６は、ステップＳ１１３の処理を詳細化した処理についての、第１の方式におけるフローチャートを示している。
【００９９】
本方式は、対象のリストア先ボリュームに割当てられている記憶領域を全て解放した後に、割当てが必要な箇所に対して再割当てを行う方式である。以降に概要を示す。
【０１００】
まず、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１２０にて、対象のボリュームに割当てられた記憶領域を全て解放する。第１の制御装置１１１０のＣＰＵ１１１１は、当該処理の完了後、ステップＳ１２１に進む。
【０１０１】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１２１にて、保存されていたバックアップ記憶領域テーブル１１２４を参照し、記憶領域が割当てられていた箇所に対して、記憶領域の割当て処理を行う。この場合、当該処理では、記憶領域が割当てられていなかった箇所に対しては、記憶領域の割当て処理を行わない。当該処理完了に伴い、ステップＳ１１３の処理は完了となる。
【０１０２】
図７は、ステップＳ１１３を詳細化した処理についての、第２の方式におけるフローチャートを示している。
【０１０３】
本方式は、対象のボリュームに割当てられている記憶領域のうち、ステップＳ１１３の完了の後に割当てが不要となる箇所に対して割当てを解放し、記憶領域が割当てられていない箇所のうち、ステップＳ１１３の完了の後に割当てが必要となる箇所に対して記憶領域の割当てを行う。以降に概要を示す。本フローチャートでは、対象のボリュームの記憶領域割当てはボリュームブロック番号単位に行うものとして記述する。
【０１０４】
まず、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３０にて、あるボリュームブロック番号に対するバックアップ時の記憶割当て状態を取得する。第１の制御装置１１１０のＣＰＵ１１１１は、バックアップ時に、対象のボリュームブロック番号の記憶領域の割当てがあったならば、ステップＳ１３１へ進み、記憶領域の割当てがなかったならば、ステップＳ１３３へ進む
【０１０５】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３１にて、リストア開始時の記憶領域の割当て状態を取得する。ここで、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３１にて、ステップＳ１３０の処理と合わせて、バックアップ時に対象のボリュームブロック番号の記憶領域の割当てがあり、リストア開始時に対象のボリュームブロック番号の記憶領域の割当てがないならば、リストア終了時に対象のボリュームブロック番号に対して記憶領域の割当てが必要となると判断し、ステップＳ１３２にて、該当ボリュームブロック番号に対して記憶領域の割当てを行う。
【０１０６】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３２にて、記憶領域割当て処理の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ１３５へ進む。
【０１０７】
一方、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３１にて、ステップＳ１３０の処理と合わせて、バックアップ時及びリストア開始時に対象のボリュームブロック番号に対する記憶領域の割当てがあるならば、該記憶領域を継続して使用すればよいと判断し、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ１３５へ進む。
【０１０８】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３３にて、リストア開始時の記憶領域の割当て状態を取得する。ここで、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３３にて、ステップＳ１３４の処理と合わせて、バックアップ時に対象のボリュームブロック番号の記憶領域の割当てがなく、リストア開始時に対象のボリュームブロック番号の記憶領域の割当てがあるのならば、リストア終了時には対象のボリュームブロック番号に対して記憶領域の割当てが不要となると判断し、ステップＳ１３４にて、該当ボリュームブロック番号に対する記憶領域の解放を行う。
【０１０９】
なお、解放対象となる記憶領域が再利用される際に、若しくは当該記憶領域が格納された内部ストレージ１１１５が第１のストレージサブシステム１１００から取り除かれた後に、記憶領域に格納されていたデータの読み出しを防ぐために、「０」や乱数等のデータを当該記憶領域に書き込んだ後に解放を行うようにしても良い。また、この書き込み作業は、論理的にデータの読出しを不可とするのみならず、複数回乱数を書き込むことで物理的なデータの読み出しを不可にするものであっても良い。
【０１１０】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３４にて、記憶領域割当ての解放の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ１３５へ進む。
【０１１１】
一方、第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３３にて、ステップＳ１３０の処理と合わせて、バックアップ時及びリストア開始時に対象のボリュームブロック番号に対する記憶領域の割当てがないのならば、記憶領域割当てに対する操作は不要であると判断し、これについての処理は特に行わず、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ１３５へ進む。
【０１１２】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１３５にて、対象のボリューム内の全ボリュームブロック番号に対して、バックアップ時とリストア開始時の対象のボリュームブロック番号の記憶領域の割当ての比較及び、これに付随する記憶領域の割当て若しくは解放処理が完了したか否かの判断を行う。
【０１１３】
第１の制御装置１１１０のＣＰＵ１１１１は、全ボリュームブロック番号に対して処理が完了していないのならば、ステップＳ１３６にて、対象のボリュームブロック番号を、未処理のボリュームブロック番号に切り替えて、ステップＳ１３０へ戻る。未処理のボリュームブロック番号がなくなったのならば、一連の処理を終了する。
【０１１４】
図８は、ステップＳ１１５を詳細化した処理における動作概要についてのフローチャートを示している。
【０１１５】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１４０にて、遠隔コピー管理プログラム１２２２より送信され、遠隔コピー管理プログラム１１２２にて受信したデータの格納先に記憶領域が割当てられているかを調査する。ここで、第１の制御装置１１１０のＣＰＵ１１１１は、対象のボリュームブロック番号に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップＳ１４１へ進む。
【０１１６】
一方、第１の制御装置１１１０のＣＰＵ１１１１は、対象のボリュームブロック番号に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないためステップＳ１４２へ進む。
【０１１７】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１４１にて、バックアップ時の記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。
【０１１８】
第１の制御装置１１１０のＣＰＵ１１１１は、ステップＳ１４２にて、バックアップ時に記憶領域を割当てていなかったデータを、データの格納を行わなくとも復元可能であるとして、書き込み処理を行わず、該データを破棄する。
【０１１９】
このようにして、記憶システム１０００では、動的に記憶領域を割当てる機能を使用するボリュームのデータをバックアップする際に、第１のストレージサブシステム１１００において、記憶領域を割当てたボリューム内のデータ位置を特定する情報を保存する。
【０１２０】
そして、記憶システム１０００では、該バックアップしたデータによりリストアする場合、保存した情報により、バックアップしたときの記憶領域割当てを復元し、該記憶領域に対してバックアップしたデータを書き込む。
【０１２１】
これにより、記憶システム１０００では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【０１２２】
（２）第２の実施の形態
（２−１）第２の実施の形態における記憶システムの構成
図９は、本発明を適用した記憶システムの第２の実施の形態における構成を示す図である。本実施の形態による記憶システム２０００は、第１のストレージサブシステム２１００、第２のストレージサブシステム２２００及びホスト計算機２３００が例えばＳＡＮ等のネットワーク２４００により接続されて構成されている。
【０１２３】
なお、本実施の形態においては、第１のストレージサブシステム２１００、第２のストレージサブシステム２２００及びホスト計算機２３００が同一のネットワーク２４００に接続された構成としてここに示しているが、この構成以外にも、第１のストレージサブシステム２１００及びホスト計算機２３００間のネットワークと、第１のストレージサブシステム２１００及び第２のストレージサブシステム２２００間のネットワークが分離した構成でも良い。
【０１２４】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をＲＡＩＤやＪＢＯＤ構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【０１２５】
第１のストレージサブシステム２１００は、第１の制御装置２１１０と第１の管理端末２１３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第１の管理端末２１３０により行うことができる。また、各種機能の設定はホスト計算機２３００により行うこともできる。
【０１２６】
また、第１のストレージサブシステム２１００は、所定のネットワーク２５００により外部ストレージ装置２６００と接続されている。
【０１２７】
第１の制御装置２１１０は、当該第１の制御装置２１１０全体を制御する１個以上のＣＰＵ２１１１、ネットワーク２４００との接続のためのネットワークＩ／Ｆ２１１２、ネットワーク２５００との接続のためのネットワークＩ／Ｆ２１１３、第１の管理端末２１３０との接続のためのＮＩＣ２１１４、複数のハードディスクドライブ等でなり、当該第１の制御装置２１１０の各種設定情報やプログラム等が格納されていると共に、ホスト計算機２３００から送信されるデータが格納される内部ストレージ装置２１１５、及び当該各種設定情報やプログラム等が展開されるメモリ２１１６から構成されている。
【０１２８】
メモリ２１１６には、ボリューム管理プログラム２１２０、動的記憶領域割当てプログラム２１２１、遠隔コピー管理プログラム２１２２、記憶領域管理テーブル２１２３及びバックアップ記憶領域テーブル２１２４が展開されている。このボリューム管理プログラム２１２０、動的記憶領域割当てプログラム２１２１、遠隔コピー管理プログラム２１２２は、ＣＰＵ２１１１によって実行されるプログラムである。
【０１２９】
第１の管理端末２１３０は、当該第１の管理端末２１３０全体を制御する１個以上のＣＰＵ２１３１、当該第１の制御装置２１１０の各種設定情報やプログラム等が格納されている記憶装置２１３２、各種設定情報やプログラム等が展開されるメモリ２１３３及び第１の制御装置２１１０との接続のためのＮＩＣ２１３４から構成されている。
【０１３０】
一方、第２のストレージサブシステム２２００は、第２の制御装置２２１０と第２の管理端末２２３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第２の管理端末２２３０により行うことができる。
【０１３１】
第２の制御装置２２１０は、ネットワーク２５００との接続のためのネットワークＩ／Ｆが設けられていないことを除いて、第１の制御装置２１１０と同様に構成されており、ＣＰＵ２２１１、ネットワークＩ／Ｆ２２１２、ＮＩＣ２２１４、内部ストレージ装置２２１５及びメモリ２２１６から構成されている。
【０１３２】
メモリ２２１６には、ボリューム管理プログラム２２２０、動的記憶領域割当てプログラム２２２１、遠隔コピー管理プログラム２２２２、記憶領域管理テーブル２２２３及びバックアップ記憶領域テーブル２２２４が展開されている。このボリューム管理プログラム２２２０、動的記憶領域割当てプログラム２２２１、及び遠隔コピー管理プログラム２２２２は、ＣＰＵ２２１１によって実行されるプログラムである。
【０１３３】
第２の管理端末２２３０は、第１の管理端末２１３０と同様に構成されており、ＣＰＵ２２３１、記憶装置２２３２、メモリ２２３３及びＮＩＣ２２３４から構成されている。
【０１３４】
他方、ホスト計算機２３００は、ＣＰＵ２３０１及びネットワーク２４００との接続のためのネットワークＩ／Ｆ２３０２を有するコンピュータ装置であり、例えばＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）をＯＳとするサーバなどから構成される。また、ホスト計算機２３００は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機２３００は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【０１３５】
この場合、第１のストレージサブシステム２１００のボリュームの管理は、ストレージ制御装置２１１０のメモリ２１１６に格納されているボリューム管理プログラム２１２０がＣＰＵ２１１１に実行されることにより動作する。
【０１３６】
第１のストレージサブシステム２１００は、外部ストレージ装置２６００を内部ストレージ装置２１１５と同様に扱い、ホスト計算機２３００に提供するボリュームを構成するストレージ装置としても良い。また、第１のストレージサブシステム２１００は、内部ストレージ装置２１１５を持たず、外部ストレージ装置２６００のみでボリュームをホスト計算機２３００に対して提供しても良い。なお、外部ストレージ装置２６００は、他のストレージサブシステムが提供するボリュームであっても良い。
【０１３７】
第１のストレージサブシステム２１００は、ボリュームを提供する場合、ホスト計算機２３００によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置２１１５及び外部ストレージ装置２６００の物理デバイス（ハードディスクドライブ等）の特定領域を指す。
【０１３８】
動的記憶領域割り当て機能は、メモリ２１１６に格納されるボリューム管理プログラム２１２０及び動的記憶領域割当てプログラム２１２１がＣＰＵ２１１１に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム２１２１は、記憶領域管理テーブル２１２３に格納された情報を基に動作する。
【０１３９】
この動的記憶領域割り当て機能では、ホスト計算機２３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム２１２１により、記憶領域管理テーブル２１２３を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル２１２３に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【０１４０】
また、動的記憶領域割り当て機能では、ホスト計算機２３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム２１２１により、記憶領域管理テーブル２１２３を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル２１２３に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【０１４１】
さらに、動的記憶領域割り当て機能では、ホスト計算機２３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム２１２０により、記憶領域管理テーブル２１２３を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「０」等の予め決められたパターンをホスト計算機２３００に対して送信する。
【０１４２】
さらに、動的記憶領域割り当て機能では、ホスト計算機２３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム２１２０により、記憶領域管理テーブル２１２３を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル２１２３に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機２３００に対して送信する。
【０１４３】
第２のストレージサブシステム２２００は、第１のストレージサブシステム２１００と同様に、動的記憶領域割り当て機能を有するストレージサブシステムである。
【０１４４】
第１のストレージサブシステム２１００及び第２のストレージサブシステム２２００は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【０１４５】
ここで、第１のストレージサブシステム２１００のボリュームを複製元とし、第２のストレージサブシステム２２００のボリュームを複製先とした場合、遠隔コピー管理プログラム２１２２がＣＰＵ２１１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【０１４６】
逆に、第２のストレージサブシステム２２００のボリュームを複製元とし、第１のストレージサブシステム２１００のボリュームを複製先とした場合、遠隔コピー管理プログラム２２２２がＣＰＵ２２１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【０１４７】
なお、第１のストレージサブシステム２１００のボリュームを複製元とし、第２のストレージサブシステム２２００のボリュームを複製先とした場合、第１のストレージサブシステム２１００のボリュームをバックアップ元ボリューム、第２のストレージサブシステム２２００のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【０１４８】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【０１４９】
また、バックアップを行った後に、第２のストレージサブシステム２２００のボリュームを複製元、第１のストレージサブシステム２１００のボリュームを複製先とした場合、第２のストレージサブシステム２２００のボリュームをリストア元ボリューム、第１のストレージサブシステム２１００のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【０１５０】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【０１５１】
（２−２）第２の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第１のストレージサブシステム２１００から第２のストレージサブシステム２２００に対するバックアップの制御方式について説明を行う。
【０１５２】
この記憶システム２０００では、第１のストレージサブシステム２１００の動的記憶領域割り当て機能を使用するボリュームにより、第２のストレージサブシステム２２００の動的記憶領域割り当て機能を使用するボリュームに対してリモートコピー機能によるバックアップを行う。
【０１５３】
動的記憶領域割り当て機能を使用するボリューム同士のリモートコピー機能によるバックアップは、第１のストレージサブシステム２１００側では、ボリューム管理プログラム２１２０と、遠隔コピー管理プログラム２１２２と、動的記憶領域割当てプログラム２１２１とがＣＰＵ２１１１に実行されることにより動作する。
【０１５４】
一方、第２のストレージサブシステム２２００側では、ボリューム管理プログラム２２２０と、遠隔コピー管理プログラム２２２２と、動的記憶領域割当てプログラム２２２１とがＣＰＵ２２１１に実行されることにより動作する。
【０１５５】
このうち、ボリューム管理プログラム２１２０及びボリューム管理プログラム２２２０は、対象のボリュームが動的記憶領域割り当て機能を使用するか否かを管理する。また、遠隔コピー管理プログラム２１２２及び遠隔コピー管理プログラム２２２２は、ネットワーク１４００を通してバックアップ元ボリュームからバックアップ先ボリュームに対するバックアップを行う。
【０１５６】
さらに、動的記憶領域割当てプログラム２１２１及び動的記憶領域割当てプログラム２２２１は、リモートコピー機能の際に、対象のボリュームの記憶領域の割当て情報について送受信が可能である。
【０１５７】
この場合、遠隔コピー管理プログラム１１２２は、対象のボリューム全体のデータを送信することでバックアップを行うが、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームである場合、記憶領域管理テーブル１１２３を基に、前述の動的記憶領域割り当て機能を使用するボリュームに対する読み出し処理に従ってボリューム全体を転送する。
【０１５８】
これに先立ち、第２のストレージサブシステム２２００の遠隔コピー管理プログラム２１２２は、動的記憶領域割当てプログラム２１２１に対して、対象のボリュームの記憶領域を割当てた箇所についての情報を、動的記憶領域割当てプログラム２２１８に対して転送するように要求する。
【０１５９】
該転送要求を受けた動的記憶領域割当てプログラム２１２１は、記憶領域管理テーブル２１２３を参照し、記憶領域を割当てた箇所についての情報をビットマップ化して動的記憶領域割当てプログラム２２２１に送信する。
【０１６０】
該情報を受信した動的記憶領域割当てプログラム２２２１は、該情報をメモリ２２１６上のバックアップ記憶領域テーブル２２２４に保存する。
【０１６１】
バックアップ記憶領域テーブル２２２４の格納先は、メモリ２２１６や内部ストレージ装置２２１５等、第２の制御装置２１１０より参照可能なデータ保存可能箇所であるならば記憶装置の種類を問わない。
【０１６２】
動的記憶領域割当てプログラム２２２１は、バックアップ記憶領域テーブル２２２４を参照し、第１のストレージサブシステム２１００側の動的記憶領域割り当て機能を使用するボリュームの記憶領域を割当てている箇所と同箇所に対し、バックアップ先ボリュームに対して記憶領域の割当てを行う。
【０１６３】
記憶システム１０００では、以上の動的記憶領域割当てプログラム２２２１による記憶領域割当ての複製が完了した後、遠隔コピー管理プログラム２１２２と遠隔コピー管理プログラム２２２２による対象のボリューム間のデータ転送処理を開始する。
【０１６４】
データを受信した第２の制御装置２２１０のＣＰＵ２２１１は、データ転送処理において、遠隔コピー管理プログラム２２２２により、動的記憶領域割当てプログラム２２２１を呼び出し、記憶領域管理テーブル２２２４を参照して、対象のデータ書き込み箇所に対して記憶領域が割当てられているならば、受信したデータを該記憶領域に対して書き込み、記憶領域が割当てられていないならば、受信したデータを破棄する。
【０１６５】
このようにして、記憶システム１０００では、記憶領域を割当てた箇所についての情報と、割当てられた記憶領域に格納されたデータを転送することで、第１の制御装置２１１０のバックアップ元ボリュームのデータと、記憶領域の割当て状態を含むバックアップ元ボリュームそのものを複製することができる。
【０１６６】
次に、第２の制御装置２２１０に作成したバックアップを行ったボリュームから、ストレージ制御装置２１１０のボリュームを復元するリストアについて説明を行う。
【０１６７】
このリストアでは、バックアップ先ボリュームをリストア元ボリュームとし、バックアップ元ボリュームをリストア先ボリュームと見做す、リモートコピー機能である。
【０１６８】
また、ストレージ制御装置２２１０及びストレージ制御装置２１１０は、同等の機能を有するストレージサブシステムであるため、前述したバックアップを行ったデータ及び記憶領域を割当てた箇所についての情報の転送方向を逆転させることで本実施の形態では実現可能である。
【０１６９】
なお、本実施の形態においても図２に示した構造を、記憶領域管理テーブル２１２３及び記憶領域管理テーブル２２２３に用いることができる。また、図３に示した構造を、バックアップ記憶領域テーブル２１２４及びバックアップ記憶領域テーブル２２２４に使用することができる。
【０１７０】
図１０は、リモートコピー機能を用いたバックアップ制御方式の動作概要についてのフローチャートを示している。
【０１７１】
まず、第１の制御装置２１１０のＣＰＵ２１１１は、ステップＳ２００にて、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム２１２０を呼び出し、調査を行う。
【０１７２】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２０１にて、バックアップ先ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム２２２０を呼び出し、調査を行う。
【０１７３】
第１の制御装置２１１０のＣＰＵ２１１１は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、バックアップ元又はバックアップ先ボリュームのいずれかが動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、対象のボリューム内の全領域のデータを、全てバックアップ先ボリュームに対して転送するステップＳ２０４に進む。本転送処理は、遠隔コピー管理プログラム２１２０に基づいて行われる。
【０１７４】
一方、第１の制御装置２１１０のＣＰＵ２１１１は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、バックアップ元及びバックアップ先ボリュームのいずれも動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、ステップＳ２０２に進み、ステップＳ２０２にて、記憶領域管理テーブル２１２３からバックアップ元ボリュームに対して記憶領域を割り当てている箇所を特定するための情報を作成する。この後、第１の制御装置２１１０のＣＰＵ２１１１は、該情報を第２の制御装置２２１０に対して送信し、ステップＳ２０３に進む。本テーブル作成処理は、動的記憶領域割当てプログラム１１２１に基づいて行われる。
【０１７５】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２０３にて、第１の制御装置２１１０のＣＰＵ２１１１から送信された情報をバックアップ記憶領域テーブル２２２４に保存する。また、第２の制御装置２２１０のＣＰＵ２２１１は、該情報を基にバックアップ先ボリュームに対する記憶領域の割り当てを行い、バックアップ元ボリュームと同様の記憶領域割り当て状態を構築し、バックアップ元ボリュームと同様の記憶領域割り当て状態を再現する。本テーブル作成処理は、動的記憶領域割当てプログラム１２２１に基づいて行われる。
【０１７６】
なお、第２の制御装置２２１０のＣＰＵ２２１１は、この記憶領域割り当て状態に従い、記憶領域管理テーブル２２２３の変更を行う。
【０１７７】
第１の制御装置２１１０のＣＰＵ２１１１は、バックアップ記憶領域テーブル２２２４の作成処理であるステップＳ２０３の完了の後、対象のボリューム内の全領域のデータの転送処理であるステップＳ２０４に進む。本処理完了に伴い、バックアップ完了となる。
【０１７８】
なお、第１の制御装置２１１０のＣＰＵ２１１１は、対象のボリューム全体に対してステップＳ２０３完了の後に、ステップＳ２０４を行うとしているが、該ボリュームを適当な領域に区切り、ある前述の領域に対してステップＳ２０３が完了の後にステップＳ２０４を実行し、ステップＳ２０４の転送中に次の領域に対してステップＳ２０３を行うことで処理性能向上を図っても良い。
【０１７９】
またなお、リストア制御方式の動作概要についてのフローチャートについては、バックアップ制御方式の動作概要について逆転させることで本実施の形態では実現可能である。
【０１８０】
図１１は、ステップＳ２０３の処理を詳細化した処理についての、第１の方式におけるフローチャートを示している。
【０１８１】
本方式は、リストア先ボリュームに割当てられている記憶領域を全て解放した後に、割当てが必要な箇所に対して再割当てを行う方式である。以降に概要を示す。
【０１８２】
まず、第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２２０にて、対象のボリュームに割当てられた記憶領域を全て解放する。第２の制御装置２２１０のＣＰＵ２２１１は、当該処理の完了後、ステップＳ２２１に進む。
【０１８３】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２２１にて、保存されていたバックアップ記憶領域テーブル２２２４を参照し、記憶領域が割当てられていた箇所に対して、記憶領域の割当て処理を行う。この場合、当該処理では、記憶領域が割当てられていなかった箇所に対しては、記憶領域の割当て処理を行わない。当該処理完了に伴い、ステップＳ２０３の処理は完了となる。
【０１８４】
図１２は、ステップＳ２０３を詳細化した処理についての、第２の方式におけるフローチャートを示している。
【０１８５】
本方式は、対象のボリュームに割当てられている記憶領域のうち、ステップＳ１１３の完了の後に割当てが不要となる箇所に対して割当てを解放し、記憶領域が割当てられていない箇所のうち、ステップＳ１１３完了の後に割当てが必要となる箇所に対して記憶領域の割当てを行う。以降に概要を示す。本フローチャートでは、対象のボリュームの記憶領域割当てはボリュームブロック番号単位に行うものとして記述する。
【０１８６】
まず、第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３０にて、あるボリュームブロック番号に対するバックアップ時の記憶割当て状態を取得する。第２の制御装置２２１０のＣＰＵ２２１１は、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあったならば、ステップＳ２３１へ進み、記憶領域の割当てがなかったならば、ステップＳ２３３へ進む
【０１８７】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３１にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３１にて、ステップＳ２３０の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあり、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがないならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが必要となると判断し、ステップＳ２３２にて、該当ボリュームブロック番号に対して記憶領域の割当てを行う。
【０１８８】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３２にて、記憶領域割当て処理の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ２３５へ進む。
【０１８９】
一方、第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３１にて、ステップＳ２３０の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームに対象のボリュームブロック番号に対する記憶領域の割当てがあるならば、該記憶領域を継続して使用すればよいと判断し、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ２３５へ進む。
【０１９０】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３３にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３３にて、ステップＳ２３４の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがなく、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあるのならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが不要となると判断し、ステップＳ２３４にて、該当ボリュームブロック番号に対する記憶領域の解放を行う。
【０１９１】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３４にて、記憶領域割当ての解放の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ２３５へ進む。
【０１９２】
一方、第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３３にて、ステップＳ２３０の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームの対象のボリュームブロック番号に対する記憶領域の割当てがないのならば、記憶領域割当てに対する操作は不要であると判断し、これについての処理は特に行わず、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ２３５へ進む。
【０１９３】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２３５にて、対象のボリューム内の全ボリュームブロック番号に対して、バックアップ元ボリュームとバックアップ先ボリュームの対象のボリュームブロック番号の記憶領域の割当ての比較及び、これに付随する記憶領域の割当て若しくは解放処理が完了したか否かの判断を行う。
【０１９４】
第２の制御装置２２１０のＣＰＵ２２１１は、全ボリュームブロック番号に対して処理が完了していないのならば、ステップＳ２３６にて、対象のボリュームブロック番号を、未処理のボリュームブロック番号に切り替えて、ステップＳ２３０へ戻る。未処理のボリュームブロック番号がなくなったのならば、一連の処理を終了する。
【０１９５】
図１３は、動的記憶領域割り当て機能を使用するリストア先ボリュームにおけるデータ受信処理であるステップＳ２０４を詳細化した処理における動作概要についてのフローチャートを示している。
【０１９６】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２４０にて、遠隔コピー管理プログラム２１２２より送信され、遠隔コピー管理プログラム２２２２にて受信したデータの格納先に記憶領域が割当てられているかを調査する。ここで、第２の制御装置２２１０のＣＰＵ２２１１は、対象のボリュームブロック番号に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップＳ２４１へ進む。
【０１９７】
一方、第２の制御装置２２１０のＣＰＵ２２１１は、対象のボリュームブロック番号に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないためステップＳ２４２へ進む。
【０１９８】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２４１にて、バックアップ元ボリュームの記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。
【０１９９】
第２の制御装置２２１０のＣＰＵ２２１１は、ステップＳ２４２にて、バックアップ元ボリュームに記憶領域を割当てていなかったデータを、データの格納を行わなくとも復元可能であるとして、書き込み処理を行わず、該データを破棄する。
【０２００】
このようにして、記憶システム２０００では、第１のストレージサブシステム２１００において、動的に記憶領域を割当てる機能を使用するボリュームからのデータをバックアップする際に、記憶領域を割当てたボリューム内のデータ位置を特定する情報を作成し、第２のストレージサブシステム２２００に送信して、該情報を保存する。
【０２０１】
そして、記憶システム２０００では、第２のストレージサブシステム２２００において、保存した情報により、バックアップ元ボリュームの記憶領域割当てを復元し、該記憶領域に対してバックアップ元ボリュームの記憶領域に格納していたデータを書き込む。
【０２０２】
これにより、記憶システム２０００では、バックアップ先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができると共に、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【０２０３】
（３）第３の実施の形態
（３−１）第３の実施の形態における記憶システムの構成
図１４は、本発明を適用した記憶システムの第３の実施の形態における構成を示す図である。本実施の形態による記憶システム３０００は、第１のストレージサブシステム３１００、バックアップサーバ３７００、ストレージ装置３９００、及びホスト計算機３３００が例えばＳＡＮ等のネットワーク３４００により接続されて構成されている。
【０２０４】
なお、本実施の形態においては、第１のストレージサブシステム３１００、バックアップサーバ３７００、ストレージ装置３９００、及びホスト計算機３３００が同一のネットワーク３４００に接続された構成としてここに示しているが、この構成以外にも、第１のストレージサブシステム３１００及びホスト計算機３３００間のネットワークと、第１のストレージサブシステム３１００、バックアップサーバ３７００、及びストレージ装置３９００のネットワークが分離した構成でも良い。
【０２０５】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をＲＡＩＤやＪＢＯＤ構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【０２０６】
第１のストレージサブシステム３１００は、第１の制御装置３１１０と第１の管理端末３１３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第１の管理端末３１３０により行うことができる。また、各種機能の設定はホスト計算機３３００により行うこともできる。
【０２０７】
また、第１のストレージサブシステム３１００は、所定のネットワーク３５００により外部ストレージ装置３６００と接続されている。
【０２０８】
第１の制御装置３１１０は、当該第１の制御装置３１１０全体を制御する１個以上のＣＰＵ３１１１、ネットワーク３４００との接続のためのネットワークＩ／Ｆ３１１２、ネットワーク３５００との接続のためのネットワークＩ／Ｆ３１１３、第１の管理端末３１３０との接続のためのＮＩＣ３１１４、複数のハードディスクドライブ等でなり、当該第１の制御装置３１１０の各種設定情報やプログラム等が格納されていると共に、ホスト計算機３３００から送信されるデータが格納される内部ストレージ装置３１１５、及び当該各種設定情報やプログラム等が展開されるメモリ３１１６から構成されている。
【０２０９】
メモリ３１１６には、ボリューム管理プログラム３１２０、動的記憶領域割当てプログラム３１２１、記憶領域管理テーブル３１２３及びバックアップ記憶領域テーブル３１２４が展開されている。このボリューム管理プログラム３１２０、及び動的記憶領域割当てプログラム３１２１は、ＣＰＵ３１１１によって実行されるプログラムである。
【０２１０】
第１の管理端末３１３０は、当該第１の管理端末３１３０全体を制御する１個以上のＣＰＵ３１３１、当該第１の制御装置３１１０の各種設定情報やプログラム等が格納されている記憶装置３１３２、各種設定情報やプログラム等が展開されるメモリ３１３３及び第１の制御装置３１１０との接続のためのＮＩＣ３１３４から構成されている。
【０２１１】
一方、バックアップサーバ３７００は、当該バックアップサーバ３７００全体を制御する１個以上のＣＰＵ３７０１、ネットワーク３４００との接続のためのネットワークＩ／Ｆ３７０２、ホスト計算機３３００との接続のためのＮＩＣ３７０３、テープデバイス３８００との接続のためのネットワークＩ／Ｆ３７０４、複数のハードディスクドライブ等でなり、当該第バックアップサーバ３７００の各種設定情報やプログラム等が格納されていると共に、ホスト計算機３３００や第１のストレージサブシステム３１００から送信されるデータが格納される内部ストレージ装置３７０５、及び当該各種設定情報やプログラム等が展開されるメモリ３７０６から構成されている。
【０２１２】
メモリ３７０６には、バックアッププログラム３７１０が展開されている。このバックアッププログラム３７１０は、ＣＰＵ３７０１によって実行されるプログラムである。
【０２１３】
また、バックアップサーバ３７００は、例えば、ＳＣＳＩ（Small Computer System Interface）等の所定のネットワークにより、バックアップサーバ３７００のネットワークＩ／Ｆ３７０４を介してテープデバイス３８００と接続されている。
【０２１４】
この場合、バックアップサーバ３７００は、第１のストレージサブシステム３１００のボリュームをバックアップ及びリストアを制御する機能を備えており、該機能はバックアップサーバ３７００のメモリ３７０６に格納されたバックアッププログラム３７１０が提供する。
【０２１５】
このバックアッププログラム３７１０は、第１のストレージサブシステム３１００にバックアップの開始を通知し、第１のストレージサブシステム３１００から読み出したデータを、バックアップサーバ３７００がアクセス可能であるストレージ（テープデバイス３８００やストレージ装置３９００）に対して、転送することでバックアップを行う機能を有する。
【０２１６】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージ装置に送信することでボリューム内のデータを複製することをいう。
【０２１７】
また、バックアッププログラム３７１０は、第１のストレージサブシステム３１００にリストアの開始を通知し、バックアップサーバ３７００がアクセス可能であるストレージから読み出したデータを、第１のストレージサブシステム３１００に対して、転送することでリストアを行う機能を有する。
【０２１８】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージ装置に該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【０２１９】
なお、バックアップ先の物理デバイスは、バックアップサーバ３７００がアクセス可能であるならば、第１のストレージサブシステム３１００から直接アクセス不可能であるネットワーク３４００とは独立したネットワーク上にあるテープデバイス３８００であっても、第１のストレージサブシステム３１００から直接アクセス可能であるネットワーク３４００上にあっても良い。
【０２２０】
ただし、本実施の形態においては、バックアップしたデータに対して変更を加えてはならないことが前提である。そのため、バックアップ先の物理デバイスは、テープメディアやＤＶＤ−Ｒといったデータの変更を基本的に行わない媒体が望ましい。
【０２２１】
他方、ホスト計算機３３００は、ＣＰＵ３３０１及びネットワーク３４００との接続のためのネットワークＩ／Ｆ３３０２を有するコンピュータ装置であり、例えば例えばＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）をＯＳとするサーバなどから構成される。また、ホスト計算機３３００は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機３３００は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【０２２２】
この場合、第１のストレージサブシステム３１００のボリュームの管理は、ストレージ制御装置３１１０のメモリ３１１６に格納されているボリューム管理プログラム３１２０がＣＰＵ３１１１に実行されることにより動作する。
【０２２３】
第１のストレージサブシステム３１００は、外部ストレージ装置３６００を内部ストレージ装置３１１５と同様に扱い、ホスト計算機３３００に提供するボリュームを構成するストレージ装置としても良い。また、第１のストレージサブシステム３１００は、内部ストレージ装置３１１５を持たず、外部ストレージ装置３６００のみでボリュームをホスト計算機３３００に対して提供しても良い。なお、外部ストレージ装置３６００は、他のストレージサブシステムが提供するボリュームであっても良い。
【０２２４】
第１のストレージサブシステム３１００は、ボリュームを提供する場合、ホスト計算機３３００によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置３１１５及び外部ストレージ装置３６００の物理デバイス（ハードディスクドライブ等）の特定領域を指す。
【０２２５】
動的記憶領域割り当て機能は、メモリ３１１６に格納されるボリューム管理プログラム３１２０及び動的記憶領域割当てプログラム３１２１がＣＰＵ３１１１に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム３１２１は、記憶領域管理テーブル３１２３に格納された情報を基に動作する。
【０２２６】
この動的記憶領域割り当て機能では、ホスト計算機３３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム３１２１により、記憶領域管理テーブル３１２３を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル３１２３に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【０２２７】
また、動的記憶領域割り当て機能では、ホスト計算機３３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム３１２１により、記憶領域管理テーブル３１２３を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル３１２３に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【０２２８】
さらに、動的記憶領域割り当て機能では、ホスト計算機３３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム３１２０により、記憶領域管理テーブル３１２３を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「０」等の予め決められたパターンをホスト計算機３３００に対して送信する。
【０２２９】
さらに、動的記憶領域割り当て機能では、ホスト計算機３３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム３１２０により、記憶領域管理テーブル３１２３を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル３１２３に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機３３００に対して送信する。
【０２３０】
第１のストレージサブシステム３１００は、ホスト計算機３３００より任意のボリュームについて情報取得の要求があったとき、ボリューム管理プログラム３１２０において、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該情報取得の要求に対する応答のメッセージの中に、その情報を付与して返信することができる。
【０２３１】
なお、第１のストレージサブシステム３１００は、動的記憶領域割り当て機能の使用中の情報をホスト計算機３３００に返信できなくとも、対象のボリュームを設定した第１のストレージサブシステム３１００の管理者や管理ソフトウェア等がバックアップサーバ３７００に対して動的記憶領域割り当て機能の使用中の情報を送信すれば良い。
【０２３２】
（３−２）第３の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第１のストレージサブシステム３１００からバックアップサーバ３７００を介したテープデバイス３８００に対するバックアップの制御方式について説明を行う。
【０２３３】
ここでは、バックアップ先の物理デバイスを、第１のストレージサブシステム３１００から直接データの転送をできるネットワーク３４００とは独立したネットワーク上にあるテープデバイス３８００として説明を行うが、バックアップ先の物理デバイスが第１のストレージサブシステム３１００より直接データの転送をできるネットワーク３４００に接続されたストレージ装置３９００であっても動作は同じである。
【０２３４】
この記憶システム３０００では、第１のストレージサブシステム３１００の動的記憶領域割り当て機能を使用したボリュームから、動的記憶領域割り当て機能とは関係のないバックアップサーバ３７００が管理するテープデバイス３８００へのバックアップを行う。
【０２３５】
ただし、バックアップを制御するバックアップサーバ３７００では、バックアップ元ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。
【０２３６】
バックアップサーバ３７００のＣＰＵ３７０１は、バックアップ元ボリューム内のデータのバックアップに先立ち、第１のストレージサブシステム３１００に対して、対象のボリュームに対する記憶領域を割当てた箇所を特定するための情報のバックアップを要求する。これは、動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【０２３７】
該バックアップ要求を受けた第１の制御装置３１１０のＣＰＵ３１１１は、動的記憶領域割当てプログラム３１２１により、記憶領域管理テーブル３１２３を参照し、記憶領域を割当てた箇所についての情報をビットマップ化して作成（以降、該情報を「割当てビットマップ」と呼ぶ）し、バックアップ記憶領域テーブル３１２４に保存する。
【０２３８】
また、第１の制御装置３１１０のＣＰＵ３１１１は、この割当てビットマップを後に参照可能とするためＩＤを付与してこれも同様に保存する。そして、第１の制御装置３１１０のＣＰＵ３１１１は、バックアップサーバ３７００に対して、該ＩＤを通知する。
【０２３９】
バックアップ記憶領域テーブル３１２４の格納先は、メモリ３１１６や内部ストレージ３１１５、外部ストレージ装置３６００等、第１の制御装置３１１０から参照可能なデータ保存可能箇所であるならば記憶装置の種類を問わない。
【０２４０】
また、バックアップ記憶領域テーブル３１２４の格納先は、ストレージ管理端末３１３０内のメモリ３１３３や記憶装置３１３２等の第１の制御装置３１１０からの参照要求に対する応答が可能である外部管理端末内の記憶装置であっても良い。
【０２４１】
さらに、第１の制御装置３１１０のＣＰＵ３１１１は、セキュリティ確保のために、バックアップを行ったネットワークサーバからのみリストア可能等との制限を行うならば、当該ＩＤに付随して、要求を行ったバックアップサーバ３７００を特定する為の情報を保存しても良い。これには、ネットワークサーバのデバイスインタフェースの製品番号や、ファイバチャネルのＷＷＮ（World Wide Name）等を使用する。
【０２４２】
また、第１の制御装置３１１０のＣＰＵ３１１１は、バックアップ記憶領域テーブル３１２４を用いず、ＩＤを送信する代わりに、割当てビットマップをバックアップサーバ３７００に送信しても良い。
【０２４３】
この場合、バックアップサーバ３７００のＣＰＵ３７０１は、受信したＩＤ若しくは割当てビットマップの情報を、バックアップ先のステープデバイス３８００と対応付けて管理する。
【０２４４】
ＩＤ若しくは割当てビットマップの格納先は、バックアップサーバ３７００内のメモリ３７０６や記憶装置３７０５といった、バックアップサーバ３７００にて管理可能な装置である。
【０２４５】
また、ＩＤ若しくは割当てビットマップの格納先は、メモリ３７０６や記憶装置３７０５以外にも、バックアップ先のテープデバイス３８００にメタデータとして格納しても良い。
【０２４６】
バックアップサーバ３７００のＣＰＵ３７０１は、ＩＤ若しくは割当てビットマップの格納の後、第１の制御装置３１１０のバックアップ元ボリュームに対して、ボリュームの全領域のデータに対する読み出し要求を行い、これをテープデバイス３８００に格納する。ボリュームの全領域のデータ格納完了に伴い、本バックアップも完了となる。
【０２４７】
次に、前述のバックアップしたデータを元とするバックアップサーバ３７００を介したテープデバイス３８００から第１のストレージサブシステム３１００へのデータのリストアの制御方式について説明を行う。
【０２４８】
ここでは、リストア元の物理デバイスを、第１のストレージサブシステム３１００から直接データの転送をできるネットワーク３４００とは独立したネットワーク上にあるテープデバイス３８００として説明を行うが、リストア元の物理デバイスが、第１のストレージサブシステム３１００から直接データの転送をできるネットワーク３４００に接続されたストレージ装置３９００であっても動作は同じである。
【０２４９】
この記憶システム３０００では、動的記憶領域割り当て機能とは関係のない、バックアップサーバ３７００が管理するテープデバイス３８００から、第１のストレージサブシステム３１００の動的記憶領域割り当て機能を使用したボリュームへのリストアを行う。
【０２５０】
ただし、リストアを制御するバックアップサーバ３７００では、リストア先ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。また、バックアップ時にバックアップ元ボリュームが動的記憶領域割り当て機能を使用していたことは、バックアップ時に取得したＩＤ等の情報を基に判断可能である。
【０２５１】
バックアップサーバ３７００のＣＰＵ３７０１は、データのリストアに先立ち、ストレージサブシステム３１００に、リストア先ボリュームに対するバックアップ時の記憶領域の割当て情報の復元を要求する。これは、動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【０２５２】
バックアップサーバ３７００のＣＰＵ３７０１は、バックアップ時に保存したバックアップ記憶領域テーブル３１２４上の割当てビットマップを参照する為、当該復元要求と共に、バックアップ時に取得したＩＤを指定する。
【０２５３】
また、バックアップサーバ３７００のＣＰＵ３７０１は、ＩＤの代わりに割当てビットマップをバックアップサーバ３４００で保存しているのならば、当該割当てビットマップをバックアップサーバ３４００から、第１のストレージサブシステム３１００に対して送信する。
【０２５４】
第１の制御装置３１１０のＣＰＵ３１１１は、復元要求を行ったバックアップサーバ３７００を特定するための情報を保存している場合、当該情報を基にバックアップサーバ３７００以外のネットワークサーバからリストアを要求されたならば、当該要求を拒否する。
【０２５５】
第１の制御装置３１１０のＣＰＵ３１１１は、動的記憶領域割当てプログラム３１２１により、割当てビットマップを基にリストア先ボリュームに対して記憶領域の割当てを行い、この割当て状況に従い記憶領域管理テーブル３１２３を更新する。
【０２５６】
第１の制御装置３１１０のＣＰＵ３１１１は、記憶領域管理テーブル３１１７の更新の完了をバックアップサーバ３７００に対して通知し、これを検知したバックアップサーバ３４００は、テープデバイス３８００に格納されたデータを第１のストレージサブシステム３１００のリストア先ボリュームに対して書き込む。
【０２５７】
第１の制御装置３１１０のＣＰＵ３１１１は、動的記憶領域割当てプログラム３１２１により、本書き込み時に、記憶領域割当て済み箇所についてのみデータ書き込みを行い、それ以外についてはデータを破棄することでリストアを行う。
【０２５８】
バックアップサーバ３７００のＣＰＵ３７０１は、リストア元データ全体の書き込み完了後、テープデバイス３８００に対して完了を通知することでリストアが完了する。
【０２５９】
図１５は、バックアップ記憶領域テーブル３１２４の構造概要を示す図である。バックアップ記憶領域テーブル３１２４は、ＩＤ格納欄３１２４１、ＷＷＮ格納欄３１２４２、及び割り当てビットマップ格納欄３１２４３から構成されている。
【０２６０】
バックアップ記憶領域テーブル３１２４は、第１の制御装置３１１０のＣＰＵ３１１１が対象のボリュームの割り当てビットマップを特定するためのＩＤをＩＤ格納欄３１２４１に格納する。
【０２６１】
また、バックアップ記憶領域テーブル３１２４は、リストア可能なネットワークサーバを制限するために、必要ならば、バックアップサーバ３７００を特定するための情報であるＷＷＮ等をＷＷＮ格納欄３１２４２に格納する。
【０２６２】
さらに、バックアップ記憶領域テーブル３１２４は、動的記憶領域割り当て機能を使用するボリュームに割り当てられた記録領域の有無を所定のビットマップごとに割り当てる割り当てビットマップにて管理を行い、該割り当てビットマップを割り当てビットマップ格納欄３１２４３に格納する。
【０２６３】
図１６は、バックアップサーバ３７００を用いた、本実施の形態における第１のストレージサブシステム３１００の動的記憶領域割り当て機能を使用するボリュームから、テープデバイス３８００へのバックアップ処理の動作概要についてのフローチャートを示している。
【０２６４】
なお、このフローチャートは、第１のストレージサブシステム３１００にて、バックアップ時の割当てビットマップを保存する制御法について示している。
【０２６５】
まず、バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３００にて、ストレージサブシステム３１００における動的記憶領域割り当て機能を使用しているボリュームに対するバックアップの開始を要求する。
【０２６６】
この後、バックアップサーバ３７００のＣＰＵ３７０１は、第１の制御装置３１１０において、バックアップ要求と共に、当該バックアップサーバ３７００から通知した通知内容に不備がないかチェックを行う為、ステップＳ３０１へ進む。
【０２６７】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３０１にて、動的記憶領域割り当て機能を使用しているとバックアッププログラム３７１０において認識しているボリュームに対し、該動的記憶領域割り当て機能を使用しているボリュームの情報の正当性を調査する。
【０２６８】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３０１にて、ボリューム管理プログラム３１２０の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、バックアップサーバ３７００のバックアップ要求に対して、動的記憶領域割り当て機能との連携の失敗を通知するステップＳ３０６へ進む。
【０２６９】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３０６にて、動的記憶領域割り当て機能との連携ができないことを検知すると、ステップＳ３０７に進み、ステップＳ３０７にて、動的記憶領域割り当て機能を使用しないボリュームと同様に、対象のボリュームを、バックアップ時の割当てビットマップについてのＩＤ管理を必要としない通常のバックアップ方式に変更する。
【０２７０】
なお、バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３０７へ進まずに、ステップＳ３０６の時点でバックアップ失敗としても良い。
【０２７１】
バックアップサーバ３７００のＣＰＵ３７０１は、この後、ステップＳ３０５へ進み、ステップＳ３０５にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス３８００への格納を行う。
【０２７２】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３０１にて、ボリューム管理プログラム３１２０の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップＳ３０２に進み、ステップＳ３０２にて、記憶領域管理テーブル３１２３を基に記憶領域を割当てている箇所を特定し、割当てビットマップを作成する。
【０２７３】
その後、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３０３にて、当該割当てビットマップにＩＤを付与し、これをバックアップ記憶領域テーブル３１２４にＩＤと共に格納する。その後、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３０４へ進む。
【０２７４】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３０４にて、ステップＳ３０３にて付与したＩＤをバックアップサーバ３７００へ送信する。バックアップサーバ３７００のＣＰＵ３７０１は、該ＩＤをバックアップ先のテープデバイス３８００と対応付けて管理を行う。
【０２７５】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３０１より始まる動的記憶領域割り当て機能と連携するバックアップ処理の前準備が完了した後、ステップＳ３０５に進み、ステップＳ３０５にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス３８００への格納を行う。ステップＳ３０５の完了に伴い、バックアップ処理が完了する。
【０２７６】
図１７は、バックアップサーバ３７００を用いた、本実施の形態における第１のストレージサブシステム３１００の動的記憶領域割り当て機能を使用するボリュームから、テープデバイス３８００へのバックアップ処理の動作概要についてのフローチャートを示している。
【０２７７】
なお、このフローチャートは、バックアップサーバ３４００にて、バックアップ時の割当てビットマップを保存する制御法について示している。
【０２７８】
まず、バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３１０にて、第１のストレージサブシステム３１００における動的記憶領域割り当て機能を使用しているボリュームに対するバックアップの開始を要求する。
【０２７９】
この後、バックアップサーバ３７００のＣＰＵ３７０１は、第１の制御装置３１１０において、バックアップ要求と共に、当該バックアップサーバ３７００から通知した通知内容に不備がないかチェックを行う為、ステップＳ３１１へ進む。
【０２８０】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３１１にて、動的記憶領域割り当て機能を使用しているとバックアッププログラム３７１０において認識しているボリュームに対し、該動的記憶領域割り当て機能を使用しているボリュームの情報の正当性を調査する。
【０２８１】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３１１にて、ボリューム管理プログラム３１２０の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、バックアップサーバ３７００のバックアップ要求に対して、動的記憶領域割り当て機能との連携の失敗を通知するステップＳ３１６へ進む。
【０２８２】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３１６にて、動的記憶領域割り当て機能との連携ができないことを検知すると、ステップＳ３１７に進み、ステップＳ３１７にて、動的記憶領域割り当て機能を使用しないボリュームと同様に、対象のボリュームを、バックアップ時の割当てビットマップ管理を必要としない通常のバックアップ方式に変更する。
【０２８３】
なお、バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３１７へ進まずに、ステップＳ３０６の時点でバックアップ失敗としても良い。
【０２８４】
バックアップサーバ３７００のＣＰＵ３７０１は、この後、ステップＳ３１５へ進み、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス３８００への格納を行う。
【０２８５】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３１１にて、ボリューム管理プログラム３１２０の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップＳ３１２に進み、ステップＳ３１２にて、記憶領域管理テーブル３１２３を基に記憶領域を割当てている箇所を特定し、割当てビットマップを作成する。
【０２８６】
第１の制御装置３１１０のＣＰＵ３１１１は、その後、ステップＳ３１３にて、作成したビットマップを、バックアップサーバ３７００に送信する。
【０２８７】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３１４にて、第１の制御装置３１１０から送信された割当てビットマップを格納する。その後、バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３１５へ進む。
【０２８８】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３１１より始まる動的記憶領域割り当て機能と連携するバックアップ処理の前準備が完了した後、ステップＳ３１５に進み、ステップＳ３１５にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス３８００への格納を行う。ステップＳ３１５の完了に伴い、バックアップ処理が完了する。
【０２８９】
図１８は、バックアップサーバ３７００を用いた、本実施の形態におけるテープデバイス３８００から、第１のストレージサブシステム３１００の動的記憶領域割り当て機能を使用するボリュームへのリストア処理の動作概要についてのフローチャートを示している。
【０２９０】
なお、このフローチャートは、第１のストレージサブシステム３１００にて、バックアップ時の記憶領域割当て情報である、割当てビットマップを保存する制御法について示している。
【０２９１】
まず、バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３２０にて、リストア先ボリュームが、動的記憶領域割り当て機能を使用してバックアップを行っていたかを調査する。バックアップサーバ３７００のＣＰＵ３７０１は、これに該当しない場合、ステップＳ３２８へ進む。
【０２９２】
一方、バックアップサーバ３７００のＣＰＵ３７０１は、動的記憶領域割り当て機能を使用してバックアップを行っていた場合には、ステップＳ３２１へ進み、バックアップ時に取得したＩＤと共に、第１のストレージサブシステム３１００に動的記憶領域割り当て機能を使用してリストアを行うことを第１の制御装置３１１０に通知する。
【０２９３】
この後、バックアップサーバ３７００のＣＰＵ３７０１は、第１の制御装置３１１０において、動的記憶領域割り当て機能を使用してリストアを行うことが可能であるかの調査を行うため、ステップＳ３２２へ進む。
【０２９４】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２２にて、本リストア処理を行う前提としてリストア先ボリュームが動的記憶領域割り当て機能を使用していなければならないため、対象のボリュームの動的記憶領域割り当て機能使用の有無を調査する。
【０２９５】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２２での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、ステップＳ３２７へ進み、ステップＳ３２７にて、その旨を通知する。
【０２９６】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２２での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップＳ３２３に進み、ステップＳ３２３にて、指定されたＩＤに対応する割当てビットマップが存在するか否かのチェックを行う。
【０２９７】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２３にて、動的記憶領域割当てプログラム３１２１により、バックアップ記憶領域テーブル３１２４を検索し、指定されたＩＤと一致する割当てビットマップが存在するかを調査する。
【０２９８】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２３にて、指定されたＩＤと一致する割当てビットマップが存在しなかった場合、動的記憶領域割り当て機能を使用したリストアは出来ないとし、その旨を通知するため、ステップＳ３２７へ進む。
【０２９９】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２３にて、指定されたＩＤと一致する割当てビットマップが存在した場合、動的記憶領域割り当て機能を使用したリストアが可能であるため、バックアップ時の記憶領域を復元するためステップＳ３２４へ進む。
【０３００】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２４にて、検出した割当てビットマップを基に、動的記憶領域割当てプログラム３１２１により、対象のボリュームに対して、バックアップ時の記憶領域割当てを復元する処理を行う。
【０３０１】
また、第１の制御装置３１１０のＣＰＵ３１１１は、記憶領域の割当てに応じて記憶領域管理テーブル３１２３を変更する。第１の制御装置３１１０のＣＰＵ３１１１は、本割当て処理の完了後、バックアップサーバ３７００において、リストアするデータを転送するため、ステップＳ３２５へ進む。
【０３０２】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３２５にて、バックアップ時のボリュームの全領域のデータを書き込む。
【０３０３】
このとき、第１の制御装置３１１０のＣＰＵ３１１１は、動的記憶領域割当てプログラム３１２１により、記憶領域管理テーブル３１２３に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ、バックアップサーバ３７００から送信されるデータを書き込み、それ以外の箇所についてはデータを破棄することで書き込み処理を行う。第１の制御装置３１１０のＣＰＵ３１１１は、本書き込み処理完了の後、ステップＳ３２６へ進む。
【０３０４】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２６にて、ステップＳ３２５の記憶領域管理テーブル３１２３に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ書き込む制御が継続している。バックアップサーバ３７００のＣＰＵ３７０１は、これを解除するために、第１のストレージサブシステム３１００にリストア完了の通知を行う。第１の制御装置３１１０のＣＰＵ３１１１は、リストア完了の通知に従い、記憶領域管理テーブル３１２１によるリストア制御を終了する。以上をもってリストア処理は完了となる。
【０３０５】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３２７にて、バックアップサーバ３７００に対して、バックアップ時の記憶領域割当て状態を復元することが出来なかったことを通知する。
【０３０６】
これを受けたバックアップサーバ３７００のＣＰＵ３７０１は、それに従った処理を行うため、ステップＳ３２８へ進む。
【０３０７】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３２８にて、記憶領域の割当てを復元せず、記憶領域の不要な割当てが発生しようとも全領域に対して書き込みを行うリストアを開始するため、ステップＳ３２９へ進む。
【０３０８】
なお、バックアップサーバ３７００のＣＰＵ３７０１は、本処理において、リストア先ボリュームを、動的記憶領域割り当て機能を使用しないボリュームに対して切り替える、リストア処理を中断する等、別の方法を選択することもできる。
【０３０９】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３２９にて、リストア先ボリュームが動的記憶領域割り当て機能の使用如何に関係なく、対象のボリュームの全領域のデータに対する書き込みを行う。本書き込み処理の完了をもって、リストア処理は完了となる。
【０３１０】
図１９は、バックアップサーバ３７００を用いた、本実施の形態におけるテープデバイス３８００から、第１のストレージサブシステム３１００の動的記憶領域割り当て機能を使用するボリュームへのリストア処理の動作概要についてのフローチャートを示している。
【０３１１】
なお、このフローチャートは、バックアップサーバ３７００にて、バックアップ時の記憶領域割当て情報である、割当てビットマップを保存する制御法について示している。
【０３１２】
まず、バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３３０にて、リストア先ボリュームが、動的記憶領域割り当て機能を使用してバックアップを行っていたかを調査する。バックアップサーバ３７００のＣＰＵ３７０１は、これに該当しない場合、ステップＳ３３８へ進む。
【０３１３】
一方、バックアップサーバ３７００のＣＰＵ３７０１は、動的記憶領域割り当て機能を使用してバックアップを行っていた場合には、ステップＳ３３１へ進み、バックアップ時に取得した割り当てビットマップと共に、第１のストレージサブシステム３１００に動的記憶領域割り当て機能を使用してリストアを行うことを第１の制御装置３１１０に通知する。
【０３１４】
この後、バックアップサーバ３７００のＣＰＵ３７０１は、第１の制御装置３１１０において、動的記憶領域割り当て機能を使用してリストアを行うことが可能であるかの調査を行うため、ステップＳ３３２へ進む。
【０３１５】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３３２にて、本リストア処理を行う前提としてリストア先ボリュームが動的記憶領域割り当て機能を使用していなければならないため、対象のボリュームの動的記憶領域割り当て機能使用の有無を調査する。
【０３１６】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３３２での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、ステップＳ３３７へ進み、ステップＳ３３７にて、その旨を通知する。
【０３１７】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３３２での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、動的記憶領域割り当て機能を使用したリストアが可能であるため、バックアップ時の記憶領域を復元するためステップＳ３３４へ進む。
【０３１８】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３３４にて、バックアップサーバ３７００から送信された割当てビットマップを基に、動的記憶領域割当てプログラム３１２１により、対象のボリュームに対して、バックアップ時の記憶領域割当てを復元する処理を行う。
【０３１９】
また、第１の制御装置３１１０のＣＰＵ３１１１は、記憶領域の割当てに応じて記憶領域管理テーブル３１２３を変更する。第１の制御装置３１１０のＣＰＵ３１１１は、本割当て処理の完了後、バックアップサーバ３７００において、リストアするデータを転送するため、ステップＳ３３５へ進む。
【０３２０】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３３５にて、バックアップ時のボリュームの全領域のデータを書き込む。
【０３２１】
このとき、第１の制御装置３１１０のＣＰＵ３１１１は、動的記憶領域割当てプログラム３１２１により、記憶領域管理テーブル３１２３に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ、バックアップサーバ３７００から送信されるデータを書き込み、それ以外の箇所についてはデータを破棄することで書き込み処理を行う。第１の制御装置３１１０のＣＰＵ３１１１は、本書き込み処理完了の後、ステップＳ３３６へ進む。
【０３２２】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３３６にて、ステップＳ３２５の記憶領域管理テーブル３１２３に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ書き込む制御が継続している。バックアップサーバ３７００のＣＰＵ３７０１は、これを解除するために、第１のストレージサブシステム３１００にリストア完了の通知を行う。第１の制御装置３１１０のＣＰＵ３１１１は、リストア完了の通知に従い、記憶領域管理テーブル３１２１によるリストア制御を終了する。以上をもってリストア処理は完了となる。
【０３２３】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３３７にて、バックアップサーバ３７００に対して、バックアップ時の記憶領域割当て状態を復元することが出来なかったことを通知する。
【０３２４】
これを受けたバックアップサーバ３７００のＣＰＵ３７０１は、それに従った処理を行うため、ステップＳ３３８へ進む。
【０３２５】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３３８にて、記憶領域の割当てを復元せず、記憶領域の不要な割当てが発生しようとも全領域に対して書き込みを行うリストアを開始するため、ステップＳ３３９へ進む。
【０３２６】
なお、バックアップサーバ３７００のＣＰＵ３７０１は、本処理において、リストア先ボリュームを、動的記憶領域割り当て機能を使用しないボリュームに対して切り替える、リストア処理を中断する等、別の方法を選択することもできる。
【０３２７】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ３３９にて、リストア先ボリュームが動的記憶領域割り当て機能の使用如何に関係なく、対象のボリュームの全領域のデータに対する書き込みを行う。本書き込み処理の完了をもって、リストア処理は完了となる。
【０３２８】
図２０は、ステップＳ３２４及びステップＳ３３４の処理を詳細化した処理についての、第１の方式におけるフローチャートを示している。
【０３２９】
本方式は、リストア先ボリュームに割当てられている記憶領域を全て解放した後に、割当てが必要な箇所に対して再割当てを行う方式である。以降に概要を示す。
【０３３０】
まず、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３４０にて、対象のボリュームに割当てられた記憶領域を全て解放する。第１の制御装置３１１０のＣＰＵ３１１１は、当該処理の完了後、ステップＳ３４１に進む。
【０３３１】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３４１にて、割り当てビットマップを参照し、バックアップ元ボリュームの記憶領域が割当てられていた箇所に対して、記憶領域の割当て処理を行う。この場合、当該処理では、記憶領域が割当てられていなかった箇所に対しては、記憶領域の割当て処理を行わない。当該処理完了に伴い、ステップＳ３２４及びステップＳ３３４の処理は完了となる。
【０３３２】
図２１は、ステップＳ３２４及びステップＳ３３４を詳細化した処理についての、第２の方式におけるフローチャートを示している。
【０３３３】
本方式は、対象のボリュームに割当てられている記憶領域のうち、ステップＳ３２４及びステップＳ３３４の完了の後に割当てが不要となる箇所に対して割当てを解放し、記憶領域が割当てられていない箇所のうち、ステップＳ３２４及びステップＳ３３４の完了の後に割当てが必要となる箇所に対して記憶領域の割当てを行う。以降に概要を示す。本フローチャートでは、対象のボリュームの記憶領域割当ては、割り当てビットマップのビットマップに対応するボリュームブロック番号単位に行うものとして記述する。
【０３３４】
まず、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５０にて、あるボリュームブロック番号に対するバックアップ時の記憶割当て状態を取得する。第１の制御装置３１１０のＣＰＵ３１１１は、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあったならば、ステップＳ３５１へ進み、記憶領域の割当てがなかったならば、ステップＳ３５３へ進む
【０３３５】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５１にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５１にて、ステップＳ３５０の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあり、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがないならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが必要となると判断し、ステップＳ３５２にて、該当ボリュームブロック番号に対して記憶領域の割当てを行う。
【０３３６】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５２にて、記憶領域割当て処理の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ３５５へ進む。
【０３３７】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５１にて、ステップＳ３５０の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームに対象のボリュームブロック番号に対する記憶領域の割当てがあるならば、該記憶領域を継続して使用すればよいと判断し、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ３５５へ進む。
【０３３８】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５３にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５３にて、ステップＳ３５４の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがなく、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあるのならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが不要となると判断し、ステップＳ３５４にて、該当ボリュームブロック番号に対する記憶領域の解放を行う。
【０３３９】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５４にて、記憶領域割当ての解放の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ３５５へ進む。
【０３４０】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５３にて、ステップＳ３５０の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームの対象のボリュームブロック番号に対する記憶領域の割当てがないのならば、記憶領域割当てに対する操作は不要であると判断し、これについての処理は特に行わず、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップＳ３５５へ進む。
【０３４１】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３５５にて、対象のボリューム内の全ボリュームブロック番号に対して、バックアップ元ボリュームとバックアップ先ボリュームの対象のボリュームブロック番号の記憶領域の割当ての比較及び、これに付随する記憶領域の割当て若しくは解放処理が完了したか否かの判断を行う。
【０３４２】
第１の制御装置３１１０のＣＰＵ３１１１は、全ボリュームブロック番号に対して処理が完了していないのならば、ステップＳ３５６にて、対象のボリュームブロック番号を、未処理のボリュームブロック番号に切り替えて、ステップＳ２３０へ戻る。未処理のボリュームブロック番号がなくなったのならば、一連の処理を終了する。
【０３４３】
図２２は、動的記憶領域割り当て機能を使用するリストア先ボリュームにおけるデータ受信処理であるステップＳ３２５及びステップＳ３３５を詳細化した処理における動作概要についてのフローチャートを示している。
【０３４４】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３６０にて、ネットワークサーバから送信された割り当てビットマップを基に、バックアッププログラム３７１０から書込み要求があった箇所に対して記憶領域が割り当てられているかを調査する。ここで、第１の制御装置３１１０のＣＰＵ３１１１は、対象のボリュームブロック番号に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップＳ３６１へ進む。
【０３４５】
一方、第１の制御装置３１１０のＣＰＵ３１１１は、対象のボリュームブロック番号に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないためステップＳ３６２へ進む。
【０３４６】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３６１にて、バックアップ元ボリュームの記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。
【０３４７】
第１の制御装置３１１０のＣＰＵ３１１１は、ステップＳ３６２にて、バックアップ元ボリュームに記憶領域を割当てていなかったデータを、データの格納を行わなくとも復元可能であるとして、書き込み処理を行わず、該データを破棄する。
【０３４８】
このようにして、記憶システム３０００では、第１のストレージサブシステム３１００において、動的に記憶領域を割当てる機能を使用するボリュームからのデータをバックアップする際に、記憶領域を割当てたボリューム内のデータ位置を特定する情報から、割り当てビットマップを作成し、当該割当てビットマップにＩＤを付与して、これをバックアップ記憶領域テーブル３１２４にＩＤと共に格納する。
【０３４９】
その後、記憶システム３０００では、第１のストレージサブシステム３１００において、割当てビットマップに付与されたＩＤをバックアップサーバ３７００へ送信し、バックアップサーバ３７００において、該ＩＤをバックアップ先のテープデバイス３８００と対応付けて管理を行う。
【０３５０】
そして、記憶システム３０００では、該バックアップしたデータによりリストアする場合、バックアップサーバ３７００において管理されたＩＤ、及び第１のストレージサブシステム３１００において格納した割り当てビットマップにより、バックアップしたときの記憶領域割当てを復元し、該記憶領域に対してバックアップしたデータを書き込む。
【０３５１】
これにより、記憶システム３０００では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【０３５２】
（４）第４の実施の形態
（４−１）第４の実施の形態における記憶システムの構成
図２３は、本発明を適用した記憶システムの第４の実施の形態における構成を示す図である。本実施の形態による記憶システム４０００は、第１のストレージサブシステム４１００、バックアップサーバ４７００、ストレージ装置４９００、及びホスト計算機４３００が例えばＳＡＮ等のネットワーク４４００により接続されて構成されている。
【０３５３】
なお、本実施の形態においては、第１のストレージサブシステム４１００、バックアップサーバ４７００、ストレージ装置４９００、及びホスト計算機４３００が同一のネットワーク４４００に接続された構成としてここに示しているが、この構成以外にも、第１のストレージサブシステム４１００及びホスト計算機４３００間のネットワークと、第１のストレージサブシステム４１００、バックアップサーバ４７００、及びストレージ装置４９００のネットワークが分離した構成でも良い。
【０３５４】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をＲＡＩＤやＪＢＯＤ構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【０３５５】
第１のストレージサブシステム４１００は、第１の制御装置４１１０と第１の管理端末４１３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第１の管理端末４１３０により行うことができる。また、各種機能の設定はホスト計算機４３００により行うこともできる。
【０３５６】
また、第１のストレージサブシステム４１００は、所定のネットワーク４５００により外部ストレージ装置４６００と接続されている。
【０３５７】
第１の制御装置４１１０は、当該第１の制御装置４１１０全体を制御する１個以上のＣＰＵ４１１１、ネットワーク４４００との接続のためのネットワークＩ／Ｆ４１１２、ネットワーク４５００との接続のためのネットワークＩ／Ｆ４１１３、第１の管理端末４１３０との接続のためのＮＩＣ４１１４、複数のハードディスクドライブ等でなり、当該第１の制御装置４１１０の各種設定情報やプログラム等が格納されていると共に、ホスト計算機４３００から送信されるデータが格納される内部ストレージ装置４１１５、及び当該各種設定情報やプログラム等が展開されるメモリ４１１６から構成されている。
【０３５８】
メモリ４１１６には、ボリューム管理プログラム４１２０、動的記憶領域割当てプログラム４１２１、及び記憶領域管理テーブル４１２３が展開されている。このボリューム管理プログラム４１２０、及び動的記憶領域割当てプログラム４１２１は、ＣＰＵ４１１１によって実行されるプログラムである。
【０３５９】
第１の管理端末４１３０は、当該第１の管理端末４１３０全体を制御する１個以上のＣＰＵ４１３１、当該第１の制御装置４１１０の各種設定情報やプログラム等が格納されている記憶装置４１３２、各種設定情報やプログラム等が展開されるメモリ４１３３及び第１の制御装置４１１０との接続のためのＮＩＣ４１３４から構成されている。
【０３６０】
一方、バックアップサーバ４７００は、当該バックアップサーバ４７００全体を制御する１個以上のＣＰＵ４７０１、ネットワーク４４００との接続のためのネットワークＩ／Ｆ４７０２、ホスト計算機４３００との接続のためのＮＩＣ４７０３、テープデバイス４８００との接続のためのネットワークＩ／Ｆ４７０４、複数のハードディスクドライブ等でなり、当該第バックアップサーバ４７００の各種設定情報やプログラム等が格納されていると共に、ホスト計算機４３００や第１のストレージサブシステム４１００から送信されるデータが格納される内部ストレージ装置４７０５、及び当該各種設定情報やプログラム等が展開されるメモリ４７０６から構成されている。
【０３６１】
メモリ４７０６には、バックアッププログラム４７１０、及びバックアップ記憶テーブル４７１１が展開されている。このバックアッププログラム４７１０は、ＣＰＵ４７０１によって実行されるプログラムである。
【０３６２】
また、バックアップサーバ４７００は、例えば、ＳＣＳＩ等の所定のネットワークにより、バックアップサーバ４７００のネットワークＩ／Ｆ４７０４を介してテープデバイス４８００と接続されている。
【０３６３】
この場合、バックアップサーバ４７００は、第１のストレージサブシステム４１００のボリュームをバックアップ及びリストアを制御する機能を備えており、該機能はバックアップサーバ４７００のメモリ４７０６に格納されたバックアッププログラム４７１０が提供する。
【０３６４】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、バックアップサーバが管理するストレージ装置に送信することでボリューム内のデータを複製することをいう。
【０３６５】
バックアッププログラム４７１０は、第１のストレージサブシステム４１００にリストアの開始を通知し、バックアップサーバ４７００がアクセス可能であるストレージから読み出したデータを、第１のストレージサブシステム４１００に対して、転送することでリストアを行う機能を有する。
【０３６６】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージ装置に該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【０３６７】
さらに、バックアッププログラム４７１０は、バックアップ時にバックアップサーバ４７００から通知された情報により、バックアップ元データの何れの領域に対してホスト計算機４３００より書き込みが発生していたかを判断する機能を有する。
【０３６８】
加えて、バックアッププログラム４７１０は、第１のストレージサブシステム４１００に対し初期化を要求する機能を有する。
【０３６９】
なお、バックアップ先の物理デバイスは、バックアップサーバ４７００がアクセス可能であるならば、第１のストレージサブシステム４１００から直接アクセス不可能であるネットワーク４４００とは独立したネットワーク上にあるテープデバイス４８００であっても、第１のストレージサブシステム４１００から直接アクセス可能であるネットワーク４４００上にあっても良い。
【０３７０】
ただし、本実施の形態においては、バックアップしたデータに対して変更を加えてはならないことが前提である。そのため、バックアップ先の物理デバイスは、テープメディアやＤＶＤ−Ｒといったデータの変更を基本的に行わない媒体が望ましい。
【０３７１】
他方、ホスト計算機４３００は、ＣＰＵ４３０１及びネットワーク４４００との接続のためのネットワークＩ／Ｆ４３０２を有するコンピュータ装置であり、例えばＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）をＯＳとするサーバなどから構成される。また、ホスト計算機４３００は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機４３００は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【０３７２】
この場合、第１のストレージサブシステム４１００のボリュームの管理は、ストレージ制御装置４１１０のメモリ４１１６に格納されているボリューム管理プログラム４１２０がＣＰＵ４１１１に実行されることにより動作する。
【０３７３】
第１のストレージサブシステム４１００は、外部ストレージ装置４６００を内部ストレージ装置４１１５と同様に扱い、ホスト計算機４３００に提供するボリュームを構成するストレージ装置としても良い。また、第１のストレージサブシステム４１００は、内部ストレージ装置４１１５を持たず、外部ストレージ装置４６００のみでボリュームをホスト計算機４３００に対して提供しても良い。なお、外部ストレージ装置４６００は、他のストレージサブシステムが提供するボリュームであっても良い。
【０３７４】
第１のストレージサブシステム４１００は、ボリュームを提供する場合、ホスト計算機３３００によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置４１１５及び外部ストレージ装置４６００の物理デバイス（ハードディスクドライブ等）の特定領域を指す。
【０３７５】
動的記憶領域割り当て機能は、メモリ４１１６に格納されるボリューム管理プログラム４１２０及び動的記憶領域割当てプログラム４１２１がＣＰＵ４１１１に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム４１２１は、記憶領域管理テーブル４１２３に格納された情報を基に動作する。
【０３７６】
この動的記憶領域割り当て機能では、ホスト計算機４３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム４１２１により、記憶領域管理テーブル４１２３を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル４１２３に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【０３７７】
また、動的記憶領域割り当て機能では、ホスト計算機４３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム４１２１により、記憶領域管理テーブル４１２３を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル４１２３に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【０３７８】
さらに、動的記憶領域割り当て機能では、ホスト計算機４３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム４１２０により、記憶領域管理テーブル４１２３を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「０」等の予め決められたパターンをホスト計算機４３００に対して送信する。
【０３７９】
さらに、動的記憶領域割り当て機能では、ホスト計算機４３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム４１２０により、記憶領域管理テーブル４１２３を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル４１２３に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機４３００に対して送信する。
【０３８０】
さらに、動的記憶領域割り当て機能では、ホスト計算機４３００からの初期化の要求を受けたときに、動的記憶領域割当てプログラム４１２０により、初期化対象のボリュームに割当てられている記憶領域を解放し、記憶領域管理テーブル４１２３に格納されている記憶領域の割当て情報を変更する。ただし、動的記憶領域割り当て機能では、初期化対象のボリュームが動的記憶領域割り当て機能を使用していない場合には、ボリューム管理プログラム４１２０が対象のボリュームの全領域に対して、「０」を格納する等の初期化処理を行う。
【０３８１】
第１のストレージサブシステム４１００は、ホスト計算機４３００より任意のボリュームについて情報取得の要求があったとき、ボリューム管理プログラム４１２０において、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該情報取得の要求に対する応答のメッセージの中に、その情報を付与して返信することができる。
【０３８２】
なお、第１のストレージサブシステム４１００は、動的記憶領域割り当て機能の使用中の情報をホスト計算機４３００に返信できなくとも、対象のボリュームを設定した第１のストレージサブシステム４１００の管理者や管理ソフトウェア等がバックアップサーバ４７００に対して動的記憶領域割り当て機能の使用中の情報を送信すれば良い。
【０３８３】
（４−２）第４の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第１のストレージサブシステム４１００からバックアップサーバ４７００を介したテープデバイス４８００に対するバックアップの制御方式について説明を行う。
【０３８４】
ここでは、バックアップ先の物理デバイスを、第１のストレージサブシステム４１００から直接データの転送をできるネットワーク４４００とは独立したネットワーク上にあるテープデバイス４８００として説明を行うが、バックアップ先の物理デバイスが第１のストレージサブシステム４１００より直接データの転送をできるネットワーク４４００に接続されたストレージ装置４９００であっても動作は同じである。
【０３８５】
この記憶システム４０００では、第１のストレージサブシステム４１００の動的記憶領域割り当て機能を使用したボリュームから、動的記憶領域割り当て機能とは関係のないバックアップサーバ４７００が管理するテープデバイス４８００へのバックアップを行う。
【０３８６】
ただし、バックアップを制御するバックアップサーバ４７００では、バックアップ元ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。
【０３８７】
バックアップサーバ４７００のＣＰＵ４７０１は、バックアップ元ボリューム内のデータのバックアップに先立ち、第１のストレージサブシステム４１００に対して、対象のボリュームに対する記憶領域を割当てた箇所を特定するための情報のバックアップを要求する。これは、動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【０３８８】
該バックアップ要求を受けた第１の制御装置４１１０のＣＰＵ４１１１は、動的記憶領域割当てプログラム４１２１により、記憶領域管理テーブル４１２３を参照し、記憶領域を割当てた箇所についての情報をビットマップ化して作成（以降、該情報を「割当てビットマップ」と呼ぶ）し、該割り当てビットマップをバックアップサーバ４７００に対して送信する。
【０３８９】
バックアップサーバ４７００のＣＰＵ４７０１は、受信した割当てビットマップの情報を、バックアップ記憶領域テーブル４７１１に格納し、バックアップ先のステープデバイス４８００と対応付けて管理する。
【０３９０】
バックアップサーバ４７００のＣＰＵ４７０１は、割当てビットマップの格納の後、第１の制御装置４１１０のバックアップ元ボリュームに対して、ボリュームの全領域のデータに対する読み出し要求を行い、これをテープデバイス４８００に格納する。ボリュームの全領域のデータ格納完了に伴い、本バックアップも完了となる。
【０３９１】
次に、前述のバックアップしたデータを元とするバックアップサーバ４７００を介したテープデバイス４８００から第１のストレージサブシステム４１００へのデータのリストアの制御方式について説明を行う。
【０３９２】
ここでは、リストア元の物理デバイスを、第１のストレージサブシステム４１００から直接データの転送をできるネットワーク４４００とは独立したネットワーク上にあるテープデバイス４８００として説明を行うが、リストア元の物理デバイスが、第１のストレージサブシステム４１００から直接データの転送をできるネットワーク４４００に接続されたストレージ装置４９００であっても動作は同じである。
【０３９３】
この記憶システム４０００では、動的記憶領域割り当て機能とは関係のない、バックアップサーバ４７００が管理するテープデバイス４８００から、第１のストレージサブシステム４１００の動的記憶領域割り当て機能を使用したボリュームへのリストアを行う。
【０３９４】
ただし、リストアを制御するバックアップサーバ４７００では、リストア先ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。また、バックアップ時にバックアップ元ボリュームが動的記憶領域割り当て機能を使用していたことは、バックアップ時に取得した割り当てビットマップ有無等の情報を基に判断可能である。
【０３９５】
バックアップサーバ４７００のＣＰＵ４７０１は、リストア開始時に、バックアッププログラム４７１０により、第１のストレージサブシステム４１００のリストア先ボリュームを指定して初期化を要求し、該ボリュームに割当てられている全記憶領域の解放を行う。
【０３９６】
バックアップサーバ４７００のＣＰＵ４７０１は、全記憶領域の解放後、バックアッププログラム４７１０により、割当てビットマップを参照し、記憶領域が割当てられていた箇所についてのみテープデバイス３８００に格納されているリストア元データを送信する。全ての、記憶領域が割当てられていた箇所のリストア元データ送信完了に伴い、本リストア処理は完了となる。
【０３９７】
図２４は、バックアップサーバ４７００を用いた、本実施の形態における第１のストレージサブシステム４１００の動的記憶領域割り当て機能を使用するボリュームから、テープデバイス４８００へのバックアップ処理の動作概要についてのフローチャートを示している。
【０３９８】
まず、バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４１０にて、第１のストレージサブシステム４１００における動的記憶領域割り当て機能を使用しているボリュームに対するバックアップの開始を要求する。
【０３９９】
この後、バックアップサーバ４７００のＣＰＵ４７０１は、第１の制御装置４１１０において、バックアップ要求と共に、当該バックアップサーバ４７００から通知した通知内容に不備がないかチェックを行う為、ステップＳ４１１へ進む。
【０４００】
第１の制御装置４１１０のＣＰＵ４１１１は、ステップＳ４１１にて、動的記憶領域割り当て機能を使用しているとバックアッププログラム４７１０において認識しているボリュームに対し、該動的記憶領域割り当て機能を使用しているボリュームの情報の正当性を調査する。
【０４０１】
第１の制御装置４１１０のＣＰＵ４１１１は、ステップＳ４１１にて、ボリューム管理プログラム４１２０の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、バックアップサーバ４７００のバックアップ要求に対して、動的記憶領域割り当て機能との連携の失敗を通知するステップＳ４１６へ進む。
【０４０２】
バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４１６にて、動的記憶領域割り当て機能との連携ができないことを検知すると、ステップＳ４１７に進み、ステップＳ４１７にて、動的記憶領域割り当て機能を使用しないボリュームと同様に、対象のボリュームを、バックアップ時の割当てビットマップ管理を必要としない通常のバックアップ方式に変更する。
【０４０３】
なお、バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４１７へ進まずに、ステップＳ４０６の時点でバックアップ失敗としても良い。
【０４０４】
バックアップサーバ４７００のＣＰＵ４７０１は、この後、ステップＳ４１５へ進み、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス４８００への格納を行う。
【０４０５】
一方、第１の制御装置４１１０のＣＰＵ４１１１は、ステップＳ４１１にて、ボリューム管理プログラム４１２０の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップＳ４１２に進み、ステップＳ４１２にて、記憶領域管理テーブル４１２３を基に記憶領域を割当てている箇所を特定し、割当てビットマップを作成する。
【０４０６】
第１の制御装置４１１０のＣＰＵ４１１１は、その後、ステップＳ４１３にて、作成したビットマップを、バックアップサーバ４７００に送信する。
【０４０７】
バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４１４にて、第１の制御装置４１１０から送信された割当てビットマップをバックアップ記憶領域テーブル４７１１に格納する。その後、バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４１５へ進む。
【０４０８】
バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４１１より始まる動的記憶領域割り当て機能と連携するバックアップ処理の前準備が完了した後、ステップＳ４１５に進み、ステップＳ４１５にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス４８００への格納を行う。ステップＳ４１５の完了に伴い、バックアップ処理が完了する。
【０４０９】
図２５は、バックアップサーバ４７００を用いた、本実施の形態におけるテープデバイス３８００から第１のストレージサブシステム４１００の動的記憶領域割り当て機能を使用するボリュームへのリストア処理の動作概要についてのフローチャートを示している。
【０４１０】
まず、バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４３０にて、リストア先ボリュームが、動的記憶領域割り当て機能を使用してバックアップを行っていたかを調査する。バックアップサーバ４７００のＣＰＵ４７０１は、これに該当しない場合には、ステップＳ４３８へ進み、通常のボリュームと同様にバックアップ先ボリュームの全領域に対してデータの書き込みを行うことでリストアを行う。
【０４１１】
一方、バックアップサーバ４７００のＣＰＵ４７０１は、動的記憶領域割り当て機能を使用してバックアップを行っていた場合には、ステップＳ４３１へ進み、リストア先ボリュームが割当てている記憶領域の解放を行うため、第１のストレージサブシステム４１００に対して初期化の要求を発行し、ステップＳ４３２へ進む。
【０４１２】
第１の制御装置４１１０のＣＰＵ４１１１は、初期化要求を受信すると、ステップＳ４３２にて、ボリューム管理プログラム４１２０を使用して、対象のボリュームに対し、記憶領域の解放が必要であるのか、全領域に対する「０」データの書き込みが必要であるのかを判断する。第１の制御装置４１１０のＣＰＵ４１１１は、判断の結果、対象のボリュームが動的記憶領域割り当て機能を使用しているならば、ステップＳ４３４へ進み、使用していないならばステップＳ４３７へ進む。
【０４１３】
第１の制御装置４１１０のＣＰＵ４１１１は、ステップＳ４３４にて、ボリューム管理プログラム４１２０により、動的記憶領域割当てプログラム４１２１を起動し、対象のボリュームに対して割当てている記憶領域の割当てを解放する。第１の制御装置４１１０のＣＰＵ４１１１は、この後、ステップＳ４３５へ進む。
【０４１４】
第１の制御装置４１１０のＣＰＵ４１１１は、ステップＳ４３７にて、ボリューム管理プログラム４１２０にて対象のボリュームの初期化処理を行う。ここで述べる初期化処理とは、対象のボリュームの全領域に対し「０」等のデータを格納し、ボリュームに格納しているデータを無効化する処理を指す。第１の制御装置４１１０のＣＰＵ４１１１は、この後、ステップＳ４３５へ進む。なお、ステップＳ４３４とステップＳ４３７の完了時の対象のボリュームに格納されるデータを読み出した場合、両者の間に相違はない。
【０４１５】
バックアップサーバ３７００のＣＰＵ３７０１は、ステップＳ４３５にて、バックアッププログラム４４１０により、割当てビットマップを調査し、バックアップ時に記憶領域を割当てていた箇所についてのみ、第１のストレージサブシステム４１００に送信する。そして、第１の制御装置４１１０のＣＰＵ４１１１は、バックアップ時に記憶領域を割当てていた箇所についてのみ、記憶領域を割り当て、リストア先ボリュームにデータの書き込みを行う。記憶領域を割当てていなかった箇所については書き込みを行わない。以上をもってリストア処理は完了となる。
【０４１６】
図２６は、バックアッププログラム４４１０により、動的記憶領域割り当て機能を使用するリストア先ボリュームへのデータ書き込み処理であるステップＳ４３５を詳細化した処理の動作概要についてのフローチャートを示している。
【０４１７】
バックアップサーバ４７００のＣＰＵ４７０１は、ステップＳ４６０にて、取得した割当てビットマップを基に、バックアッププログラム４４１１により書き込みを行うか否かを判断する。ここで、バックアップサーバ４７００のＣＰＵ４７０１は、対象格納位置に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップＳ４６１へ進む。
【０４１８】
一方、バックアップサーバ４７００のＣＰＵ４７０１は、対象格納位置に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないため処理完了となる。
【０４１９】
第１の制御装置４１１０のＣＰＵ４１１１は、ステップＳ４６１にて、バックアップ時の記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。以上で、データ格納処理が完了する。
【０４２０】
このようにして、記憶システム４０００では、第１のストレージサブシステム４１００において、動的に記憶領域を割当てる機能を使用するボリュームからのデータをバックアップする際に、記憶領域を割当てたボリューム内のデータ位置を特定する情報から、割り当てビットマップを作成し、該割り当てビットマップをバックアップサーバ４７００に送信し、バックアップサーバ４７００の記憶領域テーブル４７１１に格納すると共に、バックアップサーバ４７００において、該割り当てビットマップをバックアップ先のテープデバイス３８００と対応付けて管理を行う。
【０４２１】
そして、記憶システム４０００では、該バックアップしたデータによりリストアする場合、バックアップサーバ３７００において、格納された割当てビットマップを調査し、バックアップ時に記憶領域を割当てていた箇所についてのみ、第１のストレージサブシステム４１００に送信し、第１の制御装置４１１０のＣＰＵ４１１１において、バックアップ時に記憶領域を割当てていた箇所についてのみ、記憶領域を割り当て、リストア先ボリュームにデータの書き込みを行う。
【０４２２】
これにより、記憶システム４０００では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【０４２３】
（５）第１の実施の形態
（５−１）第５の実施の形態における記憶システムの構成
図２７は、本発明を適用した記憶システムの第５の実施の形態における構成を示す図である。本実施の形態による記憶システム５０００は、第１のストレージサブシステム５１００、第２のストレージサブシステム５２００及びホスト計算機５３００が例えばＳＡＮ等のネットワーク５４００により接続されて構成されている。
【０４２４】
なお、本実施の形態においては、第１のストレージサブシステム５１００、第２のストレージサブシステム５２００及びホスト計算機５３００が同一のネットワーク５４００に接続された構成としてここに示しているが、この構成以外にも、第１のストレージサブシステム５１００及びホスト計算機５３００間のネットワークと、第１のストレージサブシステム５１００及び第２のストレージサブシステム５２００間のネットワークが分離した構成でも良い。
【０４２５】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をＲＡＩＤやＪＢＯＤ構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【０４２６】
第１のストレージサブシステム５１００は、第１の制御装置５１１０と第１の管理端末５１３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第１の管理端末５１３０により行うことができる。また、各種機能の設定はホスト計算機５３００により行うこともできる。
【０４２７】
また、第１のストレージサブシステム５１００は、所定のネットワーク５５００により外部ストレージ装置５６００と接続されている。
【０４２８】
第１の制御装置５１１０は、当該第１の制御装置５１１０全体を制御する１個以上のＣＰＵ５１１１、ネットワーク５４００との接続のためのネットワークＩ／Ｆ５１１２、ネットワーク５５００との接続のためのネットワークＩ／Ｆ５１１３、第１の管理端末５１３０との接続のためのＮＩＣ５１１４、複数のハードディスクドライブ等でなり、当該第１の制御装置５１１０の各種設定情報やプログラム等が格納されていると共に、ホスト計算機５３００から送信されるデータが格納される内部ストレージ装置５１１５、及び当該各種設定情報やプログラム等が展開されるメモリ５１１６から構成されている。
【０４２９】
内部ストレージ装置５１１５には、記憶領域管理テーブル５１２３が格納されている。なお、記憶領域管理テーブル５１２３は、内部ストレージ装置５１１５に格納されているが、以下のように、一時的にメモリ５１１６に格納することで、内部ストレージ装置５１１５の参照及び更新に対する性能向上を図っても良い。
【０４３０】
メモリ５１１６には、ボリューム管理プログラム５１２０、動的記憶領域割当てプログラム５１２１、遠隔コピー管理プログラム５１２２、及び記憶領域管理テーブル５１２３が展開されている。このボリューム管理プログラム５１２０、動的記憶領域割当てプログラム５１２１、遠隔コピー管理プログラム５１２２は、ＣＰＵ５１１１によって実行されるプログラムである。
【０４３１】
第１の管理端末５１３０は、当該第１の管理端末５１３０全体を制御する１個以上のＣＰＵ５１３１、当該第１の制御装置５１１０の各種設定情報やプログラム等が格納されている記憶装置５１３２、各種設定情報やプログラム等が展開されるメモリ５１３３及び第１の制御装置５１１０との接続のためのＮＩＣ５１３４から構成されている。
【０４３２】
一方、第２のストレージサブシステム５２００は、第２の制御装置５２１０と第２の管理端末５２３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第２の管理端末５２３０により行うことができる。
【０４３３】
第２の制御装置５２１０は、ネットワーク５５００との接続のためのネットワークＩ／Ｆが設けられていないこと、及びメモリ５１１６に動的記憶領域割当てプログラム、及び記憶領域管理テーブルが展開されていない（設けられていない）ことを除いて、第１の制御装置５１１０と同様に構成されており、ＣＰＵ５２１１、ネットワークＩ／Ｆ５２１２、ＮＩＣ５２１４、内部ストレージ装置５２１５及びメモリ５２１６から構成されている。
【０４３４】
メモリ５２１６には、ボリューム管理プログラム５２２０、遠隔コピー管理プログラム５２２１が展開されている。このボリューム管理プログラム５２２０、遠隔コピー管理プログラム５２２１は、ＣＰＵ５２１１によって実行されるプログラムである。
【０４３５】
第２の管理端末５２３０は、第２の管理端末５２３０と同様に構成されており、ＣＰＵ５２３１、記憶装置５２３２、メモリ５２３３及びＮＩＣ５２３４から構成されている。
【０４３６】
他方、ホスト計算機５３００は、ＣＰＵ５３０１及びネットワーク５４００との接続のためのネットワークＩ／Ｆ５３０２を有するコンピュータ装置であり、例えばＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）をＯＳとするサーバなどから構成される。また、ホスト計算機５３００は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機５３００は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【０４３７】
この場合、第１のストレージサブシステム５１００のボリュームの管理は、ストレージ制御装置５１１０のメモリ５１１６に格納されているボリューム管理プログラム５１２０がＣＰＵ５１１１に実行されることにより動作する。
【０４３８】
第１のストレージサブシステム５１００は、外部ストレージ装置５６００を内部ストレージ装置５１１５と同様に扱い、ホスト計算機５３００に提供するボリュームを構成するストレージ装置としても良い。また、第１のストレージサブシステム５１００は、内部ストレージ装置５１１５を持たず、外部ストレージ装置５６００のみでボリュームをホスト計算機５３００に対して提供しても良い。なお、外部ストレージ装置５６００は、他のストレージサブシステムが提供するボリュームであっても良い。
【０４３９】
第１のストレージサブシステム５１００は、ボリュームを提供する場合、ホスト計算機５３００によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置５１１５及び外部ストレージ装置５６００の物理デバイス（ハードディスクドライブ等）の特定領域を指す。
【０４４０】
動的記憶領域割り当て機能は、メモリ５１１６に格納されるボリューム管理プログラム５１２０及び動的記憶領域割当てプログラム５１２１がＣＰＵ１１１１に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム１１２１は、記憶領域管理テーブル５１２３に格納された情報を基に動作する。
【０４４１】
第２のストレージサブシステム５２００は、動的記憶領域割り当て機能を有さないストレージサブシステムとして本説明では述べるが、第１のストレージサブシステム５１００同様に、動的記憶領域割り当て機能を有すストレージサブシステムであっても良い。
【０４４２】
第１のストレージサブシステム５１００及び第２のストレージサブシステム５２００は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【０４４３】
ここで、第１のストレージサブシステム５１００のボリュームを複製元とし、第２のストレージサブシステム５２００のボリュームを複製先とした場合、遠隔コピー管理プログラム５１２２がＣＰＵ５１１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【０４４４】
逆に、第２のストレージサブシステム５２００のボリュームを複製元とし、第１のストレージサブシステム５１００のボリュームを複製先とした場合、遠隔コピー管理プログラム５２２２がＣＰＵ５２１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【０４４５】
なお、第１のストレージサブシステム５１００のボリュームを複製元とし、第２のストレージサブシステム５２００のボリュームを複製先とした場合、第１のストレージサブシステム５１００のボリュームをバックアップ元ボリューム、第２のストレージサブシステム５２００のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【０４４６】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【０４４７】
また、バックアップを行った後に、第２のストレージサブシステム５２００のボリュームを複製元、第１のストレージサブシステム５１００のボリュームを複製先とした場合、第２のストレージサブシステム５２００のボリュームをリストア元ボリューム、第１のストレージサブシステム５１００のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【０４４８】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【０４４９】
図２８は、第１のストレージサブシステム５１００及び第２のストレージサブシステム５２００の論理的なボリュームについてのシステム構造を示している。
【０４５０】
第１のストレージサブシステム５１００は、動的記憶領域割り当て機能を使用するボリュームである動的記憶領域割り当てボリューム５１４０を１個以上有している。該動的記憶領域割り当てボリューム５１４０は、ホスト計算機５３００による書き込み要求を受けてプールグループ５１５０内の記憶領域の一部を動的記憶領域割り当てボリューム５１４０の書き込みが発生した領域に対して割り当てる。
【０４５１】
プールグループ５１４０は、任意の動的記憶領域割り当て機能を使用しないボリュームを、プールボリューム５１５１と設定し、その一部の領域を動的記憶領域割り当てボリューム５１４０に対して割当てる記憶領域として使用することができる。
【０４５２】
ここで、プールボリューム５１５１内には、記憶領域管理テーブル５１２３が動的記憶領域割り当てボリューム５１４０に対して割当てるための記憶領域と共に格納されている。なお、記憶領域管理テーブル５１２３は、動的記憶領域割り当てボリューム５１４０の任意の領域と、該動的記憶領域割り当てボリューム５１４０に割当てた該プールボリューム５１５１の対応を記録する為のテーブルである。
【０４５３】
ストレージサブシステム５２００には、プールボリューム５１５１により複製可能なサイズを持つボリューム５２５１を有している。プールグループ５１５０内にプールボリューム５１５１が複数個存在するならば、プールボリューム５１５１の数及び個々のプールボリューム５１５１とサイズを同じとするボリューム５２５１が必要となる。
【０４５４】
この記憶システム５０００では、プールグループ５１５０内のプールボリューム５１５１をバックアップすることで、同一のプールグループ５１５０を記憶領域の割当てに使用している動的記憶領域割り当てボリューム５１４０をまとめてバックアップを行い、該バックアップしたデータによりリストアを行う。
【０４５５】
（５−２）第５の実施の形態におけるバックアップ及びリストアの制御方式
以下、本実施の形態における第１のストレージサブシステム５１００から第２のストレージサブシステム５２００に対するバックアップの制御方式について説明を行う。
【０４５６】
この記憶システム５０００では、リモートコピー機能により、ストレージサブシステム５１００において、遠隔コピー管理プログラム５１２２が、第２のストレージサブシステム５２００において、遠隔コピー管理プログラム５２２２が動作する。
【０４５７】
第１の制御装置５１１０のＣＰＵ５１１１は、バックアップ時には、遠隔コピー管理プログラム５１２２により、ネットワーク５４００を通して、バックアップ元のプールボリューム５１５１からバックアップ先ボリューム５２５１に対するコピー処理を行う。
【０４５８】
ここで、第１の制御装置５１１０のＣＰＵ５１１１は、プールグループ５１５０内の全プールボリューム５１５１の記憶領域管理テーブル５１２３を記憶領域と共に、バックアップ先ボリューム５２５１に複製するため、動的記憶領域割り当てボリューム５１４０が使用する記憶領域の情報に消失がない。このようにして、第１の制御装置５１１０のＣＰＵ５１１１は、バックアップするデータを複製する。
【０４５９】
次に、第２のストレージサブシステム５２００から第１のストレージサブシステム５１００に対するリストアの制御方式について説明を行う。
【０４６０】
第２の制御装置５２１０のＣＰＵ５２１１は、リストア時には、遠隔コピー管理プログラム５２２２により、ネットワーク５４００を通して、リストア元ボリューム５２５１からリストア先のプールボリューム５１５１に対するコピー処理を行う。
【０４６１】
ここで、第２の制御装置５２１０のＣＰＵ５２１１は、リストア元ボリューム５２４１の記憶領域管理テーブル５１２３を記憶領域と共に、プールボリューム５１５１に複製する。該リストアボリューム５２５１は、バックアップ時の動的記憶領域割り当てボリューム５１５１が使用していた情報を全て含んでいるため、バックアップ時の動的記憶領域割り当てボリューム５１４０を復元することができる。
【０４６２】
なお、本実施の形態を用いて、第２のストレージサブシステム５２００側に動的記憶領域割り当て機能仕様可能なストレージサブシステムを使用し、バックアップ先ボリューム５２５１を、プールグループ５１５０と同構成のプールグループとすることで、第１のストレージサブシステム５１００側で災害が発生した場合に、第２のストレージサブシステム５２００にシステムを移行し、業務を継続する方法が応用可能である。
【０４６３】
このようにして、記憶システム５０００では、プールボリューム５１５１に、バックアップするデータと共に、当該データが記憶された割り当て箇所を示す記憶領域管理テーブル５１２３を格納し、プールグループ５１５０内の全プールボリューム５１５１の記憶領域管理テーブル５１２３を、バックアップするデータと共に、バックアップ先ボリューム５２５１に複製する。
【０４６４】
これにより、記憶システム５０００では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【０４６５】
（６）第６の実施の形態
（６−１）第１の実施の形態における記憶システムの構成
図２９は、本発明を適用した記憶システムの第６の実施の形態における構成を示す図である。本実施の形態による記憶システム６０００は、第１のストレージサブシステム６１００、第２のストレージサブシステム６２００及びホスト計算機６３００が例えばＳＡＮ等のネットワーク６４００により接続されて構成されている。
【０４６６】
なお、本実施の形態においては、第１のストレージサブシステム６１００、第２のストレージサブシステム６２００及びホスト計算機６３００が同一のネットワーク６４００に接続された構成としてここに示しているが、この構成以外にも、第１のストレージサブシステム６１００及びホスト計算機６３００間のネットワークと、第１のストレージサブシステム６１００及び第２のストレージサブシステム６２００間のネットワークが分離した構成でも良い。
【０４６７】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をＲＡＩＤやＪＢＯＤ構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【０４６８】
第１のストレージサブシステム６１００は、第１の制御装置６１１０と第１の管理端末６１３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第１の管理端末６１３０により行うことができる。また、各種機能の設定はホスト計算機６３００により行うこともできる。
【０４６９】
また、第１のストレージサブシステム６１００は、所定のネットワーク６５００により外部ストレージ装置６６００と接続されている。
【０４７０】
第１の制御装置６１１０は、当該第１の制御装置６１１０全体を制御する１個以上のＣＰＵ６１１１、ネットワーク６４００との接続のためのネットワークＩ／Ｆ６１１２、ネットワーク６５００との接続のためのネットワークＩ／Ｆ６１１３、第１の管理端末６１３０との接続のためのＮＩＣ６１１４、複数のハードディスクドライブ等でなり、当該第１の制御装置６１１０の各種設定情報やプログラム等が格納されていると共に、ホスト計算機６３００から送信されるデータが格納される内部ストレージ装置６１１５、及び当該各種設定情報やプログラム等が展開されるメモリ６１１６から構成されている。
【０４７１】
メモリ６１１６には、ボリューム管理プログラム６１２０、動的記憶領域割当てプログラム６１２１、遠隔コピー管理プログラム６１２２、記憶領域管理テーブル６１２３及び差分管理テーブル６１２５が展開されている。このボリューム管理プログラム６１２０、動的記憶領域割当てプログラム６１２１、遠隔コピー管理プログラム６１２２は、ＣＰＵ６１１１によって実行されるプログラムである。
【０４７２】
第１の管理端末６１３０は、当該第１の管理端末６１３０全体を制御する１個以上のＣＰＵ６１３１、当該第１の制御装置６１１０の各種設定情報やプログラム等が格納されている記憶装置６１３２、各種設定情報やプログラム等が展開されるメモリ６１３３及び第１の制御装置６１１０との接続のためのＮＩＣ６１３４から構成されている。
【０４７３】
一方、第２のストレージサブシステム６２００は、第２の制御装置６２１０と第２の管理端末６２３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第２の管理端末６２３０により行うことができる。
【０４７４】
第２の制御装置６２１０は、ネットワーク６５００との接続のためのネットワークＩ／Ｆが設けられていないこと、及びメモリ６１１６に動的記憶領域割当てプログラム、及び記憶領域管理テーブルが展開されていない（設けられていない）ことを除いて、第１の制御装置６１１０と同様に構成されており、ＣＰＵ６２１１、ネットワークＩ／Ｆ６２１２、ＮＩＣ６２１４、内部ストレージ装置６２１５及びメモリ６２１６から構成されている。
【０４７５】
メモリ６２１６には、ボリューム管理プログラム１２２０、遠隔コピー管理プログラム１２２１、及び差分管理テーブル６２２５が展開されている。このボリューム管理プログラム６２２０、遠隔コピー管理プログラム６２２１は、ＣＰＵ６２１１によって実行されるプログラムである。
【０４７６】
第２の管理端末６２３０は、第２の管理端末６２３０と同様に構成されており、ＣＰＵ６２３１、記憶装置６２３２、メモリ６２３３及びＮＩＣ６２３４から構成されている。
【０４７７】
他方、ホスト計算機６３００は、ＣＰＵ６３０１及びネットワーク６４００との接続のためのネットワークＩ／Ｆ６３０２を有するコンピュータ装置であり、例えばＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）をＯＳとするサーバなどから構成される。また、ホスト計算機６３００は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機６３００は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【０４７８】
この場合、第１のストレージサブシステム６１００のボリュームの管理は、ストレージ制御装置６１１０のメモリ６１１６に格納されているボリューム管理プログラム６１２０がＣＰＵ６１１１に実行されることにより動作する。
【０４７９】
第１のストレージサブシステム６１００は、外部ストレージ装置６６００を内部ストレージ装置６１１５と同様に扱い、ホスト計算機６３００に提供するボリュームを構成するストレージ装置としても良い。また、第１のストレージサブシステム６１００は、内部ストレージ装置６１１５を持たず、外部ストレージ装置６６００のみでボリュームをホスト計算機６３００に対して提供しても良い。なお、外部ストレージ装置６６００は、他のストレージサブシステムが提供するボリュームであっても良い。
【０４８０】
第１のストレージサブシステム６１００は、ボリュームを提供する場合、ホスト計算機６３００によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置６１１５及び外部ストレージ装置６６００の物理デバイス（ハードディスクドライブ等）の特定領域を指す。
【０４８１】
動的記憶領域割り当て機能は、メモリ６１１６に格納されるボリューム管理プログラム６１２０及び動的記憶領域割当てプログラム６１２１がＣＰＵ６１１１に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム６１２１は、記憶領域管理テーブル６１２３に格納された情報を基に動作する。
【０４８２】
この動的記憶領域割り当て機能では、ホスト計算機６３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム６１２１により、記憶領域管理テーブル６１２３を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル６１２３に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【０４８３】
また、動的記憶領域割り当て機能では、ホスト計算機６３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム６１２１により、記憶領域管理テーブル６１２３を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル６１２３に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【０４８４】
さらに、動的記憶領域割り当て機能では、ホスト計算機６３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム１１２０により、記憶領域管理テーブル６１２３を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「０」等の予め決められたパターンをホスト計算機６３００に対して送信する。
【０４８５】
さらに、動的記憶領域割り当て機能では、ホスト計算機６３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム６１２０により、記憶領域管理テーブル６１２３を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル６１２３に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機６３００に対して送信する。
【０４８６】
第２のストレージサブシステム６２００は、動的記憶領域割り当て機能を有さない、若しくは動的記憶領域割り当て機能を有していてもその機能が動作していない、若しくは動的記憶領域割り当て機能を有していても、第１のストレージサブシステム６１００と動的記憶領域割り当て機能について連携を行うことができないストレージサブシステムである。
【０４８７】
なお、第２のストレージサブシステム６２００が動的記憶領域割り当て機能を有している場合でも、本実施の形態を用いることができるが、その場合には本実施の形態以外の方法を使用するのが望ましい。
【０４８８】
第１のストレージサブシステム６１００及び第２のストレージサブシステム６２００は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【０４８９】
ここで、第１のストレージサブシステム６１００のボリュームを複製元とし、第２のストレージサブシステム６２００のボリュームを複製先とした場合、遠隔コピー管理プログラム６１２２がＣＰＵ６１１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【０４９０】
逆に、第２のストレージサブシステム６２００のボリュームを複製元とし、第１のストレージサブシステム６１００のボリュームを複製先とした場合、遠隔コピー管理プログラム６２２２がＣＰＵ６２１１に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【０４９１】
なお、第１のストレージサブシステム６１００のボリュームを複製元とし、第２のストレージサブシステム６２００のボリュームを複製先とした場合、第１のストレージサブシステム６１００のボリュームをバックアップ元ボリューム、第２のストレージサブシステム６２００のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【０４９２】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【０４９３】
また、バックアップを行った後に、第２のストレージサブシステム６２００のボリュームを複製元、第１のストレージサブシステム６１００のボリュームを複製先とした場合、第２のストレージサブシステム６２００のボリュームをリストア元ボリューム、第１のストレージサブシステム６１００のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【０４９４】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【０４９５】
リモートコピー機能では、バックアップ元の第１のストレージサブシステム６１００のボリュームから、バックアップ先の第２のストレージサブシステム６２００のボリュームへのコピー完了後、両者のデータを同期させないモードに移行する機能を有する。該機能を「スプリット」と呼ぶ。
【０４９６】
この場合、第１の制御装置６１１０のＣＰＵ６１１１は、スプリット後、第１のストレージサブシステム６１００に対して、書き込み要求が発生した場合、対象のデータ位置に対して更新が発生したことを差分管理テーブル６１２５に格納する。
【０４９７】
また、第２の制御装置６２１０のＣＰＵ６２１１は、スプリット後、ストレージサブシステム６２００に対して書き込み要求が発生した場合、対象のデータ位置に対して更新が発生したことを差分管理テーブル６２２５に格納する。
【０４９８】
また、記憶システム６０００では、バックアップしたデータをリストアする場合、該差分管理テーブル６２１４を基に、変更があった箇所についてのみデータを転送することで、ボリューム全体のデータを転送することなく効率的にリストアを行う差分リストア機能を有している。
【０４９９】
（６−２）第６の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第１のストレージサブシステム６１００から第２のストレージサブシステム６２００に対するバックアップの制御方式について説明を行う。
【０５００】
この記憶システム６０００では、第１のストレージサブシステム６１００の動的記憶領域割り当て機能を使用するボリュームにより、第２のストレージサブシステム６２００のボリュームに対してリモートコピー機能によるバックアップを行う。
【０５０１】
第１のストレージサブシステム６１００の動的記憶領域割り当て機能を使用するボリュームと第２のストレージサブシステム６２００のボリュームとの間のリモートコピー機能によるバックアップは、第１のストレージサブシステム６１００側では、ボリューム管理プログラム６１２０と、遠隔コピー管理プログラム６１２２と、動的記憶領域割当てプログラム６１２１とがＣＰＵ６１１１に実行されることにより動作する。
【０５０２】
一方、第２のストレージサブシステム６２００側では、ボリューム管理プログラム６２２０と、遠隔コピー管理プログラム６２２２とがＣＰＵ６２１１に実行されることにより動作する。
【０５０３】
このうち、ボリューム管理プログラム６１２０及びボリューム管理プログラム６２２０は、対象のボリュームが動的記憶領域割り当て機能を使用するか否かを管理する。また、遠隔コピー管理プログラム６１２２及び遠隔コピー管理プログラム６２２２は、ネットワーク６４００を通してバックアップ元ボリュームからバックアップ先ボリュームに対するバックアップを行う。
【０５０４】
本バックアップは、ホスト計算機６３００若しくは第１のストレージサブシステム６１００の第１の管理端末６１３０から、第１の制御装置６１１０に対してバックアップ要求を発行し、ネットワーク６４００を介して第２のストレージサブシステム１２００の第２の制御装置６２１０にバックアップ要求を転送し、第２の制御装置６２１０が該バックアップ要求を受信した後に開始する。
【０５０５】
該バックアップ要求は、ホスト計算機６３００若しくは第２の管理端末６２２０から、第２の制御装置６２１０に対して発行しても良い。この場合、本バックアップは、ネットワーク６４００を介して第２のストレージサブシステム６２００のストレージ制御装置６２１０より第１のストレージサブシステム６１００のストレージ制御装置６１１０にバックアップ要求を転送し、第１の制御装置６１１０が該バックアップ要求を受信した後に開始する。
【０５０６】
リモートコピー機能では、基本的に対象のボリューム全体のデータを遠隔コピー管理プログラム６１２２が送信することでバックアップを行うが、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームである場合、記憶領域を割当てなかった場合のバックアップ元ボリュームのデータを送信する。
【０５０７】
なお、リモートコピー機能では、該バックアップ処理を行う代わりに、第２のストレージサブシステム６２００側の対象のボリュームに対して初期化を行うように要求しても良い。ただし、この場合、動的記憶領域割り当て機能を使用するボリュームである場合、第１のストレージサブシステム６１００の記憶領域を割当てなかった場合のバックアップ元ボリュームのデータと、初期化後の第２のストレージサブシステム６２００のデータとが一致する必要がある。
【０５０８】
遠隔コピー管理プログラム６１２２は、データ送信後、リモートコピー機能の状態をスプリットし、ボリューム変更箇所を差分管理テーブル６１２５及び差分管理テーブル６２２５への格納する機能を有効化する。
【０５０９】
動的記憶領域割当てプログラム６１２１は、スプリット後、記憶領域管理テーブル６１２３を基に、バックアップ元ボリュームの記憶領域を割当てたデータ領域を特定し、該データ領域と対応している記憶領域に格納されたデータを、バックアップ先の該データ領域と同一の領域に書き込む。
【０５１０】
これにより、記憶システム６０００では、第１のストレージサブシステム６１００が記憶領域を割当てた箇所についての情報を差分管理テーブル６２２５に格納する。
【０５１１】
以下、本実施の形態における前述のバックアップしたデータを元とした第２のストレージサブシステム６２００から第１のストレージサブシステム６１００に対するリストアの制御方式について説明を行う。
【０５１２】
第１のストレージサブシステム６１００のボリューム障害が発生した場合、ホスト計算機６３００やストレージ管理端末６１２０やストレージ管理端末６２２０は、バックアップ先ボリュームの更新の箇所データをバックアップ元ボリュームに対してコピーする差分リストア処理を要求する。
【０５１３】
このとき、ボリューム管理プログラム６１２０は、リストア先が第１のストレージサブシステム６１００の動的記憶領域割り当て機能を使用するボリュームであることを検出した場合、リストア先ボリュームに割当てられた記憶領域を全て解放するよう動的記憶領域割当てプログラム６１２１に要求する。該解放要求を受けた動的記憶領域割当てプログラム６１２１は、対象のボリュームに割当てられた全領域を解放する。
【０５１４】
遠隔コピー管理プログラム６２２２は、記憶領域の解放後、第１のストレージサブシステム６１００に対して差分データを送信する。データを受信した第１のストレージサブシステム６１００では、対象のボリュームが動的記憶領域割り当て機能を使用しているため、通常の書き込み処理と同様に、データが送信された箇所についてのみ記憶領域を割り当て、ここにデータの格納を行う。
【０５１５】
このように、第１のストレージサブシステム６１００では、記憶領域の割当てと、割当てられた記憶領域に格納されたデータを復元することで、該第１のストレージサブシステム６１００の対象のボリュームのデータを復元し、なおかつ対象のボリュームに対してバックアップ前に割当てていた記憶領域も復元することができる。
【０５１６】
図３０は、リモートコピーを用いたバックアップにおける、データの送信元であるバックアップ元である第１のストレージ制御装置６１１０での、ボリューム管理プログラム６１２０と遠隔コピー管理プログラム６１２２と動的記憶領域割当てプログラム６１２１の連携制御方式の動作概要についてのフローチャートを示している。
【０５１７】
まず、第１の制御装置６１１０のＣＰＵ６１１１は、ステップＳ６００にて、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム６１２０を呼び出し、調査を行う。
【０５１８】
第１の制御装置６１１０のＣＰＵ６１１１は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、通常のリモートコピー機能として、対象のボリューム内全領域のデータを全てバックアップ先ボリュームに対して転送するステップＳ６０１に進む。なお、本転送処理は、遠隔コピー管理プログラム６１２２が行う。
【０５１９】
一方、第１の制御装置６１１０のＣＰＵ６１１１は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、ステップＳ６０２に進み、遠隔コピー管理プログラム６１２２がリモートコピーを実行することを動的記憶領域割当てプログラム６１２１に通知する。
【０５２０】
第１の制御装置６１１０のＣＰＵ６１１１は、通知を受けた動的記憶領域割当てプログラム６１１８により、バックアップ元ボリュームのデータ読み出しの際、記憶領域の割り当てがないものとして扱う。
【０５２１】
第１の制御装置６１１０のＣＰＵ６１１１は、ボリューム全体のデータ転送完了後、再び動的記憶領域割当てプログラム６１１８が動的記憶領域割当てプログラム６１１８に完了を通知した後、ステップＳ６０３へ進む。
【０５２２】
第１の制御装置６１１０のＣＰＵ６１１１は、ステップＳ６０３にて、遠隔コピー管理プログラム６１２２により、遠隔コピー管理プログラム６２２２へスプリットを行うことを通知する。
【０５２３】
この後、第２の制御装置６１１０のＣＰＵ６２１１は、バックアップ先ボリュームに書き込み要求を受けた場合には、遠隔コピー管理プログラム６２２２が差分管理テーブル６２２５に更新の発生を記録する。また、第１の制御装置６１１０のＣＰＵ６１１１は、バックアップ元ボリュームに書き込み要求を受けた場合には、遠隔コピー管理プログラム６１２２が差分管理テーブル６１２５に更新の発生を記録する。スプリット完了の後、ステップＳ６０４へ進む。
【０５２４】
第１の制御装置６１１０のＣＰＵ６１１１は、ステップＳ６０４にて、バックアップ元ボリュームのデータが未送信であるため、これをバックアップ先ボリュームへの送信を行う。第１の制御装置６１１０のＣＰＵ６１１１は、送信を行うために、動的記憶領域割当てプログラム６１２１に対して記憶領域を割り当てた箇所及び割当てられた記憶領域の特定を要求する。
【０５２５】
第１の制御装置６１１０のＣＰＵ６１１１は、これを受け、動的記憶領域割当てプログラム６１２１により、記憶領域管理テーブル６１２３を参照し、記憶領域の割当て箇所及び記憶領域の特定処理を行う。
【０５２６】
そして、第１の制御装置６１１０のＣＰＵ６１１１は、遠隔コピー管理プログラム６１２２により、該記憶領域のデータを第２のストレージサブシステム６２００に対して書き込みを要求し、ステップＳ６０５へ進む。
【０５２７】
第２の制御装置６２１０のＣＰＵ６２１１は、ステップＳ６０５にて、データ書き込みの要求を受けた遠隔コピー管理プログラム６２２２が書き込み箇所に対して更新が発生したことを差分管理テーブル６２２５に格納する。ここで、更新が発生した箇所とは、第１のストレージサブシステム６１００にて記憶領域を割当てた箇所に相当する。本処理完了に伴い、バックアップ完了となる。
【０５２８】
図３１は、リモートコピーを用いたバックアップデータからのリストア方式の動作概要についてのフローチャートを示している。
【０５２９】
まず、第２の制御装置６１１０のＣＰＵ６２１１は、ステップＳ６１０にて、リストア先ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム６１２０を呼び出し、調査を行う。
【０５３０】
第２の制御装置６１１０のＣＰＵ６２１１は、ステップＳ６１０にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、通常のリモートコピー機能と同様に、リストア元ボリューム内全領域のデータを全てリストア先ボリュームに対して転送するステップＳ６１４に進む。本転送処理は、遠隔コピー管理プログラム６２１９が行う。
【０５３１】
第２の制御装置６１１０のＣＰＵ６２１１は、ステップＳ６１４にて、遠隔コピー管理プログラム６２１９により、通常リストアと同処理で第１のストレージサブシステム６１００へデータを転送する。
【０５３２】
一方、第２の制御装置６１１０のＣＰＵ６２１１は、ステップＳ６１０にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、バックアップ時に記憶領域を割当てていた箇所についてのみデータコピーを行うため、ステップＳ６１１へ進む。
【０５３３】
第２の制御装置６１１０のＣＰＵ６２１１は、ステップＳ６１１にて、データリストアの前準備として、遠隔コピー管理プログラム６２２２により、動的記憶領域割当てプログラム６１２１に対して、リストア先ボリュームに割当てている記憶領域の解放を要求する。第２の制御装置６１１０のＣＰＵ６２１１は、記憶領域の割り当て解放の後、差分リストア処理であるステップＳ６１２へ進む。
【０５３４】
第２の制御装置６１１０のＣＰＵ６２１１は、ステップＳ６１２にて、遠隔コピー管理プログラム６２２２により、差分管理テーブル６２２５を参照し、更新発生箇所についてデータを転送し、該送信処理に伴う第１のストレージサブシステム６１００での受信処理であるステップＳ６１３へ進む。
【０５３５】
第１の制御装置６１１０のＣＰＵ６１１１は、ステップＳ６１３にて、遠隔コピー管理プログラム６２２２により送信されたデータについて受信を行う。第１の制御装置６１１０のＣＰＵ６１１１は、該受信処理において、データの書き込みが行われたものと同等として記憶領域の割り当てを伴うデータの格納を行う。本処理完了に伴い、リストア完了となる。
【０５３６】
このようにして、記憶システム６０００では、記憶領域の割り当てがないものとしてバックアップ元ボリュームからバックアップ先のボリュームにデータを読み出し、スプリットを完了した後に、差分管理テーブル６１２５より更新の発生を記録し、記憶領域を割り当てた箇所及び割当てられた記憶領域のデータを第２のストレージサブシステム６２００に送信して、記憶領域を割り当てた箇所を差分管理テーブル６２２５に記録する。
【０５３７】
そして、記憶システム６０００では、該バックアップしたデータによりリストアする場合、第２のストレージサブシステム６２００において記録された差分管理テーブル６２２５を参照し、更新発生箇所についてデータを転送して、記憶領域の割り当てを伴うデータの格納を行う。
【０５３８】
これにより、記憶システム６０００では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【０５３９】
（７）第７の実施の形態
（７−１）第７の実施の形態における記憶システムの構成
図３２は、本発明を適用した記憶システムの第７の実施の形態における構成を示す図である。本実施の形態による記憶システム７０００は、第１のストレージサブシステム７１００、バックアップサーバ７７００、ストレージ装置７９００、及びホスト計算機７３００が例えばＳＡＮ等のネットワーク７４００により接続されて構成されている。
【０５４０】
なお、本実施の形態においては、第１のストレージサブシステム７１００、バックアップサーバ７７００、ストレージ装置７９００、及びホスト計算機７３００が同一のネットワーク７４００に接続された構成としてここに示しているが、この構成以外にも、第１のストレージサブシステム７１００及びホスト計算機７３００間のネットワークと、第１のストレージサブシステム７１００、バックアップサーバ７７００、及びストレージ装置７９００のネットワークが分離した構成でも良い。
【０５４１】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をＲＡＩＤやＪＢＯＤ構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【０５４２】
第１のストレージサブシステム７１００は、第１の制御装置７１１０と第１の管理端末７１３０から構成され、ボリュームの作成や各種機能の設定や保守操作を第１の管理端末７１３０により行うことができる。また、各種機能の設定はホスト計算機７３００により行うこともできる。
【０５４３】
また、第１のストレージサブシステム７１００は、所定のネットワーク７５００により外部ストレージ装置７６００と接続されている。
【０５４４】
第１の制御装置７１１０は、当該第１の制御装置７１１０全体を制御する１個以上のＣＰＵ７１１１、ネットワーク７４００との接続のためのネットワークＩ／Ｆ７１１２、ネットワーク７５００との接続のためのネットワークＩ／Ｆ７１１３、第１の管理端末７１３０との接続のためのＮＩＣ７１１４、複数のハードディスクドライブ等でなり、当該第１の制御装置７１１０の各種設定情報やプログラム等が格納されていると共に、ホスト計算機７３００から送信されるデータが格納される内部ストレージ装置７１１５、及び当該各種設定情報やプログラム等が展開されるメモリ７１１６から構成されている。
【０５４５】
メモリ７１１６には、ボリューム管理プログラム７１２０、動的記憶領域割当てプログラム７１２１、及び記憶領域管理テーブル７１２３が展開されている。このボリューム管理プログラム７１２０、及び動的記憶領域割当てプログラム７１２１は、ＣＰＵ７１１１によって実行されるプログラムである。
【０５４６】
第１の管理端末７１３０は、当該第１の管理端末７１３０全体を制御する１個以上のＣＰＵ７１３１、当該第１の制御装置７１１０の各種設定情報やプログラム等が格納されている記憶装置７１３２、各種設定情報やプログラム等が展開されるメモリ７１３３及び第１の制御装置７１１０との接続のためのＮＩＣ７１３４から構成されている。
【０５４７】
一方、バックアップサーバ７７００は、当該バックアップサーバ７７００全体を制御する１個以上のＣＰＵ７７０１、ネットワーク７４００との接続のためのネットワークＩ／Ｆ７７０２、ホスト計算機７３００との接続のためのＮＩＣ７７０３、テープデバイス７８００との接続のためのネットワークＩ／Ｆ７７０４、複数のハードディスクドライブ等でなり、当該第バックアップサーバ７７００の各種設定情報やプログラム等が格納されていると共に、ホスト計算機７３００や第１のストレージサブシステム７１００から送信されるデータが格納される内部ストレージ装置７７０５、及び当該各種設定情報やプログラム等が展開されるメモリ７７０６から構成されている。
【０５４８】
メモリ７７０６には、バックアッププログラム７７１０、及びバックアップ記憶テーブル７７１１が展開されている。このバックアッププログラム７７１０は、ＣＰＵ７７０１によって実行されるプログラムである。
【０５４９】
他方、ホスト計算機７３００は、ＣＰＵ７３０１及びネットワーク７４００との接続のためのネットワークＩ／Ｆ７３０２を有するコンピュータ装置であり、例えばＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）をＯＳとするサーバなどから構成される。また、ホスト計算機７３００は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機７３００は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【０５５０】
この場合、第１のストレージサブシステム７１００のボリュームの管理は、ストレージ制御装置７１１０のメモリ７１１６に格納されているボリューム管理プログラム７１２０がＣＰＵ７１１１に実行されることにより動作する。
【０５５１】
第１のストレージサブシステム７１００は、外部ストレージ装置７６００を内部ストレージ装置７１１５と同様に扱い、ホスト計算機７３００に提供するボリュームを構成するストレージ装置としても良い。また、第１のストレージサブシステム７１００は、内部ストレージ装置７１１５を持たず、外部ストレージ装置７６００のみでボリュームをホスト計算機７３００に対して提供しても良い。なお、外部ストレージ装置７６００は、他のストレージサブシステムが提供するボリュームであっても良い。
【０５５２】
第１のストレージサブシステム７１００は、ボリュームを提供する場合、ホスト計算機７３００によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置７１１５及び外部ストレージ装置７６００の物理デバイス（ハードディスクドライブ等）の特定領域を指す。
【０５５３】
動的記憶領域割り当て機能は、メモリ７１１６に格納されるボリューム管理プログラム７１２０及び動的記憶領域割当てプログラム７１２１がＣＰＵ７１１１に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム７１２１は、記憶領域管理テーブル７１２３に格納された情報を基に動作する。
【０５５４】
この動的記憶領域割り当て機能では、ホスト計算機７３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム７１２１により、記憶領域管理テーブル７１２３を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル７１２３に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【０５５５】
また、動的記憶領域割り当て機能では、ホスト計算機７３００からの書き込み要求を受けたときに、動的記憶領域割当てプログラム７１２１により、記憶領域管理テーブル７１２３を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル７１２３に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【０５５６】
さらに、動的記憶領域割り当て機能では、ホスト計算機７３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム７１２０により、記憶領域管理テーブル７１２３を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「０」等の予め決められたパターンをホスト計算機７３００に対して送信する。
【０５５７】
さらに、動的記憶領域割り当て機能では、ホスト計算機７３００からの読み出し要求を受けたときに、動的記憶領域割当てプログラム７１２０により、記憶領域管理テーブル７１２３を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル７１２３に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機７３００に対して送信する。
【０５５８】
第１のストレージサブシステム７１００は、ホスト計算機７３００より任意のボリュームについて情報取得の要求があったとき、ボリューム管理プログラム７１２０において、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該情報取得の要求に対する応答のメッセージの中に、その情報を付与して返信することができる。
【０５５９】
なお、第１のストレージサブシステム７１００は、動的記憶領域割り当て機能の使用中の情報をホスト計算機７３００に返信できなくとも、対象のボリュームを設定した第１のストレージサブシステム７１００の管理者や管理ソフトウェア等がバックアップサーバ７７００に対して動的記憶領域割り当て機能の使用中の情報を送信すれば良い。
【０５６０】
第1のストレージサブシステム７１００は、ホスト計算機７３００から任意のボリュームについてバックアップの要求があったとき、ボリューム管理プログラム７１２０により、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該ボリュームに対して、バックアップ元データ格納ボリューム（以下、バックアップボリュームと呼ぶ）を別途確保する機能を有する。ここで、バックアップボリュームは、既存のボリュームを指定しても、新規にボリューム管理プログラム７１２０がボリュームを作成しても良い。
【０５６１】
該バックアップボリュームは、対応する動的記憶領域割り当て機能を使用するボリューム内の記憶領域の割り当てがないデータ領域を除外し、記憶領域を割当てたデータ領域を集約したデータを保有する。そのため、該バックアップボリューム容量は、対応する動的記憶領域割り当て機能を使用するボリューム容量以下となる。
【０５６２】
（７−２）第７の実施の形態におけるバックアップ及びリストアの制御方式
以下、本実施の形態における第１のストレージサブシステム７１００からバックアップサーバ７７００を介したテープデバイス７８００に対するバックアップの制御方式について説明を行う。
【０５６３】
ここでは、バックアップ先の物理デバイスを、ストレージサブシステム７１００より直接データ転送をできるネットワーク７８００とは独立したネットワーク上にあるストレージ装置７５００として説明を行うが、バックアップ先の物理デバイスがストレージサブシステム７１００より直接データ転送をできるネットワーク７８００に接続されたストレージ装置７９００であっても動作は同じである。
【０５６４】
この記憶システム７０００では、第１のストレージサブシステム７１００の動的記憶領域割り当て機能を使用したボリュームから、動的記憶領域割り当て機能とは関係のないバックアップサーバ７７００が管理するストレージ装置へのバックアップを行う。
【０５６５】
ただし、バックアップを制御するバックアップサーバ７７００では、バックアップ元ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。
【０５６６】
バックアップサーバ７７００のＣＰＵ７７０１は、バックアップ元ボリューム内のデータのバックアップに先立ち、第１のストレージサブシステム７１００に対して、対象ボリュームに対する記憶領域を割当てた箇所を特定するための情報のバックアップを要求する。これは動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【０５６７】
該バックアップ要求を受けた第１の制御装置７１１０のＣＰＵ７１１１は、論理ボリューム管理プログラム７１２０に通知を行い、それに伴いボリューム管理プログラム７１２０により、動的記憶領域割当てプログラム７１２１を起動する。
【０５６８】
起動された動的記憶領域割当てプログラム７１２１は、記憶領域管理テーブル７１２３を参照し、指定されたバックアップ対象の動的記憶領域割り当て機能を使用するボリュームに対して、割当てた記憶領域の合計容量をボリューム管理プログラム７１２０に通知する。
【０５６９】
記憶領域の合計容量を取得したボリューム管理プログラム７１２０は、記憶領域の合計容量と同容量を持つ既存ボリュームを指定してバックアップボリュームとする。ボリューム管理プログラム７１２０は、該当するボリュームが存在しない場合や、使用不可能である場合には記憶領域の合計容量と同容量を持つ新規ボリュームを作成し、該ボリュームをバックアップボリュームとする。
【０５７０】
ボリューム管理プログラム７１２０は、バックアップボリュームの定義後、該バックアップボリュームに関する情報をバックアップサーバ７７００に通知する。
【０５７１】
また、ボリューム管理プログラム７１２０は、バックアップボリュームに関する情報に併せて、バックアップ対象の動的記憶領域割り当て機能を使用するボリュームに対して記憶領域を割当てていたデータ領域を特定する情報（以下、割り当てビットマップと呼ぶ）を通知する。
【０５７２】
バックアップサーバ７７００のＣＰＵ７７０１は、通知されたバックアップボリュームに応じてバックアップ先の物理デバイスであるテープデバイス７８００を用意し、バックアップボリュームからデータを読み出し、テープデバイス７８００に書き込みを行う。
【０５７３】
加えて、バックアップサーバ７７００のＣＰＵ７７０１は、メモリ７７０６内にバックアップ記憶領域テーブル７７１１を設け、ここに第１のストレージサブシステム７１００から通知された割り当てビットマップを保存する。
【０５７４】
なお、バックアップ記憶領域テーブル７７１１は、メモリ７７０６以外にも記憶装置７７０５、テープデバイス７８００、ストレージ装置７９００等のバックアップサーバ７７００からアクセス可能なデータ記憶装置に保存しても良い。バックアップボリュームのデータと割り当てビットマップの保存完了をもって、バックアップ処理は完了となる。
【０５７５】
次に、前記のバックアップデータを元とする、バックアップサーバ７７００を介したテープデバイス７８００から第１のストレージサブシステム７１００へのデータリストア制御方式について説明を行う。
【０５７６】
ここでは、リストア元の物理デバイスを、ストレージサブシステム７１００より直接データ転送をできるネットワーク７８００とは独立したネットワーク上にあるテープデバイス７８００として説明を行うが、リストア元の物理デバイスが第１のストレージサブシステム７１００から直接データ転送をできるネットワーク７４００に接続されたストレージ装置７９００であっても動作は同じである。
【０５７７】
この記憶システム７０００では、動的記憶領域割り当て機能とは関係のない、バックアップサーバ７７００が管理するテープデバイス７８００から、第１のストレージサブシステム７１００の動的記憶領域割り当て機能を使用したボリュームへのリストアを行う。
【０５７８】
ただし、リストアを制御するバックアップサーバ７７００では、リストア先ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。また、バックアップ時にバックアップ元ボリュームが動的記憶領域割り当て機能を使用していたことは、バックアップ時に取得した割当てビットマップ有無等の情報を基に判断可能である。
【０５７９】
バックアッププログラム７７１０は、リストア開始時に、第１のストレージサブシステム７１００のリストア先ボリュームを指定して初期化を要求し、該ボリュームに割当てられている全記憶領域の解放を行う。
【０５８０】
また、バックアッププログラム７７１０は、全記憶領域の解放後、割当てビットマップを参照し、記憶領域が割当てられていた箇所についてのみテープデバイス７８００に格納されているリストア元のデータを送信する。全ての、記憶領域が割当てられていた箇所のリストア元データ送信完了に伴い、本リストア処理は完了となる。
【０５８１】
図３３は、第１のストレージ制御装置７１１０が管理するボリュームの構成を示している。
【０５８２】
第１のストレージサブシステム７１００の第１の制御装置７１１０内には、ホスト計算機７３００がアクセス対象とするボリュームである動的記憶領域割り当て機能を使用する動的記憶領域割り当てボリューム７１４０と、バックアップサーバ７７００がバックアップ対象とするボリュームであるバックアップボリューム７１６０があり、これらのボリューム内のデータはプールボリューム７１５１内の任意のデータ領域を記憶領域として割当て、該記憶領域に対して格納する。
【０５８３】
記憶領域管理テーブル７１２３は、動的記憶領域割り当てボリューム７１４０、及びバックアップボリューム７１６０とプールボリューム７１５１内の割当てた記憶領域の対応関係を格納する。
【０５８４】
図３４は、動的記憶領域割り当てボリューム７１４０とバックアップボリューム７１６０間での、プールボリューム７１５１内の割当てた記憶領域の対応関係及び、該対応関係の情報を格納する記憶領域管理テーブル７１２３の構造を図示している。
【０５８５】
記憶領域管理テーブル７１２３は、対象の動的記憶領域割り当てボリューム７１４０内の任意のデータ領域に付随するプールボリューム７１５１内の記憶領域を示す記憶領域ポインタを保持している。
【０５８６】
ここで、動的記憶領域割り当てボリューム７１４０のデータ領域に対応する記憶領域管理テーブル７１２３内情報である記憶領域ポインタＰ７１５１は、例えば、プールボリューム７１５１内の記憶領域Ａ７１４１が割り当てられているので、当該プールボリューム７１５１内の記憶領域Ａ７１４１を指し示すようになされている。
【０５８７】
また、記憶領域ポインタＰ７１５３は、例えば、プールボリューム７１５１内の記憶領域Ａ７１４３が割り当てられているので、当該プールボリューム７１５１内の記憶領域Ａ７１４３を指し示すようになされている。
【０５８８】
また、動的記憶領域割り当てボリューム７１４０のデータ領域に対応する記憶領域管理テーブル７１２３内情報である記憶領域ポインタＰ７１５２は、例えば、プールボリューム７１５１内の記憶領域が割り当てられていないので、プールボリューム７１５１の何れの記憶領域も指し示していない。
【０５８９】
一方、記憶領域管理テーブル７１２３は、動的記憶領域割り当てボリューム７１４０と対応して作成したバックアップボリューム７１６０にも、動的記憶領域割り当てボリューム７１４０と同様に、任意のデータ領域に付随するプールボリューム７１５１内の記憶領域を示す記憶領域ポインタを保持している。
【０５９０】
ただし、バックアップボリューム７１６０には、記憶領域ポインタＰ７１５２のように、プールボリューム７１５１内の記憶領域を指し示さないデータ領域が存在しない。
【０５９１】
ここで、バックアップボリューム７１６０のデータ領域に対応する記憶領域管理テーブル７１２３内情報である記憶領域ポインタＰ７１６１は、例えば、プールボリューム７１５１内の記憶領域Ａ７１４１が割り当てられているので、当該プールボリューム７１５１内の記憶領域Ｐ７１４１を指し示すようになされている。
【０５９２】
また、記憶領域ポインタＰ７１６３は、例えば、プールボリューム７１５１内の記憶領域Ａ７１４３が割り当てられているので、当該プールボリューム７１５１内の記憶領域Ｐ７１４３を指し示している。
【０５９３】
これにより、記憶領域管理テーブル７１２３の記憶領域ポインタＰ７１６１及び記憶領域ポインタＰ７１５１、並びに記憶領域管理テーブル７１２３の記憶領域ポインタＰ７１６３及び記憶領域ポインタＰ７１５３は、プールボリューム７１５１内の同一の記憶領域を共有することができるようになされている。
【０５９４】
このようにして、記憶システム７０００では、該記憶領域管理テーブル７１２３のテーブル構造により、バックアップボリューム７１６０に対する読み出しを行うと、動的記憶領域割り当てボリューム７１４０の記憶領域を割当てたデータ領域に格納したデータのみを取得する。
【０５９５】
これにより、記憶システム７０００では、バックアップ時のデータ格納先の容量を削減することが可能である。
【０５９６】
また、これにより、記憶システム４０００では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【産業上の利用可能性】
【０５９７】
本発明は、ストレージサブシステム間においてボリュームを複製し、当該ボリュームを復元する記憶システムのほか、この他種々の複製したボリュームの復元を伴う機器に適用することができる。
【図面の簡単な説明】
【０５９８】
【図１】第１の実施の形態における全体構成を示す図である。
【図２】第１の実施の形態における記憶領域割当てを管理するテーブルの構造を示した図である。
【図３】第１の実施の形態における対象バックアップデータの図２を基とした記憶領域を割当てた領域の特定を可能とするテーブルの構造を示した図である。
【図４】第１の実施の形態におけるバックアップ処理のシステム全体の動作を示すフローチャートである。
【図５】第１の実施の形態におけるリストア処理のシステム全体の動作を示すフローチャートである。
【図６】第１の実施の形態におけるリストア処理の第１の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図７】第１の実施の形態におけるリストア処理の第２の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図８】第１の実施の形態におけるリストア処理のデータ書き込み制御の動作を示すフローチャートである。
【図９】第２の実施の形態における全体構成を示す図である。
【図１０】第２の実施の形態におけるバックアップ処理のシステム全体の動作を示すフローチャートである。
【図１１】第２の実施の形態におけるリストア処理の第１の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図１２】第２の実施の形態におけるリストア処理の第２の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図１３】第２の実施の形態におけるリストア処理のデータ書き込み制御の動作を示すフローチャートである。
【図１４】第３の実施の形態における全体構成を示す図である。
【図１５】第３の実施の形態における対象バックアップデータの記憶領域を割当てた領域の特定を可能とするテーブルの構造を示した図である
【図１６】第３の実施の形態におけるＩＤを用いたバックアップ処理のシステム全体の動作を示すフローチャートである。
【図１７】第３の実施の形態における割当てビットマップを用いたバックアップ処理のシステム全体の動作を示すフローチャートである。
【図１８】第３の実施の形態におけるＩＤを用いたリストア処理のシステム全体の動作を示すフローチャートである。
【図１９】第３の実施の形態における割当てビットマップを用いたリストア処理のシステム全体の動作を示すフローチャートである。
【図２０】第３の実施の形態におけるリストア処理の第１の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図２１】第３の実施の形態におけるリストア処理の第２の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図２２】第３の実施の形態におけるリストア処理のデータ書き込み制御の動作を示すフローチャートである。
【図２３】第４の実施の形態における全体構成を示す図である。
【図２４】第４の実施の形態におけるバックアップ処理のシステム全体の動作を示すフローチャートである。
【図２５】第４の実施の形態におけるリストア処理のシステム全体の動作を示すフローチャートである。
【図２６】第４の実施の形態におけるリストア処理の書き込み制御の動作を示すフローチャートである。
【図２７】第５の実施の形態における全体構成を示す図である。
【図２８】第５の実施の形態におけるボリューム構成を示す図である。
【図２９】第６の実施の形態における全体構成を示す図である。
【図３０】第６の実施の形態における、バックアップ処理のシステム全体の動作を示すフローチャートである。
【図３１】第６の実施の形態におけるリストア処理のシステム全体の動作を示すフローチャートである。
【図３２】第７の実施の形態における全体構成を示す図である。
【図３３】第７の実施の形態におけるバックアップ対象のボリュームとバックアップ元のボリューム及び、データ格納先ボリュームの構成を示す図である。
【図３４】第７の実施の形態におけるテーブル構成を示す図である。
【符号の説明】
【０５９９】
１１００、２１００、３１００、４１００、５１００、６１００、７１００……第１のストレージサブシステム、１２００、２２００、５２００、６２００……第２のストレージサブシステム、１３００、２３００、３３００、４３００、５３００、６３００、７３００……ホスト計算機、３７００、４７００、７７００……バックアップサーバ、１１２１、２１２１、２２２１、３１２１、４１２１、５１２１、６１２１……動的記憶領域割り当てプログラム、１１２２、１２２２、２１２２、２２２２、５１２２、５２２２、６１２２、６２２２……遠隔コピー管理プログラム、１１２３、２１２３、２２２３、３１２３、４１２３、５１２３、６１２３……記憶領域管理テーブル、１１２４、２２２４、３１２４、４７１１、７７１１……バックアップ記憶領域テーブル、６１２５、６２２５…差分管理テーブル、３８００、４８００……テープデバイス
【図１】
2007199922.tif 000003
【図２】
2007199922.tif 000004
【図３】
2007199922.tif 000005
【図４】
2007199922.tif 000006
【図５】
2007199922.tif 000007
【図６】
2007199922.tif 000008
【図７】
2007199922.tif 000009
【図８】
2007199922.tif 000010
【図９】
2007199922.tif 000011
【図１０】
2007199922.tif 000012
【図１１】
2007199922.tif 000013
【図１２】
2007199922.tif 000014
【図１３】
2007199922.tif 000015
【図１４】
2007199922.tif 000016
【図１５】
2007199922.tif 000017
【図１６】
2007199922.tif 000018
【図１７】
2007199922.tif 000019
【図１８】
2007199922.tif 000020
【図１９】
2007199922.tif 000021
【図２０】
2007199922.tif 000022
【図２１】
2007199922.tif 000023
【図２２】
2007199922.tif 000024
【図２３】
2007199922.tif 000025
【図２４】
2007199922.tif 000026
【図２５】
2007199922.tif 000027
【図２６】
2007199922.tif 000028
【図２７】
2007199922.tif 000029
【図２８】
2007199922.tif 000030
【図２９】
2007199922.tif 000031
【図３０】
2007199922.tif 000032
【図３１】
2007199922.tif 000033
【図３２】
2007199922.tif 000034
【図３３】
2007199922.tif 000035
【図３４】
2007199922.tif 000036