(57)【要約】【課題】リストアに要する時間を最適化できるストレージ装置、リストア方法およびリストアプログラムの提供。【解決手段】リストア実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手段と、ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データをリストア世代のデータとして抽出する抽出手段と、抽出手段で抽出した更新前データにより、当該更新前データが記憶されていたソースボリュームの管理領域に現在記憶されているデータを更新する更新手段とを有する。【選択図】        図１
2010140065.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置であって、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手段と、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手段と、
リストア実行指示を前記ホスト装置から受け付ける受付手段と、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手段と、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手段と、
前記抽出手段で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手段と
を有することを特徴とするストレージ装置。
【請求項２】
前記抽出手段は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手段と、
前記更新情報を、前記判定手段により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手段と
を有することを特徴とする請求項１に記載のストレージ装置。
【請求項４】
ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストア方法であって、
前記ストレージ装置が、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップステップと、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成ステップと、
リストア実行指示を前記ホスト装置から受け付ける受付ステップと、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成ステップと、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出ステップと、
前記抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新ステップと
を含むことを特徴とするリストア方法。
【請求項５】
前記ストレージ装置が、
前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定ステップと、
前記更新情報を、前記判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成ステップと
をさらに含むこと特徴とする請求項４に記載のリストア方法。
【請求項６】
ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストアプログラムであって、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手順と、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手順と、
リストア実行指示を前記ホスト装置から受け付ける受付手順と、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手順と、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手順と、
前記抽出手順で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手順と
をコンピュータに実行させることを特徴とするリストアプログラム。
【請求項７】
前記抽出手順は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする請求項６に記載のリストアプログラム。
【請求項８】
前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手順と、
前記更新情報を、前記判定手順により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手順と
をさらにコンピュータに実行させることを特徴とする請求項６に記載のリストアプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ストレージ装置、リストア方法およびリストアプログラムに関し、特に、リストアに要する時間を最適化できるストレージ装置、リストア方法およびリストアプログラムに関するものである。
【背景技術】
【０００２】
従来、ストレージ装置におけるデータのバックアップ手法の一つとして、ＳｎａｐＯＰＣ(Snapshot One Point Copy)が知られている。ＳｎａｐＯＰＣとは、バックアップデータを作成する際、コピー元ボリュームのデータのうち、更新された部分のみをバックアップする手法である。
【０００３】
さらに、近年、ＳｎａｐＯＰＣの拡張機能として、バックアップデータを世代ごとに作成するＳｎａｐＯＰＣ＋という手法が提案されている。具体的には、ＳｎａｐＯＰＣ＋では、バックアップボリュームであるSnap Data Volume（以下、ＳＤＶとする。）を世代ごと（例えば、曜日ごと）に作成し、このＳＤＶに対して各世代間の差分データのみをコピーする。
【０００４】
例えば、ＳｎａｐＯＰＣ＋を実装するストレージ装置は、図１９に示すように、コピー元であるソースボリュームのバックアップボリュームとして、月曜日、火曜日、水曜日のＳＤＶをそれぞれ月曜日、火曜日、水曜日に作成する。このとき、月曜日のＳＤＶには月曜日からのデータの更新部分のみが記憶され、火曜日のＳＤＶには火曜日からのデータの更新部分のみが記憶される。また、水曜日のＳＤＶには水曜日からのデータの更新部分のみが記憶される。
【０００５】
ところで、このようなストレージ装置において、コピー元ボリュームの現在の状態を任意の世代の状態へリストアする場合は、先ず、図２０に示すように、このストレージ装置に接続するホスト装置３からリストアの実行指示がなされる。ここでは、コピー元の現在の状態を火曜日の状態に戻す旨の指示がなされたとする。
【０００６】
このリストア実行指示を受けたストレージ装置は、コピー元であるソースボリュームに記憶されたデータ（現時点のデータ）と、火曜日のＳＤＶ及び水曜日のＳＤＶにそれぞれ記憶された差分データとに基づいて、火曜日の時点におけるデータの状態を復元する。そして、ホスト装置３は、この復元されたデータを読み出すとともに、当該読み出したデータでソースボリュームを更新する。これにより、コピー元の現在の状態を火曜日の時点におけるデータにリストアすることができる（例えば、特許文献１参照。）。
【０００７】
【特許文献１】特開２００６−１０７１６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、図２０に示すように、ホスト装置３は、実際のボリュームサイズとは異なり、各世代のバックアップボリュームに当該世代の全てのデータが記憶されているとしか認識できない。そのため、ホスト装置３を介してリストアを実行する場合、更新部分のみを書き換えるといった処理ができず、上記のようにコピー元のデータの全面的な書き換えが行われる。したがって、更新されていない部分においても書き換えが行われるため、リストアに無駄な時間がかかるおそれがある。また、データの読み出し処理や書き出し処理によりホスト装置に負荷がかかる。
【０００９】
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、リストアに要する時間を最適化できるストレージ装置、リストア方法およびリストアプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本件に開示するストレージ装置は、ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置であって、前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手段と、前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手段と、リストア実行指示を前記ホスト装置から受け付ける受付手段と、前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手段と、前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手段と、前記抽出手段で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手段とを有する。
【発明の効果】
【００１１】
本件に開示するストレージ装置、リストア方法およびリストアプログラムによれば、リストアに要する時間を最適化できるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、本件に開示するストレージ装置、リストア方法およびリストアプログラムにかかる実施例について詳細に説明する。
【実施例１】
【００１３】
まず、本実施例にかかるデータのバックアップ方法及びリストア方法について、図面を参照して説明する。図１は、実施例１にかかるバックアップ方法及びリストア方法の概要を説明するための図である。
【００１４】
本実施例にかかるストレージ装置は、データバックアップ機能として、ＳｎａｐＯＰＣをベースとしてバックアップデータの世代管理を実現するＳｎａｐＯＰＣ＋を実装する。ここで、ＳｎａｐＯＰＣとは、データのバックアップを作成する際、コピー元ボリュームのデータのうち、更新された部分のみをバックアップする手法である。
【００１５】
例えば、図１に示すように、コピー元ボリュームであるソースボリューム３１０に対して、ＳｎａｐＯＰＣ＋によるバックアップが曜日ごとに行われた場合、各曜日（ここでは、月曜日から水曜日）に対応するＳＤＶ(Snap Data Volume)３２０ａ〜３２０ｃが作成される。
【００１６】
具体的には、ストレージ装置は、月曜日の時点において、ソースボリューム３１０に記憶されたデータのうち、月曜日の時点から更新された部分のみを差分データとしてコピーし、月曜日用のＳＤＶ３２０ａに記憶する。同様に、ストレージ装置は、火曜日の時点において、火曜日からの更新部分のみを差分データとして火曜日用のＳＤＶ３２０ｂに記憶し、水曜日の時点において、水曜日からの更新部分のみを差分データとして水曜日用のＳＤＶ３２０ｃに記憶する。これにより、各ＳＤＶ３２０ａ〜３２０ｃには、ソースボリューム３１０に記憶されたデータのうち、前世代からの更新部分のみが差分データとして記憶される。
【００１７】
なお、ＳｎａｐＯＰＣ＋によるバックアップ処理の開始前においては、ホスト装置により世代設定（世代数や世代の切替え間隔等の設定）が行われる。そして、ストレージ装置は、この世代設定に従って各世代のＳＤＶ３２０ａ〜３２０ｃを予め用意する。図１においては、世代数は３（月曜日〜水曜日）であり、世代切替え間隔は一日である。
【００１８】
続いて、ＳｎａｐＯＰＣ＋によるバックアップ処理を開始すると、ストレージ装置は、ソースボリューム３１０に対して更新（書き込み）がなされると、更新データを直ぐに最初のＳＤＶ３２０（ここでは、月曜日のＳＤＶ３２０ａ）へバックアップする。そして、ソースボリューム３１０に対して次の更新がなされると、更新データを引き続き月曜日のＳＤＶ３２０ａへバックアップする。
【００１９】
そして、バックアップ処理の開始から世代切替え間隔が経過すると、ストレージ装置は、自動的に次のＳＤＶ３２０（ここでは、火曜日のＳＤＶ３２０ｂ）へ切り替え、このＳＤＶ３２０ｂへのバックアップを次の世代切替え間隔に達するまで続ける。このようにして、ストレージ装置は、世代切替え間隔毎にＳＤＶ３２０を切替えてバックアップ処理を行う。なお、最後のＳＤＶ３２０（ここでは、水曜日のＳＤＶ３２０ｃ）へのバックアップ中に世代切替え間隔に達した場合、ストレージ装置は、最初のＳＤＶ３２０へバックアップを行う。
【００２０】
また、本実施例にかかるストレージ装置は、ソースボリューム３１０の状態を任意の世代の状態にリストアする場合、当該リストアの対象となる世代であるリストア世代から最新世代までの各ＳＤＶ３２０に記憶されたデータに基づき、リストア処理を実行する。例えば、水曜日の時点において、ソースボリューム３１０の状態を火曜日の状態にリストアする場合、ストレージ装置は、火曜日用のＳＤＶ３２０ｂに格納された差分データ及び水曜日用のＳＤＶ３２０ｃに格納された差分データに基づきリストア処理を実行する。ここで、本実施例にかかるストレージ装置は、現在（木曜日）のソースボリューム３１０に記憶されているデータのうち、火曜日の時点から更新された部分のみを書き換える。これにより、リストア処理に要する時間を最適化できる。
【００２１】
続いて、本実施例にかかるストレージ装置の概要について、図面を参照して説明する。図２は、実施例１にかかるストレージ装置の構成を説明するためのブロック図である。
なお、本実施例においてストレージ装置は、ハードディスク装置とする。ただし、本実施例にかかるストレージ装置は、ハードディスク装置に限らず、熱磁気ディスク装置や半導体不揮発メモリのような他のストレージ装置であってもよい。
【００２２】
図２示すように、本実施例にかかるストレージ装置２０は、ＣＡ(Channel Adapter)１００と、ＣＭ(Centralized Module)２００と、Ｄｉｓｋ３００とを有し、ＣＡ１００を介してホスト装置１０と接続している。
【００２３】
ホスト装置１０は、オペレータによって使用される装置であり、例えば、このストレージ装置２０を管理するユーザによって使用されるコンピュータ端末などが該当し、ＣＡ１００を経由して、ストレージ装置２０にバックアップやリストアの実行指示を送信する。
【００２４】
ＣＡ１００は、ホスト装置１０とのＩ／Ｆ制御部であり、ホスト装置１０との間における情報の送受信を制御する。具体的には、ホスト装置１０から、バックアップやリストアの実行指示を受信したり、当該指示に対する応答をホスト装置１０に送信したりする。このＣＡ１００は、ソースボリューム３１０に記憶された元データに対するリストアの実行指示をホスト装置１０から受け付ける受付手段として機能する。
【００２５】
Ｄｉｓｋ３００は、バックアップ処理やリストア処理に関するデータを記憶する記憶媒体であり、特に、ソースボリューム３１０及び曜日ごとのＳＤＶ３２０ａ〜３２０ｃを記憶する。ソースボリューム３１０は、ホスト装置１０によりデータの読み出しや書き込みが行われる業務ボリュームである。ＳＤＶ３２０は、ある曜日におけるソースボリューム３１０のバックアップデータを格納するバックアップボリュームである。
【００２６】
ＣＭ２００は、バックアップ処理やリストア処理を実行する処理部であり、制御部２１０と、記憶部２２０と、ＤＡ２３０(Disk Adapter)とを備える。なお、ストレージ装置２０は、一つまたは複数のＣＭ２００を備え、各ＣＭ２００は、一つまたは複数のＤｉｓｋ３００と対応する。各ＣＭ２００は、対応するＤｉｓｋ３００に記憶されているＳＤＶ３２０について処理を行う。
【００２７】
制御部２１０は、ストレージ装置２０のうち、対応するＣＭ２００やＣＡ１００の動作を制御する。この制御部２１０は、バックアップ部２１１と、更新情報生成部２１２と、抽出部２１３と、更新部２１４とを備える。
【００２８】
バックアップ部２１１は、バックアップ手段として機能し、ソースボリューム３１０に記憶されている元データについて、前世代からの更新部分における更新前データを、現在の世代に対応するＳＤＶ３２０にバックアップする。また、バックアップ部２１１は、バックアップ情報生成手段として機能し、バックアップが行われた各世代について、ソースボリューム３１０に割り当てられた複数の管理領域ごとに、元データがバックアップされたか否かを示すバックアップ情報を生成する。以下に、このバックアップ部２１１のバックアップ手段およびバックアップ情報生成手段について、図面を用いて詳細に説明する。図３−１は月曜日のＳＤＶを作成する様子を説明するための図、図３−２は火曜日のＳＤＶを作成する様子を説明するための図、図３−３は水曜日のＳＤＶを作成する様子を説明するための図である。
【００２９】
図３−１に示すように、ソースボリューム３１０には、３つの管理領域３１１〜３１３が割り当てられており、バックアップ部２１１は、これら管理領域３１１〜３１３ごとに、元データがバックアップされたか否かを管理する。例えば、図３−１に示すように、月曜日において、管理領域３１１にあるデータＡがデータＤに更新された場合、バックアップ部２１１は、当該更新の際に更新前のデータであるデータＡをコピーし、月曜日用のＳＤＶ３２０ａの所定の領域３２１ａに記憶する。また、管理領域３１３にあるデータＣがデータＥに更新された場合、バックアップ部２１１は、当該更新の際にデータＣをコピーし、月曜日用のＳＤＶ３２０ａの所定の領域３２３ａに記憶する。
【００３０】
さらに、バックアップ部２１１は、月曜日用のバックアップ情報として、月曜日において、ソースボリューム３１０に記憶された元データがコピーされたか否かを各管理領域３１１〜３１３ごとに示すバックアップ情報４００ａを生成する。本実施例において、バックアップ情報４００ａは、図３−１に示すように、データがコピーされた場合を「０」で示し、データがコピーされていない場合を「１」で示すビットマップである。
【００３１】
具体的には、バックアップ部２１１は、データＡがデータＤに更新された場合は、バックアップ情報４００ａにおける、当該データＡの属する管理領域３１１に対応する領域４１０ａの情報を「０」とする。また、同様に、データＣがデータＥに更新された場合は、バックアップ情報４００ａにおける、当該データＣの属する管理領域３１３に対応する領域４３０ａの情報を「０」とする。一方、管理領域３１２に属するデータＢは更新されていないため、バックアップ情報４００ａにおける、当該管理領域３１２に対応する領域４２０ａの情報を「１」とする。
【００３２】
同様に、図３−２に示すように、火曜日において、管理領域３１３にあるデータＥがデータＦに更新された場合、バックアップ部２１１は、当該更新の際に更新前のデータＥをコピーし、火曜日用のＳＤＶ３２０ｂの所定の領域３２３ｂに記憶する。また、バックアップ部２１１は、火曜日のバックアップ情報４００ｂにおける、データが更新された管理領域３１３に対応する領域４３０ｂの値を「０」とし、その他の領域４１０ｂ、４２０ｂの値を「１」とする。
【００３３】
同様に、図３−３に示すように、水曜日において、管理領域３１２にあるデータＢがデータＧに更新された場合、バックアップ部２１１は、当該更新の際にデータＢをコピーし、水曜日用のＳＤＶ３２０ｃの所定の領域３２２ｃに記憶する。また、バックアップ部２１１は、水曜日のバックアップ情報４００ｃにおける、データが更新された管理領域３１２に対応する領域４２０ｃの値を「０」とし、その他の領域４１０ｃ、４３０ｃの値を「１」とする。このようにして生成されたバックアップ情報４００ａ〜４００ｃは、記憶部２２０のバックアップ情報記憶領域２２１に各曜日と対応付けられて記憶される。
【００３４】
なお、本実施例にかかるストレージ装置２０は、リストア処理を行う際、ソースボリューム３１０をコピー先ボリュームとするとともに、リストア世代のＳＤＶ３２０をコピー元ボリュームとしてＯＰＣを起動することにより行う。これにより、ソースボリューム３１０をリストアするだけでなく、現時点におけるソースボリューム３１０の状態を最新世代としてバックアップすることができる。
【００３５】
更新情報生成部２１２は、更新情報生成手段として機能し、ホスト装置１０からのリストア実行指示に応じて、リストア世代から最新の世代までの各世代について、元データの更新が行われたか否かを管理領域ごとに示す更新情報を、当該世代に対応するバックアップ情報に基づきそれぞれ生成する。以下、本実施例にかかる更新情報生成部２１２による更新情報生成処理について、図面を用いて詳細に説明する。図４−１は火曜日のＳＤＶ用のビットマップを作成する様子を説明するための図、図４−２は水曜日のＳＤＶ用のビットマップを作成する様子を説明するための図である。なお、以下では、図３−１〜図３−３で示したように、月曜日から水曜日までのＳＤＶ３２０ａ〜３２０ｃが作成された場合において、ソースボリューム３１０の状態を火曜日の状態にリストアする場合について説明する。
【００３６】
ソースボリューム３１０の状態を火曜日の状態にリストアする場合、更新情報生成部２１２は、リストア世代である火曜日から最新の世代である水曜日までの更新情報を、各曜日に対応するバックアップ情報４００ｂ、４００ｃに基づきそれぞれ生成する。この際、更新情報生成部２１２は、各曜日のバックアップ情報４００の値を反転させた値を当該曜日の更新情報５００とする。
【００３７】
例えば、図４−１に示すように、火曜日の更新情報を生成する場合、更新情報生成部２１２は、管理領域３１１に対応するバックアップ情報４００ｂの領域４１０ｂの値「１」を反転させ、当該値「０」を管理領域３１１に対応する更新情報５００ｂの領域５１０ｂの値とする。同様に、更新情報生成部２１２は、管理領域３１２、３１３に対応するバックアップ情報４００ｂの領域４２０ｂ、４３０ｂの値「１」、「０」をそれぞれ反転させ、管理領域３１２、３１３に対応する更新情報５００ｂの領域５２０ｂ、５３０ｂの値「０」、「１」とする。このように、更新情報５００において、「１」は、対応するソースボリューム３１０の管理領域３１１〜３１３において、データの更新がなされたことを示し、「０」は、データの更新がなされていないことを示す。
【００３８】
また、図４−２に示すように、水曜日の更新情報を生成する場合、更新情報生成部２１２は、管理領域３１１に対応するバックアップ情報４００ｃの領域４１０ｃの値「１」を反転させ、当該値「０」を管理領域３１１に対応する更新情報５００ｃの領域５１０ｃの値とする。同様に、更新情報生成部２１２は、管理領域３１２、３１３に対応するバックアップ情報４００ｃの領域４２０ｃ、４３０ｃの値「０」、「１」をそれぞれ反転させ、管理領域３１２、３１３に対応する更新情報５００ｃの領域５２０ｃ、５３０ｃの値とする。このようにして生成された更新情報５００ａ〜５００ｃは、記憶部２２０の更新情報記憶領域２２２に各曜日と対応付けられて記憶される。
【００３９】
抽出部２１３は、抽出手段として機能し、リストア世代から最新の世代までの各世代の更新情報５００ｂ、５００ｃに基づき、ソースボリューム３１０の管理領域３１１〜３１３ごとに、各世代のＳＤＶ３２０ｂ、３２０ｃに記憶された差分データの中からリストア世代のデータに該当する差分データを抽出する。以下、本実施例にかかる抽出部２１３による抽出処理について、図面を参照して具体的に説明する。図５は、各曜日の更新情報の論理和を取る様子を示す図である。
【００４０】
抽出部２１３は、先ず、図５に示すように、リストア世代から最新の世代までの各世代の更新情報５００ｂ、５００ｃの値の論理和を各領域ごとに取る。すなわち、抽出部２１３は、管理領域３１１に対応する更新情報５００ｂ、５００ｃの領域５１０ｂ、５１０ｃの値「０」、「０」の論理和を取ることにより、論理和情報６００における管理領域３１１に対応する領域６１０の値「０」とする。同様に、抽出部２１３は、管理領域３１２に対応する更新情報５００ｂ、５００ｃの領域５２０ｂ、５２０ｃの値「０」、「１」の論理和を取ることにより、論理和情報６００における管理領域３１２に対応する領域６２０の値「１」とする。また、同様に、抽出部２１３は、管理領域３１３に対応する更新情報５００ｂ、５００ｃの領域５３０ｂ、５３０ｃの値「１」、「０」の論理和を取ることにより、論理和情報６００における管理領域３１３に対応する領域６３０の値「１」とする。
【００４１】
続いて、抽出部２１３は、論理和情報６００の各領域６１０〜６３０の値に応じて、火曜日の時点において、ソースボリューム３１０に記憶されていたデータ（差分データ）をＳＤＶ３２０から抽出する。具体的には、論理和情報６００の領域６１０のように論理和が「０」の場合、リストア世代から最新世代までの各世代において、当該管理領域３１１のデータの更新はなされなかったことを示す。そのため、抽出部２１３は、論理和が「０」の場合、当該領域６１０に対応するデータの抽出は行わない。
【００４２】
一方、論理和情報６００における領域６２０や領域６３０のように、論理和が「１」である場合、抽出部２１３は、各更新情報５００ｂ、５００ｃの値により、火曜日の時点においてソースボリューム３１０に記憶されていたデータ（差分データ）を特定する。具体的には、抽出部２１３は、各更新情報５００ｂ、５００ｃを世代の古い順に確認していく。例えば、論理和情報６００における領域６２０についての処理を行う場合（管理領域３１２に記憶されていた差分データを特定する場合）、抽出部２１３は、先ず、最も古い世代である火曜日の更新情報５００ｂの領域５２０ｂを確認する。
【００４３】
このとき、領域５２０ｂの値は「０」であり、火曜日の時点において当該領域５２０ｂに対応するソースボリューム３１０の管理領域３１２内でデータの更新が行われていないことを示している。そこで、抽出部２１３は、次に古い世代である水曜日の更新情報５００ｃの領域５２０ｃを確認する。このとき、当該領域５２０ｃの値は「１」であり、水曜日の時点において当該領域５２０ｃに対応する管理領域３１２内でデータの更新が行われたことを示しているため、抽出部２１３は、当該領域５２０ｃに対応する差分データＢをＳＤＶ３２０ｃから抽出する。
【００４４】
同様に、論理和情報６００における領域６３０についての処理を行う場合（管理領域３１３に記憶されていた差分データを特定する場合）、抽出部２１３は、先ず、最も古い世代である火曜日の更新情報５００ｂの領域５３０ｂを確認する。
【００４５】
ここで、火曜日の更新情報５００ｂの領域５３０ｂの値は「１」であり、火曜日の時点において当該領域５３０ｂに対応するソースボリューム３１０の管理領域３１３においてデータの更新が行われたことを示している。そこで、抽出部２１３は、当該領域５３０ｂに対応する差分データＥをＳＤＶ５００ｂから抽出する。なお、火曜日のＳＤＶ３２０ｂに、管理領域３１３に記憶されていたデータ（差分データ）が格納されていることが特定されたため、水曜日の更新情報５００ｃの領域５３０ｃについては、処理を行わない。
【００４６】
このように、抽出部２１３は、論理和情報６００のある領域の値が「０」である場合（すなわち、当該領域に対応するソースボリューム３１０の管理領域においてデータの更新がなされていない場合）、当該管理領域については、処理を行わない。また、抽出部２１３は、論理和情報６００のある領域の値が「１」である場合（すなわち、当該領域に対応するソースボリューム３１０の管理領域においてデータの更新がなされた場合）、当該管理領域に対応する更新情報５００の領域の値を確認する。そして、抽出部２１３は、当該管理領域に対応する各更新情報５００のうち、値が「１」であり、かつ、最も古い世代のものを、リストア世代のデータが格納されている世代の更新情報５００と判定し、当該世代のＳＤＶ３２０から該当する差分データを抽出する。この際、抽出部２１３は、更新情報５００の領域の値を確認する際、リストア世代から最新世代までの更新情報５００のうち、より世代の古い更新情報５００から順に確認するため、抽出処理を効率的に行うことができる。
【００４７】
なお、本実施例においては、上述したように、リストア世代から最新世代までの更新情報５００の論理和を取ることにより、ソースボリューム３１０の各管理領域３１１〜３１３のうち、データの更新がなされていない管理領域を特定できる。データの更新がなされていないと特定された管理領域については、対応する更新情報の領域の値を確認する必要がないため、このように論理和を取ることにより、リストア処理に要する時間をさらに最適化できる。ただし、必ずしも論理和を取る必要はない。
【００４８】
更新部２１４は、更新手段として機能し、抽出部２１３により抽出した差分データにより、当該差分データが記憶されていたソースボリューム３１０の管理領域３１１〜３１３に現在記憶されているデータを更新する。具体的には、更新部２１４は、水曜日のＳＤＶ３２０ｃから抽出したデータＢにより、管理領域３１２に現在記憶されているデータＧを更新する。また、更新部２１４は、火曜日のＳＤＶ３２０ｂから抽出したデータＥにより、管理領域３１３に現在記憶されているデータＦを更新する。ソースボリューム３１０は、現在記憶されているデータＤ、Ｇ、Ｆのうち、更新が行われたデータＧ、Ｆのみが差分データＢ、Ｅにより更新され、火曜日の状態（データＤ、Ｂ、Ｅが記憶された状態）にリストアされる。
【００４９】
記憶部２２０は、ＯＳ(Operating System)などの制御プログラム、バックアップやリストアの処理手順などを規定したプログラムおよび所要データを格納する。特に、記憶部２２０は、バックアップ情報を記憶する領域であるバックアップ情報記憶領域２２１と、更新情報を記憶する領域である更新情報記憶領域２２２とを含む。
【００５０】
ＤＡ２３０は、Ｄｉｓｋ３００とのＩ／Ｆ制御部であり、Ｄｉｓｋ３００との間において、差分データをＳＤＶ３２０に格納する場合やＳＤＶ３２０から差分データを抽出する場合等に用いられる。
【００５１】
次に、本実施例にかかるストレージ装置２０の具体的動作について、図面を用いて詳細に説明する。図６は、実施例１にかかるストレージ装置２０のリストア処理の処理手順の一例を示すフローチャートである。なお、図６においては、ストレージ装置２０が実行する処理手順のうち、ソースボリューム３１０に対するリストア処理に関連する処理手順のみを示している。
【００５２】
ストレージ装置２０の制御部２１０は、ＣＡ１００を介してホスト装置１０からリストアの実行指示を受けると、図６に示すように、先ず、更新情報生成処理を行う（ステップＳ１１）。更新情報生成処理は、リストア世代から最新の世代までのバックアップ情報に基づき、これらの世代に対応する更新情報を生成する処理である。この処理は、図７のステップＳ２１〜２４までの処理であり、後述する。なお、リストア実行指示には、リストアの対象となる世代（リストア世代）を指定する情報が含まれている。
【００５３】
続いて、制御部２１０は、差分データ抽出処理を行う（ステップＳ１２）。差分データ抽出処理は、リストア世代から最新の世代までの更新情報に基づき、ソースボリューム３１０の管理領域３１１〜３１３ごとに、各世代のＳＤＶ３２０に記憶された差分データの中からリストア世代のデータに該当する差分データを抽出する処理である。この処理は、図８のステップＳ３１〜Ｓ３７までの処理であり、後述する。
【００５４】
続いて、制御部２１０は、更新処理として、ステップＳ１２の差分データ抽出処理で抽出した差分データにより、当該差分データが記憶されていたソースボリューム３１０の管理領域に現在記憶されているデータを更新する（ステップＳ１３）。この処理を終えたとき、制御部２１０は、リストア処理に関する処理を終了する。
【００５５】
続いて、ステップＳ１１の更新情報生成処理について、図７を参照して説明する。図７は、実施例１にかかるストレージ装置２０の更新情報生成処理の処理手順の一例を示すフローチャートである。
【００５６】
図７に示すように、更新情報生成処理を開始すると、更新情報生成部２１２は、リストア世代から最新世代までの各世代のバックアップ情報４００の中から１つのバックアップ情報４００を取り出す（ステップＳ２１）。次に、更新情報生成部２１２は、取り出したバックアップ情報４００の各領域４１０〜４３０の値を反転させることにより、更新情報５００を生成し（ステップＳ２２）、生成した更新情報５００を対応する世代と関連付けて記憶部２２０の更新情報記憶領域２２２に記憶する（ステップＳ２３）。
【００５７】
ステップＳ２３の処理を終えると、更新情報生成部２１２は、リストア世代から最新世代までのバックアップ情報４００全てについて処理を行ったか否かを判定する（ステップＳ２４）。この処理において、全てのバックアップ情報４００について処理を行っていないとき（ステップＳ２４否定）、更新情報生成部２１２は、処理をステップＳ２１へ移行する。一方、全てのバックアップ情報４００について処理を行ったと判定すると（ステップＳ２４肯定）、更新情報生成部２１２は、更新情報生成処理を終了する。
【００５８】
続いて、ステップＳ１２の差分データ抽出処理について、図８を参照して説明する。図８は、実施例１にかかるストレージ装置２０の差分データ抽出処理の処理手順の一例を示すフローチャートである。
【００５９】
図８に示すように、差分データ抽出処理を開始すると、抽出部２１３は、リストア世代から最新世代までの更新情報５００の論理和を取る（ステップＳ３１）。次に、抽出部２１３は、ステップＳ３１の処理により生成した論理和情報６００の複数の領域６１０〜６３０の中から１つの領域の値を取り出す（ステップＳ３２）。次に、抽出部２１３は、ステップＳ３２において取り出した領域の値が「１」であるか否かを判定する（ステップＳ３３）。この処理において、値が「１」であると判定すると（ステップＳ３３肯定）、抽出部２１３は、処理をステップＳ３４へ移行する。
【００６０】
ステップＳ３４において、抽出部２１３は、ステップＳ３２において取り出した領域に対応するリストア世代の更新情報５００の領域の値が「１」であるか否かを判定する。この判定において、対応するリストア世代の更新情報５００の領域の値が「１」でないとき（ステップＳ３４否定）、抽出部２１３は、処理をステップＳ３５へ移行する。
【００６１】
ステップＳ３５において、抽出部２１３は、次に古い世代の更新情報５００の該当領域の値が「１」であるか否かを判定する。この処理において、次に古い世代の更新情報５００の該当領域の値が「１」でないとき（ステップＳ３５否定）、抽出部２１３は、再度ステップＳ３５の処理を行う。一方、ステップＳ３５において次に古い世代の更新情報５００の該当領域の値が「１」であると判定したとき（ステップＳ３５肯定）、あるいは、ステップＳ３４において対応するリストア世代の更新情報５００の領域の値が「１」であると判定したとき（ステップＳ３４肯定）、抽出部２１３は、処理をステップＳ３６に移行する。すなわち、抽出部２１３は、ステップＳ３２において取り出した領域に対応する各更新情報５００の領域を古い世代から順に確認していくことにより、リストア世代に対応する差分データが格納されているＳＤＶ３２０を特定する。
【００６２】
ステップＳ３６において、抽出部２１３は、ステップＳ３４又はステップＳ３５において判定された更新情報５００と同世代のＳＤＶ３２０から当該領域に対応する差分データを抽出する。ステップＳ３６の処理を終えたとき、あるいは、ステップＳ３３において、ステップＳ３２で取り出した領域の値が「１」でないとき（ステップＳ３３否定）、抽出部２１３は、論理和情報６００の全ての領域６１０〜６３０に対して処理を行ったか否かを判定する。この処理において、論理和情報６００の全ての領域６１０〜６３０に対して処理を行っていないとき（ステップＳ３７否定）、抽出部２１３は、処理をステップＳ３２に移行する。一方、論理和情報６００の全ての領域６１０〜６３０に対して処理を行ったと判定すると（ステップＳ３７肯定）、抽出部２１３は、差分データ抽出処理を終了する。
【００６３】
上述してきたように、実施例１にかかるストレージ装置２０、リストア方法によれば、ソースボリューム３１０における更新された部分のみをリストア世代のデータに置き換えることにより、リストアに要する時間を最適化することができる。また、従来のリストア方法とは異なり、ホスト装置を介することなくストレージ装置２０内だけでリストア処理を行うことができるため、ホスト装置１０への負担を軽減することができる。
【実施例２】
【００６４】
ところで、バックアップ情報４００のようなビットマップによりソースボリューム３１０に記憶されたデータがバックアップされたか否かを管理する際、１Ｂｙｔｅのデータのコピー状況を１Ｂｉｔで管理することとすると、管理するＢｉｔの容量が膨大となり、ディスク容量を圧迫してしまう。そこで、実施例１にかかるストレージ装置２０では、図９に示すように、ソースボリューム３１０に８ＫＢごとの管理領域を割り当てることで、８ＫＢのディスク容量のコピー状況をビットマップの１Ｂｉｔで管理するようにしている。
【００６５】
しなしながら、上記のように、あるまとまったディスク容量のコピー状況を１Ｂｉｔで管理した場合、差分データがＳＤＶ３２０に格納される際に、当該差分データが、ソースボリューム３１０の管理領域３１１〜３１３に対応するＳＤＶ３２０の領域の先頭からずれて格納される場合がある。この状態において、当該差分データを用いたリストア処理が実行されると、リストア後のソースボリューム３１０にコピー漏れが生じ、正常なリストアがなされないおそれがある。そこで、本実施例では、かかるコピー漏れを防止する。
【００６６】
先ず、リストア後のソースボリューム３１０にコピー漏れが生じる場合について、図面を参照して具体的に説明する。図１０は、セッションの開始アドレスがＬＢＡの先頭からずれる様子を示す図である。
【００６７】
図１０に示すように、ソースボリューム３１０には、当該ソースボリューム３１０のアドレスを示すＬＢＡ(Logical Block Address)が割り当てられている。また、各曜日のＳＤＶ３２０も同様に、当該ソースボリューム３１０のアドレスを示すＬＢＡが割り当てられている。また、８ＫＢの容量は１６ＬＢＡに相当し、ストレージ装置２０は、バックアップ情報４００によりソースボリューム３１０のデータのコピー状況を１６ＬＢＡごとに管理する。
【００６８】
ここで、月曜日の時点において、ソースボリューム３１０のＬＢＡ＝１６からＬＢＡ＝３２までの管理領域３１１に記憶されているデータＨに対して更新がなされ、月曜日のＳＤＶ３２０ａに当該データＨが差分データとして格納されたとする。このとき、図１０に示すように、差分データＨが、ＳＤＶ３２０ａのＬＢＡ＝１６の位置を先頭にして記憶された場合、管理領域３１１におけるリストア処理を行う際のセッションの開始位置であるＳＬＢＡ(Start Logical Block Address)は、ＳＤＶ３２０ａにおける領域の先頭位置（ＬＢＡ＝１６）と一致する。そのため、かかる場合、この差分データＨを用いたリストア処理を行ってもリストア後のソースボリューム３１０にコピー漏れは生じない。
【００６９】
一方、火曜日の時点において、ＬＢＡ＝４８からＬＢＡ＝６４までの管理領域３１３に記憶されているデータＩに対して更新がなされ、火曜日のＳＤＶ３２０ｂに当該データＩが差分データとして格納されたとする。このとき、図１０に示すように、差分データＩのセッション開始位置はＳＬＢＡ＝４０であり、差分データＩは、管理領域３１３に対応するＳＤＶ３２０ｂの領域の先頭位置（ＬＢＡ＝３２）からずれて格納されていることとなる。かかる場合、この差分データＩを用いたリストア処理を行うと、差分データＩのうち、ＳＤＶ３２０ｂのＬＢＡ＝３２からＬＢＡ＝４８までの領域からはみ出た部分のデータは、ソースボリューム３１０にリストアされず、コピー漏れが生じる。
【００７０】
以下に、リストア後のソースボリューム３１０にコピー漏れが生じる場合についてさらに具体的に説明する。図１１−１は月曜日のＳＤＶを作成する様子を説明するための図、図１１−２は火曜日のＳＤＶを作成する様子を説明するための図、図１１−３はデータを月曜日の状態にリストアする様子を示す図である。また、図１２−１は月曜日のＳＤＶに記憶される差分データと更新情報との対応関係を説明するための図、図１２−２は火曜日のＳＤＶに記憶される差分データと更新情報との対応関係を説明するための図である。また、図１３はリストア後のソースボリュームにおいてコピー漏れが生じた状態を説明するための図である。
【００７１】
図１１−１に示すように、ソースボリューム３１０に４つの管理領域３１１〜３１４が割り当てられており、月曜日の時点において、管理領域３１３に記憶されたデータ７００ａがデータ８００ａに更新されたとする。この場合、ストレージ装置２０のバックアップ部２１１は、ソースボリューム３１０の管理領域３１３に対応する月曜日用のＳＤＶ３２０ａの領域３２１ａに差分データ７００ａを格納する。なお、このときのバックアップ情報４００ａは、管理領域３１３に対応する領域４３０ａの値が「０」となり、その他の領域４１０ａ、４２０ａ、４４０ａの値は「１」となる。
【００７２】
また、図１１−２に示すように、火曜日の時点において、管理領域３１１に記憶されたデータ７００ｂがデータ８００ｂに更新された場合、バックアップ部２１１は、ソースボリューム３１０の管理領域３１１に対応する火曜日用のＳＤＶ３２０ｂの領域３２１ｂに差分データ７００ｂを格納する。ここで、ＳＤＶ３２０の先頭には、ＯＳの管理情報が記憶されている。そのため、差分データ７００が格納される領域３２１によっては、当該差分データを当該領域３２１の先頭から格納することができない場合がある。また、差分データ７００を格納する領域は、ストレージ装置２０を管理するソフトウェアにより決定される。ところが、このソフトウェアは、バックアップ情報４００の管理を意識せずに差分データの格納場所を指定するため、これによっても差分データ４００がＳＤＶ３２０の先頭からずれて格納される場合がある。このような理由により、差分データ７００ｂは、領域３２１ｂの先頭ではなく、当該先頭からずれた位置に記憶されることがある。
【００７３】
そして、火曜日の時点において、ソースボリューム３１０の状態を月曜日の状態にリストアする場合、先ず、更新情報生成部２１２により、月曜日の更新情報５００ａおよび火曜日の更新情報５００ｂが生成される。なお、このとき、火曜日のＳＤＶ３２０ｂの領域の区切り方は、最も古い世代（ここでは、月曜日）のＳＤＶ３２０ａの領域の区切り方に従う。そして、抽出部２１３は、この更新情報５００ａ、５００ｂに基づき、差分データ７００ａ、７００ｂの抽出を行う。
【００７４】
ここで、図１２−１に示すように、月曜日のＳＤＶ３２０ａにおいて、差分データ７００ａは、領域５３０ａの先頭から記憶されているため、すべてのデータが当該領域５３０ａ内に収まっている。そのため、抽出部２１３は、差分データ７００ａの全てを抽出することができる。一方、図１２−２に示すように、火曜日のＳＤＶ３２０ｂにおいて、差分データ７００ｂは、領域５１０ｂの先頭からずれた位置に記憶されており、当該領域５１０ｂだけでなく隣接する領域５２０ｂにも属している。しかしながら、抽出部２１３は、値が「１」を示している領域５１０ｂに格納されているデータのみを抽出するため、差分データ７００ｂのうち、領域５２０ｂに属するデータは抽出されない。
【００７５】
したがって、このような場合、リストア後のソースボリューム３１０は、図１３に示すように、管理領域３１１において、差分データ７００ｂのうち抽出されなかった部分６５０においてコピー漏れが生じる。
【００７６】
そこで、本実施例にかかるストレージ装置２０は、再構成部２１５を設けることにより、かかるコピー漏れを防止する。以下、本実施例にかかるストレージ装置２０の構成について、図面を参照して説明する。図１４は実施例２にかかるストレージ装置の構成を説明するためのブロック図、図１５は実施例２にかかる更新情報再構成方法の一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
【００７７】
図１４に示すように、本実施例にかかるストレージ装置２０は、制御部２１０に再構成部２１５を備える。再構成部２１５は、再構成手段として機能し、リストア世代から最新の世代までの各更新情報を、ソースボリューム３１０の全ての管理領域３１１〜３１４においてデータの更新が行われたことを示すように再構成する。
【００７８】
具体的には、図１５に示すように、再構成部２１５は、火曜日の更新情報５００ｂの各領域５１０ｂ〜５４０ｂの値を全て「１」とする。これにより、差分データ７００ｂが領域５１０ｂからずれた位置に記憶された場合であっても、抽出部２１３は、当該領域５１０ｂ以外の領域５２０ｂにあるデータも抽出することができる。
【００７９】
上述してきたように、実施例２にかかるストレージ装置２０、リストア方法によれば、リストア後のソースボリューム３１０のコピー漏れを防止することができる。
【実施例３】
【００８０】
実施例２では、再構成部２１５が、更新情報５００の全ての領域の値を「１」に再構成することにより、リストア後のソースボリューム３１０のコピー漏れを防止する。しかしながら、更新情報５００の全ての領域の値を「１」に再構成した場合、論理和情報６００により、ソースボリューム３１０のうちリストア世代から更新されていない領域を特定することができず、リストア処理に余分な時間がかかるおそれがある。
【００８１】
そこで、本実施例では、判定部を設けることにより、ＳＤＶ３２０の各領域のうち必要な領域の値のみを再構成することとした。以下、実施例３にかかるストレージ装置２０の構成について、図面を参照して説明する。図１６は実施例３にかかるストレージ装置の構成を説明するためのブロック図、図１７は実施例３にかかる更新情報再構成方法の一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
【００８２】
図１６に示すように、本実施例にかかるストレージ装置２０は、制御部２１０に判定部２１６と再構成部２１７とを備える。判定部２１６は、判定手段として機能し、リストア世代から最新の世代までのＳＤＶ３２０に格納された差分データが、当該バックＳＤＶ３２０における、ソースボリューム３１０のどの管理領域３１１〜３１３に対応する領域に格納されているかを判定する。また、再構成部２１７は、再構成手段として機能し、リストア世代から最新の世代までの更新情報５００を、当該更新情報５００に対応するＳＤＶ３２０における、判定部２１６により判定された領域に対応するソースボリューム３１０の管理領域においてデータの更新がなされたことを示すように再構成する。
【００８３】
具体的には、判定部２１６は、差分データのＳＬＢＡと、ＳＤＶ３２０において当該ＳＬＢＡの属する領域の先頭のＬＢＡとの間に差があるか否かを判定する。例えば、図１０に示すように、ソースボリューム３１０の管理領域３１３に記憶されていたデータＩが、火曜日のＳＤＶ３２０ｂにおけるＳＬＢＡ＝４０からＳＬＢＡ＝４８までの領域に格納されたとする。この場合、判定部２１６は、差分データＩのＳＬＢＡが属する領域（ＬＢＡ＝３２〜４８の領域）の先頭のＬＢＡ＝３２と当該ＳＬＢＡ＝４０との差であるｅｘｔＢｏｕｎｄ＝ＳＬＢＡ−ＬＢＡ＝８を算出する。
【００８４】
ここで、算出したｅｘｔＢｏｕｎｄが０であるとき、判定部２１６は、差分データが、当該差分データのＳＬＢＡが属する領域内のみに格納されていると判定する。一方、算出したｅｘｔＢｏｕｎｄが０でないとき、判定部２１６は、差分データが、当該差分データのＳＬＢＡが属する領域及び当該領域に連続する次の領域に格納されていると判定する。したがって、図１２−２に示す場合においては、判定部２１６は、差分データ７００ｂが、領域５１０ｂ及び５２０ｂに格納されていると判定する。
【００８５】
そして、再構成部２１７は、図１７に示すように、火曜日の更新情報５００ｂの各領域５１０ｂ〜５４０ｂのうち、判定部２１６により判定された領域５１０ｂ、５２０ｂの値を「１」とする。これにより、差分データ７００ｂが領域５１０ｂからずれた位置に記憶された場合であっても、抽出部２１３は、当該領域５１０ｂ以外の領域５２０ｂにあるデータも抽出することができる。
【００８６】
上述してきたように、実施例２にかかるストレージ装置２０、リストア方法によれば、リストア後のソースボリューム３１０のコピー漏れを防止することができる。しかも、判定部２１６により、再構成する必要のある領域を判定することにより、各更新情報の論理和を取ることで、ソースボリューム３１０のうちリストア世代から更新されていない領域を特定することができ、リストア処理に要する時間が長くなるのを防止できる。
【００８７】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図２１を用いて、上記実施例に示したストレージ装置２０と同様の機能を有するリストアプログラムを実行するコンピュータの一例を説明する。図１８は、リストアプログラムを実行するコンピュータを示す図である。
【００８８】
図１８に示すように、ストレージ装置２０としてのコンピュータ９００は、ＨＤＤ９１０、ＣＰＵ９２０、ＲＯＭ９３０及びＲＡＭ９４０をバス９５０で接続して構成される。
【００８９】
ＲＯＭ９３０には、上記の実施例と同様の機能を発揮するリストアプログラム、つまり、図１８に示すように、バックアッププログラム９３１、バックアップ情報生成プログラム９３２、更新情報生成プログラム９３３、抽出プログラム９３４及び更新プログラム９３５が予め記憶されている。
【００９０】
そして、ＣＰＵ９２０が、これらのプログラム９３１〜９３５をＲＯＭ９３０から読み出して実行することにより、各プログラム９３１〜９３５は、それぞれバックアッププロセス９２１、バックアップ情報生成プロセス９２２、更新情報生成プロセス９２３、抽出プロセス９２４及び更新プロセス９２５として機能する。このようにＣＰＵ９２０は、図２に示す制御部２１０に相当する。
【００９１】
なお、ＨＤＤ９１０には、プロセス９２１〜９２５によって利用される各種データが格納されている。ＣＰＵ９２０は、ＨＤＤ９１０に格納された各種データを読み出して、ＲＡＭ９４０に格納し、プロセス９２１〜９２５が、ＲＡＭ９４０に格納された各種データを利用して、更新情報生成処理などの各種処理を実行する。
【００９２】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９３】
（付記１）ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置であって、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手段と、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手段と、
リストア実行指示を前記ホスト装置から受け付ける受付手段と、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手段と、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手段と、
前記抽出手段で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手段と
を有することを特徴とするストレージ装置。
【００９４】
（付記２）前記抽出手段は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする付記１に記載のストレージ装置。
【００９５】
（付記３）前記更新情報を、前記ソースボリュームの全ての管理領域においてデータの更新が行われたことを示すように再構成する再構成手段を有することを特徴とする付記１に記載のストレージ装置。
【００９６】
（付記４）前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手段と、
前記更新情報を、前記判定手段により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手段と
を有することを特徴とする付記１に記載のストレージ装置。
【００９７】
（付記５）ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストア方法であって、
前記ストレージ装置が、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップステップと、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成ステップと、
リストア実行指示を前記ホスト装置から受け付ける受付ステップと、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成ステップと、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出ステップと、
前記抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新ステップと
を含むことを特徴とするリストア方法。
【００９８】
（付記６）前記抽出ステップは、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする付記５に記載のリストア方法。
【００９９】
（付記７）前記ストレージ装置が、前記更新情報を、前記ソースボリュームの全ての管理領域においてデータの更新が行われたことを示すように再構成する再構成手段を有することを特徴とする付記５に記載のリストア方法。
【０１００】
（付記８）前記ストレージ装置が、
前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定ステップと、
前記更新情報を、前記判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成ステップと
をさらに含むこと特徴とする付記５に記載のリストア方法。
【０１０１】
（付記９）ホスト装置によるデータの読み出し、書き込みの対象となるソースボリュームを有するストレージ装置におけるリストアプログラムであって、
前記ソースボリュームに記憶されたデータについて、前世代からの更新部分における更新前データを、現在の世代に対応するバックアップボリュームにバックアップするバックアップ手順と、
前記バックアップが行われた各世代において、前記ソースボリュームに割り当てられた複数の管理領域ごとに、当該管理領域内のデータがバックアップされたか否かを示すバックアップ情報を生成するバックアップ情報生成手順と、
リストア実行指示を前記ホスト装置から受け付ける受付手順と、
前記実行指示に応じて、リストアの対象となるリストア世代から最新の世代までの各世代において、前記ソースボリュームの管理領域ごとに、当該管理領域内のデータが更新されたか否かを示す更新情報を、当該世代に対応するバックアップ情報に基づき生成する更新情報生成手順と、
前記ソースボリュームの各管理領域について、当該管理領域内のデータが更新されたことを示す更新情報のうち最も古い世代の更新情報に基づき、当該世代のバックアップボリュームに記憶された更新前データを前記リストア世代のデータとして抽出する抽出手順と、
前記抽出手順で抽出した更新前データにより、当該更新前データが記憶されていた前記ソースボリュームの管理領域に現在記憶されているデータを更新する更新手順と
をコンピュータに実行させることを特徴とするリストアプログラム。
【０１０２】
（付記１０）前記抽出手順は、前記ソースボリュームの各管理領域について、前記更新情報が、当該管理領域内のデータが更新されたことを示すか否かを、前記リストア世代から最新の世代までの各更新情報のうち、より世代の古い更新情報から順に判定することを特徴とする付記９に記載のリストアプログラム。
【０１０３】
（付記１１）前記更新情報を、前記ソースボリュームの全ての管理領域においてデータの更新が行われたことを示すように再構成する再構成手順をさらにコンピュータに実行させることを特徴とする付記９に記載のリストアプログラム。
【０１０４】
（付記１２）前記リストア世代から最新の世代までの各世代のバックアップボリュームに格納された更新前データが、当該バックアップボリュームにおける、前記ソースボリュームのどの管理領域に対応する領域に格納されているかを判定する判定手順と、
前記更新情報を、前記判定手順により判定された領域に対応する前記ソースボリュームの管理領域においてデータの更新がなされたことを示すように再構成する再構成手順と
をさらにコンピュータに実行させることを特徴とする付記９に記載のリストアプログラム。
【図面の簡単な説明】
【０１０５】
【図１】実施例１にかかるバックアップ方法及びリストア方法の概要を説明するための図である。
【図２】実施例１にかかるストレージ装置の構成を説明するためのブロック図である。
【図３−１】月曜日のＳＤＶを作成する様子を説明するための図である。
【図３−２】火曜日のＳＤＶを作成する様子を説明するための図である。
【図３−３】水曜日のＳＤＶを作成する様子を説明するための図である。
【図４−１】火曜日のＳＤＶ用のビットマップを作成する様子を説明するための図である。
【図４−２】水曜日のＳＤＶ用のビットマップを作成する様子を説明するための図である。
【図５】各曜日の更新情報の論理和を取る様子を示す図である。
【図６】実施例１にかかるストレージ装置のリストア処理の処理手順の一例を示すフローチャートである。
【図７】実施例１にかかるストレージ装置の更新情報生成処理の処理手順の一例を示すフローチャートである。
【図８】実施例１にかかるストレージ装置の差分データ抽出処理の処理手順の一例を示すフローチャートである。
【図９】８ＫＢのデータのコピー状況を１Ｂｉｔで管理する様子を示す図である。
【図１０】セッションの開始アドレスがＬＢＡの先頭からずれる様子を示す図である。
【図１１−１】月曜日のＳＤＶを作成する様子を説明するための図である。
【図１１−２】火曜日のＳＤＶを作成する様子を説明するための図である。
【図１１−３】データを月曜日の状態にリストアする様子を示す図である。
【図１２−１】月曜日のＳＤＶに記憶される差分データと更新情報との対応関係を説明するための図である。
【図１２−２】火曜日のＳＤＶに記憶される差分データと更新情報との対応関係を説明するための図である。
【図１３】リストア後のソースボリュームにおいてコピー漏れが生じた状態を説明するための図である。
【図１４】実施例２にかかるストレージ装置の構成を説明するためのブロック図である。
【図１５】実施例２にかかる更新情報再構成方法の一例を示す図である。
【図１６】実施例３にかかるストレージ装置の構成を説明するためのブロック図である。
【図１７】実施例３にかかる更新情報再構成方法の一例を示す図である。
【図１８】リストアプログラムを実行するコンピュータを示す図である。
【図１９】ＳｎａｐＯＰＣ＋により世代ごとのバックアップデータを作成する様子を示す図である。
【図２０】従来のリストア方法を説明するための図である。
【符号の説明】
【０１０６】
１０  ホスト装置
２０  ストレージ装置
１００  ＣＡ
２００  ＣＭ
２１０  制御部
２１１  バックアップ部
２１２  更新情報生成部
２１３  抽出部
２１４  更新部
２１５、２１７  再構成部
２１６  判定部
２２０  記憶部
２３０  ＤＡ
３００  Ｄｉｓｋ
３１０  ソースボリューム
３２０  ＳＤＶ
４００  バックアップ情報
５００  更新情報
６００  論理和情報
【図１】
2010140065.tif 000003
【図２】
2010140065.tif 000004
【図３−１】
2010140065.tif 000005
【図３−２】
2010140065.tif 000006
【図３−３】
2010140065.tif 000007
【図４−１】
2010140065.tif 000008
【図４−２】
2010140065.tif 000009
【図５】
2010140065.tif 000010
【図６】
2010140065.tif 000011
【図７】
2010140065.tif 000012
【図８】
2010140065.tif 000013
【図９】
2010140065.tif 000014
【図１０】
2010140065.tif 000015
【図１１−１】
2010140065.tif 000016
【図１１−２】
2010140065.tif 000017
【図１１−３】
2010140065.tif 000018
【図１２−１】
2010140065.tif 000019
【図１２−２】
2010140065.tif 000020
【図１３】
2010140065.tif 000021
【図１４】
2010140065.tif 000022
【図１５】
2010140065.tif 000023
【図１６】
2010140065.tif 000024
【図１７】
2010140065.tif 000025
【図１８】
2010140065.tif 000026
【図１９】
2010140065.tif 000027
【図２０】
2010140065.tif 000028