説明

記憶システム及びそのデータ復元方法

【課題】本発明は、記憶領域の使用を効率化し得る記憶システムを提案するものである。
【解決手段】所定の領域ごとに動的に第1の記憶領域が割り当てられる第1の論理ボリュームを有し、ホスト計算機から送信されるデータを第1の記憶領域に記憶する第1のストレージサブシステムと、第1の論理ボリュームをバックアップするための第2の記憶領域を有する第2のストレージサブシステムとを有する記憶システムであって、第1の論理ボリュームの領域ごとに割り当てられる第1の記憶領域の有無を管理する第1の管理部と、第1の論理ボリュームの領域に割り当てられた第1の記憶領域に記憶されているデータを、第2のストレージサブシステムに転送する転送部と、第1の管理部に管理された第1の記憶領域の有無、及び又は第2のストレージサブシステムから転送されたデータに基づいて、第1の論理ボリュームを復元する復元部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶システム及びそのデータ復元方法に関し、例えば、データを格納するボリュームの記憶領域を動的に割当てる機能を有するストレージサブシステムにおけるバックアップ、及びバックアップしたデータを基にリストアする技術に適用して好適なものである。
【背景技術】
【0002】
従来、データを格納するボリュームの記憶領域を動的に割当てる機能を有するストレージサブシステムが知られており、これに関する種々の技術が提案されている。
【0003】
例えば、特許文献1では、ストレージサブシステムと、ストレージサブシステム内の記憶領域を仮想ボリュームに動的に割当てるスイッチ装置とを有する記憶システムについて開示されている。この場合、記憶システムでは、スイッチ装置において、ホスト計算機からの書き込み要求を受信した際に、仮想ボリュームに対して記憶領域を動的に割当てると共に、仮想ボリュームと、該仮想ボリュームに割当てられているストレージサブシステム内の記憶領域の対応関係を記録したアクセス変換テーブルを更新する。
【0004】
また、この記憶システムでは、スイッチ装置において、アクセス変換テーブルを更新して、仮想ボリュームに割り当てられている記憶領域のうち、前記ホスト計算機に使用されなくなった記憶領域の割り当てを解放すると共に、アクセス変換テーブルを更新する。
【0005】
一方、特許文献2では、遠隔のストレージサブシステムに対し、データを転送することで複製(バックアップ)し、ストレージサブシステムにおけるデータ消失等の災害時に、該バックアップしたデータを戻すことで、ストレージサブシステムを復元(リストア)するリモートコピー機能を有する記憶システムについて開示されている。この場合、記憶システムでは、遠隔のストレージサブシステム間で同期若しくは非同期でデータの転送を行い、この進捗を管理する。
【0006】
また、この記憶システムでは、データをバックアップして長期的に保存する場合、バックアップを制御するために設置されたサーバが管理するテープ装置のテープライブラリに対して、ストレージサブシステムの全領域のデータを格納する。
【特許文献1】特開2005-11316号公報
【特許文献2】特開2003-122509号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、前述の記憶領域を動的に割当てる機能と、リモートコピー機能とを組み合わせた場合、バックアップされたデータをリストアするときに、リストア先のストレージサブシステムの仮想ボリュームの全領域にデータの書き込みが発生することとなる。
【0008】
特に、バックアップ先のストレージサブシステムが、テープ装置や旧機種などであり、記憶領域を動的に割当てる機能を有さない場合、バックアップしたときに、割当てた記憶領域に関する情報が失われているため、これに伴って、リストアするときに、ストレージサブシステムの仮想ボリュームに不要な記憶領域を割当てることから、記憶領域を無駄に浪費してしまうという問題が生じ、この結果、ストレージサブシステムの記憶領域を効率的に使用することができないこととなる。
【0009】
本発明は以上の点を考慮してなされたもので、記憶領域の使用を効率化し得る記憶システム及びそのデータ復元方法を提案するものである。
【課題を解決するための手段】
【0010】
かかる課題を解決するために本発明においては、所定の領域ごとに動的に第1の記憶領域が割り当てられる第1の論理ボリュームを有し、ホスト計算機から送信されるデータを第1の記憶領域に記憶する第1のストレージサブシステムと、第1の論理ボリュームをバックアップするための第2の記憶領域を有する第2のストレージサブシステムとを有する記憶システムであって、第1のストレージサブシステムは、第1の論理ボリュームの領域ごとに割り当てられる第1の記憶領域の有無を管理する第1の管理部と、第1の論理ボリュームの領域に割り当てられた第1の記憶領域に記憶されているデータを、第2のストレージサブシステムに転送する転送部と、第1の管理部に管理された第1の記憶領域の有無、及び又は第2のストレージサブシステムから転送されたデータに基づいて、第1の論理ボリュームを復元する復元部とを備えるようにした。
【0011】
従って、第1の論理ボリュームを復元する際に、第1の論理ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的に第1の論理ボリュームに記憶領域を割当てることができる。
【0012】
また、本発明においては、所定の領域ごとに動的に第1の記憶領域が割り当てられる第1の論理ボリュームを有し、ホスト計算機から送信されるデータを第1の記憶領域に記憶する第1のストレージサブシステムと、第1の論理ボリュームをバックアップするための第2の記憶領域を有する第2のストレージサブシステムとを有する記憶システムのデータ復元方法であって、第1の論理ボリュームの領域ごとに割り当てられる第1の記憶領域の有無を管理する第1のステップと、第1の論理ボリュームの領域に割り当てられた第1の記憶領域に記憶されているデータを、第2のストレージサブシステムに転送する第2のステップと、第1のステップにおいて管理した第1の記憶領域の有無、及び又は第2のストレージサブシステムから転送されたデータに基づいて、第1の論理ボリュームを復元する第3のステップとを備えるようにした。
【0013】
従って、第1の論理ボリュームを復元する際に、第1の論理ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的に第1の論理ボリュームに記憶領域を割当てることができる。
【発明の効果】
【0014】
本発明によれば、第1の論理ボリュームの領域ごとに割り当てられる第1の記憶領域の有無を管理し、第1の論理ボリュームの領域に割り当てられた第1の記憶領域に記憶されているデータを、第2のストレージサブシステムに転送した後に、第1のステップにおいて管理した第1の記憶領域の有無、及び又は第2のストレージサブシステムから転送されたデータに基づいて、第1の論理ボリュームを復元することにより、第1の論理ボリュームを復元する際に、第1の論理ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的に第1の論理ボリュームに記憶領域を割当てることができ、かくして、記憶領域の使用を効率化し得る記憶システム及びそのデータ復元方法を実現できる。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施形態を、図面を用いて説明する。なお、本発明は以下に説明する実施形態に限定されるものではない。
【0016】
(1)第1の実施の形態
(1−1)第1の実施の形態における記憶システムの構成
図1は、本発明を適用した記憶システムの第1の実施の形態における構成を示す図である。本実施の形態による記憶システム1000は、第1のストレージサブシステム1100、第2のストレージサブシステム1200及びホスト計算機1300が例えばSAN(Storage Area Network)等のネットワーク1400により接続されて構成されている。
【0017】
なお、本実施の形態においては、第1のストレージサブシステム1100、第2のストレージサブシステム1200及びホスト計算機1300が同一のネットワーク1400に接続された構成としてここに示しているが、この構成以外にも、第1のストレージサブシステム1100及びホスト計算機1300間のネットワークと、第1のストレージサブシステム1100及び第2のストレージサブシステム1200間のネットワークが分離した構成でも良い。
【0018】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をRAID(Redundant Array of Independent Disks)やJBOD(Just Bunch Of Disks)構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【0019】
第1のストレージサブシステム1100は、第1の制御装置1110と第1の管理端末1130から構成され、ボリュームの作成や各種機能の設定や保守操作を第1の管理端末1130により行うことができる。また、各種機能の設定はホスト計算機1300により行うこともできる。
【0020】
また、第1のストレージサブシステム1100は、所定のネットワーク1500により外部ストレージ装置1600と接続されている。
【0021】
第1の制御装置1110は、当該第1の制御装置1110全体を制御する1個以上のCPU(Central Processing Unit)1111、ネットワーク1400との接続のためのネットワークI/F(Interface)1112、ネットワーク1500との接続のためのネットワークI/F1113、第1の管理端末1130との接続のためのNIC(Network Interface Card)1114、複数のハードディスクドライブ等でなり、当該第1の制御装置1110の各種設定情報やプログラム等が格納されていると共に、ホスト計算機1300から送信されるデータが格納される内部ストレージ装置1115、及び当該各種設定情報やプログラム等が展開されるメモリ1116から構成されている。
【0022】
メモリ1116には、ボリューム管理プログラム1120、動的記憶領域割当てプログラム1121、遠隔コピー管理プログラム1122、記憶領域管理テーブル1123及びバックアップ記憶領域テーブル1124が展開されている。このボリューム管理プログラム1120、動的記憶領域割当てプログラム1121、遠隔コピー管理プログラム1122は、CPU1111によって実行されるプログラムである。
【0023】
第1の管理端末1130は、当該第1の管理端末1130全体を制御する1個以上のCPU1131、当該第1の制御装置1110の各種設定情報やプログラム等が格納されている記憶装置1132、各種設定情報やプログラム等が展開されるメモリ1133及び第1の制御装置1110との接続のためのNIC1134から構成されている。
【0024】
一方、第2のストレージサブシステム1200は、第2の制御装置1210と第2の管理端末1230から構成され、ボリュームの作成や各種機能の設定や保守操作を第2の管理端末1230により行うことができる。
【0025】
第2の制御装置1210は、ネットワーク1500との接続のためのネットワークI/Fが設けられていないこと、及びメモリ1116に動的記憶領域割当てプログラム、記憶領域管理テーブル及びバックアップ記憶領域テーブルが展開されていない(設けられていない)ことを除いて、第1の制御装置1110と同様に構成されており、CPU1211、ネットワークI/F1212、NIC1214、内部ストレージ装置1215及びメモリ1216から構成されている。
【0026】
メモリ1216には、ボリューム管理プログラム1220、遠隔コピー管理プログラム1221が展開されている。このボリューム管理プログラム1220、遠隔コピー管理プログラム1221は、CPU1211によって実行されるプログラムである。
【0027】
第2の管理端末1230は、第2の管理端末1230と同様に構成されており、CPU1231、記憶装置1232、メモリ1233及びNIC1234から構成されている。
【0028】
他方、ホスト計算機1300は、CPU1301及びネットワーク1400との接続のためのネットワークI/F1302を有するコンピュータ装置であり、例えばUNIX(登録商標)やWindows(登録商標)をOS(Operation System)とするサーバなどから構成される。また、ホスト計算機1300は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機1300は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【0029】
この場合、第1のストレージサブシステム1100のボリュームの管理は、ストレージ制御装置1110のメモリ1116に格納されているボリューム管理プログラム1120がCPU1111に実行されることにより動作する。
【0030】
第1のストレージサブシステム1100は、外部ストレージ装置1600を内部ストレージ装置1115と同様に扱い、ホスト計算機1300に提供するボリュームを構成するストレージ装置としても良い。また、第1のストレージサブシステム1100は、内部ストレージ装置1115を持たず、外部ストレージ装置1600のみでボリュームをホスト計算機1300に対して提供しても良い。なお、外部ストレージ装置1600は、他のストレージサブシステムが提供するボリュームであっても良い。
【0031】
第1のストレージサブシステム1100は、ボリュームを提供する場合、ホスト計算機1300によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置1115及び外部ストレージ装置1600の物理デバイス(ハードディスクドライブ等)の特定領域を指す。
【0032】
動的記憶領域割り当て機能は、メモリ1116に格納されるボリューム管理プログラム1120及び動的記憶領域割当てプログラム1121がCPU1111に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム1121は、記憶領域管理テーブル1123に格納された情報を基に動作する。
【0033】
この動的記憶領域割り当て機能では、ホスト計算機1300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム1121により、記憶領域管理テーブル1123を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル1123に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【0034】
また、動的記憶領域割り当て機能では、ホスト計算機1300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム1121により、記憶領域管理テーブル1123を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル1123に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【0035】
さらに、動的記憶領域割り当て機能では、ホスト計算機1300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム1120により、記憶領域管理テーブル1123を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「0」等の予め決められたパターンをホスト計算機1300に対して送信する。
【0036】
さらに、動的記憶領域割り当て機能では、ホスト計算機1300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム1120により、記憶領域管理テーブル1123を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル1123に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機1300に対して送信する。
【0037】
第2のストレージサブシステム1200は、動的記憶領域割り当て機能を有さない、若しくは動的記憶領域割り当て機能を有していてもその機能が動作していない、若しくは動的記憶領域割り当て機能を有していても、第1のストレージサブシステム1100と動的記憶領域割り当て機能について連携を行うことができないストレージサブシステムである。
【0038】
なお、第2のストレージサブシステム1200が動的記憶領域割り当て機能を有している場合でも、本実施の形態を用いることができるが、その場合には本実施の形態以外の方法を使用するのが望ましい。
【0039】
第1のストレージサブシステム1100及び第2のストレージサブシステム1200は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【0040】
ここで、第1のストレージサブシステム1100のボリュームを複製元とし、第2のストレージサブシステム1200のボリュームを複製先とした場合、遠隔コピー管理プログラム1122がCPU1111に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0041】
逆に、第2のストレージサブシステム1200のボリュームを複製元とし、第1のストレージサブシステム1100のボリュームを複製先とした場合、遠隔コピー管理プログラム1222がCPU1211に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0042】
なお、第1のストレージサブシステム1100のボリュームを複製元とし、第2のストレージサブシステム1200のボリュームを複製先とした場合、第1のストレージサブシステム1100のボリュームをバックアップ元ボリューム、第2のストレージサブシステム1200のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【0043】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【0044】
また、バックアップを行った後に、第2のストレージサブシステム1200のボリュームを複製元、第1のストレージサブシステム1100のボリュームを複製先とした場合、第2のストレージサブシステム1200のボリュームをリストア元ボリューム、第1のストレージサブシステム1100のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【0045】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【0046】
(1−2)第1の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第1のストレージサブシステム1100から第2のストレージサブシステム1200に対するバックアップの制御方式について説明を行う。
【0047】
この記憶システム1000では、第1のストレージサブシステム1100の動的記憶領域割り当て機能を使用するボリュームにより、第2のストレージサブシステム1200のボリュームに対してリモートコピー機能によるバックアップを行う。
【0048】
第1のストレージサブシステム1100の動的記憶領域割り当て機能を使用するボリュームと第2のストレージサブシステム1200のボリュームとの間のリモートコピー機能によるバックアップは、第1のストレージサブシステム1100側では、ボリューム管理プログラム1120と、遠隔コピー管理プログラム1122と、動的記憶領域割当てプログラム1121とがCPU1111に実行されることにより動作する。
【0049】
一方、第2のストレージサブシステム1200側では、ボリューム管理プログラム1220と、遠隔コピー管理プログラム1222とがCPU1211に実行されることにより動作する。
【0050】
このうち、ボリューム管理プログラム1120及びボリューム管理プログラム1220は、対象のボリュームが動的記憶領域割り当て機能を使用するか否かを管理する。また、遠隔コピー管理プログラム1122及び遠隔コピー管理プログラム1222は、ネットワーク1400を通してバックアップ元ボリュームからバックアップ先ボリュームに対するバックアップを行う。
【0051】
本バックアップは、ホスト計算機1300若しくは第1のストレージサブシステム1100の第1の管理端末1130から、第1の制御装置1110に対してバックアップ要求を発行し、ネットワーク1400を介して第2のストレージサブシステム1200の第2の制御装置1210にバックアップ要求を転送し、第2の制御装置1210が該バックアップ要求を受信した後に開始する。
【0052】
該バックアップ要求は、ホスト計算機1300若しくは第2の管理端末1220から、第2の制御装置1210に対して発行しても良い。この場合、本バックアップは、ネットワーク1400を介して第2のストレージサブシステム1200のストレージ制御装置1210より第1のストレージサブシステム1100のストレージ制御装置1110にバックアップ要求を転送し、第1の制御装置1110が該バックアップ要求を受信した後に開始する。
【0053】
この場合、遠隔コピー管理プログラム1122は、対象のボリューム全体のデータを送信することでバックアップを行うが、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームである場合、記憶領域管理テーブル1123を基に、前述の動的記憶領域割り当て機能を使用するボリュームに対する読み出し処理に従ってボリューム全体を転送する。
【0054】
このとき、第1のストレージサブシステム1100の遠隔コピー管理プログラム1122は、動的記憶領域割当てプログラム1121に対して、対象のボリュームの記憶領域を割当てた箇所についての情報のバックアップを行うように要求する。
【0055】
該バックアップ要求を受けた動的記憶領域割当てプログラム1121は、記憶領域管理テーブル1123を参照し、記憶領域を割当てた箇所についての情報をビットマップ化してバックアップ記憶領域テーブル1124に保存する。
【0056】
バックアップ記憶領域テーブル1124の格納先は、メモリ1116や内部ストレージ装置1115や外部ストレージ装置1600等、第1の制御装置1110より参照可能なデータ保存可能箇所であるならば記憶装置の種類を問わない。
【0057】
また、第1の管理端末1130内のメモリ1133や記憶装置1132等の第1の制御装置1110からの参照要求に対する応答が可能である外部管理端末内の記憶装置であっても良い。
【0058】
以下に、本実施の形態における前述のバックアップを行ったデータを元とした第2のストレージサブシステム1200から、第1のストレージサブシステム1100に対するリストアの制御方式について説明を行う。
【0059】
第1のストレージサブシステム1100のボリュームデータ消失等の災害が発生した場合、ホスト計算機1300やストレージ管理端末1120やストレージ管理端末1220は、バックアップ先ボリュームのデータをバックアップ元ボリュームに対してコピーするリストア開始を要求する。
【0060】
該リストアは、前述のバックアップ制御のバックアップ元がリストア先に、バックアップ先がリストア元に逆転し、リモートコピー機能におけるバックアップと逆向きの方向にデータを送信する制御である。
【0061】
このとき、遠隔コピー管理プログラム1122は、リストア先が第1のストレージサブシステム1100の動的記憶領域割り当て機能を使用するボリュームであることをボリューム管理プログラム1120が検出した場合、リモートコピー機能によるバックアップと同時に保存した、対象のボリュームの記憶領域を割当てた箇所についての情報を、保存先のストレージサブシステムに格納されたバックアップ記憶領域テーブル1124により取得し、これを基にバックアップ時の記憶領域の割当てを再現するように記憶領域管理テーブル1123を変更する。
【0062】
このとき、記憶領域管理テーブル1123では、必ずしもバックアップ時の記憶領域との対応が復元される必要は無く、対象のボリュームに対してバックアップ時に記憶領域が割当てられていた箇所に対してリストア時に記憶領域が割当てられていて、バックアップ時に記憶領域が割当てられていなかった箇所に対してリストア時に記憶領域が割当てられていないことが保障されれば良い。
【0063】
リストアに伴い、ネットワーク1400を介して遠隔コピー管理プログラム1220から第1の制御装置1110に対して、リストア元ボリュームよりリストア先ボリュームへのボリューム全体のコピーが行われる。
【0064】
データを受信した第1の制御装置1110は、遠隔コピー管理プログラム1122により、動的記憶領域割当てプログラム1121を呼び出し、記憶領域管理テーブル1123を参照して、対象のデータの書き込み箇所に対して、記憶領域が割当てられているならば、受信したデータを該記憶領域に対して書き込み、記憶領域が割当てられていないならば、受信したデータを破棄する。
【0065】
このように記憶システム1000では、記憶領域を割当てた箇所についての情報と、割当てられた記憶領域に格納されたデータを復元することで、第1の制御装置1110の対象のボリュームのデータを復元し、なおかつ、対象のボリュームに対してバックアップ前に割当てていた記憶領域も復元することができる。
【0066】
図2は、記憶領域管理テーブル1123の構造概要を示す図である。記憶領域管理テーブル1123は、ボリュームブロック番号格納欄11231、記憶領域割り当て有無格納欄11232及びデータ記憶領域ID格納欄11233から構成されている。
【0067】
記憶領域管理テーブル1123は、動的記憶領域割り当て機能を使用するボリュームをブロック単位に管理を行い、該ボリュームブロック番号をボリュームブロック番号格納欄11231に格納する。
【0068】
また、記憶領域管理テーブル1123は、ボリュームブロック番号に対する記憶領域の割り当ての有無を、記憶領域割り当て有無格納欄11232に格納する。
【0069】
さらに、記憶領域管理テーブル1123は、対象のボリュームブロック番号に対して記憶領域を割当てているのならば、該ボリュームブロック番号に対して割当てている記憶領域のIDをデータ記憶領域ID格納欄11233に格納する。
【0070】
さらに、記憶領域管理テーブル1123は、対象のボリュームブロック番号に対して記憶領域を割当てていないならば、NULL等を、記憶領域先ID格納欄11233に格納して対象のボリュームブロック番号に対しての記憶領域の割当てが未発生であることを明示する。
【0071】
そして、動的記憶領域割り当て機能は、該ボリュームブロック番号に対して割当てている記憶領域のID及びNULLの情報を元に、記憶領域の割当て有無、及びデータ格納先の情報を取得し動作を行う。
【0072】
図3は、バックアップ記憶領域テーブル1124の構造概要を示す図である。バックアップ記憶領域テーブル1114は、ボリュームブロック番号格納欄11231及び記憶領域割り当て有無格納欄11242から構成されている。
【0073】
バックアップ記憶領域テーブル1124は、バックアップ要求のあった任意の時点における動的記憶領域割り当て機能を使用するボリュームのボリュームブロック番号をボリュームブロック番号格納欄11241に格納すると共に、ボリュームブロック番号に対する記憶領域の割り当ての有無を、記憶領域割り当て有無格納欄11242に格納する。
【0074】
バックアップ記憶領域テーブル1124では、記憶領域管理テーブル1123を基に、記憶領域との対応があるブロックを「割当て有」、記憶領域との対応がないブロックを「割当て無」と見做すことで作成を行うことができる。
【0075】
図4は、リモートコピー機能を用いたバックアップにおける、データ送信元である第1の制御装置1110のCPU1111での、ボリューム管理プログラム1120と、動的記憶領域割当てプログラム1121と、遠隔コピー管理プログラム1122との連携制御方式の動作概要についてのフローチャートを示している。
【0076】
まず、第1の制御装置1110のCPU1111は、ステップS100にて、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム1120を呼び出し、調査を行う。
【0077】
第1の制御装置1110のCPU1111は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、対象のボリューム内の全領域のデータを、全てバックアップ先ボリュームに対して転送するステップS102に進む。本転送処理は、遠隔コピー管理プログラム1120に基づいて行われる。
【0078】
一方、第1の制御装置1110のCPU1111は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、ステップS101に進み、ステップS101にて、記憶領域管理テーブル1123からバックアップ記憶領域テーブル1124を作成する。本テーブル作成処理は、動的記憶領域割当てプログラム1121に基づいて行われる。
【0079】
第1の制御装置1110のCPU1111は、バックアップ記憶領域テーブル1124の作成処理であるステップS101の完了の後、対象のボリューム内の全領域のデータの転送処理であるステップS102に進む。本処理完了に伴い、バックアップ完了となる。
【0080】
なお、第1の制御装置1110のCPU1111は、対象のボリューム全体に対してステップS101完了の後に、ステップS102を行うとしているが、該ボリュームを適当な領域に区切り、ある前述の領域に対してステップS101が完了の後にステップS102を実行し、ステップS102の転送中に次の領域に対してステップS101を行うことで処理性能向上を図っても良い。
【0081】
図5は、リモートコピー機能を用いたバックアップデータからのリストア制御方式の動作概要についてのフローチャートを示している。
【0082】
まず、第1の制御装置1110のCPU1111は、ステップS110にて、リストア先ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム1120を呼び出し、調査を行う。
【0083】
第1の制御装置1110のCPU1111は、ステップS110にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、第2のストレージサブシステム1200において、リストア元ボリュームの全領域のデータを、全てリストア先ボリュームに対して転送するステップS116に進む。本転送処理は、遠隔コピー管理プログラム1222に基づいて行われる。
【0084】
一方、第1の制御装置1110のCPU1111は、ステップS110にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、バックアップ時に、同時に保存したバックアップ記憶領域テーブル1124が保管されているかの調査を行うステップS111へ進む。
【0085】
第1の制御装置1110のCPU1111は、ステップS111にて、バックアップ記憶領域テーブル1124が保管されているかの調査の結果、対象のボリュームに対するバックアップ記憶領域テーブル1124が保管されていないことが判明した場合、バックアップ取得時の記憶領域割当ての状態を復元できないため、リストア元ボリュームの全領域に対するデータを、リストア先ボリュームの全領域に対して書き込む必要がある。このため、リストア先ボリュームの全領域に対し、記憶領域を割当てるステップS114へ進む。
【0086】
一方、第1の制御装置1110のCPU1111は、ステップS111にて、バックアップ記憶領域テーブル1124が保管されているかの調査の結果、対象のボリュームに対するバックアップ記憶領域テーブル1124が保管されていることが判明した場合、バックアップしたデータに対し、第2のストレージサブシステム1200側で更新を行っていないかのチェックを行うため、ステップS112へ進む。
【0087】
リモートコピー機能では、リモートコピー完了後、バックアップ元ボリュームに対する書き込みによる更新箇所を遠隔コピー管理プログラム1122が、バックアップ先ボリュームに対する書き込みによる更新箇所を遠隔コピー管理プログラム1222がそれぞれ差分ビットマップ等を用いて管理している。
【0088】
そのため、第1の制御装置1110のCPU1111は、遠隔コピー管理プログラム1222から、差分ビットマップの状況を通知してもらうことで、ステップS112の判定を行う。
【0089】
第1の制御装置1110のCPU1111は、ステップS112の結果、更新ありと判断した場合、バックアップ記憶領域テーブル1124を保管した時点のバックアップ元ボリュームのデータと、リストア元ボリュームのデータとを異なったデータであると見做す為、保管されているバックアップ記憶領域テーブル1124を用いて管理情報を復元することができない。そのため、第2のストレージサブシステム1200において、リストア元ボリュームの全領域に対するデータを、リストア先ボリューム全領域に対して書き込む必要がある。
【0090】
これにより、第1の制御装置1110のCPU1111は、リストア先ボリュームの全領域に対し、記憶領域を割当てるステップS114へ進む。
【0091】
一方、第1の制御装置1110のCPU1111は、ステップS112の結果、更新なしと判断した場合、バックアップ時の記憶領域割当て状況を復元するステップS113へ進む。
【0092】
なお、第1の制御装置1110のCPU1111は、遠隔コピー管理プログラム1222から、遠隔コピー管理プログラム1122に対し、差分の発生状況が通知されない場合には、差分発生の状況を判断できないため、ステップS114へ進む必要がある。
【0093】
ただし、第1の制御装置1110のCPU1111は、バックアップ時にリモートコピー先を「書き込み不可」に設定でき、バックアップ後のバックアップ先ボリュームに対する更新が不可能であることが明示的に判明しており、なおかつその情報を第2のストレージサブシステム1200から、第1のストレージサブシステム1100に対して通知可能であるならば、更新は発生していないと見做してステップS113へ進む。
【0094】
第1の制御装置1110のCPU1111は、ステップS113にて、バックアップ時に取得したバックアップ記憶領域テーブル1124を基に、記憶領域割当て要不要箇所を特定し、記憶領域の割当てが必要な箇所に対して記憶領域の割当てを行う。第1の制御装置1110のCPU1111は、この処理の後、ステップS115に進む。
【0095】
第1の制御装置1110のCPU1111は、ステップS114にて、リストア先ボリューム全領域に対して記憶領域の割当てを行い、ステップS115に進む。
【0096】
第1の制御装置1110のCPU1111は、ステップS115にて、遠隔コピー管理プログラム1222により、リストア元ボリュームからリストア先ボリュームに対して送信されるデータのうち、記憶領域を割当てた箇所に対してのデータについて、対応する記憶領域へ書き込みを行う。また、第1の制御装置1110のCPU1111は、それ以外のデータについては破棄を行う。当該処理の完了に伴い、リストアを完了する。
【0097】
なお、第1の制御装置1110のCPU1111は、ステップS113及びステップS114の記憶領域割当て処理についてのリストア完了までの時間を短縮する為、ステップS115のデータ送受信処理を行いながら実行しても良い。また、第1の制御装置1110のCPU1111は、ステップS115とステップS116の処理を共通化し、ステップS116を記憶領域の割当てが既に完了しているボリュームと見做してデータ送受信処理を行っても良い。
【0098】
図6は、ステップS113の処理を詳細化した処理についての、第1の方式におけるフローチャートを示している。
【0099】
本方式は、対象のリストア先ボリュームに割当てられている記憶領域を全て解放した後に、割当てが必要な箇所に対して再割当てを行う方式である。以降に概要を示す。
【0100】
まず、第1の制御装置1110のCPU1111は、ステップS120にて、対象のボリュームに割当てられた記憶領域を全て解放する。第1の制御装置1110のCPU1111は、当該処理の完了後、ステップS121に進む。
【0101】
第1の制御装置1110のCPU1111は、ステップS121にて、保存されていたバックアップ記憶領域テーブル1124を参照し、記憶領域が割当てられていた箇所に対して、記憶領域の割当て処理を行う。この場合、当該処理では、記憶領域が割当てられていなかった箇所に対しては、記憶領域の割当て処理を行わない。当該処理完了に伴い、ステップS113の処理は完了となる。
【0102】
図7は、ステップS113を詳細化した処理についての、第2の方式におけるフローチャートを示している。
【0103】
本方式は、対象のボリュームに割当てられている記憶領域のうち、ステップS113の完了の後に割当てが不要となる箇所に対して割当てを解放し、記憶領域が割当てられていない箇所のうち、ステップS113の完了の後に割当てが必要となる箇所に対して記憶領域の割当てを行う。以降に概要を示す。本フローチャートでは、対象のボリュームの記憶領域割当てはボリュームブロック番号単位に行うものとして記述する。
【0104】
まず、第1の制御装置1110のCPU1111は、ステップS130にて、あるボリュームブロック番号に対するバックアップ時の記憶割当て状態を取得する。第1の制御装置1110のCPU1111は、バックアップ時に、対象のボリュームブロック番号の記憶領域の割当てがあったならば、ステップS131へ進み、記憶領域の割当てがなかったならば、ステップS133へ進む
【0105】
第1の制御装置1110のCPU1111は、ステップS131にて、リストア開始時の記憶領域の割当て状態を取得する。ここで、第1の制御装置1110のCPU1111は、ステップS131にて、ステップS130の処理と合わせて、バックアップ時に対象のボリュームブロック番号の記憶領域の割当てがあり、リストア開始時に対象のボリュームブロック番号の記憶領域の割当てがないならば、リストア終了時に対象のボリュームブロック番号に対して記憶領域の割当てが必要となると判断し、ステップS132にて、該当ボリュームブロック番号に対して記憶領域の割当てを行う。
【0106】
第1の制御装置1110のCPU1111は、ステップS132にて、記憶領域割当て処理の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS135へ進む。
【0107】
一方、第1の制御装置1110のCPU1111は、ステップS131にて、ステップS130の処理と合わせて、バックアップ時及びリストア開始時に対象のボリュームブロック番号に対する記憶領域の割当てがあるならば、該記憶領域を継続して使用すればよいと判断し、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS135へ進む。
【0108】
第1の制御装置1110のCPU1111は、ステップS133にて、リストア開始時の記憶領域の割当て状態を取得する。ここで、第1の制御装置1110のCPU1111は、ステップS133にて、ステップS134の処理と合わせて、バックアップ時に対象のボリュームブロック番号の記憶領域の割当てがなく、リストア開始時に対象のボリュームブロック番号の記憶領域の割当てがあるのならば、リストア終了時には対象のボリュームブロック番号に対して記憶領域の割当てが不要となると判断し、ステップS134にて、該当ボリュームブロック番号に対する記憶領域の解放を行う。
【0109】
なお、解放対象となる記憶領域が再利用される際に、若しくは当該記憶領域が格納された内部ストレージ1115が第1のストレージサブシステム1100から取り除かれた後に、記憶領域に格納されていたデータの読み出しを防ぐために、「0」や乱数等のデータを当該記憶領域に書き込んだ後に解放を行うようにしても良い。また、この書き込み作業は、論理的にデータの読出しを不可とするのみならず、複数回乱数を書き込むことで物理的なデータの読み出しを不可にするものであっても良い。
【0110】
第1の制御装置1110のCPU1111は、ステップS134にて、記憶領域割当ての解放の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS135へ進む。
【0111】
一方、第1の制御装置1110のCPU1111は、ステップS133にて、ステップS130の処理と合わせて、バックアップ時及びリストア開始時に対象のボリュームブロック番号に対する記憶領域の割当てがないのならば、記憶領域割当てに対する操作は不要であると判断し、これについての処理は特に行わず、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS135へ進む。
【0112】
第1の制御装置1110のCPU1111は、ステップS135にて、対象のボリューム内の全ボリュームブロック番号に対して、バックアップ時とリストア開始時の対象のボリュームブロック番号の記憶領域の割当ての比較及び、これに付随する記憶領域の割当て若しくは解放処理が完了したか否かの判断を行う。
【0113】
第1の制御装置1110のCPU1111は、全ボリュームブロック番号に対して処理が完了していないのならば、ステップS136にて、対象のボリュームブロック番号を、未処理のボリュームブロック番号に切り替えて、ステップS130へ戻る。未処理のボリュームブロック番号がなくなったのならば、一連の処理を終了する。
【0114】
図8は、ステップS115を詳細化した処理における動作概要についてのフローチャートを示している。
【0115】
第1の制御装置1110のCPU1111は、ステップS140にて、遠隔コピー管理プログラム1222より送信され、遠隔コピー管理プログラム1122にて受信したデータの格納先に記憶領域が割当てられているかを調査する。ここで、第1の制御装置1110のCPU1111は、対象のボリュームブロック番号に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップS141へ進む。
【0116】
一方、第1の制御装置1110のCPU1111は、対象のボリュームブロック番号に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないためステップS142へ進む。
【0117】
第1の制御装置1110のCPU1111は、ステップS141にて、バックアップ時の記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。
【0118】
第1の制御装置1110のCPU1111は、ステップS142にて、バックアップ時に記憶領域を割当てていなかったデータを、データの格納を行わなくとも復元可能であるとして、書き込み処理を行わず、該データを破棄する。
【0119】
このようにして、記憶システム1000では、動的に記憶領域を割当てる機能を使用するボリュームのデータをバックアップする際に、第1のストレージサブシステム1100において、記憶領域を割当てたボリューム内のデータ位置を特定する情報を保存する。
【0120】
そして、記憶システム1000では、該バックアップしたデータによりリストアする場合、保存した情報により、バックアップしたときの記憶領域割当てを復元し、該記憶領域に対してバックアップしたデータを書き込む。
【0121】
これにより、記憶システム1000では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【0122】
(2)第2の実施の形態
(2−1)第2の実施の形態における記憶システムの構成
図9は、本発明を適用した記憶システムの第2の実施の形態における構成を示す図である。本実施の形態による記憶システム2000は、第1のストレージサブシステム2100、第2のストレージサブシステム2200及びホスト計算機2300が例えばSAN等のネットワーク2400により接続されて構成されている。
【0123】
なお、本実施の形態においては、第1のストレージサブシステム2100、第2のストレージサブシステム2200及びホスト計算機2300が同一のネットワーク2400に接続された構成としてここに示しているが、この構成以外にも、第1のストレージサブシステム2100及びホスト計算機2300間のネットワークと、第1のストレージサブシステム2100及び第2のストレージサブシステム2200間のネットワークが分離した構成でも良い。
【0124】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をRAIDやJBOD構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【0125】
第1のストレージサブシステム2100は、第1の制御装置2110と第1の管理端末2130から構成され、ボリュームの作成や各種機能の設定や保守操作を第1の管理端末2130により行うことができる。また、各種機能の設定はホスト計算機2300により行うこともできる。
【0126】
また、第1のストレージサブシステム2100は、所定のネットワーク2500により外部ストレージ装置2600と接続されている。
【0127】
第1の制御装置2110は、当該第1の制御装置2110全体を制御する1個以上のCPU2111、ネットワーク2400との接続のためのネットワークI/F2112、ネットワーク2500との接続のためのネットワークI/F2113、第1の管理端末2130との接続のためのNIC2114、複数のハードディスクドライブ等でなり、当該第1の制御装置2110の各種設定情報やプログラム等が格納されていると共に、ホスト計算機2300から送信されるデータが格納される内部ストレージ装置2115、及び当該各種設定情報やプログラム等が展開されるメモリ2116から構成されている。
【0128】
メモリ2116には、ボリューム管理プログラム2120、動的記憶領域割当てプログラム2121、遠隔コピー管理プログラム2122、記憶領域管理テーブル2123及びバックアップ記憶領域テーブル2124が展開されている。このボリューム管理プログラム2120、動的記憶領域割当てプログラム2121、遠隔コピー管理プログラム2122は、CPU2111によって実行されるプログラムである。
【0129】
第1の管理端末2130は、当該第1の管理端末2130全体を制御する1個以上のCPU2131、当該第1の制御装置2110の各種設定情報やプログラム等が格納されている記憶装置2132、各種設定情報やプログラム等が展開されるメモリ2133及び第1の制御装置2110との接続のためのNIC2134から構成されている。
【0130】
一方、第2のストレージサブシステム2200は、第2の制御装置2210と第2の管理端末2230から構成され、ボリュームの作成や各種機能の設定や保守操作を第2の管理端末2230により行うことができる。
【0131】
第2の制御装置2210は、ネットワーク2500との接続のためのネットワークI/Fが設けられていないことを除いて、第1の制御装置2110と同様に構成されており、CPU2211、ネットワークI/F2212、NIC2214、内部ストレージ装置2215及びメモリ2216から構成されている。
【0132】
メモリ2216には、ボリューム管理プログラム2220、動的記憶領域割当てプログラム2221、遠隔コピー管理プログラム2222、記憶領域管理テーブル2223及びバックアップ記憶領域テーブル2224が展開されている。このボリューム管理プログラム2220、動的記憶領域割当てプログラム2221、及び遠隔コピー管理プログラム2222は、CPU2211によって実行されるプログラムである。
【0133】
第2の管理端末2230は、第1の管理端末2130と同様に構成されており、CPU2231、記憶装置2232、メモリ2233及びNIC2234から構成されている。
【0134】
他方、ホスト計算機2300は、CPU2301及びネットワーク2400との接続のためのネットワークI/F2302を有するコンピュータ装置であり、例えばUNIX(登録商標)やWindows(登録商標)をOSとするサーバなどから構成される。また、ホスト計算機2300は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機2300は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【0135】
この場合、第1のストレージサブシステム2100のボリュームの管理は、ストレージ制御装置2110のメモリ2116に格納されているボリューム管理プログラム2120がCPU2111に実行されることにより動作する。
【0136】
第1のストレージサブシステム2100は、外部ストレージ装置2600を内部ストレージ装置2115と同様に扱い、ホスト計算機2300に提供するボリュームを構成するストレージ装置としても良い。また、第1のストレージサブシステム2100は、内部ストレージ装置2115を持たず、外部ストレージ装置2600のみでボリュームをホスト計算機2300に対して提供しても良い。なお、外部ストレージ装置2600は、他のストレージサブシステムが提供するボリュームであっても良い。
【0137】
第1のストレージサブシステム2100は、ボリュームを提供する場合、ホスト計算機2300によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置2115及び外部ストレージ装置2600の物理デバイス(ハードディスクドライブ等)の特定領域を指す。
【0138】
動的記憶領域割り当て機能は、メモリ2116に格納されるボリューム管理プログラム2120及び動的記憶領域割当てプログラム2121がCPU2111に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム2121は、記憶領域管理テーブル2123に格納された情報を基に動作する。
【0139】
この動的記憶領域割り当て機能では、ホスト計算機2300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム2121により、記憶領域管理テーブル2123を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル2123に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【0140】
また、動的記憶領域割り当て機能では、ホスト計算機2300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム2121により、記憶領域管理テーブル2123を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル2123に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【0141】
さらに、動的記憶領域割り当て機能では、ホスト計算機2300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム2120により、記憶領域管理テーブル2123を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「0」等の予め決められたパターンをホスト計算機2300に対して送信する。
【0142】
さらに、動的記憶領域割り当て機能では、ホスト計算機2300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム2120により、記憶領域管理テーブル2123を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル2123に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機2300に対して送信する。
【0143】
第2のストレージサブシステム2200は、第1のストレージサブシステム2100と同様に、動的記憶領域割り当て機能を有するストレージサブシステムである。
【0144】
第1のストレージサブシステム2100及び第2のストレージサブシステム2200は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【0145】
ここで、第1のストレージサブシステム2100のボリュームを複製元とし、第2のストレージサブシステム2200のボリュームを複製先とした場合、遠隔コピー管理プログラム2122がCPU2111に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0146】
逆に、第2のストレージサブシステム2200のボリュームを複製元とし、第1のストレージサブシステム2100のボリュームを複製先とした場合、遠隔コピー管理プログラム2222がCPU2211に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0147】
なお、第1のストレージサブシステム2100のボリュームを複製元とし、第2のストレージサブシステム2200のボリュームを複製先とした場合、第1のストレージサブシステム2100のボリュームをバックアップ元ボリューム、第2のストレージサブシステム2200のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【0148】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【0149】
また、バックアップを行った後に、第2のストレージサブシステム2200のボリュームを複製元、第1のストレージサブシステム2100のボリュームを複製先とした場合、第2のストレージサブシステム2200のボリュームをリストア元ボリューム、第1のストレージサブシステム2100のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【0150】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【0151】
(2−2)第2の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第1のストレージサブシステム2100から第2のストレージサブシステム2200に対するバックアップの制御方式について説明を行う。
【0152】
この記憶システム2000では、第1のストレージサブシステム2100の動的記憶領域割り当て機能を使用するボリュームにより、第2のストレージサブシステム2200の動的記憶領域割り当て機能を使用するボリュームに対してリモートコピー機能によるバックアップを行う。
【0153】
動的記憶領域割り当て機能を使用するボリューム同士のリモートコピー機能によるバックアップは、第1のストレージサブシステム2100側では、ボリューム管理プログラム2120と、遠隔コピー管理プログラム2122と、動的記憶領域割当てプログラム2121とがCPU2111に実行されることにより動作する。
【0154】
一方、第2のストレージサブシステム2200側では、ボリューム管理プログラム2220と、遠隔コピー管理プログラム2222と、動的記憶領域割当てプログラム2221とがCPU2211に実行されることにより動作する。
【0155】
このうち、ボリューム管理プログラム2120及びボリューム管理プログラム2220は、対象のボリュームが動的記憶領域割り当て機能を使用するか否かを管理する。また、遠隔コピー管理プログラム2122及び遠隔コピー管理プログラム2222は、ネットワーク1400を通してバックアップ元ボリュームからバックアップ先ボリュームに対するバックアップを行う。
【0156】
さらに、動的記憶領域割当てプログラム2121及び動的記憶領域割当てプログラム2221は、リモートコピー機能の際に、対象のボリュームの記憶領域の割当て情報について送受信が可能である。
【0157】
この場合、遠隔コピー管理プログラム1122は、対象のボリューム全体のデータを送信することでバックアップを行うが、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームである場合、記憶領域管理テーブル1123を基に、前述の動的記憶領域割り当て機能を使用するボリュームに対する読み出し処理に従ってボリューム全体を転送する。
【0158】
これに先立ち、第2のストレージサブシステム2200の遠隔コピー管理プログラム2122は、動的記憶領域割当てプログラム2121に対して、対象のボリュームの記憶領域を割当てた箇所についての情報を、動的記憶領域割当てプログラム2218に対して転送するように要求する。
【0159】
該転送要求を受けた動的記憶領域割当てプログラム2121は、記憶領域管理テーブル2123を参照し、記憶領域を割当てた箇所についての情報をビットマップ化して動的記憶領域割当てプログラム2221に送信する。
【0160】
該情報を受信した動的記憶領域割当てプログラム2221は、該情報をメモリ2216上のバックアップ記憶領域テーブル2224に保存する。
【0161】
バックアップ記憶領域テーブル2224の格納先は、メモリ2216や内部ストレージ装置2215等、第2の制御装置2110より参照可能なデータ保存可能箇所であるならば記憶装置の種類を問わない。
【0162】
動的記憶領域割当てプログラム2221は、バックアップ記憶領域テーブル2224を参照し、第1のストレージサブシステム2100側の動的記憶領域割り当て機能を使用するボリュームの記憶領域を割当てている箇所と同箇所に対し、バックアップ先ボリュームに対して記憶領域の割当てを行う。
【0163】
記憶システム1000では、以上の動的記憶領域割当てプログラム2221による記憶領域割当ての複製が完了した後、遠隔コピー管理プログラム2122と遠隔コピー管理プログラム2222による対象のボリューム間のデータ転送処理を開始する。
【0164】
データを受信した第2の制御装置2210のCPU2211は、データ転送処理において、遠隔コピー管理プログラム2222により、動的記憶領域割当てプログラム2221を呼び出し、記憶領域管理テーブル2224を参照して、対象のデータ書き込み箇所に対して記憶領域が割当てられているならば、受信したデータを該記憶領域に対して書き込み、記憶領域が割当てられていないならば、受信したデータを破棄する。
【0165】
このようにして、記憶システム1000では、記憶領域を割当てた箇所についての情報と、割当てられた記憶領域に格納されたデータを転送することで、第1の制御装置2110のバックアップ元ボリュームのデータと、記憶領域の割当て状態を含むバックアップ元ボリュームそのものを複製することができる。
【0166】
次に、第2の制御装置2210に作成したバックアップを行ったボリュームから、ストレージ制御装置2110のボリュームを復元するリストアについて説明を行う。
【0167】
このリストアでは、バックアップ先ボリュームをリストア元ボリュームとし、バックアップ元ボリュームをリストア先ボリュームと見做す、リモートコピー機能である。
【0168】
また、ストレージ制御装置2210及びストレージ制御装置2110は、同等の機能を有するストレージサブシステムであるため、前述したバックアップを行ったデータ及び記憶領域を割当てた箇所についての情報の転送方向を逆転させることで本実施の形態では実現可能である。
【0169】
なお、本実施の形態においても図2に示した構造を、記憶領域管理テーブル2123及び記憶領域管理テーブル2223に用いることができる。また、図3に示した構造を、バックアップ記憶領域テーブル2124及びバックアップ記憶領域テーブル2224に使用することができる。
【0170】
図10は、リモートコピー機能を用いたバックアップ制御方式の動作概要についてのフローチャートを示している。
【0171】
まず、第1の制御装置2110のCPU2111は、ステップS200にて、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム2120を呼び出し、調査を行う。
【0172】
第2の制御装置2210のCPU2211は、ステップS201にて、バックアップ先ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム2220を呼び出し、調査を行う。
【0173】
第1の制御装置2110のCPU2111は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、バックアップ元又はバックアップ先ボリュームのいずれかが動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、対象のボリューム内の全領域のデータを、全てバックアップ先ボリュームに対して転送するステップS204に進む。本転送処理は、遠隔コピー管理プログラム2120に基づいて行われる。
【0174】
一方、第1の制御装置2110のCPU2111は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、バックアップ元及びバックアップ先ボリュームのいずれも動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、ステップS202に進み、ステップS202にて、記憶領域管理テーブル2123からバックアップ元ボリュームに対して記憶領域を割り当てている箇所を特定するための情報を作成する。この後、第1の制御装置2110のCPU2111は、該情報を第2の制御装置2210に対して送信し、ステップS203に進む。本テーブル作成処理は、動的記憶領域割当てプログラム1121に基づいて行われる。
【0175】
第2の制御装置2210のCPU2211は、ステップS203にて、第1の制御装置2110のCPU2111から送信された情報をバックアップ記憶領域テーブル2224に保存する。また、第2の制御装置2210のCPU2211は、該情報を基にバックアップ先ボリュームに対する記憶領域の割り当てを行い、バックアップ元ボリュームと同様の記憶領域割り当て状態を構築し、バックアップ元ボリュームと同様の記憶領域割り当て状態を再現する。本テーブル作成処理は、動的記憶領域割当てプログラム1221に基づいて行われる。
【0176】
なお、第2の制御装置2210のCPU2211は、この記憶領域割り当て状態に従い、記憶領域管理テーブル2223の変更を行う。
【0177】
第1の制御装置2110のCPU2111は、バックアップ記憶領域テーブル2224の作成処理であるステップS203の完了の後、対象のボリューム内の全領域のデータの転送処理であるステップS204に進む。本処理完了に伴い、バックアップ完了となる。
【0178】
なお、第1の制御装置2110のCPU2111は、対象のボリューム全体に対してステップS203完了の後に、ステップS204を行うとしているが、該ボリュームを適当な領域に区切り、ある前述の領域に対してステップS203が完了の後にステップS204を実行し、ステップS204の転送中に次の領域に対してステップS203を行うことで処理性能向上を図っても良い。
【0179】
またなお、リストア制御方式の動作概要についてのフローチャートについては、バックアップ制御方式の動作概要について逆転させることで本実施の形態では実現可能である。
【0180】
図11は、ステップS203の処理を詳細化した処理についての、第1の方式におけるフローチャートを示している。
【0181】
本方式は、リストア先ボリュームに割当てられている記憶領域を全て解放した後に、割当てが必要な箇所に対して再割当てを行う方式である。以降に概要を示す。
【0182】
まず、第2の制御装置2210のCPU2211は、ステップS220にて、対象のボリュームに割当てられた記憶領域を全て解放する。第2の制御装置2210のCPU2211は、当該処理の完了後、ステップS221に進む。
【0183】
第2の制御装置2210のCPU2211は、ステップS221にて、保存されていたバックアップ記憶領域テーブル2224を参照し、記憶領域が割当てられていた箇所に対して、記憶領域の割当て処理を行う。この場合、当該処理では、記憶領域が割当てられていなかった箇所に対しては、記憶領域の割当て処理を行わない。当該処理完了に伴い、ステップS203の処理は完了となる。
【0184】
図12は、ステップS203を詳細化した処理についての、第2の方式におけるフローチャートを示している。
【0185】
本方式は、対象のボリュームに割当てられている記憶領域のうち、ステップS113の完了の後に割当てが不要となる箇所に対して割当てを解放し、記憶領域が割当てられていない箇所のうち、ステップS113完了の後に割当てが必要となる箇所に対して記憶領域の割当てを行う。以降に概要を示す。本フローチャートでは、対象のボリュームの記憶領域割当てはボリュームブロック番号単位に行うものとして記述する。
【0186】
まず、第2の制御装置2210のCPU2211は、ステップS230にて、あるボリュームブロック番号に対するバックアップ時の記憶割当て状態を取得する。第2の制御装置2210のCPU2211は、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあったならば、ステップS231へ進み、記憶領域の割当てがなかったならば、ステップS233へ進む
【0187】
第2の制御装置2210のCPU2211は、ステップS231にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第2の制御装置2210のCPU2211は、ステップS231にて、ステップS230の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあり、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがないならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが必要となると判断し、ステップS232にて、該当ボリュームブロック番号に対して記憶領域の割当てを行う。
【0188】
第2の制御装置2210のCPU2211は、ステップS232にて、記憶領域割当て処理の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS235へ進む。
【0189】
一方、第2の制御装置2210のCPU2211は、ステップS231にて、ステップS230の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームに対象のボリュームブロック番号に対する記憶領域の割当てがあるならば、該記憶領域を継続して使用すればよいと判断し、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS235へ進む。
【0190】
第2の制御装置2210のCPU2211は、ステップS233にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第2の制御装置2210のCPU2211は、ステップS233にて、ステップS234の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがなく、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあるのならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが不要となると判断し、ステップS234にて、該当ボリュームブロック番号に対する記憶領域の解放を行う。
【0191】
第2の制御装置2210のCPU2211は、ステップS234にて、記憶領域割当ての解放の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS235へ進む。
【0192】
一方、第2の制御装置2210のCPU2211は、ステップS233にて、ステップS230の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームの対象のボリュームブロック番号に対する記憶領域の割当てがないのならば、記憶領域割当てに対する操作は不要であると判断し、これについての処理は特に行わず、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS235へ進む。
【0193】
第2の制御装置2210のCPU2211は、ステップS235にて、対象のボリューム内の全ボリュームブロック番号に対して、バックアップ元ボリュームとバックアップ先ボリュームの対象のボリュームブロック番号の記憶領域の割当ての比較及び、これに付随する記憶領域の割当て若しくは解放処理が完了したか否かの判断を行う。
【0194】
第2の制御装置2210のCPU2211は、全ボリュームブロック番号に対して処理が完了していないのならば、ステップS236にて、対象のボリュームブロック番号を、未処理のボリュームブロック番号に切り替えて、ステップS230へ戻る。未処理のボリュームブロック番号がなくなったのならば、一連の処理を終了する。
【0195】
図13は、動的記憶領域割り当て機能を使用するリストア先ボリュームにおけるデータ受信処理であるステップS204を詳細化した処理における動作概要についてのフローチャートを示している。
【0196】
第2の制御装置2210のCPU2211は、ステップS240にて、遠隔コピー管理プログラム2122より送信され、遠隔コピー管理プログラム2222にて受信したデータの格納先に記憶領域が割当てられているかを調査する。ここで、第2の制御装置2210のCPU2211は、対象のボリュームブロック番号に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップS241へ進む。
【0197】
一方、第2の制御装置2210のCPU2211は、対象のボリュームブロック番号に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないためステップS242へ進む。
【0198】
第2の制御装置2210のCPU2211は、ステップS241にて、バックアップ元ボリュームの記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。
【0199】
第2の制御装置2210のCPU2211は、ステップS242にて、バックアップ元ボリュームに記憶領域を割当てていなかったデータを、データの格納を行わなくとも復元可能であるとして、書き込み処理を行わず、該データを破棄する。
【0200】
このようにして、記憶システム2000では、第1のストレージサブシステム2100において、動的に記憶領域を割当てる機能を使用するボリュームからのデータをバックアップする際に、記憶領域を割当てたボリューム内のデータ位置を特定する情報を作成し、第2のストレージサブシステム2200に送信して、該情報を保存する。
【0201】
そして、記憶システム2000では、第2のストレージサブシステム2200において、保存した情報により、バックアップ元ボリュームの記憶領域割当てを復元し、該記憶領域に対してバックアップ元ボリュームの記憶領域に格納していたデータを書き込む。
【0202】
これにより、記憶システム2000では、バックアップ先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができると共に、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【0203】
(3)第3の実施の形態
(3−1)第3の実施の形態における記憶システムの構成
図14は、本発明を適用した記憶システムの第3の実施の形態における構成を示す図である。本実施の形態による記憶システム3000は、第1のストレージサブシステム3100、バックアップサーバ3700、ストレージ装置3900、及びホスト計算機3300が例えばSAN等のネットワーク3400により接続されて構成されている。
【0204】
なお、本実施の形態においては、第1のストレージサブシステム3100、バックアップサーバ3700、ストレージ装置3900、及びホスト計算機3300が同一のネットワーク3400に接続された構成としてここに示しているが、この構成以外にも、第1のストレージサブシステム3100及びホスト計算機3300間のネットワークと、第1のストレージサブシステム3100、バックアップサーバ3700、及びストレージ装置3900のネットワークが分離した構成でも良い。
【0205】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をRAIDやJBOD構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【0206】
第1のストレージサブシステム3100は、第1の制御装置3110と第1の管理端末3130から構成され、ボリュームの作成や各種機能の設定や保守操作を第1の管理端末3130により行うことができる。また、各種機能の設定はホスト計算機3300により行うこともできる。
【0207】
また、第1のストレージサブシステム3100は、所定のネットワーク3500により外部ストレージ装置3600と接続されている。
【0208】
第1の制御装置3110は、当該第1の制御装置3110全体を制御する1個以上のCPU3111、ネットワーク3400との接続のためのネットワークI/F3112、ネットワーク3500との接続のためのネットワークI/F3113、第1の管理端末3130との接続のためのNIC3114、複数のハードディスクドライブ等でなり、当該第1の制御装置3110の各種設定情報やプログラム等が格納されていると共に、ホスト計算機3300から送信されるデータが格納される内部ストレージ装置3115、及び当該各種設定情報やプログラム等が展開されるメモリ3116から構成されている。
【0209】
メモリ3116には、ボリューム管理プログラム3120、動的記憶領域割当てプログラム3121、記憶領域管理テーブル3123及びバックアップ記憶領域テーブル3124が展開されている。このボリューム管理プログラム3120、及び動的記憶領域割当てプログラム3121は、CPU3111によって実行されるプログラムである。
【0210】
第1の管理端末3130は、当該第1の管理端末3130全体を制御する1個以上のCPU3131、当該第1の制御装置3110の各種設定情報やプログラム等が格納されている記憶装置3132、各種設定情報やプログラム等が展開されるメモリ3133及び第1の制御装置3110との接続のためのNIC3134から構成されている。
【0211】
一方、バックアップサーバ3700は、当該バックアップサーバ3700全体を制御する1個以上のCPU3701、ネットワーク3400との接続のためのネットワークI/F3702、ホスト計算機3300との接続のためのNIC3703、テープデバイス3800との接続のためのネットワークI/F3704、複数のハードディスクドライブ等でなり、当該第バックアップサーバ3700の各種設定情報やプログラム等が格納されていると共に、ホスト計算機3300や第1のストレージサブシステム3100から送信されるデータが格納される内部ストレージ装置3705、及び当該各種設定情報やプログラム等が展開されるメモリ3706から構成されている。
【0212】
メモリ3706には、バックアッププログラム3710が展開されている。このバックアッププログラム3710は、CPU3701によって実行されるプログラムである。
【0213】
また、バックアップサーバ3700は、例えば、SCSI(Small Computer System Interface)等の所定のネットワークにより、バックアップサーバ3700のネットワークI/F3704を介してテープデバイス3800と接続されている。
【0214】
この場合、バックアップサーバ3700は、第1のストレージサブシステム3100のボリュームをバックアップ及びリストアを制御する機能を備えており、該機能はバックアップサーバ3700のメモリ3706に格納されたバックアッププログラム3710が提供する。
【0215】
このバックアッププログラム3710は、第1のストレージサブシステム3100にバックアップの開始を通知し、第1のストレージサブシステム3100から読み出したデータを、バックアップサーバ3700がアクセス可能であるストレージ(テープデバイス3800やストレージ装置3900)に対して、転送することでバックアップを行う機能を有する。
【0216】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージ装置に送信することでボリューム内のデータを複製することをいう。
【0217】
また、バックアッププログラム3710は、第1のストレージサブシステム3100にリストアの開始を通知し、バックアップサーバ3700がアクセス可能であるストレージから読み出したデータを、第1のストレージサブシステム3100に対して、転送することでリストアを行う機能を有する。
【0218】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージ装置に該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【0219】
なお、バックアップ先の物理デバイスは、バックアップサーバ3700がアクセス可能であるならば、第1のストレージサブシステム3100から直接アクセス不可能であるネットワーク3400とは独立したネットワーク上にあるテープデバイス3800であっても、第1のストレージサブシステム3100から直接アクセス可能であるネットワーク3400上にあっても良い。
【0220】
ただし、本実施の形態においては、バックアップしたデータに対して変更を加えてはならないことが前提である。そのため、バックアップ先の物理デバイスは、テープメディアやDVD−Rといったデータの変更を基本的に行わない媒体が望ましい。
【0221】
他方、ホスト計算機3300は、CPU3301及びネットワーク3400との接続のためのネットワークI/F3302を有するコンピュータ装置であり、例えば例えばUNIX(登録商標)やWindows(登録商標)をOSとするサーバなどから構成される。また、ホスト計算機3300は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機3300は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【0222】
この場合、第1のストレージサブシステム3100のボリュームの管理は、ストレージ制御装置3110のメモリ3116に格納されているボリューム管理プログラム3120がCPU3111に実行されることにより動作する。
【0223】
第1のストレージサブシステム3100は、外部ストレージ装置3600を内部ストレージ装置3115と同様に扱い、ホスト計算機3300に提供するボリュームを構成するストレージ装置としても良い。また、第1のストレージサブシステム3100は、内部ストレージ装置3115を持たず、外部ストレージ装置3600のみでボリュームをホスト計算機3300に対して提供しても良い。なお、外部ストレージ装置3600は、他のストレージサブシステムが提供するボリュームであっても良い。
【0224】
第1のストレージサブシステム3100は、ボリュームを提供する場合、ホスト計算機3300によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置3115及び外部ストレージ装置3600の物理デバイス(ハードディスクドライブ等)の特定領域を指す。
【0225】
動的記憶領域割り当て機能は、メモリ3116に格納されるボリューム管理プログラム3120及び動的記憶領域割当てプログラム3121がCPU3111に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム3121は、記憶領域管理テーブル3123に格納された情報を基に動作する。
【0226】
この動的記憶領域割り当て機能では、ホスト計算機3300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム3121により、記憶領域管理テーブル3123を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル3123に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【0227】
また、動的記憶領域割り当て機能では、ホスト計算機3300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム3121により、記憶領域管理テーブル3123を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル3123に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【0228】
さらに、動的記憶領域割り当て機能では、ホスト計算機3300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム3120により、記憶領域管理テーブル3123を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「0」等の予め決められたパターンをホスト計算機3300に対して送信する。
【0229】
さらに、動的記憶領域割り当て機能では、ホスト計算機3300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム3120により、記憶領域管理テーブル3123を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル3123に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機3300に対して送信する。
【0230】
第1のストレージサブシステム3100は、ホスト計算機3300より任意のボリュームについて情報取得の要求があったとき、ボリューム管理プログラム3120において、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該情報取得の要求に対する応答のメッセージの中に、その情報を付与して返信することができる。
【0231】
なお、第1のストレージサブシステム3100は、動的記憶領域割り当て機能の使用中の情報をホスト計算機3300に返信できなくとも、対象のボリュームを設定した第1のストレージサブシステム3100の管理者や管理ソフトウェア等がバックアップサーバ3700に対して動的記憶領域割り当て機能の使用中の情報を送信すれば良い。
【0232】
(3−2)第3の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第1のストレージサブシステム3100からバックアップサーバ3700を介したテープデバイス3800に対するバックアップの制御方式について説明を行う。
【0233】
ここでは、バックアップ先の物理デバイスを、第1のストレージサブシステム3100から直接データの転送をできるネットワーク3400とは独立したネットワーク上にあるテープデバイス3800として説明を行うが、バックアップ先の物理デバイスが第1のストレージサブシステム3100より直接データの転送をできるネットワーク3400に接続されたストレージ装置3900であっても動作は同じである。
【0234】
この記憶システム3000では、第1のストレージサブシステム3100の動的記憶領域割り当て機能を使用したボリュームから、動的記憶領域割り当て機能とは関係のないバックアップサーバ3700が管理するテープデバイス3800へのバックアップを行う。
【0235】
ただし、バックアップを制御するバックアップサーバ3700では、バックアップ元ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。
【0236】
バックアップサーバ3700のCPU3701は、バックアップ元ボリューム内のデータのバックアップに先立ち、第1のストレージサブシステム3100に対して、対象のボリュームに対する記憶領域を割当てた箇所を特定するための情報のバックアップを要求する。これは、動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【0237】
該バックアップ要求を受けた第1の制御装置3110のCPU3111は、動的記憶領域割当てプログラム3121により、記憶領域管理テーブル3123を参照し、記憶領域を割当てた箇所についての情報をビットマップ化して作成(以降、該情報を「割当てビットマップ」と呼ぶ)し、バックアップ記憶領域テーブル3124に保存する。
【0238】
また、第1の制御装置3110のCPU3111は、この割当てビットマップを後に参照可能とするためIDを付与してこれも同様に保存する。そして、第1の制御装置3110のCPU3111は、バックアップサーバ3700に対して、該IDを通知する。
【0239】
バックアップ記憶領域テーブル3124の格納先は、メモリ3116や内部ストレージ3115、外部ストレージ装置3600等、第1の制御装置3110から参照可能なデータ保存可能箇所であるならば記憶装置の種類を問わない。
【0240】
また、バックアップ記憶領域テーブル3124の格納先は、ストレージ管理端末3130内のメモリ3133や記憶装置3132等の第1の制御装置3110からの参照要求に対する応答が可能である外部管理端末内の記憶装置であっても良い。
【0241】
さらに、第1の制御装置3110のCPU3111は、セキュリティ確保のために、バックアップを行ったネットワークサーバからのみリストア可能等との制限を行うならば、当該IDに付随して、要求を行ったバックアップサーバ3700を特定する為の情報を保存しても良い。これには、ネットワークサーバのデバイスインタフェースの製品番号や、ファイバチャネルのWWN(World Wide Name)等を使用する。
【0242】
また、第1の制御装置3110のCPU3111は、バックアップ記憶領域テーブル3124を用いず、IDを送信する代わりに、割当てビットマップをバックアップサーバ3700に送信しても良い。
【0243】
この場合、バックアップサーバ3700のCPU3701は、受信したID若しくは割当てビットマップの情報を、バックアップ先のステープデバイス3800と対応付けて管理する。
【0244】
ID若しくは割当てビットマップの格納先は、バックアップサーバ3700内のメモリ3706や記憶装置3705といった、バックアップサーバ3700にて管理可能な装置である。
【0245】
また、ID若しくは割当てビットマップの格納先は、メモリ3706や記憶装置3705以外にも、バックアップ先のテープデバイス3800にメタデータとして格納しても良い。
【0246】
バックアップサーバ3700のCPU3701は、ID若しくは割当てビットマップの格納の後、第1の制御装置3110のバックアップ元ボリュームに対して、ボリュームの全領域のデータに対する読み出し要求を行い、これをテープデバイス3800に格納する。ボリュームの全領域のデータ格納完了に伴い、本バックアップも完了となる。
【0247】
次に、前述のバックアップしたデータを元とするバックアップサーバ3700を介したテープデバイス3800から第1のストレージサブシステム3100へのデータのリストアの制御方式について説明を行う。
【0248】
ここでは、リストア元の物理デバイスを、第1のストレージサブシステム3100から直接データの転送をできるネットワーク3400とは独立したネットワーク上にあるテープデバイス3800として説明を行うが、リストア元の物理デバイスが、第1のストレージサブシステム3100から直接データの転送をできるネットワーク3400に接続されたストレージ装置3900であっても動作は同じである。
【0249】
この記憶システム3000では、動的記憶領域割り当て機能とは関係のない、バックアップサーバ3700が管理するテープデバイス3800から、第1のストレージサブシステム3100の動的記憶領域割り当て機能を使用したボリュームへのリストアを行う。
【0250】
ただし、リストアを制御するバックアップサーバ3700では、リストア先ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。また、バックアップ時にバックアップ元ボリュームが動的記憶領域割り当て機能を使用していたことは、バックアップ時に取得したID等の情報を基に判断可能である。
【0251】
バックアップサーバ3700のCPU3701は、データのリストアに先立ち、ストレージサブシステム3100に、リストア先ボリュームに対するバックアップ時の記憶領域の割当て情報の復元を要求する。これは、動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【0252】
バックアップサーバ3700のCPU3701は、バックアップ時に保存したバックアップ記憶領域テーブル3124上の割当てビットマップを参照する為、当該復元要求と共に、バックアップ時に取得したIDを指定する。
【0253】
また、バックアップサーバ3700のCPU3701は、IDの代わりに割当てビットマップをバックアップサーバ3400で保存しているのならば、当該割当てビットマップをバックアップサーバ3400から、第1のストレージサブシステム3100に対して送信する。
【0254】
第1の制御装置3110のCPU3111は、復元要求を行ったバックアップサーバ3700を特定するための情報を保存している場合、当該情報を基にバックアップサーバ3700以外のネットワークサーバからリストアを要求されたならば、当該要求を拒否する。
【0255】
第1の制御装置3110のCPU3111は、動的記憶領域割当てプログラム3121により、割当てビットマップを基にリストア先ボリュームに対して記憶領域の割当てを行い、この割当て状況に従い記憶領域管理テーブル3123を更新する。
【0256】
第1の制御装置3110のCPU3111は、記憶領域管理テーブル3117の更新の完了をバックアップサーバ3700に対して通知し、これを検知したバックアップサーバ3400は、テープデバイス3800に格納されたデータを第1のストレージサブシステム3100のリストア先ボリュームに対して書き込む。
【0257】
第1の制御装置3110のCPU3111は、動的記憶領域割当てプログラム3121により、本書き込み時に、記憶領域割当て済み箇所についてのみデータ書き込みを行い、それ以外についてはデータを破棄することでリストアを行う。
【0258】
バックアップサーバ3700のCPU3701は、リストア元データ全体の書き込み完了後、テープデバイス3800に対して完了を通知することでリストアが完了する。
【0259】
図15は、バックアップ記憶領域テーブル3124の構造概要を示す図である。バックアップ記憶領域テーブル3124は、ID格納欄31241、WWN格納欄31242、及び割り当てビットマップ格納欄31243から構成されている。
【0260】
バックアップ記憶領域テーブル3124は、第1の制御装置3110のCPU3111が対象のボリュームの割り当てビットマップを特定するためのIDをID格納欄31241に格納する。
【0261】
また、バックアップ記憶領域テーブル3124は、リストア可能なネットワークサーバを制限するために、必要ならば、バックアップサーバ3700を特定するための情報であるWWN等をWWN格納欄31242に格納する。
【0262】
さらに、バックアップ記憶領域テーブル3124は、動的記憶領域割り当て機能を使用するボリュームに割り当てられた記録領域の有無を所定のビットマップごとに割り当てる割り当てビットマップにて管理を行い、該割り当てビットマップを割り当てビットマップ格納欄31243に格納する。
【0263】
図16は、バックアップサーバ3700を用いた、本実施の形態における第1のストレージサブシステム3100の動的記憶領域割り当て機能を使用するボリュームから、テープデバイス3800へのバックアップ処理の動作概要についてのフローチャートを示している。
【0264】
なお、このフローチャートは、第1のストレージサブシステム3100にて、バックアップ時の割当てビットマップを保存する制御法について示している。
【0265】
まず、バックアップサーバ3700のCPU3701は、ステップS300にて、ストレージサブシステム3100における動的記憶領域割り当て機能を使用しているボリュームに対するバックアップの開始を要求する。
【0266】
この後、バックアップサーバ3700のCPU3701は、第1の制御装置3110において、バックアップ要求と共に、当該バックアップサーバ3700から通知した通知内容に不備がないかチェックを行う為、ステップS301へ進む。
【0267】
第1の制御装置3110のCPU3111は、ステップS301にて、動的記憶領域割り当て機能を使用しているとバックアッププログラム3710において認識しているボリュームに対し、該動的記憶領域割り当て機能を使用しているボリュームの情報の正当性を調査する。
【0268】
第1の制御装置3110のCPU3111は、ステップS301にて、ボリューム管理プログラム3120の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、バックアップサーバ3700のバックアップ要求に対して、動的記憶領域割り当て機能との連携の失敗を通知するステップS306へ進む。
【0269】
バックアップサーバ3700のCPU3701は、ステップS306にて、動的記憶領域割り当て機能との連携ができないことを検知すると、ステップS307に進み、ステップS307にて、動的記憶領域割り当て機能を使用しないボリュームと同様に、対象のボリュームを、バックアップ時の割当てビットマップについてのID管理を必要としない通常のバックアップ方式に変更する。
【0270】
なお、バックアップサーバ3700のCPU3701は、ステップS307へ進まずに、ステップS306の時点でバックアップ失敗としても良い。
【0271】
バックアップサーバ3700のCPU3701は、この後、ステップS305へ進み、ステップS305にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス3800への格納を行う。
【0272】
一方、第1の制御装置3110のCPU3111は、ステップS301にて、ボリューム管理プログラム3120の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップS302に進み、ステップS302にて、記憶領域管理テーブル3123を基に記憶領域を割当てている箇所を特定し、割当てビットマップを作成する。
【0273】
その後、第1の制御装置3110のCPU3111は、ステップS303にて、当該割当てビットマップにIDを付与し、これをバックアップ記憶領域テーブル3124にIDと共に格納する。その後、第1の制御装置3110のCPU3111は、ステップS304へ進む。
【0274】
第1の制御装置3110のCPU3111は、ステップS304にて、ステップS303にて付与したIDをバックアップサーバ3700へ送信する。バックアップサーバ3700のCPU3701は、該IDをバックアップ先のテープデバイス3800と対応付けて管理を行う。
【0275】
バックアップサーバ3700のCPU3701は、ステップS301より始まる動的記憶領域割り当て機能と連携するバックアップ処理の前準備が完了した後、ステップS305に進み、ステップS305にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス3800への格納を行う。ステップS305の完了に伴い、バックアップ処理が完了する。
【0276】
図17は、バックアップサーバ3700を用いた、本実施の形態における第1のストレージサブシステム3100の動的記憶領域割り当て機能を使用するボリュームから、テープデバイス3800へのバックアップ処理の動作概要についてのフローチャートを示している。
【0277】
なお、このフローチャートは、バックアップサーバ3400にて、バックアップ時の割当てビットマップを保存する制御法について示している。
【0278】
まず、バックアップサーバ3700のCPU3701は、ステップS310にて、第1のストレージサブシステム3100における動的記憶領域割り当て機能を使用しているボリュームに対するバックアップの開始を要求する。
【0279】
この後、バックアップサーバ3700のCPU3701は、第1の制御装置3110において、バックアップ要求と共に、当該バックアップサーバ3700から通知した通知内容に不備がないかチェックを行う為、ステップS311へ進む。
【0280】
第1の制御装置3110のCPU3111は、ステップS311にて、動的記憶領域割り当て機能を使用しているとバックアッププログラム3710において認識しているボリュームに対し、該動的記憶領域割り当て機能を使用しているボリュームの情報の正当性を調査する。
【0281】
第1の制御装置3110のCPU3111は、ステップS311にて、ボリューム管理プログラム3120の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、バックアップサーバ3700のバックアップ要求に対して、動的記憶領域割り当て機能との連携の失敗を通知するステップS316へ進む。
【0282】
バックアップサーバ3700のCPU3701は、ステップS316にて、動的記憶領域割り当て機能との連携ができないことを検知すると、ステップS317に進み、ステップS317にて、動的記憶領域割り当て機能を使用しないボリュームと同様に、対象のボリュームを、バックアップ時の割当てビットマップ管理を必要としない通常のバックアップ方式に変更する。
【0283】
なお、バックアップサーバ3700のCPU3701は、ステップS317へ進まずに、ステップS306の時点でバックアップ失敗としても良い。
【0284】
バックアップサーバ3700のCPU3701は、この後、ステップS315へ進み、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス3800への格納を行う。
【0285】
一方、第1の制御装置3110のCPU3111は、ステップS311にて、ボリューム管理プログラム3120の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップS312に進み、ステップS312にて、記憶領域管理テーブル3123を基に記憶領域を割当てている箇所を特定し、割当てビットマップを作成する。
【0286】
第1の制御装置3110のCPU3111は、その後、ステップS313にて、作成したビットマップを、バックアップサーバ3700に送信する。
【0287】
バックアップサーバ3700のCPU3701は、ステップS314にて、第1の制御装置3110から送信された割当てビットマップを格納する。その後、バックアップサーバ3700のCPU3701は、ステップS315へ進む。
【0288】
バックアップサーバ3700のCPU3701は、ステップS311より始まる動的記憶領域割り当て機能と連携するバックアップ処理の前準備が完了した後、ステップS315に進み、ステップS315にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス3800への格納を行う。ステップS315の完了に伴い、バックアップ処理が完了する。
【0289】
図18は、バックアップサーバ3700を用いた、本実施の形態におけるテープデバイス3800から、第1のストレージサブシステム3100の動的記憶領域割り当て機能を使用するボリュームへのリストア処理の動作概要についてのフローチャートを示している。
【0290】
なお、このフローチャートは、第1のストレージサブシステム3100にて、バックアップ時の記憶領域割当て情報である、割当てビットマップを保存する制御法について示している。
【0291】
まず、バックアップサーバ3700のCPU3701は、ステップS320にて、リストア先ボリュームが、動的記憶領域割り当て機能を使用してバックアップを行っていたかを調査する。バックアップサーバ3700のCPU3701は、これに該当しない場合、ステップS328へ進む。
【0292】
一方、バックアップサーバ3700のCPU3701は、動的記憶領域割り当て機能を使用してバックアップを行っていた場合には、ステップS321へ進み、バックアップ時に取得したIDと共に、第1のストレージサブシステム3100に動的記憶領域割り当て機能を使用してリストアを行うことを第1の制御装置3110に通知する。
【0293】
この後、バックアップサーバ3700のCPU3701は、第1の制御装置3110において、動的記憶領域割り当て機能を使用してリストアを行うことが可能であるかの調査を行うため、ステップS322へ進む。
【0294】
第1の制御装置3110のCPU3111は、ステップS322にて、本リストア処理を行う前提としてリストア先ボリュームが動的記憶領域割り当て機能を使用していなければならないため、対象のボリュームの動的記憶領域割り当て機能使用の有無を調査する。
【0295】
第1の制御装置3110のCPU3111は、ステップS322での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、ステップS327へ進み、ステップS327にて、その旨を通知する。
【0296】
一方、第1の制御装置3110のCPU3111は、ステップS322での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップS323に進み、ステップS323にて、指定されたIDに対応する割当てビットマップが存在するか否かのチェックを行う。
【0297】
第1の制御装置3110のCPU3111は、ステップS323にて、動的記憶領域割当てプログラム3121により、バックアップ記憶領域テーブル3124を検索し、指定されたIDと一致する割当てビットマップが存在するかを調査する。
【0298】
第1の制御装置3110のCPU3111は、ステップS323にて、指定されたIDと一致する割当てビットマップが存在しなかった場合、動的記憶領域割り当て機能を使用したリストアは出来ないとし、その旨を通知するため、ステップS327へ進む。
【0299】
一方、第1の制御装置3110のCPU3111は、ステップS323にて、指定されたIDと一致する割当てビットマップが存在した場合、動的記憶領域割り当て機能を使用したリストアが可能であるため、バックアップ時の記憶領域を復元するためステップS324へ進む。
【0300】
第1の制御装置3110のCPU3111は、ステップS324にて、検出した割当てビットマップを基に、動的記憶領域割当てプログラム3121により、対象のボリュームに対して、バックアップ時の記憶領域割当てを復元する処理を行う。
【0301】
また、第1の制御装置3110のCPU3111は、記憶領域の割当てに応じて記憶領域管理テーブル3123を変更する。第1の制御装置3110のCPU3111は、本割当て処理の完了後、バックアップサーバ3700において、リストアするデータを転送するため、ステップS325へ進む。
【0302】
バックアップサーバ3700のCPU3701は、ステップS325にて、バックアップ時のボリュームの全領域のデータを書き込む。
【0303】
このとき、第1の制御装置3110のCPU3111は、動的記憶領域割当てプログラム3121により、記憶領域管理テーブル3123に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ、バックアップサーバ3700から送信されるデータを書き込み、それ以外の箇所についてはデータを破棄することで書き込み処理を行う。第1の制御装置3110のCPU3111は、本書き込み処理完了の後、ステップS326へ進む。
【0304】
第1の制御装置3110のCPU3111は、ステップS326にて、ステップS325の記憶領域管理テーブル3123に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ書き込む制御が継続している。バックアップサーバ3700のCPU3701は、これを解除するために、第1のストレージサブシステム3100にリストア完了の通知を行う。第1の制御装置3110のCPU3111は、リストア完了の通知に従い、記憶領域管理テーブル3121によるリストア制御を終了する。以上をもってリストア処理は完了となる。
【0305】
一方、第1の制御装置3110のCPU3111は、ステップS327にて、バックアップサーバ3700に対して、バックアップ時の記憶領域割当て状態を復元することが出来なかったことを通知する。
【0306】
これを受けたバックアップサーバ3700のCPU3701は、それに従った処理を行うため、ステップS328へ進む。
【0307】
バックアップサーバ3700のCPU3701は、ステップS328にて、記憶領域の割当てを復元せず、記憶領域の不要な割当てが発生しようとも全領域に対して書き込みを行うリストアを開始するため、ステップS329へ進む。
【0308】
なお、バックアップサーバ3700のCPU3701は、本処理において、リストア先ボリュームを、動的記憶領域割り当て機能を使用しないボリュームに対して切り替える、リストア処理を中断する等、別の方法を選択することもできる。
【0309】
バックアップサーバ3700のCPU3701は、ステップS329にて、リストア先ボリュームが動的記憶領域割り当て機能の使用如何に関係なく、対象のボリュームの全領域のデータに対する書き込みを行う。本書き込み処理の完了をもって、リストア処理は完了となる。
【0310】
図19は、バックアップサーバ3700を用いた、本実施の形態におけるテープデバイス3800から、第1のストレージサブシステム3100の動的記憶領域割り当て機能を使用するボリュームへのリストア処理の動作概要についてのフローチャートを示している。
【0311】
なお、このフローチャートは、バックアップサーバ3700にて、バックアップ時の記憶領域割当て情報である、割当てビットマップを保存する制御法について示している。
【0312】
まず、バックアップサーバ3700のCPU3701は、ステップS330にて、リストア先ボリュームが、動的記憶領域割り当て機能を使用してバックアップを行っていたかを調査する。バックアップサーバ3700のCPU3701は、これに該当しない場合、ステップS338へ進む。
【0313】
一方、バックアップサーバ3700のCPU3701は、動的記憶領域割り当て機能を使用してバックアップを行っていた場合には、ステップS331へ進み、バックアップ時に取得した割り当てビットマップと共に、第1のストレージサブシステム3100に動的記憶領域割り当て機能を使用してリストアを行うことを第1の制御装置3110に通知する。
【0314】
この後、バックアップサーバ3700のCPU3701は、第1の制御装置3110において、動的記憶領域割り当て機能を使用してリストアを行うことが可能であるかの調査を行うため、ステップS332へ進む。
【0315】
第1の制御装置3110のCPU3111は、ステップS332にて、本リストア処理を行う前提としてリストア先ボリュームが動的記憶領域割り当て機能を使用していなければならないため、対象のボリュームの動的記憶領域割り当て機能使用の有無を調査する。
【0316】
第1の制御装置3110のCPU3111は、ステップS332での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、ステップS337へ進み、ステップS337にて、その旨を通知する。
【0317】
一方、第1の制御装置3110のCPU3111は、ステップS332での調査の結果、リストア先ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、動的記憶領域割り当て機能を使用したリストアが可能であるため、バックアップ時の記憶領域を復元するためステップS334へ進む。
【0318】
第1の制御装置3110のCPU3111は、ステップS334にて、バックアップサーバ3700から送信された割当てビットマップを基に、動的記憶領域割当てプログラム3121により、対象のボリュームに対して、バックアップ時の記憶領域割当てを復元する処理を行う。
【0319】
また、第1の制御装置3110のCPU3111は、記憶領域の割当てに応じて記憶領域管理テーブル3123を変更する。第1の制御装置3110のCPU3111は、本割当て処理の完了後、バックアップサーバ3700において、リストアするデータを転送するため、ステップS335へ進む。
【0320】
バックアップサーバ3700のCPU3701は、ステップS335にて、バックアップ時のボリュームの全領域のデータを書き込む。
【0321】
このとき、第1の制御装置3110のCPU3111は、動的記憶領域割当てプログラム3121により、記憶領域管理テーブル3123に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ、バックアップサーバ3700から送信されるデータを書き込み、それ以外の箇所についてはデータを破棄することで書き込み処理を行う。第1の制御装置3110のCPU3111は、本書き込み処理完了の後、ステップS336へ進む。
【0322】
第1の制御装置3110のCPU3111は、ステップS336にて、ステップS325の記憶領域管理テーブル3123に従い、記憶領域を割当てた箇所に対応する記憶領域にのみ書き込む制御が継続している。バックアップサーバ3700のCPU3701は、これを解除するために、第1のストレージサブシステム3100にリストア完了の通知を行う。第1の制御装置3110のCPU3111は、リストア完了の通知に従い、記憶領域管理テーブル3121によるリストア制御を終了する。以上をもってリストア処理は完了となる。
【0323】
一方、第1の制御装置3110のCPU3111は、ステップS337にて、バックアップサーバ3700に対して、バックアップ時の記憶領域割当て状態を復元することが出来なかったことを通知する。
【0324】
これを受けたバックアップサーバ3700のCPU3701は、それに従った処理を行うため、ステップS338へ進む。
【0325】
バックアップサーバ3700のCPU3701は、ステップS338にて、記憶領域の割当てを復元せず、記憶領域の不要な割当てが発生しようとも全領域に対して書き込みを行うリストアを開始するため、ステップS339へ進む。
【0326】
なお、バックアップサーバ3700のCPU3701は、本処理において、リストア先ボリュームを、動的記憶領域割り当て機能を使用しないボリュームに対して切り替える、リストア処理を中断する等、別の方法を選択することもできる。
【0327】
バックアップサーバ3700のCPU3701は、ステップS339にて、リストア先ボリュームが動的記憶領域割り当て機能の使用如何に関係なく、対象のボリュームの全領域のデータに対する書き込みを行う。本書き込み処理の完了をもって、リストア処理は完了となる。
【0328】
図20は、ステップS324及びステップS334の処理を詳細化した処理についての、第1の方式におけるフローチャートを示している。
【0329】
本方式は、リストア先ボリュームに割当てられている記憶領域を全て解放した後に、割当てが必要な箇所に対して再割当てを行う方式である。以降に概要を示す。
【0330】
まず、第1の制御装置3110のCPU3111は、ステップS340にて、対象のボリュームに割当てられた記憶領域を全て解放する。第1の制御装置3110のCPU3111は、当該処理の完了後、ステップS341に進む。
【0331】
第1の制御装置3110のCPU3111は、ステップS341にて、割り当てビットマップを参照し、バックアップ元ボリュームの記憶領域が割当てられていた箇所に対して、記憶領域の割当て処理を行う。この場合、当該処理では、記憶領域が割当てられていなかった箇所に対しては、記憶領域の割当て処理を行わない。当該処理完了に伴い、ステップS324及びステップS334の処理は完了となる。
【0332】
図21は、ステップS324及びステップS334を詳細化した処理についての、第2の方式におけるフローチャートを示している。
【0333】
本方式は、対象のボリュームに割当てられている記憶領域のうち、ステップS324及びステップS334の完了の後に割当てが不要となる箇所に対して割当てを解放し、記憶領域が割当てられていない箇所のうち、ステップS324及びステップS334の完了の後に割当てが必要となる箇所に対して記憶領域の割当てを行う。以降に概要を示す。本フローチャートでは、対象のボリュームの記憶領域割当ては、割り当てビットマップのビットマップに対応するボリュームブロック番号単位に行うものとして記述する。
【0334】
まず、第1の制御装置3110のCPU3111は、ステップS350にて、あるボリュームブロック番号に対するバックアップ時の記憶割当て状態を取得する。第1の制御装置3110のCPU3111は、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあったならば、ステップS351へ進み、記憶領域の割当てがなかったならば、ステップS353へ進む
【0335】
第1の制御装置3110のCPU3111は、ステップS351にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第1の制御装置3110のCPU3111は、ステップS351にて、ステップS350の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあり、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがないならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが必要となると判断し、ステップS352にて、該当ボリュームブロック番号に対して記憶領域の割当てを行う。
【0336】
第1の制御装置3110のCPU3111は、ステップS352にて、記憶領域割当て処理の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS355へ進む。
【0337】
一方、第1の制御装置3110のCPU3111は、ステップS351にて、ステップS350の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームに対象のボリュームブロック番号に対する記憶領域の割当てがあるならば、該記憶領域を継続して使用すればよいと判断し、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS355へ進む。
【0338】
第1の制御装置3110のCPU3111は、ステップS353にて、バックアップ先ボリュームの記憶領域の割当て状態を取得する。ここで、第1の制御装置3110のCPU3111は、ステップS353にて、ステップS354の処理と合わせて、バックアップ元ボリュームの対象のボリュームブロック番号に記憶領域の割当てがなく、バックアップ先ボリュームの対象のボリュームブロック番号に記憶領域の割当てがあるのならば、バックアップ先ボリュームの対象のボリュームブロック番号に対して記憶領域の割当てが不要となると判断し、ステップS354にて、該当ボリュームブロック番号に対する記憶領域の解放を行う。
【0339】
第1の制御装置3110のCPU3111は、ステップS354にて、記憶領域割当ての解放の後、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS355へ進む。
【0340】
一方、第1の制御装置3110のCPU3111は、ステップS353にて、ステップS350の処理と合わせて、バックアップ元ボリューム及びバックアップ先ボリュームの対象のボリュームブロック番号に対する記憶領域の割当てがないのならば、記憶領域割当てに対する操作は不要であると判断し、これについての処理は特に行わず、対象のボリュームの全ボリュームブロック番号に対して処理が終わったか否かの判断を行うステップS355へ進む。
【0341】
第1の制御装置3110のCPU3111は、ステップS355にて、対象のボリューム内の全ボリュームブロック番号に対して、バックアップ元ボリュームとバックアップ先ボリュームの対象のボリュームブロック番号の記憶領域の割当ての比較及び、これに付随する記憶領域の割当て若しくは解放処理が完了したか否かの判断を行う。
【0342】
第1の制御装置3110のCPU3111は、全ボリュームブロック番号に対して処理が完了していないのならば、ステップS356にて、対象のボリュームブロック番号を、未処理のボリュームブロック番号に切り替えて、ステップS230へ戻る。未処理のボリュームブロック番号がなくなったのならば、一連の処理を終了する。
【0343】
図22は、動的記憶領域割り当て機能を使用するリストア先ボリュームにおけるデータ受信処理であるステップS325及びステップS335を詳細化した処理における動作概要についてのフローチャートを示している。
【0344】
第1の制御装置3110のCPU3111は、ステップS360にて、ネットワークサーバから送信された割り当てビットマップを基に、バックアッププログラム3710から書込み要求があった箇所に対して記憶領域が割り当てられているかを調査する。ここで、第1の制御装置3110のCPU3111は、対象のボリュームブロック番号に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップS361へ進む。
【0345】
一方、第1の制御装置3110のCPU3111は、対象のボリュームブロック番号に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないためステップS362へ進む。
【0346】
第1の制御装置3110のCPU3111は、ステップS361にて、バックアップ元ボリュームの記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。
【0347】
第1の制御装置3110のCPU3111は、ステップS362にて、バックアップ元ボリュームに記憶領域を割当てていなかったデータを、データの格納を行わなくとも復元可能であるとして、書き込み処理を行わず、該データを破棄する。
【0348】
このようにして、記憶システム3000では、第1のストレージサブシステム3100において、動的に記憶領域を割当てる機能を使用するボリュームからのデータをバックアップする際に、記憶領域を割当てたボリューム内のデータ位置を特定する情報から、割り当てビットマップを作成し、当該割当てビットマップにIDを付与して、これをバックアップ記憶領域テーブル3124にIDと共に格納する。
【0349】
その後、記憶システム3000では、第1のストレージサブシステム3100において、割当てビットマップに付与されたIDをバックアップサーバ3700へ送信し、バックアップサーバ3700において、該IDをバックアップ先のテープデバイス3800と対応付けて管理を行う。
【0350】
そして、記憶システム3000では、該バックアップしたデータによりリストアする場合、バックアップサーバ3700において管理されたID、及び第1のストレージサブシステム3100において格納した割り当てビットマップにより、バックアップしたときの記憶領域割当てを復元し、該記憶領域に対してバックアップしたデータを書き込む。
【0351】
これにより、記憶システム3000では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【0352】
(4)第4の実施の形態
(4−1)第4の実施の形態における記憶システムの構成
図23は、本発明を適用した記憶システムの第4の実施の形態における構成を示す図である。本実施の形態による記憶システム4000は、第1のストレージサブシステム4100、バックアップサーバ4700、ストレージ装置4900、及びホスト計算機4300が例えばSAN等のネットワーク4400により接続されて構成されている。
【0353】
なお、本実施の形態においては、第1のストレージサブシステム4100、バックアップサーバ4700、ストレージ装置4900、及びホスト計算機4300が同一のネットワーク4400に接続された構成としてここに示しているが、この構成以外にも、第1のストレージサブシステム4100及びホスト計算機4300間のネットワークと、第1のストレージサブシステム4100、バックアップサーバ4700、及びストレージ装置4900のネットワークが分離した構成でも良い。
【0354】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をRAIDやJBOD構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【0355】
第1のストレージサブシステム4100は、第1の制御装置4110と第1の管理端末4130から構成され、ボリュームの作成や各種機能の設定や保守操作を第1の管理端末4130により行うことができる。また、各種機能の設定はホスト計算機4300により行うこともできる。
【0356】
また、第1のストレージサブシステム4100は、所定のネットワーク4500により外部ストレージ装置4600と接続されている。
【0357】
第1の制御装置4110は、当該第1の制御装置4110全体を制御する1個以上のCPU4111、ネットワーク4400との接続のためのネットワークI/F4112、ネットワーク4500との接続のためのネットワークI/F4113、第1の管理端末4130との接続のためのNIC4114、複数のハードディスクドライブ等でなり、当該第1の制御装置4110の各種設定情報やプログラム等が格納されていると共に、ホスト計算機4300から送信されるデータが格納される内部ストレージ装置4115、及び当該各種設定情報やプログラム等が展開されるメモリ4116から構成されている。
【0358】
メモリ4116には、ボリューム管理プログラム4120、動的記憶領域割当てプログラム4121、及び記憶領域管理テーブル4123が展開されている。このボリューム管理プログラム4120、及び動的記憶領域割当てプログラム4121は、CPU4111によって実行されるプログラムである。
【0359】
第1の管理端末4130は、当該第1の管理端末4130全体を制御する1個以上のCPU4131、当該第1の制御装置4110の各種設定情報やプログラム等が格納されている記憶装置4132、各種設定情報やプログラム等が展開されるメモリ4133及び第1の制御装置4110との接続のためのNIC4134から構成されている。
【0360】
一方、バックアップサーバ4700は、当該バックアップサーバ4700全体を制御する1個以上のCPU4701、ネットワーク4400との接続のためのネットワークI/F4702、ホスト計算機4300との接続のためのNIC4703、テープデバイス4800との接続のためのネットワークI/F4704、複数のハードディスクドライブ等でなり、当該第バックアップサーバ4700の各種設定情報やプログラム等が格納されていると共に、ホスト計算機4300や第1のストレージサブシステム4100から送信されるデータが格納される内部ストレージ装置4705、及び当該各種設定情報やプログラム等が展開されるメモリ4706から構成されている。
【0361】
メモリ4706には、バックアッププログラム4710、及びバックアップ記憶テーブル4711が展開されている。このバックアッププログラム4710は、CPU4701によって実行されるプログラムである。
【0362】
また、バックアップサーバ4700は、例えば、SCSI等の所定のネットワークにより、バックアップサーバ4700のネットワークI/F4704を介してテープデバイス4800と接続されている。
【0363】
この場合、バックアップサーバ4700は、第1のストレージサブシステム4100のボリュームをバックアップ及びリストアを制御する機能を備えており、該機能はバックアップサーバ4700のメモリ4706に格納されたバックアッププログラム4710が提供する。
【0364】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、バックアップサーバが管理するストレージ装置に送信することでボリューム内のデータを複製することをいう。
【0365】
バックアッププログラム4710は、第1のストレージサブシステム4100にリストアの開始を通知し、バックアップサーバ4700がアクセス可能であるストレージから読み出したデータを、第1のストレージサブシステム4100に対して、転送することでリストアを行う機能を有する。
【0366】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージ装置に該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【0367】
さらに、バックアッププログラム4710は、バックアップ時にバックアップサーバ4700から通知された情報により、バックアップ元データの何れの領域に対してホスト計算機4300より書き込みが発生していたかを判断する機能を有する。
【0368】
加えて、バックアッププログラム4710は、第1のストレージサブシステム4100に対し初期化を要求する機能を有する。
【0369】
なお、バックアップ先の物理デバイスは、バックアップサーバ4700がアクセス可能であるならば、第1のストレージサブシステム4100から直接アクセス不可能であるネットワーク4400とは独立したネットワーク上にあるテープデバイス4800であっても、第1のストレージサブシステム4100から直接アクセス可能であるネットワーク4400上にあっても良い。
【0370】
ただし、本実施の形態においては、バックアップしたデータに対して変更を加えてはならないことが前提である。そのため、バックアップ先の物理デバイスは、テープメディアやDVD−Rといったデータの変更を基本的に行わない媒体が望ましい。
【0371】
他方、ホスト計算機4300は、CPU4301及びネットワーク4400との接続のためのネットワークI/F4302を有するコンピュータ装置であり、例えばUNIX(登録商標)やWindows(登録商標)をOSとするサーバなどから構成される。また、ホスト計算機4300は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機4300は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【0372】
この場合、第1のストレージサブシステム4100のボリュームの管理は、ストレージ制御装置4110のメモリ4116に格納されているボリューム管理プログラム4120がCPU4111に実行されることにより動作する。
【0373】
第1のストレージサブシステム4100は、外部ストレージ装置4600を内部ストレージ装置4115と同様に扱い、ホスト計算機4300に提供するボリュームを構成するストレージ装置としても良い。また、第1のストレージサブシステム4100は、内部ストレージ装置4115を持たず、外部ストレージ装置4600のみでボリュームをホスト計算機4300に対して提供しても良い。なお、外部ストレージ装置4600は、他のストレージサブシステムが提供するボリュームであっても良い。
【0374】
第1のストレージサブシステム4100は、ボリュームを提供する場合、ホスト計算機3300によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置4115及び外部ストレージ装置4600の物理デバイス(ハードディスクドライブ等)の特定領域を指す。
【0375】
動的記憶領域割り当て機能は、メモリ4116に格納されるボリューム管理プログラム4120及び動的記憶領域割当てプログラム4121がCPU4111に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム4121は、記憶領域管理テーブル4123に格納された情報を基に動作する。
【0376】
この動的記憶領域割り当て機能では、ホスト計算機4300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム4121により、記憶領域管理テーブル4123を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル4123に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【0377】
また、動的記憶領域割り当て機能では、ホスト計算機4300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム4121により、記憶領域管理テーブル4123を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル4123に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【0378】
さらに、動的記憶領域割り当て機能では、ホスト計算機4300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム4120により、記憶領域管理テーブル4123を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「0」等の予め決められたパターンをホスト計算機4300に対して送信する。
【0379】
さらに、動的記憶領域割り当て機能では、ホスト計算機4300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム4120により、記憶領域管理テーブル4123を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル4123に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機4300に対して送信する。
【0380】
さらに、動的記憶領域割り当て機能では、ホスト計算機4300からの初期化の要求を受けたときに、動的記憶領域割当てプログラム4120により、初期化対象のボリュームに割当てられている記憶領域を解放し、記憶領域管理テーブル4123に格納されている記憶領域の割当て情報を変更する。ただし、動的記憶領域割り当て機能では、初期化対象のボリュームが動的記憶領域割り当て機能を使用していない場合には、ボリューム管理プログラム4120が対象のボリュームの全領域に対して、「0」を格納する等の初期化処理を行う。
【0381】
第1のストレージサブシステム4100は、ホスト計算機4300より任意のボリュームについて情報取得の要求があったとき、ボリューム管理プログラム4120において、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該情報取得の要求に対する応答のメッセージの中に、その情報を付与して返信することができる。
【0382】
なお、第1のストレージサブシステム4100は、動的記憶領域割り当て機能の使用中の情報をホスト計算機4300に返信できなくとも、対象のボリュームを設定した第1のストレージサブシステム4100の管理者や管理ソフトウェア等がバックアップサーバ4700に対して動的記憶領域割り当て機能の使用中の情報を送信すれば良い。
【0383】
(4−2)第4の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第1のストレージサブシステム4100からバックアップサーバ4700を介したテープデバイス4800に対するバックアップの制御方式について説明を行う。
【0384】
ここでは、バックアップ先の物理デバイスを、第1のストレージサブシステム4100から直接データの転送をできるネットワーク4400とは独立したネットワーク上にあるテープデバイス4800として説明を行うが、バックアップ先の物理デバイスが第1のストレージサブシステム4100より直接データの転送をできるネットワーク4400に接続されたストレージ装置4900であっても動作は同じである。
【0385】
この記憶システム4000では、第1のストレージサブシステム4100の動的記憶領域割り当て機能を使用したボリュームから、動的記憶領域割り当て機能とは関係のないバックアップサーバ4700が管理するテープデバイス4800へのバックアップを行う。
【0386】
ただし、バックアップを制御するバックアップサーバ4700では、バックアップ元ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。
【0387】
バックアップサーバ4700のCPU4701は、バックアップ元ボリューム内のデータのバックアップに先立ち、第1のストレージサブシステム4100に対して、対象のボリュームに対する記憶領域を割当てた箇所を特定するための情報のバックアップを要求する。これは、動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【0388】
該バックアップ要求を受けた第1の制御装置4110のCPU4111は、動的記憶領域割当てプログラム4121により、記憶領域管理テーブル4123を参照し、記憶領域を割当てた箇所についての情報をビットマップ化して作成(以降、該情報を「割当てビットマップ」と呼ぶ)し、該割り当てビットマップをバックアップサーバ4700に対して送信する。
【0389】
バックアップサーバ4700のCPU4701は、受信した割当てビットマップの情報を、バックアップ記憶領域テーブル4711に格納し、バックアップ先のステープデバイス4800と対応付けて管理する。
【0390】
バックアップサーバ4700のCPU4701は、割当てビットマップの格納の後、第1の制御装置4110のバックアップ元ボリュームに対して、ボリュームの全領域のデータに対する読み出し要求を行い、これをテープデバイス4800に格納する。ボリュームの全領域のデータ格納完了に伴い、本バックアップも完了となる。
【0391】
次に、前述のバックアップしたデータを元とするバックアップサーバ4700を介したテープデバイス4800から第1のストレージサブシステム4100へのデータのリストアの制御方式について説明を行う。
【0392】
ここでは、リストア元の物理デバイスを、第1のストレージサブシステム4100から直接データの転送をできるネットワーク4400とは独立したネットワーク上にあるテープデバイス4800として説明を行うが、リストア元の物理デバイスが、第1のストレージサブシステム4100から直接データの転送をできるネットワーク4400に接続されたストレージ装置4900であっても動作は同じである。
【0393】
この記憶システム4000では、動的記憶領域割り当て機能とは関係のない、バックアップサーバ4700が管理するテープデバイス4800から、第1のストレージサブシステム4100の動的記憶領域割り当て機能を使用したボリュームへのリストアを行う。
【0394】
ただし、リストアを制御するバックアップサーバ4700では、リストア先ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。また、バックアップ時にバックアップ元ボリュームが動的記憶領域割り当て機能を使用していたことは、バックアップ時に取得した割り当てビットマップ有無等の情報を基に判断可能である。
【0395】
バックアップサーバ4700のCPU4701は、リストア開始時に、バックアッププログラム4710により、第1のストレージサブシステム4100のリストア先ボリュームを指定して初期化を要求し、該ボリュームに割当てられている全記憶領域の解放を行う。
【0396】
バックアップサーバ4700のCPU4701は、全記憶領域の解放後、バックアッププログラム4710により、割当てビットマップを参照し、記憶領域が割当てられていた箇所についてのみテープデバイス3800に格納されているリストア元データを送信する。全ての、記憶領域が割当てられていた箇所のリストア元データ送信完了に伴い、本リストア処理は完了となる。
【0397】
図24は、バックアップサーバ4700を用いた、本実施の形態における第1のストレージサブシステム4100の動的記憶領域割り当て機能を使用するボリュームから、テープデバイス4800へのバックアップ処理の動作概要についてのフローチャートを示している。
【0398】
まず、バックアップサーバ4700のCPU4701は、ステップS410にて、第1のストレージサブシステム4100における動的記憶領域割り当て機能を使用しているボリュームに対するバックアップの開始を要求する。
【0399】
この後、バックアップサーバ4700のCPU4701は、第1の制御装置4110において、バックアップ要求と共に、当該バックアップサーバ4700から通知した通知内容に不備がないかチェックを行う為、ステップS411へ進む。
【0400】
第1の制御装置4110のCPU4111は、ステップS411にて、動的記憶領域割り当て機能を使用しているとバックアッププログラム4710において認識しているボリュームに対し、該動的記憶領域割り当て機能を使用しているボリュームの情報の正当性を調査する。
【0401】
第1の制御装置4110のCPU4111は、ステップS411にて、ボリューム管理プログラム4120の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していないことが判明した場合、バックアップサーバ4700のバックアップ要求に対して、動的記憶領域割り当て機能との連携の失敗を通知するステップS416へ進む。
【0402】
バックアップサーバ4700のCPU4701は、ステップS416にて、動的記憶領域割り当て機能との連携ができないことを検知すると、ステップS417に進み、ステップS417にて、動的記憶領域割り当て機能を使用しないボリュームと同様に、対象のボリュームを、バックアップ時の割当てビットマップ管理を必要としない通常のバックアップ方式に変更する。
【0403】
なお、バックアップサーバ4700のCPU4701は、ステップS417へ進まずに、ステップS406の時点でバックアップ失敗としても良い。
【0404】
バックアップサーバ4700のCPU4701は、この後、ステップS415へ進み、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス4800への格納を行う。
【0405】
一方、第1の制御装置4110のCPU4111は、ステップS411にて、ボリューム管理プログラム4120の対象のボリュームの情報を取得し、該ボリュームが動的記憶領域割り当て機能を使用していることが判明した場合、ステップS412に進み、ステップS412にて、記憶領域管理テーブル4123を基に記憶領域を割当てている箇所を特定し、割当てビットマップを作成する。
【0406】
第1の制御装置4110のCPU4111は、その後、ステップS413にて、作成したビットマップを、バックアップサーバ4700に送信する。
【0407】
バックアップサーバ4700のCPU4701は、ステップS414にて、第1の制御装置4110から送信された割当てビットマップをバックアップ記憶領域テーブル4711に格納する。その後、バックアップサーバ4700のCPU4701は、ステップS415へ進む。
【0408】
バックアップサーバ4700のCPU4701は、ステップS411より始まる動的記憶領域割り当て機能と連携するバックアップ処理の前準備が完了した後、ステップS415に進み、ステップS415にて、バックアップ元ボリュームの全領域のデータを読み出し、テープデバイス4800への格納を行う。ステップS415の完了に伴い、バックアップ処理が完了する。
【0409】
図25は、バックアップサーバ4700を用いた、本実施の形態におけるテープデバイス3800から第1のストレージサブシステム4100の動的記憶領域割り当て機能を使用するボリュームへのリストア処理の動作概要についてのフローチャートを示している。
【0410】
まず、バックアップサーバ4700のCPU4701は、ステップS430にて、リストア先ボリュームが、動的記憶領域割り当て機能を使用してバックアップを行っていたかを調査する。バックアップサーバ4700のCPU4701は、これに該当しない場合には、ステップS438へ進み、通常のボリュームと同様にバックアップ先ボリュームの全領域に対してデータの書き込みを行うことでリストアを行う。
【0411】
一方、バックアップサーバ4700のCPU4701は、動的記憶領域割り当て機能を使用してバックアップを行っていた場合には、ステップS431へ進み、リストア先ボリュームが割当てている記憶領域の解放を行うため、第1のストレージサブシステム4100に対して初期化の要求を発行し、ステップS432へ進む。
【0412】
第1の制御装置4110のCPU4111は、初期化要求を受信すると、ステップS432にて、ボリューム管理プログラム4120を使用して、対象のボリュームに対し、記憶領域の解放が必要であるのか、全領域に対する「0」データの書き込みが必要であるのかを判断する。第1の制御装置4110のCPU4111は、判断の結果、対象のボリュームが動的記憶領域割り当て機能を使用しているならば、ステップS434へ進み、使用していないならばステップS437へ進む。
【0413】
第1の制御装置4110のCPU4111は、ステップS434にて、ボリューム管理プログラム4120により、動的記憶領域割当てプログラム4121を起動し、対象のボリュームに対して割当てている記憶領域の割当てを解放する。第1の制御装置4110のCPU4111は、この後、ステップS435へ進む。
【0414】
第1の制御装置4110のCPU4111は、ステップS437にて、ボリューム管理プログラム4120にて対象のボリュームの初期化処理を行う。ここで述べる初期化処理とは、対象のボリュームの全領域に対し「0」等のデータを格納し、ボリュームに格納しているデータを無効化する処理を指す。第1の制御装置4110のCPU4111は、この後、ステップS435へ進む。なお、ステップS434とステップS437の完了時の対象のボリュームに格納されるデータを読み出した場合、両者の間に相違はない。
【0415】
バックアップサーバ3700のCPU3701は、ステップS435にて、バックアッププログラム4410により、割当てビットマップを調査し、バックアップ時に記憶領域を割当てていた箇所についてのみ、第1のストレージサブシステム4100に送信する。そして、第1の制御装置4110のCPU4111は、バックアップ時に記憶領域を割当てていた箇所についてのみ、記憶領域を割り当て、リストア先ボリュームにデータの書き込みを行う。記憶領域を割当てていなかった箇所については書き込みを行わない。以上をもってリストア処理は完了となる。
【0416】
図26は、バックアッププログラム4410により、動的記憶領域割り当て機能を使用するリストア先ボリュームへのデータ書き込み処理であるステップS435を詳細化した処理の動作概要についてのフローチャートを示している。
【0417】
バックアップサーバ4700のCPU4701は、ステップS460にて、取得した割当てビットマップを基に、バックアッププログラム4411により書き込みを行うか否かを判断する。ここで、バックアップサーバ4700のCPU4701は、対象格納位置に対して記憶領域の割当てがあるならば、該記憶領域上にデータを書き込むためステップS461へ進む。
【0418】
一方、バックアップサーバ4700のCPU4701は、対象格納位置に対して記憶領域の割当てがないならば、該記憶領域上にデータを書き込む必要がないため処理完了となる。
【0419】
第1の制御装置4110のCPU4111は、ステップS461にて、バックアップ時の記憶領域に格納していたデータを復元するため、受信したデータを該記憶領域に格納する。以上で、データ格納処理が完了する。
【0420】
このようにして、記憶システム4000では、第1のストレージサブシステム4100において、動的に記憶領域を割当てる機能を使用するボリュームからのデータをバックアップする際に、記憶領域を割当てたボリューム内のデータ位置を特定する情報から、割り当てビットマップを作成し、該割り当てビットマップをバックアップサーバ4700に送信し、バックアップサーバ4700の記憶領域テーブル4711に格納すると共に、バックアップサーバ4700において、該割り当てビットマップをバックアップ先のテープデバイス3800と対応付けて管理を行う。
【0421】
そして、記憶システム4000では、該バックアップしたデータによりリストアする場合、バックアップサーバ3700において、格納された割当てビットマップを調査し、バックアップ時に記憶領域を割当てていた箇所についてのみ、第1のストレージサブシステム4100に送信し、第1の制御装置4110のCPU4111において、バックアップ時に記憶領域を割当てていた箇所についてのみ、記憶領域を割り当て、リストア先ボリュームにデータの書き込みを行う。
【0422】
これにより、記憶システム4000では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【0423】
(5)第1の実施の形態
(5−1)第5の実施の形態における記憶システムの構成
図27は、本発明を適用した記憶システムの第5の実施の形態における構成を示す図である。本実施の形態による記憶システム5000は、第1のストレージサブシステム5100、第2のストレージサブシステム5200及びホスト計算機5300が例えばSAN等のネットワーク5400により接続されて構成されている。
【0424】
なお、本実施の形態においては、第1のストレージサブシステム5100、第2のストレージサブシステム5200及びホスト計算機5300が同一のネットワーク5400に接続された構成としてここに示しているが、この構成以外にも、第1のストレージサブシステム5100及びホスト計算機5300間のネットワークと、第1のストレージサブシステム5100及び第2のストレージサブシステム5200間のネットワークが分離した構成でも良い。
【0425】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をRAIDやJBOD構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【0426】
第1のストレージサブシステム5100は、第1の制御装置5110と第1の管理端末5130から構成され、ボリュームの作成や各種機能の設定や保守操作を第1の管理端末5130により行うことができる。また、各種機能の設定はホスト計算機5300により行うこともできる。
【0427】
また、第1のストレージサブシステム5100は、所定のネットワーク5500により外部ストレージ装置5600と接続されている。
【0428】
第1の制御装置5110は、当該第1の制御装置5110全体を制御する1個以上のCPU5111、ネットワーク5400との接続のためのネットワークI/F5112、ネットワーク5500との接続のためのネットワークI/F5113、第1の管理端末5130との接続のためのNIC5114、複数のハードディスクドライブ等でなり、当該第1の制御装置5110の各種設定情報やプログラム等が格納されていると共に、ホスト計算機5300から送信されるデータが格納される内部ストレージ装置5115、及び当該各種設定情報やプログラム等が展開されるメモリ5116から構成されている。
【0429】
内部ストレージ装置5115には、記憶領域管理テーブル5123が格納されている。なお、記憶領域管理テーブル5123は、内部ストレージ装置5115に格納されているが、以下のように、一時的にメモリ5116に格納することで、内部ストレージ装置5115の参照及び更新に対する性能向上を図っても良い。
【0430】
メモリ5116には、ボリューム管理プログラム5120、動的記憶領域割当てプログラム5121、遠隔コピー管理プログラム5122、及び記憶領域管理テーブル5123が展開されている。このボリューム管理プログラム5120、動的記憶領域割当てプログラム5121、遠隔コピー管理プログラム5122は、CPU5111によって実行されるプログラムである。
【0431】
第1の管理端末5130は、当該第1の管理端末5130全体を制御する1個以上のCPU5131、当該第1の制御装置5110の各種設定情報やプログラム等が格納されている記憶装置5132、各種設定情報やプログラム等が展開されるメモリ5133及び第1の制御装置5110との接続のためのNIC5134から構成されている。
【0432】
一方、第2のストレージサブシステム5200は、第2の制御装置5210と第2の管理端末5230から構成され、ボリュームの作成や各種機能の設定や保守操作を第2の管理端末5230により行うことができる。
【0433】
第2の制御装置5210は、ネットワーク5500との接続のためのネットワークI/Fが設けられていないこと、及びメモリ5116に動的記憶領域割当てプログラム、及び記憶領域管理テーブルが展開されていない(設けられていない)ことを除いて、第1の制御装置5110と同様に構成されており、CPU5211、ネットワークI/F5212、NIC5214、内部ストレージ装置5215及びメモリ5216から構成されている。
【0434】
メモリ5216には、ボリューム管理プログラム5220、遠隔コピー管理プログラム5221が展開されている。このボリューム管理プログラム5220、遠隔コピー管理プログラム5221は、CPU5211によって実行されるプログラムである。
【0435】
第2の管理端末5230は、第2の管理端末5230と同様に構成されており、CPU5231、記憶装置5232、メモリ5233及びNIC5234から構成されている。
【0436】
他方、ホスト計算機5300は、CPU5301及びネットワーク5400との接続のためのネットワークI/F5302を有するコンピュータ装置であり、例えばUNIX(登録商標)やWindows(登録商標)をOSとするサーバなどから構成される。また、ホスト計算機5300は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機5300は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【0437】
この場合、第1のストレージサブシステム5100のボリュームの管理は、ストレージ制御装置5110のメモリ5116に格納されているボリューム管理プログラム5120がCPU5111に実行されることにより動作する。
【0438】
第1のストレージサブシステム5100は、外部ストレージ装置5600を内部ストレージ装置5115と同様に扱い、ホスト計算機5300に提供するボリュームを構成するストレージ装置としても良い。また、第1のストレージサブシステム5100は、内部ストレージ装置5115を持たず、外部ストレージ装置5600のみでボリュームをホスト計算機5300に対して提供しても良い。なお、外部ストレージ装置5600は、他のストレージサブシステムが提供するボリュームであっても良い。
【0439】
第1のストレージサブシステム5100は、ボリュームを提供する場合、ホスト計算機5300によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置5115及び外部ストレージ装置5600の物理デバイス(ハードディスクドライブ等)の特定領域を指す。
【0440】
動的記憶領域割り当て機能は、メモリ5116に格納されるボリューム管理プログラム5120及び動的記憶領域割当てプログラム5121がCPU1111に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム1121は、記憶領域管理テーブル5123に格納された情報を基に動作する。
【0441】
第2のストレージサブシステム5200は、動的記憶領域割り当て機能を有さないストレージサブシステムとして本説明では述べるが、第1のストレージサブシステム5100同様に、動的記憶領域割り当て機能を有すストレージサブシステムであっても良い。
【0442】
第1のストレージサブシステム5100及び第2のストレージサブシステム5200は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【0443】
ここで、第1のストレージサブシステム5100のボリュームを複製元とし、第2のストレージサブシステム5200のボリュームを複製先とした場合、遠隔コピー管理プログラム5122がCPU5111に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0444】
逆に、第2のストレージサブシステム5200のボリュームを複製元とし、第1のストレージサブシステム5100のボリュームを複製先とした場合、遠隔コピー管理プログラム5222がCPU5211に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0445】
なお、第1のストレージサブシステム5100のボリュームを複製元とし、第2のストレージサブシステム5200のボリュームを複製先とした場合、第1のストレージサブシステム5100のボリュームをバックアップ元ボリューム、第2のストレージサブシステム5200のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【0446】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【0447】
また、バックアップを行った後に、第2のストレージサブシステム5200のボリュームを複製元、第1のストレージサブシステム5100のボリュームを複製先とした場合、第2のストレージサブシステム5200のボリュームをリストア元ボリューム、第1のストレージサブシステム5100のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【0448】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【0449】
図28は、第1のストレージサブシステム5100及び第2のストレージサブシステム5200の論理的なボリュームについてのシステム構造を示している。
【0450】
第1のストレージサブシステム5100は、動的記憶領域割り当て機能を使用するボリュームである動的記憶領域割り当てボリューム5140を1個以上有している。該動的記憶領域割り当てボリューム5140は、ホスト計算機5300による書き込み要求を受けてプールグループ5150内の記憶領域の一部を動的記憶領域割り当てボリューム5140の書き込みが発生した領域に対して割り当てる。
【0451】
プールグループ5140は、任意の動的記憶領域割り当て機能を使用しないボリュームを、プールボリューム5151と設定し、その一部の領域を動的記憶領域割り当てボリューム5140に対して割当てる記憶領域として使用することができる。
【0452】
ここで、プールボリューム5151内には、記憶領域管理テーブル5123が動的記憶領域割り当てボリューム5140に対して割当てるための記憶領域と共に格納されている。なお、記憶領域管理テーブル5123は、動的記憶領域割り当てボリューム5140の任意の領域と、該動的記憶領域割り当てボリューム5140に割当てた該プールボリューム5151の対応を記録する為のテーブルである。
【0453】
ストレージサブシステム5200には、プールボリューム5151により複製可能なサイズを持つボリューム5251を有している。プールグループ5150内にプールボリューム5151が複数個存在するならば、プールボリューム5151の数及び個々のプールボリューム5151とサイズを同じとするボリューム5251が必要となる。
【0454】
この記憶システム5000では、プールグループ5150内のプールボリューム5151をバックアップすることで、同一のプールグループ5150を記憶領域の割当てに使用している動的記憶領域割り当てボリューム5140をまとめてバックアップを行い、該バックアップしたデータによりリストアを行う。
【0455】
(5−2)第5の実施の形態におけるバックアップ及びリストアの制御方式
以下、本実施の形態における第1のストレージサブシステム5100から第2のストレージサブシステム5200に対するバックアップの制御方式について説明を行う。
【0456】
この記憶システム5000では、リモートコピー機能により、ストレージサブシステム5100において、遠隔コピー管理プログラム5122が、第2のストレージサブシステム5200において、遠隔コピー管理プログラム5222が動作する。
【0457】
第1の制御装置5110のCPU5111は、バックアップ時には、遠隔コピー管理プログラム5122により、ネットワーク5400を通して、バックアップ元のプールボリューム5151からバックアップ先ボリューム5251に対するコピー処理を行う。
【0458】
ここで、第1の制御装置5110のCPU5111は、プールグループ5150内の全プールボリューム5151の記憶領域管理テーブル5123を記憶領域と共に、バックアップ先ボリューム5251に複製するため、動的記憶領域割り当てボリューム5140が使用する記憶領域の情報に消失がない。このようにして、第1の制御装置5110のCPU5111は、バックアップするデータを複製する。
【0459】
次に、第2のストレージサブシステム5200から第1のストレージサブシステム5100に対するリストアの制御方式について説明を行う。
【0460】
第2の制御装置5210のCPU5211は、リストア時には、遠隔コピー管理プログラム5222により、ネットワーク5400を通して、リストア元ボリューム5251からリストア先のプールボリューム5151に対するコピー処理を行う。
【0461】
ここで、第2の制御装置5210のCPU5211は、リストア元ボリューム5241の記憶領域管理テーブル5123を記憶領域と共に、プールボリューム5151に複製する。該リストアボリューム5251は、バックアップ時の動的記憶領域割り当てボリューム5151が使用していた情報を全て含んでいるため、バックアップ時の動的記憶領域割り当てボリューム5140を復元することができる。
【0462】
なお、本実施の形態を用いて、第2のストレージサブシステム5200側に動的記憶領域割り当て機能仕様可能なストレージサブシステムを使用し、バックアップ先ボリューム5251を、プールグループ5150と同構成のプールグループとすることで、第1のストレージサブシステム5100側で災害が発生した場合に、第2のストレージサブシステム5200にシステムを移行し、業務を継続する方法が応用可能である。
【0463】
このようにして、記憶システム5000では、プールボリューム5151に、バックアップするデータと共に、当該データが記憶された割り当て箇所を示す記憶領域管理テーブル5123を格納し、プールグループ5150内の全プールボリューム5151の記憶領域管理テーブル5123を、バックアップするデータと共に、バックアップ先ボリューム5251に複製する。
【0464】
これにより、記憶システム5000では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【0465】
(6)第6の実施の形態
(6−1)第1の実施の形態における記憶システムの構成
図29は、本発明を適用した記憶システムの第6の実施の形態における構成を示す図である。本実施の形態による記憶システム6000は、第1のストレージサブシステム6100、第2のストレージサブシステム6200及びホスト計算機6300が例えばSAN等のネットワーク6400により接続されて構成されている。
【0466】
なお、本実施の形態においては、第1のストレージサブシステム6100、第2のストレージサブシステム6200及びホスト計算機6300が同一のネットワーク6400に接続された構成としてここに示しているが、この構成以外にも、第1のストレージサブシステム6100及びホスト計算機6300間のネットワークと、第1のストレージサブシステム6100及び第2のストレージサブシステム6200間のネットワークが分離した構成でも良い。
【0467】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をRAIDやJBOD構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【0468】
第1のストレージサブシステム6100は、第1の制御装置6110と第1の管理端末6130から構成され、ボリュームの作成や各種機能の設定や保守操作を第1の管理端末6130により行うことができる。また、各種機能の設定はホスト計算機6300により行うこともできる。
【0469】
また、第1のストレージサブシステム6100は、所定のネットワーク6500により外部ストレージ装置6600と接続されている。
【0470】
第1の制御装置6110は、当該第1の制御装置6110全体を制御する1個以上のCPU6111、ネットワーク6400との接続のためのネットワークI/F6112、ネットワーク6500との接続のためのネットワークI/F6113、第1の管理端末6130との接続のためのNIC6114、複数のハードディスクドライブ等でなり、当該第1の制御装置6110の各種設定情報やプログラム等が格納されていると共に、ホスト計算機6300から送信されるデータが格納される内部ストレージ装置6115、及び当該各種設定情報やプログラム等が展開されるメモリ6116から構成されている。
【0471】
メモリ6116には、ボリューム管理プログラム6120、動的記憶領域割当てプログラム6121、遠隔コピー管理プログラム6122、記憶領域管理テーブル6123及び差分管理テーブル6125が展開されている。このボリューム管理プログラム6120、動的記憶領域割当てプログラム6121、遠隔コピー管理プログラム6122は、CPU6111によって実行されるプログラムである。
【0472】
第1の管理端末6130は、当該第1の管理端末6130全体を制御する1個以上のCPU6131、当該第1の制御装置6110の各種設定情報やプログラム等が格納されている記憶装置6132、各種設定情報やプログラム等が展開されるメモリ6133及び第1の制御装置6110との接続のためのNIC6134から構成されている。
【0473】
一方、第2のストレージサブシステム6200は、第2の制御装置6210と第2の管理端末6230から構成され、ボリュームの作成や各種機能の設定や保守操作を第2の管理端末6230により行うことができる。
【0474】
第2の制御装置6210は、ネットワーク6500との接続のためのネットワークI/Fが設けられていないこと、及びメモリ6116に動的記憶領域割当てプログラム、及び記憶領域管理テーブルが展開されていない(設けられていない)ことを除いて、第1の制御装置6110と同様に構成されており、CPU6211、ネットワークI/F6212、NIC6214、内部ストレージ装置6215及びメモリ6216から構成されている。
【0475】
メモリ6216には、ボリューム管理プログラム1220、遠隔コピー管理プログラム1221、及び差分管理テーブル6225が展開されている。このボリューム管理プログラム6220、遠隔コピー管理プログラム6221は、CPU6211によって実行されるプログラムである。
【0476】
第2の管理端末6230は、第2の管理端末6230と同様に構成されており、CPU6231、記憶装置6232、メモリ6233及びNIC6234から構成されている。
【0477】
他方、ホスト計算機6300は、CPU6301及びネットワーク6400との接続のためのネットワークI/F6302を有するコンピュータ装置であり、例えばUNIX(登録商標)やWindows(登録商標)をOSとするサーバなどから構成される。また、ホスト計算機6300は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機6300は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【0478】
この場合、第1のストレージサブシステム6100のボリュームの管理は、ストレージ制御装置6110のメモリ6116に格納されているボリューム管理プログラム6120がCPU6111に実行されることにより動作する。
【0479】
第1のストレージサブシステム6100は、外部ストレージ装置6600を内部ストレージ装置6115と同様に扱い、ホスト計算機6300に提供するボリュームを構成するストレージ装置としても良い。また、第1のストレージサブシステム6100は、内部ストレージ装置6115を持たず、外部ストレージ装置6600のみでボリュームをホスト計算機6300に対して提供しても良い。なお、外部ストレージ装置6600は、他のストレージサブシステムが提供するボリュームであっても良い。
【0480】
第1のストレージサブシステム6100は、ボリュームを提供する場合、ホスト計算機6300によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置6115及び外部ストレージ装置6600の物理デバイス(ハードディスクドライブ等)の特定領域を指す。
【0481】
動的記憶領域割り当て機能は、メモリ6116に格納されるボリューム管理プログラム6120及び動的記憶領域割当てプログラム6121がCPU6111に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム6121は、記憶領域管理テーブル6123に格納された情報を基に動作する。
【0482】
この動的記憶領域割り当て機能では、ホスト計算機6300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム6121により、記憶領域管理テーブル6123を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル6123に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【0483】
また、動的記憶領域割り当て機能では、ホスト計算機6300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム6121により、記憶領域管理テーブル6123を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル6123に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【0484】
さらに、動的記憶領域割り当て機能では、ホスト計算機6300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム1120により、記憶領域管理テーブル6123を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「0」等の予め決められたパターンをホスト計算機6300に対して送信する。
【0485】
さらに、動的記憶領域割り当て機能では、ホスト計算機6300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム6120により、記憶領域管理テーブル6123を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル6123に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機6300に対して送信する。
【0486】
第2のストレージサブシステム6200は、動的記憶領域割り当て機能を有さない、若しくは動的記憶領域割り当て機能を有していてもその機能が動作していない、若しくは動的記憶領域割り当て機能を有していても、第1のストレージサブシステム6100と動的記憶領域割り当て機能について連携を行うことができないストレージサブシステムである。
【0487】
なお、第2のストレージサブシステム6200が動的記憶領域割り当て機能を有している場合でも、本実施の形態を用いることができるが、その場合には本実施の形態以外の方法を使用するのが望ましい。
【0488】
第1のストレージサブシステム6100及び第2のストレージサブシステム6200は、互いにリモートコピー機能を有している。リモートコピー機能とは、異なるストレージサブシステムのボリュームを指定して、これらをそれぞれ複製元及び複製先として、複製元のボリューム内のデータを複製先のボリュームに転送して複製を行う機能である。
【0489】
ここで、第1のストレージサブシステム6100のボリュームを複製元とし、第2のストレージサブシステム6200のボリュームを複製先とした場合、遠隔コピー管理プログラム6122がCPU6111に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0490】
逆に、第2のストレージサブシステム6200のボリュームを複製元とし、第1のストレージサブシステム6100のボリュームを複製先とした場合、遠隔コピー管理プログラム6222がCPU6211に実行されることにより複製元ボリュームのデータを複製先ボリュームに送信することで制御を行う。
【0491】
なお、第1のストレージサブシステム6100のボリュームを複製元とし、第2のストレージサブシステム6200のボリュームを複製先とした場合、第1のストレージサブシステム6100のボリュームをバックアップ元ボリューム、第2のストレージサブシステム6200のボリュームをバックアップ先ボリュームと呼び、この複製処理をバックアップと呼ぶ。
【0492】
なお、バックアップとは、任意の時点におけるあるストレージサブシステムのボリューム内のデータを、他のストレージサブシステムのボリュームに送信することでボリュームを複製することをいう。
【0493】
また、バックアップを行った後に、第2のストレージサブシステム6200のボリュームを複製元、第1のストレージサブシステム6100のボリュームを複製先とした場合、第2のストレージサブシステム6200のボリュームをリストア元ボリューム、第1のストレージサブシステム6100のボリュームをリストア先ボリュームと呼び、この複製処理をリストアと呼ぶ。
【0494】
なお、リストアとは、あるストレージサブシステムのボリュームにおけるデータ消失等の災害時に、他のストレージサブシステムのボリュームに該バックアップしたデータを、あるストレージサブシステムのボリュームに戻すことで、あるストレージサブシステムのボリュームをバックアップ時点に復元することをいう。
【0495】
リモートコピー機能では、バックアップ元の第1のストレージサブシステム6100のボリュームから、バックアップ先の第2のストレージサブシステム6200のボリュームへのコピー完了後、両者のデータを同期させないモードに移行する機能を有する。該機能を「スプリット」と呼ぶ。
【0496】
この場合、第1の制御装置6110のCPU6111は、スプリット後、第1のストレージサブシステム6100に対して、書き込み要求が発生した場合、対象のデータ位置に対して更新が発生したことを差分管理テーブル6125に格納する。
【0497】
また、第2の制御装置6210のCPU6211は、スプリット後、ストレージサブシステム6200に対して書き込み要求が発生した場合、対象のデータ位置に対して更新が発生したことを差分管理テーブル6225に格納する。
【0498】
また、記憶システム6000では、バックアップしたデータをリストアする場合、該差分管理テーブル6214を基に、変更があった箇所についてのみデータを転送することで、ボリューム全体のデータを転送することなく効率的にリストアを行う差分リストア機能を有している。
【0499】
(6−2)第6の実施の形態におけるバックアップ及びリストアの制御方式
以下に、本実施の形態における第1のストレージサブシステム6100から第2のストレージサブシステム6200に対するバックアップの制御方式について説明を行う。
【0500】
この記憶システム6000では、第1のストレージサブシステム6100の動的記憶領域割り当て機能を使用するボリュームにより、第2のストレージサブシステム6200のボリュームに対してリモートコピー機能によるバックアップを行う。
【0501】
第1のストレージサブシステム6100の動的記憶領域割り当て機能を使用するボリュームと第2のストレージサブシステム6200のボリュームとの間のリモートコピー機能によるバックアップは、第1のストレージサブシステム6100側では、ボリューム管理プログラム6120と、遠隔コピー管理プログラム6122と、動的記憶領域割当てプログラム6121とがCPU6111に実行されることにより動作する。
【0502】
一方、第2のストレージサブシステム6200側では、ボリューム管理プログラム6220と、遠隔コピー管理プログラム6222とがCPU6211に実行されることにより動作する。
【0503】
このうち、ボリューム管理プログラム6120及びボリューム管理プログラム6220は、対象のボリュームが動的記憶領域割り当て機能を使用するか否かを管理する。また、遠隔コピー管理プログラム6122及び遠隔コピー管理プログラム6222は、ネットワーク6400を通してバックアップ元ボリュームからバックアップ先ボリュームに対するバックアップを行う。
【0504】
本バックアップは、ホスト計算機6300若しくは第1のストレージサブシステム6100の第1の管理端末6130から、第1の制御装置6110に対してバックアップ要求を発行し、ネットワーク6400を介して第2のストレージサブシステム1200の第2の制御装置6210にバックアップ要求を転送し、第2の制御装置6210が該バックアップ要求を受信した後に開始する。
【0505】
該バックアップ要求は、ホスト計算機6300若しくは第2の管理端末6220から、第2の制御装置6210に対して発行しても良い。この場合、本バックアップは、ネットワーク6400を介して第2のストレージサブシステム6200のストレージ制御装置6210より第1のストレージサブシステム6100のストレージ制御装置6110にバックアップ要求を転送し、第1の制御装置6110が該バックアップ要求を受信した後に開始する。
【0506】
リモートコピー機能では、基本的に対象のボリューム全体のデータを遠隔コピー管理プログラム6122が送信することでバックアップを行うが、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームである場合、記憶領域を割当てなかった場合のバックアップ元ボリュームのデータを送信する。
【0507】
なお、リモートコピー機能では、該バックアップ処理を行う代わりに、第2のストレージサブシステム6200側の対象のボリュームに対して初期化を行うように要求しても良い。ただし、この場合、動的記憶領域割り当て機能を使用するボリュームである場合、第1のストレージサブシステム6100の記憶領域を割当てなかった場合のバックアップ元ボリュームのデータと、初期化後の第2のストレージサブシステム6200のデータとが一致する必要がある。
【0508】
遠隔コピー管理プログラム6122は、データ送信後、リモートコピー機能の状態をスプリットし、ボリューム変更箇所を差分管理テーブル6125及び差分管理テーブル6225への格納する機能を有効化する。
【0509】
動的記憶領域割当てプログラム6121は、スプリット後、記憶領域管理テーブル6123を基に、バックアップ元ボリュームの記憶領域を割当てたデータ領域を特定し、該データ領域と対応している記憶領域に格納されたデータを、バックアップ先の該データ領域と同一の領域に書き込む。
【0510】
これにより、記憶システム6000では、第1のストレージサブシステム6100が記憶領域を割当てた箇所についての情報を差分管理テーブル6225に格納する。
【0511】
以下、本実施の形態における前述のバックアップしたデータを元とした第2のストレージサブシステム6200から第1のストレージサブシステム6100に対するリストアの制御方式について説明を行う。
【0512】
第1のストレージサブシステム6100のボリューム障害が発生した場合、ホスト計算機6300やストレージ管理端末6120やストレージ管理端末6220は、バックアップ先ボリュームの更新の箇所データをバックアップ元ボリュームに対してコピーする差分リストア処理を要求する。
【0513】
このとき、ボリューム管理プログラム6120は、リストア先が第1のストレージサブシステム6100の動的記憶領域割り当て機能を使用するボリュームであることを検出した場合、リストア先ボリュームに割当てられた記憶領域を全て解放するよう動的記憶領域割当てプログラム6121に要求する。該解放要求を受けた動的記憶領域割当てプログラム6121は、対象のボリュームに割当てられた全領域を解放する。
【0514】
遠隔コピー管理プログラム6222は、記憶領域の解放後、第1のストレージサブシステム6100に対して差分データを送信する。データを受信した第1のストレージサブシステム6100では、対象のボリュームが動的記憶領域割り当て機能を使用しているため、通常の書き込み処理と同様に、データが送信された箇所についてのみ記憶領域を割り当て、ここにデータの格納を行う。
【0515】
このように、第1のストレージサブシステム6100では、記憶領域の割当てと、割当てられた記憶領域に格納されたデータを復元することで、該第1のストレージサブシステム6100の対象のボリュームのデータを復元し、なおかつ対象のボリュームに対してバックアップ前に割当てていた記憶領域も復元することができる。
【0516】
図30は、リモートコピーを用いたバックアップにおける、データの送信元であるバックアップ元である第1のストレージ制御装置6110での、ボリューム管理プログラム6120と遠隔コピー管理プログラム6122と動的記憶領域割当てプログラム6121の連携制御方式の動作概要についてのフローチャートを示している。
【0517】
まず、第1の制御装置6110のCPU6111は、ステップS600にて、バックアップ元ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム6120を呼び出し、調査を行う。
【0518】
第1の制御装置6110のCPU6111は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、通常のリモートコピー機能として、対象のボリューム内全領域のデータを全てバックアップ先ボリュームに対して転送するステップS601に進む。なお、本転送処理は、遠隔コピー管理プログラム6122が行う。
【0519】
一方、第1の制御装置6110のCPU6111は、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、ステップS602に進み、遠隔コピー管理プログラム6122がリモートコピーを実行することを動的記憶領域割当てプログラム6121に通知する。
【0520】
第1の制御装置6110のCPU6111は、通知を受けた動的記憶領域割当てプログラム6118により、バックアップ元ボリュームのデータ読み出しの際、記憶領域の割り当てがないものとして扱う。
【0521】
第1の制御装置6110のCPU6111は、ボリューム全体のデータ転送完了後、再び動的記憶領域割当てプログラム6118が動的記憶領域割当てプログラム6118に完了を通知した後、ステップS603へ進む。
【0522】
第1の制御装置6110のCPU6111は、ステップS603にて、遠隔コピー管理プログラム6122により、遠隔コピー管理プログラム6222へスプリットを行うことを通知する。
【0523】
この後、第2の制御装置6110のCPU6211は、バックアップ先ボリュームに書き込み要求を受けた場合には、遠隔コピー管理プログラム6222が差分管理テーブル6225に更新の発生を記録する。また、第1の制御装置6110のCPU6111は、バックアップ元ボリュームに書き込み要求を受けた場合には、遠隔コピー管理プログラム6122が差分管理テーブル6125に更新の発生を記録する。スプリット完了の後、ステップS604へ進む。
【0524】
第1の制御装置6110のCPU6111は、ステップS604にて、バックアップ元ボリュームのデータが未送信であるため、これをバックアップ先ボリュームへの送信を行う。第1の制御装置6110のCPU6111は、送信を行うために、動的記憶領域割当てプログラム6121に対して記憶領域を割り当てた箇所及び割当てられた記憶領域の特定を要求する。
【0525】
第1の制御装置6110のCPU6111は、これを受け、動的記憶領域割当てプログラム6121により、記憶領域管理テーブル6123を参照し、記憶領域の割当て箇所及び記憶領域の特定処理を行う。
【0526】
そして、第1の制御装置6110のCPU6111は、遠隔コピー管理プログラム6122により、該記憶領域のデータを第2のストレージサブシステム6200に対して書き込みを要求し、ステップS605へ進む。
【0527】
第2の制御装置6210のCPU6211は、ステップS605にて、データ書き込みの要求を受けた遠隔コピー管理プログラム6222が書き込み箇所に対して更新が発生したことを差分管理テーブル6225に格納する。ここで、更新が発生した箇所とは、第1のストレージサブシステム6100にて記憶領域を割当てた箇所に相当する。本処理完了に伴い、バックアップ完了となる。
【0528】
図31は、リモートコピーを用いたバックアップデータからのリストア方式の動作概要についてのフローチャートを示している。
【0529】
まず、第2の制御装置6110のCPU6211は、ステップS610にて、リストア先ボリュームが動的記憶領域割り当て機能を使用するボリュームであるかボリューム管理プログラム6120を呼び出し、調査を行う。
【0530】
第2の制御装置6110のCPU6211は、ステップS610にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用しないボリュームであることが判明した場合、通常のリモートコピー機能と同様に、リストア元ボリューム内全領域のデータを全てリストア先ボリュームに対して転送するステップS614に進む。本転送処理は、遠隔コピー管理プログラム6219が行う。
【0531】
第2の制御装置6110のCPU6211は、ステップS614にて、遠隔コピー管理プログラム6219により、通常リストアと同処理で第1のストレージサブシステム6100へデータを転送する。
【0532】
一方、第2の制御装置6110のCPU6211は、ステップS610にて、動的記憶領域割り当て機能を使用するボリュームであるかの調査の結果、動的記憶領域割り当て機能を使用するボリュームであることが判明した場合、バックアップ時に記憶領域を割当てていた箇所についてのみデータコピーを行うため、ステップS611へ進む。
【0533】
第2の制御装置6110のCPU6211は、ステップS611にて、データリストアの前準備として、遠隔コピー管理プログラム6222により、動的記憶領域割当てプログラム6121に対して、リストア先ボリュームに割当てている記憶領域の解放を要求する。第2の制御装置6110のCPU6211は、記憶領域の割り当て解放の後、差分リストア処理であるステップS612へ進む。
【0534】
第2の制御装置6110のCPU6211は、ステップS612にて、遠隔コピー管理プログラム6222により、差分管理テーブル6225を参照し、更新発生箇所についてデータを転送し、該送信処理に伴う第1のストレージサブシステム6100での受信処理であるステップS613へ進む。
【0535】
第1の制御装置6110のCPU6111は、ステップS613にて、遠隔コピー管理プログラム6222により送信されたデータについて受信を行う。第1の制御装置6110のCPU6111は、該受信処理において、データの書き込みが行われたものと同等として記憶領域の割り当てを伴うデータの格納を行う。本処理完了に伴い、リストア完了となる。
【0536】
このようにして、記憶システム6000では、記憶領域の割り当てがないものとしてバックアップ元ボリュームからバックアップ先のボリュームにデータを読み出し、スプリットを完了した後に、差分管理テーブル6125より更新の発生を記録し、記憶領域を割り当てた箇所及び割当てられた記憶領域のデータを第2のストレージサブシステム6200に送信して、記憶領域を割り当てた箇所を差分管理テーブル6225に記録する。
【0537】
そして、記憶システム6000では、該バックアップしたデータによりリストアする場合、第2のストレージサブシステム6200において記録された差分管理テーブル6225を参照し、更新発生箇所についてデータを転送して、記憶領域の割り当てを伴うデータの格納を行う。
【0538】
これにより、記憶システム6000では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【0539】
(7)第7の実施の形態
(7−1)第7の実施の形態における記憶システムの構成
図32は、本発明を適用した記憶システムの第7の実施の形態における構成を示す図である。本実施の形態による記憶システム7000は、第1のストレージサブシステム7100、バックアップサーバ7700、ストレージ装置7900、及びホスト計算機7300が例えばSAN等のネットワーク7400により接続されて構成されている。
【0540】
なお、本実施の形態においては、第1のストレージサブシステム7100、バックアップサーバ7700、ストレージ装置7900、及びホスト計算機7300が同一のネットワーク7400に接続された構成としてここに示しているが、この構成以外にも、第1のストレージサブシステム7100及びホスト計算機7300間のネットワークと、第1のストレージサブシステム7100、バックアップサーバ7700、及びストレージ装置7900のネットワークが分離した構成でも良い。
【0541】
ここで、ストレージサブシステムとは、複数のハードディスクドライブ等を集約し、これらハードディスクドライブ等をRAIDやJBOD構成を用いて管理し、ホスト計算機に対して論理的なストレージ領域として提供するシステムである。なお、この論理的なストレージ領域をボリュームと呼ぶ。
【0542】
第1のストレージサブシステム7100は、第1の制御装置7110と第1の管理端末7130から構成され、ボリュームの作成や各種機能の設定や保守操作を第1の管理端末7130により行うことができる。また、各種機能の設定はホスト計算機7300により行うこともできる。
【0543】
また、第1のストレージサブシステム7100は、所定のネットワーク7500により外部ストレージ装置7600と接続されている。
【0544】
第1の制御装置7110は、当該第1の制御装置7110全体を制御する1個以上のCPU7111、ネットワーク7400との接続のためのネットワークI/F7112、ネットワーク7500との接続のためのネットワークI/F7113、第1の管理端末7130との接続のためのNIC7114、複数のハードディスクドライブ等でなり、当該第1の制御装置7110の各種設定情報やプログラム等が格納されていると共に、ホスト計算機7300から送信されるデータが格納される内部ストレージ装置7115、及び当該各種設定情報やプログラム等が展開されるメモリ7116から構成されている。
【0545】
メモリ7116には、ボリューム管理プログラム7120、動的記憶領域割当てプログラム7121、及び記憶領域管理テーブル7123が展開されている。このボリューム管理プログラム7120、及び動的記憶領域割当てプログラム7121は、CPU7111によって実行されるプログラムである。
【0546】
第1の管理端末7130は、当該第1の管理端末7130全体を制御する1個以上のCPU7131、当該第1の制御装置7110の各種設定情報やプログラム等が格納されている記憶装置7132、各種設定情報やプログラム等が展開されるメモリ7133及び第1の制御装置7110との接続のためのNIC7134から構成されている。
【0547】
一方、バックアップサーバ7700は、当該バックアップサーバ7700全体を制御する1個以上のCPU7701、ネットワーク7400との接続のためのネットワークI/F7702、ホスト計算機7300との接続のためのNIC7703、テープデバイス7800との接続のためのネットワークI/F7704、複数のハードディスクドライブ等でなり、当該第バックアップサーバ7700の各種設定情報やプログラム等が格納されていると共に、ホスト計算機7300や第1のストレージサブシステム7100から送信されるデータが格納される内部ストレージ装置7705、及び当該各種設定情報やプログラム等が展開されるメモリ7706から構成されている。
【0548】
メモリ7706には、バックアッププログラム7710、及びバックアップ記憶テーブル7711が展開されている。このバックアッププログラム7710は、CPU7701によって実行されるプログラムである。
【0549】
他方、ホスト計算機7300は、CPU7301及びネットワーク7400との接続のためのネットワークI/F7302を有するコンピュータ装置であり、例えばUNIX(登録商標)やWindows(登録商標)をOSとするサーバなどから構成される。また、ホスト計算機7300は、この他メモリ等の情報処理資源を有している。さらに、ホスト計算機7300は、情報入出力装置とするパーソナルコンピュータやワークステーションにネットワークを介して接続される。
【0550】
この場合、第1のストレージサブシステム7100のボリュームの管理は、ストレージ制御装置7110のメモリ7116に格納されているボリューム管理プログラム7120がCPU7111に実行されることにより動作する。
【0551】
第1のストレージサブシステム7100は、外部ストレージ装置7600を内部ストレージ装置7115と同様に扱い、ホスト計算機7300に提供するボリュームを構成するストレージ装置としても良い。また、第1のストレージサブシステム7100は、内部ストレージ装置7115を持たず、外部ストレージ装置7600のみでボリュームをホスト計算機7300に対して提供しても良い。なお、外部ストレージ装置7600は、他のストレージサブシステムが提供するボリュームであっても良い。
【0552】
第1のストレージサブシステム7100は、ボリュームを提供する場合、ホスト計算機7300によって書き込み要求が行われたストレージ領域について、動的に記憶領域を割当てる機能である動的記憶領域割り当て機能を有する。ここで述べる記憶領域とは、内部ストレージ装置7115及び外部ストレージ装置7600の物理デバイス(ハードディスクドライブ等)の特定領域を指す。
【0553】
動的記憶領域割り当て機能は、メモリ7116に格納されるボリューム管理プログラム7120及び動的記憶領域割当てプログラム7121がCPU7111に実行されることにより連携して動作する。また、動的記憶領域割当てプログラム7121は、記憶領域管理テーブル7123に格納された情報を基に動作する。
【0554】
この動的記憶領域割り当て機能では、ホスト計算機7300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム7121により、記憶領域管理テーブル7123を参照し、書き込み対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、記憶境域の割当てを行い、記憶領域管理テーブル7123に書き込み要求を受けた箇所と割当てた記憶領域との対応関係を格納する。
【0555】
また、動的記憶領域割り当て機能では、ホスト計算機7300からの書き込み要求を受けたときに、動的記憶領域割当てプログラム7121により、記憶領域管理テーブル7123を参照し、書き込み対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル7123に格納されている情報より、書き込み要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に対して書き込みを行う。
【0556】
さらに、動的記憶領域割り当て機能では、ホスト計算機7300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム7120により、記憶領域管理テーブル7123を参照し、読み出し対象のデータに対して記憶領域の割当てが未発生であることを検出した場合、「0」等の予め決められたパターンをホスト計算機7300に対して送信する。
【0557】
さらに、動的記憶領域割り当て機能では、ホスト計算機7300からの読み出し要求を受けたときに、動的記憶領域割当てプログラム7120により、記憶領域管理テーブル7123を参照し、読み出し対象のデータに対して記憶領域の割当て済みであることを検出した場合、記憶領域管理テーブル7123に格納されている情報により、読み出し要求を受けた箇所に対応して割当てた記憶領域を特定し、この記憶領域に格納されている読み出し対象のデータをホスト計算機7300に対して送信する。
【0558】
第1のストレージサブシステム7100は、ホスト計算機7300より任意のボリュームについて情報取得の要求があったとき、ボリューム管理プログラム7120において、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該情報取得の要求に対する応答のメッセージの中に、その情報を付与して返信することができる。
【0559】
なお、第1のストレージサブシステム7100は、動的記憶領域割り当て機能の使用中の情報をホスト計算機7300に返信できなくとも、対象のボリュームを設定した第1のストレージサブシステム7100の管理者や管理ソフトウェア等がバックアップサーバ7700に対して動的記憶領域割り当て機能の使用中の情報を送信すれば良い。
【0560】
第1のストレージサブシステム7100は、ホスト計算機7300から任意のボリュームについてバックアップの要求があったとき、ボリューム管理プログラム7120により、対象のボリュームが動的記憶領域割り当て機能を使用していることを検出した場合、該ボリュームに対して、バックアップ元データ格納ボリューム(以下、バックアップボリュームと呼ぶ)を別途確保する機能を有する。ここで、バックアップボリュームは、既存のボリュームを指定しても、新規にボリューム管理プログラム7120がボリュームを作成しても良い。
【0561】
該バックアップボリュームは、対応する動的記憶領域割り当て機能を使用するボリューム内の記憶領域の割り当てがないデータ領域を除外し、記憶領域を割当てたデータ領域を集約したデータを保有する。そのため、該バックアップボリューム容量は、対応する動的記憶領域割り当て機能を使用するボリューム容量以下となる。
【0562】
(7−2)第7の実施の形態におけるバックアップ及びリストアの制御方式
以下、本実施の形態における第1のストレージサブシステム7100からバックアップサーバ7700を介したテープデバイス7800に対するバックアップの制御方式について説明を行う。
【0563】
ここでは、バックアップ先の物理デバイスを、ストレージサブシステム7100より直接データ転送をできるネットワーク7800とは独立したネットワーク上にあるストレージ装置7500として説明を行うが、バックアップ先の物理デバイスがストレージサブシステム7100より直接データ転送をできるネットワーク7800に接続されたストレージ装置7900であっても動作は同じである。
【0564】
この記憶システム7000では、第1のストレージサブシステム7100の動的記憶領域割り当て機能を使用したボリュームから、動的記憶領域割り当て機能とは関係のないバックアップサーバ7700が管理するストレージ装置へのバックアップを行う。
【0565】
ただし、バックアップを制御するバックアップサーバ7700では、バックアップ元ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。
【0566】
バックアップサーバ7700のCPU7701は、バックアップ元ボリューム内のデータのバックアップに先立ち、第1のストレージサブシステム7100に対して、対象ボリュームに対する記憶領域を割当てた箇所を特定するための情報のバックアップを要求する。これは動的記憶領域割り当て機能を使用するボリュームに対する専用のコマンドを用いる。
【0567】
該バックアップ要求を受けた第1の制御装置7110のCPU7111は、論理ボリューム管理プログラム7120に通知を行い、それに伴いボリューム管理プログラム7120により、動的記憶領域割当てプログラム7121を起動する。
【0568】
起動された動的記憶領域割当てプログラム7121は、記憶領域管理テーブル7123を参照し、指定されたバックアップ対象の動的記憶領域割り当て機能を使用するボリュームに対して、割当てた記憶領域の合計容量をボリューム管理プログラム7120に通知する。
【0569】
記憶領域の合計容量を取得したボリューム管理プログラム7120は、記憶領域の合計容量と同容量を持つ既存ボリュームを指定してバックアップボリュームとする。ボリューム管理プログラム7120は、該当するボリュームが存在しない場合や、使用不可能である場合には記憶領域の合計容量と同容量を持つ新規ボリュームを作成し、該ボリュームをバックアップボリュームとする。
【0570】
ボリューム管理プログラム7120は、バックアップボリュームの定義後、該バックアップボリュームに関する情報をバックアップサーバ7700に通知する。
【0571】
また、ボリューム管理プログラム7120は、バックアップボリュームに関する情報に併せて、バックアップ対象の動的記憶領域割り当て機能を使用するボリュームに対して記憶領域を割当てていたデータ領域を特定する情報(以下、割り当てビットマップと呼ぶ)を通知する。
【0572】
バックアップサーバ7700のCPU7701は、通知されたバックアップボリュームに応じてバックアップ先の物理デバイスであるテープデバイス7800を用意し、バックアップボリュームからデータを読み出し、テープデバイス7800に書き込みを行う。
【0573】
加えて、バックアップサーバ7700のCPU7701は、メモリ7706内にバックアップ記憶領域テーブル7711を設け、ここに第1のストレージサブシステム7100から通知された割り当てビットマップを保存する。
【0574】
なお、バックアップ記憶領域テーブル7711は、メモリ7706以外にも記憶装置7705、テープデバイス7800、ストレージ装置7900等のバックアップサーバ7700からアクセス可能なデータ記憶装置に保存しても良い。バックアップボリュームのデータと割り当てビットマップの保存完了をもって、バックアップ処理は完了となる。
【0575】
次に、前記のバックアップデータを元とする、バックアップサーバ7700を介したテープデバイス7800から第1のストレージサブシステム7100へのデータリストア制御方式について説明を行う。
【0576】
ここでは、リストア元の物理デバイスを、ストレージサブシステム7100より直接データ転送をできるネットワーク7800とは独立したネットワーク上にあるテープデバイス7800として説明を行うが、リストア元の物理デバイスが第1のストレージサブシステム7100から直接データ転送をできるネットワーク7400に接続されたストレージ装置7900であっても動作は同じである。
【0577】
この記憶システム7000では、動的記憶領域割り当て機能とは関係のない、バックアップサーバ7700が管理するテープデバイス7800から、第1のストレージサブシステム7100の動的記憶領域割り当て機能を使用したボリュームへのリストアを行う。
【0578】
ただし、リストアを制御するバックアップサーバ7700では、リストア先ボリュームが動的記憶領域割り当て機能を使用していることはバックアップ開始時には既知である。また、バックアップ時にバックアップ元ボリュームが動的記憶領域割り当て機能を使用していたことは、バックアップ時に取得した割当てビットマップ有無等の情報を基に判断可能である。
【0579】
バックアッププログラム7710は、リストア開始時に、第1のストレージサブシステム7100のリストア先ボリュームを指定して初期化を要求し、該ボリュームに割当てられている全記憶領域の解放を行う。
【0580】
また、バックアッププログラム7710は、全記憶領域の解放後、割当てビットマップを参照し、記憶領域が割当てられていた箇所についてのみテープデバイス7800に格納されているリストア元のデータを送信する。全ての、記憶領域が割当てられていた箇所のリストア元データ送信完了に伴い、本リストア処理は完了となる。
【0581】
図33は、第1のストレージ制御装置7110が管理するボリュームの構成を示している。
【0582】
第1のストレージサブシステム7100の第1の制御装置7110内には、ホスト計算機7300がアクセス対象とするボリュームである動的記憶領域割り当て機能を使用する動的記憶領域割り当てボリューム7140と、バックアップサーバ7700がバックアップ対象とするボリュームであるバックアップボリューム7160があり、これらのボリューム内のデータはプールボリューム7151内の任意のデータ領域を記憶領域として割当て、該記憶領域に対して格納する。
【0583】
記憶領域管理テーブル7123は、動的記憶領域割り当てボリューム7140、及びバックアップボリューム7160とプールボリューム7151内の割当てた記憶領域の対応関係を格納する。
【0584】
図34は、動的記憶領域割り当てボリューム7140とバックアップボリューム7160間での、プールボリューム7151内の割当てた記憶領域の対応関係及び、該対応関係の情報を格納する記憶領域管理テーブル7123の構造を図示している。
【0585】
記憶領域管理テーブル7123は、対象の動的記憶領域割り当てボリューム7140内の任意のデータ領域に付随するプールボリューム7151内の記憶領域を示す記憶領域ポインタを保持している。
【0586】
ここで、動的記憶領域割り当てボリューム7140のデータ領域に対応する記憶領域管理テーブル7123内情報である記憶領域ポインタP7151は、例えば、プールボリューム7151内の記憶領域A7141が割り当てられているので、当該プールボリューム7151内の記憶領域A7141を指し示すようになされている。
【0587】
また、記憶領域ポインタP7153は、例えば、プールボリューム7151内の記憶領域A7143が割り当てられているので、当該プールボリューム7151内の記憶領域A7143を指し示すようになされている。
【0588】
また、動的記憶領域割り当てボリューム7140のデータ領域に対応する記憶領域管理テーブル7123内情報である記憶領域ポインタP7152は、例えば、プールボリューム7151内の記憶領域が割り当てられていないので、プールボリューム7151の何れの記憶領域も指し示していない。
【0589】
一方、記憶領域管理テーブル7123は、動的記憶領域割り当てボリューム7140と対応して作成したバックアップボリューム7160にも、動的記憶領域割り当てボリューム7140と同様に、任意のデータ領域に付随するプールボリューム7151内の記憶領域を示す記憶領域ポインタを保持している。
【0590】
ただし、バックアップボリューム7160には、記憶領域ポインタP7152のように、プールボリューム7151内の記憶領域を指し示さないデータ領域が存在しない。
【0591】
ここで、バックアップボリューム7160のデータ領域に対応する記憶領域管理テーブル7123内情報である記憶領域ポインタP7161は、例えば、プールボリューム7151内の記憶領域A7141が割り当てられているので、当該プールボリューム7151内の記憶領域P7141を指し示すようになされている。
【0592】
また、記憶領域ポインタP7163は、例えば、プールボリューム7151内の記憶領域A7143が割り当てられているので、当該プールボリューム7151内の記憶領域P7143を指し示している。
【0593】
これにより、記憶領域管理テーブル7123の記憶領域ポインタP7161及び記憶領域ポインタP7151、並びに記憶領域管理テーブル7123の記憶領域ポインタP7163及び記憶領域ポインタP7153は、プールボリューム7151内の同一の記憶領域を共有することができるようになされている。
【0594】
このようにして、記憶システム7000では、該記憶領域管理テーブル7123のテーブル構造により、バックアップボリューム7160に対する読み出しを行うと、動的記憶領域割り当てボリューム7140の記憶領域を割当てたデータ領域に格納したデータのみを取得する。
【0595】
これにより、記憶システム7000では、バックアップ時のデータ格納先の容量を削減することが可能である。
【0596】
また、これにより、記憶システム4000では、バックアップしたデータをリストアするに際し、リストア先ボリュームに不要な記憶領域を割り当てて、記憶領域を無駄に浪費してしまうといったことを未然かつ有効に防止することができ、かくして効率的にリストア先ボリュームに記憶領域を割当てることができる。
【産業上の利用可能性】
【0597】
本発明は、ストレージサブシステム間においてボリュームを複製し、当該ボリュームを復元する記憶システムのほか、この他種々の複製したボリュームの復元を伴う機器に適用することができる。
【図面の簡単な説明】
【0598】
【図1】第1の実施の形態における全体構成を示す図である。
【図2】第1の実施の形態における記憶領域割当てを管理するテーブルの構造を示した図である。
【図3】第1の実施の形態における対象バックアップデータの図2を基とした記憶領域を割当てた領域の特定を可能とするテーブルの構造を示した図である。
【図4】第1の実施の形態におけるバックアップ処理のシステム全体の動作を示すフローチャートである。
【図5】第1の実施の形態におけるリストア処理のシステム全体の動作を示すフローチャートである。
【図6】第1の実施の形態におけるリストア処理の第1の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図7】第1の実施の形態におけるリストア処理の第2の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図8】第1の実施の形態におけるリストア処理のデータ書き込み制御の動作を示すフローチャートである。
【図9】第2の実施の形態における全体構成を示す図である。
【図10】第2の実施の形態におけるバックアップ処理のシステム全体の動作を示すフローチャートである。
【図11】第2の実施の形態におけるリストア処理の第1の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図12】第2の実施の形態におけるリストア処理の第2の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図13】第2の実施の形態におけるリストア処理のデータ書き込み制御の動作を示すフローチャートである。
【図14】第3の実施の形態における全体構成を示す図である。
【図15】第3の実施の形態における対象バックアップデータの記憶領域を割当てた領域の特定を可能とするテーブルの構造を示した図である
【図16】第3の実施の形態におけるIDを用いたバックアップ処理のシステム全体の動作を示すフローチャートである。
【図17】第3の実施の形態における割当てビットマップを用いたバックアップ処理のシステム全体の動作を示すフローチャートである。
【図18】第3の実施の形態におけるIDを用いたリストア処理のシステム全体の動作を示すフローチャートである。
【図19】第3の実施の形態における割当てビットマップを用いたリストア処理のシステム全体の動作を示すフローチャートである。
【図20】第3の実施の形態におけるリストア処理の第1の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図21】第3の実施の形態におけるリストア処理の第2の記憶領域再割り当て制御方法の動作を示すフローチャートである。
【図22】第3の実施の形態におけるリストア処理のデータ書き込み制御の動作を示すフローチャートである。
【図23】第4の実施の形態における全体構成を示す図である。
【図24】第4の実施の形態におけるバックアップ処理のシステム全体の動作を示すフローチャートである。
【図25】第4の実施の形態におけるリストア処理のシステム全体の動作を示すフローチャートである。
【図26】第4の実施の形態におけるリストア処理の書き込み制御の動作を示すフローチャートである。
【図27】第5の実施の形態における全体構成を示す図である。
【図28】第5の実施の形態におけるボリューム構成を示す図である。
【図29】第6の実施の形態における全体構成を示す図である。
【図30】第6の実施の形態における、バックアップ処理のシステム全体の動作を示すフローチャートである。
【図31】第6の実施の形態におけるリストア処理のシステム全体の動作を示すフローチャートである。
【図32】第7の実施の形態における全体構成を示す図である。
【図33】第7の実施の形態におけるバックアップ対象のボリュームとバックアップ元のボリューム及び、データ格納先ボリュームの構成を示す図である。
【図34】第7の実施の形態におけるテーブル構成を示す図である。
【符号の説明】
【0599】
1100、2100、3100、4100、5100、6100、7100……第1のストレージサブシステム、1200、2200、5200、6200……第2のストレージサブシステム、1300、2300、3300、4300、5300、6300、7300……ホスト計算機、3700、4700、7700……バックアップサーバ、1121、2121、2221、3121、4121、5121、6121……動的記憶領域割り当てプログラム、1122、1222、2122、2222、5122、5222、6122、6222……遠隔コピー管理プログラム、1123、2123、2223、3123、4123、5123、6123……記憶領域管理テーブル、1124、2224、3124、4711、7711……バックアップ記憶領域テーブル、6125、6225…差分管理テーブル、3800、4800……テープデバイス


【特許請求の範囲】
【請求項1】
所定の領域ごとに動的に第1の記憶領域が割り当てられる第1の論理ボリュームを有し、ホスト計算機から送信されるデータを前記第1の記憶領域に記憶する第1のストレージサブシステムと、前記第1の論理ボリュームをバックアップするための第2の記憶領域を有する第2のストレージサブシステムとを有する記憶システムであって、
前記第1のストレージサブシステムは、
前記第1の論理ボリュームの前記領域ごとに割り当てられる前記第1の記憶領域の有無を管理する第1の管理部と、
前記第1の論理ボリュームの前記領域に割り当てられた前記第1の記憶領域に記憶されている前記データを、前記第2のストレージサブシステムに転送する転送部と、
前記第1の管理部に管理された前記第1の記憶領域の有無、及び又は前記第2のストレージサブシステムから転送された前記データに基づいて、前記第1の論理ボリュームを復元する復元部と
を備えることを特徴とする記憶システム。
【請求項2】
前記復元部は、
前記第1の論理ボリュームを復元する際に、前記第1の管理部により前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域を割り当てる第1の割当て部
を備え、
前記第1の割当て部により割り当てた前記第1の記憶領域に、前記第2のストレージサブシステムから転送された前記データを書き込むことにより、前記第1の論理ボリュームを復元する
ことを特徴とする請求項1に記載の記憶システム。
【請求項3】
前記第1の割当て部は、
前記第1の論理ボリュームを復元する際に、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域をすべて解放し、前記第1の管理部により前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域を新たに割り当てる
ことを特徴とする請求項2に記載の記憶システム。
【請求項4】
前記第1の割当て部は、
前記第1の論理ボリュームを復元する際に、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域のうち不要とみなされた領域を解放し、前記第1のステップにおいて前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられていない場合に、当該領域に前記第1の記憶領域を割り当てる
ことを特徴とする請求項2に記載の記憶システム。
【請求項5】
前記第1の割当て部は、
前記第1の論理ボリュームを復元する際に、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域のうち指定された領域を解放し、前記第1のステップにおいて前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられていない場合に、当該領域に前記第1の記憶領域を割り当てる
ことを特徴とする請求項2に記載の記憶システム。
【請求項6】
前記第1の割当て部は、
前記第1の論理ボリュームを復元する際に、前記第1の管理部により前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられていない場合に、当該領域に前記第1の記憶領域を割り当て、前記第1の管理部により前記第1の記憶領域が無として管理されている前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられている場合に、当該領域に割り当てられている前記第1の記憶領域を解放する
ことを特徴とする請求項2に記載の記憶システム。
【請求項7】
前記復元部は、
前記第1の論理ボリュームの前記領域に前記第1の記憶領域が割り当てられている場合に、当該領域に対応した、前記第2のストレージサブシステムから転送された前記データを書き込み、前記第1の論理ボリュームの前記領域に前記第1の記憶領域が割り当てられていない場合に、当該領域に対応した、前記第2のストレージサブシステムから転送された前記データを破棄する
ことを特徴とする請求項1に記載の記憶システム。
【請求項8】
前記復元部は、
前記第1の論理ボリュームを復元する際に、前記第1の管理部により前記第1の記憶領域が有として管理されている前記第1の論理ボリュームの前記領域に、当該領域ごとに割り当てられていた前記第1の記憶領域と異なる記憶領域を割り当てる
ことを特徴とする請求項2に記載の記憶システム。
【請求項9】
前記第1の転送部は、
前記管理部により管理された前記第1の論理ボリュームの前記領域ごとに割り当てられる前記第1の記憶領域の有無を前記第2のストレージサブシステムに転送し、
前記第2のストレージサブシステムは、
前記領域ごとに動的に前記第2の記憶領域が割り当てられる第2の論理ボリューム
を有し、
前記第1の転送部により転送された前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域の有無を、前記第2の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域の有無として管理する第2の管理部と、
前記第2の管理部により前記第2の記憶領域が有として管理された前記第2の論理ボリュームの前記領域に、前記第2の記憶領域を割り当てる第2の割当て部と、
前記第2の割当て部により割り当てた前記第2の記憶領域に、前記第1の転送部により転送された前記データを、対応する前記第2の記憶領域に書き込むことにより、第2の論理ボリュームとして、前記第1の論理ボリュームを複製する複製部と
を備えることを特徴とする請求項1に記載の記憶システム。
【請求項10】
前記第1の管理部は、
前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域の有無をビットマップで管理すると共に、当該ビットマップを番号と対応付けて管理し、
前記第1の転送部は、
前記ビットマップに対応づけられている前記番号を前記第2のストレージサブシステムに転送し、
前記復元部は、
前記第2のストレージサブシステムから転送された前記番号に対応付けられた前記ビットマップに基づいて、前記第1の論理ボリュームを復元する
ことを特徴とする請求項1に記載の記憶システム。
【請求項11】
前記第1の管理部は、
前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域の有無をビットマップで管理し、
前記第1の転送部は、
前記ビットマップを前記第2のストレージサブシステムに転送し、
前記第2のストレージサブシステムは、
前記第1の転送部により転送された前記データを前記第2の記憶領域に保持する保持部と、
前記第1の論理ボリュームを復元する際に、前記第1の転送部により転送された前記ビットマップに基づいて、前記第1の記憶領域を割当てていた箇所についてのみ、前記保持部により保持された前記データを前記第1のストレージサブシステムに転送する第2の転送部と
を備えることを特徴とする請求項1に記載の記憶システム。
【請求項12】
前記第2の記憶領域は、
書き込んだデータに対して変更を加えてはならないテープメディアでなる
ことを特徴とする請求項1に記載の記憶システム。
【請求項13】
前記第1の管理部は、
前記第1の論理ボリュームに格納されている、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域の有無を管理し、
前記第1の転送部は、
前記第1の論理ボリュームに格納されている、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域の有無、及び前記データを前記第2のストレージサブシステムに転送し、
前記復元部は、
前記第2のストレージサブシステムから転送された、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域の有無に基づいて、前記第1の論理ボリュームを復元する
ことを特徴とする請求項1に記載の記憶システム。
【請求項14】
前記第1の管理部は、
前記第1の論理ボリュームの更新の発生を管理し、
前記第1の転送部は、
前記第1の管理部により管理された、前記第1の論理ボリュームの更新が発生した記憶領域の有無、及び当該記憶領域に記憶されている前記データを前記第2のストレージサブシステムに転送し、
前記第2のストレージサブシステムは、
前記第1の転送部により転送された、前記第1の論理ボリュームの更新が発生した記憶領域の有無を管理する第2の管理部と、
前記第1の転送部により転送された前記データを前記第2の記憶領域に保持する保持部と、
前記第1の論理ボリュームを復元する際に、前記第2の管理部により管理された前記第1の論理ボリュームの更新が発生した記憶領域の有無に基づいて、前記第1の論理ボリュームの更新が発生した箇所についてのみ、前記保持部により保持された前記データを前記第1のストレージサブシステムに転送する第2の転送部と
を備えることを特徴とする請求項1に記載の記憶システム。
【請求項15】
前記第1のストレージサブシステムは、
前記第1の論理ボリュームの前記第1の記憶領域を割り当てた容量の合計容量と同容量でなるバックアップボリュームを有し、
前記第1の管理部は、
前記第1の論理ボリュームに割り当てられている前記第1の記憶領域、及び前記バックアップボリュームに割り当てられている前記第1の記憶領域が同一の記憶領域を共有するように管理する
ことを特徴とする請求項1に記載の記憶システム。
【請求項16】
所定の領域ごとに動的に第1の記憶領域が割り当てられる第1の論理ボリュームを有し、ホスト計算機から送信されるデータを前記第1の記憶領域に記憶する第1のストレージサブシステムと、前記第1の論理ボリュームをバックアップするための第2の記憶領域を有する第2のストレージサブシステムとを有する記憶システムのデータ復元方法であって、
前記第1の論理ボリュームの前記領域ごとに割り当てられる前記第1の記憶領域の有無を管理する第1のステップと、
前記第1の論理ボリュームの前記領域に割り当てられた前記第1の記憶領域に記憶されている前記データを、前記第2のストレージサブシステムに転送する第2のステップと、
前記第1のステップにおいて管理した前記第1の記憶領域の有無、及び又は前記第2のストレージサブシステムから転送された前記データに基づいて、前記第1の論理ボリュームを復元する第3のステップと
を備えることを特徴とする記憶システムのデータ復元方法。
【請求項17】
前記第3のステップでは、
前記第1の論理ボリュームを復元する際に、前記第1のステップにおいて前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域を割り当て、割り当てた前記第1の記憶領域に、前記前記第2のストレージサブシステムから転送された前記データを書き込むことにより、前記第1の論理ボリュームを復元する
ことを特徴とする請求項16に記載の記憶システムのデータ復元方法。
【請求項18】
前記第3のステップでは、
前記第1の論理ボリュームを復元する際に、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域をすべて解放し、前記第1のステップにおいて前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域を新たに割り当てる
ことを特徴とする請求項17に記載の記憶システムのデータ復元方法。
【請求項19】
前記第3のステップでは、
前記第1の論理ボリュームを復元する際に、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域のうち不要とみなされた領域を解放し、前記第1のステップにおいて前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられていない場合に、当該領域に前記第1の記憶領域を割り当てる
ことを特徴とする請求項17に記載の記憶システムのデータ復元方法。
【請求項20】
前記第3のステップでは、
前記第1の論理ボリュームを復元する際に、前記第1の論理ボリュームの前記領域ごとに割り当てられている前記第1の記憶領域のうち指定された領域を解放し、前記第1のステップにおいて前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられていない場合に、当該領域に前記第1の記憶領域を割り当てる
ことを特徴とする請求項17に記載の記憶システムのデータ復元方法。
【請求項21】
前記第3のステップでは、
前記第1の論理ボリュームを復元する際に、前記第1のステップにおいて前記第1の記憶領域が有として管理された前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられていない場合に、当該領域に前記第1の記憶領域を割り当て、前記第1のステップにおいて前記第1の記憶領域が無として管理されている前記第1の論理ボリュームの前記領域に、前記第1の記憶領域が割り当てられている場合に、当該領域に割り当てられている前記第1の記憶領域を解放する
ことを特徴とする請求項17に記載の記憶システムのデータ復元方法。
【請求項22】
前記第3のステップでは、
前記第1の論理ボリュームの前記領域に前記第1の記憶領域が割り当てられている場合に、当該領域に対応した、前記第2のストレージサブシステムから転送された前記データを書き込み、前記第1の論理ボリュームの前記領域に前記第1の記憶領域が割り当てられていない場合に、当該領域に対応した、前記第2のストレージサブシステムから転送された前記データを破棄する
ことを特徴とする請求項17に記載の記憶システムのデータ復元方法。
【請求項23】
前記第3のステップでは、
前記第1の論理ボリュームを復元する際に、前記第1のステップにおいて前記第1の記憶領域が有として管理されている前記第1の論理ボリュームの前記領域に、当該領域ごとに割り当てられていた前記第1の記憶領域と異なる記憶領域を割り当てる
ことを特徴とする請求項17に記載の記憶システムのデータ復元方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate


【公開番号】特開2007−199922(P2007−199922A)
【公開日】平成19年8月9日(2007.8.9)
【国際特許分類】
【出願番号】特願2006−16409(P2006−16409)
【出願日】平成18年1月25日(2006.1.25)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】