説明

記憶システムおよび記憶制御方法

【課題】バックアップサーバ不要でバックアップができ、且つ、ボリュームコピーとは異なるスナップショットをバックアップ元としたバックアップを可能にする。
【解決手段】上位装置から送信されたデータ要素が書き込まれる主ボリュームのスナップショットイメージを論理的に保持するための仮想ボリューム内の複数の記憶位置と、スナップショットイメージを構成する複数のデータ要素の複数の実際の記憶位置を示す複数のアドレス情報要素との対応を管理する。初回のバックアップで、複数のアドレス情報要素が示す全ての実際の記憶位置に記憶されている全てのデータ要素をバックアップし、その後、仮想ボリュームとバックアップ先記憶装置との間で差分の生じた記憶位置を管理し、次回以降のバックアップでは、差分管理されている記憶位置に対応したアドレス情報要素から特定される記憶位置上のデータ要素をバックアップする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データのバックアップのための技術に関する。
【背景技術】
【0002】
例えば、特許文献1によれば、ディスクアレイ装置が、スナップショット取得後のデータ更新を、オリジナルデータを記憶するディスク装置とは物理的に別の記憶領域である更新データ格納ディスク装置に行う。
【0003】
【特許文献1】特開2005−332067号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
バックアップの一つの方法として、バックアップサーバが、バックアップ元の記憶装置からデータを読出し、読み出したデータを、バックアップ先の記憶装置に書込む方法がある。しかし、この方法では、例えば、バックアップサーバのバックアップ性能が、バックアップ元及び/又はバックアップ先の記憶装置のそれより低い場合には、バックアップサーバのバックアップ性能が、ボトルネックとなってしまう。
【0005】
また、バックアップの一つの方法として、スナップショット取得時点における論理ボリュームのスナップショットを取得し、そのスナップショットをバックアップ元とする方法が考えられる。しかし、そのスナップショットを、スナップショット取得時点における論理ボリュームそれ自体のコピー(以下、ボリュームコピー)とすると、複数のスナップショット取得時点がある場合には、スナップショット取得時点の数と同数のボリュームコピーが必要となり、故に、記憶資源の消費量が大きくなってしまう。
【0006】
従って、本発明の一つの目的は、バックアップサーバ不要でバックアップができ、且つ、ボリュームコピーとは異なるスナップショットをバックアップ元としたバックアップを可能にすることにある。
【0007】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【0008】
上位装置から送信されたデータ要素が書き込まれることにより更新が生じる論理ボリュームである主ボリュームと、主ボリュームとその主ボリュームにおける更新前のデータ要素がコピーされる記憶領域であるコピー記憶領域とが備えられる。
【0009】
主ボリュームのスナップショットイメージを論理的に保持するための仮想的な論理ボリュームであるスナップショットボリュームにおける複数の仮想的な記憶位置と、主ボリュームのスナップショットイメージを構成する複数のデータ要素の複数の実際の記憶位置を示す複数のアドレス情報要素との対応が管理される。
【0010】
初回のバックアップで、複数のアドレス情報要素が示す全ての実際の記憶位置に記憶されている全てのデータ要素が、バックアップ先記憶装置にバックアップされる。
【0011】
該初回のバックアップ後、主ボリュームが更新されたことに伴ってスナップショットボリュームが更新されることによりスナップショットボリュームとバックアップ先記憶装置との間で差分が生じた場合に、スナップショットボリューム内のどの仮想的な記憶位置が差分に相当するかを管理するための差分管理情報が更新される。
【0012】
次回以降のバックアップで、スナップショットボリュームとバックアップ先記憶装置との差分に相当する一以上のデータ要素の実際の記憶位置が、差分管理情報から特定される仮想的な記憶位置に対応したアドレス情報要素から特定され、特定された実際の記憶位置にある一以上のデータ要素が、バックアップ先記憶装置にバックアップされる。
【発明を実施するための最良の形態】
【0013】
一つの実施形態では、記憶システムに、上位装置から送信されたデータ要素が書き込まれることにより更新が生じる論理ボリュームである主ボリュームと、主ボリュームにおける更新前のデータ要素がコピーされる記憶領域であるコピー記憶領域とが備えられる。この記憶システムは、スナップショット管理部と、フルバックアップ部と、差分管理部と、部分バックアップ部とを備えることができる。スナップショット管理部は、主ボリュームのスナップショットイメージを論理的に保持するためのスナップショットボリューム(仮想的な論理ボリューム)における複数の仮想的な記憶位置と、スナップショットイメージを構成する複数のデータ要素の複数の実際の記憶位置(主ボリューム及び/又はコピー記憶領域における位置)を示す複数のアドレス情報要素との対応を管理することができる。フルバックアップ部が、フルバックアップとして、複数のアドレス情報要素が示す全ての記憶位置にある全てのデータ要素をバックアップ先記憶装置にバックアップすることを実行することができる。差分管理部が、フルバックアップ後に主ボリュームが更新されたことに伴ってスナップショットボリュームが更新されることによりスナップショットボリュームとバックアップ先記憶装置との間で差分が生じた場合に、スナップショットボリューム内のどの仮想的な記憶位置が差分に相当するかを管理するための差分管理情報を更新することができる。部分バックアップ部が、部分バックアップとして、スナップショットボリュームとバックアップ先記憶装置との差分に相当する一以上のデータ要素の実際の記憶位置を、差分管理情報から特定される仮想的な記憶位置に対応したアドレス情報要素から特定し、特定された実際の記憶位置にある一以上のデータ要素を前記バックアップ先記憶装置にバックアップすることを実行することができる。
【0014】
主ボリュームは、例えば、ランダムアクセス型の記憶装置を利用して形成することができる。ランダムアクセス型記憶装置としては、ハードディスク、フラッシュメモリなど種々の記憶装置を採用することができる。
【0015】
バックアップ先記憶装置としては、例えば、シーケンシャルアクセス型の記憶装置とすることができる。シーケンシャルアクセス型の記憶装置として、磁気テープなど、種々の記憶装置を採用することができる。
【0016】
一つの実施形態では、差分管理部が、フルバックアップ後のスナップショットボリュームとバックアップ先記憶装置との間における差分データ要素がスナップショットボリュームにおける複数の仮想的な記憶位置のどの記憶位置に存在するかを差分管理情報で管理することができる。各回での部分バックアップは、差分バックアップである。差分バックアップは、差分管理情報から特定される一以上の仮想的な記憶位置に対応した一以上のアドレス情報要素が示す一以上の実際の記憶位置に存在する一以上の差分データ要素をバックアップすることである。
【0017】
一つの実施形態では、差分管理情報に、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの記憶位置に更新が生じたかを管理するための情報である第一の差分管理情報要素(例えば後述のバックアップ用ビットマップ)と、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの記憶位置に論理的に記憶されているデータ要素がバックアップ対象であるかを管理するための情報である第二の差分管理情報要素(例えば後述の差分用ビットマップ)とが含まれる。差分データ要素がスナップショットボリュームにおける複数の仮想的な記憶位置のどの記憶位置に存在するかは、第一の差分管理情報要素と第二の差分管理情報要素との論理演算(例えば論理和)の結果から特定することができる。
【0018】
一つの実施形態では、スナップショットイメージは、主ボリュームとスナップショットボリュームとのボリュームペアが分割された時点での主ボリュームのデータイメージである。差分管理部が、ボリュームペアが分割された時点から次回に該ボリュームペアが分割される時点までの間で、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう第一の差分管理情報要素を更新するよう構成されている。差分管理部が、ボリュームペアの分割のときに、その分割のときにおける第一の差分管理情報要素と第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットすることができる。差分バックアップでは、その差分バックアップの際における第二の差分管理情報要素から、差分データ要素がどの仮想的な記憶位置に存在するかを特定することができる。
【0019】
一つの実施形態では、部分バックアップ部が、各回での差分バックアップで、特定された仮想的な記憶位置に論理的に存在する差分データ要素の他に、該差分データ要素を用いてスナップショットイメージをリストアするために必要なリストア必要情報もバックアップ先記憶装置にバックアップすることができる。リストア必要情報には、バックアップされる差分データ要素の位置を特定するための、差分バックアップの時点における第二の差分管理情報要素が含まれる。
【0020】
一つの実施形態では、差分管理部が、直前回のフルバックアップ又は直前回の部分バックアップ後のスナップショットボリュームと前記バックアップ先記憶装置との間における差分データ要素がどの仮想的な記憶位置に論理的に存在するかを差分管理情報で管理することができる。各回での前記部分バックアップは、増分バックアップである。増分バックアップは、差分管理情報から特定される一以上の仮想的な記憶位置に対応した一以上のアドレス情報要素が示す一以上の実際の記憶位置に存在する一以上の差分データ要素をバックアップすることである。
【0021】
一つの実施形態では、差分管理情報が、スナップショットボリュームにおける複数の仮想的な位置のうちのどの仮想的な記憶位置に更新が生じたかを管理するための情報である第一の差分管理情報要素(例えば後述のバックアップ用ビットマップ)と、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの仮想的な位置に対応するデータ要素がバックアップ対象であるかを管理するための情報である第三の差分管理情報要素(例えば後述の増分用ビットマップ)とを含む。差分データ要素がどの仮想的な記憶位置に存在するかは、第一の差分管理情報要素を用いて更新された第二の差分管理情報要素から特定することができる。
【0022】
一つの実施形態では、スナップショットイメージは、主ボリュームとスナップショットボリュームとのボリュームペアが分割された時点での主ボリュームのデータイメージである。差分管理部が、ボリュームペアが分割された時点から次回に該ボリュームペアが分割される時点までの間で、スナップショットボリュームにおける複数の仮想的な位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう第一の差分管理情報要素を更新するよう構成される。差分管理部が、ボリュームペアの分割のときに、第三の差分管理情報要素をリセットして、その分割のときにおける第一の差分管理情報要素をリセット後の該第三の差分管理情報要素に上書きし、その後、第一の差分管理情報要素をリセットすることができる。増分バックアップでは、その増分バックアップの際における第三の差分管理情報要素から、差分データ要素がどの記憶位置に存在するかを特定することができる。
【0023】
一つの実施形態では、部分バックアップ部が、各回での増分バックアップで、特定された仮想的な記憶位置に存在する差分データ要素の他に、該差分データ要素を用いてスナップショットイメージをリストアするために必要なリストア必要情報もバックアップ先記憶装置にバックアップすることができる。リストア必要情報には、増分バックアップの時点における第三の差分管理情報要素が含まれる。
【0024】
一つの実施形態では、記憶システムが、複数の時点にそれぞれ対応する複数のスナップショットイメージのうちのリストア対象のスナップショットイメージを主ボリューム又は別の論理ボリュームにリストアするリストア部を更に備えることができる。リストア部が、フルバックアップされた複数のデータ要素をリストアし、その後に、リストア対象のスナップショットイメージにおける、部分バックアップによりバックアップされた一以上のデータ要素を、リストアされた複数のデータ要素のうちの、該一以上のデータ要素にそれぞれ対応するデータ要素に上書きすることができる。
【0025】
一つの実施形態では、リストア部が、リストア対象のスナップショットイメージにおける、部分バックアップによりバックアップされた一以上のデータ要素をリストアし、リストア対象のスナップショットイメージにおける、該一以上のデータ要素以外のデータ要素を、リストア対象のスナップショットイメージが部分バックアップされた時点であるリストア対象時点よりも過去の時点で部分バックアップされたデータ要素群及び/又はフルバックアップされたデータ要素群から読み出してリストアすることができる。
【0026】
一つの実施形態では、リストア部が、リストアを実行する時点であるリストア実行時点での主ボリュームにおける複数の記憶位置のうち、リストア対象のスナップショットイメージを構成するデータ要素が実際に記憶されている記憶位置については、リストアを実行しないようにすることができる。
【0027】
一つの実施形態では、リストア部が、リストア実行時点における第一の差分管理情報要素及び第二の管理情報要素の論理演算の結果から、主ボリュームにおける複数の記憶位置のうちの第一の一以上のリストア対象位置を特定し、リストア対象時点における第二の差分管理情報要素から、主ボリュームにおける複数の位置のうちの第二の一以上のリストア対象位置を特定し、第二の一以上のリストア対象位置の各々に、リストア対象時点で差分バックアップされた一以上のデータ要素をそれぞれリストアし、第一の一以上のリストア対象位置のうちの第二の一以上のリストア対象位置以外の位置に、リストア対象時点よりも過去の時点でフルバックアップされたデータ要素群から、該位置に対応するデータ要素を選択してリストアすることができる。
【0028】
一つの実施形態では、リストア部が、下記(1)乃至(3)の処理を実行することがきる。
(1)リストア実行時点における第一の差分管理情報要素と、該リストア実行時点よりも過去であり前記リストア対象時点よりも未来における各バックアップ時点での各第三の差分管理情報要素との論理演算の結果から、主ボリュームにおける複数の記憶位置のうちの一以上のリストア対象位置を表すリストア位置情報要素を作成する。
(2)リストア対象時点以前の各増分バックアップ時点について、その増分バックアップ時点における第三の差分管理情報要素と、作成されたリストア位置情報要素又は更新後のリストア位置情報要素との論理演算の結果から特定されるリストア対象位置に、そのバックアップ時点で増分バックアップされた又はフルバックアップされたデータ要素をリストアし、該論理演算で使用したリストア位置情報要素が示す一以上のリストア対象位置から、特定されたリストア対象位置を除くことで、そのリストア位置情報要素を更新する。
(3)フルバックアップの直後の増分バックアップ時点(最も過去の増分バックアップ時点)についての更新後のリストア位置情報要素が、少なくとも一つのリストア対象位置を表していれば、フルバックアップされた複数のデータ要素のうち、そのリストア対象位置に対応するデータ要素を、そのリストア対象位置にリストアする。
【0029】
一つの実施形態では、リストア必要情報に、格納する差分管理情報要素であるビットマップのビットに対応した記憶位置(主ボリュームやスナップショットボリューム内の記憶位置(記憶領域))の記憶サイズと、主ボリュームの記憶容量とが含まれても良い。
【0030】
一つの実施形態では、バックアップ先記憶装置はシーケンシャルアクセス型の記憶装置であり、リストア必要情報は、データ要素よりもシーケンシャル型装置群の上流側に記録されてよい。
【0031】
一つの実施形態では、バックアップ先記憶装置はシーケンシャルアクセス型の記憶装置であり、フルバックアップにより記録された全てのデータ要素よりも下流側に、部分バックアップでのリストア必要情報及びデータ要素が記録されて良い。
【0032】
一つの実施形態では、スナップショットイメージは、スナップショット取得時点での前記主ボリュームのデータイメージである。差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点において、第一の差分管理情報要素と第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットすることができる。差分バックアップでは、その差分バックアップの際における第二の差分管理情報要素から、差分データ要素がどの仮想的な記憶位置に存在するかが特定される。
【0033】
一つの実施形態では、差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、第二の差分管理情報要素をリセットして、そのときにおける第一の差分管理情報要素をリセット後の該第二の差分管理情報要素に上書きし、その後、第一の差分管理情報要素をリセットすることができる。増分バックアップでは、その増分バックアップの際における第二の差分管理情報要素から、差分データ要素がどの仮想的な記憶位置に存在するかが特定される。
【0034】
一つの実施形態では、差分管理情報が、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの仮想的な記憶位置に更新が生じたかを管理するための情報である第一の差分管理情報要素と、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの仮想的な記憶位置に対応するデータ要素がバックアップ対象であるかを管理するための情報である第二及び第三の差分管理情報要素とを含む。差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの仮想的な記憶位置で更新が生じたならば、その更新された位置がわかるよう第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、そのときにおける第一の差分管理情報要素と第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、前記第三の差分管理情報要素をリセットして、そのときにおける第一の差分管理情報要素をリセット後の該第三の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットすることができる。差分バックアップでは、その差分バックアップの際における第二の差分管理情報要素から、差分データ要素が前記スナップショットボリュームにおける複数の仮想的な記憶位置のどの仮想的な記憶位置に存在するかが特定される。増分バックアップでは、その増分バックアップの際における第三の差分管理情報要素から、差分データ要素が前記スナップショットボリュームにおける複数の位置のどの位置に存在するかが特定される。
【0035】
一つの実施形態では、差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの仮想的な記憶位置で更新が生じたならば、その更新された仮想的な記憶位置がわかるよう第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、そのときにおける第一の差分管理情報要素と第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットすることができる。
【0036】
一つの実施形態では、差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、前記スナップショットボリュームにおける複数の位置のうちのいずれかの位置で更新が生じたならば、その更新された位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、前記第二の差分管理情報要素をリセットして、そのときにおける第一の差分管理情報要素をリセット後の該第二の差分管理情報要素に上書きし、その後、前記第一の差分管理情報要素をリセットすることができる。
【0037】
上述した複数の実施形態のうちの二以上を組み合わせて一つの実施形態とすることができる。例えば、記憶システムは、上述した差分バックアップと増分バックアップとのうちのいずれかの部分バックアップを選択的に実行することができる。例えば、記憶システムは、差分バックアップ指示を上位装置から受けた場合には、差分バックアップを実行し、増分バックアップ指示を上位装置から受けた場合には、増分バックアップを実行することができる。
【0038】
上述した各部(例えば、デバイス関連値取得部、デバイス識別値計算部及び対応登録部等)は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【0039】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、以下の説明では、バックアップのタイプとして、フルバックアップと、差分バックアップと、増分バックアップの3タイプがあるものとする。これら3タイプのバックアップのうち、差分バックアップ及び増分バックアップが、部分バックアップに属するタイプのバックアップである。以下、3タイプのバックアップのうちの2以上のバックアップタイプを言う場合、スラッシュ“/”を使ってまとめて記載することとする。例えば、3タイプのバックアップの全てを指す場合には、「フル/差分/増分バックアップ」と記載することにする。なお、そのときの“/”は、「及び/又は」という意味で使用される。
【0040】
例えば、この実施形態では、記憶システムが、一台の記憶サブシステムであり、上位装置が、ホスト計算機であり、バックアップ元の記憶装置が、ランダムアクセス型記憶装置、具体的には、例えば、磁気ディスク(以下、単に「ディスク」と言う)であり、バックアップ先の記憶装置が、シーケンシャルアクセス型記憶装置、具体的には、例えば、磁気テープ(以下、単に「テープ」と言う)である。
【0041】
以下、この実施形態について詳述する。
【0042】
<<システム構成>>。
【0043】
図1は、本発明の一実施形態に係る計算機システムの構成例を示す。図2は、図1のコントローラ123の構成例を示した図である。
【0044】
ホスト計算機100、記憶サブシステム101及び管理端末103は、ファイバチャネルを用いて接続されており、情報や処理要求等の受け渡しが行われる。ホスト計算機100、記憶サブシステム101及び管理端末103は、LAN(Local Area Network)等の通信ネットワークで接続されていても良いし、専用線などで接続されても良い。
【0045】
ホスト計算機100は、記憶サブシステム101に情報を書き込んだり読み込んだりするアプリケーション111と、ボリュームのペア制御指示を発行するボリュームのペア制御指示プログラム112と、バックアップ/リストア制御指示を発行するバックアップ/リストア制御指示プログラム113と、アプリケーション111、ボリュームのペア制御指示プログラム112及びバックアップ/リストア制御指示プログラム113を記憶するメモリ121と、アプリケーション111、ボリュームのペア制御指示プログラム112及びバックアップ/リストア制御指示プログラム113を実行するためのCPU(Central Processing Unit)122とを備える。ボリュームのペア制御指示プログラム112を実行するCPU122は、ペア形成指示、ペア再同期指示、ペア分割指示及びペア削除指示等の種々のコマンドを発行する。以下、プログラムが主語になる場合は、実際にはそのプログラムを実行するCPUによって処理が行われるものとする。バックアップ/リストア制御指示プログラム113は、フルバックアップ開始指示、差分バックアップ開始指示、増分バックアップ開始指示及びリストア開始指示等の種々のコマンドを発行する。
【0046】
記憶サブシステム101は、コントローラ123、ディスク部90及びテープライブラリ装置125を備える。コントローラ123は、バックアップデータ管理、バックアップ処理及びリストア処理等を行うバックアップ/リストア制御プログラム131と、ディスク管理、ボリュームのペア管理、ホストI/O処理及びボリュームのペア操作処理等を行うディスク制御プログラム132と、テープ管理、テープインポート処理及びテープエクスポート処理等を行うテープライブラリ制御プログラム133とを備える。
【0047】
テープライブラリ装置125は、複数のテープ136と、テープ136の移動を行うロボット134、テープ136に情報を書き込んだり読み込んだりするテープドライブ135と、テープ136を記憶サブシステム101から出したり入れたりするためのテープエクスポート/インポートスロット137とを備える。
【0048】
ディスク部90は、複数のディスクで構成されている。複数のディスクのうちの二以上のディスクによりRAID(Redundant Array of Independent (or Inexpensive) Disks)グループが構成されている。このディスク部90には、例えば、複数のRAIDグループがある。一つのRAIDグループの記憶空間を基に、一以上の論理ボリュームが形成されている。このため、ディスク部90には、複数の論理ボリュームがある。複数の論理ボリュームには、例えば、主ボリューム(プライマリの論理ボリューム)150と、プールボリューム151と、主ボリューム150とプールボリューム151以外の論理ボリュームであるボリューム124とがある。主ボリューム150は、ホスト計算機100から送信されたライト対象のデータが書込まれる論理ボリュームである。この主ボリューム150内のデータを失わないようにするために、後述のスナップショットボリューム152をバックアップ元としたバックアップが実行される。プールボリューム151は、主ボリューム150とスナップショットボリューム152とがペア分割状態の場合に、主ボリューム150内の或るデータブロックが別のデータブロックに更新されるならば、更新前の該或るデータブロックがコピーされる論理ボリュームである。
【0049】
また、記憶サブシステム101には、主ボリューム150の論理的なスナップショットを表す仮想的なボリューム(以下、スナップショットボリューム)152がある。スナップショットボリューム152は、主ボリューム150とスナップショット152とのペアが分割された時点での、主ボリューム150のデータイメージを、論理的に保持するボリュームである。スナップショットボリューム152は、仮想的なボリュームであり、実際にデータが格納されるボリュームではない。スナップショットボリューム152により論理的に保持されるデータイメージを構成するデータは、主ボリューム150及び/又はプールボリューム151に記憶されている。従って、スナップショットボリューム152をバックアップ元としたバックアップが実行される場合には、主ボリューム150及び/又はプールボリューム151から、そのスナップショットボリューム152により論理的に保持されるデータイメージを構成するデータが読み出され、バックアップ先に格納される。
【0050】
ディスク制御プログラム132は、ホスト計算機100からのペア制御指示に応答して、ペア制御を実行する機能を有する。ペア制御としては、例えば、主ボリューム150とスナップショットボリューム152から構成されるボリュームのペアを作成するペア形成、ボリューム間の差分データコピーを行うペア再同期、ボリューム間を分割するペア分割、ボリュームのペアを削除するペア削除等がある。ディスク制御プログラム132は、ディスク部90の管理を行うプログラム214と、ボリュームのペア管理を行うプログラム215と、ホスト計算機100からの情報の書き込み読み込み等のI/Oを処理するプログラム216と、ボリュームのペア操作処理を行うプログラム217とから構成される。
【0051】
バックアップ/リストア制御プログラム131は、バックアップデータ管理を行うプログラム211と、バックアップ処理を行うプログラム212と、リストア処理を行うプログラム213とから構成される。バックアップデータ管理211は、バックアップデータの管理をする機能を有し、さらに、差分/増分バックアップを行うために、バックアップ間の差分データを管理する機能も有する。さらに、バックアップ/リストア制御プログラム131は、スナップショットボリューム152の情報をテープ136にフル/差分/増分バックアップしたり、テープ136の情報を主ボリューム150にリストアしたりする機能を有する。リストア先は、主ボリューム150でも良いし、主ボリューム150とは異なるリューム(例えばボリューム124)でも良い。
【0052】
テープライブラリ制御プログラム133は、テープ136の管理を行うプログラム218と、テープインポート処理を行うプログラム219と、テープエクスポート処理を行うプログラム220とから構成される。テープライブラリ制御プログラム133は、テープエクスポート/インポートスロット137を用いて、テープ136をエクスポートする機能及びインポートする機能を有する。
【0053】
管理端末102は、管理画面141を有し、記憶サブシステム101の管理を行う機能を有する。例えば、ディスク部90に論理ボリューム(以下、「LU」と呼ぶ場合もある)を作成したり、テープ136のエクスポート/インポート指示を発行したりする。管理画面141は、例えば、管理端末102の図示しない表示装置が有するディスプレイ画面である。
【0054】
コントローラ123は、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133を記憶するメモリ(以下、制御メモリ)201と、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133を実行するプロセッサ(例えば、CPU、以下、制御プロセッサ)202と、一時的に情報を記憶するキャッシュメモリ203と、ホスト計算機101、ディスク部90及びテープライブラリ装置125間のデータ転送を行うデータ転送LSI(Large Scale Integration)204とを備える。
【0055】
図3は、ボリュームのペア管理215がもつ第一の管理情報例を示す。
【0056】
ボリュームのペア管理215がもつ第一の管理情報には、例えば、ペア構成管理テーブル301と、スナップショット用ビットマップ管理テーブル302と、スナップショット用ビットマップ303とが含まれる。
【0057】
ペア構成管理テーブル301は、ボリュームのペア操作処理217によって作成されたボリュームのペアの構成情報や状態を管理するためのものである。このテーブル301には、各ボリュームペア毎に、ボリュームペア番号311と、主ボリューム150と、スナップショットボリューム313と、状態314とが記録される。ボリュームペア番号311は、ボリュームのペアを一意に識別する番号である。主ボリューム150は、主ボリューム150となるLU(論理ユニット)のLUN(論理ユニット番号)である。スナップショットボリューム313は、スナップショットボリューム152となるLU(仮想的な論理ボリューム)のLUNである。1つの主ボリュームに複数のスナップショットボリュームを構成することも可能である。状態314は、ペア状態、分割状態、ペア状態移行中、分割状態移行中、エラー状態等のボリュームのペアの状態である。ペア状態は主ボリュームの静止化イメージを維持していない状態、または、主ボリューム150とスナップショットボリューム152の情報が同期している状態で、分割状態は主ボリューム150のある時点の静止化イメージをスナップショットボリューム152に取得した状態であり、その後のホストからの更新によって主ボリューム150とスナップショットボリューム152の情報が同期しない状態である。ペア状態移行中はペア状態への移行処理を行っている状態で、分割状態移行中は分割状態への移行処理を行っている状態である。
【0058】
スナップショット用ビットマップ管理テーブル302は、ボリュームのペアごとに、主ボリューム150とスナップショットボリューム152間の差分を管理するためのものである。その差分は、例えば、スナップショット用ビットマップ303によって管理される。このテーブル302には、各ボリュームペア毎に、ボリュームペア番号321と、スナップショットビットマップ番号322と、差分管理サイズ323と、スナップショットビットマップ格納位置324とが記録される。ボリュームのペア番号321は、どのボリュームのペアのスナップショット用ビットマップかを示している。スナップショットビットマップ番号322は、スナップショット用ビットマップ303を一意に識別する番号である。差分管理サイズ323は、スナップショット用ビットマップの1ビットが対応するサイズを示す。スナップショットビットマップ格納位置324は、ディスク部90におけるどのディスクのどこにスナップショット用ビットマップを格納しているかを示す。例えば、スナップショットビットマップ格納位置324が、0:0−0:1000であれば、LUNが0のLUのLBA0から1000に格納していることを示す。スナップショット用ビットマップの格納位置324は、参照速度の高速化のために、ディスク部90上ではなく、制御メモリ201上やキャッシュメモリ203上に格納しても良い。
【0059】
例えば、差分管理サイズ323が1MBであれば、331aがLUの先頭から1MB、331bがLUの先頭1MBから2MBに対応するブロックの差分ビットを示す。差分ビット331は、ペア分割状態において、対応するブロックのどれか一つで、主ボリューム150とスナップショットボリューム152の情報が異なっていれば、反転される。例えば、主ボリューム150とスナップショットボリューム152との間において、331a、331b、331eに対応したブロックに記憶されているデータは同じであるが、331cと331dに対応するブロックに記憶されているデータは異なっていることを表す。スナップショット用ビットマップのサイズは、LUの容量と差分管理サイズ323で決まり、例えば、LUの容量が100MBで、差分管理サイズ323が1MBであれば、1枚のスナップショット用ビットマップのサイズは100ビットとなる。
【0060】
図4は、ボリュームのペア管理215がもつ第二の管理情報例を示す。
【0061】
ボリュームのペア管理215がもつ第二の管理情報には、例えば、スナップショット管理テーブル304と、プール構成管理テーブル305とが含まれる。
【0062】
スナップショット管理テーブル304には、スナップショット用ビットマップ303の識別子であるビットマップ番号341、そのスナップショット用ビットマップ303における各ビットの識別子であるビット番号342、及び、その各ビットに対応するデータブロックが格納されている位置の情報を示すデータ格納位置343がある。データ格納位置343は、例えば、論理ボリュームのLUNとLBAとの組み合わせで表される。主ボリューム150とスナップショットボリューム152とが初めてペアにされた場合には、主ボリューム150には未だ更新が無く、それ故、スナップショットボリューム152が表すデータイメージ(スナップショットイメージ)を構成するデータブロックは全て主ボリューム150にあるので、データ格納位置343の初期値は、主ボリューム150のLUN及びLBAとなる。主ボリューム150に更新があり、その更新位置に有る更新前データがプールボリューム151にコピーされたならば、その更新位置に対応したビットに対応するデータ格納位置343は、コピー先のプールボリューム151のLUN及びLBAとなる。スナップショット管理テーブル304や、前述した第一の管理情報を参照することにより、どのボリュームペアのどこに差分があり、その差分のデータブロックがどのプールボリューム151のどこに格納されているかがわかる。
【0063】
プール構成管理テーブル351には、プールボリューム351が含まれる。プールボリューム351は、一以上のプールボリューム151にそれぞれ対応した一以上のLUNである。
【0064】
図5は、ボリュームのペア管理215がもつ第三の管理情報例を示す。
【0065】
ボリュームのペア管理215がもつ第三の管理情報には、例えば、バックアップ用ビットマップ管理テーブル306と、バックアップ用ビットマップ307とが含まれる。
【0066】
バックアップ用ビットマップ管理テーブル306は、ボリュームのペアごとに、ペア分割状態時のスナップショットボリューム152から次回のペア分割状態時のスナップショットボリューム152との間で生じた差分を、管理するためのものである。また、別の見方をすれば、主ボリュームの静止化イメージ取得時点から次回の静止化イメージ取得時点までの主ボリュームに対する更新分を管理するためのものということもできる。その差分は、例えば、バックアップ用ビットマップ307によって管理される。このテーブル306には、各ボリュームペア毎に、ボリュームペア番号361と、バックアップビットマップ番号362と、差分管理サイズ363と、バックアップビットマップ格納位置364とが記録される。ボリュームのペア番号361は、どのボリュームのペアのバックアップ用ビットマップかを示している。バックアップビットマップ番号362は、バックアップ用ビットマップ307を一意に識別する番号である。差分管理サイズ363は、バックアップ用ビットマップの1ビットが対応するサイズを示す。バックアップビットマップ格納位置364は、ディスク部90におけるどのディスクのどこにバックアップ用ビットマップを格納しているかを示す。例えば、バックアップビットマップ格納位置364が、10:0−10:1000であれば、LUNが10のLUのLBA0から1000に格納していることを示す。バックアップ用ビットマップの格納位置364は、参照速度の高速化のために、ディスク部90上ではなく、制御メモリ201上やキャッシュメモリ203上に格納しても良い。
【0067】
例えば、差分管理サイズ363が1MBであれば、371aがLUの先頭から1MB、371bがLUの先頭1MBから2MBに対応するブロックの差分ビットを示す。差分ビット371は、各ペア分割状態時にリセットされ(例えば全ての差分ビット371が0にされ)、ペア分割状態時から次回のペア分割状態時において、スナップショットボリューム152における、対応するブロックのどれか一つで情報が異なれば、反転される。別の見方をすれば、主ボリュームの静止化イメージ取得時点から次回の静止化イメージ取得時点までに主ボリュームに更新があれば、反転されることになる。例えば、ペア分割状態時から次回のペア分割状態時において、371a、371b、371eに対応したブロックは、差分が無く、371cと371dは、差分があることを表す。バックアップ用ビットマップのサイズは、LUの容量と差分管理サイズ363で決まり、例えば、LUの容量が100MBで、差分管理サイズ363が1MBであれば、1枚のバックアップ用ビットマップのサイズは100ビットとなる。
【0068】
図6は、テープ管理218が管理しているテーププール401の論理イメージ例を示す。
【0069】
テーププール401は、複数のテープ136から構成され、そのうちのいくつかのテープ136がグループ化されてテープグループ411を構成している。テープ136jのように、テープグループ411でグループ化されていないものもある。例えば、テープグループ411aは、テープ136aとテープ136bから構成される。テープ136dのように、半分はテープグループ411bで使用され、残りの半分はテープグループ411cで使用されても良い。また、テープグループ411は、必ずしも二以上のテープ136から構成されるとは限らず、例えば、一つのテープ136、或いはテープ136の一部でテープグループ411とされることもある。なお、この図6では、複数のテーププール401を示し、各テーププール401内での構成が同じになっているが、勿論、各テーププール401毎に構成は異なって良い。
【0070】
管理端末102を用いて、テープライブラリ装置125単位でテーププール401が作成される。テーププール401は、テープライブラリ装置125がもつテープ136から構成される。テーププール401の作成は、ホスト計算機100から行っても良い。テーププール401は、テープライブラリ装置125内に複数個作成しても良いし、複数のテープライブラリ装置125にまたがって作成しても良い。バックアップ処理において、バックアップ先としてテーププール401が指定され、未使用のテープに、順に、バックアップが行われる。バックアップで使用するテープは、データが全く記録されていないテープ、つまり、完全な未使用でなくても良い。例えば、バックアップでは、不要なデータが記録されているテープにデータが上書きされても良いし、途中までデータが記録されているテープに続けて追記されても良い。バックアップで使用したテープをグループ化することで、テープグループ411ができる。そのため、バックアップ単位がテープグループ411となり、バックアップデータの管理がテープグループ単位で行われる。テープグループ411は、バックアップ前に管理端末102等を用いて作成しておき、バックアップ先としてテープグループ411を指定しても良い。作成されたテープグループ411は、必要に応じてテープ136jのようなテープグループ411を構成していないテープを追加する機能を有する。例えば、あらかじめ作成しておいたテープグループ411aをバックアップ先として指定したが、データがテープ136aとテープ136bに入りきらなかった場合、テープ136jに残りのデータを格納し、テープ136a、136b、136jでテープグループ411aを構成することができる。
【0071】
なお、バックアップの際に、バックアップ対象のデータのサイズと、そのデータと共に格納する管理情報(例えば、リストアに必要される情報であるリストア必要情報を含んだ情報)のサイズとを基に、予め、テーププール401から、テープグループ411を構成するためのテープ領域(一又は複数のテープ136の全体又は一部の記録領域)を確保しておき、その確保したテープ領域に、バックアップしていっても良いし、バックアップが終了した場合にテープグループ411を構成してもよい。
【0072】
また、図6に示すように、一つのテーププール401に、複数のテープグループ411が連続するが、同一のスナップショットボリューム152から複数のバックアップを行う場合、バックアップした日時が後のものは、それが先のものよりも、下流側の場所にバックアップされてよい。例えば、フルバックアップの後に差分バックアップを行う場合、差分バックアップは、フルバックアップに対応したテープグループよりも下流(例えばその直後)から行われて良い。また、例えば、その差分バックアップの後に増分バックアップを行う場合、その差分バックアップに対応したテープグループよりも下流(例えばその直後)から、増分バックアップが行われて良い。こうすることで、リストアの際に、テープの先送りと巻き戻しとが頻発してしまうといったことを防ぐことができる。
【0073】
図7は、テープグループ411の格納情報例を示す。
【0074】
テープグループ411は、テープグループ情報501とバックアップデータ502から構成される。バックアップデータ502は、データ管理情報511とデータ512から構成される。テープグループ情報501は、リストア処理で必要となるテープグループ411の管理情報である。
【0075】
データ管理情報511は、リストア処理で必要となるバックアップ元LU(スナップショットボリューム152)の管理情報である。データ512は、バックアップ元LUのユーザデータ(ホスト計算機100のアプリケーション111に使用される一以上のデータブロックの集合)である。テープグループ情報501とデータ管理情報511の説明は、図10、11、12で後述する。
【0076】
図8は、テープ管理218がもつ管理情報例を示す。
【0077】
この管理情報には、テーププール管理テーブル601、テープグループ管理テーブル602及びテープメディア管理テーブル603が含まれる。
【0078】
テーププール管理テーブル601は、テーププール401を管理するためのテーブルである。このテーブル601には、テーププール番号611、テーププール構成テープ番号612及び格納テープグループ番号613が記録される。テーププール番号611は、テーププール401を一意に識別するための番号である。テーププール構成テープ番号612は、テーププール401を構成しているテープの番号である。101、102、103と順にテープ番号を記録しても良いし、テーブル容量削減のために111−131と記録して、テープ番号111からテープ番号131のテープで構成されるとしても良いし、それらの組合せで記録しても良い。格納テープグループ番号613は、テーププール401に作成されているテープグループ411の番号である。例えば、テーププール番号1のテーププール401は、テープ番号101、102、103のテープ136から構成されており、テープグループ番号11、12、13のテープグループ411が作成されている。
【0079】
テープグループ管理テーブル602は、テープグループ411を管理するためのテーブルである。このテーブル602には、テープグループ番号621、テープグループ状態622、テープグループ構成テーブル623、バックアップ元LUN624、バックアップデータ種別625、リストアに必要なテープグループ番号626、所属テーププール番号627及び記録日時628が記録される。テープグループ番号621は、テープグループ411を一意に識別するための番号である。テープグループ状態622は、正常、バックアップ中、リストア中、エラー等の、テープグループの状態を示す。テープグループ構成テープ623は、テープグループの位置を表す情報(位置情報)であり、その位置情報は、例えば、テープ番号631と対象アドレスとの組み合わせで表される。101:10−900は、テープ番号101のアドレス10から900を表す。バックアップ元LUN624は、バックアップ元LUのLUNを示す。バックアップデータ種別625は、バックアップデータ502中のデータ512がフル/差分/増分のいずれのバックアップにより格納されたデータであるかを示す。リストアに必要なテープグループ番号626は、リストア時に必要となるテープグループ番号621を示す。所属テーププール番号627は、テープグループ411が所属するテーププール番号611を示す。記録日時628は、バックアップを開始した日時を示す。記録日時628は、バックアップ終了日時を記録しても良いし、バックアップ処理時に指定された日時を記録しても良い。
【0080】
例えば、2006/4/4の22:00:00にフルバックアップを、2006/4/11の22:00:00に差分バックアップを、2006/4/12の22:00:00に増分バックアップを、順に行ったとする。テープグループ番号11のテープグループ411には、2006/4/4の22:00:00に、LUN2001と2002のLUを、テープ番号101、102、103に、フルバックアップしたデータが記録されている。テープグループ番号12のテープグループ411には、2006/4/11の22:00:00に、LUN2001と2002のLUを、テープ番号104、105に、差分バックアップしたデータが記録されている。テープグループ番号13のテープグループ411には、2006/4/12の22:00:00に、LUN2001と2002のLUを、テープ番号106に、増分バックアップしたデータが記録されている。テープグループ番号11のテープグループ411のフルバックアップデータ502からリストア処理を行うためには、テープグループ番号11のテープグループ411だけで良いので、リストアに必要なテープグループ番号626には何も記録されていない。テープグループ番号12のテープグループ411の差分バックアップデータ502からリストア処理を行うためには、テープグループ番号11のテープグループ411も必要となるので、リストアに必要なテープグループ番号626には11が記録されている。テープグループ番号13のテープグループ411の増分バックアップデータ502からリストア処理を行うためには、テープグループ番号11と12のテープグループ411も必要となるので、リストアに必要なテープグループ番号626には11、12が記録されている。この場合、リストア処理では、テープグループ番号11、12、13の順で、テープグループ411のコピー処理(テープからリストア先のボリュームへのコピー)が行われる。もしくは、リストアに必要なテープグループ番号626には、前回のバックアップデータ502が記録されているテープグループ411のテープグループ番号621だけが記録されており、例えば、テープグループ番号13のテープグループ411を指定してリストア要求がきたら、テープグループ番号13のリストアに必要なテープグループ番号626を参照して、先にテープグループ番号12のテープグループ411のコピー処理が必要なことが分かり、さらに、テープグループ番号12のリストアに必要なテープグループ番号626を参照して、先にテープグループ番号11のテープグループ411のコピー処理が必要なことが分かり、さらに、テープグループ番号11のリストアに必要なテープグループ番号626を参照して、テープグループ番号621がフルバックアップデータ502であることが分かり、リストア処理では、テープグループ番号11、12、13の順で、テープグループ411のコピー処理が行われても良い。
【0081】
テープメディア管理テーブル603は、テープ136を管理するためのテーブルである。このテーブル603には、テープ番号631、テープ種別632、1ブロックサイズ633、テープ容量634、使用済み容量635、テープ状態636、所属テーププール番号637及び所属テープグループ番号638が記録される。テープ番号631は、テープ136を一意に識別するための番号である。テープ種別632は、LTO3やLTO4等、テープの規格を示すものである。1ブロックサイズ633は、テープ136の1ブロックの容量を示す。テープ容量634は、テープ136の容量を示す。使用済み容量635は、テープ136にどれだけの容量のバックアップデータ502が記録されているかを示す。テープ状態636は、正常、未使用、エラー等のテープ136の状態を示す。例えば、正常はバックアップデータ502が正常に記録されている状態を、未使用はバックアップデータ502が記録されていない状態を、エラーはメディア障害等によってテープ136が使用できない状態を表す。所属テーププール番号637は、テープ136が所属するテーププール番号611を示す。所属テープグループ番号638は、テープ136が所属するテープグループ番号621を示す。例えば、テープ番号101のテープ136は、バックアップデータ502が記録されており、テーププール番号1のテーププール401とテープグループ番号11のテープグループ411に所属している。テープ番号111のテープ136は、バックアップデータ502が記録されておらず、テーププール番号4のテーププール401に所属している。
【0082】
図9は、バックアップデータ管理211がもつ管理情報例を示す。
【0083】
この管理情報には、バックアップデータ管理テーブル701、差分/増分用ビットマップ管理テーブル702及び差分/増分用ビットマップ703が含まれる。
【0084】
バックアップデータ管理テーブル701は、バックアップデータ502を管理するためのテーブルである。このテーブル701には、バックアップデータ番号711、バックアップ元LUN712、バックアップ先テープグループ番号713、バックアップデータの状態714、バックアップデータ種別715及びバックアップ取得日時716が記録される。バックアップデータ番号711は、バックアップデータ502を一意に識別するための番号である。バックアップ元LUN712は、バックアップ元LUのLUNを示す。バックアップ先テープグループ番号713は、バックアップデータ502が記録されているテープグループ番号621を示す。バックアップデータの状態714は、正常、リストア不可、エラー等のバックアップデータの状態を示す。例えば、“正常”は、バックアップデータ502が記録されておりリストアできる状態を表す。“リストア不可”は、バックアップデータ502が失われておりリストアできないが、テープ136は使用可能な状態であることを表す。“エラー”は、テープメディア障害でテープ136が使用できない状態を表す。バックアップデータ種別715は、バックアップデータ502がフルバックアップデータ、差分バックアップデータ及び増分バックアップデータのいずれであるかを示す。バックアップ取得日時716は、バックアップを開始した日時を示す。バックアップ取得日時716は、バックアップ終了日時を記録しても良いし、バックアップ処理時に指定された日時を記録しても良い。
【0085】
差分/増分用ビットマップ管理テーブル702と差分/増分用ビットマップ703は、差分/増分バックアップを行うために、フルバックアップ以降のテープライブラリ装置125とスナップショットボリューム152との差分/増分のデータを管理するためのものである。バックアップ元LUごとに、差分/増分用ビットマップにより、フルバックアップからの上記差分/増分のデータを管理が行われる。もちろん、ビットマップではなく、他の手法、例えば、差分/増分のデータのリストによって、差分/増分のデータが管理されても良い。例えば、月の初めはフルバックアップ、平日は増分バックアップ、日曜日は差分バックアップといった、フル/差分/増分バックアップ運用では、差分用ビットマップが1枚では、差分バックアップと増分バックアップを組み合わせることはできないので、バックアップ元LUごとに、差分バックアップ用と増分バックアップ用の2枚のビットマップが備えられる。
【0086】
差分/増分用ビットマップ管理テーブル702には、LUN721、差分/増分用ビットマップ番号722、バックアップ種別723、差分管理サイズ724、及び、差分/増分用ビットマップ格納位置725が記録される。LUN721は、差分/増分のデータの管理を行っているLU(つまり、差分/増分データ管理の対象となっているスナップショットボリューム152)のLUNを示す。差分/増分用ビットマップ番号722は、差分/増分用ビットマップ703を一意に識別する番号である。バックアップ種別723は、対応する差分/増分用ビットマップが差分バックアップ用のビットマップ(差分用ビットマップ)であるか増分バックアップ用のビットマップ(増分用ビットマップ)であるかを示す。差分管理サイズ724は、差分/増分用ビットマップの1ビットが対応するサイズを示す。差分/増分用ビットマップ格納位置725は、ディスク部90のどこに差分/増分用ビットマップを格納しているかを示す。例えば、差分/増分用ビットマップ格納位置725が、5:0−5:1000であれば、LUNが5のLUのLBA0から1000に格納していることを示す。差分/増分用ビットマップの格納位置は、参照速度の高速化のために、ディスク部90上ではなく、制御メモリ201上やキャッシュメモリ203上に格納しても良い。
【0087】
差分/増分用ビットマップ703は、例えば、差分管理サイズ724が1MBであれば、731aがLUの先頭から1MB、731bがLUの先頭1MBから2MBに対応するブロックの差分ビットを示す。対応するブロックのどれか一つが更新されたら差分ビットを反転する。例えば、731a、731b、731eは更新されておらず、731c、731dが更新されていることを表し、差分/増分バックアップ時は、731c、731dに対応するブロックが、バックアップ対象となる。フルバックアップ終了時に、差分用ビットマップと増分用ビットマップがリセットされる。差分バックアップと増分バックアップ終了時は、増分用ビットマップだけがリセットされる。差分/増分用ビットマップのサイズは、LUの容量と差分管理サイズ724で決まり、例えば、LUの容量が100MBで、差分管理サイズ724が1MBであれば、1枚の差分/増分用ビットマップ703のサイズは100ビットとなる。
【0088】
図10は、テープ136の記録形式例を示す。図11は、フルバックアップ時にテープに記録する管理情報例を示し、図12は、差分/増分バックアップ時にテープに記録する管理情報例を示す。バックアップ時にテープに記録する管理情報は、例えば、制御メモリ201に記憶されている情報である。
【0089】
テープ136には、複数個のブロック811と複数個のEOD(End Of Data)812が記録される。ブロック811には、各々ブロック811を識別するブロック番号が付けられていて、ブロック番号は、テープ136の始端(BOT(Beginning Of Tape)側)から終端(EOT(End Of Tape)側)に向かって、1、2、3、・・・と1つずつ増加する値をとる。テープ136をテープドライブ135にマウントした直後にテープ136にブロック811を記録すると、ブロック番号が1のところにブロック811が記録され、次のブロック811を記録するとブロック番号が2のところにブロック811が記録される。以降、ブロック811を記録すると、ブロック番号が3のところに、ブロック番号が4のところに、というように順次EOT側に向かってブロック811が記録される。また、テープ136を巻き戻した直後にブロック811を再生すると、ブロック番号が1のブロック811が再生され、次にブロック811を再生するとブロック番号が2のブロック811が再生されるというように順次EOT側に向かってブロック811が再生される。また、ブロック811の再生は、最後に記録されたブロック811まで再生される。
【0090】
テープ情報821は、テープ136Aの先頭ブロックであるブロック番号1に記録される。テープ情報821は、ブロック番号1と2等、複数ブロックに記録されても良い。フルバックアップ時、差分/増分バックアップ時ともに、テープメディア管理テーブル603を参照して、テープ情報821として、テープ番号631、テープ種別632、1ブロックサイズ633、テープ容量634が記録される。
【0091】
テープ情報821を記録したブロックの次のブロック番号に、テープグループ情報501が記録される。テープグループ情報501は複数ブロックに記録されても良い。テープグループ管理テーブル602を参照して、テープグループ情報501として、フルバックアップの場合は、装置番号921、テープグループ番号621、バックアップ元LUN624、バックアップデータ種別625、記録日時628が記録され、差分/増分バックアップの場合は、装置番号921、テープグループ番号621、バックアップ元LUN624、バックアップデータ種別625、記録日時628、リストアに必要なテープグループ番号626が記録される。装置番号921は、バックアップを行った記憶サブシステム101を一意に識別するための番号である。
【0092】
テープグループ情報501を記録したブロックの次のブロック番号に、データ管理情報511が記録される。データ管理情報511は複数ブロックに記録されても良い。データ管理情報511として、フルバックアップ場合は、LUN931、LU容量932が記録され、差分/増分バックアップの場合は、差分/増分用ビットマップ管理テーブル702を参照して、LUN931、LU容量932、差分管理サイズ724、差分/増分用ビットマップ703が記録される。LUN931は、バックアップ元LUのLUNである。LU容量932は、バックアップ元LUのLU容量である。増分バックアップの場合、テープに記録するのは、増分用ビットマップだけで(つまりLU毎に1枚だけで)、差分用ビットマップは記録しなくてよい。差分バックアップを行うか、増分バックアップを行うかは、ホスト計算機100からの指示で決めることができるため、差分用ビットマップには、差分バックアップ対象のビットが記録され、増分用ビットマップには、増分バックアップ対象のビットが記録される。
【0093】
データ管理情報511が記録されたブロックの次のブロック番号から、バックアップ元LUのデータ512が記録される。フルバックアップ処理では、バックアップ元LUの全てのデータ512が記録され、差分/増分バックアップ処理では、差分/増分データ512のみが記録される。
【0094】
バックアップ元LUにおけるフル/差分/増分データ512の記録が終わったならば、EOD812が記録され、バックアップ処理におけるテープへの記録が終了される。同じテープ136Aに、別のバックアップデータ502を記録する場合は、EOD812の次のブロック番号のブロックから、テープへの記録が行われる。また、バックアップデータ502が、テープ136Aと136Bにまたがって記録される場合には、テープ136Bの先頭ブロックにテープ情報821が記録され、次のブロック番号のブロックに、テープ136Aの最終ブロックに記録した情報の続きが記録される。
【0095】
さて、以下、本実施形態で行われる、差分バックアップ処理、増分バックアップ処理、差分リストア処理及び増分リストア処理の各々の概要について説明する。
【0096】
<<差分バックアップ処理の概要>>。
【0097】
図23及び図24の組み合わせにより、差分バックアップ処理の概要を示す(但し、差分バックアップ処理の前にフルバックアップ処理が行われるので、フルバックアップ処理についても図示されている)。以下の説明では、説明の一対象となる主ボリューム150を「対象主ボリューム」と呼び、対象主ボリュームに対応したスナップショット用ビットマップ303を、「SB」と呼び、対象主ボリュームとペアを構成するスナップショットボリューム152を「対象スナップショットボリューム」と呼び、対象スナップショットボリュームに対応したバックアップ用ビットマップ307を「BB」と呼び、対象スナップショットボリュームに対応した差分用ビットマップ703を「DB」と呼ぶことにする。また、図では、対象主ボリューム及び対象スナップショットボリュームが、縦3ブロック×横3ブロックのブロック群で表され、同様に、各ビットマップが、縦3ビット×横3ビットで表されているが、各ブロック群も各ビットマップも、左上から右下にかけて、1〜9番の番号を付与し、その番号で特定することとする。すなわち、各ブロック群及び各ビットマップの各ブロック及び各ビットと各番号との対応関係は、
123
456
789
であるとする。そして、特定のブロック及びビットを指す場合には、付与した番号を用いて、「ブロック:番号」、「ビット:番号」で表記することとする。以上の点は、図25及び図26を参照して増分バックアップの概要を説明する場合でも同様とする。ただし、増分バックアップでは、対象スナップショットボリュームに対応した差分用ビットマップ703に代えて、対象スナップショットボリュームに対応した増分用ビットマップ703が使用される。その増分用ビットマップ703を、「IB」と呼ぶ。
【0098】
対象スナップショットボリュームについてのフルバックアップが実行され、それ以降に生じた、対象スナップショットボリュームにおける差分データが、差分バックアップでバックアップされる。
【0099】
例えば、時刻t0で、対象主ボリューム内のブロック:5に、データAが記憶されている。
【0100】
時刻t1で、対象主ボリュームを指定したペア形成指示をディスク制御プログラム132がホスト計算機100から受けた場合、対象主ボリューム或いは対象スナップショットボリュームに対応したSB、BB及びDBが作成される。また、SBのビット:5に対応した、スナップショット管理テーブル304のデータ格納位置343として、対象主ボリュームのLUN及びブロック:5に対応したLBAが記録される。これにより、対象主ボリューム内のブロック:5におけるデータAが、対象スナップショットボリューム内のブロック:5に論理的にコピーされたことになる。実際は、データAは、対象主ボリューム内のブロック:5に存在したままである。
【0101】
時刻t2で、対象主ボリュームを指定したペア分割指示をディスク制御プログラム132がホスト計算機100から受けた場合、BB及びSBを用いた差分管理が開始される。
【0102】
時刻t3で、対象スナップショットボリュームを指定したフルバックアップ指示をバックアップ/リストア制御プログラム131がホスト計算機100から受けた場合、対象スナップショットボリューム内の全てのデータがテープにバックアップされる。ここでは、対象主ボリューム内のデータがプールボリューム151にはコピーされていないので、対象主ボリュームから全てのデータがテープにバックアップされることになる。もし、時刻t2と時刻t3との間に、対象主ボリュームの或るブロックが更新される場合、更新前のデータが該或るブロックからプールボリューム151にコピーされた後に、該或るブロックが更新される。この場合には、時刻t3では、時刻t2時点に対象主ボリュームにあったデータが、対象主ボリュームとプールボリューム151との両方から読み出され、テープに書かれる。また、もし、時刻t2と時刻t3との間に、対象主ボリュームの全てのブロックが更新された場合、時刻t3では、時刻t2時点に対象主ボリュームにあったデータが、プールボリューム151のみから読み出され、テープに書かれる。
【0103】
時刻t4で、対象主ボリュームを指定したペア再同期指示をディスク制御プログラム132がホスト計算機100から受けた場合、対象主ボリュームと対象スナップショットボリュームとのボリュームペア(以下、対象ペア)の状態314はペア状態となり、SBがリセットされ、SBを用いた差分管理が停止される。これにより、時刻t2時点での対象主ボリュームのデータイメージの管理が破棄される。
【0104】
時刻t5で、対象主ボリューム内のブロック:5にデータBが書かれる。対象ペアはペア状態なので、対象スナップショットボリューム内のブロック:5にデータBが論理的にコピーされたことになる。BBは、或るペア分割時から次のペア分割時までの対象スナップショットボリュームの差分を管理するビットマップであるため、BBのビット:5が反転される。別の見方をすれば、主ボリュームの静止化イメージ取得時点から次回の静止化イメージ取得時点までの主ボリュームに対する更新分を管理するためにBBのビット:5を反転するということもできる。
【0105】
時刻t6で、対象主ボリュームを指定したペア分割指示(2回目以降のペア分割指示)をディスク制御プログラム132がホスト計算機100から受けた場合、BBとDBの論理和が計算され、その計算結果がDBに上書きされる。つまり、DBが更新される。BBがリセットされ(反転ビットが非反転ビットとされ)、BBを用いた差分管理が開始される。また、SBを用いた差分管理も開始される。
【0106】
時刻t7で、対象スナップショットボリュームを指定した差分バックアップ指示をバックアップ/リストア制御プログラム131がホスト計算機100から受けた場合、時刻t6での更新後のDBにおける反転ビットに対応した、対象スナップショットボリュームにおけるブロックから、データが読み出され、そのデータと、時刻t6での更新後のDBとが、テープに格納される。
【0107】
時刻t8で、対象主ボリュームを指定したペア再同期指示をディスク制御プログラム132がホスト計算機100から受けた場合、対象ペアの状態314はペア状態となり、SBがリセットされ、SBを用いた差分管理が停止される。これにより、時刻t6時点での対象主ボリュームのデータイメージの管理が破棄される。
【0108】
時刻t9で、対象主ボリューム内のブロック:3にデータCが書かれ、ブロック:9に、データDが書かれる。対象ペアはペア状態なので、対象スナップショットボリューム内のブロック:3にデータCが、ブロック:9にデータDがそれぞれ論理的にコピーされたことになる。BBは、或るペア分割時から次のペア分割時までの対象スナップショットボリュームの差分を管理するビットマップであるため、BBのビット:3及びビット:9が反転される。別の見方をすれば、主ボリュームの静止化イメージ取得時点から次回の静止化イメージ取得時点までの主ボリュームに対する更新分を管理するためにBBのビット:3及びビット:9を反転するということもできる。
【0109】
時刻t10で、対象主ボリュームを指定したペア分割指示(2回目以降のペア分割指示)をディスク制御プログラム132がホスト計算機100から受けた場合、BBとDBの論理和が計算され、その計算結果がDBに上書きされる。つまり、DBが更新される。この更新後のDBでは、時刻t6と同様にビット:5が反転されており、それに加えて、時刻t9で新たに更新があったブロック:3及びブロック:9にそれぞれ対応したビット:3及びビット:9も反転されている。BBがリセットされ(反転ビットが非反転ビットとされ)、BBを用いた差分管理が開始される。また、SBを用いた差分管理も開始される。
【0110】
時刻t11で、対象スナップショットボリュームを指定した差分バックアップ指示をバックアップ/リストア制御プログラム131がホスト計算機100から受けた場合、時刻t10での更新後のDBにおける反転ビットに対応した、対象スナップショットボリュームにおけるブロック(ここでは対象主ボリューム内のブロック)から、データが読み出され、そのデータと、時刻t9での更新後のDBとが、テープに格納される。
【0111】
時刻t12で、対象主ボリュームを指定したペア再同期指示をディスク制御プログラム132がホスト計算機100から受けた場合、対象ペアの状態314はペア状態となり、SBがリセットされ、SBを用いた差分管理が停止される。これにより、時刻t10時点での対象主ボリュームのデータイメージの管理が破棄される。
【0112】
以後、対象主ボリュームのデータ更新、ペア分割指示の受領、差分バックアップ指示の受領、ペア再同期指示の受領が繰り返される。なお、ペア分割指示をスナップショット取得(静止化イメージ取得)指示、ペア再同期指示をスナップショット解除(静止化イメージ解除)指示と置き換えることもできる。この場合でも同様に静止化イメージ取得時点から次回の静止化イメージ取得時点までの主ボリュームに対する更新分を管理することにより必要領域のみのバックアップが可能である。以降の処理も同様である。また、ペア分割指示と差分バックアップ指示を1つの指示にまとめてもよい。
【0113】
<<増分バックアップ処理の概要>>。
【0114】
図25及び図26の組み合わせにより、増分バックアップ処理の概要を示す(但し、差分バックアップ処理の前にフルバックアップ処理が行われるので、フルバックアップ処理についても図示されている)。
【0115】
対象スナップショットボリュームについてのフルバックアップが実行され、それ以降に生じた、バックアップとその次回のバックアップとの間に生じた、対象スナップショットボリュームにおける差分データが、増分バックアップで、バックアップされる。
【0116】
図25に示す時刻t0〜時刻t5のそれぞれで実行される処理は、図23を参照して説明した、時刻t0〜t5のそれぞれで実行される処理と同じである。
【0117】
時刻t6で、対象主ボリュームを指定したペア分割指示(2回目以降のペア分割指示)をディスク制御プログラム132がホスト計算機100から受けた場合、IBがリセットされ、BBがIBにコピーされる。つまり、IBが更新される。BBがリセットされ、BBを用いた差分管理が開始される。また、SBを用いた差分管理も開始される。
【0118】
時刻t7で、対象スナップショットボリュームを指定した差分バックアップ指示をバックアップ/リストア制御プログラム131がホスト計算機100から受けた場合、時刻t6での更新後のIBにおける反転ビットに対応した、対象スナップショットボリュームにおけるブロックから、データが読み出され、そのデータと、時刻t6での更新後のIBとが、テープに格納される。
【0119】
時刻t8で、対象主ボリュームを指定したペア再同期指示をディスク制御プログラム132がホスト計算機100から受けた場合、対象ペアの状態314はペア状態となり、SBがリセットされ、SBを用いた差分管理が停止される。これにより、時刻t6時点での対象主ボリュームのデータイメージの管理が破棄される。
【0120】
時刻t9で、対象主ボリューム内のブロック:3にデータCが書かれ、ブロック:9に、データDが書かれる。対象ペアはペア状態なので、対象スナップショットボリューム内のブロック:3にデータCが、ブロック:9にデータDがそれぞれ論理的にコピーされたことになる。BBのビット:3及びビット:9が反転される。
【0121】
時刻t10で、対象主ボリュームを指定したペア分割指示(2回目以降のペア分割指示)をディスク制御プログラム132がホスト計算機100から受けた場合、IBがリセットされ、BBがIBにコピーされる。つまり、IBが更新される。この更新後のIBでは、時刻t9で新たに更新があったブロック:3及びブロック:9にそれぞれ対応したビット:3及びビット:9は、増分データに対応するため反転されているが、ビット:5は、それに対応するデータBは既にバックアップ済みのため、反転されていない。BBがリセットされ、BBを用いた差分管理が開始される。また、SBを用いた差分管理も開始される。
【0122】
時刻t11で、対象スナップショットボリュームを指定した差分バックアップ指示をバックアップ/リストア制御プログラム131がホスト計算機100から受けた場合、時刻t10での更新後のIBにおける反転ビットに対応した、対象スナップショットボリュームにおけるブロックから、データが読み出され、そのデータと、時刻t9での更新後のIBとが、テープに格納される。
【0123】
時刻t12で、対象主ボリュームを指定したペア再同期指示をディスク制御プログラム132がホスト計算機100から受けた場合、対象ペアの状態314はペア状態となり、SBがリセットされ、SBを用いた差分管理が停止される。これにより、時刻t10時点での対象主ボリュームのデータイメージの管理が破棄される。
【0124】
以後、対象主ボリュームのデータ更新、ペア分割指示の受領、差分バックアップ指示の受領、ペア再同期指示の受領が繰り返される。また、ペア分割指示と増分バックアップ指示を1つの指示にまとめてもよい。
【0125】
<<差分リストア処理の概要>>。
【0126】
図27は、差分リストア処理の概要の説明図である。以下の説明では、説明の一対象となる主ボリューム150を「対象主ボリューム」と呼び、対象主ボリュームとペアを構成するスナップショットボリューム152を「対象スナップショットボリューム」と呼び、対象スナップショットボリュームに対応したバックアップ用ビットマップ307を「BB」と呼び、対象スナップショットボリュームに対応した差分用ビットマップ703を「DB」と呼ぶことにする。また、図では、対象主ボリューム及び対象スナップショットボリュームが、縦4ブロック×横4ブロックのブロック群で表され、同様に、各ビットマップが、縦4ビット×横4ビットで表されているが、各ブロック群も各ビットマップも、左上から右下にかけて、1〜16番の番号を付与し、その番号で特定することとする。すなわち、各ブロック群及び各ビットマップの各ブロック及び各ビットと各番号との対応関係は、
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16、
であるとする。そして、特定のブロック及びビットを指す場合には、付与した番号を用いて、「ブロック:番号」、「ビット:番号」で表記することとする。以上の点は、図28を参照して増分バックアップの概要を説明する場合でも同様とする。ただし、増分バックアップでは、対象スナップショットボリュームに対応した差分用ビットマップ703に代えて、対象スナップショットボリュームに対応した増分用ビットマップ703が使用される。その増分用ビットマップ703を、「IB」と呼ぶ。
【0127】
時刻t0で、対象スナップショットボリュームについてのフルバックアップが行われ、時刻t1、t2、t3、t4及びt5で、それぞれ、差分バックアップが行われたとする。時刻t5でのDB(DBfと表記)が、現在時点t6でのDBであるとする。また、時刻t0でのフルバックアップ以降、時刻t3までの間に、対象主ボリューム内のブロック:3、7、11が更新され、そこから更に現在時点t6までの間に、少なくとも、対象主ボリュームのブロック:1、5、9、13及び15が更新されたとする。
【0128】
リストア元として、時刻t3時点の対象スナップショットボリュームが指定されたとする(具体的には、例えば、時刻t3時点の対象スナップショットボリュームについての差分バックアップで格納されたデータ512が記録されているテープグループが指定されたとする)。時刻t3時点の対象主ボリュームをリストアするためには、ブロック:3、7及び11に格納されるデータについては、時刻t4以降で更新された可能性があるため、時刻t3時点についての差分バックアップデータ502からリストアし、ブロック:1、5、9、13及び15に格納されるデータについては、時刻t0時点についてのフルバックアップデータ502からリストアすればよい。
【0129】
そこで、下記処理が行われる。
【0130】
(1)時刻t3より将来に更新された可能性がありリストアの必要があるブロックを示すリストア用ビットマップ(RB)が作成される。具体的には、現在時刻t6時点でのBB及びDBfの論理和が計算され、その計算結果が、RB(RBa)となる。
【0131】
(2)時刻t3時点に格納されたDB(DBd)が、リストア元に対応するテープから取得され、そのDBdにおける反転ビット:3、7及び11に対応したデータが、それぞれ、差分バックアップデータ502から、対象主ボリュームのブロック:3、7及び11にリストアされる。
【0132】
(3)RBaとDBdとの論理積が計算され、RBaから、算出された論理積(ビット番号:3、7及び11のみが反転ビット)が除かれたRB(その反転ビットが非反転ビットとされたRB)である、図示のRBbが作成される。RBbにおける反転ビット:1、5、9、13及び15に対応したデータが、残りのリストア対象である。
【0133】
(4)RBbにおける反転ビット:1、5、9、13及び15に対応したデータが、それぞれ、フルバックアップデータ502から、対象主ボリュームのブロック:1、5、9、13及び15にリストアされる。
【0134】
以上の(1)乃至(4)の一連の流れにより、時刻t3時点の対象主ボリュームが、差分リストア処理によりリストアされたことになる。
【0135】
<<増分リストア処理の概要>>。
【0136】
図28は、増分リストア処理の概要の説明図である。
【0137】
時刻t0で、対象スナップショットボリュームについてのフルバックアップが行われ、時刻t1、t2、t3、t4及びt5で、それぞれ、増分バックアップが行われたとする。時刻t5でのIB(IBfと表記)が、現在時点t6でのIBであるとする。また、時刻t0でのフルバックアップ以降、時刻t3までの間に、対象主ボリューム内のブロック:1、3、7、11、12及び16が更新され、そこから更に現在時点t6までの間に、少なくとも、対象主ボリュームのブロック:5、7、9、11、13及び15が更新されたとする。
【0138】
リストア元として、時刻t3時点の対象スナップショットボリュームが指定されたとする。時刻t3時点の対象主ボリュームをリストアするためには、ブロック:11に格納されるデータについては、時刻t3についての増分バックアップデータ502からリストアし、ブロック:7に格納されるデータについては、時刻t2についての増分バックアップデータ502からリストアし、ブロック:5、9、13及び15に格納されるデータについては、時刻t0時点についてのフルバックアップデータ502からリストアすればよい。
【0139】
そこで、下記処理が行われる。
【0140】
(1)時刻t3より将来に更新されたブロック(リストアの必要があるブロック)を示すリストア用ビットマップ(RB)が作成される。具体的には、現在時刻t6時点でのBB及びIBfと、時刻t3より将来の一以上のIBであるIB(ここでは時刻t4時点でのIB(IBe))との論理和が計算され、その計算結果が、RB(RBa)となる。
【0141】
(2)RBaと、リストア元に対応した時刻t3でのIB(IBd)との論理積が計算され、その論理積での反転ビット:11に対応したデータが、時刻t3での増分バックアップデータ502から、対象主ボリューム内のブロック:11にリストアされる。
【0142】
(3)RBaから、RBaとIBdとの論理積が除かれたRB(RBb)が作成される。このRBbの反転ビット:5、7、9、13及び15に対応したデータが、残りのリストア対象である。
【0143】
(4)RBbと、リストア元に対応した時刻t3の直前回の増分バックアップが実行された時刻t2でのIB(IBc)との論理積が計算され、その論理積での反転ビット:7に対応したデータが、時刻t2での増分バックアップデータ502から、対象主ボリューム内のブロック:7にリストアされる。
【0144】
(5)RBbから、RBbとIBcとの論理積が除かれたRB(RBc)が作成される。このRBcの反転ビット:5、9、13及び15に対応したデータが、残りのリストア対象である。
【0145】
(6)RBcと、時刻t2の直前回の増分バックアップが実行された時刻t1でのIB(IBb)との論理積が計算される。しかし、この例では、その論理積には、反転ビットが存在しないので、実際にはテープからのリストアは実行されない。
【0146】
(7)RBcから、RBcとIBbとの論理積が除かれたRB(RBd)が作成される。このRBdの反転ビット:5、9、13及び15に対応したデータが、残りのリストア対象である。
【0147】
(8)時刻t1より過去には、増分バックアップは実行されておらず、時刻t0でフルバックアップが実行された。このため、RBdの反転ビット:5、9、13及び15に対応したデータが、それぞれ、時刻t0でのフルバックアップデータ502から、対象主ボリュームのブロック:5、9、13及び15にリストアされる。
【0148】
以上の(1)乃至(8)の一連の流れにより、時刻t3時点の対象主ボリュームが増分リストア処理によりリストアされたことになる。
【0149】
以下、本実施形態で行われる処理の詳細を説明する。
【0150】
<<処理の詳細>>。
【0151】
図13は、ホスト計算機100からライト要求を記憶サブシステム101が受領した場合に実行される処理のフローを示す。
【0152】
ステップ1000では、コントローラ123が、ホスト計算機100から、ライト先LUのLUN及びLBAを指定したライト要求を受領する。これにより、ディスク制御プログラム132が実行される。ディスク制御プログラム132によって、ライト要求に従うライト対象データが、キャッシュメモリ203に一時格納される。
【0153】
ステップ1010では、ディスク制御プログラム132が、ペア構成管理テーブル301を参照して、ライト先LUのLUNが、主ボリューム150のLUNであるか否かの判定を行う。その判定の結果が、肯定的であれば、ステップ1020に進み、否定的であれば、ステップ1070に進む。
【0154】
ステップ1020では、ディスク制御プログラム132が、ペア構成管理テーブル301の、その主ボリューム150のLUNに対応した状態314が、ペア状態を示しているか否かの判定を行う。その判定の結果が、否定的であれば、ステップ1030にすすみ、肯定的であれば、ステップ1110にすすむ。
【0155】
ステップ1030では、ディスク制御プログラム132が、ライト先のLBAに対応した、ライト先LUに対応するスナップショット用ビットマップ303におけるビットが、反転済みか否かの判定を行う。その判定の結果が、否定的であれば、ステップ1040に進み、肯定的であれば、ステップ1090にすすむ。もし、ライト先のLBAに対応したビットが複数個あり、それら複数のビットに、このステップ1030での判定の結果が否定的となるビットと肯定的となるビットとが混在していれば、否定的なビットについてはステップ1040が行われ、肯定的なビットについてはステップ1090が行われる。
【0156】
ステップ1040では、ディスク制御プログラム132が、ライト先のLBAに対応した、ライト先LUに対応したスナップショット用ビットマップ303におけるビットを、反転する。
【0157】
ステップ1050では、ディスク制御プログラム132が、プールボリューム151を選択し、選択したプールボリューム151において、反転したビットに対応した容量分の領域を確保する。
【0158】
ステップ1060では、ディスク制御プログラム132が、スナップショット管理テーブル304を更新する。具体的には、例えば、ディスク制御プログラム132は、反転した各ビットにつき、ライト先LUに対応したスナップショット用ビットマップ303の番号と、反転したビットの番号と、その反転したビットに対応した位置(主ボリューム150内の更新位置)にある更新前データの格納先位置を示す情報(選択したプールボリューム151のLUNと、上記確保された領域におけるLBA)とを、スナップショット管理テーブル304に書込む。
【0159】
ステップ1070では、ディスク制御プログラム132が、反転したビットに対応した位置にある、主ボリューム150における更新前データを、それの格納先位置(選択したプールボリューム151での上記確保された領域内の位置)に、コピーする。
【0160】
ステップ1080では、ディスク制御プログラム132が、主ボリューム150を含んだボリュームペアに対応したバックアップ用ビットマップ307において、主ボリューム150内の更新位置に対応したビットを反転する。
【0161】
ステップ1090では、ディスク制御プログラム132が、ライト要求に従うライト対象データを、そのライト要求で指定されているLUN及びLBAに対応した位置に、書込む。
【0162】
ステップ1100では、ディスク制御プログラム132が、ホスト計算機100に、書込みの完了報告を送信する。なお、この完了報告は、ステップ1100ではなく、ライト対象データがキャッシュメモリ203に格納された時点で、行われても良い。
【0163】
ステップ1110では、ディスク制御プログラム132が、主ボリューム150を含んだボリュームペアに対応したバックアップ用ビットマップ307において、主ボリューム150内の更新位置に対応したビットが反転されているか否かの判定を行う。その判定の結果が肯定的であれば、ステップ1090に進み、否定的であれば、ステップ1080にすすむ。
【0164】
図14及び図15は、フルバックアップ処理の処理フローを示す。
【0165】
ステップ2000では、バックアップしたいLU(スナップショットボリューム152)が、ボリュームのペアを形成しているか否かの判定が行われる。この判定は、ユーザによって行われても良いし、ボリュームのペア制御指示プログラム112が、ペア構成管理テーブル301を参照することにより、行われても良い。判定の結果が、肯定的であれば、ステップ2070にすすみ、否定的であれば、ステップ2010へ進む。
【0166】
ステップ2010では、ホスト計算機100のボリュームのペア制御指示プログラム112から記憶サブシステム101へ、ペア形成指示が発行される。そのペア形成指示では、例えば、主ボリューム150のLUNが指定される。
【0167】
ステップ2020では、ディスク制御プログラム132が、ペア形成指示を受領する。
【0168】
ステップ2030では、ディスク制御プログラム132が、そのペア形成指示に応答して、ペア形成処理を実行する。その処理では、例えば、その指示から特定されるボリュームペアに対応した、ペア構成管理テーブル301の状態314が、ペア状態にされる。また、その処理では、そのボリュームペアに対応したスナップショット用ビットマップ303、バックアップ用ビットマップ307、差分用ビットマップ703、増分用ビットマップ703が作成される。また、その処理では、スナップショット用ビットマップ管理テーブル302、バックアップ用ビットマップ管理テーブル306、及び差分/増分用ビットマップ管理テーブル702への情報登録や、スナップショット管理テーブル304への情報登録も行われる。その際、スナップショット管理テーブル304に書かれるデータ格納位置343の初期値は、主ボリューム150を表す位置情報となる。
【0169】
ステップ2040では、ホスト計算機100のボリュームのペア制御指示プログラム112から、記憶サブシステム101へ、ペア分割指示が発行される。そのペア分割指示では、例えば、ステップ2030でペア状態にされたボリュームペア中の主ボリューム150のLUNが指定される。
【0170】
ステップ2050では、ディスク制御プログラム132が、ペア分割指示を受領する。
【0171】
ステップ2060では、そのペア分割指示に応答して、ペア分割処理が行われる。ペア分割処理については、後に、図20を参照して説明する。
【0172】
ステップ2070では、バックアップしたいLU(スナップショットボリューム152)を含んだボリュームペアの状態314が、ペア状態であるか否かの判定が行われる。この判定は、ユーザによって行われても良いし、ボリュームのペア制御指示プログラム112が、ペア構成管理テーブル301を参照することにより、行われても良い。判定の結果が、肯定的であれば、ステップ2040にすすみ、否定的であれば、ステップ2080へ進む。
【0173】
ステップ2080では、ホスト計算機100のボリュームのペア制御指示プログラム112から記憶サブシステム101へ、ペア再同期指示が発行される。そのペア再同期指示では、例えば、バックアップしたいLU(主ボリューム150)のLUNが指定される。
【0174】
ステップ2090では、ディスク制御プログラム132が、ペア再同期指示を受領する。
【0175】
ステップ2100では、そのペア再同期指示に応答して、ペア再同期処理が行われる。ペア再同期処理については、後に、図19を参照して説明する。
【0176】
図15に示すように、ステップ3000では、ホスト計算機100のバックアップ/リストア制御指示プログラム113から記憶サブシステム101に、フルバックアップ開始指示が発行される。このフルバックアップ開始指示では、例えば、ペア分割指示で指定したLUNに対応するLUを含んだボリュームペアを構成するスナップショットボリューム152のLUNが、バックアップ元LUNとして指定される。
【0177】
ステップ3010では、バックアップ/リストア制御プログラム131が、フルバックアップ処理開始指示を受領する。バックアップ/リストア制御プログラム131が、例えば、テープのマウント要求を、テープライブラリ装置125に送信する。
【0178】
ステップ3020では、テープライブラリ制御プログラム133が、例えば上記マウント要求を受信しそれに応答して、ロボット134を制御して、バックアップ先となるテープ136をテープドライブ135にマウントさせる。この時、必要となるテープ136を複数のテープドライブ135にマウントして、並列書き込みを行なっても良いし、コピーの終わったテープ136とコピーの終わっていないテープ136を入れ替えながらコピー処理を行なっても良い。なお、バックアップ先となるテープ136は、例えば、テープライブラリ制御プログラム133によって、任意に選択された未使用のテープである。これらは、ステップ4050やステップ5050で同じであっても良い。
【0179】
ステップ3030では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、フルバックアップ時にテープに記録する管理情報901が構築され、構築された管理情報901が、テープ136に記録される。管理情報901は、例えば、制御メモリ201を参照し、マウントされたテープ136のテープ番号631に対応した情報をテープメディア管理テーブル603から取得する等の処理を行うことで、構築することができる。管理情報901に含まれるテープグループ番号621は、今回のフルバックアップ開始指示で記録されることになる一以上のフルバックアップデータを含むためのテープグループの番号である。LUN931やLU容量932は、このフルバックアップでのバックアップ元LUのLUNとLU容量である。なお、例えば、今回のテープグループがテープ136の途中から始まるが別のテープ136に跨がない場合には、テープ情報821は構築されなくて良い。テープ情報821は、テープ136の先頭に記録される情報であるためである。これらは、ステップ4060及び5060でも同様とすることができる。
【0180】
ステップ3040では、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、バックアップ元として指定されたLUのデータが全てテープ136にコピーされる。このフルバックアップ中では、例えば、テープ管理218によって、図8のテープグループ管理テーブル602において、テープグループ番号621として14が記録されると共に、テープグループ状態622としてバックアップ中が記録され、バックアップデータ種別625としてフルが記録され、バックアップが済んだ場合に、テープグループ状態622として正常が記録される。
【0181】
バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、バックアップ元として指定された全てのLUのコピーが終わるまで(ステップ3050:NO)、ステップ3060とステップ3070を繰り返す。なお、この繰返しでのステップ3030では、データ管理情報511のみが構築され記録される。データ管理情報511は、各バックアップデータ毎に含まれるためである。これは、ステップ4080での繰返しによるステップ4060や、ステップ5080での繰返しによるステップ5060でも同様とすることができる。全てのLUのコピーが終わった場合に(ステップ3050:YES)、ステップ3060にすすむ。
【0182】
ステップ3060では、バックアップデータ管理211とテープ管理218の管理情報が更新される。例えば、バックアップデータ管理211が、バックアップデータ管理テーブル701に、フルバックアップしたバックアップデータ502に関する情報を追加する。また、テープ管理218が、テープグループ管理テーブル602に、テープグループ411に関する情報を追加(もしくはすでに登録されている場合は情報を更新)し、テーププール管理テーブル601の格納テープグループ番号613に、今回のフルバックアップデータ502を記憶するテープグループの番号を追加する。なお、上記括弧内で、情報を更新する場合としては、例えば、バックアップ前にあらかじめテープグループが定義されている場合がある(これは、フル/差分/増分の違いは関係ない)。この場合、例えば、バックアップ前に、621,622,627が登録されており、バックアップ後に、622,623,624,625,626,628が登録(更新)される場合、テープグループ管理テーブル602で情報を更新することがある。このステップ3060が終わった場合、例えば、バックアップ/リストア制御プログラム131又はテープライブラリ制御プログラム133から、テープライブラリ装置125に、アンマウント要求が送信される。
【0183】
ステップ3070では、テープライブラリ制御プログラム133が、例えば上記アンマウント要求を受信しそれに応答して、ロボット134を制御して、テープ136をテープドライブ135からアンマウントさせる。
【0184】
ステップ3080では、バックアップ/リストア制御プログラム131が、フルバックアップ処理終了をホスト計算機100に通知する。
【0185】
ステップ3090では、例えば、フルバックアップ処理終了の通知を受けたことに応答して、ホスト計算機100のボリュームのペア制御指示プログラム112から記憶サブシステム101へ、ペア再同期指示が発行される。そのペア再同期指示では、例えば、バックアップしたいLU(主ボリューム150)のLUNが指定される。
【0186】
ステップ3100では、ディスク制御プログラム132が、ペア再同期指示を受領する。
【0187】
ステップ3110では、そのペア再同期指示に応答して、ペア再同期処理が行われる。
【0188】
図16は、差分バックアップ処理の処理フローを示す。
【0189】
ステップ4000では、ホスト計算機100のボリュームのペア制御指示プログラム112から、記憶サブシステム101へ、ペア分割指示が発行される。そのペア分割指示では、例えば、バックアップしたいLU(主ボリューム150)のLUNが指定される。
【0190】
ステップ4010では、ディスク制御プログラム132が、ペア分割指示を受領する。
【0191】
ステップ4020では、そのペア分割指示に応答して、ペア分割処理が行われる。
【0192】
ステップ4030では、例えばペア分割処理の終了に応答して、ホスト計算機100のバックアップ/リストア制御指示プログラム113から記憶サブシステム101に、差分バックアップ開始指示が発行される。この差分バックアップ開始指示では、例えば、ペア分割指示で指定したLUNに対応するLUを含んだボリュームペアを構成するスナップショットボリューム152のLUNが、バックアップ元LUNとして指定される。
【0193】
ステップ4040では、バックアップ/リストア制御プログラム131が、差分バックアップ処理開始指示を受領する。その指示に応答して、例えば、バックアップ/リストア制御プログラム131が、テープのマウント要求を、テープライブラリ制御プログラム133に送信する。
【0194】
ステップ4050では、テープライブラリ制御プログラム133が、例えばそのマウント要求に応答して、バックアップ先となるテープ136をテープドライブ135にマウントさせる。
【0195】
ステップ4060では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、差分バックアップ時にテープに記録する管理情報902が構築され、その管理情報902が、テープ136に記録あれる。テープグループ番号621は、今回の差分バックアップ開始指示で記録されることになる一以上の差分バックアップデータ502を含むための今回のテープグループの番号である。管理情報902には、リストアに必要なテープグループ番号626が含まれるが、この番号626は、例えば、バックアップデータ管理テーブル701から、以下の3つの条件、
(1)今回の差分バックアップのバックアップ元LUNと同一のLUNがバックアップ元LUN712である、
(2)バックアップデータ種別715がフルである、
(3)(1)及び(2)を満たすバックアップ取得日時716のうち、現在の日時から最も近い日時である、
を満たすバックアップ先テープグループ番号713から取得される。また、データ管理情報511には、バックアップ元LUNのLUN721に対応した差分管理サイズ724や、
そのLUN721に対応した差分用ビットマップ格納位置725にある差分用ビットマップ703が含められる。なお、増分バックアップの場合は、例えば、上記(1)及び(3)を満たすテープグループ番号(フル/差分/増分のどの可能性もある)に登録されているリストアに必要なテープグループ番号626に、前記テープグループ番号((1)と(3)を満たすテープグループ番号)を追加したテープグループ番号(例えば複数個)が登録される。
【0196】
ステップ4070では、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、LUN721がバックアップ元LUNでありバックアップ種別723が差分に対応した差分用ビットマップ格納位置725にある差分用ビットマップ703が参照され、差分ビットの反転しているデータだけがディスク部90からテープ136にコピーされる。この差分バックアップ中では、例えば、テープ管理218によって、図8のテープグループ管理テーブル602において、テープグループ番号621として、今回のテープグループの番号が記録されると共に、テープグループ状態622としてバックアップ中が記録され、バックアップデータ種別625として差分が記録され、バックアップが済んだ場合に、テープグループ状態622として正常が記録される。
【0197】
バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、バックアップ元として指定された全てのLUのコピーが終わるまで(ステップ4080:NO)、ステップ4060とステップ4070が繰り返され、終わったならば(ステップ4080:YES)、ステップ4090にすすむ。
【0198】
ステップ4090では、バックアップデータ管理211とテープ管理218の管理情報が更新される。例えば、バックアップデータ管理211が、バックアップデータ管理テーブル701に、差分バックアップデータに関する情報を追加する。テープ管理218が、テープグループ管理テーブル602に、差分バックアップデータ502が記録された新規のテープグループ411に関する情報を追加(もしくはすでに登録されている場合は情報を更新)し、テーププール管理テーブル601の格納テープグループ番号613に、その新規のテープグループ411の番号を追加する。ステップ4090が終了した場合、例えば、バックアップ/リストア制御プログラム131又はテープライブラリ制御プログラム133から、テープのアンマウント要求がテープライブラリ制御プログラム133に送信される。
【0199】
ステップ4100では、テープライブラリ制御プログラム133が、例えば上記アンマウント要求の受信に応答して、ロボット134を制御し、テープ136をテープドライブ135からアンマウントさせる。
【0200】
ステップ4110では、バックアップ/リストア制御プログラム131が、差分バックアップ処理終了をホスト計算機100に通知する。
【0201】
ステップ4120では、例えば、差分バックアップ処理終了の通知を受けたことに応答して、ホスト計算機100のボリュームのペア制御指示プログラム112から記憶サブシステム101へ、ペア再同期指示が発行される。そのペア再同期指示では、例えば、バックアップしたいLU(主ボリューム150)のLUNが指定される。
【0202】
ステップ4130では、ディスク制御プログラム132が、ペア再同期指示を受領する。
【0203】
ステップ4140では、そのペア再同期指示に応答して、ペア再同期処理が行われる。
【0204】
図17は、増分バックアップ処理の処理フローを示す。
【0205】
ステップ5000では、ホスト計算機100のボリュームのペア制御指示プログラム112から、記憶サブシステム101へ、ペア分割指示が発行される。そのペア分割指示では、例えば、バックアップしたいLU(主ボリューム150)のLUNが指定される。
【0206】
ステップ5010では、ディスク制御プログラム132が、ペア分割指示を受領する。
【0207】
ステップ5020では、そのペア分割指示に応答して、ペア分割処理が行われる。
【0208】
ステップ5030では、ホスト計算機100のバックアップ/リストア制御指示プログラム113から記憶サブシステム101に、増分バックアップ開始指示が発行される。この増分バックアップ開始指示では、例えば、ペア分割指示で指定したLUNに対応するLUを含んだボリュームペアを構成するスナップショットボリューム152のLUNが、バックアップ元LUNとして指定される。
【0209】
ステップ5040では、バックアップ/リストア制御プログラム131が、増分バックアップ処理開始指示を受領する。その指示に応答して、例えば、バックアップ/リストア制御プログラム131が、テープのマウント要求を、テープライブラリ制御プログラム133に送信する。
【0210】
ステップ5050では、テープライブラリ制御プログラム133が、バックアップ先となるテープ136をテープドライブ135にマウントさせる。
【0211】
ステップ5060では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、増分バックアップ時にテープに記録する管理情報902が構築され、その管理情報902が、テープ136に記録される。テープグループ番号621は、今回の増分バックアップ開始指示で記録されることになる一以上の増分バックアップデータを含むための今回のテープグループの番号である。
【0212】
ステップ5070では、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、LUN721がバックアップ元LUNでありバックアップ種別723が増分に対応した差分用ビットマップ格納位置725にある増分用ビットマップ703が参照され、ビットの反転しているデータだけがテープ136にコピーされる。この増分バックアップ中では、例えば、テープ管理218によって、図8のテープグループ管理テーブル602において、テープグループ番号621として、今回のテープグループの番号が記録されると共に、テープグループ状態622としてバックアップ中が記録され、バックアップデータ種別625として増分が記録され、バックアップが済んだ場合に、テープグループ状態622として正常が記録される。
【0213】
バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、バックアップ元として指定された全てのLUのコピーが終わるまで(ステップ5080:NO)、ステップ5060とステップ5070が繰り返され、終わったならば(ステップ5080:YES)、ステップ5090にすすむ。
【0214】
ステップ5090では、バックアップデータ管理211とテープ管理218の管理情報が更新される。例えば、バックアップデータ管理211が、バックアップデータ管理テーブル701に、増分バックアップデータ502に関する情報を追加する。テープ管理218が、テープグループ管理テーブル602に、増分バックアップデータ502が記録された新規のテープグループ411に関する情報を追加(もしくはすでに登録されている場合は情報を更新)し、テーププール管理テーブル601の格納テープグループ番号613に、その新規のテープグループ411の番号を追加する。ステップ5090が終了した場合、例えば、バックアップ/リストア制御プログラム131又はテープライブラリ制御プログラム133から、テープのアンマウント要求がテープライブラリ制御プログラム133に送信される。
【0215】
ステップ5100では、テープライブラリ制御プログラム133が、例えば上記アンマウント要求の受信に応答して、ロボット134を制御し、テープ136をテープドライブ135からアンマウントさせる。
【0216】
ステップ5110では、バックアップ/リストア制御プログラム131が、増分バックアップ処理終了をホスト計算機100に通知する。
【0217】
ステップ5120では、例えば、増分バックアップ処理終了の通知を受けたことに応答して、ホスト計算機100のボリュームのペア制御指示プログラム112から記憶サブシステム101へ、ペア再同期指示が発行される。そのペア再同期指示では、例えば、バックアップしたいLU(主ボリューム150)のLUNが指定される。
【0218】
ステップ5130では、ディスク制御プログラム132が、ペア再同期指示を受領する。
【0219】
ステップ5140では、そのペア再同期指示に応答して、ペア再同期処理が行われる。
【0220】
図18は、通常リストア処理の処理フローを示す。
【0221】
ステップ6000では、ホスト計算機100のバックアップ/リストア制御指示プログラム113から記憶サブシステム101に、通常リストア開始指示が発行される。通常リストア開始指示では、例えば、リストア元及びリストア先のうちの少なくともリストア元(例えばテープグループの番号)が指定される。
【0222】
ステップ6010では、バックアップ/リストア制御プログラム131が、通常リストア開始指示を受領する。このとき、バックアップ/リストア制御プログラム131が、リストア先LUを指定したライト禁止要求をディスク制御プログラム132に発行して良い。
【0223】
ステップ6020では、ディスク制御プログラム132が、所定の契機(例えば、ライト禁止要求をバックアップ/リストア制御プログラム131から受けたとき)で、リストア先LUへのホスト計算機100からのライトを禁止する。
【0224】
ステップ6030では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、リストア元として指定されたテープグループ411のテープグループ管理テーブル602のリストアに必要なテープグループ番号626を参照し、フルバックアップデータが記録されているテープ136をテープドライブ135にマウントする。例えば、リストアに必要なテープグループ番号626に何も記録されていなければ、リストア元として指定されたテープグループ411がフルバックアップデータであり、リストアに必要なテープグループ番号626に11、12と記録されていれば、先頭の番号であるテープグループ番号11のテープグループ411がフルバックアップデータである。また、例えば、バックアップ/リストア制御プログラム131が、リストアしたいバックアップデータのバックアップ取得日時の指定を受けた場合、そのバックアップ取得日時に対応したバックアップ先テープグループ番号713のテープグループ411が、上記「リストア元として指定されたテープグループ411」である。
【0225】
ステップ6040では、バックアップ/リストア制御プログラム131及びテープライブラリ制御プログラム133が協働することにより、フルバックアップデータ502が記録されているテープ136から、リストア先として指定されたLU(例えば主ボリューム150)に、フルバックアップデータ502中のデータ512がコピーされる。リストア先LUは、格別指定されていなければ、自動的に、バックアップ元LUとしてのスナップショットボリューム152とペアを構成する主ボリューム150であってもよい。
【0226】
ステップ6050では、テープライブラリ制御プログラム133が、フルバックアップデータ502が記録されているテープ136をテープドライブ135からアンマウントさせる。
【0227】
ステップ6060では、バックアップ/リストア制御プログラム131が、リストア元として指定されたテープグループ411に対応したバックアップデータ種別625を参照し、フルバックアップデータか否かの判定を行う。判定の結果が、肯定的であれば、ステップ6110へ進み、否定的であれば、ステップ6070へ進む。
【0228】
ステップ6070では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、リストア元として指定されたテープグループ411に対応したリストアに必要なテープグループ番号626が参照され、次にコピー処理をするべき差分/増分バックアップデータ502(差分バックアップデータ502もしくは増分バックアップデータ502)が記録されているテープ136が、テープドライブ135にマウントされる。例えば、リストアに必要なテープグループ番号626に21、22、23と記録されていれば、テープグループ番号が21のテープグループ411のコピーが終わった場合は、次にテープグループ番号が22のテープグループ411にコピーが行われ、テープグループ番号が22のテープグループ411のコピーが終わった場合は、次にテープグループ番号が23のテープグループ411にコピーが行われる。
【0229】
ステップ6080では、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、差分/増分バックアップデータ502が記録されているテープ136内の管理情報902が参照され、データ512をコピーするべきリストア先LUのLBAを計算しながら、テープ136のデータ512が、リストア先として指定されたLUにコピーされる。例えば、テープ136に記録されている差分管理サイズ724と差分/増分用ビットマップ703を用いて、データ512をコピーするべきリストア先LUのLBAが計算される。具体的には、例えば、リストア先LUの先頭LBAが100、ブロックサイズが1MB、差分管理サイズ724が1MBとし、差分/増分用ビットマップ703が先頭から011001・・・とした場合、テープ136に記録されている先頭のデータ512をコピーするべきリストア先LUのLBAは101であり、2番目のデータ512をコピーするべきリストア先LUのLBAは102であり、3番目のデータ512をコピーするべきリストア先LUのLBAは105であり、・・・というように計算されていく。
【0230】
ステップ6090では、テープライブラリ制御プログラム133が、コピー処理の完了した差分/増分バックアップデータ502が記録されているテープ136をテープドライブ135からアンマウントさせる。
【0231】
リストアに必要なテープグループ番号626に記録されているテープグループ番号621が全てコピー処理されるまで(ステップ6100:YES)、ステップ6070、6080、6090が繰り返され、リストアに必要なテープグループ番号626に記録されているテープグループ番号621が全てコピー処理されたならば(ステップ6100:NO)、ステップ6110にすすむ。なお、その際、バックアップ/リストア制御プログラム131が、リストア先LUを指定したライト許可要求をディスク制御プログラム132に発行して良い。
【0232】
ステップ6110ではディスク制御プログラム132が、所定の契機(例えば、ライト許可要求をバックアップ/リストア制御プログラム131から受けたとき)で、リストア先LU(主ボリューム150)へのホスト計算機100からのライトを許可する。
【0233】
ステップ6120では、バックアップ/リストア制御プログラム131が、通常リストア処理終了をホスト計算機100に通知する。
【0234】
図19は、ペア再同期処理の処理フローを示す。なお、この図19の説明では、ペア再同期指示で指定されている主ボリューム150を含んだボリュームペアを、「対象ボリュームペア」と呼ぶ。
【0235】
ステップ7000では、ボリュームのペア管理215が、対象ボリュームペアの、ペア構成管理テーブル301の状態314を、ペア状態移行中にする。
【0236】
ステップ7010では、ボリュームのペア管理215が、対象ボリュームペアに対応したスナップショット用ビットマップ303をリセットし、且つ、そのスナップショット用ビットマップ303を用いた差分管理を停止する。このため、例えば、このステップ9010以降に、対象ボリュームペアにおける主ボリューム150にデータの更新があっても、対象ボリュームペアに対応したスナップショット用ビットマップ303のビットが反転されることはない。
【0237】
ステップ7020では、ボリュームのペア管理215が、対象ボリュームペアのスナップショット用ビットマップ303に対応した、スナップショット管理テーブル304のデータ格納位置343を、リセットする(例えば、そのデータ格納位置343の欄をブランクにするか、或いは、そのデータ格納位置343を含んだレコードを除去する)。
【0238】
ステップ7030では、ボリュームのペア管理215が、対象ボリュームペアに対応した、ペア構成管理テーブル301の状態314を、ペア状態にする。
【0239】
図20は、ペア分割処理の処理フローを示す。なお、この図20の説明では、ペア分割指示で指定されている主ボリューム150を含んだボリュームペアを、「対象ボリュームペア」と呼ぶ。
【0240】
ステップ8000では、ボリュームのペア管理215が、対象ボリュームペアに対応した、ペア構成管理テーブル301の状態314を、ペア分割移行中にする。
【0241】
ステップ8010では、ボリュームペアの管理215とバックアップデータ管理211とが協働して、対象ボリュームペアに対応したバックアップ用ビットマップ307と、対象ボリュームペアのバックアップ元LU(スナップショットボリューム)に対応した差分用ビットマップ703の論理和を計算し、その差分用ビットマップ703に、計算結果を上書きする。
【0242】
ステップ8020では、ボリュームペアの管理215とバックアップデータ管理211とが協働して、対象ボリュームペアのバックアップ元LU(スナップショットボリューム)に対応した増分用ビットマップ703をリセットし(全てのビットを非反転(例えば0)とし)、対象ボリュームペアに対応したバックアップ用ビットマップ307を、その増分用ビットマップ703に、計算結果を上書きする。
【0243】
ステップ8030では、ボリュームペアの管理215が、対象ボリュームペアに対応したバックアップ用ビットマップ307をリセットし、そのバックアップ用ビットマップ307を用いて、対象ボリュームペア中の主ボリューム150に更新されるデータの管理を開始する。
【0244】
ステップ8040では、ボリュームペアの管理215が、対象ボリュームペアに対応したスナップショット用ビットマップ303を用いて、対象ボリュームペア中の主ボリューム150に更新されるデータの管理を開始する。
【0245】
ステップ8050では、ボリュームのペア管理215が、対象ボリュームペアに対応した、ペア構成管理テーブル301の状態314を、分割状態にする。あらかじめ、対象となるボリュームを増分バックアップ用LU、または、差分バックアップLU、のように限定している場合は、ステップ8020またはステップ8030は省略できる。ビットマップをどちらか片方だけ持つようにしてもよい。
【0246】
図21は、差分リストア処理の処理フローを示す。
【0247】
ステップ9000では、ホスト計算機100のバックアップ/リストア制御指示プログラム113から記憶サブシステム101に、部分リストア開始指示が発行される。部分リストア開始指示では、例えば、リストア元及びリストア先のうちの少なくともリストア元(例えばテープグループの番号)が指定される。
【0248】
ステップ9010では、バックアップ/リストア制御プログラム131が、部分リストア開始指示を受領する。このとき、バックアップ/リストア制御プログラム131が、リストア先LU(主ボリューム150)を指定したライト禁止要求をディスク制御プログラム132に発行して良い。また、部分リストア開始指示により行うリストアが差分リストアであるか増分リストアであるかを、例えば、テープグループ管理テーブル602を参照し決定することができる。これにより、例えば、差分リストアを行うと決定された場合には、ステップ9020に進み、増分リストアを行うと決定された場合には、図22のステップ10020に進む。
【0249】
ステップ9020では、ディスク制御プログラム132が、所定の契機(例えば、ライト禁止要求をバックアップ/リストア制御プログラム131から受けたとき)で、リストア先LU(主ボリューム150)へのホスト計算機100からのライトを禁止する。
【0250】
ステップ9030では、ディスク制御プログラム132とバックアップ/リストア制御プログラム131とが協働することにより、リストア対象のデータを記憶していたバックアップ元に対応するバックアップ用ビットマップ307と、そのバックアップ元に対応する最新の差分用ビットマップ703との論理和を計算し、計算結果としてのリストア用ビットマップを作成する。
【0251】
ステップ9040では、バックアップ/リストア制御プログラム131が、作成されたリストア用ビットマップを参照し、リストアすべきデータがあるか否かの判定を行う。反転されたビットが有れば、判定の結果が肯定的となり、ステップ9050にすすみ、反転されたビットが無ければ、判定の結果が否定的となり、ステップ9150に進む。
【0252】
ステップ9050では、バックアップ/リストア制御プログラム131が、リストア元として指定されたテープグループに記録されているテープルグループ情報501を読み込む。
【0253】
ステップ9060では、バックアップ/リストア制御プログラム131が、読み出されたテープグループ情報501中のバックアップ元LUN624に一致するLUN931を含んだデータ管理情報511を特定する。そして、バックアップ/リストア制御プログラム131が、そのデータ管理情報511に含まれている差分用ビットマップ703を参照することで、差分バックアップでバックアップされた、リストア対象のデータがあるか否かの判定を行う。その差分用ビットマップ703に、反転したビットがあれば、判定の結果は肯定的となり、ステップ9070に進み、反転したビットが無ければ、判定の結果は否定的となり、ステップ9120に進む。
【0254】
ステップ9070では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、上記差分用ビットマップ703の反転したビットに対応する差分バックアップデータ502が記録されているテープ136が、テープドライブ135にマウントされる。
【0255】
ステップ9080では、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、差分バックアップデータ502が記録されているテープ136内の管理情報902が参照され、データ512をコピーするべきリストア先LU(主ボリューム150)のLBAを計算しながら、テープ136のデータ512が、リストア先LU(主ボリューム150)にコピーされる。例えば、テープ136に記録されている差分管理サイズ724と差分用ビットマップ703を用いて、データ512をコピーするべきリストア先LU(主ボリューム150)のLBAが計算される。
【0256】
ステップ9090では、テープライブラリ制御プログラム133が、コピー処理の完了した差分バックアップデータ502が記録されているテープ136をテープドライブ135からアンマウントさせる。
【0257】
ステップ9100では、バックアップ/リストア制御プログラム131が、リストア用ビットマップから、リストア元に指定されたテープグループの差分用ビットマップ703の反転部分を除いたものを、新たなリストア用ビットマップとして更新する。
【0258】
ステップ9110では、バックアップ/リストア制御プログラム131が、更新後のリストア用ビットマップを参照し、リストアするデータが未だあるか否かの判定を行う。更新後のリストア用ビットマップに反転したビットがあれば、判定の結果は肯定的となり、ステップ9120にすすみ、反転したビットがなければ、判定の結果が否定的となり、ステップ9150にすすむ。
【0259】
ステップ9120では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、リストア元として指定されたテープグループ411のテープグループ管理テーブル602のリストアに必要なテープグループ番号626を参照し、フルバックアップデータが記録されているテープ136をテープドライブ135にマウントする。
【0260】
ステップ9130では、バックアップ/リストア制御プログラム131及びテープライブラリ制御プログラム133が協働することにより、フルバックアップデータ502が記録されているテープ136から、リストア先LU(主ボリューム150)に、フルバックアップデータ502中の、リストアに必要なデータ512がコピーされる。リストアに必要なデータ512とは、リストア用ビットマップで反転しているビットに対応したデータである。
【0261】
ステップ9140では、テープライブラリ制御プログラム133が、フルバックアップデータ502が記録されているテープ136をテープドライブ135からアンマウントさせる。なお、その際、テープライブラリ制御プログラム133が、リストア先LU(主ボリューム150)を指定したライト許可要求をディスク制御プログラム132に発行して良い。
【0262】
ステップ9150では、ディスク制御プログラム132が、所定の契機(例えば、ライト許可要求をテープライブラリ制御プログラム133から受けたとき)で、リストア先LU(主ボリューム150)へのホスト計算機100からのライトを許可する。
【0263】
ステップ9160では、バックアップ/リストア制御プログラム131が、部分リストア処理終了をホスト計算機100に通知する。
【0264】
図22は、増分リストア処理の処理フローを示す。
【0265】
ステップ10020では、ディスク制御プログラム132が、所定の契機(例えば、ライト禁止要求をバックアップ/リストア制御プログラム131から受けたとき)で、リストア先LU(主ボリューム150)へのホスト計算機100からのライトを禁止する。
【0266】
ステップ10030では、バックアップ/リストア制御プログラム131が、リストア元として指定されたテープグループに記録されているテープルグループ情報501を読み込む。
【0267】
ステップ10040では、バックアップ/リストア制御プログラム131が、リストア元として指定されたテープグループに関連する増分用ビットマップ703を読み込む。具体的には、例えば、ステップ10030で読み込まれたテープグループ情報501中のバックアップ元LUN624に対応したスナップショットボリューム152のフルバックアップ処理以降から現在までの一以上の増分スナップショット703を読み込む。
【0268】
ステップ10050では、バックアップ/リストア制御プログラム131が、リストア元に指定されたテープグループを含まないそれ以降の一以上の増分用ビットマップ703(ステップ100030で読み込まれたテープグループ情報501中の記録日時628が示す日時よりも将来の一以上の増分用ビットマップ703)と、ステップ10030で読み込まれたテープグループ情報501中のバックアップ元LUN624に対応したバックアップ用ビットマップ307との論理和を計算し、その計算結果であるリストア用ビットマップを作成する。
【0269】
ステップ10060では、バックアップ/リストア制御プログラム131が、リストア用ビットマップとリストア元に指定されたテープグループの増分用ビットマップ703との論理積を計算し、その計算結果としてのビットマップを参照し、リストアするデータがあるか否かの判定を行う。そのビットマップ中に、反転したビットがあれば、判定の結果は肯定的となり、ステップ10070に進み、反転したビットがなければ、判定の結果は否定的となり、ステップ10110に進む。
【0270】
ステップ10070では、バックアップ/リストア制御プログラム131とテープライブラリ制御プログラム133が協働することにより、ステップ10060で特定された反転ビットに対応するデータ512(増分バックアップデータ502中のデータ512)が記録されているテープ136が、テープドライブ135にマウントされる。
【0271】
ステップ10080では、バックアップ/リストア制御プログラム131、ディスク制御プログラム132及びテープライブラリ制御プログラム133が協働することにより、増分バックアップデータ502が記録されているテープ136内の管理情報902が参照され、データ512をコピーするべきリストア先LUのLBAを計算しながら、テープ136のデータ512(ステップ10060で特定された反転ビットに対応するデータ512)が、リストア先LUにコピーされる。
【0272】
ステップ10090では、テープライブラリ制御プログラム133が、コピー処理の完了した増分バックアップデータ502が記録されているテープ136をテープドライブ135からアンマウントさせる。
【0273】
ステップ10100では、バックアップ/リストア制御プログラム131が、リストア用ビットマップから、リストア用ビットマップと必要なデータをコピーした増分用ビットマップの論理積を除いたものを、新たなリストア用ビットマップとして更新する。
【0274】
ステップ10110では、バックアップ/リストア制御プログラム131が、更新後のリストア用ビットマップを参照し、リストアするデータが未だあるか否かの判定を行う。更新後のリストア用ビットマップに反転したビットがあれば、判定の結果は肯定的となり、ステップ10070に戻り、反転したビットがなければ、判定の結果が否定的となり、ステップ10120にすすむ。なお、その際、バックアップ/リストア制御プログラム131が、リストア先LUを指定したライト許可要求をディスク制御プログラム132に発行して良い。
【0275】
ステップ10120では、ディスク制御プログラム132が、所定の契機(例えば、ライト許可要求をバックアップ/リストア制御プログラム131から受けたとき)で、リストア先LU(主ボリューム150)へのホスト計算機100からのライトを許可する。
【0276】
ステップ10130では、バックアップ/リストア制御プログラム131が、部分リストア処理終了をホスト計算機100に通知する。
【0277】
以上、上述した実施形態によれば、バックアップサーバ無しにバックアップが実行される。これにより、バックアップの性能に、バックアップサーバの性能が影響することがなくなる。
【0278】
また、上述した実施形態によれば、主ボリューム150のデータイメージ(スナップショット)が仮想的な論理ボリュームであるスナップショットボリューム152にて論理的に保持され、バックアップでは、そのスナップショットボリューム152が、バックアップ元とされる。このため、主ボリューム150それ自体のコピーによってスナップショットを保持する方法に比して、消費される記憶容量は少ない。また、主ボリューム150に対する更新を止めることなく、バックアップを実行することができる。
【0279】
また、上述した実施形態によれば、差分リストア処理及び増分リストア処理は、必要な差分データ512を先にリストアした後に、足りないデータを、フルバックアップデータ502中の複数のデータ512から選択してリストアする処理である。このため、フルバックアップデータ502を構成する複数のデータ512を先にリストアした後に必要な差分データ512をリストアするというリストア処理に比して、リストア元からリストア先へのデータ転送量を少なくすることができる。
【0280】
また、上述した実施形態によれば、差分/増分バックアップの場合には、バックアップ対象のデータの他に、管理情報902もテープ136に記録される。これにより、リストアの場合には、バックアップを行った記憶サブシステム101の制御メモリ201の情報が無くても、テープ136に記録されている管理情報902を使用することで、リストアすることが可能となる。
【0281】
また、上述した実施形態によれば、差分管理すべき世代数に関わらず、記憶サブシステムで保持すべき差分用/増分用ビットマップ703は、一つのバックアップ元LUにつき、多くても、差分バックアップ用と増分バックアップ用の2枚で良い。これにより、差分管理できる世代数が、記憶サブシステムのメモリの記憶容量に制限されないようにすることができる。
【0282】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【0283】
例えば、スナップショット用ビットマップ303とバックアップ用のビットマップ307が一体になっていてもよい。
【0284】
また、例えば、ペア関連指示とバックアップ関連指示とが一体になっていてもよい。具体的には、例えば、ペア分割指示とフル/差分/増分バックアップ指示とが一体になっていてもよい。
【0285】
また、例えば、管理情報901や902は、バックアップ先の記憶装置に格納することに代えて又は加えて、制御メモリ201で管理されてもよい。
【図面の簡単な説明】
【0286】
【図1】図1は、本発明の一実施形態に係る計算機システムの構成例を示す。
【図2】図2は、図1のコントローラの構成例を示した図である。
【図3】図3は、ボリュームのペア管理がもつ第一の管理情報例を示す。
【図4】図4は、ボリュームのペア管理がもつ第二の管理情報例を示す。
【図5】図5は、ボリュームのペア管理がもつ第三の管理情報例を示す。
【図6】図6は、テープ管理が管理しているテーププールの論理イメージ例を示す。
【図7】図7は、テープグループの格納情報例を示す。
【図8】図8は、テープ管理がもつ管理情報例を示す。
【図9】図9は、バックアップデータ管理がもつ管理情報例を示す。
【図10】図10は、テープの記録形式例を示す。
【図11】図11は、フルバックアップ時にテープに記録する管理情報例を示す。
【図12】図12は、差分/増分バックアップ時にテープに記録する管理情報例を示す。
【図13】図13は、ライト要求を受領した記憶サブシステムでの処理のフローを示す。
【図14】図14は、フルバックアップ処理の処理フローの一部を示す。
【図15】図15は、フルバックアップ処理の処理フローの残りを示す。
【図16】図16は、差分バックアップ処理の処理フローを示す。
【図17】図17は、増分バックアップ処理の処理フローを示す。
【図18】図18は、通常リストア処理の処理フローを示す。
【図19】図19は、ペア再同期処理の処理フローを示す。
【図20】図20は、ペア分割処理の処理フローを示す。
【図21】図21は、差分リストア処理の処理フローを示す。
【図22】図22は、増分リストア処理の処理フローを示す。
【図23】図23は、差分バックアップ処理の概要の一部を示す。
【図24】図24は、差分バックアップ処理の概要の残りを示す。
【図25】図25は、増分バックアップ処理の概要の一部を示す。
【図26】図26は、増分バックアップ処理の概要の残りを示す。
【図27】図27は、差分リストア処理の概要を示す。
【図28】図28は、増分リストア処理の概要を示す。
【符号の説明】
【0287】
100…ホスト計算機、101…記憶サブシステム、125…テープライブラリ装置

【特許請求の範囲】
【請求項1】
上位装置から送信されたデータ要素が書き込まれることにより更新が生じる論理ボリュームである主ボリュームと、
前記主ボリュームにおける更新前のデータ要素がコピーされる記憶領域であるコピー記憶領域と、
前記主ボリュームのスナップショットイメージを論理的に保持するための仮想的な論理ボリュームであるスナップショットボリュームにおける複数の仮想的な記憶位置と、前記主ボリューム及び/又は前記コピー記憶領域に記憶されている、前記主ボリュームのスナップショットイメージを構成する複数のデータ要素の複数の実際の記憶位置を示す複数のアドレス情報要素との対応を管理するスナップショット管理部と、
前記複数のアドレス情報要素が示す全ての記憶位置からデータ要素をバックアップ先記憶装置にバックアップすることであるフルバックアップを実行するフルバックアップ部と、
前記フルバックアップ後に前記主ボリュームが更新されたことに伴って前記スナップショットボリュームが更新されることにより前記スナップショットボリュームと前記バックアップ先記憶装置との間で差分が生じた場合に、前記スナップショットボリューム内のどの仮想的な記憶位置が差分に相当するかを管理するための差分管理情報を更新する差分管理部と、
前記スナップショットボリュームと前記バックアップ先記憶装置との差分に相当する一以上のデータ要素の実際の記憶位置を、前記差分管理情報から特定される仮想的な記憶位置に対応したアドレス情報要素から特定し、特定された実際の記憶位置にある一以上のデータ要素を前記バックアップ先記憶装置にバックアップすることである部分バックアップを実行する部分バックアップ部と
を備える記憶システム。
【請求項2】
前記差分管理部が、前記フルバックアップ後の前記スナップショットボリュームと前記バックアップ先記憶装置との間における差分データ要素が前記スナップショットボリュームにおける複数の仮想的な記憶位置のどの記憶位置に存在するかを前記差分管理情報で管理し、
各回での前記部分バックアップは、差分バックアップであり、
差分バックアップは、前記差分管理情報から特定される一以上の仮想的な記憶位置に対応した一以上のアドレス情報要素が示す一以上の実際の記憶位置に存在する一以上の差分データ要素をバックアップすることである、
請求項1記載の記憶システム。
【請求項3】
前記差分管理情報が、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの記憶位置に更新が生じたかを管理するための情報である第一の差分管理情報要素と、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの記憶位置に論理的に記憶されているデータ要素がバックアップ対象であるかを管理するための情報である第二の差分管理情報要素とを含み、
差分データ要素が前記スナップショットボリュームにおける複数の仮想的な記憶位置のどの記憶位置に存在するかは、前記第一の差分管理情報要素と前記第二の差分管理情報要素との論理演算の結果から特定される、
請求項2記載の記憶システム。
【請求項4】
前記スナップショットイメージは、前記主ボリュームと前記スナップショットボリュームとのボリュームペアが分割された時点での前記主ボリュームのデータイメージであり、
前記差分管理部が、前記ボリュームペアが分割された時点から次回に該ボリュームペアが分割される時点までの間で、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、前記ボリュームペアの分割のときに、その分割のときにおける前記第一の差分管理情報要素と前記第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットし、
前記差分バックアップでは、その差分バックアップの際における第二の差分管理情報要素から、差分データ要素がどの仮想的な記憶位置に存在するかが特定される、
請求項3記載の記憶システム。
【請求項5】
前記部分バックアップ部が、各回での差分バックアップで、特定された位置に存在する差分データ要素の他に、該差分データ要素を用いてスナップショットイメージをリストアするために必要なリストア必要情報も前記バックアップ先記憶装置にバックアップし、
前記リストア必要情報には、差分バックアップの時点における第二の差分管理情報要素が含まれる、
請求項4記載の記憶システム。
【請求項6】
前記差分管理部が、直前回のフルバックアップ又は直前回の部分バックアップ後の前記スナップショットボリュームと前記バックアップ先記憶装置との間における差分データ要素が前記スナップショットボリュームにおける複数の仮想的な記憶位置のどの記憶位置に存在するかを前記差分管理情報で管理し、
各回での前記部分バックアップは、増分バックアップであり、
増分バックアップは、前記差分管理情報から特定される一以上の仮想的な記憶位置に対応した一以上のアドレス情報要素が示す一以上の実際の記憶位置に存在する一以上の差分データ要素をバックアップすることである、
請求項1記載の記憶システム。
【請求項7】
前記差分管理情報が、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの記憶位置に更新が生じたかを管理するための情報である第一の差分管理情報要素と、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの記憶位置に対応するデータ要素がバックアップ対象であるかを管理するための情報である第二の差分管理情報要素とを含み、
差分データ要素がどの仮想的な記憶位置に存在するかは、前記第一の差分管理情報要素を用いて更新された前記第二の差分管理情報要素から特定される、
請求項6記載の記憶システム。
【請求項8】
前記スナップショットイメージは、前記主ボリュームと前記スナップショットボリュームとのボリュームペアが分割された時点での前記主ボリュームのデータイメージであり、
前記差分管理部が、前記ボリュームペアが分割された時点から次回に該ボリュームペアが分割される時点までの間で、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、前記ボリュームペアの分割のときに、前記第二の差分管理情報要素をリセットして、その分割のときにおける前記第一の差分管理情報要素をリセット後の該第二の差分管理情報要素に上書きし、その後、前記第一の差分管理情報要素をリセットし、
前記増分バックアップでは、その増分バックアップの際における第二の差分管理情報要素から、差分データ要素がどの仮想的な記憶位置に存在するかが特定される、
請求項7記載の記憶システム。
【請求項9】
前記部分バックアップ部が、各回での増分バックアップで、特定された仮想的な記憶位置に存在する差分データ要素の他に、該差分データ要素を用いてスナップショットイメージをリストアするために必要なリストア必要情報も前記バックアップ先記憶装置にバックアップし、
前記リストア必要情報には、増分バックアップの時点における第二の差分管理情報要素が含まれる、
請求項8記載の記憶システム。
【請求項10】
前記差分管理部が、前記フルバックアップ後の前記スナップショットボリュームと前記バックアップ先記憶装置との間における差分データ要素が前記スナップショットボリュームにおける複数の位置のどの位置に存在するかと、直前回のフルバックアップ又は直前回の部分バックアップ部後の前記スナップショットボリュームと前記バックアップ先記憶装置との間における差分データ要素が前記スナップショットボリュームにおける複数の位置のどの位置に存在するかとの両方を、前記差分管理情報で管理し、
各回での前記部分バックアップは、差分バックアップ及び増分バックアップのうちの上位装置からのバックアップ指示で指定された方であり、
差分バックアップ及び増分バックアップは、前記差分管理情報から特定される一以上の位置に対応した、前記複数のアドレス情報要素のうちの一以上のアドレス情報要素が示す一以上の位置に存在する一以上の差分データ要素をバックアップすることである、
請求項1記載の記憶システム。
【請求項11】
前記スナップショットイメージは、前記主ボリュームと前記スナップショットボリュームとのボリュームペアが分割された時点での前記主ボリュームのデータイメージであり、
前記差分管理情報が、前記スナップショットボリュームにおける複数の位置のうちのどの位置に更新が生じたかを管理するための情報である第一の差分管理情報要素と、前記スナップショットボリュームにおける複数の位置のうちのどの位置に対応するデータ要素がバックアップ対象であるかを管理するための情報である第二及び第三の差分管理情報要素とを含み、
前記差分管理部が、前記ボリュームペアが分割された時点から次回に該ボリュームペアが分割される時点までの間で、前記スナップショットボリュームにおける複数の位置のうちのいずれかの位置で更新が生じたならば、その更新された位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、前記ボリュームペアの分割のときに、その分割のときにおける前記第一の差分管理情報要素と前記第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、前記第三の差分管理情報要素をリセットして、その分割のときにおける前記第一の差分管理情報要素をリセット後の該第三の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットし、
前記差分バックアップでは、その差分バックアップの際における第二の差分管理情報要素から、差分データ要素が前記スナップショットボリュームにおける複数の位置のどの位置に存在するかが特定される、
前記増分バックアップでは、その増分バックアップの際における第三の差分管理情報要素から、差分データ要素が前記スナップショットボリュームにおける複数の位置のどの位置に存在するかが特定される、
請求項10記載の記憶システム。
【請求項12】
複数の時点にそれぞれ対応する複数のスナップショットイメージのうちのリストア対象のスナップショットイメージを前記主ボリューム又は別の論理ボリュームにリストアするリストア部、
を更に備え、
前記リストア部が、前記フルバックアップされた前記複数のデータ要素をリストアし、その後に、前記リストア対象のスナップショットイメージにおける、前記部分バックアップによりバックアップされた一以上のデータ要素を、前記リストアされた複数のデータ要素のうちの、該一以上のデータ要素にそれぞれ対応するデータ要素に上書きする、
請求項1記載の記憶システム。
【請求項13】
複数の時点にそれぞれ対応する複数のスナップショットイメージのうちのリストア対象のスナップショットイメージを前記主ボリューム又は別の論理ボリュームにリストアするリストア部、
を更に備え、
前記リストア部が、前記リストア対象のスナップショットイメージにおける、前記部分バックアップによりバックアップされた一以上のデータ要素をリストアし、前記リストア対象のスナップショットイメージにおける、該一以上のデータ要素以外のデータ要素を、前記リストア対象のスナップショットイメージが部分バックアップされた時点であるリストア対象時点よりも過去の時点で部分バックアップされたデータ要素群及び/又はフルバックアップされたデータ要素群から読み出してリストアする、
請求項1記載の記憶システム。
【請求項14】
前記バックアップ先記憶装置に記憶されているデータ要素のリストア先が、前記主ボリュームであり、
前記リストア部が、リストアを実行する時点であるリストア実行時点での前記主ボリュームにおける複数の位置のうち、前記リストア対象のスナップショットイメージを構成するデータ要素が記憶されている位置については、リストアを実行しない、
請求項13記載の記憶システム。
【請求項15】
前記差分管理情報が、前記スナップショットボリュームにおける複数の位置のうちのどの位置に更新が生じたかを管理するための情報である第一の差分管理情報要素と、前記スナップショットボリュームにおける複数の位置のうちのどの位置に対応するデータ要素がバックアップ対象であるかを管理するための情報である第二の差分管理情報要素とを含み、
前記リストア部が、前記リストア実行時点における前記第一の差分管理情報要素及び前記第二の管理情報要素の論理演算の結果から、前記主ボリュームにおける複数の位置のうちの第一の一以上のリストア対象位置を特定し、前記リストア対象時点における前記第二の差分管理情報要素から、前記主ボリュームにおける複数の位置のうちの第二の一以上のリストア対象位置を特定し、前記第二の一以上のリストア対象位置の各々に、前記リストア対象時点で差分バックアップされた一以上のデータ要素をそれぞれリストアし、前記第一の一以上のリストア対象位置のうちの前記第二の一以上のリストア対象位置以外の位置に、前記リストア対象時点よりも過去の時点でフルバックアップされたデータ要素群から、該位置に対応するデータ要素を選択してリストアする、
請求項14記載の記憶システム。
【請求項16】
前記差分管理部が、前記ボリュームペアが分割された時点から次回に該ボリュームペアが分割される時点までの間で、前記スナップショットボリュームにおける複数の位置のうちのいずれかの位置で更新が生じたならば、その更新された位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、前記ボリュームペアの分割のときに、その分割のときにおける前記第一の差分管理情報要素と前記第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットする、
請求項15の記憶システム。
【請求項17】
前記差分管理情報が、前記スナップショットボリュームにおける複数の位置のうちのどの位置に更新が生じたかを管理するための情報である第一の差分管理情報要素と、前記スナップショットボリュームにおける複数の位置のうちのどの位置に対応するデータ要素がバックアップ対象であるかを管理するための情報である第二の差分管理情報要素とを含み、
前記リストア部が、下記(1)乃至(3)の処理を実行する、
(1)前記リストア実行時点における前記第一の差分管理情報要素と、該リストア実行時点よりも過去であり前記リストア対象時点よりも未来における各バックアップ時点での各第二の差分管理情報要素との論理演算の結果から、前記主ボリュームにおける複数の位置のうちの一以上のリストア対象位置を表すリストア位置情報要素を作成し、
(2)前記リストア対象時点以前の各増分バックアップ時点について、その増分バックアップ時点における前記第二の差分管理情報要素と、前記作成されたリストア位置情報要素又は更新後のリストア位置情報要素との論理演算の結果から特定されるリストア対象位置に、そのバックアップ時点で増分バックアップされた又はフルバックアップされたデータ要素をリストアし、該論理演算で使用したリストア位置情報要素が示す一以上のリストア対象位置から、前記特定されたリストア対象位置を除くことで、そのリストア位置情報要素を更新し、
(3)フルバックアップの直後の増分バックアップ時点についての更新後のリストア位置情報要素が、少なくとも一つのリストア対象位置を表していれば、フルバックアップされた複数のデータ要素のうち、そのリストア対象位置に対応するデータ要素を、そのリストア対象位置にリストアする、
請求項14記載の記憶システム。
【請求項18】
前記差分管理部が、前記ボリュームペアが分割された時点から次回に該ボリュームペアが分割される時点までの間で、前記スナップショットボリュームにおける複数の位置のうちのいずれかの位置で更新が生じたならば、その更新された位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、前記ボリュームペアの分割のときに、前記第二の差分管理情報要素をリセットして、その分割のときにおける前記第一の差分管理情報要素をリセット後の該第二の差分管理情報要素に上書きし、その後、前記第一の差分管理情報要素をリセットする、
請求項17記載の記憶システム。
【請求項19】
前記バックアップ先記憶装置が、シーケンシャルアクセス型の記憶装置である、
請求項1記載の記憶システム。
【請求項20】
上位装置から送信されたデータ要素が書き込まれることにより更新が生じる論理ボリュームである主ボリュームのスナップショットイメージを論理的に保持するための仮想的な論理ボリュームであるスナップショットボリュームにおける複数の仮想的な記憶位置と、前記主ボリュームと前記主ボリュームにおける更新前のデータ要素がコピーされる記憶領域であるコピー記憶領域との両方又は一方に記憶されている、前記主ボリュームのスナップショットイメージを構成する複数のデータ要素の複数の実際の記憶位置を示す複数のアドレス情報要素との対応を管理し、
初回のバックアップで、前記複数のアドレス情報要素が示す全ての記憶位置からデータ要素をバックアップ先記憶装置にバックアップし、
初回のバックアップ後、前記主ボリュームが更新されたことに伴って前記スナップショットボリュームが更新されることにより前記スナップショットボリュームと前記バックアップ先記憶装置との間で差分が生じた場合に、前記スナップショットボリューム内のどの仮想的な記憶位置が差分に相当するかを管理するための差分管理情報を更新し、
次回以降のバックアップで、前記スナップショットボリュームと前記バックアップ先記憶装置との差分に相当する一以上のデータ要素の実際の記憶位置を、前記差分管理情報から特定される仮想的な記憶位置に対応したアドレス情報要素から特定し、特定された実際の記憶位置にある一以上のデータ要素を前記バックアップ先記憶装置にバックアップする、
記憶制御方法。
【請求項21】
前記スナップショットイメージは、スナップショット取得時点での前記主ボリュームのデータイメージであり、
前記差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点において、前記第一の差分管理情報要素と前記第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットし、
前記差分バックアップでは、その差分バックアップの際における第二の差分管理情報要素から、差分データ要素がどの仮想的な記憶位置に存在するかが特定される、
請求項3記載の記憶システム。
【請求項22】
前記スナップショットイメージは、スナップショット取得時点での前記主ボリュームのデータイメージであり、
前記差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの記憶位置で更新が生じたならば、その更新された記憶位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、前記第二の差分管理情報要素をリセットして、そのときにおける前記第一の差分管理情報要素をリセット後の該第二の差分管理情報要素に上書きし、その後、前記第一の差分管理情報要素をリセットし、
前記増分バックアップでは、その増分バックアップの際における第二の差分管理情報要素から、差分データ要素がどの仮想的な記憶位置に存在するかが特定される、
請求項7記載の記憶システム。
【請求項23】
前記スナップショットイメージは、スナップショット取得時点での前記主ボリュームのデータイメージであり、
前記差分管理情報が、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの仮想的な記憶位置に更新が生じたかを管理するための情報である第一の差分管理情報要素と、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのどの仮想的な記憶位置に対応するデータ要素がバックアップ対象であるかを管理するための情報である第二及び第三の差分管理情報要素とを含み、
前記差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの仮想的な記憶位置で更新が生じたならば、その更新された位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、そのときにおける前記第一の差分管理情報要素と前記第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、前記第三の差分管理情報要素をリセットして、そのときにおける前記第一の差分管理情報要素をリセット後の該第三の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットし、
前記差分バックアップでは、その差分バックアップの際における第二の差分管理情報要素から、差分データ要素が前記スナップショットボリュームにおける複数の仮想的な記憶位置のどの仮想的な記憶位置に存在するかが特定される、
前記増分バックアップでは、その増分バックアップの際における第三の差分管理情報要素から、差分データ要素が前記スナップショットボリュームにおける複数の位置のどの位置に存在するかが特定される、
請求項10記載の記憶システム。
【請求項24】
前記差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、前記スナップショットボリュームにおける複数の仮想的な記憶位置のうちのいずれかの仮想的な記憶位置で更新が生じたならば、その更新された仮想的な記憶位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、そのときにおける前記第一の差分管理情報要素と前記第二の差分管理情報要素との論理演算をして、その論理演算の結果を該第二の差分管理情報要素に上書きし、その後、該第一の差分管理情報要素をリセットする、
請求項15の記憶システム。
【請求項25】
前記差分管理部が、スナップショット取得時点から次回のスナップショット取得時点までの間で、前記スナップショットボリュームにおける複数の位置のうちのいずれかの位置で更新が生じたならば、その更新された位置がわかるよう前記第一の差分管理情報要素を更新するよう構成されており、スナップショット取得時点に、前記第二の差分管理情報要素をリセットして、そのときにおける前記第一の差分管理情報要素をリセット後の該第二の差分管理情報要素に上書きし、その後、前記第一の差分管理情報要素をリセットする、
請求項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


【公開番号】特開2008−250667(P2008−250667A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2007−91039(P2007−91039)
【出願日】平成19年3月30日(2007.3.30)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000233033)日立コンピュータ機器株式会社 (253)
【Fターム(参考)】