(57)【特許請求の範囲】
【請求項１】
バックアップ対象となる元データについて、バックアップを実行する時点における元データを示すスナップショットを、当該バックアップを実行する時点各々について作成するバックアップ装置であって、
前記バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる割り当て手段と、
前記指示によって示される時点より後に前記元データが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として前記割り当て手段によって割り当てられた前記記憶領域に格納されているかを確認する確認手段と、
前記確認手段によって格納されていないと確認されると、前記更新が行われた箇所に対応する更新直前の元データを、前記最新のスナップショットを格納する記憶領域にのみ格納する格納手段と、
を備えることを特徴とするバックアップ装置。
【請求項２】
前記割り当て手段は、前記指示によって示される時点を識別する情報である識別情報に対応付けて、当該時点について作成される前記スナップショットを格納する前記記憶領域を割り当て、
前記格納手段は、前記更新が行われた箇所を示す位置情報と当該位置情報で示される箇所における更新直前の前記元データとを対応付けて、前記指示によって示される直前の時点を識別する前記識別情報に対応付けられた前記記憶領域に格納し、
前記スナップショットからデータを読み出す旨の情報と前記識別情報と前記位置情報とを受付ける読出受付手段と、
前記読出受付手段によって受付けられた前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第１の読出判別手段と、
前記第１の読出判別手段によって格納されていないと判別された場合に、前記読出受付手段によって受付けられた前記識別情報によって識別される時点と比較して時間が経過した後の時点を示す当該識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第２の読出判別手段と、
前記第１の読出判別手段によって格納されていると判別された場合には、受付けられた前記位置情報に対応付けられた前記元データを、当該第１の読出判別手段によって格納されていると判別された前記記憶領域から読み出し、前記第２の読出判別手段によって格納されていると判別された場合には、受付けられた前記位置情報に対応付けられた前記元データを、当該第２の読出判別手段によって格納されていると判別された前記記憶領域から読み出し、当該第２の読出判別手段によって格納されていないと判別された場合には、受付けられた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出す読出手段と、
をさらに備えることを特徴とする請求項１に記載のバックアップ装置。
【請求項３】
前記読出手段は、前記第２の読出判別手段によって格納されていると判別された前記記憶領域が複数ある場合に、前記読出受付手段によって受付けられた前記識別情報によって識別される時点に最も近い時点を識別する前記識別情報に対応付けられた当該記憶領域から、受付けられた前記位置情報に対応付けられた前記元データを読み出すことを特徴とする請求項２に記載のバックアップ装置。
【請求項４】
前記スナップショットに変更を行う旨を示す情報、当該変更を行うスナップショットが格納された前記記憶領域を示す識別情報、および、当該変更を行う箇所を示す位置情報を受付ける変更受付手段と、
前記変更受付手段によって受付けられた前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第１の変更判別手段と、
前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して前の時点を示す前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第２の変更判別手段と、
前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して時間が経過した後の時点を示す前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第３の変更判別手段と、
前記第２の変更判別手段によって格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、当該第２の変更判別手段によって格納されていないと判別された前記記憶領域に、
前記第１の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、受付けられた前記識別情報に対応付けられた前記記憶領域から読み出し、
前記第１の変更判別手段によって格納されていないと判別され、かつ、前記第３の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、当該第３の変更判別手段によって格納されていると判別された前記記憶領域から読み出し、
前記第１の変更判別手段によって格納されていないと判別され、かつ、前記第３の変更判別手段によって格納されていないと判別された際には、受付けた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出し、
読み出したデータを当該位置情報と対応付けて格納する第１の変更前格納手段と、
前記第１の変更判別手段によって格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、受付けられた前記識別情報に対応付けられた前記記憶領域に、
前記第３の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、当該第３の変更判別手段によって格納されていると判別された前記記憶領域から読み出し、
前記第３の変更判別手段によって格納されていないと判別された際には、受付けた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出し、
読み出したデータを当該位置情報と対応付けて格納する第２の変更前格納手段と、
をさらに備えることを特徴とする請求項１〜請求項３のいずれか一つに記載のバックアップ装置。
【請求項５】
前記第１の変更前格納手段は、前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して前の時点を示す前記識別情報が複数ある場合に、受付けられた当該識別情報によって識別される時点に最も近い時点を識別する当該識別情報である直近識別情報に対応付けられた前記記憶領域に格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、当該直近識別情報に対応付けられた前記記憶領域に格納し、
前記第２の変更前格納手段は、前記第３の変更判別手段によって格納されていると判別された前記記憶領域が複数ある場合に、当該複数ある記憶領域の内、前記直近識別情報に対応付けられた当該記憶領域から、受付けられた前記位置情報に対応付けられた前記元データを読み出すことを特徴とする請求項４に記載のバックアップ装置。
【請求項６】
前記割り当て手段によって割り当てられた前記記憶領域毎に、当該記憶領域それぞれの空き容量を監視する監視手段と、
前記空き容量が所定の閾値以下になったという監視結果が前記監視手段によって得られた場合に、監視結果が得られた前記記憶領域に対応付けられて時点を識別する情報である識別情報に対応付けて、新たに記憶領域を追加する追加手段と、
をさらに備えたことを特徴とする請求項１〜請求項５のいずれか一つに記載のバックアップ装置。
【請求項７】
前記追加手段によって前記記憶領域が前記識別情報に対応付けて追加される場合に、当該識別情報によって識別される時点と当該時点と最も近い時点との間における時間間隔、および／または、当該識別情報に対応付けられた前記記憶領域にデータを格納してから経過した経過時間に対する当該記憶領域に格納したデータの容量から、追加する前記記憶領域の容量を決定する容量決定手段をさらに備え、
前記追加手段は、前記容量決定手段によって決定された容量に従って、新たに記憶領域を追加することを特徴とする請求項６に記載のバックアップ装置。
【請求項８】
前記バックアップ装置は、所定の上限容量を有する複数の記憶媒体から構成される記憶装置を備え、当該記憶媒体各々は、それぞれ一意に識別されるものであって、
前記追加手段は、前記空き容量が所定の閾値以下になったという監視結果が前記監視手段によって得られた場合に、前記記憶媒体から、新たに前記記憶領域を追加し、
前記記憶媒体ごとに、前記追加手段によって追加された前記記憶領域の容量の合計を示す使用容量を記憶する容量テーブルを管理する管理手段と、
前記管理手段によって管理される前記容量テーブルに記憶された前記記憶媒体ごとの前記使用容量が当該記憶媒体各々の所定の上限容量において占める割合を示す使用率を、当該記憶媒体各々について算出する算出手段と、
前記算出手段によって算出された前記使用率の内、最も少ない当該使用率を示した前記記憶媒体から、前記追加手段によって追加される前記記憶領域を決定する決定手段と、
をさらに備えたことを特徴とする請求項６または請求項７に記載のバックアップ装置。
【請求項９】
バックアップ対象となる元データについて、バックアップを実行する時点における元データを示すスナップショットを、当該バックアップを実行する時点各々について作成するバックアップ方法であって、
前記バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる割り当てステップと、
前記指示によって示される時点より後に前記元データが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として前記割り当てステップによって割り当てられた前記記憶領域に格納されているかを確認する確認ステップと、
前記確認ステップによって格納されていないと確認されると、前記更新が行われた箇所に対応する更新直前の元データを、前記最新のスナップショットを格納する記憶領域にのみ格納する格納ステップと、
を含んだことを特徴とするバックアップ方法。
【請求項１０】
バックアップ対象となる元データについて、バックアップを実行する時点における元データを示すスナップショットを、当該バックアップを実行する時点各々について作成するバックアップ方法をコンピュータに実行させるバックアッププログラムであって、
前記バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる割り当て手順と、
前記指示によって示される時点より後に前記元データが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として前記割り当て手順によって割り当てられた前記記憶領域に格納されているかを確認する確認手順と、
前記確認手順によって格納されていないと確認されると、前記更新が行われた箇所に対応する更新直前の元データを、前記最新のスナップショットを格納する記憶領域にのみ格納する格納手順と、
をコンピュータに実行させることを特徴とするバックアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バックアップ装置、バックアップ方法およびバックアッププログラムに関する。
【背景技術】
【０００２】
従来より、ストレージ製品やコンピュータにおけるコピー元ボリュームをバックアップする手法の一つとして、ＯＰＣ（Ｏｎｅ  Ｐｏｉｎｔ  Ｃｏｐｙ）が知られている。ＯＰＣとは、バックアップ対象となるデータについて所定時点における（その後の更新等を含まない）データであるスナップショットを作成するものであり、具体的には、バックアップを作成する際に、当該作成時点における対象となるコピー元ボリュームの全データをバックアップする手法である。
【０００３】
例えば、ＯＰＣを実行するバックアップ装置は、ユーザからＯＰＣを行う旨のＯＰＣ指示を受付けると、当該ＯＰＣ指示を受付けた時点におけるコピー元ボリュームの全データを複製（コピー）する。そして、当該バックアップ装置は、当該ＯＰＣ指示を受付けた時点におけるスナップショットとして、複製したデータ（バックアップデータ）を格納する。具体的な一例をあげて説明すると、当該バックアップ装置は、ＯＰＣ指示を受付けた時刻や世代（セッション情報）に対応付けて、コピー元ボリューム全体を複製したデータであるバックアップデータを格納する。
【０００４】
また、上記したＯＰＣの拡張機能の一つとして、ＳｎａｐＯＰＣという手法が知られている。ＳｎａｐＯＰＣとは、バックアップを作成する際に、コピー元ボリュームのデータの内、更新が行われた箇所における更新前のデータのみをバックアップする手法である。
【０００５】
例えば、ＳｎａｐＯＰＣを実行するバックアップ装置は、ＳｎａｐＯＰＣを行う旨のＳｎａｐＯＰＣ指示を受付けると、ＳｎａｐＯＰＣ指示を受付けた時刻や世代（セッション情報）に対応付けて、所定の記憶領域を割り当てる。そして、当該ＳｎａｐＯＰＣ指示を受付けた後にコピー元ボリュームに更新が行われた場合に、当該更新が行われた箇所における更新前のデータ（当該更新が行われることによって、コピー元ボリュームから失われるデータである差分データ）のみを複製して、当該記憶領域に格納する。なお、特許文献１には、差分データを保存する手法の一つについて開示されている。
【０００６】
【特許文献１】特開２００５−２９２８６５号公報（第１−４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記した従来の技術は、以下で説明するように、転送量を減少することができないという課題があった。
【０００８】
例えば、上記した従来のＯＰＣにおいては、ＯＰＣ指示を受付けた時点におけるコピー元ボリュームを、当該指示を受付けた時点各々について、コピー元ボリュームの全データをコピーする。このため、ＯＰＣを実行するバックアップ装置は、ＯＰＣ指示が行われるごとに、当該コピー元ボリュームの全データをコピーして転送することになり、転送量が膨大となっていた。
【０００９】
また、例えば、上記した従来のＳｎａｐＯＰＣにおいては、図２７に示すように、ＳｎａｐＯＰＣ指示が複数回行われた場合に、元データ内のある箇所において初めて更新があると、当該更新前に行われたセッションそれぞれに割り当てられた記憶領域各々に対して、当該箇所における更新前のデータを転送して格納するため、転送量が膨大となっていた。なお、図２７は、従来のＳｎａｐＯＰＣを説明するための図である。
【００１０】
具体的な一例として、従来のＳｎａｐＯＰＣを実行するバックアップ装置において、ユーザによって三回ＳｎａｐＯＰＣ指示が行われ、その後、元データ内のある箇所において初めて更新がある場合について説明する。従来のＳｎａｐＯＰＣを実行するバックアップ装置は、ＳｎａｐＯＰＣ指示が行われた時点におけるバックアップを格納するために、当該三回のＳｎａｐＯＰＣ指示毎に、セッション情報に対応付けて割り当てられた記憶領域各々（計３つの記憶領域各々）に対して、当該箇所における更新前のデータを転送して格納していた。なお、上記した特許文献１についても、転送量を減少するものではない。
【００１１】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、
転送量を減少することが可能であるバックアップ装置、バックアップ方法およびバックアッププログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、バックアップ装置は、バックアップ対象となる元データについて、バックアップを実行する時点における元データを示すスナップショットを、当該バックアップを実行する時点各々について作成するバックアップ装置であって、前記バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる割り当て手段と、前記指示によって示される時点より後に前記元データが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として前記割り当て手段によって割り当てられた前記記憶領域に格納されているかを確認する確認手段と、前記確認手段によって格納されていないと確認されると、前記更新が行われた箇所に対応する更新直前の元データを、前記最新のスナップショットを格納する記憶領域にのみ格納する格納手段と、を備えたことを要件とする。
【００１３】
また、バックアップ装置は、さらに、前記割り当て手段は、前記指示によって示される時点を識別する情報である識別情報に対応付けて、当該時点について作成される前記スナップショットを格納する前記記憶領域を割り当て、前記格納手段は、前記更新が行われた箇所を示す位置情報と当該位置情報で示される箇所における更新直前の前記元データとを対応付けて、前記指示によって示される直前の時点を識別する前記識別情報に対応付けられた前記記憶領域に格納し、前記スナップショットからデータを読み出す旨の情報と前記識別情報と前記位置情報とを受付ける読出受付手段と、前記読出受付手段によって受付けられた前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第１の読出判別手段と、前記第１の読出判別手段によって格納されていないと判別された場合に、前記読出受付手段によって受付けられた前記識別情報によって識別される時点と比較して時間が経過した後の時点を示す当該識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第２の読出判別手段と、前記第１の読出判別手段によって格納されていると判別された場合には、受付けられた前記位置情報に対応づけられた前記元データを、当該第１の読出判別手段によって格納されていると判別された前記記憶領域から読み出し、前記第２の読出判別手段によって格納されていると判別された場合には、受付けられた前記位置情報に対応付けられた前記元データを、当該第２の読出判別手段によって格納されていると判別された前記記憶領域から読み出し、当該第２の読出判別手段によって格納されていないと判別された場合には、受付けられた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出す読出手段と、を備えたことを要件とする。
【００１４】
また、バックアップ装置は、前記読出手段は、前記第２の読出判別手段によって格納されていると判別された前記記憶領域が複数ある場合に、前記読出受付手段によって受付けられた前記識別情報によって識別される時点に最も近い時点を識別する前記識別情報に対応付けられた当該記憶領域から、受付けられた前記位置情報に対応付けられた前記元データを読み出すことを要件とする。
【００１５】
また、バックアップ装置は、さらに、前記スナップショットに変更を行う旨を示す情報、当該変更を行うスナップショットが格納された前記記憶領域を示す識別情報、および、当該変更を行う箇所を示す位置情報を受付ける変更受付手段と、前記変更受付手段によって受付けられた前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第１の変更判別手段と、前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して前の時点を示す前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第２の変更判別手段と、前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して時間が経過した後の時点を示す前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第３の変更判別手段と、前記第２の変更判別手段によって格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、当該第２の変更判別手段によって格納されていないと判別された前記記憶領域に、前記第１の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、受付けられた前記識別情報に対応付けられた前記記憶領域から読み出し、前記第１の変更判別手段によって格納されていないと判別され、かつ、前記第３の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、当該第３の変更判別手段によって格納されていると判別された前記記憶領域から読み出し、前記第１の変更判別手段によって格納されていないと判別され、かつ、前記第３の変更判別手段によって格納されていないと判別された際には、受付けた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出し、読み出したデータを当該位置情報と対応付けて格納する第１の変更前格納手段と、前記第１の変更判別手段によって格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、受付けられた前記識別情報に対応付けられた前記記憶領域に、前記第３の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、当該第３の変更判別手段によって格納されていると判別された前記記憶領域から読み出し、前記第３の変更判別手段によって格納されていないと判別された際には、受付けた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出し、読み出したデータを当該位置情報と対応付けて格納する第２の変更前格納手段と、を備えたことを要件とする。
【００１６】
また、バックアップ装置は、さらに、前記第１の変更前格納手段は、前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して前の時点を示す前記識別情報が複数ある場合に、受付けられた当該識別情報によって識別される時点に最も近い時点を識別する当該識別情報である直近識別情報に対応付けられた前記記憶領域に格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、当該直近識別情報に対応付けられた前記記憶領域に格納し、前記第２の変更前格納手段は、前記第３の変更判別手段によって格納されていると判別された前記記憶領域が複数ある場合に、当該複数ある記憶領域の内、前記直近識別情報に対応付けられた当該記憶領域から、受付けられた前記位置情報に対応付けられた前記元データを読み出すことを要件とする。
【００１７】
また、バックアップ装置は、さらに、前記割り当て手段によって割り当てられた前記記憶領域毎に、当該記憶領域それぞれの空き容量を監視する監視手段と、前記空き容量が所定の閾値以下になったという監視結果が前記監視手段によって得られた場合に、監視結果が得られた前記記憶領域に対応付けられた前記識別情報に対応付けて、新たに記憶領域を追加する追加手段と、を備えたことを要件とする。
【００１８】
また、バックアップ装置は、さらに、前記追加手段によって前記記憶領域が前記識別情報に対応付けて追加される場合に、当該識別情報によって識別される時点と当該時点と最も近い時点との間における時間間隔、および／または、当該識別情報に対応付けられた前記記憶領域にデータを格納してから経過した経過時間に対する当該記憶領域に格納したデータの容量から、追加する前記記憶領域の容量を決定する容量決定手段をさらに備え、前記追加手段は、前記容量決定手段によって決定された容量に従って、新たに記憶領域を追加することを要件とする。
【００１９】
また、バックアップ装置は、さらに、前記バックアップ装置は、所定の上限容量を有する複数の記憶媒体から構成される記憶装置を備え、当該記憶媒体各々は、それぞれ一意に識別されるものであって、前記追加手段は、前記空き容量が所定の閾値以下になったという監視結果が前記監視手段によって得られた場合に、前記記憶媒体から、新たに前記記憶領域を追加し、前記記憶媒体ごとに、前記追加手段によって追加された前記記憶領域の容量の合計を示す使用容量を記憶する容量テーブルを管理する管理手段と、前記管理手段によって管理される前記容量テーブルに記憶された前記記憶媒体ごとの前記使用容量が当該記憶媒体各々の所定の上限容量において占める割合を示す使用率を、当該記憶媒体各々について算出する算出手段と、前記算出手段によって算出された前記使用率の内、最も少ない当該使用率を示した前記記憶媒体から、前記追加手段によって追加される前記記憶領域を決定する決定手段と、を備えたことを要件とする。
【発明の効果】
【００２０】
このバックアップ装置は、スナップショットを作成する際に、元データから記憶領域へと格納されるデータの転送量を減少することが可能である。
【００２１】
また、このバックアップ装置は、更新が行われた箇所に対応する更新直前の元データを、最新のスナップショットを格納する記憶領域にのみ格納する手法において、スナップショット各々を構成するデータを確実に読み出すことが可能である。
【００２２】
また、このバックアップ装置は、複数の時点においてスナップショットが作成されている場合においても、適切なスナップショットを用いて処理を行うことが可能である。
【００２３】
また、このバックアップ装置は、変更を加えるスナップショット以外のスナップショットに対して影響を与えずに、指定されたスナップショットに変更を加えることが可能である。
【００２４】
また、このバックアップ装置は、複数の時点においてスナップショットが作成されている場合においても、適切なスナップショットを用いて処理を行うことが可能である。
【００２５】
また、このバックアップ装置は、容量あふれを防止することが可能である。
【００２６】
また、このバックアップ装置は、適切な容量の記憶容量を、追加することが可能である。
【００２７】
また、このバックアップ装置は、特定の記憶媒体の性能低下を防止することが可能である。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照して、この発明に係るバックアップ装置、バックアップ方法およびバックアッププログラムの実施例を詳細に説明する。なお、以下では、実施例１に係るバックアップ装置の前提技術、実施例１で用いる主要な用語、実施例１に係るバックアップ装置の概要および特徴、バックアップ装置の構成および処理の流れを順に説明し、最後に実施例１に対するその他の実施例を説明する。
【実施例１】
【００２９】
［前提技術］
まず最初に、図１および図２を用いて、実施例１に係るバックアップ装置の前提技術について説明する。具体的には、まず、前提となるＯＰＣ（Ｏｎｅ  Ｐｏｉｎｔ  Ｃｏｐｙ）技術について説明し、その後、前提となる従来のＳｎａｐＯＰＣ技術について説明する。なお、図１および図２は、前提技術を説明するための図である。
【００３０】
［ＯＰＣ］
ＯＰＣとは、ストレージ製品やコンピュータにおけるコピー元ボリュームをバックアップする手法の一つであり、バックアップ対象となるコピー元ボリュームのデータ（元データ）について、所定時点における（その後の更新等を含まない）データであるスナップショットを作成するものである。具体的には、ＯＰＣは、バックアップを作成する際に、当該作成時点におけるコピー元ボリュームの全データをバックアップする。
【００３１】
図１を用いて、ＯＰＣの動作について説明する。なお、図１の（１）は、コピー元ボリュームを構成するデータについて、当該データの位置と内容とを概念的に示すものであり、具体的には、パターンがデータの内容を示す。このため、例えば、同じ箇所においてパターンが異なる場合には、当該箇所において、データの更新があったことを示す。また、図１の（２）は、バックアップされたデータであるコピー先ボリュームを示すものである。
【００３２】
ここで、ＯＰＣを実行するバックアップ装置は、ユーザからＯＰＣを行う旨のＯＰＣ指示を受付けると、当該ＯＰＣ指示を受付けた時点におけるコピー元ボリュームの全データをコピー先ボリュームに複製（コピー）する。例えば、このバックアップ装置は、図１の（３）に示すように、ＯＰＣ指示を受付けると、当該ＯＰＣ指示を受付けた時点におけるコピー元ボリュームである図１の（４）に示すコピー元ボリュームについて、図１の（５）に示すように、ＯＰＣ指示を受付けた時点のデータのみを複製する。つまり、このバックアップ装置は、図１の（６）に示すような、その後行われた更新内容を反映させずに、図１の（７）に示すように、図１の（４）に示すコピー元ボリュームの全データを複製する。なお、ここで、図１の（４）に示すコピー元ボリュームのデータと、図１の（７）に示すコピー先ボリュームのデータとは、同じである。
【００３３】
そして、ＯＰＣを実行するバックアップ装置は、図１の（８）に示すように、その後コピー元ボリュームに更新処理があったとしても、図１の（９）に示すように、当該更新処理の内容や有無に関係なく、内容を固定したまま（当該更新動作を反映させずに）保持する。
【００３４】
また、ＯＰＣを実行するバックアップ装置は、図１の（１０）に示すように、再度ＯＰＣ指示を受付けると、上述した図１の（５）と同様の処理を行い、図１の（８）に示すコピー元ボリュームの全データを複製して、図１の（１１）に示すコピー先ボリュームを作成する。なお、ここで、図１の（８）に示すコピー元ボリュームのデータと、図１の（１１）に示すコピー先ボリュームのデータとは、同じである。
【００３５】
なお、ここで、ＯＰＣを実行するバックアップ装置は、図１の（３）に示した「ＯＰＣ指示」により作成された図１の（７）に示すコピー先ボリュームとは別に、図１の（１１）に示した「ＯＰＣ指示」により作成される図１の（１３）に示すコピー先ボリュームを作成する。このため、このバックアップ装置は、ＯＰＣ指示を受付けるごとに、当該コピー先ボリュームを作成し、ＯＰＣ指示を受付けた時刻や世代（セッション情報）に対応付けて、コピー元ボリュームの全データを複製したコピー先ボリュームを格納する。
【００３６】
［従来のＳｎａｐＯＰＣ］
従来のＳｎａｐＯＰＣとは、上述したＯＰＣの拡張機能の一つであり、バックアップを実行する際に、コピー元ボリュームのデータの内、更新が行われた箇所における更新前のデータのみをバックアップする手法である。なお、従来のＳｎａｐＯＰＣに関する記載において、ＯＰＣに関する説明と同様の説明に関しては、省略または簡潔におこなう。
【００３７】
図２を用いて、従来のＳｎａｐＯＰＣの動作について説明する。図２の（１）は、コピー元ボリュームを構成するデータの状態を示すものであり、図２の（２）は、バックアップされたデータを示すものである。
【００３８】
ここで、従来のＳｎａｐＯＰＣを実行するバックアップ装置は、図２の（３）に示すように、ユーザからＳｎａｐＯＰＣを行う旨のＳｎａｐＯＰＣ指示を受付けると、ＳｎａｐＯＰＣ指示を受付けた時刻や世代（セッション情報）と、当該ＳｎａｐＯＰＣ指示を受付けた時点におけるスナップショットを格納する記憶領域との対応付けのみを行い、その時点では、当該記憶領域に何らデータを格納しない。
【００３９】
そして、図２の（４）に示すように、ＳｎａｐＯＰＣ指示後に行われた更新について、当該更新が行われた箇所における更新前のデータのみを複製して、コピー先ボリュームに格納する。具体的な一例をあげて説明すると、このバックアップ装置は、ＳｎａｐＯＰＣ指示が行われた後に、図２の（５）に示すように、コピー元ボリュームに対して更新が行われると、図２の（６）に示すように、当該更新が行われた箇所における更新前のデータのみを複製して、図２の（３）に示すＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域にコピー先ボリュームとして格納する。
【００４０】
ここで、従来のＳｎａｐＯＰＣを実行するバックアップ装置の動作について、さらに説明する。このバックアップ装置は、ＳｎａｐＯＰＣ指示を受付けるごとに、セッション情報と、当該ＳｎａｐＯＰＣ指示を受付けた時点におけるスナップショットを格納する記憶領域との対応付けを作成する。そして、このバックアップ装置は、当該ＳｎａｐＯＰＣ指示を受付けた後に更新が行われると、当該更新が行われた箇所における更新前のデータを、一つまたは複数の記憶領域各々に対して格納する。
【００４１】
例えば、図２の（３）に示すように、一度目のＳｎａｐＯＰＣ指示が行われ、図２の（７）に二度目のＳｎａｐＯＰＣ指示が行われ、その上で、図２の（５）、（８）、（９）および（１０）に示す更新処理が行われた場合を例に説明する。まず、従来のＳｎａｐＯＰＣを実行するバックアップ装置は、図２の（３）に示すＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域に、上述したように、図２の（５）と（８）とに示す更新処理によって更新された箇所についての更新前のデータを格納する。
【００４２】
次に、図２の（９）と（１０）とに示す更新処理について説明する。従来のＳｎａｐＯＰＣを実行するバックアップ装置は、図２の（３）に示すＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域に、当該指示後に行われた更新処理である、図２の（９）に示す更新処理によって更新された箇所についての更新前のデータを、格納しない。当該更新処理は、図２の（３）に示すＳｎａｐＯＰＣ指示後に行われたものではあるが、図２の（９）に示す更新箇所は、図２の（５）に示す更新箇所と同一であり、図２の（３）に行われたＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域に、図２の（３）に示すＳｎａｐＯＰＣ指示を受付けた時点におけるコピー元ボリュームのデータの内当該箇所に対応するデータがすでに格納されているからである。
【００４３】
また、従来のＳｎａｐＯＰＣを実行するバックアップ装置は、図２の（３）に行われたＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域に、当該指示後に行われた更新処理である、図２の（１０）に示す更新処理によって更新された箇所についての更新前のデータの内、図２の（１０−２）に示す更新箇所についての更新前のデータのみを格納する。これは、図２の（１０−１）に示す更新箇所は、図２の（８）に示す更新箇所と同一であり、図２の（３）に行われたＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域に、図２の（３）に示すＳｎａｐＯＰＣ指示を受付けた時点におけるコピー元ボリュームのデータの内当該箇所に対応するデータがすでに格納されているからである。一方、図２の（１０−２）に示す更新箇所についての更新前のデータは、当該所定の記憶領域に、未だ格納されていないからである。
【００４４】
同様に、従来のＳｎａｐＯＰＣを実行するバックアップ装置は、図２の（７）に行われたＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域に、当該指示後に行われた更新処理である、図２の（９）と（１０）とに示す更新処理によって更新された箇所についての更新前のデータを、格納する。
【００４５】
つまり、従来のＳｎａｐＯＰＣを実行するバックアップ装置は、複数のＳｎａｐＯＰＣ指示が行われ、その後、更新処理が行われた場合に、当該複数のＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域各々に、当該更新処理が行われた箇所における更新前のデータが格納されていなければ（例えば、初めて更新処理が行われる場合には）、更新処理によって更新された箇所についての更新前のデータを、ＳｎａｐＯＰＣ指示が行われた回数格納する。
【００４６】
例えば、図２の（１０−２）に示す更新箇所に行われた更新処理に対して、このバックアップ装置は、当図２の（１１）に示すように、該箇所における更新前のデータを、図２の（３）に行われたＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域と、図２の（７）に行われたＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けられた所定の記憶領域との両方に格納する。
【００４７】
［用語の説明］
次に、実施例１で用いる主要な用語を説明する。実施例１で用いる「バックアップ」とは、上述した［前提技術］において説明したＳｎａｐＯＰＣを実行することを示し、具体的には、バックアップを作成する際に、コピー元ボリュームのデータの内、更新が行われた箇所における更新前のデータのみをバックアップすることがこれに該当する。
【００４８】
［バックアップ装置の概要および特徴］
続いて、図３を用いて、実施例１に係るバックアップ装置の概要および特徴を説明する。図３は、実施例１に係るバックアップ装置の概要および特徴を説明するための図である。
【００４９】
なお、図３の（１）は、コピー元ボリューム（特許請求の範囲に記載の「元データ」に対応する）を構成するデータについて、当該コピー元ボリュームを構成する他のデータから一意に識別する情報と、当該データの内容とを概念的に示すものであり、具体的には、コピー元ボリューム内における箇所（位置）が、識別する情報を示し、パターンが、データの内容を示す。このため、例えば、同じ箇所においてパターンが異なる場合には、当該箇所において、データの更新があったことを示す。また、図３の（２）と（３）とは、バックアップされたデータであるコピー先ボリュームを示すものである。
【００５０】
また、コピー元ボリュームとコピー先ボリュームとには、説明の便宜上、４つの箇所があるものとして説明する。例えば、コピー元ボリュームには、「Ａ」と「Ｂ」と「Ｃ」と「Ｄ」という４つの箇所があるものとして説明する。
【００５１】
図３に示すように、実施例１に係るバックアップ装置は、バックアップ対象となるコピー元ボリュームについて、バックアップを実行する時点におけるコピー元ボリュームを示すスナップショットを、当該バックアップを実行する時点各々について作成することを概要とする。例えば、「１：００」および「４：００」にバックアップを行う場合には、「１：００」および「４：００」それぞれについて、スナップショットを作成する。そして、以下に説明するように、スナップショットを作成する際に、コピー元ボリュームから記憶領域へと格納されるデータの転送量（コピー先ボリュームとして格納されるデータの転送量）を減少することが可能である。
【００５２】
ここで、実施例１に係るバックアップ装置は、バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を割り当てる。例えば、このバックアップ装置は、「１：００」および「４：００」にバックアップを実行する指示を受付けると、図３の（４）や（５）に示すように、「１：００」および「４：００」それぞれについて作成されるスナップショット毎に、それぞれ所定の記憶領域を割り当てる。
【００５３】
なお、図３の（４）や（５）では、コピー元ボリューム内における更新されたデータが位置する箇所を示す便宜上、割り当てられる所定の記憶容量の大きさと、コピー元ボリュームの大きさとを、同じ大きさとして記載している。しかし本発明はこれに限定されるものではなく、［前提技術］にて記載したように、ＳｎａｐＯＰＣを実行するバックアップ装置は、一般的に、更新処理が行われた箇所における更新前のデータのみを格納するため、コピー元ボリュームの大きさよりも小さい容量を、所定の記憶容量として割り当てる。
【００５４】
そして、実施例１に係るバックアップ装置は、バックアップを実行する指示によって示される時点より後にコピー元ボリュームが更新されると、指示によって示される直前の時点における当該更新が行われた箇所に対応するコピー元ボリュームが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として割り当てられた記憶領域に格納されているかを確認する。
【００５５】
例えば、図３の「４：００」と「５：００」とにおけるコピー元ボリュームに示すように、「６：００」に、コピー元ボリュームの「Ｃ」において更新処理が行われた場合について説明する。バックアップを行う時点の内、当該更新処理が行われた「５：００」の直前に行われている時点は、「４：００」である。ここで、実施例１に係るバックアップ装置は、図３の（６）に示すように、当該「４：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（５）に示す記憶領域）に、当該「４：００」におけるコピー元ボリュームの「Ｃ」におけるデータを格納していないと確認する。
【００５６】
そして、実施例１に係るバックアップ装置は、格納されていないと確認されると、更新が行われた箇所に対応する更新直前のコピー元ボリュームを、最新のスナップショットを格納する記憶領域にのみ格納する。例えば、このバックアップ装置は、図３の（７）に示すように、コピー元ボリュームの「Ｃ」における更新直前のコピー元ボリュームを、最新のスナップショットを格納する記憶領域である「４：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（５）に示す記憶領域）にのみ格納する。
【００５７】
一方、例えば、図３の「５：００」と「６：００」とにおけるコピー元ボリュームに示すように、「５：００」に、コピー元ボリュームの「Ｂ」および「Ｃ」において再度更新処理が行われた場合について説明する。実施例１に係るバックアップ装置は、図３の（８）に示すように、コピー元ボリュームの「Ｃ」における更新直前のコピー元ボリュームを、「４：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（３）に示す記憶領域）に既に格納しているので、当該「４：００」におけるコピー元ボリュームの「Ｃ」におけるデータを格納したと確認し、当該「４：００」におけるコピー元ボリュームの「Ｂ」におけるデータを格納していないと確認する。そして、このバックアップ装置は、図３の（９）に示すように、格納していないと確認した当該「４：００」におけるコピー元ボリュームの「Ｂ」におけるデータのみを、「４：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（５）に示す記憶領域）にのみ格納する。
【００５８】
ここで、さらに、実施例１に係るバックアップ装置による格納処理について説明する。なお、以下の説明では、図３の（１０）に示すように、実施例１に係るバックアップ装置は、「１：００」の時点について作成されるスナップショットを格納する所定の記憶領域に、コピー元ボリュームの「Ｄ」におけるデータのみ格納したものとして説明する。
【００５９】
ここで、従来のＳｎａｐＯＰＣを実行するバックアップ装置は、［前提技術］において上述したように、更新が行われた箇所に対応する更新直前のコピー元ボリュームを、当該箇所に対応する更新直前のコピー元ボリュームを格納していない記憶領域各々に対して格納する。例えば、図３の「５：００」において行われた更新処理を例に説明すると、コピー元ボリュームの「Ｃ」における更新直前のコピー元ボリュームを、「４：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（５）に示す記憶領域）だけでなく、「１：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（４）に示す記憶領域）にも格納する。
【００６０】
これに対して、実施例１に係るバックアップ装置は、図３の（１１）に示すように、コピー元ボリュームの「Ｂ」や「Ｃ」における更新直前のコピー元ボリュームを、「１：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（４）に示す記憶領域）に、当該コピー元ボリュームの「Ｂ」や「Ｃ」における更新直前のコピー元ボリュームが格納されていなくても、格納しない。
【００６１】
このようなことから、実施例１に係るバックアップ装置は、上記した主たる特徴の如く、スナップショットを作成する際に、コピー元ボリュームから記憶領域へと格納されるデータの転送量を減少することが可能である。
【００６２】
［バックアップ装置の構成］
次に、図４〜図１４を用いて、図３に示したバックアップ装置の構成を説明する。なお、図４は、実施例１に係るバックアップ装置の構成を説明するためのブロック図である。図５は、実施例１におけるＤｉｓｋを説明するための図である。図６は、実施例１におけるビットマップテーブルを説明するための図である。図７は、実施例１における世代管理テーブルを説明するための図である。図８は、実施例１におけるＳＤＶ管理テーブルを説明するための図である。図９は、実施例１における制御部を説明するための図である。図１０は、実施例１における格納部を説明するための図である。図１１は、実施例１における読出部を説明するための図である。図１２は、実施例１における変更前格納部を説明するための図である。図１３は、実施例１における変更前格納部による格納パターンの一例を説明するための図である。図１４は、実施例１における変更前格納部による格納パターンの一例を説明するための図である。
【００６３】
ここで、図４に示すように、このバックアップ装置２０は、ＣＡ１００（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）と、ＣＭ３００（Ｃｅｎｔｒａｌｉｚｅｄ  Ｍｏｄｕｌｅ）と、Ｄｉｓｋ２００とから構成され、ＣＡ１００を介してＨｏｓｔ１０と接続している。
【００６４】
ここで、Ｈｏｓｔ１０は、オペレータによって使用される装置であり、例えば、このバックアップ装置２０を管理するユーザによって使用されるコンピュータ端末などが該当し、後述するＣＡ１００を経由して、バックアップ装置２０に、スナップショット作成する旨の指示を送信する。
【００６５】
ＣＡ１００は、Ｈｏｓｔ１０とのＩ／Ｆ制御部であり、Ｈｏｓｔ１０との間における情報の送受信を制御する。具体的には、Ｈｏｓｔ１０から、スナップショット作成する旨の指示を受信する処理を制御し、当該指示に対する応答をＨｏｓｔ１０に送信する処理を制御する。
【００６６】
Ｄｉｓｋ２００は、バックアップ処理に必要なデータを記憶する記憶媒体であり、特に本発明に密接に関連するものとしては、スナップショット記憶部２０１と、当該スナップショット記憶部２０１内に、論理―物理変換テーブル２０２を備える。例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  ｄｒｉｖｅ、ハードディスクドライブ）や、光磁気ディスク（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ  Ｄｉｓｋ、ＭＯディスク）などのディスク装置等が該当する。なお、Ｄｉｓｋ２００は、情報を記憶する記憶装置であればよく、「ディスク」を有する記憶装置に限定されるものではない。
【００６７】
また、Ｄｉｓｋ２００は、バックアップ対象となるコピー元ボリュームを記憶する。なお、本発明は、バックアップ装置２０内のＤｉｓｋ２００に、バックアップ対象となるコピー元ボリュームを記憶する場合に限られるものではなく、例えば、ネットワークを経由して、コピー元ボリュームを記憶している記憶装置などに接続していてもよい。
【００６８】
スナップショット記憶部２０１は、バックアップを実行する時点における元データを示すスナップショットを記憶する。具体的には、スナップショット記憶部２０１は、後述する格納部３３３の指示によって、スナップショットとしてデータが格納され、後述する読出部３３６によって、記憶しているスナップショットのデータが読み出され、後述する変更前格納部３３９によって、記憶しているスナップショットのデータが変更される。
【００６９】
また、スナップショット記憶部２０１は、図５の（１）に示すように、バックアップを実行する時点各々について、当該指示によって示される時点それぞれに後述する割り当て部３３１によって割り当てられた記憶領域それぞれに、当該指示によって示される時点について作成されるスナップショットを記憶している。
【００７０】
例えば、図５の（１）に示す例では、スナップショット記憶部２０１は、第１世代（例えば、「１：００」の時点における）のスナップショットを記憶する記憶領域として、図５の（Ａ）に示す記憶領域が、後述する割り当て部３３１によって割り当てられ、当該記憶領域に、第１世代のスナップショットを記憶する。
【００７１】
また、スナップショット記憶部２０１は、図５の（１）に示すように、後述する割り当て部３３１によって割り当てられた記憶領域それぞれに、当該記憶領域内に、当該指示によって示される時点について作成されるスナップショットに関する論理―物理変換テーブル２０２を記憶する。
【００７２】
例えば、スナップショット記憶部２０１は、図５の（１）に示す例では、図５の（Ａ）に示す記憶領域の内、第１世代のスナップショットを構成するデータを記憶している領域の後に、第１世代のスナップショットに関する論理―物理変換テーブル２０２を記憶する。
【００７３】
論理―物理変換テーブル２０２は、コピー元ボリュームにおける箇所を特定する論理アドレスと、当該論理アドレスにおけるデータが格納されているＤｉｓｋ２００内の箇所を示す物理アドレスとを対応付けて、スナップショットが作成される時点各々について記憶するテーブルである。具体的には、論理―物理変換テーブル２０２は、後述する格納部３３３によって、論理アドレスと物理アドレスとの対応付けを格納される。
【００７４】
例えば、論理―物理変換テーブル２０２は、図５の（２）に示すように、スナップショットが作成される世代ごとに、コピー元ボリュームに更新が行われてデータを格納した箇所各々について、物理アドレスを記憶する。なお、図５の（２）に示す論理―物理変換テーブル２０２は、コピー元ボリュームにおけるすべての箇所を、「ｂｉｔ」と「ｂｙｔｅ」との組み合わせにて示した論理―物理変換テーブル２０２であり、ここでは、第１世代のスナップショットに関するものであるとして説明する。例えば、図５の（２）に示す例では、論理―物理変換テーブル２０２は、コピー元ボリュームにおいてｂｉｔ「０」ｂｙｔｅ「１」にて示される箇所における更新前のデータを、第１世代のスナップショットを格納する記憶領域において、物理アドレス「２００」にてしめされる箇所に記憶していることを示す。
【００７５】
ここで、論理―物理変換テーブル２０２について、さらに説明をする。このバックアップ装置２０は、コピー元ボリュームから、更新が行われる箇所におけるデータのみを、スナップショットとして格納するため、スナップショットを作成する時点各々について割り当てる記憶容量は、コピー元ボリュームの容量よりも小さい。このため、このバックアップ装置２０は、コピー元データにおける箇所を反映させて割り当てられた記憶領域内の箇所に、更新が行われる箇所におけるデータを格納するのではなく、実際に格納された物理アドレスと、コピー元データにおける箇所を示す論理アドレスとの対応付けを記憶するものである。
【００７６】
なお、この対応付けは、例えば、論理―物理変換テーブル２０２の先頭エントリからのオフセット位置を論理アドレスと対応付け、論理―物理変換テーブル２０２は、物理アドレスのみを保持する手法を採用してもよい。
【００７７】
ＣＭ３００は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などの制御プログラム、バックアップの処理手順などを規定したプログラムおよび所要データを格納するための記憶部３２０を有し、これらによって種々のバックアップ処理を実行する処理部であり、ＣＭ３００は、特に本発明に密接に関連するものとしては、制御部３３０と、記憶部３２０と、ＤＡ３１０（Ｄｉｓｋ  Ａｄａｐｔｅｒ）とを備える。
【００７８】
なお、このバックアップ装置２０は、一つまたは複数のＣＭ３００を備え、ＣＭ３００それぞれは、担当する一つまたは複数のＤｉｓｋ２００を有する。ＣＭ３００は、担当するＤｉｓｋ２００（担当するＤｉｓｋ２００に格納されているスナップショット記憶部２０１）に記憶されているスナップショットについて、処理を行う。
【００７９】
ＤＡ３１０は、ディスクとのＩ／Ｆ制御部であり、Ｄｉｓｋ２００との間における情報の送受信を制御する。例えば、後述する格納部３３３の指示に従って、Ｄｉｓｋ２００に、スナップショットのデータを格納する処理を制御し、後述する読出部３３６の指示に従って、Ｄｉｓｋ２００からスナップショットを読み出す処理を制御する。
【００８０】
記憶部３２０は、バックアップ処理に必要なデータを格納するための記憶媒体であり、例えば、キャッシュなどが該当する。図４に示すように、特に本発明に密接に関連するものとしては、ビットマップテーブル３２１と、世代管理テーブル３２２と、ＳＤＶ管理テーブル３２３とから構成される。
【００８１】
ビットマップテーブル３２１は、後述する格納部３３３によってスナップショット記憶部２０１に格納されたデータのコピー元ボリュームにおける箇所（更新箇所）を記憶する。具体的には、後述する格納部３３３によって、データがスナップショット記憶部２０１に格納されると、後述する格納部３３３によって、更新箇所が入力され、ビットマップテーブル３２１は、コピー元ボリュームの更新箇所をビット制御で記憶する。
【００８２】
例えば、図６の（２）に示すように、コピー元ボリュームにおけるすべての箇所を、「ｂｉｔ」と「ｂｙｔｅ」との組み合わせにて管理し、データが格納された箇所（コピー元ボリュームに更新が行われた箇所）に対応付けて、「０」と記憶し、データが格納されていない箇所（コピー元ボリュームに更新が行われていない箇所）に対応付けて、「１」と記憶する。このビットマップテーブル３２１は、スナップショットが作成される時点ごとに、ビットマップテーブル３２１を記憶する。
【００８３】
例えば、図６の（１）に示す例では、ビットマップテーブル３２１は、スナップショットが作成される時点を示す「世代１」、「世代２」および「世代３」それぞれについてビットマップを記憶し、図６の（１）の「ＷｒｉｔｅＩ／Ｏ」に示すように、更新が行われるごとに、後述する格納部３３３によって、当該更新が行われた更新箇所を示す「ｂｉｔ」と「ｂｙｔｅ」との組み合わせについて、「１」を「０」に変更される。
【００８４】
世代管理テーブル３２２は、ビットマップが作成される時点を示す情報（セッション情報）を記憶する。例えば、図７に示すように、ビットマップが作成される時点を、他の時点から識別する情報である「世代」と対応付けて、当該時点をしめす「採取時刻」とを記憶する。例えば、図７に示す例では、世代「１」と対応付けて、採取時刻「１：００」を記憶する。
【００８５】
ここで、この世代管理テーブル３２２についてさらに説明すると、このバックアップ装置２０は、後述する格納部３３３によってデータを格納する処理を行う際や、後述する変更前格納部３３９によってデータが格納される処理を行う際などに、当該スナップショットに世代を一意に識別する必要があり、世代管理テーブル３２２は、これらの処理を行う際に、世代を一意に識別するために用いられる。例えば、スナップショットを格納する際に、この世代管理テーブル３２２に記憶されている「世代」を確認することによって、最新の世代がどれかを確認する。
【００８６】
なお、実施例１では、世代管理テーブル３２２を用いる場合について説明するが、本発明の実施はこれに限定されるものではなく、例えば、記憶領域各々に対応付けて「世代」を記憶させることにより、このバックアップ装置２０が、世代を一意に識別し、最新の世代を識別してもよい。
【００８７】
ＳＤＶ管理テーブル３２３は、スナップショットを格納する記憶領域として割り当てられた記憶領域を管理する情報を、スナップショットを作成する時点ごとに記憶する。具体的には、ＳＤＶ管理テーブル３２３は、管理する情報として、当該時点ごとに、割り当てられた記憶領域について使用された容量（または、残り容量）や、データを当該記憶領域に格納する際に、当該記憶領域におけるデータを格納する箇所を把握する情報を記憶する。
【００８８】
例えば、図８に示すように、ＳＤＶ管理テーブル３２３は、世代各々に対応付けて、割り当てた記憶領域の容量（当該記憶領域を割り当てる際に、Ｄｉｓｋ２００において使用された使用量）を示す「使用量（解像度）」と、記憶領域が割り当てられたＤｉｓｋ２００において、当該記憶領域の開始アドレスを示す「開始物理アドレス」と、記憶領域においてデータを格納したアドレス（記憶領域内のアドレスの内、データを格納して使用されているアドレス）を示す「現在使用済みＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）」とを記憶する。
【００８９】
例えば、図８の例では、「第１世代ＳＤＶ」と対応付けて、使用量「５Ｇ」と、開始アドレス「２００」と、現在使用済みＬＢＡ「２００、２１０、…」とを記憶する。なお、ＳＤＶ（Ｓｎａｐ  Ｄａｔｅ  Ｖｏｌｕｍｅ）とは、後述する割り当て部３３１によって割り当てられた記憶領域を示す。
【００９０】
制御部３３０は、図４に示すように、特に本発明に密接に関連するものとしては、割り当て部３３１と、確認部３３２と、格納部３３３と、読出受付部３３４と、読出判別部３３５と、読出部３３６と、変更受付部３３７と、変更判別部３３８と、変更前格納部３３９とから構成される。
【００９１】
なお、ここで、割り当て部３３１は、特許請求の範囲に記載の「割り当て手段」に対応する。確認部３３２は、特許請求の範囲に記載の「確認手段」に対応する。格納部３３３は、特許請求の範囲に記載の「格納手段」に対応する。読出受付部３３４は、特許請求の範囲に記載の「読出受付手段」に対応する。読出判別部３３５は、特許請求の範囲に記載の「第１の読出判別手段」と「第２の読出判別手段」とに対応する。読出部３３６は、特許請求の範囲に記載の「読出手段」に対応する。変更受付部３３７は、特許請求の範囲に記載の「変更受付手段」に対応する。変更判別部３３８は、特許請求の範囲に記載の「第１の変更判別手段」と「第２の変更判別手段」と「第３の変更判別手段」とに対応する。変更前格納部３３９は、特許請求の範囲に記載の「第１の変更前格納手段」と「第２の変更前格納手段」とに対応する。
【００９２】
なお、制御部３３０を構成する各部を説明する際には、適宜、図９を参照して説明を行う。ここで、図９の（Ａ）は、コピー元ボリュームを構成するデータについて、当該データの位置と内容とを概念的に示すものであり、具体的には、パターンがデータの内容を示す。このため、例えば、同じ箇所においてパターンが異なる場合には、当該箇所において、データの更新があったことを示す。また、図９の（Ｂ）は、「１：００」や「２：００」、「３：００」などの時点におけるスナップショットとして記憶されるコピー先ボリュームを示すものである。
【００９３】
また、図９に示したコピー元ボリュームとコピー先ボリュームとには、説明の便宜上、４つの箇所があるものとして説明する。例えば、コピー元ボリュームとコピー先ボリュームとには、「Ａ」と「Ｂ」と「Ｃ」と「Ｄ」という４つの箇所があるものとして説明する。
【００９４】
具体的な一例をあげて説明すると、図９の（Ａ）と（Ｂ）とに示すように、「１：００」から「２：００」までの間に、コピー元ボリュームの箇所である「Ａ」と「Ｃ」とに更新が行われ、「１：００」の時点について作成されるスナップショットとして、「Ａ」と「Ｃ」とにおける当該更新前のデータが格納されている。
【００９５】
割り当て部３３１は、バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる。具体的には、割り当て部３３１は、指示によって示される時点を識別する情報である識別情報に対応付けて、当該時点について作成されるスナップショットを格納する記憶領域を割り当てる。
【００９６】
例えば、割り当て部３３１は、Ｈｏｓｔ１０から、「１：００」と「２：００」と「３：００」とにバックアップを実行する旨の指示を受付けると、それぞれ、「第１世代」と「第２世代」と「第３世代」という識別情報に対応付けて、記憶領域をそれぞれ５Ｇバイト割り当てる。
【００９７】
また、例えば、割り当て部３３１は、その後、Ｈｏｓｔ１０から、「４：００」に、今の時点（指示を行った時点）におけるコピー元ボリュームのバックアップを実行する旨の指示を受付けると、「第４世代」という識別情報に対応付けて、記憶領域をそれぞれ５Ｇバイト割り当てる。
【００９８】
確認部３３２は、指示によって示される時点より後にコピー元ボリュームが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応するコピー元ボリュームが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として割り当て部３３１によって割り当てられた記憶領域に格納されているかを確認する。
【００９９】
例えば、確認部３３２は、コピー元ボリュームに対して更新要求があると、最新世代のビットマップテーブル３２１を確認する。つまり、例えば、図９に示す例では、「５：５０」の時点において、コピー元ボリュームの「Ｂ」と「Ｄ」とに更新が行われると、確認部３３２は、「５：００」の時点におけるスナップショットについてのビットマップテーブル３２１を確認する。
【０１００】
つまり、確認部３３２は、「５：００」の時点におけるスナップショットとして、「Ｂ」と「Ｄ」とについての更新前のデータが格納されているかを確認する。具体的な一例をあげて説明すると、確認部３３２は、「５：００」の時点におけるスナップショットについてのビットマップテーブル３２１に、「Ｂ」と「Ｄ」とに更新があった旨の情報が記憶されているか、されていないかを確認する。
【０１０１】
なお、ここで、例えば、「５：００」以降「５：５０」より前に、「「Ｂ」と「Ｄ」とに更新があり、「５：００」についてのスナップショットとして、「Ｂ」と「Ｄ」とについての更新前のデータが既に格納されている場合には、格納部３３３は、格納されていると確認する。一方、例えば、「５：００」以降「５：５０」より前に、「Ｂ」と「Ｄ」とに更新がなく、「Ｂ」と「Ｄ」とについて、「５：５０」に行われた更新が「５：００」以降初めて行われた更新である場合には、「５：００」についてのスナップショットとして、「Ｂ」と「Ｄ」とについての更新前のデータが既に格納されておらず、確認部３３２は、格納されていないと確認する。
【０１０２】
格納部３３３は、確認部３３２によって格納されていないと確認されると、更新が行われた箇所に対応する更新直前の元データを、図１０に示すように、最新のスナップショットを格納する記憶領域にのみ格納する。具体的には、格納部３３３は、更新が行われた箇所を示す位置情報と当該位置情報で示される箇所における更新直前の元データとを対応付けて、指示によって示される直前の時点を識別する識別情報に対応付けられた記憶領域に格納する。
【０１０３】
なお、格納部３３３は、更新が行われる前に、当該更新が行われる箇所に対応する更新直前の元データを格納してもよい。
【０１０４】
例えば、図１０に示す例では、更新が行われた時点において、「世代１」と「世代２」と「世代３」とについて、スナップショットを作成している場合に、格納部３３３は、確認部３３２によって更新直前の元データを格納していないと確認されると、更新直前の元データを、図１０の「（３）」に示すように、最新の時点である「世代３」についてのスナップショット記憶部２０１内の記憶領域にのみ、格納する。
【０１０５】
具体的な一例をあげて説明すると、格納部３３３は、確認部３３２によって格納済みでないと確認されると、最新世代の記憶領域を担当するＣＭ３００に通信し、最新世代に割り当てられた記憶領域から容量を獲得する。つまり、例えば、図９に示す例では、「５：５０」の時点において、更新がされると、最新の世代である「第５世代」を格納する記憶領域から、更新直前の元データを格納する記憶領域を取得（確保）する。
【０１０６】
また、例えば、格納部３３３は、更新前データを格納する。つまり、例えば、図９に示す例では、「５：５０」の時点において、「Ｂ」と「Ｄ」とに更新がされると、「Ｂ」と「Ｄ」とにおける更新直前の元データを、「第５世代」を格納する記憶領域から取得した記憶領域に格納する。
【０１０７】
また、格納部３３３は、更新前データを格納すると、ビットマップテーブル３２１を「更新済み」に変更する。つまり、例えば、図９に示す例では、「Ｂ」と「Ｄ」とにおける更新直前の元データを格納すると、第５世代に関するビットマップテーブル３２１において、当該「Ｂ」と「Ｄ」とについて、「更新が行われた（更新あり）」旨の情報に変更する。具体的な一例をあげて説明すると、格納部３３３は、第５世代に関するビットマップテーブル３２１において、当該「Ｂ」と「Ｄ」とを示す位置の情報を、「１」から「０」に変更する。
【０１０８】
変更部（図４には図示していない）は、コピー元ボリュームに対する更新を実行する。つまり、例えば、コピー元ボリュームに最新のデータを書き込む。そして、更新要求（例えば、Ｈｏｓｔ１０から送信された情報であって、コピー元ボリュームに対して変更を実行する旨の情報）に対して、応答する。例えば、変更部は、更新を行う指示を受付けると、更新を行う箇所について、格納部３３３によって、ビットマップテーブル３２１を「更新済み」に変更され、または、更新を行う箇所について、確認部３３２によって、格納済みであると確認されると、受付けた更新を実行する。
【０１０９】
読出受付部３３４は、スナップショットからデータを読み出す旨の情報と識別情報と位置情報とを受付ける。例えば、読出受付部３３４は、Ｈｏｓｔ１０から送信された情報として、スナップショットからデータを読み出す旨の情報と、識別情報「第３世代」と、位置情報「Ａ」、「Ｂ」および「Ｃ」とを受付ける。
【０１１０】
読出判別部３３５は、読出受付部３３４によって受付けられた識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別する。具体的には、読出判別部３３５は、受付けられた識別情報に対応付けられた記憶領域に格納するスナップショットに関するビットマップテーブル３２１を確認し、受付けられた位置情報に対応付けられた元データが格納されているかを判別する。
【０１１１】
例えば、読出受付部３３４によって、識別情報「第３世代」と、位置情報「Ａ」、「Ｂ」および「Ｃ」とが受付けられた場合に、読出判別部３３５は、第３世代のビットマップテーブル３２１を確認し、「Ａ」、「Ｂ」および「Ｃ」に対応付けられた情報が、「１」（未格納）か「０」（格納済み）かを確認する。図９の「第３世代」に示すコピー先ボリュームを用いて説明すると、読出受付部３３４は、位置情報「Ａ」および「Ｂ」について、格納されていないと判別し、位置情報「Ｃ」について、格納されていると判別する。
【０１１２】
また、読出判別部３３５は、読出受付部３３４によって受付けられた識別情報に対応付けられた記憶領域に格納されていないと判別された場合に、読出受付部３３４によって受付けられた識別情報によって識別される時点と比較して、時間が経過した後の時点を示す当該識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別する。
【０１１３】
例えば、読出判別部３３５は、識別情報「第３世代」について、位置情報「Ａ」および「Ｂ」について格納されていないと判別した場合に、「第３世代」と比較して、時間が経過した後の時点を示す「第４世代」および「第５世代」について、ビットマップテーブル３２１を確認し、「Ａ」および「Ｂ」に対応付けられる情報が、「１」（未格納）か「０」（格納済み）かを確認する。図９の「第４世代」および「第５世代」に示すコピー先ボリュームを用いて説明すると、読出受付部３３４は、位置情報「Ａ」について、格納されていないと判別し、位置情報「Ｂ」について、「第４世代」と「第５世代」とに格納されていると判別する。
【０１１４】
読出部３３６は、読出受付部３３４によって格納されていると判別された場合には、受付けられた位置情報に対応付けられた元データを、読出受付部３３４によって格納されていると判別された記憶領域から読み出す（取得する）。例えば、読出受付部３３４によって、識別情報「第３世代」と位置情報「Ｃ」とが受付けられ、読出判別部３３５によって「第３世代」に格納されていると判別された場合には、読出部３３６は、読出し要求を受付けた世代である「第３世代」を選択し、選択した世代（「第３世代」）から、位置情報「Ｃ」に対応付けられた元データを読み出す。
【０１１５】
具体的な一例をあげて説明すると、読出部３３６は、第３世代のスナップショットを格納しているスナップショット記憶部２０１の記憶領域にアクセスし、当該記憶領域の最後に記憶されている論理―物理変換テーブル２０２から、位置情報「Ｃ」（論理アドレス）に対応する物理アドレスを取得し、当該取得した物理アドレスに格納されている元データを読み出す。
【０１１６】
また、読出部３３６は、読出判別部３３５によって格納されていると判別された記憶領域が複数ある場合に、読出受付部３３４によって受付けられた識別情報によって識別される時点に、最も近い時点を識別する識別情報に対応付けられた当該記憶領域から、受付けられた位置情報に対応付けられた元データを読み出す。
【０１１７】
例えば、識別情報「第３世代」と位置情報「Ｂ」とが受付けられ、読出判別部３３５によって「第４世代」と「第５世代」とに格納されていると判別された場合には、読出部３３６は、「第４世代」と「第５世代」の内、受付けられた識別情報「第３世代」に最も近い世代である「第４世代」を選択し、「第４世代」の位置情報「Ｂ」に対応付けられた元データを読み出す。
【０１１８】
また、読出部３３６は、読出判別部３３５によって格納されていないと判別された場合には、受付けられた位置情報によって示される箇所におけるデータを、現時点における元データから読み出す。例えば、識別情報「第３世代」と位置情報「Ａ」とが受付けられ、読出判別部３３５によって格納されていないと判別された場合には、図９に示す例を用いて説明すると、現時点である「６：００」におけるコピー元ボリュームから、位置情報「Ａ」に対応付けられた元データを読み出す。
【０１１９】
ここで、読出部３３６による処理ついてさらに説明すると、図１１に示すように、このバックアップ装置２０は、例えば、「世代１」のスナップショットについてデータを読み出す旨の情報を受付けると、まず、読み出す箇所におけるデータが、「世代１」についてのスナップショットを記憶する記憶領域に格納されているかを確認する。ここで、このバックアップ装置２０は、更新前のデータを、最新側の世代にのみ格納する。このため、このバックアップ装置２０では、読出部３３６が、「世代１」に格納されていない場合には、最新側の世代に格納されているかを確認し、格納されている場合には、当該世代（例えば、図１１の「（３）」に示す例では「世代２」）から、データを読み出す。また、最新側の世代いずれにも、読み出す箇所におけるデータが格納されていない場合には、このバックアップ装置２０では、読出部３３６が、当該箇所において、一度も更新処理が行われていないということであり、今の時点（例えば、読み出す旨の情報を受付けた時点）のコピー元ボリュームにおける読み出す箇所のデータを、読み出す。
【０１２０】
変更受付部３３７は、スナップショットに変更を行う旨を示す情報、当該変更を行うスナップショットが格納された記憶領域を示す識別情報、および、当該変更を行う箇所を示す位置情報を受付ける。例えば、変更受付部３３７は、Ｈｏｓｔ１０から、スナップショットのデータを変更する旨の情報と、識別情報「第３世代」と、位置情報「Ａ」、「Ｂ」、「Ｃ」および「Ｄ」とを受付ける。
【０１２１】
変更判別部３３８は、変更受付部３３７によって受付けられた識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別する。例えば、図９の例を用いて説明すると、変更受付部３３７によって、識別情報「第３世代」と、位置情報「Ｂ」と「Ｃ」とが受付けられると、変更判別部３３８は、位置情報「Ｂ」については、受付けられた識別情報「第３世代」に対応付けられた記憶領域に、格納されていないと判別し、「Ｃ」については、格納されていると判別する。
【０１２２】
また、変更判別部３３８は、変更受付部３３７によって受付けられた識別情報によって識別される時点と比較して前の時点を示す識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別する。
【０１２３】
例えば、図９の例を用いて説明すると、変更受付部３３７によって、識別情報「第３世代」と、位置情報「Ｂ」と「Ｃ」とが受付けられると、変更判別部３３８は、位置情報「Ｂ」については、「第３世代」より前の世代である「第２世代」にデータが格納されていないと判別し、「Ｃ」については、「第３世代」より前の世代である「第２世代」にデータが格納されていると判別する。
【０１２４】
また、変更判別部３３８は、変更受付部３３７によって受付けられた識別情報によって識別される時点と比較して時間が経過した後の時点を示す識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別する。
【０１２５】
例えば、図９の例を用いて説明すると、変更受付部３３７によって、識別情報「第３世代」と、位置情報「Ａ」と「Ｂ」とが受付けられると、変更判別部３３８は、位置情報「Ａ」については、「第３世代」より後の世代にデータが格納されていないと判別し、位置情報「Ｂ」については、「第３世代」より後の世代「第４世代」にデータが格納されていると判別する。
【０１２６】
変更前格納部３３９は、変更判別部３３８による判別結果に基づいて、受付けられた識別情報に対応付けられた記憶領域および／または当該識別情報の直前の時点を示す識別情報に対応付けられた記憶領域に、データを格納する。具体的には、変更前格納部３３９は、変更受付部３３７によって受付けられた位置情報によって示される箇所の現時点における元データを格納する。または、変更前格納部３３９は、変更受付部３３７によって受付けられた識別情報よりも後の時点を示す識別情報に対応付けられた記憶領域に格納されているデータであって受付けられた位置情報によって示される箇所の元データを格納し、または、変更前格納部３３９は、変更受付部３３７によって受付けられた識別情報に対応付けられた記憶領域に格納されているデータであって受付けられた位置情報によって示される箇所の元データを格納する。
【０１２７】
例えば、変更前格納部３３９は、図１２に示すように、「世代１」、「世代２」および「世代３」についてのスナップショットが記憶されており、「世代２」に対して変更要求がきた場合に、変更要求を受付けた箇所におけるデータを、「世代１」が記憶していない際には、変更前格納部３３９は、「世代２」についてのスナップショットとして記憶している当該箇所におけるデータを、「世代１」に退避（格納）する。
【０１２８】
ここで、変更前格納部３３９による動作の意義について説明する。このバックアップ装置２０は、コピー元ボリュームに更新があった場合に、当該更新前のデータを、最新側の世代のスナップショットを格納する記憶領域にのみ、格納する。そして、例えば、このバックアップ装置２０は、第Ｘ世代について、位置「Ｙ」について読み出す際には、上述したように、まず、第Ｘ世代についてのスナップショットに、位置「Ｙ」に対応付けられたデータが格納されているかどうかを確認し、格納されていない場合には、最新側の世代（または、読出し時点におけるコピー元ボリューム）から、位置「Ｙ」に対応付けられたデータを取得し、第Ｘ世代における位置「Ｙ」に対応付けられたデータとして読み出す。
【０１２９】
このため、このバックアップ装置２０が、「第Ｚ世代」についてのスナップショットのデータを変更すると、この変更による影響は「第Ｚ世代」についてだけにとどまらず、その後、「第Ｚ世代」におけるデータを取得して、自己の世代のデータとして読み出す（読み出したい）他の世代に対しても影響を与えることになる。
【０１３０】
このため、このバックアップ装置２０では、変更前格納部３３９が、変更判別部３３８による判別結果と、図１３に示すような予め用意するテーブル、または、予め保持するアルゴリズム等とを用いて決定される動作を実行することにより、例えば、「第Ｚ世代」についてのスナップショットのデータを変更したとしても、この変更による影響が、他の世代についてのスナップショットに及ばないように動作するものである。
【０１３１】
さらに具体的な一例をあげて、変更前格納部３３９による動作について説明すると、図１３に示すように、変更前格納部３３９は変更判別部３３８によって得られた判別結果を、当該テーブルに代入し、得られた動作パタ−ンに基づいて処理を行う。例えば、図１４を用いて、図１３の「４」に示す例について説明する。ここで、図１４の（Ｂ）に示すように、「第４世代」における「Ａ」についてのスナップショットについて変更が行われる指示を受付けた場合について説明する。また、図１４の（Ｂ）に示すように、受付けた「第４世代」、「第４世代」の後の世代である「第５世代」、「第４世代」の直前の世代である「第３世代」には、「Ａ」に対応付けられた元データが格納されていない（未転送）であるものとして説明する。
【０１３２】
ここで、変更前格納部３３９は、図１４の（Ｃ）に示すように、「第４世代」に、現時点（例えば、「６：００」の時点）におけるコピーボリュームの「Ａ」のデータを転送する。また、変更前格納部３３９は、「第４世代」の直前の世代である「第３世代」に、現時点（例えば、「６：００」の時点）におけるコピーボリュームの「Ａ」のデータを転送する。そして、図１４の（Ｄ）に示すように、受付けた変更を実行する。具体的な一例をあげて説明すると、変更部（図４には図示していない）が、変更受付部３３７によって受付けられた識別情報に対応付けられた記憶領域において、受付けられた位置情報に対応付けて格納されている元データを、受付けられた情報に基づき変更する。
【０１３３】
なお、図１８を用いて後述する「実施例１に係るバックアップ装置２０による変更前格納処理の一例」は、図１３に示した実施例１における変更前格納部３３９による格納パターンの一例を説明するものであり、実施例１に係るバックアップ装置２０の構成において説明していない動作パターンの一例については、後述する「実施例１に係るバックアップ装置２０による変更前格納処理の一例」において、図１８を用いて説明するため、ここでは説明を省略する。
【０１３４】
なお、このバックアップ装置２０は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、ＰＨＳ端末、移動体通信端末またはＰＤＡ３１０などの情報処理装置に、上記した制御部３３０および記憶部３２０の各機能を搭載することによって実現することもできる。
【０１３５】
［バックアップ装置による割り当て処理］
次に、図１５を用いて、実施例１に係るバックアップ装置２０による割り当て処理の一例を説明する。なお、図１５は、実施例１に係るバックアップ装置２０による割り当て処理の一例を説明するためのフローチャートである。
【０１３６】
図１５に示すように、割り当て部３３１は、バックアップを実行する指示を受付けると（ステップＳ１０１肯定）、例えば、Ｈｏｓｔ１０から、「１：００」と「２：００」と「３：００」とにバックアップを実行する旨の指示を受付けると、記憶領域を、当該指示によって示される時点それぞれに割り当てる（ステップＳ１０２）。例えば、受付けた「１：００」と「２：００」と「３：００」とに、記憶領域をそれぞれ５Ｇバイト割り当てる。
【０１３７】
［バックアップ装置による格納処理］
次に、図１６を用いて、実施例１に係るバックアップ装置２０による格納処理の一例を説明する。なお、図１６は、実施例１に係るバックアップ装置２０による格納処理の一例を説明するためのフローチャートである。
【０１３８】
図１６に示すように、確認部３３２は、更新要求があると（ステップＳ２０１肯定）、つまり、例えば、指示によって示される時点より後にコピー元ボリュームが更新され、または、例えば、Ｈｏｓｔ１０から更新指示を受信すると、最新世代のビットマップテーブル３２１を確認する（ステップＳ２０２）。つまり、当該指示に対応するデータが、直前の時点についての記憶領域に格納されているかを確認する。
【０１３９】
そして、格納部３３３は、確認部３３２によって格納済みでないと確認されると（ステップＳ２０３否定）、最新世代の記憶領域を担当するＣＭ３００に通信し（ステップＳ２０４）、最新世代に割り当てられた記憶領域から容量を獲得する（ステップＳ２０５）。その後、格納部３３３は、更新前データを格納する（ステップＳ２０６）。つまり、格納部３３３は、更新が行われた箇所に対応する更新直前の元データを、最新のスナップショットを格納する記憶領域にのみ格納する。
【０１４０】
そして、格納部３３３は、ビットマップテーブル３２１を「格納済み」に変更する（ステップＳ２０７）。例えば、格納部３３３は、ビットマップテーブル３２１において、更新が行われた箇所に対応する情報を、「１」から「０」に変更する。
【０１４１】
そして、変更部は、コピー元ボリュームに最新のデータを書き込む（ステップＳ２０８）。そして、更新要求に対して、応答する（ステップＳ２０９）。また、格納部３３３は、同様に、上記したステップＳ２０３において、確認部３３２によって格納済みであると確認されると（ステップＳ２０３肯定）、コピー元ボリュームに最新のデータを書き込む（ステップＳ２０８）。そして、更新要求に対して、応答する（ステップＳ２０９）。
【０１４２】
［バックアップ装置による読出し処理］
次に、図１７を用いて、実施例１に係るバックアップ装置２０による読出し処理の一例を説明する。なお、図１７は、実施例１に係るバックアップ装置２０による読出し処理の一例を説明するためのフローチャートである。
【０１４３】
図１７に示すように、リード要求があると（ステップＳ３０１肯定）、つまり、読出受付部３３４が、スナップショットからデータを読み出す旨の情報と識別情報と位置情報とを受付けると、読出判別部３３５は、リード要求を受けた世代について、ビットマップテーブル３２１を確認する（ステップＳ３０２）。つまり、読出判別部３３５は、読出受付部３３４によって受付けられた識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別する。
【０１４４】
そして、読出部３３６は、読出判別部３３５によって格納済みであると判別されると（ステップＳ３０３肯定）、リード要求を受けた世代を選択する（ステップＳ３０４）。つまり、読出受付部３３４によって受付けられた識別情報を選択する。
【０１４５】
一方、読出判別部３３５は、格納済みではないと判別すると（ステップＳ３０３否定）最新世代側のビットマップテーブル３２１を確認する（ステップＳ３０５）。例えば、読出判別部３３５は、受付けられた識別情報が「第３世代」である場合に「第３世代」と比較して、時間が経過した後の時点を示す「第４世代」および「第５世代」について、ビットマップテーブル３２１を確認する。
【０１４６】
そして、読出部３３６は、読出判別部３３５によって格納済みであると判別されると（ステップＳ３０６肯定）、格納されていると判別された最新世代側の最寄りの世代を選択する（ステップＳ３０７）。
【０１４７】
そして、読出部３３６は、選択した世代からデータを取得する（ステップＳ３０８）。例えば、選択した世代が「第３世代」であり、位置情報が「Ｃ」である場合には、読出部３３６は、「第３世代」の位置情報「Ｃ」に対応付けられた元データを読み出す。
【０１４８】
一方、読出部３３６は、読出判別部３３５によって格納済みでないと判別されると（ステップＳ３０６否定）、コピー元ボリュームからデータを取得する（ステップＳ３０９）。例えば、読み出すデータの箇所を示す位置情報が「Ｃ」であり、現時点が「６：００」である場合に、読出部３３６は、「６：００」におけるコピー元ボリュームから、位置情報「Ｃ」に対応付けられた元データを読み出す。
【０１４９】
［バックアップ装置２０による変更前格納処理］
次に、図１８を用いて、実施例１に係るバックアップ装置２０による変更前格納処理の一例を説明する。なお、図１８は、実施例１に係るバックアップ装置２０による変更前格納処理の一例を説明するためのフローチャートである。図１８の文言においては、変更を行うスナップショットを示す識別情報を、「Ｂ世代（要求世代Ｂ）」とし、「Ｂ世代」の直前の世代を「Ａ世代」とし、「Ｂ世代」の後の世代を「Ｃ世代（最新側世代Ｃ）」とし、現時点におけるコピー元ボリュームを、コピー元ボリューム「Ｓ」として記載する。
【０１５０】
図１８に示すように、変更（Ｗｒｉｔｅ要求）を受付けると（ステップＳ４０１肯定）、つまり、変更受付部３３７によって、スナップショットに変更を行う旨を示す情報、識別情報（世代Ｂを示す）、および、位置情報が受付けられると、変更判別部３３８は、要求世代Ｂに元データが格納されているか否かを判別する（ステップＳ４０２）。
【０１５１】
そして、変更判別部３３８は、要求世代Ｂに元データが格納されていると判別すると（ステップＳ４０３肯定）、前世代Ａに元データが格納されているか否かを判別する（ステップＳ４０４）。
【０１５２】
ここで、変更判別部３３８によって、前世代Ａに元データが格納されていると判別されると（ステップＳ４０５肯定）、変更部は、要求世代Ｂの変更を行う（ステップＳ４０６）。例えば、受付けた変更を行う旨を示す情報に従って、変更を実行する。
【０１５３】
一方、上記したステップＳ４０５において、変更判別部３３８によって、前世代Ａに元データが格納されていないと判別されると（ステップＳ４０５否定）、変更前格納部３３９は、要求世代Ｂの元データを前世代Ａに格納する（ステップＳ４０７）、具体的には、変更前格納部３３９は、受付けられた位置情報によって示される箇所に対して変更が実行される前に、格納されていないと判別された前世代Ａの記憶領域に、受付けられた位置情報に対応付けられた元データを、世代Ｂの記憶領域から読み出して格納する。
【０１５４】
そして、変更部は、要求世代Ｂの変更を行う（ステップＳ４０８）。
【０１５５】
また、上記したステップＳ４０３において、変更判別部３３８は、要求世代Ｂに元データが格納されていないと判別すると（ステップＳ４０３否定）、最新側世代Ｃに元データが格納されているか否かを判別する（ステップＳ４０９）。
【０１５６】
ここで、変更判別部３３８によって、最新側世代Ｃに元データが格納されていると判別されると（ステップＳ４１０肯定）、変更前格納部３３９は、最新側世代Ｃの元データを要求世代Ｂに格納する（ステップＳ４１１）。具体的には、変更前格納部３３９は、受付けられた位置情報によって示される箇所に対して変更が実行される前に、世代Ｂの記憶領域に、受付けられた位置情報に対応付けられた元データを、ステップＳ４１０にて格納されていると判別された最新側世代Ｃから読み出して格納する。
【０１５７】
そして、変更判別部３３８は、前世代Ａに元データが格納されているか否かを判別する（ステップＳ４１２）。
【０１５８】
ここで、変更判別部３３８によって、前世代Ａに元データが格納されていると判別されると（ステップＳ４１３肯定）、変更部は、要求世代Ｂの変更を行う（ステップＳ４１４）。
【０１５９】
一方、上記したステップＳ４１３において、変更判別部３３８によって、前世代Ａに元データが格納されていないと判別されると（ステップＳ４１３否定）、変更前格納部３３９は、最新側世代Ｃの元データを前世代Ａに格納する（ステップＳ４１５）。具体的には、変更前格納部３３９は、受付けられた位置情報によって示される箇所に対して変更が実行される前に、変更判別部３３８によって格納されていないと判別された前世代Ａの記憶領域に、受付けられた位置情報に対応付けられた元データを、変更判別部３３８によって格納されていると判別された最新側世代Ｃから読み出して格納する。
【０１６０】
そして、変更部は、要求世代Ｂの変更を行う（ステップＳ４１６）。
【０１６１】
一方、上記したステップＳ４１０において、変更判別部３３８によって、最新側世代Ｃに元データが格納されていないと判別されると（ステップＳ４１０否定）、変更前格納部３３９は、コピー元ボリュームＳの元データを要求世代Ｂに格納する（ステップＳ４１７）。具体的には、変更前格納部３３９は、受付けられた位置情報によって示される箇所に対して変更が実行される前に、世代Ｂの記憶領域に、受付けた位置情報によって示される箇所におけるデータを、コピー元ボリュームＳから読み出して格納する。
【０１６２】
そして、変更判別部３３８は、前世代Ａに元データが格納されているか否かを判別する（ステップＳ４１８）。
【０１６３】
ここで、変更判別部３３８によって、前世代Ａに元データが格納されていると判別されると（ステップＳ４１９肯定）、変更部は、要求世代Ｂの変更を行う（ステップＳ４２０）。
【０１６４】
一方、上記したステップＳ４１９において、変更判別部３３８によって、前世代Ａに元データが格納されていないと判別されると（ステップＳ４１９否定）、変更前格納部３３９は、コピー元ボリュームＳの元データを前世代Ａに格納する（ステップＳ４２１）。具体的には、変更前格納部３３９は、受付けられた位置情報によって示される箇所に対して変更が実行される前に、変更判別部３３８によって格納されていないと判別された前世代Ａの記憶領域に、受付けた位置情報によって示される箇所におけるデータを、コピー元ボリュームＳから読み出して格納する。
【０１６５】
そして、変更部は、要求世代Ｂの変更を行う（ステップＳ４２２）。
【０１６６】
なお、変更前格納部３３９は、変更受付部３３７によって受付けられた識別情報によって識別される時点と比較して前の時点を示す識別情報が複数ある場合に、受付けられた当該識別情報によって識別される時点に最も近い時点を識別する当該識別情報である直近識別情報に対応付けられた記憶領域に格納されていないと判別された場合に、受付けられた位置情報によって示される箇所に対して変更が実行される前に、当該直近識別情報に対応付けられた記憶領域に格納する。
【０１６７】
例えば、図９の例を用いて説明すると、「第３世代」について変更が行われる場合には、変更前格納部３３９は、「第２世代」について、元データが格納されているかを判別し、格納されていないと判別した場合に、「第２世代」に格納する。言い換えると、変更前格納部３３９は、「第１世代」については、何ら処理を行わない。
【０１６８】
また、変更前格納部３３９は、変更判別部３３８によって、変更受付部３３７によって受付けられた識別情報によって識別される時点と比較して後の時点を示す識別情報が複数ある場合に、当該複数ある記憶領域の内、直近識別情報に対応付けられた当該記憶領域から、受付けられた位置情報に対応付けられた元データを読み出す。
【０１６９】
例えば、図９の例を用いて説明すると、「第３世代」の「Ｂ」について変更が行われる場合に、変更前格納部３３９は、当該「Ｂ」に対応付けられた元データが、「第３世代」の後の時点を示す「第４世代」と「第５世代」とに格納されている。この場合、変更前格納部３３９は、「第４世代」から元データを読み出す。
【０１７０】
［実施例１の効果］
上記したように、このバックアップ装置２０は、バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当て、指示によって示される時点より後に元データが更新されると、直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として割り当てられた記憶領域に格納されているかを確認し、格納されていないと確認されると、更新が行われた箇所に対応する更新直前の元データを、最新のスナップショットを格納する記憶領域にのみ格納するので、スナップショットを作成する際に、元データから記憶領域へと格納されるデータの転送量を減少することが可能である。
【０１７１】
例えば、従来のＳｎａｐＯＰＣを実行するバックアップ装置２０は、［前提技術］において上述したように、更新が行われた箇所に対応する更新直前のコピー元ボリュームを、当該箇所に対応する更新直前のコピー元ボリュームを格納していない記憶領域各々に対して格納する。
【０１７２】
例えば、図３の例を用いて、「５：００」において行われた更新処理を例に説明すると、コピー元ボリュームの「Ｃ」における更新直前のコピー元ボリュームを、「４：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（５）に示す記憶領域）だけでなく、「１：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（４）に示す記憶領域）にも格納する。
【０１７３】
これに対して、このバックアップ装置２０は、図３の（１１）に示すように、コピー元ボリュームの「Ｂ」や「Ｃ」における更新直前のコピー元ボリュームを、「１：００」の時点について作成されるスナップショットを格納する所定の記憶領域（図３の（４）に示す記憶領域）に、当該コピー元ボリュームの「Ｂ」や「Ｃ」における更新直前のコピー元ボリュームが格納されていなくても、格納しない。これにより、従来のＳｎａｐＯＰＣと比較して、転送量を減少することが可能である。
【０１７４】
また、このバックアップ装置２０は、さらに、識別情報に対応付けて、記憶領域を割り当て、位置情報と当該位置情報で示される箇所における更新直前の元データとを対応付けて、識別情報に対応付けられた記憶領域に格納し、スナップショットからデータを読み出す旨の情報と識別情報と位置情報とを受付け、受付けられた識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別し、Ｂ世代に格納されていないと判別された場合に、受付けられた識別情報によって識別される時点と比較して時間が経過した後の時点を示す当該識別情報に対応付けられた記憶領域に、受付けられた位置情報に対応付けられた元データが格納されているかを判別し、Ｂ世代に格納されていると判別された場合には、受付けられた位置情報に対応づけられた元データを、格納されていると判別された記憶領域から読み出し、Ａ世代に格納されていると判別された場合には、受付けられた位置情報に対応付けられた元データを、格納されていると判別された記憶領域から読み出し、Ａ世代に格納されていないと判別された場合には、受付けられた位置情報によって示される箇所におけるデータを、現時点における元データから読み出すので、更新が行われた箇所に対応する更新直前の元データを、最新のスナップショットを格納する記憶領域にのみ格納する手法において、このバックアップ装置２０は、スナップショット各々を構成するデータを確実に読み出すことが可能である。
【０１７５】
例えば、従来のＳｎａｐＯＰＣを実行するバックアップ装置２０は、［前提技術］において説明したように、更新が行われた箇所に対応する更新直前の元データを、更新が行われている時点より前の時点について作成されるスナップショットを格納する記憶領域すべてに対して格納する。このため、従来のＳｎａｐＯＰＣを実行するバックアップ装置２０は、ユーザによって指定された時点について作成させたスナップショットを構成するデータを読み出す際に、当該時点におけるスナップショットを格納する記憶領域に当該データが格納されているかを確認し、なければ、元データから読み出しすればよい。
【０１７６】
従来のＳｎａｐＯＰＣを実行するバックアップ装置２０による、このようなスナップショットを構成するデータを読み出す手法では、更新直前の元データを、最新のスナップショットを格納する記憶領域にのみ格納する手法において、正確なデータを読み出すことはできない。
【０１７７】
このような手法に対して、このバックアップ装置２０は、ユーザによって指定された時点について作成させたスナップショットを構成するデータを読み出す際に、当該時点におけるスナップショットを格納する記憶領域に当該データが格納されているかを確認し、なければ、当該時点よりも時間が経過した時点について作成されたスナップショットを格納している記憶領域に、データが格納されているかを判別し、格納されている場合には、そこからデータを読み出すので、スナップショット各々を構成するデータを確実に読み出すことが可能である。
【０１７８】
また、このバックアップ装置２０は、さらに、格納されていると判別されたＡ世代の記憶領域が複数ある場合に、受付けられた識別情報によって識別される時点に最も近い時点を識別する識別情報に対応付けられた当該記憶領域から、受付けられた位置情報に対応付けられた元データを読み出すので、複数の時点においてスナップショットが作成されている場合においても、適切なスナップショットを用いて処理を行うことが可能である。
【０１７９】
また、このバックアップ装置２０は、さらに、例えば、「第Ｚ世代」についてのスナップショットのデータを変更したとしても、この変更による影響が、他の世代についてのスナップショットに及ばないように動作するので、変更を加えるスナップショット以外のスナップショットに対して影響を与えずに、指定されたスナップショットに変更を加えることが可能である。
【０１８０】
また、このバックアップ装置２０は、さらに、受付けられた識別情報によって識別される時点と比較して前の時点を示す識別情報が複数ある場合や、格納されていると判別されたＣ世代の記憶領域が複数ある場合も、適切なスナップショットを用いて処理を行うことが可能である。
【実施例２】
【０１８１】
実施例１では、スナップショットを作成する時点各々について割り当てられる記憶領域に、さらに別の記憶領域を追加する手法について言及しなかったが、本発明はこれに限定されるものではなく、記憶領域を追加してもよい。
【０１８２】
すなわち、実施例２に係るバックアップ装置２０は、図１９に示すように、スナップショットを作成する時点各々に（例えば、「世代１」、「世代２」および「世代３」）予め割り当てる記憶領域について、当該記憶領域の論理容量をコピー元ボリュームと同等（または大きく）設定する一方、当該記憶領域の物理容量をコピー元ボリュームに比べ小さく設定する。上記したように、このバックアップ装置２０は、更新が行われた箇所に対応する更新前のデータのみを格納するからである。このため、このバックアップ装置２０は、コピー元ボリュームの更新量が見積もり以上に多い場合には、予め割り当てる記憶領域に、容量あふれを発生させる。
【０１８３】
このため、実施例２に係るバックアップ装置２０は、容量あふれが発生する場合には、あらかじめ定義した待機系の仮想ボリューム（予め用意した記憶媒体）から、記憶容量を追加し、当該容量あふれの発生を防止するものである。つまり、例えば、実施例２に係るバックアップ装置２０は、図２０の（１）に示すように、割り当て部によって割り当てられた記憶領域にデータを格納できない場合に、図２０の（２）に示すように、予め追加した記憶領域に格納するものである。
【０１８４】
以下では、図２１〜図２５を用いて、スナップショットを作成する時点各々について割り当てられる記憶領域に、記憶領域を追加する手法について説明する。なお、以下では、後述する追加部によって追加された記憶領域を、仮想ボリューム（または、仮想ＳＤＶ）と記載する。
【０１８５】
なお、ここで、図１９は、実施例２に係るバックアップ装置の特長を説明するための図である。図２０は、実施例２に係るバックアップ装置の特長を説明するための図である。図２１は、実施例２におけるＳＤＶ管理テーブルを説明するための図である。図２２は、実施例２における解像度決定用テーブルを説明するための図である。図２３は、実施例２における負荷分散用テーブルを説明するための図である。図２４は、実施例２に係るバックアップ装置による仮想ボリューム追加処理を説明するためのフローチャートである。図２５は、実施例２に係るバックアップ装置による格納処理を説明するためのフローチャートである。
【０１８６】
この実施例２に係るバックアップ装置２０は、図４に示す実施例１に係るバックアップ装置２０の構成に加えて、以下に説明するように、解像度決定用テーブルと、負荷分散用テーブルと、監視部と、容量決定部と、追加部と、管理部と、算出部と、決定部とを備える。なお、負荷分散用テーブルは、特許請求の範囲に記載の「容量テーブル」に対応し、監視部は、特許請求の範囲に記載の「監視手段」に対応し、追加部は、特許請求の範囲に記載の「追加手段」に対応する。
【０１８７】
また、実施例２に係るバックアップ装置２０は、所定の上限容量を有する複数の記憶媒体から構成される記憶装置を備える。例えば、複数のディスク装置（記憶媒体）から構成されるストレージ装置（記憶装置）を備える。ここで、当該記憶媒体各々は、それぞれ一意に識別されるものである。例えば、ディスク装置は、「Ｄｉｓｋ１」や「Ｄｉｓｋ２」、「Ｄｉｓｋ３」などの他のディスク装置と識別する情報が付与されている。
【０１８８】
実施例２に係るバックアップ装置２０のＳＤＶ管理テーブル３２３は、図２１の（１）に示すように、割り当て部３３１によって割り当てられた記憶領域（ＳＤＶ）を管理する情報を記憶するとともに、さらに、図２１の（２）に示すように、スナップショットを格納する記憶領域として割り当てられた仮想ボリュームを管理する情報を、割り当てられた仮想ボリュームごとに記憶する。このバックアップ装置２０のＳＤＶ管理テーブル３２３は、後述する追加部によって、当該追加部によって追加された仮想ボリュームについての情報を入力され、記憶する。
【０１８９】
例えば、実施例２に係るバックアップ装置２０のＳＤＶ管理テーブル３２３は、図２１の（２）の例では、仮想ボリュームを一意に特定する情報である「仮想ボリューム特定番号」に対応付けて、「使用量」と「開始物理アドレス」と「現在使用済みＬＢＡ」とを記憶する。具体的な一例をあげて説明すると、このＳＤＶ管理テーブル３２３は、仮想ボリューム特定番号「１」に対応付けて、使用量「３Ｇ」と開始物理アドレス「１００」と現在使用済みＬＢＡ「１００、１１０、…」とを記憶する。
【０１９０】
また、実施例２に係るバックアップ装置２０のＳＤＶ管理テーブル３２３は、図２１の（３）に示すように、割り当て部３３１によって割り当てられた記憶領域と、後述する追加部によって追加された仮想ボリュームとの関係を、記憶する。例えば、図２１の（３）に示す例では、このＳＤＶ管理テーブル３２３は、割り当て部３３１によって割り当てられた記憶領域各々に対応付けて、仮想ボリューム特定番号を記憶する。具体的に例をあげて説明すると、図２１の（３）に示す例では、第１世代のスナップショットを割り当てる記憶領域として割り当てられた「第１世代ＳＤＶ」に対応付けて、仮想ボリューム特定番号「１、２」を記憶する。
【０１９１】
また、実施例２に係るバックアップ装置２０のＳＤＶ管理テーブル３２３は、図２１の（４）に示すように、仮想ボリューム各々を、スナップショットを作成する時点（または、当該時点についてのスナップショットを格納する記憶領域（または、その識別情報））にリンクさせて（リンク構造により）記憶する。スナップショットを作成する時点各々に対して、それぞれ追加される仮想ボリュームを追加する時点においては、同時に割り当てられる仮想ボリュームの数は不定であるため、例えば、ＳＤＶ管理テーブル３２３は、リンク構造によって記憶する。
【０１９２】
実施例２に係るバックアップ装置２０の解像度決定用テーブルは、割り当てる仮想ボリュームの容量を決定する際に用いられる情報を記憶する。具体的には、この解像度決定用テーブルは、後述する監視部と後述する容量決定部とによって用いられるデータを記憶し、何らかの処理が行われる毎に、後述する監視部によって、記憶している情報が更新されるものである。例えば、この解像度決定用テーブルは、格納部３３３によって、データが記憶領域に格納される処理が行われると、監視部によって、更新量の値が変更され、使用率と更新率とが更新される。
【０１９３】
また、実施例２に係るバックアップ装置２０の解像度決定用テーブルは、例えば、図２２に示すように、スナップショットが作成される時点を示す「世代」に対応付けて、世代と世代との間隔を示す「バックアップ経過時間（ｈ）」と、記憶領域（ＳＤＶ）の容量の内使用されている容量の占める割合を示す「使用率（％）」と、更新されたデータの容量を示す「更新量（ＭＢ）」と、更新量と経過時間とにより算出される「更新率（ＭＢ／ｈ）」とを記憶する。
【０１９４】
例えば、実施例２に係るバックアップ装置２０の解像度決定用テーブルは、図２２に示す例では、世代「１」に対応付けて、バックアップ経過時間「経過時間１」と、使用率「使用率１」と、更新量「更新量１」と、更新率「更新率１」とを記憶する。なお、図２２では、解像度決定用テーブルに記憶されている情報として、文言（例えば、「経過時間１」など）を用いて説明したが、実際には、数値として記憶する。
【０１９５】
実施例２に係るバックアップ装置２０の負荷分散用テーブルは、記憶媒体ごとに、後述する追加部によって追加された記憶領域の容量の合計を示す使用容量を記憶する。具体的には、この負荷分散用テーブルは、後述する管理部によって、記憶している情報を管理され、後述する算出部によって用いられる。
【０１９６】
例えば、実施例２に係るバックアップ装置２０の負荷分散用テーブルは、図２３に示すように、「仮想ボリューム特定番号」と対応付けて、当該仮想ボリュームを追加する際に用いられた記憶媒体を示す「使用Ｄｉｓｋ」と、「仮想ボリューム特定番号」によって特定される仮想ボリュームとして使用した（後述する追加部によって追加された）容量を示す「使用量（ＭＢ）」とを記憶する。
【０１９７】
具体的に例をあげて説明すると、実施例２に係るバックアップ装置２０の負荷分散用テーブルは、図２３に示す例では、仮想ボリューム特定番号「１」に対応付けて、使用Ｄｉｓｋ「Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３」と使用量「使用量１」とを記憶する。
【０１９８】
監視部は、割り当て部３３１によって割り当てられた記憶領域毎に、当該記憶領域それぞれの空き容量を監視する。具体的には、監視部は、解像度決定用テーブルを確認することにより、記憶領域（ＳＤＶ）や仮想ボリュームそれぞれの空き容量を監視する。また、監視部による監視結果は、後述する追加部によって用いられる。
【０１９９】
例えば、更新前のデータがスナップショット記憶部２０１に格納され、または、ビットマップテーブル３２１の値が変更（「１」から「０」に変更）され、解像度決定用テーブルが更新されると、監視部は、解像度決定用テーブルを更新する。そして、例えば、監視部は、更新された使用率が、予め設定されている閾値以上かを監視する。
【０２００】
具体的な一例をあげて説明すると、監視部は、解像度決定用テーブルにおいて、更新量の値を更新し、使用率と更新率とを更新する。そして、例えば、予め設定された閾値が「９０％」である場合には、監視部は、使用率が「９０％」以上かを監視する。
【０２０１】
なお、監視部は、最新世代のスナップショットを格納する記憶領域についてのみ、空き容量を監視してもよい。容量あふれの懸念があるのは更新前のデータが転送される最新世代のスナップショットを格納する記憶領域であり、このバックアップ装置２０は、監視対象を限定することによって、処理を迅速に、確実に行うことが可能である。
【０２０２】
容量決定部は、後述する追加部によって記憶領域（仮想ＳＤＶ）が識別情報に対応付けて追加される場合に、当該識別情報によって識別される時点と当該時点と最も近い時点との間における時間間隔や、当該識別情報に対応付けられた記憶領域にデータを格納してから経過した経過時間に対する当該記憶領域に格納したデータの容量から、追加する記憶領域（仮想ＳＤＶ）の容量を決定する。具体的には、容量決定部は、解像度決定用テーブルを用いて、仮想ボリュームの適切な容量を決定する。
【０２０３】
例えば、容量決定部は、最新側の世代のスナップショットを格納する記憶領域に、「５Ｇ」の記憶領域が割り当てられ、更新率が「１０ＧＢ／ｈ」である場合に、例えば、「５Ｇ〜１０Ｇ」の仮想ボリュームを決定する。
【０２０４】
また、上記したように、容量決定部は、世代と世代との間隔（世代バックアップの間隔）と、その間の更新量を考慮し、仮想ボリュームの追加単位を可変に決定する。また、容量決定部は、世代の削除等により不要となった仮想ボリュームを、解放して待機系に移す。これにより、無駄の少ない記憶容量の配分を実現する。
【０２０５】
管理部は、記憶媒体ごとに、後述する追加部によって追加された記憶領域の容量の合計を示す使用容量を記憶する容量テーブルを管理する。具体的には、管理部は、負荷分散用テーブルに記憶されている情報を、関連する処理が行われると、更新する。例えば、後述する追加部によって仮想ボリュームが追加されると、追加された仮想ボリュームについて、「仮想ボリューム特定番号」と、「使用Ｄｉｓｋ」と、「使用量」とを、負荷分散テーブルに格納し、負荷分散用テーブルを更新する。
【０２０６】
算出部は、管理部によって管理される負荷分散用テーブルに記憶された記憶媒体ごとの使用容量が当該記憶媒体各々の所定の上限容量において占める割合を示す使用率を、当該記憶媒体各々について算出する。具体的には、算出部は、記憶媒体各々について、使用率を算出する。
【０２０７】
例えば、負荷分散テーブルに記憶されている「使用Ｄｉｓｋ」と「使用量」との対応付けを用いて、「使用Ｄｉｓｋ」ごとに、使用している容量を示す使用量の合計を算出する。また、算出した使用量と、使用Ｄｉｓｋ各々についての所定の上限容量とから、使用Ｄｉｓｋ各々についての使用率を算出する。
【０２０８】
なお、実施例２では、図２３に示すように複数の記憶媒体を一つの単位として使用するため、算出部は、当該一つの単位ごとに、使用率を算出する。例えば、ＲＡＩＤ装置においては冗長化によるデータ保護のため、複数ディスクによって一つのＲＡＩＤグループを組み、その中にボリュームを作成するため、使用Ｄｉｓｋが複数になるのが通常である。例えば、図２３に示す例を用いて説明すると、算出部は、「Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３」を一つの単位として使用率を算出し、「Ｄｉｓｋ５、Ｄｉｓｋ６」を一つの単位として使用率を算出し、「Ｄｉｓｋ７、Ｄｉｓｋ８、Ｄｉｓｋ９」を一つの単位として使用率を算出する。
【０２０９】
決定部は、算出部によって算出された使用率の内、最も少ない当該使用率を示した記憶媒体から、後述する追加部によって追加される記憶領域を決定する。具体的には、記憶媒体が複数ある場合に、算出部によって、最も使用率が少ないと算出された記憶媒体を決定する。
【０２１０】
例えば、決定部は、負荷分散用テーブルから、記憶媒体を選択する。具体的な一例をあげて説明すると、決定部は、算出部によって、「Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３」の使用率が「２０％」であり、「Ｄｉｓｋ５、Ｄｉｓｋ６」の使用率が「９０％」であり、「Ｄｉｓｋ７、Ｄｉｓｋ８、Ｄｉｓｋ９」の使用率が「８５％」であると算出された場合に、最も少ない使用率であると算出された「Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３」を決定する。
【０２１１】
追加部は、空き容量が所定の閾値以下になったという監視結果が監視部によって得られた場合に、監視結果が得られた記憶領域に対応付けられた識別情報に対応付けて、新たに記憶領域を追加する。具体的には、追加部は、空き容量が所定の閾値以下になったという監視結果が監視部によって得られた場合に、容量決定部によって決定された容量に従って、算出部によって決定された記憶媒体から、新たに記憶領域を追加する。
【０２１２】
例えば、追加部は、負荷分散用テーブルに追加分を登録し、仮想ボリュームを追加する。具体的な一例をあげて説明すると、容量決定部によって、「５Ｇ」割り当てると決定され、算出部によって、「Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３」が決定されると、追加部は、負荷分散用テーブルに、新たに付与する「仮想ボリューム特定番号（例えば、「６」）」に対応付けて、使用Ｄｉｓｋ「Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３」と、使用量「５Ｇ」とを、管理部に格納させる。そして、追加部は、「Ｄｉｓｋ１、Ｄｉｓｋ２、Ｄｉｓｋ３」から、「５Ｇ」の記憶領域を、割り当てる。なお、追加部は、容量あふれが発生する前に、先行して、割り当てを実行する。
【０２１３】
また、追加部は、仮想ボリュームの追加を自動的に行うことにより、ユーザが記憶領域の容量あふれについて特別な意識を持つ必要はなく、容量あふれを防ぐことが可能である。
【０２１４】
格納部３３３は、割り当て部３３１によって割り当てられた記憶領域（ＳＤＶ）や、追加部によって追加された仮想ボリュームに、データを格納する。例えば、格納部３３３は、確認部３３２によって更新直前の元データを格納していないと確認されると、コピー先容量が不足しているかを確認する。具体的な一例をあげて説明すると、格納部３３３は、割り当て部３３１によって割り当てられた記憶領域（ＳＤＶ）に、データを格納する容量があるかを確認する。
【０２１５】
例えば、格納部３３３は、コピー先容量が不足している場合には、仮想ボリュームの割り当て状況を確認し、仮想ボリュームの容量を獲得する。具体的な一例をあげて説明すると、格納部３３３は、ＳＤＶ管理テーブル３２３から、データを格納する世代に（または、当該データを格納する記憶領域に）対応付けられた仮想ボリュームを確認し、当該仮想ボリュームにおいて、データを格納する容量を確保する。
【０２１６】
読出部３３６は、割り当て部３３１によって割り当てられた記憶領域（ＳＤＶ）や、追加部によって追加された仮想ボリュームから、データを読み出す。例えば、読出部３３６は、読み出す世代を選択すると、当該世代に対応付けられて仮想ボリュームが追加されているかを確認し、データを、記憶領域（ＳＤＶ）か仮想ボリュームから読み出す。
【０２１７】
変更前格納部３３９は、格納部３３３と同様に、スナップショットに対して変更が実行される前に、割り当て部３３１によって割り当てられた記憶領域（ＳＤＶ）か、追加部によって追加された仮想ボリュームに、データを格納する。
【０２１８】
［実施例２に係るバックアップ装置による仮想ボリューム追加処理］
次に、図２４を用いて、実施例２に係るバックアップ装置２０による仮想ボリューム追加処理を説明する。
【０２１９】
図２４に示すように、実施例２に係るバックアップ装置２０では、更新前データの格納処理があると（ステップＳ５０１肯定）、監視部は、解像度決定用テーブルを更新する（ステップＳ５０２）。例えば、監視部は、解像度決定用テーブルにおいて、更新量の値を更新し、使用率と更新率とを更新する。
【０２２０】
そして、監視部によって、使用率が閾値以上でないと監視されると（ステップＳ５０３否定）、処理を終了する。一方、監視部によって、使用率が閾値以上であると監視されると（ステップＳ５０３肯定）、容量決定部は、更新率から最適な解像度を選択する（ステップＳ５０４）。例えば、容量決定部は、「５Ｇ」の記憶領域が割り当てられ、更新率が「１０ＧＢ／ｈ」である場合に、「５Ｇ〜１０Ｇ」の仮想ボリュームを追加する。
【０２２１】
そして、決定部は、負荷分散用テーブルから、記憶媒体を選択する（ステップＳ５０５）。具体的には、決定部は、記憶媒体が複数ある場合に、算出部によって、最も使用率が少ないと算出された記憶媒体を決定する。
【０２２２】
そして、追加部は、負荷分散用テーブルに追加分を登録し（ステップＳ５０６）、仮想ボリュームを割り当てる（ステップＳ５０７）。具体的には、追加部は、空き容量が所定の閾値以下になったという監視結果が監視部によって得られた場合に、容量決定部によって決定された容量に従って、算出部によって決定された記憶媒体から、新たに記憶領域を追加する。
【０２２３】
［実施例２に係るバックアップ装置による格納処理］
次に、図２５を用いて、実施例２に係るバックアップ装置２０による格納処理を説明する。
【０２２４】
実施例２に係るバックアップ装置２０は、更新要求があり、格納済みであると確認されると（ステップＳ６０１〜Ｓ６０３肯定）、格納部３３３は、コピー先容量が不足しているかを確認する（ステップＳ６０４）。ここで、格納部３３３は、不足していないと確認すると、確認した記憶領域にデータを格納する（ステップＳ６０４否定、ステップＳ６０７〜ステップＳ６１２）。
【０２２５】
一方、格納部３３３は、コピー先容量が不足していると確認すると（ステップＳ６０４肯定）、仮想ボリュームの割り当て状況を確認し（ステップＳ６０５）、仮想ボリュームの容量を獲得する（ステップＳ６０６）。例えば、格納部３３３は、ＳＤＶ管理テーブル３２３から、データを格納する世代に対応付けられた仮想ボリュームを確認し、当該仮想ボリュームにおいて、データを格納する容量を確保する。そして、データを格納する（ステップＳ６０７〜ステップＳ６１２）。
【０２２６】
なお、図２５におけるステップＳ６０１〜ステップＳ６０３は、図１６におけるステップＳ２０１〜ステップＳ２０３に対応し、図２５におけるステップＳ６０７〜ステップＳ６１２は、図１６におけるステップＳ２０４〜ステップＳ２０９に対応するため、説明を省略する。
【０２２７】
［実施例２の効果］
上記したように、このバックアップ装置２０は、割り当て部３３１によって割り当てられた記憶領域毎に、当該記憶領域それぞれの空き容量を監視し、空き容量が所定の閾値以下になったという監視結果が監視部によって得られた場合に、監視結果が得られた記憶領域に対応付けられた識別情報に対応付けて、新たに記憶領域を追加するので、容量あふれを防止することが可能である。
【０２２８】
例えば、従来の手法では、コピー先ボリュームの論理容量はコピー元ボリュームと同等または大きく設定されているが、一方、実際の物理容量はコピー元ボリュームに比べ小さく設定されている。このため、コピー元ボリュームの更新量が見積もり以上に多い場合には、スナップショットを格納するために割り当てられた記憶領域において、容量あふれが発生していた。
【０２２９】
このような従来の手法と比較して、このバックアップ装置２０は、容量あふれが発生しそうな場合には、記憶容量をあらかじめ追加することによって、コピー元ボリュームの更新量が見積もり以上に多くなってしまった場合においても、容量あふれを防止することが可能である。
【０２３０】
このようにこのバックアップ装置２０は、世代バックアップにおけるバックアップデータ削減（実施例１において記載）と、仮想ボリュームによるコピー先ボリュームの容量最適化の両方の利点の組み合わせによって、より効率の良い世代バックアップを実現することが可能である。
【０２３１】
また、このバックアップ装置２０は、さらに、追加部によって記憶領域が識別情報に対応付けて追加される場合に、当該識別情報によって識別される時点と当該時点と最も近い時点との間における時間間隔や、当該識別情報に対応付けられた記憶領域にデータを格納してから経過した経過時間に対する当該記憶領域に格納したデータの容量から、追加する記憶領域の容量を決定し、容量決定部によって決定された容量に従って、新たに記憶領域を追加するので、適切な容量の記憶容量を、追加することが可能である。
【０２３２】
例えば、世代バックアップの間隔や更新量を考慮し、追加する記憶容量を可変に決定することが可能である。
【０２３３】
また、このバックアップ装置２０は、さらに、所定の上限容量を有する複数の記憶媒体から構成される記憶装置を備え、当該記憶媒体各々は、それぞれ一意に識別されるものであって、空き容量が所定の閾値以下になったという監視結果が監視部によって得られた場合に、記憶媒体から、新たに記憶領域を追加し、負荷分散用テーブルに記憶された記憶媒体ごとの使用容量が当該記憶媒体各々の所定の上限容量において占める割合を示す使用率を、当該記憶媒体各々について算出し、算出された使用率の内、最も少ない当該使用率を示した記憶媒体から、追加する記憶領域を決定するので、特定の記憶媒体の性能低下を防止することが可能である。
【０２３４】
例えば、特定の記憶媒体に偏って、追加の記憶容量を割り当てると、当該記憶媒体のみ使用率が上がってしまい性能低下を引き起こす可能性がある。
【０２３５】
これに対して、このバックアップ装置２０は、記憶媒体の一定単位ごと（例えば、磁気ディスクごとや、複数の磁気ディスク単位など）に、使用している記憶媒体と使用量とを制御テーブルとして管理し、記憶媒体ごとに使用量を算出し、最も使用量の少ない記憶媒体から記憶容量を割り当てることができ、特定の記憶媒体の性能低下を防止することが可能である。
【実施例３】
【０２３６】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【０２３７】
［実施例の組み合わせ］
また、（１）最新の世代にのみ、元データを格納する手法、（２）読出要求を受付けた際に、識別情報により特定される世代になければ、最新側の世代から読み出す手法、（３）最新側の世代から読み出す際に、読み出す箇所を示す位置情報に対応付けられたデータが格納されているデータが複数の世代にある場合には、最寄の世代から読み出す手法、（４）スナップショットに変更を行う手法、（５）スナップショットに変更を行う際に、変更前格納処理を行う手法、（６）仮想ボリュームを追加する手法、（７）仮想ボリュームを追加する際に、更新率等から追加する容量を決定する手法、（８）記憶媒体への負荷を分散させる手法と、の組み合わせにおいて、実施例１においては、（１）〜（５）を実施し、実施例２においては、さらに、（６）〜（８）を実施する手法について説明したが、本発明はこれに限定されるものではなく、（１）に加えて、一つまたは複数の手法を組み合わせて実施してもよい。なお、その際には、（７）と（８）とは、（６）を実施することを前提とする。
【０２３８】
［プログラム］
ところで、上記実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図２６を用いて、上記の実施例１に示したバックアップと同様の機能を有するバックアッププログラムを実行するコンピュータの一例を説明する。なお、図２６は、実施例１に係るバックアップ装置のプログラムを説明するための図である。
【０２３９】
同図に示すように、実施例１におけるバックアップ装置３０００は、操作部３００１、マイク３００２、スピーカ３００３、Ｄｉｓｋ３００４、ディスプレイ３００５、通信部３００６、ＣＰＵ３０１０、ＲＯＭ３０１１、ＨＤＤ３０１２、ＲＡＭ３０１３をバス３００９などで接続して構成されている。
【０２４０】
ＲＯＭ３０１１には、上記の実施例１で示した割り当て部３３１と、確認部３３２と、読出受付部３３４と、読出判別部３３５と、読出部３３６と、変更受付部３３７と、変更判別部３３８と、変更前格納部３３９と同様の機能を発揮する制御プログラム、つまり、同図に示すように、割り当てプログラム３０１１ａと、確認プログラム３０１１ｂと、読出受付プログラム３０１１ｃと、読出判別プログラム３０１１ｄと、読出プログラム３０１１ｅと、変更受付プログラム３０１１ｆと、変更判別プログラム３０１１ｇと、変更前格納プログラム３０１１ｈとが予め記憶されている。なお、これらのプログラム３０１１ａ〜３０１１ｈについては、図４に示したバックアップの各構成要素と同様、適宜統合または分離してもよい。
【０２４１】
そして、ＣＰＵ３０１０が、これらのプログラム３０１１ａ〜３０１１ｈをＲＯＭ３０１１から読み出して実行することにより、図２６に示すように、各プログラム３０１１ａ〜３０１１ｈについては、割り当てプロセス３０１０ａと、確認プロセス３０１０ｂと、読出受付プロセス３０１０ｃと、読出判別プロセス３０１０ｄと、読出プロセス３０１０ｅと、変更受付プロセス３０１０ｆと、変更判別プロセス３０１０ｇと、変更前格納プロセス３０１０ｈとして機能するようになる。なお、各プロセス３０１０ａ〜３０１０ｈは、図４に示した、割り当て部３３１と、確認部３３２と、読出受付部３３４と、読出判別部３３５と、読出部３３６と、変更受付部３３７と、変更判別部３３８と、変更前格納部３３９とにそれぞれ対応する。
【０２４２】
そして、ＨＤＤ３０１２には、ビットマップテーブル３０１２ａと、世代管理テーブル３０１２ｂと、ＳＤＶ管理テーブル３０１２ｃと、論理ー物理変換データテーブル３０１２ｄとが設けられている。なお、各テーブル３０１２ａ〜３０１０ｄは、図４に示した、ビットマップテーブル３２１と、世代管理テーブル３２２と、ＳＤＶ管理テーブル３２３と、論理ー物理変換データテーブルとにそれぞれ対応する。
【０２４３】
そして、ＣＰＵ３０１０は、ビットマップテーブル３０１２ａと、世代管理テーブル３０１２ｂと、ＳＤＶ管理テーブル３０１２ｃと、論理ー物理変換データテーブル３０１２ｄとを読み出してＲＡＭ３０１３に格納し、ＲＡＭ３０１３に格納されたビットマップデータ３０１３ａと、世代管理データ３０１３ｂと、ＳＤＶ管理データ３０１３ｃと、論理ー物理変換データデータ３０１３ｄとを用いて、バックアッププログラムを実行する。
【０２４４】
［その他］
なお、本実施例で説明したバックアップ装置は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０２４５】
（付記１）バックアップ対象となる元データについて、バックアップを実行する時点における元データを示すスナップショットを、当該バックアップを実行する時点各々について作成するバックアップ装置であって、
前記バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる割り当て手段と、
前記指示によって示される時点より後に前記元データが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として前記割り当て手段によって割り当てられた前記記憶領域に格納されているかを確認する確認手段と、
前記確認手段によって格納されていないと確認されると、前記更新が行われた箇所に対応する更新直前の元データを、前記最新のスナップショットを格納する記憶領域にのみ格納する格納手段と、
を備えることを特徴とするバックアップ装置。
【０２４６】
（付記２）前記割り当て手段は、前記指示によって示される時点を識別する情報である識別情報に対応付けて、当該時点について作成される前記スナップショットを格納する前記記憶領域を割り当て、
前記格納手段は、前記更新が行われた箇所を示す位置情報と当該位置情報で示される箇所における更新直前の前記元データとを対応付けて、前記指示によって示される直前の時点を識別する前記識別情報に対応付けられた前記記憶領域に格納し、
前記スナップショットからデータを読み出す旨の情報と前記識別情報と前記位置情報とを受付ける読出受付手段と、
前記読出受付手段によって受付けられた前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第１の読出判別手段と、
前記第１の読出判別手段によって格納されていないと判別された場合に、前記読出受付手段によって受付けられた前記識別情報によって識別される時点と比較して時間が経過した後の時点を示す当該識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第２の読出判別手段と、
前記第１の読出判別手段によって格納されていると判別された場合には、受付けられた前記位置情報に対応づけられた前記元データを、当該第１の読出判別手段によって格納されていると判別された前記記憶領域から読み出し、前記第２の読出判別手段によって格納されていると判別された場合には、受付けられた前記位置情報に対応付けられた前記元データを、当該第２の読出判別手段によって格納されていると判別された前記記憶領域から読み出し、当該第２の読出判別手段によって格納されていないと判別された場合には、受付けられた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出す読出手段と、
をさらに備えることを特徴とする付記１に記載のバックアップ装置。
【０２４７】
（付記３）前記読出手段は、前記第２の読出判別手段によって格納されていると判別された前記記憶領域が複数ある場合に、前記読出受付手段によって受付けられた前記識別情報によって識別される時点に最も近い時点を識別する前記識別情報に対応付けられた当該記憶領域から、受付けられた前記位置情報に対応付けられた前記元データを読み出すことを特徴とする付記２に記載のバックアップ装置。
【０２４８】
（付記４）前記スナップショットに変更を行う旨を示す情報、当該変更を行うスナップショットが格納された前記記憶領域を示す識別情報、および、当該変更を行う箇所を示す位置情報を受付ける変更受付手段と、
前記変更受付手段によって受付けられた前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第１の変更判別手段と、
前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して前の時点を示す前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第２の変更判別手段と、
前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して時間が経過した後の時点を示す前記識別情報に対応付けられた前記記憶領域に、受付けられた前記位置情報に対応付けられた前記元データが格納されているかを判別する第３の変更判別手段と、
前記第２の変更判別手段によって格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、当該第２の変更判別手段によって格納されていないと判別された前記記憶領域に、
前記第１の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、受付けられた前記識別情報に対応付けられた前記記憶領域から読み出し、
前記第１の変更判別手段によって格納されていないと判別され、かつ、前記第３の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、当該第３の変更判別手段によって格納されていると判別された前記記憶領域から読み出し、
前記第１の変更判別手段によって格納されていないと判別され、かつ、前記第３の変更判別手段によって格納されていないと判別された際には、受付けた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出し、
読み出したデータを当該位置情報と対応付けて格納する第１の変更前格納手段と、
前記第１の変更判別手段によって格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、受付けられた前記識別情報に対応付けられた前記記憶領域に、
前記第３の変更判別手段によって格納されていると判別された際には、受付けられた前記位置情報に対応付けられた前記元データを、当該第３の変更判別手段によって格納されていると判別された前記記憶領域から読み出し、
前記第３の変更判別手段によって格納されていないと判別された際には、受付けた前記位置情報によって示される箇所におけるデータを、現時点における前記元データから読み出し、
読み出したデータを当該位置情報と対応付けて格納する第２の変更前格納手段と、
をさらに備えることを特徴とする付記１〜付記３のいずれか一つに記載のバックアップ装置。
【０２４９】
（付記５）前記第１の変更前格納手段は、前記変更受付手段によって受付けられた前記識別情報によって識別される時点と比較して前の時点を示す前記識別情報が複数ある場合に、受付けられた当該識別情報によって識別される時点に最も近い時点を識別する当該識別情報である直近識別情報に対応付けられた前記記憶領域に格納されていないと判別された場合に、受付けられた前記位置情報によって示される箇所に対して変更が実行される前に、当該直近識別情報に対応付けられた前記記憶領域に格納し、
前記第２の変更前格納手段は、前記第３の変更判別手段によって格納されていると判別された前記記憶領域が複数ある場合に、当該複数ある記憶領域の内、前記直近識別情報に対応付けられた当該記憶領域から、受付けられた前記位置情報に対応付けられた前記元データを読み出すことを特徴とする付記４に記載のバックアップ装置。
【０２５０】
（付記６）前記割り当て手段によって割り当てられた前記記憶領域毎に、当該記憶領域それぞれの空き容量を監視する監視手段と、
前記空き容量が所定の閾値以下になったという監視結果が前記監視手段によって得られた場合に、監視結果が得られた前記記憶領域に対応付けられた前記識別情報に対応付けて、新たに記憶領域を追加する追加手段と、
をさらに備えたことを特徴とする付記１〜付記５のいずれか一つに記載のバックアップ装置。
【０２５１】
（付記７）前記追加手段によって前記記憶領域が前記識別情報に対応付けて追加される場合に、当該識別情報によって識別される時点と当該時点と最も近い時点との間における時間間隔、および／または、当該識別情報に対応付けられた前記記憶領域にデータを格納してから経過した経過時間に対する当該記憶領域に格納したデータの容量から、追加する前記記憶領域の容量を決定する容量決定手段をさらに備え、
前記追加手段は、前記容量決定手段によって決定された容量に従って、新たに記憶領域を追加することを特徴とする付記６に記載のバックアップ装置。
【０２５２】
（付記８）前記バックアップ装置は、所定の上限容量を有する複数の記憶媒体から構成される記憶装置を備え、当該記憶媒体各々は、それぞれ一意に識別されるものであって、
前記追加手段は、前記空き容量が所定の閾値以下になったという監視結果が前記監視手段によって得られた場合に、前記記憶媒体から、新たに前記記憶領域を追加し、
前記記憶媒体ごとに、前記追加手段によって追加された前記記憶領域の容量の合計を示す使用容量を記憶する容量テーブルを管理する管理手段と、
前記管理手段によって管理される前記容量テーブルに記憶された前記記憶媒体ごとの前記使用容量が当該記憶媒体各々の所定の上限容量において占める割合を示す使用率を、当該記憶媒体各々について算出する算出手段と、
前記算出手段によって算出された前記使用率の内、最も少ない当該使用率を示した前記記憶媒体から、前記追加手段によって追加される前記記憶領域を決定する決定手段と、
をさらに備えたことを特徴とする付記６または付記７に記載のバックアップ装置。
【０２５３】
（付記９）バックアップ対象となる元データについて、バックアップを実行する時点における元データを示すスナップショットを、当該バックアップを実行する時点各々について作成するバックアップ方法であって、
前記バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる割り当てステップと、
前記指示によって示される時点より後に前記元データが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として前記割り当てステップによって割り当てられた前記記憶領域に格納されているかを確認する確認ステップと、
前記確認ステップによって格納されていないと確認されると、前記更新が行われた箇所に対応する更新直前の元データを、前記最新のスナップショットを格納する記憶領域にのみ格納する格納ステップと、
を含んだことを特徴とするバックアップ方法。
【０２５４】
（付記１０）バックアップ対象となる元データについて、バックアップを実行する時点における元データを示すスナップショットを、当該バックアップを実行する時点各々について作成するバックアップ方法をコンピュータに実行させるバックアッププログラムであって、
前記バックアップを実行する指示を受付けると、当該指示によって示される時点について作成されるスナップショットを格納する記憶領域を、当該指示によって示される時点それぞれに割り当てる割り当て手順と、
前記指示によって示される時点より後に前記元データが更新されると、当該指示によって示される直前の時点における当該更新が行われた箇所に対応する元データが、当該直前の時点について作成される最新のスナップショットを格納する記憶領域として前記割り当て手順によって割り当てられた前記記憶領域に格納されているかを確認する確認手順と、
前記確認手順によって格納されていないと確認されると、前記更新が行われた箇所に対応する更新直前の元データを、前記最新のスナップショットを格納する記憶領域にのみ格納する格納手順と、
をコンピュータに実行させることを特徴とするバックアッププログラム。
【図面の簡単な説明】
【０２５５】
【図１】前提技術を説明するための図である。
【図２】前提技術を説明するための図である。
【図３】実施例１に係るバックアップ装置の概要および特長を説明するための図である。
【図４】実施例１に係るバックアップ装置の構成を説明するためのブロック図である。
【図５】実施例１におけるＤｉｓｋを説明するための図である。
【図６】実施例１におけるビットマップテーブルを説明するための図である。
【図７】実施例１における世代管理テーブルを説明するための図である。
【図８】実施例１におけるＳＤＶ管理テーブルを説明するための図である。
【図９】実施例１における制御部を説明するための図である。
【図１０】実施例１における格納部を説明するための図である。
【図１１】実施例１における読出部を説明するための図である。
【図１２】実施例１における変更前格納部を説明するための図である。
【図１３】実施例１における変更前格納部による格納パターンの一例を説明するための図である。
【図１４】実施例１における変更前格納部による格納パターンの一例を説明するための図である。
【図１５】実施例１に係るバックアップ装置による割り当て処理の一例を説明するためのフローチャートである。
【図１６】実施例１に係るバックアップ装置による格納処理の一例を説明するためのフローチャートである。
【図１７】実施例１に係るバックアップ装置による読出し処理の一例を説明するためのフローチャートである。
【図１８】実施例１に係るバックアップ装置による変更前格納処理の一例を説明するためのフローチャートである。
【図１９】実施例２に係るバックアップ装置の特長を説明するための図である。
【図２０】実施例２に係るバックアップ装置の特長を説明するための図である。
【図２１】実施例２におけるＳＤＶ管理テーブルを説明するための図である。
【図２２】実施例２における解像度決定用テーブルを説明するための図である。
【図２３】実施例２における負荷分散用テーブルを説明するための図である。
【図２４】実施例２に係るバックアップ装置による仮想ボリューム追加処理を説明するためのフローチャートである。
【図２５】実施例２に係るバックアップ装置による格納処理を説明するためのフローチャートである。
【図２６】実施例１に係るバックアップ装置のプログラムを説明するための図である。
【図２７】従来のＳｎａｐＯＰＣを説明するための図である。
【符号の説明】
【０２５６】
１０  Ｈｏｓｔ１０
２０  バックアップ装置
１００  ＣＡ
２００  Ｄｉｓｋ
２０１  スナップショット記憶部
２０２  論理―物理変換テーブル
３００  ＣＭ
３１０  ＤＡ
３２０  記憶部
３２１  ビットマップテーブル
３２２  世代管理テーブル
３２３  ＳＤＶ管理テーブル
３３０  制御部
３３１  割り当て部
３３２  確認部
３３３  格納部
３３４  読出受付部
３３５  読出判別部
３３６  読出部
３３７  変更受付部
３３８  変更判別部
３３９  変更前格納部
【図１】
0005228466.tif 000002
【図２】
0005228466.tif 000003
【図３】
0005228466.tif 000004
【図４】
0005228466.tif 000005
【図５】
0005228466.tif 000006
【図６】
0005228466.tif 000007
【図７】
0005228466.tif 000008
【図８】
0005228466.tif 000009
【図９】
0005228466.tif 000010
【図１０】
0005228466.tif 000011
【図１１】
0005228466.tif 000012
【図１２】
0005228466.tif 000013
【図１３】
0005228466.tif 000014
【図１４】
0005228466.tif 000015
【図１５】
0005228466.tif 000016
【図１６】
0005228466.tif 000017
【図１７】
0005228466.tif 000018
【図１８】
0005228466.tif 000019
【図１９】
0005228466.tif 000020
【図２０】
0005228466.tif 000021
【図２１】
0005228466.tif 000022
【図２２】
0005228466.tif 000023
【図２３】
0005228466.tif 000024
【図２４】
0005228466.tif 000025
【図２５】
0005228466.tif 000026
【図２６】
0005228466.tif 000027
【図２７】
0005228466.tif 000028