(57)【要約】      （修正有）【課題】特定の時間におけるファイルセットの復元において、復元時間の高速化、プロセス消費電力の減少を実現する。【解決手段】ベースライン時間におけるファイルセットを定義する第１のベースラインのブロック、ベースライン時間より古いブロックおよび、ベースライン時間より新しいブロックを含むブロックの集合体を格納し、ブロックの集合体から特定の時間におけるファイルセットを復元する際に、特定の時間がベースライン時間よりも古いか新しいかを示す方向値によって、ベースライン時間より古いブロックと新しいブロックのいずれのブロックを使用するかを決定し、第１のベースラインのブロックおよび、決定されたブロックを使用して、特定の時間におけるファイルセットを定義する第２のベースラインのブロックを生成する。【選択図】図１
2011175642.tif 000002
【特許請求の範囲】
【請求項１】
ブロックの集合体から所定の時間帯の特定の時間に存在しているファイルのセットを復元する方法であって、
前記所定の時間帯の複数の異なる時間におけるファイルのセットを定義しかつ（ｉ）前記所定の時間帯の第１のベースライン時間におけるファイルのセットを定義する第１のベースラインのブロック、（ｉｉ）前記所定の時間帯の前記第１のベースライン時間前に生成されたより古いブロックおよび（ｉｉｉ）前記所定の時間帯の前記第１のベースライン時間後に生成されたより新しいブロックを含む、前記ブロックの集合体を記憶サブシステム内に格納するステップと、
前記記憶サブシステム内に格納されている前記ブロックの集合体から、前記所定の時間帯の前記複数の異なる時間のうちの特定の時間におけるファイルのセットを復元するための復元コマンドの受け取りに応答して、（ｉ）前記特定の時間が前記第１のベースライン時間よりも古い場合にはより古い方向を示すより古い方向値を有し、（ｉｉ）前記特定の時間が前記第１のベースライン時間よりも新しい場合にはより新しい方向を示すより新しい方向値を有する方向信号を提供するステップと、
前記記憶サブシステム内に格納されている前記ブロックの集合体のうちの前記第１のベースラインのブロックおよび、前記方向信号が前記より古い方向値または前記より新しい方向値を有するかによって（ｉ）前記より古いブロックまたは（ｉｉ）前記より新しいブロックのいずれかであるさらなるブロックから、前記特定の時間におけるファイルのセットを定義する第２のベースラインのブロックを生成するステップと、
を含む方法。
【請求項２】
前記ブロックの集合体を前記記憶サブシステム内に格納するステップが、
前記第１のベースラインのブロックおよび前記より新しいブロックに基づいて、前記記憶サブシステム内に格納されている前記第１のベースラインのブロックを次のベースラインのブロックと置き換えるステップと、
前記次のベースラインおよび前記第１のベースラインと前記次のベースラインとの間で変更された前記ブロックから、前記第１のベースラインを再構成することができるように、前記記憶サブシステム内に格納される前記より古いブロックとして、前記第１のベースラインと前記次のベースラインとの間で変更されたブロックを保存するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記ファイルのセットの復元を可能にするように、第１のより新しいバージョン時間に格納されたより新しいブロックの第１の群を、第２のより新しいバージョン時間に格納されたより新しいブロックの第２の群と合体させて、（ｉ）前記第１のベースラインのブロック、（ｉｉ）より新しいブロックの前記合体した群および（ｉｉｉ）前記方向信号に基づいて、より新しいブロックの合体した群を生成するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記第１のベースラインのブロックおよび前記さらなるブロックから前記第２のベースラインのブロックを生成するステップが、（ｉ）前記第１のベースライン、（ｉｉ）より新しいブロックの前記合体した群および（ｉｉｉ）前記方向信号から、前記第２のベースラインのブロックを生成するステップを含む、請求項３に記載の方法。
【請求項５】
前記第２のベースラインのブロックを生成するステップが、
より新しいブロックの前記合体した群において修正されている前記第１のベースラインのブロックを一覧にしたインデックスファイルを維持するステップと、
前記インデックスファイルに基づいて、前記より古いブロックの少なくとも一部として、より新しいブロックの前記合体した群において修正されている前記第１のベースラインのブロックを識別および保存するステップと、
前記第１のベースラインのブロックのコピーを構成し、かつ前記第１のベースラインの前記コピーのブロックをより新しいブロックの前記合体した群のブロックと置き換えて、前記第２のベースラインのブロックを生成するステップと、
を含む、請求項４に記載の方法。
【請求項６】
前記第２のベースラインのブロックを生成するステップが、
より新しいブロックの前記合体した群において修正されている前記第１のベースラインのブロックを一覧にしたインデックスファイルを維持するステップと、
前記インデックスファイルに基づいて、前記より古いブロックの少なくとも一部として、より新しいブロックの前記合体した群において修正されている前記第１のベースラインのブロックを識別および保存するステップと、
前記第１のベースラインのブロックをより新しいブロックの前記合体された群のブロックで上書きして前記第２のベースラインのブロックを生成するステップと、
を含む、請求項４に記載の方法。
【請求項７】
前記ファイルのセットの復元を可能にするように、第１のより古いバージョン時間に格納されたより古いブロックの第１の群を、第２のより古いバージョン時間に格納されたより古いブロックの第２の群と合体させて、（ｉ）前記第１のベースラインのブロック、（ｉｉ）より古いブロックの前記合体した群および（ｉｉｉ）前記方向信号に基づいて、より古いブロックの合体した群を生成するステップをさらに含む、請求項４に記載の方法。
【請求項８】
前記記憶サブシステムが、（ｉ）最初に前記第１のベースラインのブロックおよび前記より新しいブロックを格納する高価な記憶装置領域および（ｉｉ）最初に前記より古いブロックを格納する低価格の記憶装置領域を含み、
前記記憶サブシステム内に格納されている前記第１のベースラインのブロックを前記次のベースラインのブロックと置き換えるステップが、前記次のベースラインのブロックを前記高価な記憶装置領域に格納するステップを含み、かつ
前記第１のベースラインと前記次のベースラインとの間で変更されたブロックを保存するステップが、変更された前記ブロックを前記高価な記憶装置領域から前記低価格の記憶装置領域に移動させるステップを含む、請求項４に記載の方法。
【請求項９】
変更された前記ブロックを前記高価な記憶装置領域から前記低価格の記憶装置領域に移動させるステップが、
前記高価な記憶装置領域を提供する高価な記憶装置よりも低速かつ非効率的な低価格の記憶装置をスピンアップさせるステップと、
前記第１のベースラインと前記次のベースラインとの間で変更されたブロックを前記低価格の記憶装置に書き込み、かつ書き込みが完了した後に、ベースラインの移行後に定期的にスピンダウンされる前記低価格の記憶装置をスピンダウンさせるステップと、
を含む、請求項８に記載の方法。
【請求項１０】
前記低価格の記憶装置が光ディスク記憶装置であり、
前記より古いブロックの年が前記所定の時間帯の範囲外になると、より古いブロックを含む光ディスクを定期的に破棄するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記低価格の記憶装置領域が、前記高価な記憶装置領域よりも低速なアクセス時間を有するディスク記憶装置であり、
前記所定の時間帯の範囲外の年となったより古いブロックを定期的に消去するステップをさらに含む、請求項９に記載の方法。
【請求項１２】
前記より古い方向値が前記より新しい方向値とは異なり、
前記第１のベースラインのブロックおよび前記さらなるブロックから前記第２のベースラインのブロックを生成するステップが、前記方向信号が前記より古い方向値を有する場合には、前記第１のベースラインおよび前記より古いブロックから前記第２のベースラインのブロックを生成するステップを含み、
前記第１のベースラインおよび前記さらなるブロックから前記第２のベースラインのブロックを生成するステップが、前記方向信号が前記より新しい方向値を有する場合には、前記第１のベースラインおよび前記より新しいブロックから前記第２のベースラインのブロックを生成するステップを含む、請求項１に記載の方法。
【請求項１３】
前記方向信号が前記より古い方向値を有するが、前記より新しい方向値を有さず、
前記第１のベースラインおよび前記より古いブロックから前記第２のベースラインのブロックを生成するステップが、より新しいブロックからではなく、前記第１のベースライン、少なくとも１つのより古いブロックから前記第２のベースラインのブロックを作成するステップを含む、請求項１２に記載の方法。
【請求項１４】
前記方向信号が前記より新しい方向値を有するが、前記より古い方向値を有さず、
前記第１のベースラインおよび前記より新しいブロックから前記第２のベースラインのブロックを生成するステップが、前記第２のベースラインのブロックを、より古いブロックからではなく、前記第１のベースライン、少なくとも１つのより新しいブロックから作成することを含む、請求項１２に記載の方法。
【請求項１５】
インターフェイスと、
ブロックの集合体を格納する記憶サブシステムと、
前記インターフェイスおよび前記記憶サブシステムに連結された制御回路と、
を備え、前記制御回路が、
所定の時間帯の複数の異なる時間におけるファイルのセットを定義しかつ（ｉ）前記所定の時間帯の第１のベースライン時間におけるファイルのセットを定義する第１のベースラインのブロック、（ｉｉ）前記所定の時間帯の前記第１のベースライン時間前に生成されたより古いブロックおよび（ｉｉｉ）前記所定の時間帯の前記第１のベースライン時間後に生成されたより新しいブロックを含む、ブロックの集合体を前記記憶サブシステム内に格納し、
前記記憶サブシステム内に格納されている前記ブロックの集合体から前記所定の時間帯の前記複数の異なる時間のうちの特定の時間におけるファイルのセットを復元するための前記インターフェイスを介する復元コマンドの受け取りに応答して、（ｉ）前記特定の時間が前記第１のベースライン時間よりも古い場合にはより古い方向を示すより古い方向値を有し、（ｉｉ）前記特定の時間が前記第１のベースライン時間よりも新しい場合にはより新しい方向を示すより新しい方向値を有する方向信号を提供し、かつ
前記記憶サブシステム内に格納されている前記ブロックの集合体のうちの前記第１のベースラインのブロックおよび、前記方向信号が前記より古い方向値または前記より新しい方向値を有するかによって（ｉ）前記より古いブロックまたは（ｉｉ）前記より新しいブロックのいずれかであるさらなるブロックから、前記特定の時間におけるファイルのセットを定義する第２のベースラインのブロックを生成するように構成および配置されている、データ復元システム。
【発明の詳細な説明】
【技術分野】
【０００１】
【背景技術】
【０００２】
従来のコンピュータシステムの大部分は、オリジナルデータ（例えば、ファイル、表、データベース、生データなど）のバックアップコピーを作成および格納するために、バックアップユーティリティに依存する。フルバックアップは、オリジナルデータの完全なコピーである。増分もしくは差分バックアップは、最後のフルバックアップ時から変更された部分のみのオリジナルデータのコピーである。
【０００３】
共通の時点におけるディスクファイルのセットは、多くの場合「ポリシー」と呼ばれる。また、一時点におけるポリシー全体の格納表示は、多くの場合「ベースライン」と呼ばれる。さらに、ある時点におけるポリシーに対する変更（すなわち、デルタ）の格納表示は、多くの場合「バージョン」と呼ばれる。特定のポリシーは、ベースラインおよび、必要であれば１つまたは複数のバージョンから再構成することができる。
【０００４】
いくつかの従来のオンラインバックアップシステムでは、システム管理者が保存期間（すなわち、ポリシーのバックアップコピーが永久的に破棄されるまで保持され得る期間）を定める必要がある。そのようなオンラインバックアップシステムは、保存期間の開始時にポリシーのベースラインを格納する。次いで、従来のオンラインバックアップシステムは、時間の経過に伴って（例えば、１５分ごとに）、定期的にポリシーのバージョンを格納する。さらに、従来のオンラインバックアップシステムは、定期的にバージョンを一緒に組み合わせる（例えば、最近１５分のバージョンをより数の少ない日ごとのバージョンにしたり、最近１日のバージョンをより数の少ない月ごとのバージョンなどにしたりする）。
【０００５】
ベースラインは、常にシステム内の最も古いデータを含み、最終的に、現在の時間とベースラインの時間との時間差が保存期間に達する。この時点で、従来のオンラインバックアップシステムは、最も古いバージョンとベースラインとを組み合わせて、保存期間に属するより最新のベースラインを作成する。すなわち、従来のオンラインバックアップシステムは、ベースラインのブロックを、最も古いバージョンからのより新しいブロックで上書きする。このプロセスの間、従来のオンラインバックアップシステムは、ベースラインの上書きされたブロックを破棄する。それは、これらのブロックがその時に保存期間より古いデータ（すなわち、期限切れのデータ）を含むからである。さらに、より最新のベースラインの作成が完了すると、最も古いバージョンはもはや必要ではないため（すなわち、最も古いバージョンのブロック内のデータはその時により最新のベースラインの中に存在するため）、従来のオンラインバックアップシステムはそれらを破棄する。
【０００６】
時間とともに、従来のオンラインバックアップシステムは、ベースラインの上記前方回転を周期的に繰り返す。すなわち、オンラインバックアップシステムは、最も古いバージョンとベースラインとを組み合わせて、ちょうど保存期間に属するより最新のベースラインを作成する。ベースラインの上書きされたブロックはその時に期限切れのデータを含み、かつ最も古いバージョンはもはや必要ではないため、ベースラインの上書きされたブロックおよび最も古いバージョンはこのベースラインの回転プロセスの間に連続的に破棄される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
残念ながら、定期的に最も古いバージョンとベースラインとを組み合わせて、より最新のベースラインを作成する上記従来のオンラインバックアップシステムには欠点がある。例えば、比較的古いポリシーを復元する場合（例えば、保存期間の終わりにほぼ達したファイルを回復させる場合）は、比較的中速（または、さらには幾分低速）の処理を提供することが許容され得るが、比較的最近のポリシーに対しては比較的迅速な復元処理を有すること（例えば、最近作成または修正されたファイルを素早く回復できること）が望ましい。しかし、従来のオンラインバックアップシステムは、最近のポリシーを復元するために、おそらくはバージョンのほとんど、またはさらには全てを通ってベースラインを実質的に前方に回転させなければならない。それは、従来のオンラインバックアップシステムは、保存期間の終わりにベースラインを維持する（すなわち、ベースラインは常に、システム内の最も古いデータを含む）からである。従って、比較的最近のポリシーの復元のために、（ｉ）より高速な処理の要求および（ｉｉ）適切な復元に必要な動作の数は増加する傾向にある。従って、最近のポリシーの許容可能な復元処理を得るために、ベースラインおよび全てのバージョンを、オンライン記憶装置または高性能なニアライン記憶装置上に維持しなければならない。そのような機器は、高価な場合が多く、かつ通常は動作および冷却のために大量の電力を必要とする。
【０００８】
定期的に最も古いバージョンとベースラインとを組み合わせて、より最新のベースラインを作成する上記従来のオンラインバックアップシステムとは対照的に、改良されたバックアップシステムは、現在の時間により近いベースラインを維持し、かつベースラインよりも古いバージョンならびにベースラインよりも新しい他のバージョンを格納する。より古いバージョンは、ベースラインよりも古いポリシーの回復を可能にする。より新しいバージョンは、ベースラインよりも新しいポリシーの回復を可能にする。その結果、比較的最近のポリシーを復元するためにベースラインと組み合わせなければならないバージョンの数は減少し、よって、復元時間は高速化され、かつプロセスにおける消費電力は減少する。さらに、ベースラインよりも古いポリシーは、ベースラインと１つまたは複数のより古いバージョンとを組み合わせることによって、容易に回復させることができる。その上、通常はより古いファイルの復元には高速な処理は必要とされないため、最も古いバージョンは、比較的低コストであり、かつ動作のために必要とされる電力が著しく少ない記憶装置（例えば、スピンダウンされる低価格のディスクドライブ、ＣＤ−ＲＯＭなど）内に位置づけることができる。
【課題を解決するための手段】
【０００９】
一実施形態は、（ｉ）所定の時間帯の開始時間におけるファイルのセットを定義する第１のベースラインのブロック、（ｉｉ）より古いブロックおよび（ｉｉｉ）より新しいブロックを有するブロックの集合体を格納することを含む復元技術に関する。この技術は、ブロックの集合体から特定の時間におけるファイルのセットを復元するための方向信号を提供することをさらに含む。方向信号は、（ｉ）特定の時間が開始時間よりも古い場合にはより古い方向値を有し、（ｉｉ）特定の時間が開始時間よりも新しい場合にはより新しい方向値を有する。この技術は、ブロックの集合体のうちの第１のベースラインのブロックおよびさらなるブロックから第２のベースラインのブロックを生成することをさらに含む。このさらなるブロックは、方向値に応じて、（ｉ）より古いブロックまたは（ｉｉ）より新しいブロックのいずれかである。第２のベースラインは、特定の時間におけるファイルのセットを定義する。
【００１０】
上記および他の目的、特徴および利点は、同様の符号が異なる図にわたって同じ部分を指している添付の図面に示されている本発明の特定の実施形態についての以下の説明から明らかである。この図面は、必ずしも縮尺どおりではなく、それよりも、本発明の様々な実施形態の原理を示すことに重点が置かれている。
【図面の簡単な説明】
【００１１】
【図１】前進および後退デルタを利用するデータ復元システムを有する電子環境のブロック図である。
【図２】図１のデータ復元システムの特定の詳細を示すブロック図である。
【図３】図１のデータ復元システムによって行われる格納手順のフローチャートである。
【図４】特定の時間が経過した後の図１のデータ復元システムの例示状態を示すタイミング図である。
【図５】さらなる時間が経過した後の図４の例示状態になされた進行を示すタイミング図である。
【図６】さらなる時間が経過した後の図５の例示状態になされた進行を示すタイミング図である。
【図７】さらなる時間が経過した後の図６の例示状態になされた進行を示すタイミング図である。
【図８】図４〜図７の例におけるデータを復元するデータ復元システムによって行われる逆回転プロセスを示すタイミング図である。
【発明を実施するための形態】
【００１２】
概要
改良されたバックアップ技術では、従来のバックアップシステムよりも現在の時間に近いベースラインを維持し、ベースラインよりも新しいバージョンおよび古いバージョン（すなわち、ポリシーデルタ）を格納する。従って、比較的最近のポリシーを復元するためにベースラインと組み合わせなければならないバージョンの数は減少し、よって、復元時間は高速化され、かつプロセスにおける消費電力は減少する。それにもかかわらず、ベースラインよりも古いポリシーは、単にベースラインをベースラインよりも古い保存バージョンと組み合わせることによって回復させることができる。さらに、最も古いバージョンは、比較的低コストであり、かつ動作のために著しくより少ない電力および冷却しか必要としない記憶装置内に位置づけることができる。それは、より古いポリシーの復元のために通常は高速処理が要求されないからである。
【００１３】
図１は、時間とともにポリシー（すなわち、ディスクファイルのセット）のバックアップを取りかつ回復させるために前進および後退デルタを利用するコンピュータ化されたバックアップシステムを有する電子環境２０を示す。特に、電子環境２０は、クライアントコンピュータ２２（１）、２２（２）．．．のセット（まとめて、クライアントコンピュータ２２）と、データ復元システム２４と、クライアントコンピュータ２２がデータ復元システム２４と電子データ信号２８（例えば、コマンド、ファイル、データブロックなど）を交換できるようにする通信媒体２６とを含む。
【００１４】
通信媒体２６は、ロバストかつ信頼性が高い通信のための様々な異なるコンピュータネットワーク構成要素（例えば、ケーブル、スイッチ、ルータ、光ファイバ装置、無線装置、他のネットワーク装置、それらの組み合わせなど）を含んでいてもよい。従って、電子データ信号２８としては、パケット、セル、フレーム、光ファイバ信号、無線信号、それらの組み合わせなどが挙げられる。通信媒体２６は、様々なトポロジ（例えば、スター型（ｈｕｂ−ａｎｄ−ｓｐｏｋｅ）、リング型、バス型（ｂａｃｋｂｏｎｅ）、不規則型（ｉｒｒｅｇｕｌａｒ）、それらの組み合わせなど）を有することができるため、ネットワーククラウドのように示されていることを理解されたい。さらに、通信媒体２６は、１つまたは複数のＬＡＮ、ＷＡＮ、公衆網、インターネットなどにまで及ぶことができる。
【００１５】
データ復元システム２４は、制御装置３０および記憶サブシステム３２を備える。動作の間、制御装置３０は、ポリシー４２を表示するベースライン４０、およびバージョン４４（すなわち、変更されたディスクファイルのブロックの群）を管理するように構成および配置されており、バージョン４４には、ベースライン４０よりも新しいものもあれば、古いものもある。記憶サブシステム３２は、ベースライン４０ならびにバージョン４４（すなわち、ブロックの集合体）を格納する。上述のように、ベースライン４０よりも新しいポリシー４２は、ベースライン４０を記憶サブシステム３２内に保存されている１つまたは複数のより新しいバージョン４４（すなわち、前進ポリシーデルタ）と組み合わせることによって回復させることができる。同様に、ベースライン４０よりも古いポリシー４２は、ベースライン４０を記憶サブシステム３２内に保存されている１つまたは複数のより古いバージョン４４（すなわち、後退ポリシーデルタ）と組み合わせることによって回復させることができる。以下、図２を参照しながら、さらなる詳細を示す。
【００１６】
システムの詳細
図２は、データ復元システム２４の様々な構成要素を示す。図２に示すように、データ復元システム２４は、システム２４を通信媒体２６に接続し、よって、クライアント装置２２（図１も参照）と通信させることができるネットワークインターフェイス６０を備える。これらの線に沿って、制御装置３０は、ネットワークインターフェイス６０を介してクライアント装置２２からバックアップおよび復元コマンド７０（図１の電子データ信号２８も参照）を受け取りかつ応答することができる。
【００１７】
制御装置３０は、バックアップモジュール７２および回復モジュール７４を備える。バックアップモジュール７２は、ネットワークインターフェイス６０を介してクライアント装置２２から最初のベースライン４０およびバージョン４４を回収し、かつ様々な合体動作を行う（図１も参照）。１種の合体動作では、バージョン４４を一緒に組み合わせて、記憶サブシステム３２内に格納されるバージョン４４の数を減少させる。別種の合体動作では、１つまたは複数のバージョンをベースライン４０と組み合わせて、別のベースライン４０を生成する（例えば、古いポリシーを回復させるために、データ保持規則に従うように新しいベースラインを定期的に作成する場合など）。さらに、バックアップモジュール５０は、より古いバージョン４４を記憶サブシステム３２内のより高性能な位置からより低性能な位置に移動させるデータ再配置動作を行う。
【００１８】
回復モジュール７４は、時間とともにシステム２４によって集められた特定のポリシー４２を復元するために、ネットワークインターフェイス６０を介して受け取ったコマンド７０に応答する（図１も参照）。例えば、ユーザーは、ファイルの変更または削除前に特定の時間からの特定のポリシーに属する特定のディスクファイルを読み出す必要があるかもしれない。そのようなコマンド７０に応答して、回復モジュール７４は、ベースライン４０を、ベースライン４０よりも新しいポリシー表示を復元するために１つまたは複数のより新しいバージョン４４（すなわち、前進デルタ）と組み合わせるのか、あるいはベースライン４０よりも古いポリシー表示を復元するために１つまたは複数のより古いバージョン４４（すなわち、後退デルタ）と組み合わせるのかを識別する方向信号７６を利用する。
【００１９】
いくつかの構成では、バックアップおよび回復モジュール７２、７４は、処理装置のセットまたはソフトウェアを動かす他の種類の制御／処理回路によって実行される。そのような構成では、ソフトウェア命令は、命令を不揮発的に格納するコンピュータ可読記憶媒体を有するコンピュータプログラム製品７８（図２では一般にディスケットアイコン７８で示されている）の形態で制御装置３０に送ることができる。好適なコンピュータ可読記憶媒体の例としては、ＣＤ−ＲＯＭ、フラッシュメモリ、ディスクメモリ、テープメモリなどの有形製品および装置が挙げられる。
【００２０】
記憶サブシステム３２は、好ましくは高価な記憶装置８０およびより低価格の記憶装置８２を備える。高価な記憶装置８０は、高価な記憶装置８０を形成する機器がより低価格の記憶装置８２よりも優れたデータアクセス時間を提供するという意味で、より低価格の記憶装置８２よりも優れている。しかし、高価な記憶装置８０は、１つまたは複数の動作側面（例えば、より高速なディスクドライブ、より高い消費電力、より大きな冷却要件など）のために、コストがより高くなる場合がある。
【００２１】
例えば、いくつかの構成では、高価な記憶装置８０およびより低価格の記憶装置８２は同じ種類のディスクドライブを含んでいてもよいが、高価な記憶装置８０のドライブが連続回転している間、より低価格の記憶装置８２のドライブは通常スピンダウンされていてもよい。そのような構成では、高価な記憶装置８０は、かなりの電力および連続的な冷却を必要とする傾向があるが、より低価格の記憶装置８２は、ディスクが回転しているときのみ電力および冷却を必要とする。高価な記憶装置８０は、ディスクがスピンアップされるまでの待ち時間がないため、より良好なアクセス時間を提供する。
【００２２】
他の構成では、高価な記憶装置８０は、より低価格の記憶装置８２よりも高速なディスクを含む。高価な記憶装置８０は、より高速なディスク速度により、より良好なアクセス時間を提供する。しかし、そのようなより高速なディスクは通常、より高価であり、かつより大きな冷却源を必要とする。
【００２３】
さらに他の構成では、高価な記憶装置８０は、高速アクセスメモリ（例えば、絶えず回転しているか、必要に応じてスピンアップされる磁気ディスク）を含み、より低価格の記憶装置８２は、他の種類の媒体（例えば、より低速の磁気テープ記憶装置、スピンダウンされるＣＤ、ニアライン記憶装置、ファーライン（ｆａｒ−ｌｉｎｅ）記憶装置など）を含む。他の構成および機器の組み合わせも使用に適している。
【００２４】
ここまで、高価な記憶装置８０とより低価格の記憶装置８２との様々な相違点について説明してきたが、以下、記憶サブシステム３２内のどの記憶構成要素が特定の種類のデータを格納するのかという点について説明する。最初に、クライアント装置２２は、ディスクファイルのセット（例えば、１つまたは複数のディスク画像、フォルダおよびファイルのディレクトリ、ボリュームなど）への定期的なアクセスを有することを理解されたい。このディスクファイルのセット（すなわち、ポリシー４２）は、１つまたは複数のクライアント装置２２のローカルに存在していても、別個のサーバおよび／またはクライアント装置２２にアクセス可能な他の遠隔位置に存在していてもよい。
【００２５】
図２に示すように、高価な記憶装置８０は、ベースライン４０およびベースライン４０よりも新しいバージョン４４（ｎ）を格納する（図１も参照）。ベースライン４０は、特定の時点（例えば、２ヶ月前、６ヶ月前など）のポリシー４２全体の格納表示である。より新しいバージョン４４（ｎ）は、ベースライン４０の時間から現在の時間までにコピーされたポリシー４２の変更部分（すなわち、変更されたディスクファイルのブロック）である。
【００２６】
同様に、より低価格の記憶装置８２は、ベースライン４０よりも古いバージョン４４（ｏ）を格納する。より古いバージョン４４（ｏ）は、ベースライン４０が保存期間内に維持されるようにベースライン４０が更新される（すなわち、前方に回転される）際にベースライン４０から保存されたポリシー４２の変更部分である。いくつかの構成では、より低価格の記憶装置８２をスピンダウンさせて、それにより、ディスクの摩耗ならびに電力および冷却費を著しく減少させてもよい。それは、より古いポリシー表示８４を復元するための回転が比較的稀にしか生じ得ないからである。
【００２７】
ユーザーからコマンドを受け取るとすぐに、制御装置３０は、ベースライン４０および１つまたは複数のバージョン４４（ｎ）、４４（ｏ）（まとめて、バージョン４４）から、ポリシー４２の特定の表示８４を復元することができる。例えば、ベースライン４０よりも新しいポリシー４２を復元するために、制御装置３０は、ベースライン４０を、高価な記憶装置８０内に格納されている１つまたは複数のより新しいバージョン４４（ｎ）と組み合わせる。さらに、ベースライン４０よりも古いポリシー４２を復元するために、制御装置３０は、ベースライン４０を、より低価格の記憶装置８２内に格納されている１つまたは複数のより古いバージョン４４（ｏ）と組み合わせる。好ましくは、高価な記憶装置８０は、復元プロセスが完了すると、ユーザーがポリシー表示８４への高速なアクセスを享受するように、ポリシー表示８４を格納する。以下、図３を参照しながら、さらなる詳細を示す。
【００２８】
図３は、クライアント装置２２（図１および図２も参照）からポリシー４２（すなわち、ディスクファイルのセット）をバックアップおよび復元する際に、データ復元システム２４の制御装置３０によって行われる手順１００を示す。ステップ１０２では、制御装置３０は、記憶サブシステム３２内に、所定の時間帯（すなわち所定の保存期間）にわたってクライアント装置２２から得られたブロックの集合体を格納する（例えば、図２のバックアップモジュール７２を参照）。ブロックの集合体は、ベースライン４０ならびにより古いバージョン４４（ｏ）およびより新しいバージョン４４（ｎ）（図２）を含む。いくつかの構成では、これらのブロックは、標準的な記憶動作のためにクライアント装置２２（図１）によって利用される標準的なブロックの大きさに適合する大きさ（例えば、８ＫＢ、１６ＫＢ、３２ＫＢ、６４ＫＢ、２５６ＫＢなど）を有する。
【００２９】
ステップ１０４では、制御装置３０は、特定のポリシー４２表示を回復させるための復元コマンド７０に応答して、ブロックの集合体から特定の時間におけるファイルのセットを復元するための方向信号７６を提供する（例えば、図２の回復モジュール７４を参照）。方向信号７６は、（ｉ）特定の時間が開始時間より古い場合にはより古い方向値を有し、（ｉｉ）特定の時間が開始時間より新しい場合にはより新しい方向値を有する。制御装置３０は、方向信号７６の方向値に応じて、より新しいバージョン４４（ｎ）をベースライン４０と組み合わせるか、より古いバージョン４４（ｏ）をベースラインと組み合わせて、ポリシー４２を回復させる。
【００３０】
ステップ１０６では、制御装置３０は、第１のベースライン４０のブロックおよびさらなるブロックからポリシー４２の表示８４（すなわち、第２のベースラインのブロック、図２も参照）を生成する。さらなるブロックは、方向信号７６の方向値に応じて、（ｉ）１つまたは複数のより古いバージョン４４（ｏ）のブロックまたは（ｉｉ）１つまたは複数のより新しいバージョン４４（ｎ）のブロックのいずれかである。回復されたポリシー表示８４は、特定の時間におけるファイルのセットを定義する。
【００３１】
この時点で、ベースライン４０が現在の時間により近い状態で維持されているため、ベースライン内に最も古いブロックを維持する従来のアプローチと比較して、１つまたは複数の最近のファイルの画像を再構成するためにベースライン４０と組み合わせるバージョン４４の数が減少していることを理解されたい。従って、データ復元システム２４では、ディスク入出力数は減少しており、かつ復元実行時間は短縮されている。以下、図４〜図８を参照しながら、さらなる詳細を示す。
【実施例】
【００３２】
以下、データ復元システム２４の特定の動作特徴を示すために一実施例を挙げる。特にタイミング図を示す図４〜図８を参照する。
【００３３】
時間の経過とともにクライアント装置２２（図１）がディスクファイルのセットをローカルに格納すると仮定する。この間に、データ復元システム２４の制御装置３０は、特定の時間におけるディスクファイルのセットを定義するブロック１２０を保存し、かつ関連するインデックスファイル１２２を用いてブロック１２０を管理する（図３のステップ１０２）。特に、各インデックスファイル１２２は、時間フィールド１２４およびエントリ１２６のセットを含む。各エントリ１２６は、インデックスフィールド１２８およびブロック識別子フィールド１３０を含む。
【００３４】
動作の開始時に、データ復元システム２４は、ディスクファイルのセットを高価な記憶装置８０（図２）内に完全にコピーする。特に、時間Ｔ０において、データ復元システム２４の制御装置３０は、ファイルのセットを定義するブロックＡ０、Ｂ０、Ｃ０、Ｄ０、Ｅ０およびＦ０を含むベースライン４０（図４を参照）を格納する（図１の電子データ信号２８は、データのこのコピー処理を示す）。さらに、時間Ｔ０において、制御装置３０は、ベースライン４０の内容を識別するインデックスファイル１２２（０）を作成する。図４に示すように、インデックスファイル１２２（０）の時間フィールド１２４は、その内容どおりに、ベースライン４０が時間Ｔ０におけるポリシー４２を表示することを示すための「ｂ０」を含む。さらに、インデックスファイル１２２（０）の第１のエントリ１２６は、ベースライン４０の第１のブロック（すなわち、ブロック＃１）がファイルのセットのブロック「Ａ」を含むことを示す。同様に、インデックスファイル１２２（０）の第２のエントリ１２６は、ベースライン４０の第２のブロック（すなわち、ブロック＃２）がファイルのセットのブロック「Ｂ」を含む（以下同様）ことを示す。
【００３５】
データ復元システム２４は、時間の経過に伴って、バージョン４４（すなわち、ポリシーデルタ）を周期的に格納するように構成および配置されている。特に、制御装置３０は、時間Ｔ１において、ベースライン４０が格納された後に変更されたファイルのセットの任意のブロックを保存する。例えば、時間Ｔ１の時点で（例えば、ベースライン４０が格納されてから１５分後に）、ファイルのセットのブロックＡ０、Ｂ０およびＤ０は、ブロックＡ１、Ｂ１およびＤ１に変更されている。従って、データ復元システム２４の制御装置３０は、新しいバージョン４４（１）およびファイルのセットに対する変更を表示するインデックスファイル１２２（１）を保存する。
【００３６】
インデックスファイル１２２（１）に関連して、時間フィールド１２４は、その内容どおり、バージョン４４（１）が時間Ｔ１におけるファイルのセットに対する変更を表示することを示すための「１」を格納する。さらに、エントリ１２６のセットは、バージョン４４（１）がファイルのセットのブロックＡ、ＢおよびＤのそれぞれに対応する３つのブロックを保持することを示す３つのエントリを含む。時間Ｔ０からＴ１までの間にブロックＣ０、Ｅ０およびＦ０は変更されていないため、バージョン４４（１）はブロックＣ、ＥおよびＦを含んでいない。
【００３７】
制御装置３０が記憶サブシステム３２の高価な記憶装置８０内にベースライン４０およびベースライン４０よりも新しいバージョン４４を格納することを理解されたい。従って、制御装置３０は、ベースライン４０およびより新しいバージョン４４への比較的高速なアクセスを享受する。
【００３８】
ファイルのセットに対する変更の取り込みプロセスが長期間続くと仮定する。特に、時間Ｔ２において、制御装置３０は、バージョン４４（２）およびインデックスファイル１２２（２）を保存する。さらに、制御装置３０は、時間Ｔ３においてバージョン４４（３）およびインデックスファイル１２２（３）を、時間Ｔ４においてバージョン４４（４）およびインデックスファイル１２２（４）（以下同様）を保存する。一般に、このプロセスは進行し続け、制御装置３０は、時間Ｔｎにおいてバージョン４４（ｎ）およびインデックスファイル１２２（ｎ）を保存する。
【００３９】
図５は、システム２４によって維持されるバージョン４４の合計数を減少させるために、データ復元システム２４が、設定された間隔で（例えば、毎時１回、毎日１回、毎月１回など）、バージョン４４を合体させるように構成および配置されていることを示す。例えば、バージョン４４（１）、４４（２）、４４（３）および４４（４）は１５分毎に取り込まれるディスクファイルの変更を表示すると仮定する。この状況では、データ復元システム２４は、これらの４つの隣接するバージョン４４（１）、４４（２）、４４（３）および４４（４）を、時間Ｔ０から時間Ｔ４までの１時間におけるファイルのセットに対する変更を表示する単一のバージョン４４（ｈ４）およびインデックスファイル１２２（ｈ４）に合体させることができる。同様に、データ復元システム２４は、次の４つのバージョン４４を、時間Ｔ４から時間Ｔ８までの別の１時間におけるファイルのセットに対する変更を表示する別のバージョン４４（ｈ８）およびインデックスファイル１２２（ｈ８）に合体させる（以下同様）ことができる。
【００４０】
合体動作はさらなるバージョン４４およびインデックスファイル１２２の保存と同時に生じ得ることを理解されたい。例えば、制御装置３０が、例えばあるバージョン４４を一緒に組み合わせる間に、制御装置３０は、例えば、時間Ｔｎ＋１において新しいバージョン４４（ｎ＋１）およびインデックスファイル１２２（ｎ＋１）を、時間Ｔｎ＋２において新しいバージョン４４（ｎ＋２）およびインデックスファイル１２２（ｎ＋２）を保存する（以下同様）ように、クライアント装置２２からの新しいバージョン４４を保存し続ける。好ましくは、システム２４は、低活動期間（例えば、夜遅くまたは早朝）に、合体動作を行う。
【００４１】
制御装置３０が、ファイルのセットに対して変更が全くなされていない状況に遭遇する場合もあることをさらに理解されたい。そのような状況であっても、制御装置３０はインデックスファイル１２２を保存する。例えば、時間Ｔｎと時間Ｔｎ＋１との間に変更がなかったため、インデックスファイル１２２（ｎ＋１）は何のエントリ１２６も含まず、従って空のバージョン４４（ｎ＋１）を表示する。
【００４２】
図６は、データ復元システム２４が、現在の時間に対して適切な速度でベースライン４０を維持するために、設定された間隔で（例えば、毎日１回、毎月１回など）、ベースライン４０を前方に回転させるように構成および配置されていることを示す。ベースラインのブロックが従来のシステム内の最も古いポリシー表示を提供するようにベースラインのブロックを保存期間の最後尾に維持する従来のシステムとは対照的に、データ復元システム２４は、ベースライン４０を現在の時間により近い時間に維持する。例えば、データ復元システム２４の全保存期間を数年（例えば、４年、７年など）にすることができるにも関わらず、ベースライン４０は比較的最近（例えば、２ヵ月、６ヵ月など）に維持されている。
【００４３】
現在の時間によってベースライン４０の速度を維持するために、制御装置３０は、定期的に（例えば、毎月１回、毎年１回など）、ベースライン４０を更新する。例えば、時間Ｔ０から時間Ｔ４にベースライン４０を更新するために、制御装置３０は、ベースライン４０の４つのブロック１２０（すなわち、ブロックＡ、Ｂ、ＣおよびＤ）が時間Ｔ０から時間Ｔ４までの間で変更されたことを示すインデックスファイル１２２（ｈ４）（図５）を読み込む。
【００４４】
この更新を達成するために、制御装置３０は、ブロックＡ０、Ｂ０、Ｃ０およびＤ０をベースライン４０からバージョン４４（×０）にコピーし、かつバージョン４４（×０）がベースライン４０からのブロックＡ０、Ｂ０、Ｃ０およびＤ０を含むことを示すインデックスファイル１２２（×０）を作成する。この動作は、図５ではベースライン４０から離れる矢印で、図６ではバージョン４４（×０）に向かう矢印で示されている。インデックスファイル１２２（×０）は、バージョン４４（×０）が時間Ｔ０におけるポリシー４２のための表示であることを示すための「×０」をインデックスフィールドに含み、ベースライン４０のどのブロックが変更されたのかを識別するエントリ１２６を含む。
【００４５】
次いで、なおインデックスファイル１２２（ｈ４）に基づいて、制御装置３０は、ブロックＡ０、Ｂ０、Ｃ０およびＤ０を、バージョン４４（ｈ４）からのブロックＡ４、Ｂ４、Ｃ４およびＤ３で上書きする。この動作は、図５ではバージョン４４（ｈ４）から離れる矢印で、図６ではベースライン４０に向かう矢印で示されている。この時、ベースライン４０は、時間Ｔ４におけるポリシー４２を表示するように適切に更新されている。さらに、ベースライン４０から削除されたブロックＡ０、Ｂ０、Ｃ０およびＤ０は破棄されずに、今後のアクセスのために記憶サブシステム３２内に維持される。
【００４６】
好ましくは、制御装置３０は、ブロックＡ０、Ｂ０、Ｃ０およびＤ０を高価な記憶装置８０からより低価格の記憶装置８２に移動させる。この最適化された構成では、より低価格の記憶装置８２は、電力および冷却を節約するために最初にスピンダウンされている磁気ディスクドライブを含んでいてもよい。制御装置３０がブロックＡ０、Ｂ０、Ｃ０およびＤ０をドライブに書き込む際は、ドライブは要求に応じてスピンアップされ、ブロックＡ０、Ｂ０、Ｃ０およびＤ０がドライブに書き込まれる。最終的に、ドライブは、使用されない期間がいくらか過ぎた後に自動的にスピンダウンされる。
【００４７】
いくつかの構成では、現在の時間とベースライン４０の時間との時差（すなわち、指定された間隔）は、制御装置３０内の構成パラメータによって設定されている。この構成パラメータはシステム起動時に予め定義されていてもよいが、向上した結果を得るためにシステムの動作中の任意の時間にこの構成パラメータを変更する（例えば、同期する）ことは容易である。特に、そのような同期に応答して、ベースライン４０が現在の時間から指定された時間間隔でポリシー４２を表示するように、単にベースライン４０をさらに前方または後方に回転させる。
【００４８】
基本的に上記動作によってベースライン４０の単一のインスタンス化が常に維持されることを理解されたい。すなわち、現在の時間と同じ速度でベースライン４０を維持するために、単にベースライン４０のブロック１２０はブロックの変更によって上書きされる。
【００４９】
ベースライン４０を現在の時間に対して更新させ続ける別な方法は、最初のベースライン４０のコピーを作成し、次いで最初のベースライン４０のコピーを更新することである。最初のベースライン４０のコピーが完全に更新されると、ベースライン４０の最初のインスタンス化は削除することができる。任意の時間に（ベースライン４０の更新処理の完了を待つことを必要とせずに）復元プロセスを開始するためにベースライン４０を利用することができるため、この変形例は有利な場合がある。
【００５０】
この時点で、図６に示すように、ベースライン４０はその時に時間Ｔ４時点のポリシー４２（すなわち、クライアント装置２２からバックアップされたディスクファイルのセット）を表示していることをさらに理解されたい。ベースライン４０を現在の時間と同じ速度で維持するように、システム２４の上記動作は進行させ続けることができる。
【００５１】
図７は、図６のブロック１２０の集合体になされたさらなる進行を示す。特に、図６の後の新しい時間において、制御装置３０は、インデックスファイル１２２（ｈ８）が、ベースライン４０からのブロックＡ４、Ｂ４、Ｃ４およびＦ０が時間Ｔ４からＴ８までに変更されたことを示しているため（図６も参照）、最初にバージョン４４（×４）にこれらのブロックをコピーすることで、ベースライン４０を前方に回転させる。さらに、制御装置３０は、バージョン４４（×４）がベースライン４０からのブロックＡ、Ｂ、ＣおよびＦを含むことを示すインデックスファイル１２２（×４）を作成する。次いで、制御装置は、ベースライン４０のブロックＡ４、Ｂ４、Ｃ４およびＦ０を、バージョン４４（ｈ８）のブロックＡ６、Ｂ７、Ｃ８およびＦ５（図６も参照）で上書きする。
【００５２】
図７にさらに示すように、制御装置３０は、バージョン４４（ｎ）、４４（ｎ＋１）、４４（ｎ＋２）および４４（ｎ＋３）（図６を参照）を新しい複合バージョン４４（ｈ（ｎ＋３））に合体させ続け、バージョン４４（ｈ（ｎ＋３））に関連する新しいインデックスファイル１２２（ｈ（ｎ＋３））を作成する。また、例えば、図６および図７は、ポリシー４２を表示するブロックの数がＧｎ＋３と符号付けされているさらなるブロックで示されているように、（例えば、ディスクファイルのセットにディスクファイルを追加し、かつ／またはディスクファイルのセットのうちの１つまたは複数の既存のディスクファイルの大きさが増加することにより）経時的に増加し得ることを示す。
【００５３】
この時点で、制御装置３０は、ベースライン４０を１つまたは複数のより新しいバージョン４４と合体させることによってベースライン４０よりも新しい時間のためのポリシー４２を復元させることができ、ベースライン４０を１つまたは複数のより古いバージョン４４と合体させることによってベースライン４０よりも古い時間のためのポリシー４２を復元させることができることを理解されたい。これらの線に沿って、図４〜図７に示すベースライン４０の更新処理は、どのようにベースライン４０がより新しいバージョン４４と組み合わせられるのかを示しており、例えば、時間Ｔ０におけるベースライン４０は、時間Ｔ４におけるポリシー４２を表示するためにバージョン４４（ｈ４）と組み合わせられ、次いで、時間Ｔ８におけるポリシー４２を表示するためにバージョン４４（ｈ８）とさらに組み合わせられる。
【００５４】
図８は、ベースライン４０をより古いバージョン４４と組み合わせて、ベースライン４０よりも古い時間におけるポリシー４２を得る方法を示す。ここで、制御装置３０は、最初にベースライン４０のコピー１４０を作成し、かつインデックスファイル１２２（ｂ８）が実際のベースライン４０を識別するのと同じ方法で（図７も参照）ベースライン４２のコピー１４０を識別するインデックスファイル１２２（ｂ８）のコピー１４２を作成することによって時間Ｔ４で表示されるポリシー４２を提供する。
【００５５】
次に、制御装置３０は、バージョン４４（×４）と、バージョン４４（×４）が以前の形態のベースライン４０からの４つのブロック（すなわち、ブロックＡ４、Ｂ４、Ｃ４およびＦ０）を含むことを示すインデックスファイル４４（×４）を読み込む。次いで、制御装置３０は、コピー１４０のブロックＡ、Ｂ、ＣおよびＦを、これらのより古いブロック１２０で上書きし、よって、時間Ｔ４時点のポリシー４２の復元表示８４を生成する。さらに、制御装置は、表示８４の特定のブロックを識別するインデックスファイル１４４を作成する。
【００５６】
制御装置３０が所望のポリシー表示８４を生成するまで、この後方への回転プロセスは制御装置３０によって繰り返される。ベースライン４０によって表示されるポリシーが比較的最近のものであるため、ベースラインを保存期間の終わりに維持する従来のシステムと比較して、最近のファイルを復元するためにベースライン４０と組み合わせなければならないバージョンの数は減少している。従って、システム２４を用いると、通常はディスク入出力数は減少し、その結果、復元処理は高速化され、かつ電力および冷却の消費が減少する。好ましくは、制御装置３０は、高速なアクセスのために、この表示８４を記憶サブシステム３２の高価な記憶装置８０内に位置づけている（図２も参照）。
【００５７】
いくつかのバージョン４４が最終的に保存期間を越えて古くなると、システム２４は、それらを容易に破棄できることを理解されたい。例えば、最も古いバージョン４４を格納するために光ディスク記憶装置が用いられる場合（例えば、図２のより低価格の記憶装置８２を参照）、制御装置３０は、単に定期的により古いバージョンを含む光ディスクを破壊する（例えば、消去する、上書きする、読み取り不可能にするなど）。別の例としては、最も古いバージョン４４を格納するためにディスク記憶装置が用いられる場合、それらが保存期間を超過すると、制御装置３０は単にバージョン４４を削除して、それにより、記憶容量を向上させる。
【００５８】
結論
上述のように、改良されたデータ復元システム２４は、現在の時間により近いベースライン４０を維持し、かつベースライン４０よりも古いバージョン４４（ｏ）ならびにベースライン４０よりも新しい他のバージョン４４（ｎ）を格納する。より古いバージョン４４（ｏ）は、ベースライン４０よりも古いポリシー表示８４の回復を可能にする。より新しいバージョン４４（ｎ）は、ベースライン４０よりも新しいポリシー表示８４の回復を可能にする。従って、比較的最近のポリシーを復元するためにベースライン４０と組み合わせなければならないバージョン４４の数は減少し、従って、復元時間が高速化され、かつプロセスにおける消費電力が減少する。さらに、ベースライン４０よりも古いポリシー表示８４は、ベースライン４０を１つまたは複数のより古いバージョン４４（ｏ）と組み合わせることによって容易に回復させることができる。その上、通常はより古いポリシー表示８４の復元には高速な処理は必要とされないため、最も古いバージョン４４（ｏ）は、比較的低コストであり、かつ、動作のために著しくより少ない電力のみを必要とする記憶装置８２（例えば、スピンダウンされる低価格のディスクドライブ、ＣＤ−ＲＯＭなど）内に位置づけることができる。
【００５９】
特に、本発明の様々な実施形態について図示および説明してきたが、添付の特許請求の範囲に記載されている本発明の精神および範囲から逸脱することなく、それらの形態および詳細における様々な変形が可能であることが当業者には理解されるであろう。
【図１】
2011175642.tif 000003
【図２】
2011175642.tif 000004
【図３】
2011175642.tif 000005
【図４】
2011175642.tif 000006
【図５】
2011175642.tif 000007
【図６】
2011175642.tif 000008
【図７】
2011175642.tif 000009
【図８】
2011175642.tif 000010
【外国語明細書】
2011175642000001.pdf