(57)【要約】【課題】リストアを高速に行うことができるストレージ管理装置を提供する。【解決手段】ストレージ装置に記憶されたデータのバックアップ及びリストアを管理するストレージ管理装置において、前記フルバックアップデータに前記差分データを適用して一時リストアデータを作成し、前記差分データが適用される前の逆変換データが記録される逆変換情報を作成し、前記適用された差分データに関する変換ブロック数を変換コスト情報として記録し、前記差分バックアップリストア部は、前記変換コスト情報を参照して、前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、リストア方法を決定する。【選択図】  図１
2005301497.tif 000002
【特許請求の範囲】
【請求項１】
データが読み書きされる運用ボリュームが設定されたディスクドライブと、計算機との間でデータや制御信号を送受信するブロックデバイスインターフェースと、前記ディスクドライブとの間でデータや制御信号を送受信するディスクインターフェースと、制御プログラムが記憶されるメモリと、前記制御プログラムを実行することによって前記ディスクドライブへのデータ入出力を制御するＣＰＵと、が設けられるディスクアレイ記憶装置と、
前記運用ボリュームに記憶されたデータの全てを所定のタイミングで複写したフルバックアップデータ及び前記フルバックアップ又は差分バックアップ以後に変更されたデータである差分データによって、前記ディスクアレイ記憶装置に記憶されたデータのバックアップ及びリストアを管理するバックアップ管理装置と、を備えるストレージシステムにおいて実行されるデータのリストア方法であって、
前記フルバックアップデータに前記差分データを適用して一時リストアデータを作成し、リストア先ボリュームに格納する手順と、
前記適用された差分データに関して、前記差分データが適用される前の逆変換データが記録される逆変換テーブル、及び、各差分データのブロック数が記録される変換コストテーブルが作成されているか否かを判定する手順と、
前記適用された差分データに関する逆変換テーブル及び変換コストテーブルが作成されていなければ、適用された差分データに関する逆変換テーブルを作成し、適用された差分データに関する変換ブロック数を変換コストテーブルに記録する手順と、
差分バックアップ管理テーブルに記録されたバックアップ作成日時を参照して、目的とするリストア対象がリストアされたか否かを判定する手順と、
目的とするリストア対象がリストアされたと判定された場合に、リストア対象のバックアップ日時を記録する手順と、
目的とするリストア対象がリストアされていないと判定された場合に、次の差分データを適用して新たな一時リストアデータを作成する手順と、
前記変換コストテーブルを参照し、前記一時リストアデータに適用すべき前記逆変換データのブロック数の和を求めることによって、逆変換テーブルを適用してリストアを行う場合に変更されるブロック数を算出する手順と、
前記変換コストテーブルを参照し、前記フルバックアップデータのブロック数と、適用すべき前記差分データのブロックの総数との和を求めることによって、差分データを適用してリストアを行う場合に変更されるブロック数を算出する手順と、
前記逆変換テーブルを適用してリストアを行う場合に変更されるブロック数と、前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較する手順と、
前記逆変換テーブルを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記一時リストアデータに目的のリストア対象までに必要な前記逆変換テーブルを適用してリストアをする手順と、
前記差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアをする手順と、を含むデータのリストア方法。
【請求項２】
ストレージ装置に記憶されたデータの全てを所定のタイミングで複写したフルバックアップデータ及び前記フルバックアップ又は差分バックアップ以後に変更されたデータである差分データによって、ストレージ装置に記憶されたデータのバックアップ及びリストアを管理する制御部を有するストレージ管理装置において、
前記制御部は、
前記フルバックアップデータに前記差分データを適用して一時リストアデータを作成し、
前記差分データが適用される前の逆変換データが記録される逆変換情報を作成し、
前記適用された差分データに関する変換ブロック数を変換コスト情報として記録し、
前記変換コスト情報を参照して、前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、リストア方法を決定するストレージ管理装置。
【請求項３】
前記制御部は、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、リストア方法を決定する請求項２に記載のストレージ管理装置。
【請求項４】
前記制御部は、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記一時リストアデータに目的のリストア対象までに必要な前記逆変換情報を適用してリストアをし、
前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアをする請求項３に記載のストレージ管理装置。
【請求項５】
前記制御部は、連続する複数世代の差分データを用いて累積差分データを作成し、
前記作成された累積差分データのブロック数を変換コスト情報に記録し、
前記変換コスト情報を参照し、前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、
前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに前記累積差分データを適用し、更に目的のリストア対象までに必要な前記逆変換情報を適用してリストアをし、
前記フルバックアップデータに差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアをする請求項２に記載のストレージ管理装置。
【請求項６】
前記制御部は、
ストレージ管理装置のリソースに余裕があるときに、前記適用された差分データに対する逆変換情報を作成し、
ストレージ管理装置のリソースに余裕があるときに、前記適用された差分データに関する変換ブロック数を変換コスト情報に記録する請求項２に記載のストレージ管理装置。
【請求項７】
ストレージ装置に記憶されたデータの全てを所定のタイミングで複写したフルバックアップデータ及び前記フルバックアップ又は差分バックアップ以後に変更されたデータである差分データによって、ストレージ装置に記憶されたデータのバックアップ及びリストアを管理する制御部を有するストレージ管理装置において実行されるデータのリストア方法であって、
前記フルバックアップデータに前記差分データを適用して一時リストアデータを作成する第１手順と、
前記差分データが適用される前の逆変換データを記録して逆変換情報を作成する第２手順と、
前記適用された差分データに関する変換ブロック数を変換コスト情報に記録する第３手順と、
前記変換コスト情報を参照し、前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記差分データを適用してリストアを行う場合に変更されるブロック数を算出する第４手順と、
前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較してリストア方法を決定する第５手順と、
前記決定された方法によってリストアを行う第６手順と、を含むリストア方法。
【請求項８】
前記第４手順は、前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記第５手順は、前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較してリストア方法を決定する請求項７に記載のリストア方法。
【請求項９】
前記第６手順は、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記一時リストアデータに目的のリストア対象までに必要な前記逆変換情報を適用してリストアし、
前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアをする請求項８に記載のリストア方法。
【請求項１０】
前記第１手順は、連続する複数世代の差分データを用いて累積差分データを作成し、
前記第３手順は、前記作成された累積差分データのブロック数を変換コスト情報に記録し、
前記第４手順は、前記変換コスト情報を参照し、前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記第５手順は、前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較しリストア方法を決定し、
前記第６手順は、
前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに前記累積差分データを適用し、更に目的のリストア対象までに必要な前記逆変換情報を適用してリストアをし、
前記フルバックアップデータに差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアを行う請求項７に記載のリストア方法。
【請求項１１】
ストレージ管理装置のリソースに余裕があるときに、前記適用された差分データに関する逆変換情報を作成する第２手順を実行し、前記適用された差分データに関する変換ブロック数を変換コスト情報に記録する第３手順を実行する請求項７に記載のリストア方法。
【請求項１２】
ストレージ装置に記憶されたデータの全てを所定のタイミングで複写したフルバックアップデータ及び前記フルバックアップ又は差分バックアップ以後に変更されたデータである差分データによって、ストレージ装置に記憶されたデータのバックアップ及びリストアを管理する制御部を有するストレージ管理装置に以下の手順を実行させるプログラムであって、
前記フルバックアップデータに前記差分データを適用して一時リストアデータを作成する第１手順と、
前記差分データが適用される前の逆変換データを記録して逆変換情報を作成する第２手順と、
前記適用された差分データに関する変換ブロック数を変換コスト情報に記録する第３手順と、
前記変換コスト情報を参照し、前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記差分データを適用してリストアを行う場合に変更されるブロック数を算出する第４手順と、
前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較してリストア方法を決定する第５手順と、
前記決定された方法によってリストアを行う第６手順と、を含むプログラム。
【請求項１３】
前記第４手順は、前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記第５手順は、前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較してリストア方法を決定する請求項１２に記載のプログラム。
【請求項１４】
前記第６手順は、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記一時リストアデータに目的のリストア対象までに必要な前記逆変換情報を適用してリストアし、
前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアをする請求項１３に記載のプログラム。
【請求項１５】
前記第１手順は、連続する複数世代の差分データを用いて累積差分データを作成し、
前記第３手順は、前記作成された累積差分データのブロック数を変換コスト情報に記録し、
前記第４手順は、前記変換コスト情報を参照し、前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記第５手順は、前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較しリストア方法を決定し、
前記第６手順は、
前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに前記累積差分データを適用し、更に目的のリストア対象までに必要な前記逆変換情報を適用してリストアをし、
前記フルバックアップデータに差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアを行う請求項１２に記載のプログラム。
【請求項１６】
ストレージ管理装置のリソースに余裕があるときに、前記適用された差分データに関する逆変換情報を作成する第２手順を実行し、前記適用された差分データに関する変換ブロック数を変換コスト情報に記録する第３手順を実行する請求項１２に記載のプログラム。
【請求項１７】
データが読み書きされる運用ボリュームが設定されたディスクドライブと、計算機との間でデータや制御信号を送受信するブロックデバイスインターフェースと、前記ディスクドライブとの間でデータや制御信号を送受信するディスクインターフェースと、制御プログラムを実行することによって前記ディスクドライブへのデータ入出力を制御するＣＰＵと、前記制御プログラムが記憶されるメモリと、が設けられるストレージ装置と、
前記ストレージ装置に記憶されたデータの全てを所定のタイミングで複写したフルバックアップデータ及び前記フルバックアップ又は差分バックアップ以後に変更されたデータである差分データによって、前記ストレージ装置に記憶されたデータのバックアップ及びリストアを管理する制御部を有するストレージ管理装置と、を備えるストレージシステムにおいて、
前記ストレージ管理装置の制御部は、
前記フルバックアップデータに前記差分データを適用して一時リストアデータを作成し、
前記差分データが適用される前の逆変換データが記録される逆変換情報を作成し、
前記適用された差分データに関する変換ブロック数を変換コスト情報として記録し、
前記差分バックアップリストア部は、前記変換コスト情報を参照して、前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、リストア方法を決定するストレージシステム。
【請求項１８】
前記ストレージ管理装置の制御部は、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、リストア方法を決定する請求項１７に記載のストレージシステム。
【請求項１９】
前記ストレージ管理装置の制御部は、
前記一時リストアデータに前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記一時リストアデータに目的のリストア対象までに必要な前記逆変換情報を適用してリストアをし、
前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアをする請求項１７に記載のストレージシステム。
【請求項２０】
前記ストレージ管理装置の制御部は、連続する複数世代の差分データを用いて累積差分データを作成し、
前記変換コスト情報作成部は、前記作成された累積差分データのブロック数を変換コスト情報に記録し、
前記変換コスト情報を参照し、前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数、及び、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数を算出し、
前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記フルバックアップデータに前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、
前記フルバックアップデータに前記累積差分データを適用した後に前記逆変換情報を適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに前記累積差分データを適用し、更に目的のリストア対象までに必要な前記逆変換情報を適用してリストアをし、
前記フルバックアップデータに差分データを適用してリストアを行う場合に変更されるブロック数の方が少なければ、前記フルバックアップデータに目的のリストア対象までに必要な前記差分データを順に適用してリストアをする請求項１７に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バックアップされたデータのリストア方法に関し、特に、差分バックアップにおけるリストア方法に関する。
【背景技術】
【０００２】
一般的に情報システムでは障害発生時の迅速な復旧を目的としてデータをバックアップする。利用者は、情報システムに障害が発生した場合に、特定の時点のバックアップデータをリストアして、情報システムを障害発生前の状態に復旧させる。
【０００３】
大容量ディスクボリュームのバックアップは、ブロックレベルの差分バックアップが有効である。具体的には、このような差分バックアップとしては、バックアップ対象のデータが所定サイズのブロック単位にアクセスされる記憶装置に格納され、上記ブロック毎に各ブロック内のデータを更新した最新のバックアップ世代が更新最新世代管理機構により記録される差分マップ情報と、指定されたバックアップ世代に更新された上記記憶装置のブロックのデータを上記差分マップ情報に基づいて入力し、該ブロックのデータ、該ブロックの上記記憶装置における位置、及び、該ブロックが更新された上記バックアップ世代を、バックアップ装置にバックアップデータとして格納する差分管理機構と、を備えることによって、ディスク上の更新されたブロックのみのバックアップを複数世代にわたりとることができ、バックアップ作業の効率化、高信頼化を実現する差分バックアップ方式が提案されている（例えば、特許文献１参照。）。
【０００４】
また、共有ディスクのバックアップ時に、キャッシュ制御部は、各計算機のライトキャッシュを共有ディスクに反映させ、コピー管理部は、共有ディスクのデータを一括してバックアップ媒体にコピーする。ブロック管理部及びグループ管理部は、バックアップの対象となるブロックをリストアップし、ログ管理部は、各計算機のログをログ媒体に保存することによって、データを効率的にバックアップするものが提案されている（例えば、特許文献２参照。）。
【特許文献１】特開平９−１０１９１２号公報
【特許文献２】特開２００１−２９０６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような差分バックアップでは、リストア時の複数差分データの適用を自動化することで、リストア時の煩雑さを緩和している。しかし、リストアに係る時間的な問題は解決されていない。すなわち、複数回のリストアを繰り返して、リストアすべきデータを探すときにリストアに要する時間が問題となっている。
【０００６】
また、全世代分の差分データのマージ結果を保持し続けるのは記憶容量的に現実的でない。このため、リストアでは、複数の差分データを保持せざるを得ない、この場合、ある世代のデータをリストアした後に、それ以前の世代のデータが必要となる場合、一時リストアデータを破棄して、フルバックアップから一つ以上の差分データを適用する。結果としてリストアすべきデータの探索に時間がかかることになる。
【０００７】
本発明は、リストアを高速に行うことができるストレージ管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、各差分データを適用する際、逆変換を行う逆変換情報を作成し、フルバックアップのブロック数及び差分データの適用によって変更されるブロック数を記録する変換コスト情報を作成する。
【０００９】
すなわち、ストレージ装置に記憶されたデータの全てを所定のタイミングで複写したフルバックアップデータ及び前記フルバックアップ又は差分バックアップ以後に変更されたデータである差分データによって、ストレージ装置に記憶されたデータのバックアップ及びリストアを管理する制御部を有するストレージ管理装置において、前記制御部は、前記フルバックアップデータに前記差分データを適用して一時リストアデータを作成し、前記差分データが適用される前の逆変換データが記録される逆変換情報を作成し、前記適用された差分データに関する変換ブロック数を変換コスト情報として記録し、前記差分バックアップリストア部は、前記変換コスト情報を参照して、前記逆変換情報を適用してリストアを行う場合に変更されるブロック数と、前記差分データを適用してリストアを行う場合に変更されるブロック数とを比較して、リストア方法を決定する。
【発明の効果】
【００１０】
本発明によると、より高速にリストアを行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面を参照して説明する。
【００１２】
図１は、本発明の実施の形態のストレージシステムの構成を示すブロック図である。
【００１３】
本発明の実施の形態のストレージシステムは、バックアップ管理装置１、ディスクアレイ記憶装置２及びこれらを接続するネットワーク４によって構成されている。
【００１４】
バックアップ管理装置１は、入力装置１１、ＣＰＵ１２、メモリ１３、表示装置１４、記憶装置（ディスク）１５、及びブロックデバイスインターフェース１６が備わるコンピュータ装置である。また、バックアップ管理装置１では、各種アプリケーションプログラムが動作しており、ディスクアレイ記憶装置２から提供されるデータを利用して、データベースサービスやウェブサービス等を利用可能にする。すなわち、バックアップ管理装置１は業務サーバの機能も有している。
【００１５】
記憶装置１５には、変換コストテーブル１０１、一時リストアデータ管理テーブル１０２、及び差分バックアップ管理テーブル１０３が記憶されている。また、記憶装置１５には、変換コストテーブル作成プログラム１０４、差分バックアップリストアプログラム１０５、逆変換テーブル作成プログラム１０６、バックアップ一覧表示プログラム１０７及び差分バックアップリストア要求受付プログラム１０８が記憶されており、これらのプログラム１０１をＣＰＵ１２が実行することによって、各種処理が実現する。
【００１６】
変換コストテーブル１０１には、差分バックアップの世代を表す差分データと、逆変換テーブル及びブロック数が記憶されており（図７）、リストアの際にどのデータを適用してリストア処理を行うかの判定に用いられる。
【００１７】
一時リストアデータ管理テーブル１０２には、リストア先ボリューム２０５に記憶される一時リストアデータを管理するための管理データが格納される。
【００１８】
差分バックアップ管理テーブル１０３には、差分データ格納ボリューム２０３に記憶される差分バックアップデータを管理するための管理データが格納される（図８）。
【００１９】
変換コストテーブル作成プログラム１０４は、変換コストテーブル１０１を作成する。
【００２０】
差分バックアップリストアプログラム１０５は、フルバックアップデータに差分データを適用し又は一時リストアデータに逆変換テーブルを適用してリストアを実行する（図９、図１０）。
【００２１】
逆変換テーブル作成プログラム１０６は、逆変換テーブル３０４を作成する。
【００２２】
バックアップ一覧表示プログラム１０７は、差分バックアップ管理テーブル１０３に記録されたバックアップ作成日時の一覧を、ユーザの要求に応じて提供する。ユーザは、論理障害等が発生し、障害発生直前のデータが必要になった場合に、このバックアップ作成日付の一覧を参照しながら、障害発生直前のデータが格納されているバックアップを予想し、一時的なリストアを行う。
【００２３】
差分バックアップリストア要求受付プログラム１０８は、利用者からの一時的にリストアするバックアップデータに関するバックアップ取得日時を受け付ける。なお、バックアップ取得日時でなく、バックアップデータの世代を受け付けてもよい。
【００２４】
差分バックアップリストア要求受付プログラム１０８は、利用者からの一時的にリストアするバックアップデータのバックアップ取得日時を受け付けると、差分バックアップリストアプログラム１０５に対して指定された時点のデータの一時的なリストアを要求する。利用者は、差分バックアップリストアプログラム１０５によって一時的にリストアされたデータに論理障害等の異常が生じていないかを確認する。一時リストアデータに異常が生じていれば、差分バックアップリストア要求受付プログラム１０８に対して更に古いバックアップ取得日時を指示し、更に古いバックアップをリストアする。なお、一時リストアデータに異常が生じていなくても、更に新しいものも確かめてみる等、状況に応じてさらに探索が必要であれば、差分バックアップリストア要求受付プログラム１０８に対して、新しいバックアップ取得日時、又は、古いバックアップ取得日時を指示する。
【００２５】
ブロックデバイスインターフェース１６は、ディスクアレイ記憶装置２に対するインターフェースであり、例えば、ファイバチャネル（Fibre Channel）等のデータの転送に適するプロトコルで通信を行う。なお、ファイバチャネルではなく、ＳＣＳＩ（Small Computer System Interface）や、ｉＳＣＳＩ（internet SCSI）によって通信可能なものであってもよい。
【００２６】
ディスクアレイ記憶装置２は、ＳＡＮ４によってバックアップ管理装置１と接続されており、ディスクアレイコントローラ２０及びディスクアレイ２８によって構成されている。ディスクアレイコントローラ２０には、ＣＰＵ２２、メモリ２３、ブロックデバイスインターフェース２６、ディスクインターフェース２７が設けられている。
【００２７】
メモリ２３には制御プログラムが記憶されており、ＣＰＵ２２が制御プログラムを呼び出して実行することによって、バックアップ管理装置１等のコンピュータ装置からの要求に基づいてディスクアレイ２８に対するデータの入出力を制御する。また、メモリ２３には、ブロックデバイスインターフェース２６とディスクインターフェース２７との間で送受信されるデータを一時的に記憶するキャッシュが設けられている。
【００２８】
ブロックデバイスインターフェース２６は、ＳＡＮ４に対するインターフェースであって、例えば、ファイバチャネルプロトコル（Fibre Channel protocol）に基づいて、バックアップ管理装置１との間でデータや制御信号を送受信する。
【００２９】
ディスクインターフェース２７は、ディスクアレイ２８に対するインターフェースであって、例えば、ＡＴＡ、ＳＡＳ、ファイバチャネル等のインターフェースによって、ディスクドライブ２８ａ〜２８ｃとの間でデータや制御信号を送受信する。
【００３０】
ディスクアレイ２８は、複数の物理的ディスクドライブ２８ａ〜２８ｃで構成されている。ディスクドライブには、ＯＳが単一のディスクとして認識できる単位である論理ユニット（ＬＵ）が設定されている。また、論理ユニットはＲＡＩＤ（Redundant Array of Independent Disks）によって構成されており、記憶されるデータに冗長性を持たせている。このため、ディスクドライブの一部に障害が生じても、記憶されたデータが消失しないようになっている。なお、論理ユニットは、それぞれがＲＡＩＤのようなディスクアレイ（複数の記憶装置の集合体）であっても、それぞれが一つのディスクドライブであっても、それぞれが単独の記憶装置又は複数の記憶装置の一部であってもよい。
【００３１】
また、ディスクアレイ２８には、運用ボリューム２０１、フルバックアップデータ格納ボリューム２０２、差分データ格納ボリューム２０３、逆変換テーブル格納ボリューム２０４、及びリストア先ボリューム２０５が設けられている。また、フルバックアップデータ格納ボリューム２０２、差分データ格納ボリューム２０３、及び逆変換テーブル格納ボリューム２０４によって、バックアップデータ格納ボリューム群が構成されている。
【００３２】
運用ボリューム２０１は、バックアップ管理装置１からのデータ書き込み要求に基づいてデータを書き込み、データ読み出し要求に基づいてバックアップ管理装置１にデータを提供する。
【００３３】
フルバックアップデータ格納ボリューム２０２には、所定のタイミング（例えば、所定時刻）に、運用ボリューム２０１に記憶された全てのデータがフルバックアップデータとして複写され記憶される。
【００３４】
差分データ格納ボリューム２０３には、所定のタイミング（例えば、フルバックアップより短い間隔）で、前回のバックアップ（フルバックアップ又は差分バックアップ）時点から変更がされたブロックのデータが差分バックアップデータとして複写され記憶される。
【００３５】
逆変換テーブル格納ボリューム２０４には、リストア対象探索処理（図９のステップ１０６）において作成される差分データ適用前のデータが逆変換テーブル３０４として記憶される。ユーザは、この記憶された一時リストアデータがリストアすべきデータであるかを検証し、リストアすべきデータであれば、リストア先ボリューム２０５から運用ボリューム２０１へコピーを行う。すでに一時リストアデータに論理障害等が発生しているなど、一時リストアデータがリストアすべきデータでなければ、再びリストア対象探索処理を実行する。
【００３６】
なお、リストア先ボリューム２０５は、運用ボリューム２０１と兼用のボリュームとすることもできる。このようにすることで、リストアの際に必要となるボリューム数を減らすことが可能になり、また、リストア先ボリュームから運用ボリュームへのコピーの手間を省くことが可能になる。
【００３７】
リストア先ボリューム２０５は、リストア対象探索処理（図９）において作成されるフルバックアップデータに差分データを適用した一時リストアデータが記憶される。
【００３８】
ブロックデバイスインターフェース２６は、バックアップ管理装置１に対するインターフェースであり、例えば、ファイバチャネル等のデータの転送に適するプロトコルで通信を行う。なお、ファイバチャネルではなく、ＳＣＳＩや、ｉＳＣＳＩによって通信可能なものであってもよい。
【００３９】
ＳＡＮ４は、例えばファイバチャネルプロトコルのようなデータの転送に適するプロトコルによって通信可能なネットワークである。
【００４０】
次に、本発明の実施の形態のストレージシステムに適用されるバックアップ手法について説明する。
【００４１】
図２は、ストレージシステムに一般的に適用可能なバックアップ手法の概念図であり、通常に読み書きがなされる運用ボリュームの内容の時間の経過に従った変化を示す。
【００４２】
まず、バックアップは、フルバックアップ、累積差分バックアップ及び差分バックアップ に大別される。本発明は差分バックアップにおけるリストアを対象とした技術である。
【００４３】
フルバックアップは、毎回のバックアップ（Ｔ１、Ｔ２・・・）で、各ブロックの変更の有無に関わらず、ボリューム全体をバックアップするものである。フルバックアップは、管理が単純で、リストアが簡単であるが、バックアップ時間が長いことから、バックアップのためにシステムを停止する時間が長くなる特徴がある。
【００４４】
累積差分バックアップは、前回のフルバックアップから変更のあった部分をバックアップするもので、インクリメンタルバックアップと称される。すなわち、前回のフルバックアップ（Ｔ１）から変更のあったブロックアドレス（Ｔ５時点では３、４、５、８の全て）がバックアップされる。累積差分バックアップは、フルバックアップより高速にバックアップ処理を行うことができ、差分バックアップより管理及びリストアが容易である特徴がある。
【００４５】
差分バックアップは、前回のバックアップ時点（フルバックアップ又は差分バックアップ）から変更のあった部分をバックアップするもので、増分バックアップとか、デルタバックアップと称される。例えば、Ｔ３時点を考えると、Ｔ２時点から変更のあったブロックアドレス５のみがバックアップされ、Ｔ２時点で既に変更されていたブロックアドレス３、４は（Ｔ３時点では）バックアップされない。差分バックアップは、バックアップの対象となるデータ量が少なく、バックアップ時間が短いことから、バックアップのためにシステムを停止する時間を短くすることができる。特に、バックアップ対象のボリュームサイズが大きく、変更されるブロックが少ない場合に有効である。しかし、リストア手順が複雑であり、リストアに時間がかかる等複雑な管理が必要となる。
【００４６】
ここで、本発明の実施の形態のストレージシステムに適用される差分バックアップの特徴と問題点を説明する。
【００４７】
図３は、差分バックアップにおける差分データの作成の説明図である。
【００４８】
フルバックアップ時のデータ３０１に対して書き込みが生じると、書き込みが生じたブロックに変更フラグが設定される。差分バックアップ日時になるとその時点（時点Ａ）のデータ３０２のうち変更フラグが設定されているデータ（差分データ）が抽出され、時点Ａにおける差分データ（差分Ａ）３０３として記録される。
【００４９】
すなわち、フルバックアップデータ３０１に対して差分Ａ３０３を適用すると、差分Ａとして記録されているブロックアドレス（１、４、６、７、９）のデータが書き換えられ、時点Ａにおけるデータ３０２を作り出すことができる。
【００５０】
図４、図５は、リストアデータの作成の説明図である。
【００５１】
図４は、リストアデータの作成の概念を示す。必要とされる時点（本図では時点Ｚ）のデータを得るためには、フルバックアップ時からデータが必要とされる時点（時点Ｚ）までの差分を（差分Ａ〜Ｚ）を適用することによって、時点Ｚにおけるリストアデータを作り出すことができる。
【００５２】
図５は、実際のリストアデータの作成の手順を示す。
【００５３】
時点Ｚにおいて、ウイルス等によるデータの破壊が発見された場合に、利用者は適当な時点（本図では時点Ｆ）を選択し、フルバックアップデータに差分Ａ〜Ｆのデータを適用することによって、時点Ｆにおける一時リストアデータを作成する。しかし、既に差分Ｆのデータも破壊されていたならば、時点Ｆの一時リストアデータは意味のないものとなっている。そこで、時点Ｆより前の時点（時点Ｅ）における一時リストアデータを作成する。そのため、フルバックアップデータに差分Ａ〜Ｅのデータを適用する。
【００５４】
このように、差分バックアップにおいては、データの確認のために一時リストアが必要である。また、差分バックアップにおけるリストアには、フルバックアップに目的の時点までの全ての差分データを適用する必要があり、煩雑かつ時間を要する。
【００５５】
ディスクアレイ記憶装置２に論理障害が発生し、論理障害発生直前のデータを探索する場合には、フルバックアップに論理障害発生直前までの全ての差分データを適用する必要がある。また、論理障害発生時を特定するために、通常、複数回のリストアを行う必要があり、リストア処理に要する時間が長くなり、迅速な復旧の妨げとなる。
【００５６】
図６は、本発明の実施の形態の差分データ及び逆変換テーブルの説明図である。
【００５７】
フルバックアップデータ３０１に対して差分Ａ３０３を適用すると、差分Ａとして記録されているブロックアドレス（１、４、６、７、９）のデータが書き換えられ、時点Ａにおけるデータ３０２を作り出すことができる。このとき、差分Ａによって書き換えられるブロックアドレスの書き換え前のデータを書き出したものが逆変換テーブル３０４である。
【００５８】
逆変換テーブル３０４には差分データを適用する前のデータが記録されているので、時点Ａのデータ３０２に逆変換テーブル３０４を適用することによって、差分Ａ−１の逆変換テーブルとして記録されているブロックアドレス（１、４、６、７、９）のデータが書き換えられ、フルバックアップ時のデータ３０１が得られる。すなわち、逆変換テーブルによって差分Ａ適用前のデータ（１世代前のデータ）を得ることができる。
【００５９】
図７は、本発明の実施の形態の変換コストテーブル１０１の説明図である。
【００６０】
変換コストテーブル１０１には、差分バックアップの世代を表す「差分」と、この差分に対応する「逆変換テーブル」、及びその差分のブロック数が記憶されている。変換コストテーブル１０１は、リストアの際にどの差分データを適用してリストア処理を行うかの判定に用いられる。
【００６１】
具体的には、フルバックアップには４０ブロックが使用されている。また、差分バックアップの各段階で使用されているブロック数が分かる。例えば、差分Ａのバックアップには５ブロックが使用されている。この各差分バックアップに使用されているブロック数を累積計算することによって、所望の時点での一時リストアデータを作成するために適用する差分データのブロック数を知ることができる。
【００６２】
図８は、本発明の実施の形態の差分バックアップ管理テーブル１０３の説明図である。
【００６３】
差分バックアップ管理テーブル１０３には、データの種類（フルバックアップか、差分バックアップか）、その世代、及び、バックアップ作成日時が対応するように記録されている。
【００６４】
図９は、本発明の実施の形態のリストア対象探索処理のフローチャートであり、変換コスト作成プログラム１０４によって実行される。
【００６５】
まず、今回のリストアデータの探索で最初のリストアであるか否かを判定する（Ｓ１０１）。これは、一時リストアデータ管理データ１０２には、この処理で前にリストアされたバックアップの作成日時が記録されているので、この一時リストアデータ管理データ１０２に日時が記憶されているか否かによって、リストアすべきバックアップ探索で最初のリストアかを判断する。
【００６６】
その判定の結果、最初のリストアであれば、記憶されているフルバックアップデータを展開するリストア処理を行う（Ｓ１０２）。そして、変換コストテーブル１０１にフルバックアップのブロック数（図６のブロック数「４０」）を記録して（Ｓ１０３）、ステップ１０４に進む。
【００６７】
一方、最初のリストアでなければ、差分バックアップ管理テーブル１０３を参照して、現在得られている一時リストアデータより、目的とするリストア対象が新しいか否かを判定する（Ｓ１１０）。ここで一時リストアデータとは、一時的にリストアされてリストア先ボリューム２０５に格納されているデータである。
【００６８】
その結果、現在得られている一時リストアデータより目的とするリストア対象が新しければ、ステップ１０４に移行する。一方、現在得られている一時リストアデータより目的とするリストア対象が新しくなければ（古い又は同じであれば）、リストア方式を判定し、リストアを実行する（Ｓ１１１）。
【００６９】
ステップ１０４では、次の差分データを適用して、新たな一時リストアデータを作成して、リストア先ボリューム２０５に格納する。すなわち、フルバックアップデータがリストアされた直後であれば、フルバックアップ直後の差分データ（図４の差分Ａ）を適用する。また、差分Ａが適用された直後なら、次の世代の差分データ（図４の差分Ｂ）を適用する。これにより新たな世代の一時リストアデータを得ることができる。そして、一時リストアデータ管理データ１０２を更新する。
【００７０】
そして、適用した差分データに対する逆変換テーブル３０４及び変換コストテーブル１０１が既に作成されているか否かを判定する（Ｓ１０５）。その結果、適用した差分データに対する逆変換テーブル３０４及び変換コストテーブル１０１が作成されていなければ、逆変換テーブル作成プログラム１０６によって、適用した差分データに対する逆変換テーブル３０４を作成して、逆変換テーブル格納ボリューム２０４に記憶する（Ｓ１０６）。さらに、変換コストテーブル作成プログラム１０４によって、適用した差分データに対する変換ブロック数を変換コストテーブル１０１に追加する（Ｓ１０７）。
【００７１】
その後、差分バックアップ管理テーブル１０３を参照し、目的とするリストア対象のバックアップ作成日時と、現在作成されている一時リストアデータのバックアップ作成日時とを比較して、目的とするリストア対象がリストアされたか否かを判定する（Ｓ１０８）。
【００７２】
その結果、目的とするリストア対象のバックアップ作成日時と現在作成されている一時リストアデータのバックアップ作成日時とが等しければ、目的とするリストア対象がリストアされたと判定し、一時リストアデータのバックアップ取得日時を記録する（Ｓ１０９）。そして、ユーザはリストアされたデータを確認する。例えば、既にデータが壊れている等の理由で再度リストアをする必要があれば、その対象日時を入力し、このリストア対象探索処理を最初から実行する。
【００７３】
図１０は、本発明の実施の形態のリストア処理のフローチャートであり、リストア対象探索処理（図９）のステップ１１１から呼び出されて実行される。
【００７４】
まず、変換コストテーブル１０１を参照し、一時リストアデータに逆変換テーブルの逆変換テーブルを適用した場合にリストアを実行するために変更が必要となるブロックの総数を算出する（Ｓ１２１）。ここで算出されるブロック数は、フルバックアップデータのブロック数と、リストア先ボリューム２０５に記憶されている一時リストアデータに対して適用すべき逆変換データのブロック数の和である。
【００７５】
次に、フルバックアップデータをリストアして、差分データを適用して、目的のリストアを行う場合のブロックの総数を算出する（Ｓ１２２）。ここで算出されるブロック数は、フルバックアップデータのブロック数と、適用すべき差分データのブロック数との和である。
【００７６】
その後、ステップ１２１で算出されたブロック数と、ステップ１２２で算出されたブロック数とを比較する（Ｓ１２３）。
【００７７】
その結果、ステップ１２２で算出されたブロック数の方が少なければ、フルバックアップに差分データを順に適用する方が変換するブロック数が少ないので、フルバックアップデータをリストアし（Ｓ１２４）、目的のリストア対象までに必要な差分データを適用して目的の世代のバックアップデータをリストアする（Ｓ１２５、Ｓ１２６）。
【００７８】
一方、ステップ１２２で算出されたブロック数の方が少なければ、一時リストアデータに逆変換テーブルを適用する方が変換するブロック数が少ないので、一時リストアデータに目的のリストア対象までに必要な逆変換テーブルを適用して目的のバックアップをリストアする（Ｓ１２７、Ｓ１２８）。
【００７９】
なお、逆変換テーブルと差分データとが違う記憶媒体に記憶されている場合は、その記憶媒体に対するアクセス速度の平均値とブロック数との積を比較することによって、いずれの方法でリストアをするかを判断するとよい。
【００８０】
図１１〜図１３は、本実施形態に、更に、差分マージ技術を適用した実施の形態の説明図である。この場合、ディスクアレイ記憶装置２のバックアップデータ格納ボリューム群に、マージした差分データを格納する累積差分格納ボリュームを設けることが必要である。
【００８１】
また、図１１乃至図１３に示す変換コストテーブル１１１０は、前述した変換コストテーブル（図７）に、累積ブロック数と累積差分の記録欄を設けたものである。累積ブロック数は、フルバックアップに差分Ａ、Ｂ、Ｃと順次適用した際のフルバックアップのブロック数に各差分のブロック数を加算したブロックが記録される。累積差分は、フルバックアップとある時点（図では、時点Ｅ）のデータと異なるブロック数が記録される。変換コストテーブルは１１１０は、バックアップ管理装置のローカル記憶装置１５に記憶される。
【００８２】
まず、ＣＰＵ１２は、逆変換テーブルと変換コストテーブル１１１０を作成する（１１２０）。なお、このテーブルの作成１１２０はリストア実行時ではなく、バックアップ管理装置１のリソースに余裕があるときにバックグラウンド処理によって、図９のステップ１０４から１０７に相当する処理によって行われる。ずなわち、ＣＰＵ１２は、差分Ａ乃至Ｅを適用し（ステップ１０４に相当）、逆変換テーブル１１０１〜１１０６を作成し（ステップ１０６に相当）、変換コストテーブルのブロック数の欄に差分Ａ乃至Ｅのブロック数を記録する（ステップ１０７に相当）。これによってリストアの探索時の処理を高速にすることができる。
【００８３】
その後、フルバックアップデータに差分データである差分Ａ乃至Ｅをマージして、累積差分データ（累積差分Ｅ＋Ｄ＋Ｃ＋Ｂ＋Ａ）１２０４を作成し、累積差分格納ボリュームに格納する（図１２）。そして、累積差分データ１２０４のブロック数を求め、変換コストテーブル１１１０の累積差分の欄に「１６」を記録する。
【００８４】
そして、リストアをする際には、ＣＰＵ１２は、変換コストテーブル１１１０を参照し、フルバックアップに累積差分データ１２０４を適用した後に逆変換テーブルを適用する方法１３０１と、フルバックアップに差分データを適用する方法１３０２とのどちらが変更ブロック数が少ないかを比較し、変更が必要となるブロック数の少ない方法でリストアを行い、リストアデータ１３０４を作成する（図１３）。
【００８５】
図１３に示す状態では、変換コストテーブル１１１０を参照することによって、方法１３０１では、フルバックアップの累積ブロック数が３０、フルバックアップに対する時点Ｅのデータの累積差分が１６、差分Ｄ−１のブロック数が６であり、それぞれの数値を足すことにより、５２ブロックとなる。一方、方法１３０２では、フルバックアップデータのブロック数３０、差分Ａ乃至Ｅのブロック数が、それぞれ５、１２、６、６、７、５であり、それぞれの数値を足すことで、５９ブロックとなる。方法１３０１と１３０２とを比較すると、方法１３０１のブロック数が少ないので、方法１３０１で、リストアを行い、フルバックアップデータに累積差分データ１２０４と差分Ｄ−１１１０４とを適用し、リストアデータ１３０４を生成する。
【００８６】
以上説明したように、差分マージ技術を用いることによって、リストアの際に変更するブロック数を少なくすることができ、さらに高速化が可能となる。
【００８７】
本発明によると、リストアすべきデータの探索を高速化することができ、より高速なリストアを提供することができる。
【００８８】
すなわち、バックアップデータ探索において、一時的にリストアしたデータに逆変換テーブルを適用することによって、差分データ適用以前のデータに戻すことができる。また、ある時点のバックアップデータをリストアする際に、フルバックアップデータに複数の差分データを適用する場合と一時リストアデータに複数の逆変換テーブルを適用する場合の２種類のリストア方式から、変更ブロック総数が少なく高速にリストアをすることができる方式を選択することができる。これによってリストアすべきバックアップデータの探索において２回目以降のリストアを高速化することができる。
【００８９】
また、バックグラウンドで逆変換テーブルと変換コストテーブルの作成は、リストア実行時ではなく、リソースに余裕があるときにバックグラウンド処理によって行われるので、リストアの探索時の処理を高速にすることができる。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施の形態のストレージシステムのブロック図である。
【図２】ストレージシステムに一般的に適用可能なバックアップ手法の概念図である。
【図３】差分バックアップにおける差分データの作成の説明図である。
【図４】リストアデータの作成の概念図である。
【図５】実際のリストアデータの作成の手順の説明図である。
【図６】本発明の実施の形態の差分データ及び逆変換テーブルの説明図である。
【図７】本発明の実施の形態の本発明の実施の形態の変換コストテーブルの説明図である。
【図８】本発明の実施の形態の差分バックアップ管理テーブルの説明図である。
【図９】本発明の実施の形態のリストア対象探索処理のフローチャートである。
【図１０】本発明の実施の形態のリストア処理のフローチャートである。
【図１１】本発明の実施の形態のリストアデータの作成の説明図である。
【図１２】本発明の実施の形態のリストアデータの作成の説明図である。
【図１３】本発明の実施の形態のリストアデータの作成の説明図である。
【符号の説明】
【００９１】
１  バックアップ管理装置
２  ディスクアレイ記憶装置
４  ＳＡＮ
１１  入力装置
１２  ＣＰＵ
１３  メモリ
１４  表示装置
１５  ローカル記憶装置
１６  ブロックデバイスインターフェース
２０  ディスクアレイコントローラ
２２  ＣＰＵ
２３  メモリ
２６  ブロックデバイスインターフェース
２７  ディスクインターフェース
２８ａ〜２８ｃ  ディスク
【図１】
2005301497.tif 000003
【図２】
2005301497.tif 000004
【図３】
2005301497.tif 000005
【図４】
2005301497.tif 000006
【図５】
2005301497.tif 000007
【図６】
2005301497.tif 000008
【図７】
2005301497.tif 000009
【図８】
2005301497.tif 000010
【図９】
2005301497.tif 000011
【図１０】
2005301497.tif 000012
【図１１】
2005301497.tif 000013
【図１２】
2005301497.tif 000014
【図１３】
2005301497.tif 000015