(57)【特許請求の範囲】
【請求項１】
データ（６４）を生成し、これをローカル・ストレージ・エリア（７４）において格納し用いるプロセッサ（６０）と、前記データをバックアップまたは保管するリモート・ストレージ・エリア（６２）とを含むコンピュータ・システムにおいて、前記ローカル・ストレージ・エリアから前記リモート・ストレージ・エリアに前記データを転送する方法であって、これにより前記リモート・ストレージ・エリアにおけるストレージの必要量、および前記データの転送における運用上の負担を最小にする前記の方法において、
前記ローカル・ストレージ・エリアにおける前記データをステージング・エリアへ転送すべきことを示す第１トリガ・イベントを捜すことによって、前記ローカル・ストレージ・エリアにおいて前記プロセッサが生成するデータを監視するステップ（１２４）と、
前記第１トリガ・イベントの検出時に、前記データのコピーを前記ローカル・ストレージ・エリアから前記ステージング・エリアに転送するステップ（１２８）とを含み、
１つ以上のスパース・ファイル（７６）において、前記データ（７４）の前記転送されたコピーを処理して、ストレージ必要量を減少させた対応のデータを作成し、次いでこれを用いて前記コピーと置換するステップと、
前記１つ以上のスパース・ファイルにおいて発生した、ストレージ必要量を減少させた前記対応のデータを前記リモート・ストレージ・エリアへ転送すべきことを示す第２トリガ・イベントを捜すことによって、前記ステージング・エリアにおける前記スパース・ファイル（７６）を監視するステップ（１３０）と、
前記第２トリガ・イベントの検出時に、ストレージ必要量を減少させた前記対応のデータ（８６）を前記ステージング・エリアから前記リモート・ストレージ・エリア（６２）に転送するステップ（１３２）と、
をさらに含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記第１トリガ・イベント（１２４）は、前記ローカル・ストレージ・エリアが所定量のデータを収容したとき、所定時間が経過したとき、又は前記第１トリガ・イベントが、データを保管する、外部ソースからの指令から成るときに発生する、方法。
【請求項３】
請求項１記載の方法において、前記第２トリガ・イベント（１３０）は、前記スパース・ファイルが所定量のデータを収容したとき、所定時間が経過したとき、又は前記第２トリガ・イベントが、前記リモート・ストレージ・エリアへのデータの転送を開始する、外部ソースからの指令から成るときに発生する、方法。
【請求項４】
請求項１記載の方法であって、更に、前記データのコピーを転送するステップ（１２８）または前記対応のデータを転送するステップ（１３２）のいずれか一方の後に、ローカル・ストレージ空間の割り当てを解除するステップ（１３６）を含む、方法。
【請求項５】
請求項１記載の方法であって、更に、前記リモート・ストレージ・エリアに転送した前記データに対応する空間量に実質的に等しい、前記１つ以上のスパース・ファイルにおける空間の割り当てを解除するステップ（１３４）を含む、方法。
【請求項６】
請求項１記載の方法であって、更に、前記ステージング・エリアにおいて、前記リモート・ストレージ・エリアに転送した前記データに必要なストレージ空間に実質的に等しいストレージ空間量の割り当てを解除して（１３４）、前記ステージング・エリアにおいて追加のストレージ空間を解放するステップを含む、方法。
【請求項７】
請求項６記載の方法において、前記ステージング・エリアは、非ゼロ・データのあらゆるストレージ空間を実質的に排除したスパース・ファイル（７６）を含む、方法。
【請求項８】
請求項１記載の方法において、前記処理は、非ゼロ・データを格納するのに必要なストレージ空間を減少させるために、非ゼロ・データを圧縮するステップをさらに含む、方法。
【請求項９】
請求項１記載の方法において、前記ステージング・エリアにおけるストレージ空間が自動的に割り当てを解除されるように、前記１つ以上のスパース・ファイル内のデータをゼロ化するステップをさらに含む、方法。
【請求項１０】
データを生成し、これをローカル・ストレージ・エリアにおいて格納し用いるプロセッサと、前記データをバックアップまたは保管するリモート・ストレージ・エリアとを含むコンピュータ・システムにおいて使用するコンピュータ可読媒体であって、前記プロセッサを有するコンピュータに請求項１乃至９のいずれかに記載の方法を実行させるコンピュータ実行可能命令を格納する、コンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
（発明の背景）
発明の分野
本発明は、ローカル・ストレージ・エリアからリモート・ストレージ・エリアにデータを転送し、保管するシステムおよび方法に関する。更に特定すれば、本発明は、データをリモート・ストレージに転送する前に、一次的に格納、即ち、ステージ（staging）するシステムおよび方法に関するものである。
（本技術分野の技術的現状）
コンピュータはかつては科学的および技術的努力の秘密研究に属する理解しがたい奇異なものであったが、今日ではコンピュータは社会の主流に入り、日常生活の一体化部分となっている。コンピュータによって格納し、管理し、操作するデータ量は、増々増え続けている。コンピュータに格納するデータの重要性は、凡庸なものから極秘のものまでの範囲に及ぶ。重要な情報の保護に役立てるために、種々の格納媒体上に情報を「バックアップ」または「保管」する多くのシステムおよび方式が考案されている。重要な情報のコピーを多数扱うことにより、情報のコピーの１つが損傷したり、または何らかの事情で利用できなくなった場合、バックアップ・ストレージ媒体から情報を検索することが可能となる。
【０００２】
バックアップまたはアーカイブの機能、あるいは多くの場合同義語として用いられるが、バックアップ・システムは、通常、重要な情報のコピーを多数維持し、情報のコピーの１つが損傷したり利用できなくなった場合に、当該情報を他のコピーから検索できるようにすることを意図したものである。一方、アーカイブ・システムは、通常、特定のファイルまたは記憶装置のような、特定のエンティティに対して行われた変更の完全な履歴を維持することを意図したものである。しかしながら、バックアップ・システムおよびアーカイブ・システムは、多くの共通性を有し、一方のシステムに対して論じられたり適用される原理の多くは、他方にも同様に適用可能である。例えば、双方のシステムは、通常、データをローカル・ストレージ媒体から、遠隔地に位置する場合もあるバックアップまたはアーカイブ・ストレージ媒体にコピーする。データをローカル・ストレージ媒体からバックアップまたはリモート・ストレージ媒体に転送するステップは、いずれの場合でも全く同じである。
【０００３】
ローカル・ストレージ媒体からバックアップ・ストレージ媒体に、バックアップまたはアーカイブの目的でデータをコピーするのは、瞬時的なプロセスではない。ローカル・ストレージ媒体からバックアップ・ストレージ媒体にデータを転送する際に要する時間は、ローカルおよびバックアップ・ストレージ媒体のアクセス時間、および２つのストレージ媒体間で転送するデータ量によっては、かなり長くなる場合もある。このプロセスは瞬時的でないので、いくつかの問題が生ずる可能性がある。例えば、特定のファイルまたはボリュームをバックアップする場合、バックアップ手順の最中に当該ファイルまたはボリュームの内容を変更させず、論理的に一貫性のあるバックアップ・コピーを作成することが、常に重要である。論理的に一貫性のあるコピーとは、内部に不一致がないコピーのことである。例えば、財務トランザクション・データベースのバックアップまたはアーカイブを作ることを想定する。また、バックアップが進んでいる最中に、個人が１つの口座から別の口座に送金しようとしていることも想定する。一方の口座から出金する（debit）トランザクションおよび他方の口座に入金する（credit）トランザクション双方が同じバックアップ・コピーにバックアップされない場合、内部不一致が生ずる。
【０００４】
このような論理的不一致を避けるために、いくつかの手法を用いることができる。１つの手法は、アーカイブまたはバックアップ手順の間、特定のファイルに対するアクセスを制限または禁止することである。このような手法は、当該ファイルに対するアクセスを切断することが現実的に可能な状況では、うまく行く。しかしながら、状況によっては、このような手法が現実的でない場合もある。コンピュータ・システムによっては、１日２４時間、１週間に７日オン・ラインでなければならない動作に使用する場合もある。これらの環境では、格納してある情報のバックアップまたはアーカイブ・コピー作成は、非常に困難なこともあり得る。アーカイブまたはバックアップ・コピーを作成している最中にファイルへのアクセスを許可する手法の１つは、バックアップまたは保管する情報を二重化（duplicate）し、一時的格納エリアに情報を「ステージ」することである。次いで、情報をステージング・エリアからコピーし、バックアップまたはアーカイブ・ストレージに送ることができる。
【０００５】
生憎、情報をステージング・エリアにコピーすることから、いくつかの問題が生ずる。例えば、ステージ・データを格納するために、ストレージ空間を別途設けなければならない。データのコピーを多数作成するに連れて、確実なバックアップまたはアーカイブ・コピーを作成するために必要なストレージの必要量が増大する。したがって、バックアップまたはアーカイブ・コピーの作成または維持に必要となる余分なストレージ空間を極力抑えるように、ステージング・ストレージ空間を管理することが重要である。
【０００６】
したがって、バックアップまたはアーカイブ・ストレージへの転送に先立って、データをステージするために必要なストレージ空間を極力抑えるステージング機構が求められている。このステージング機構は、ストレージ空間の量を可変とすることができなければならない。何故なら、ステージする必要があるデータ量は、幅広く変動する要因に応じて増大または減少する可能性があるからである。更に、ステージング・エリアにおけるストレージ管理は、バックアップまたはアーカイブ・システムによる介入を殆どまたは全く必要とせず、システムに対する運用上の負担を極力軽くしなければならない。
【０００７】
バックアップまたはアーカイブ・システムにおいて時々遭遇する別の問題に、使用するバックアップまたはアーカイブ媒体の種類に関係するものがある。ある形態のバックアップまたはアーカイブ媒体を最も効率的に使用するには、規定したサイズのデータ集合体としてバックアップまたはアーカイブ媒体に書き込む。例えば、あるシステムでは、光ディスクをアーカイブまたはバックアップ・ストレージとして利用することが望ましい場合がある。多くの場合、データのバックアップまたは保管を行う前に、十分な情報を収集し光ディスクを完全に埋める方が効率的である。このような状況では、ステージング・エリアが十分なデータを収容し、バックアップ媒体を完全に満たすまで、バックアップまたは保管するデータをステージング・エリアに移動させることが望ましい場合が多い。
【０００８】
このようにステージング・エリアを用いる場合、時間的に連続してステージング・エリアにデータを入力する機能が必要となる。このような場合、バックアップまたはアーカイブに追加すべきデータが特定される毎に、必要なストレージ空間を割り当てることが多くの場合望ましい。したがって、ストレージ空間の量を可変とすることができ、データを生成するに連れて、ストレージ空間を動的に割り当てることができるステージング・エリアを有することができれば望ましいであろう。更に、バックアップまたはアーカイブ・システムに対するオーバーヘッドが殆どまたは全くなく、このような機能を備えることができれば、非常に望ましいであろう。
（発明の概要）
当技術分野の技術的現状における前述の問題は、本発明によって確実に克服されることとなった。本発明は、データをステージするために必要なストレージ空間量を最小に抑えつつ、同時にアーカイブまたはバックアップ・システムに対する運用上の負担を極力軽くするステージング機構を用いて、データを保管またはバックアップするシステムおよび方法に関するものである。ストレージ空間および運用上の負担双方を極力抑えるために、本発明は、スパース・ファイル技術を用い、リモート・ストレージ媒体への転送に先立ってデータをステージする。本発明の説明（context）では、バックアップまたはアーカイブ・ストレージのことを、リモート・ストレージと呼ぶことにする。リモートという命名は、通常コンピュータ・システムによって利用するローカル・ストレージ・ボリュームとは別個で離れたストレージを表現することを意図するものである。リモート・ストレージは、必ずしも、ストレージがアーカイブ・システムから離れて位置することを意味する訳ではない。アーカイブまたはバックアップ・ストレージは、このような目的に適しているのであれば、あらゆるストレージ媒体を含むことができる。このようなストレージ媒体の位置は、バックアップまたはローカル・システム内部である場合もあり、あるいはバックアップまたはアーカイブ・システムから離れている場合もある。
【０００９】
スパース・ファイル技術とは、スパース・データを効率的に格納するために設計された技術のことである。スパース・データとは、有用なデータ即ち非ゼロ・データを含むデータのある部分と、ゼロ・データを含むデータの他の部分とを有するデータのことである。このような状況に遭遇することは多く、例えば、疎に入力した（populate）マトリクスまたはスプレッドシートにおいて、あるエントリは非ゼロであるが、マトリクスまたはスプレッドシードの大部分がゼロ・データを収容する場合がある。スパース・ファイル技術は、このような情報をローカル・ストレージ媒体に格納するのに先立って、ゼロ・データを除去するが、データを検索する際には再現することができるようなフォーマットで格納するように設計している。本発明はあらゆるスパース・ファイル技術を利用可能であるが、一実施形態は、Ｗｉｎｄｏｗｓ  ＮＴのスパース・ファイル機能を用いて、所望の特性を有するステージング・エリアを作成する。
【００１０】
Ｗｉｎｄｏｗｓ  ＮＴのスパース・ファイル技術を利用することにより、ステージング・ストレージの必要性に応じて拡大および縮小が可能なステージング・エリアを備えることができる。スパース・ファイルに非ゼロ・データを格納する場合、当該非ゼロ・データを格納するのに十分なストレージ空間を自動的に割り当てる。スパース・ファイルにゼロ・データを格納する場合、またはスパース・ファイル内に既に格納してあるデータをゼロ・データと置換する場合、ゼロ・データを除去し、ゼロにしたあらゆるストレージ空間の割り当てを解除する（deallocate）。こうして、スパース・ファイル技術は、ゼロ・データおよび非ゼロ・データの混成を、非ゼロ・データを格納するために必要なストレージ空間にほぼ等しい空間に格納することを可能にする。ストレージ空間は、必要に応じて自動的に割り当て、そして割り当てを解除するので、スパース・ファイル技術を用いたステージング・エリアは、事実上バックアップまたはアーカイブ・サービスに対するオーバーヘッドなく、データをステージング・エリアから添付または除去することを可能にする。
【００１１】
本発明を用いてデータをバックアップまたは保管する方法は、ステージング・エリアに転送すべき十分なデータがローカル・ストレージ上に存在するときに開始する。例えば、データ生成部がデータを生成し、それをローカル・ストレージ上に格納している場合、規定量のデータをローカルに格納したとき、または特定の時間が経過したときに、スパース・ファイル技術を用いてデータをローカル・ストレージからステージング・エリアにコピーまたは移動することができる。このエリアに移動したデータを、スパース・ファイルに格納する。スパース・ファイルにデータを格納する際、スパース・ファイルはあらゆるゼロ部分を排除する。ステージング・エリア内のデータ量を監視し、バックアップまたはアーカイブ・セッションを起動すべきときを特定することも可能である。あるいは、最後のバックアップまたはアーカイブ以来の時間を監視し、特定の時間が経過したときにセッションを起動することも可能である。アーカイブまたはバックアップ・セッションを起動する時点以前にローカル・ストレージに追加のデータが利用可能になった場合、このようなデータは、ステージング・エリア内に既に格納してあるデータに添付することができる。一旦バックアップまたはアーカイブ・セッションを起動し、データをステージング・エリアからリモート・ストレージに移動したなら、バックアップまたは保管したデータのステージング・エリア・コピーを保持する必要はない。ステージング・エリア内で転送したデータを格納するために割り当てていたストレージ空間は、安全に解放し割り当てを解除することができる。スパース・ファイル技術を用いる場合、バックアップまたは保管したデータを単にゼロにすることによって、これを行うことができる。次いで、スパース・ファイル技術は、ゼロにしたデータをローカル・ストレージから割り当て解除、即ち、除去する。状況によっては、一旦データをステージング・エリアにコピーしたなら、またはデータをバックアップまたはアーカイブ・ストレージに転送した後に、データ生成部が使用していたローカル・ストレージ・エリアからストレージ空間の割り当てを解除し、除去することも可能な場合がある。
【００１２】
本発明の更に別の利点は、以下に続く説明に明記してあり、部分的にはその説明から自明であり、あるいは本発明の実施によって習得することができる。本発明の利点は、添付した特許請求の範囲に特定的に指摘した手段（instrument）および組み合わせによって、実現し獲得することができる。本発明のこれらおよびその他の特徴は、以下の説明および添付した特許請求の範囲から一層明らかとなり、以下に明記するように本発明の実施によって習得することができる。
（図面の簡単な説明）
本発明の先に引用した利点およびその他の利点を得るために、添付図面に示すその具体的な実施形態を参照しながら、先に端的に説明した本発明の更に特定的な説明を行う。これらの図面は、本発明の典型的な実施形態のみを図示するのであり、したがってその範囲の限定と見なすべきでないことを理解の上で、添付図面の使用を通じて、具体性を高め詳細に本発明の記述および説明を行う。
（好適な実施形態の詳細な説明）
以下に、本発明のシステムおよび方法を実現するために用いる実施形態の構造または処理のいずれかを図示する図面を用いて、本発明について説明する。このように図面を用いて本発明を提示することは、その範囲の限定として解釈すべきことではない。本発明は、階層状データ格納のための方法およびシステム双方を念頭に入れている。本発明の実施形態は、種々のコンピュータ・ハードウエアを備えた特殊目的コンピュータまたは汎用コンピュータから成るものとすることができ、以下で更に詳細に説明する。
【００１３】
また、本発明の範囲に該当する実施形態は、実行可能な命令またはデータ・フィールドが記憶されているコンピュータ読み取り可能媒体も含む。このようなコンピュータ読み取り可能媒体は、汎用コンピュータまたは特殊目的コンピュータによってアクセス可能で、かつ入手可能なあらゆる媒体とすることができる。一例として、限定ではなく、このようなコンピュータ読み取り可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク・ストレージ、磁気ディクス・ストレージまたはその他の磁気記憶装置、あるいは所望の事項可能な命令またはデータ・フィールドを格納するために用いることができ、汎用コンピュータまたは特殊目的コンピュータによってアクセス可能なその他のあらゆる媒体を含むことができる。前述の組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれて当然である。実行可能な命令とは、例えば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理装置に、ある種の機能または機能群を実行させる、命令やデータを含む。
【００１４】
図１および以下の論述は、本発明を実現可能な、適当な計算機環境の端的で全体的な説明を行うことを意図したものである。本発明は、パーソナル・コンピュータが実行するプログラム・モジュールのような、コンピュータ実行可能命令に全体的に関連して説明するが、これが必要条件ということではない。一般的に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行したり、あるいは特定の抽象的なデータ型を実装する。更に、本発明は、ハンド・ヘルド型デバイス、マルチ・プロセッサ・システム、マイクロプロセッサを用いたまたはプログラム可能な民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ等を含む、その他のコンピュータ・システム構成とでも実施可能であることを、当業者は認めよう。また、本発明は、分散型計算機環境においても実施可能であり、その場合、タスクは、通信ネットワークを通じてリンクしてあるリモート処理デバイスによって実行する。分散型計算機環境では、プログラム・モジュールは、ローカルおよびリモート記憶装置双方に位置することができる。
【００１５】
図１を参照すると、本発明を実現するシステム例は、従来のコンピュータ２０の形態の汎用計算機を含み、演算装置２１、システム・メモリ２２、およびシステム・メモリ２２ないし演算装置２１を含む種々のシステム・コンポーネントを結合するシステム・バス２３を含む。システム・バス２３は、種々のバス・アーキテクチャのいずれかを用いたメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含む、数種類のバス構造のいずれでもよい。システム・メモリは、リード・オンリ・メモリ（ＲＯＭ）２４、およびランダム・アクセス・メモリ（ＲＡＭ）２５を含む。起動中等においてコンピュータ２０内のエレメント間の情報転送に供する基本ルーチンを収容する基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４に格納しておくことができる。また、コンピュータ２０は、図示しない磁気ハード・ディスクの読み取りおよび書き込みを行う磁気ハード・ディスク・ドライブ２７、リムーバブル磁気ディスク２９の読み取りおよび書き込みを行う磁気ディスク・ドライブ２８、ならびにＣＤ−ＲＯＭまたはその他の光媒体のようなリムーバブル磁気ディスク３１の読み取りおよび書き込みを行う光ディスク・ドライブ３０も含むことができる。磁気ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光ディスク・ドライブ３０は、ハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光ディスク・ドライブ・インターフェース３４によって、それぞれシステム・バス２３に接続してある。これらのドライブおよびそれに関連するコンピュータ読み取り可能媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、およびコンピュータ２０用のその他のデータの不揮発性格納を可能にする。ここに記載する環境の一例は、磁気ハード・ディスク２７、リムーバブル磁気ディスク２９およびリムーバブル光ディスク３１を採用するが、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）のような、コンピュータによるアクセスが可能なデータを格納することができる、他の種類のコンピュータ読み取り可能媒体も、動作環境の一例において使用可能であることは、当業者には認められよう。
【００１６】
多数のプログラム・モジュールを、ハード・ディスク、磁気ディクス２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５上に格納することができ、オペレーティング・システム３５、１つ以上のアプリケーション・プログラム３６、その他のプログラム・モジュール３７、およびプログラム・データ３８を含む。ユーザは、キーボード４０およびポインティング・デバイス４２のような入力デバイスによって、コマンドおよび情報をコンピュータ２０に入力することができる。他の入力デバイス（図示せず）として、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ（satellite dish）、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス２３に結合してあるシリアル・ポート・インターフェース４６を介して、演算装置２１に接続しているが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）のようなその他のインターフェースによって接続することも可能である。モニタ４７または別の種類の表示装置も、ビデオ・アダプタ４８のようなインターフェースを介して、システム・バス２３に接続する。モニタに加えて、パーソナル・コンピュータは、通常、スピーカやプリンタのような、その他の周辺出力デバイス（図示せず）を含む。
【００１７】
コンピュータ２０は、リモート・コンピュータ４９のような１つ以上のリモート・コンピュータへの論理接続を用いて、ネットワーク環境で動作することも可能である。リモート・コンピュータ４９は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の一般的なネットワーク・ノードとすることができ、通常、コンピュータ２０に関して先に記載したエレメントの多くまたは全てを含むが、メモリ記憶装置５９だけを図１に示す。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）５１およびワイド・エリア・ネットワーク（ＷＡＮ）５２を含み、ここでは、例示のためにこれらを提示するが、限定ではない。このようなネットワーク環境は、事務所の企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【００１８】
ＬＡＮネットワーク環境で用いる場合、コンピュータ２０は、ネットワーク・インターフェースまたはアダプタ５３を介して、ローカル・ネットワーク５１に接続する。ＷＡＮネットワーク環境で用いる場合、コンピュータ２０は通常モデム５４またはインターネットのようなワイド・エリア・ネットワーク５２を通じて通信を確立するその他の手段を含む。モデム５４は、内蔵型でも外付け型でもよく、シリアル・ポート・インターフェース４６を介してシステム・バス２３に接続する。ネットワーク環境では、コンピュータ２０に関連して図示したプログラム・モジュールまたはその一部を、リモート・メモリ記憶装置に格納することも可能である。図示のネットワーク接続は一例であり、コンピュータ間に通信リンクを確立するその他の手段も使用可能であることは認められよう。
【００１９】
ここに論ずる本発明の例は、通常、アーカイブ・サービスを利用する。尚、本発明は、アーカイブ・システムだけでなくバックアップ・システムにも適用可能であることは理解されよう。したがって、アーカイブ・システムまたはサービスを詳細に示す例は代表例であり、本発明の範囲を限定するように解釈してはならない。同様に、バックアップまたはアーカイブ・コピーを格納するストレージも、以下の例では、リモート・ストレージと呼ぶことにする。この命名は、通常コンピュータ・システムによって使用するローカル・ストレージとは別個で離れたストレージを示すことを意図するものである。リモートという命名は、必ずしも、バックアップまたはアーカイブ・ストレージの位置を特定するために用いる訳ではない。例えば、特定のコンピュータ・システムに直接取り付けたバックアップまたはアーカイブ・ストレージも、当該ストレージは遠隔地に位置するのではないが、リモート・ストレージと呼ぶ。このように、リモート・ストレージという用語は、広く解釈することを意図しており、バックアップまたはアーカイブ・ストレージにバックアップまたは保管するデータを格納するために用いる、ローカル・ハード・ディスクのような、ローカル・ストレージからは別個の、ローカルおよびリモート双方のバックアップおよびアーカイブ・ストレージ全てを含むのは当然である。
【００２０】
ここで図２を参照し、本発明の一実施形態の上位図を示す。図２では、データ生成部６０のような１つ以上のデータ生成部がデータを作成し、これをリモート・ストレージ６２のようなバックアップまたはアーカイブ記憶装置にバックアップまたは保管する。データ生成部６０が生成するデータは、ローカル・コンピュータ・システムのハード・ディスクのような、ローカル・ストレージ媒体に格納する。図２では、データ生成部６０は、データ・ファイル６４内にデータを格納するように示してある。データ・ファイル６４は、データ生成部６０が生成したデータを格納するために用いるローカル・ストレージ・エリアを表わす。このようなデータは、必ずしも、従来の意味ではデータ・ファイルに格納しなければならない訳ではない。しかしながら、殆どの場合に該当する。
【００２１】
第１イベントが発生し、ローカル・ストレージ・エリアのデータをステージング・エリアに転送することが示された場合、アーカイブ・システム６６は、適切な量のデータを、データ・ファイル６４のようなローカル・ストレージ・エリアから、データを一時的に格納するのに適したステージング・ストレージ・エリアに移動させる。したがって、本発明の範囲内の実施形態は、データ生成サービスによってデータ格納に用いられるローカル・ストレージ・エリアから、データを一時的にステージするために用いられるステージング・ストレージ・エリアにデータを移動させる手段を備えることができる。例えば、適切なロケーションからデータを読み出し、ステージング・ストレージ・エリア内にデータのコピーを格納するというように、この機能を行うあらゆる機構が利用可能である。直接メモリ転送等のような、そのほかの機構も利用可能である。図２では、データを移動させる手段を、矢印６８、７０および７２で示す。これらの矢印は、データ・ブロック７４のようなデータのブロックを、ローカル・ストレージ・エリアからステージング・ストレージ・エリアに移動させることを図示したものである。
【００２２】
先に論じたように、ステージング・ストレージ・エリアは、効率的にデータを格納し、不要なストレージ空間を全て排除することが望ましい。一実施形態では、本発明は、ゼロ・データおよび非ゼロ・データの混成から成るスパース・データを、非ゼロ・データを格納する際に必要なストレージ空間未満または実質的にこれに等しいストレージ空間に格納する手段を用いる。言い換えると、このような手段は、最低限として、ゼロ・データを格納するために必要な空間に等しいストレージ空間を実質的に排除することができる。これは、以下で説明するように、またはその他のいずれかの方法で、ゼロ・データを格納するのに必要なストレージ空間を実質的に排除することによって、行うことができる。このような手段は、更に進んで、非ゼロ・データを圧縮し、非ゼロ・データを格納するために必要なストレージ空間を縮小することも可能である。しかしながら、本発明の全ての実施形態にこのようなことが必要な訳ではない。とは言え、ゼロ・データを格納するために必要となるはずのストレージ空間に等しいストレージ空間を実質的に排除することができれば、望ましいであろう。限定ではなく一例として、図２では、このような格納手段は、データ・ステージング・スパース・ファイル７６で例示している。スパース・ファイル７６を実現するには、いずれの種類の技術でも利用可能である。Ｗｉｎｄｏｗｓ  ＮＴにおける適当な技術について、以下で更に詳しく論ずる。必要とされる全ては、スパース・ファイル７６が、非ゼロ・データのみを格納するために必要なストレージ空間に実質的に等しいストレージ空間に、非ゼロ・データおよびゼロ・データの混成から成るデータを格納できることである。
【００２３】
第２の所定のイベントが発生すると、アーカイブ・システム６６は、スパース・ファイル７６内のデータ全てまたはその一部をリモート・ストレージ６２に転送する。したがって、本発明の範囲内に該当する実施形態は、ステージング・ストレージ・エリアからリモート・ストレージ媒体にデータを転送する手段を備えることができる。限定ではなく一例として、図２では、このような手段は、矢印７８、８０および８２で示しており、スパース・ファイル７６からデータを移動させ、リモート・ストレージ通信インフラストラクチャ８４に送出することを示す。このようなデータは、スパース・ファイル７６からデータを検索し、直接データをリモート・ストレージ６２に送出するか、あるいは中間システムまたはサブシステムに送出し、次いでこれが適切なデータをリモート・ストレージに送出することができるあらゆる機構によって実現することができる。
【００２４】
図２では、アーカイブ・システム６６がデータをリモート・ストレージ６２に送出するために用いる機構は、リモート・ストレージ通信インフラストラクチャ８４である。本発明の実施形態の中には、リモート・ストレージ６２を直接、アーカイブ・システム６６が常駐するコンピュータ・システムに取り付けることが可能な場合もある。このような状況では、リモート・ストレージ通信インフラストラクチャ８４は、ドライバに他ならず、関連するハードウエア・デバイスを用いてリモート・ストレージ６２にデータを格納し、あるいはリモート・ストレージ６２からデータを検索することができる。しかしながら、他の実施形態では、リモート・ストレージ６２は、アーカイブ・システム６６が常駐するコンピュータ・システムとは別個の場所に配置することも可能である。このような実施形態では、リモート・ストレージ通信インフラストラクチャ８４は、アーカイブ・システム６６がデータをリモート・ストレージ６２に転送することを可能にするために必要な、種々のドライバ、インターフェース・カード、ネットワーク、コンピュータ・システム、サブシステム等を表わすことができる。必要とされる全ては、アーカイブ・システム６６が、リモート・ストレージ６２がどこに位置していても、情報をリモート・ストレージ６２に転送する機能（ability）である。
【００２５】
データ・ブロック８６のようなデータをスパース・ファイル７６からリモート・ストレージ６２に転送した後、スパース・ファイル７６にデータを維持する必要はない。したがって、スパース・ファイル７６からデータを削除してもよく、以前データが占有していたストレージの割り当てを解除し、スパース・ファイル７６の全体的なデータ・ストレージ要求量を減少させることができる。したがって、本発明の範囲内に該当する実施形態は、データをステージング・ストレージ・エリアからリモート・ストレージに転送した場合、ステージング・エリア内のストレージ空間を割り当て解除する手段を備えることができる。限定ではなく一例として、図２では、このような手段を矢印８８で示す。ストレージの割り当てを解除する手段を実現するために用いる正確な機構は、スパース・ファイル７６およびアーカイブ・システム６６の部分を実現するために用いる技術に左右される。以下で更に詳しく論ずるが、スパース・ファイル７６内に格納してあるデータがゼロである場合に、スパース・ファイル７６が自動的にストレージ空間の割り当てを解除するのであれば、割り当て解除手段は、スパース・ファイル７６内のデータをゼロ化（zeroing）する手段を備えることができる。
【００２６】
既に説明したように、本発明の範囲内に該当する実施形態は、非ゼロ・データを格納するために必要なストレージ空間に実質的に等しいストレージ空間に、ゼロ・データおよび非ゼロ・データの混成から成るスパース・データを格納する手段を備えることができる。このような手段は、この機能を実行可能ないずれの機構でもよい。一例として、このような手段は、スパース・ファイルを構成するとして、既に記載した。適切な格納手段を実現するためには、いずれのスパース・ファイル技術でも使用可能である。しかしながら、一実施形態では、本発明は、ＮＴファイル・システム（ＮＴＦＳ）のスパース・ファイル機構を利用する。Ｗｉｎｄｏｗｓ  ＮＴファイル・システムについては、Microsoft Press（マイクロソフト出版）が出版した、Helen Custer（ヘレン・カスター）の”Inside the Windows NT File System”（Windows NTファイル・システムの内側）に記載されている。その内容は、この言及により本願にも含まれるものとする。ＮＴＦＳの重要度が高い特徴の一部について以下に説明し、本発明において有用なＮＴＦＳの様々なコンポーネントを例示することにする。本発明のステージング・エリアにはその他のあらゆるスパース・ファイル技術でも使用可能であるので、このような論述は、限定ではなく、一例として与えるである。
【００２７】
ここで図３を参照し、Ｗｉｎｄｏｗｓ  ＮＴＦＳファイルの種々の属性を示す図を提示する。図３において、ファイルを構成する属性を２つの基本的グループに分割することができる。第１グループはシステム属性を含み、第２グループはユーザ属性を含む。一般に、システム属性は、システムがその種々の機能を実行するために必要な情報または要求する情報を格納するために用いる。このようなシステム属性は、一般に、ロバストなファイル・システムの実現を可能にする。一般に、システム属性の正確な数および形式は、利用する個々のオペレーティング・システムまたは個々のファイル・システムに全体的に依存する。一方、ユーザ属性は、ユーザ制御データを格納するために用いる。これは、ある状況の下では、ユーザは１つ以上のシステム属性へのアクセスを得ることができないということを言っているのではない。しかしながら、ユーザ属性は、ユーザまたはクライアント・プログラムが対象データをプログラムに格納できる、ストレージ・ロケーションを定義する。図３では、システム属性は、標準情報属性９０、属性リスト９２、名称属性９４、セキュリティ記述子９６、およびその他のシステム属性９８から成る。ユーザ属性は、データ属性１００およびその他のユーザ属性１０２を含む。
【００２８】
標準情報属性９０は、リード・オンリ、システム、隠れ（hidden）等のような標準的な「ＭＳ−ＤＯＳ」属性を表わす。属性リスト９２は、ファイルが、マスタ・ファイル・テーブルに記録されている１つの記憶レコード以上を占める場合に、ＮＴＦＳがファイルを構成する追加の属性の場所を識別するために用いる属性である。マスタ・ファイル・テーブルは、ファイルまたはディレクトリの常駐属性全てを格納してある場所である。名称属性９４は、ファイルの名称である。ファイルは、ＮＴＦＳ内に多数の名称属性を有することができ、例えば、長いファイル名称、短いＭＳ−ＤＯＳファイル名称等がある。セキュリティ記述子属性９６は、Ｗｉｎｄｏｗｓ  ＮＴが、ファイルを所有する者およびそれにアクセスできる者を指定するために用いるデータ構造を含む。その他のシステム属性９８は、ＮＴＦＳファイルの一部とすることができるその他のシステム属性を表わす。これらの属性については、先に引用して本願にも含まれるものとした、Inside the Windows NT File Systemに更に詳しく記載されている。通常、ＮＴＦＳファイルは、図３にデータ属性１００として示すデータ属性を１つ以上有する。殆どの従来のファイル・システムは、単一のデータ属性のみに対応する。データ属性とは、基本的に、ユーザ制御データを格納することができるロケーションのことである。例えば、ワード・プロセシング文書の文書は、通常、ファイルのデータ属性の中に格納する。ＮＴＦＳファイル・システムでは、ファイルは多数のデータ属性を有することができる。１つのデータ属性を「無名」データ属性（unnamed data attribute）と呼び、一方他の属性は有名データ属性であり、各々関連する名称を有する。データ属性の各々は、異なる形式のユーザ制御データを格納することができるストレージ・ロケーションを表わす。
【００２９】
１つ以上のデータ属性に加えて、ファイルは、その他の属性１０２で例示するように、その他のユーザ定義属性も有することができる。このような属性は、ユーザが定義しファイルに格納する、他のあらゆる属性を表わす。このようなユーザ属性は、ユーザが望むあらゆる目的のために、定義し、作成し、用いることができる。
【００３０】
以上の論述は特定の形式のファイルに関する詳細に入り込んだが、このようなことは、例示に過ぎず、本発明の範囲を限定するものとして解釈してはならない。本発明は、あらゆる形式のファイルまたはその他のエンティティとでも動作する。
【００３１】
次に図４を参照し、スパース・ファイル・ストレージ機構の一例を提示する。この例は、ＮＴＦＳが用いてスパース・ファイルを格納する機構を示す。更なる情報は、先に引用して本願にも含まれるものとした、Inside the Windows NT File Systemの第６章において見出すことができる。図４では、全体的に１０４で示すデータ・ファイルは、非ゼロ・データ１０６（陰影なしブロックで示す）およびゼロ・データ１０８（陰影付きブロックで示す）の混成を有する。ＮＴＦＳでは、ファイルは、クラスタと呼ぶ、一連の割り当て単位でデータを格納する。ＮＴＦＳは、０からｍまでの仮想クラスタ番号（ＶＣＮ）を用いて、ファイルのクラスタを列挙する。データ・ファイル１０４は、０〜１４と付番した１５個のクラスタを有する。図４では、データ・ファイル１０４の仮想クラスタ番号を、全体的に１１０で示す。各ＶＣＮは、クラスタのディスク・ロケーションを識別する、対応の論理クラスタ番号（ＬＣＮ）にマップする。図４のデータ・ファイル１０４は、１３７２ないし１３７５、１５５３ないし１５５７、および１８１０ないし１８１５と付番した、３つのクラスタ・グループ（ディスク割り当て）を有する。図４では、論理クラスタ番号を全体的に１１２で示す。
【００３２】
ＮＴＦＳでは、ファイルのデータ属性は、ＶＣＮをＬＣＮにマップする情報を含む。データ・ファイル１０４のデータ属性を図４では１１４で示す。尚、データ属性は、ファイルに対するディスク割り当ての各々に、１つのエントリを含むことを注記しておく。
【００３３】
先の論述では、クラスタという用語は、最小割り当て単位を定義する、ディスク上のセクタ集合体に言及するために用いた。ＮＴＦＳは、いくつのセクタが１つのクラスタを構成するのかについて判断する機構を定義する。クラスタおよびセクタがどのように関係するのかについての更なる情報は、先に引用して本願にも含まれるものとした、Inside the Windows NT File Systemに見出すことができる。本発明の目的上、クラスタおよびセクタ間の対応は無関係とする。図４に示す方式は、クラスタを構成するセクタ数には無関係に、動作する。
【００３４】
図４に示すように、データ・ファイル１０４はデータがゼロであるエリアをいくつか含む。これらのエリアは、ＶＣＮ２〜８およびＶＣＮ１１〜１３である。これらのクラスタはゼロを含むので、あるエンティティがディスクからデータを読み出すときにゼロ・データのロケーションを再現することができれば、ディスク上にゼロ・データを格納しておく必要はない。言い換えると、ディスク上に物理的に格納する必要があるクラスタは、クラスタＶＣＮ０〜１、ＶＣＮ９〜１０、およびＶＣＮ１４だけである。これは、図４では全体的に１１６で示す。この場合、ＶＣＮ０および１をそれぞれＬＣＮ１１３７およびＬＣＮ１１３８に格納し、ＶＣＮ９、１０および１４をそれぞれＬＣＮ１４１１、１４１２および１４１３に格納する。
【００３５】
データ属性への適切なエントリを作成することにより、ゼロ・クラスタのロケーションは、データを読み出すときに再現可能となる。データ属性の一例を全体的に１１８で示す。どのようにデータ属性がゼロ・クラスタのロケーション再現を可能にするのかについての一例として、エントリ１２０を調べる。エントリ１２０は、ＶＣＮ０がＬＣＮ１１３７にて開始し、連続クラスタ数が２であることを示す。したがって、ＶＣＮ０および１は、ＬＣＮ１１３７にて開始して読み出される。しかしながら、エントリ１２２はＶＣＮ９から開始することに注意すること。つまり、ＶＣＮ２〜８はゼロ・クラスタに違いなく、読み出し要求を受け取ったときに、これらのクラスタは、ＶＣＮ０および１の後に適切な数のゼロ・クラスタを挿入することによって、再現することができる。ＮＴＦＳがどのようにスパース・ファイル技術を用いてゼロ・クラスタを圧縮し排除するかについての更なる情報は、先に引用して本願にも含まれるものとした、Inside the Windows NT File Systemの第６章において見出すことができる。
【００３６】
ここで図５を参照し、ローカルに格納したデータをリモート・ストレージにバックアップまたは保管するために一実施形態が利用可能なステップを示すフロー図を提示する。図５において、本方法は判断ブロック１２４から開始し、ステージング・エリアにステージするだけの十分なデータがローカル・ストレージ内にあるか否かについて確認する。ステージするだけの十分なデータがローカル・ストレージ内にない場合、システムは、図５において時間遅延１２６で示す所与の時間期間だけ待ち、ローカル・ストレージ内のデータ量を再度チェックする。尚、判断ブロック１２４および時間遅延１２６は、ローカル・ストレージ内にステージング・ファイルにステージするだけの十分なデータがあるか否かについてシステムが調べるために周期的にチェックする際に用いる機構を示す。所与のローカル・ストレージを利用したときにステージング・エリアにデータをステージする代わりに、本システムの他の実施形態では、ローカル・ストレージ内のデータ量には関係なく、周期的に、得られるデータをいずれもステージすることも可能である。言い換えると、データをステージング・エリアにステージするためのトリガ・イベントは、データ量の蓄積ではなく、経過時間の満了となる。
【００３７】
ここで図５に戻り、一旦トリガ・イベントが発生したなら、所与のデータ量の蓄積、所与の時間遅延の満了、データをステージするコマンドの受け取り、またはその他のトリガ・イベントのいずれであっても、実行はステップ１２８に進み、ローカル・ストレージからステージング・ファイルにデータをコピーする。このステップは、数種類の形態から１つを取ることができる。例えば、データがローカルおよびリモート双方に位置する場合、ステップ１２８は単純なコピーとして、適切なデータを二重化し、データがローカル・ストレージおよびステージング・ファイル双方に位置するようにすればよい。しかしながら、データをローカル・ストレージからリモート・ストレージに移動させる場合、ステップ１２８はローカル・ストレージからステージング・エリアにデータを移動させ、データがステージング・エリアにのみ位置し、ローカル・ストレージ・エリア内には位置しないようにすればよい。しかしながら、データをローカル・ストレージからリモート・ストレージに移動させる場合であっても、この時点では単にデータをコピーし、ローカル・ストレージおよびステージング・ファイル双方にデータが位置するようにし、データをリモート・ストレージに置くことに成功した後に、ローカル・ストレージからデータを削除または排除することが望ましい場合もある。これについては、以下のステップ１３６に関連付けて更に詳しく説明する。
【００３８】
ステップ１２８においてデータをステージング・ファイルにコピーした後、システムは次に第２のトリガ・イベントを待つ。種々の実施形態では、このトリガ・イベントは、数種類のことの１つとすることができる。例えば、外部ソースからのコマンド受信を、トリガ・イベントとして用いる実施形態もあり得る。別の実施形態では、トリガ・イベントは、固定時間の満了としてもよい。更に別の実施形態では、トリガ・イベントは、ステージング・ファイル内にある量のデータが存在することとしてもよい。図５に示す実施形態では、トリガ・イベントは、時間遅延の満了である。したがって、判断ブロック１３０は、リモート・ストレージ接続を確立する時点か否かについて判定を行う。その時点でない場合、実行は判断ブロック１３８に進み、ステージング・ファイルに更にデータを添付すべきか否かについて判定を行う。この判定は、判断ブロック１２４および判断ブロック１３０に関連付けて先に説明したような、いずれかのトリガ・イベントに基づいて行えばよい。ステージング・ファイルに添付する別のデータが存在する場合、ステップ１４０においてデータを添付する。いずれの場合でも、実行は判断ブロック１３０に戻り、リモート・ストレージへの接続を開始する第２のトリガ・イベントを待つ。
【００３９】
先に説明したように、リモート・ストレージは、必ずしも、バックアップまたはアーカイブ・ストレージが遠隔地に位置することを意味する訳ではない。この命名が意味するのは、バックアップまたはアーカイブ・ストレージがローカル・ストレージ・エリアとは別個であるということである。一方、リモート・ストレージが実際に遠隔地に位置することもあり得る。このように、リモート・ストレージとして用いるストレージの種類によって、リモート・ストレージへの接続の確立は、バックアップまたはアーカイブ・サービスが位置するコンピュータに取り付けられているディスクまたはその他の記憶装置に単に書き込むだけである場合もあり、あるいはネットワークを通じた接続、ダイアル・アップ接続、他のコンピュータを経由した接続等の確立を必要とし遥かに複雑な場合もある。使用する機構は、使用するリモート・ストレージの種類によって異なる。
【００４０】
第２のトリガ・イベントが発生し、リモート・ストレージへの接続を確立する時点である場合、ステップ１３２は、データをステージング・ファイルからリモート・ストレージに転送することを指示する。データを転送する正確な機構は、用いるリモート・ストレージの種類によって異なる。先に論じたように、これは、ローカル・ディスクまたは記憶装置へのデータ書き込みに他ならない場合もあり、あるいは種々のネットワークを通じて、あるいは種々のコンピュータ・システムまたはその他の中間デバイスを経由してリモート・ストレージにデータを転送しなければならない場合もあり得る。
【００４１】
データをリモート・ストレージに転送し終えた後には、ステージング・ファイル内にデータを保持する必要はない。したがって、ステップ１３４は、ステージング・ファイル内の転送したデータを格納するために用いていたデータ・ストレージの割り当てを解除することを示す。これによって、ステージング・ファイルが使用するストレージ量を減少させる。図４に示したようなスパース・ファイル技術をステージング・ファイルとして用いる場合、ストレージ空間の割り当て解除は、転送したデータをゼロと置換することに他ならないものとすることができる。次いで、スパース・ファイル技術のために用いる機構は、ゼロ・クラスタを排除し、ステージング・ファイルにどのようなストレージ媒体を用いていても、それらを格納しない。他の技術を用いてデータをステージする場合、ステージング・ファイルにおいてストレージの割り当てを解除するには、別の機構が必要となる場合もある。しかしながら、割り当て解除手順は、バックアップまたはアーカイブ・システムに対して発生するオーバーヘッドを極力少なくすることが好ましい。
【００４２】
図５のステップ１３６は、適用可能であれば、ローカル・ストレージの割り当てを解除してもよいことを示す。データのコピーをリモートおよびローカル双方で維持する意図がある場合、データをリモート・ストレージにコピーし終えたときにローカル・ストレージの割り当てを解除することが望ましくないのは明らかであろう。一方、リモートにはデータを維持するが、ローカルには維持しないことが望ましい場合、一旦データをリモート・ストレージに移動させ終えたならば、ローカル・ストレージから安全に削除することができる。先に論じたように、ステップ１２８の後に、このステップを実行することも可能である。このステップをステップ１２８の後に実行するか、あるいは図５に示す現在の位置で実行するかは、個々のシステムを実現する際に行われる種々の設計選択によって決められる。
【００４３】
次に図６を参照し、データをリモートに維持するがローカルには提示すべきでない状況の特定例を提示する。この例は、ログ・ファイルの関連において発生する。ログ・ファイルは、一連のイベントまたは変更が発生する毎にこれらを追跡することが望ましい種々の状況において用いる。一例として、ＮＴＦＳは、ディスク・ボリュームに行う変更を追跡し、エラーが発生した場合に、ボリュームの復元を可能とするために、ログ・ファイルを用いる。図６では、ログ・ファイル・サービス即ちログ・ファイルの生成部を１４２で示す。ログ・ファイル・サービスは、全体として１４４で示すログ・ファイルを作成する。ログ・ファイルは、イベントまたは変更のストリーム即ちシーケンスを捕獲するので、ログ・ファイルは、イベントまたは変更が発生する毎にファイルの終端に新たなエントリを添付して行く、アペンド・オンリ型ファイル（append-only type file）で実現するとよい。記録するイベントの種類、およびこれらのイベントが発生する頻度に応じて、ログ・ファイルは非常に大きく成長する場合もある。加えて、多くの場合、ローカル・ストレージ内に完全なログ・ファイルを維持することは不要である。一般に、ログ・ファイルの短い部分即ちアーカイブ履歴を維持し、必要であればログ・ファイル内のいずれかのレコードにアクセスできれば十分である。この状況は、ログ・ファイルを、ある評価基準を満たすログ・エントリを取り込み、ストレージにこれらをリモートに保管し、ローカル・ストレージからこれらを除去する、アーカイブ・サービスの理想的な候補にする。
【００４４】
図６では、ログ・ファイルを、３つの部分を有するものとして示す。新ログ・レコード１４６は、ログ・ファイルに置かれた新たなレコードを収容する。アクティブ履歴レコード１４８は、その中に収容されているレコードに対して即座にアクセスできるようにするために、ローカル・ストレージに維持すべきログ・ファイルの部分を収容する。旧履歴レコード１５０は、アーカイブ評価基準を満たし、安全にリモート・ストレージに保管し、ローカル・ストレージから除去できるレコードを収容する。
【００４５】
概略的に、本システムの一実施形態では、種々のトリガ・イベントを利用して、所定のアクションを実行することを指示する。例えば、本システムの一実施形態は、ログ・ファイル内のいずれかのレコードが旧履歴レコード・カテゴリに該当し、安全にアーカイブ・ストレージに移動させることができるか否かを確認するために常にチェックを行うことも可能である。別の代替案として、恐らく、アーカイブ・システムは、どれだけのレコードが旧履歴カテゴリに該当するかを監視し、十分な数が蓄積したときに、アーカイブ・システムが移動プロセスを開始する。更に別の例として、恐らく、アーカイブ・システムは外部要求に応答して、アーカイブ動作を開始する。その他のトリガ・イベントも利用可能である。このようなトリガ・イベントを用いる実施形態は、所定のイベントがいつ発生するか監視する手段を備えるとよい。これら所定のイベントの発生に基づいて、アーカイブ・システムは種々のアクションを行うことができる。図６では、所定のイベントがいつ発生するか監視する手段は、例えば、イベント・モニタ１５２で例示している。イベント・モニタ１５２は、多種多様な方法で実現可能である。最新のオペレーティング・システムでは、例えば、多くのプログラム、サービス、またはプロセスはイベント・ドリブン（event driven）である。これが意味するのは、サービス、プログラムまたはプロセスは、所定のイベントが発生したときに、所定のアクションを実行するということである。したがって、このモデル上で構築するサービス、プログラム、プロセス等は、いつ種々のイベントが発生するのか監視するビルトイン機構を内蔵することができる。これらの機構を適切に変更し、所望のトリガ・イベントを注視して、そのイベントが発生したときに適切なアクションを開始するようにするとよい。他の代替案として、監視手段を動作させておき（go out）、所定のイベントが発生したか否か確認するために積極的にチェックするようにしてもよい。図６に示す実施形態では、イベント・モニタ１５２は、旧履歴レコード１５０のステージング・エリア１５４のようなステージング・エリアへの移動をトリガすることができる。
【００４６】
ログ・ファイル１４４からステージング・エリア５１４に旧履歴レコード１５０を移動させるので、本発明の範囲内に該当する実施形態は、データ生成サービスがデータ格納に用いるローカル・ストレージ・エリアからステージング・エリアにデータを移動させる手段を備えることができる。限定ではなく一例として、図６では、このようにデータを移動させる手段は、データ移動ブロック１５６から成る。図６では、データ移動ブロック１５６は、旧履歴レコード１５０をステージング・エリア１５４にコピーする役割を担う。旧履歴レコード１５０をステージング・エリア１５４にコピーすることを可能にする機構であれば、いずれでもデータ移動ブロック１５６に利用することができる。図５に関連して既に説明したように、データ移動ブロック１５６は単に旧履歴レコード１５０をステージング・エリア１５４にコピーするだけであると考えられるが、旧履歴レコード１５０をステージング・エリア１５４に移動させ、これらを移動させつつログ・ファイル１４４から排除することも可能である。
【００４７】
図６における実施形態は、ステージング・エリア１５４を用いて、リモート・ストレージ１５８のようなリモート・ストレージへの転送に先立って、データをステージする。旧履歴レコード１５０がゼロ・データおよび非ゼロ・データの混成から成ることが考えられる。このため、本発明の実施形態は、非ゼロ・データを格納するのに必要なストレージ空間に実質的に等しいストレージ空間にゼロ・データおよび非ゼロ・データの混成から成るスパース・データを格納する手段を備えるとよい。言い換えると、非ゼロ・データのみを格納するのに必要なストレージ空間に実質的に等しいストレージ空間に、データを格納する機構を備える実施形態も可能である。図６では、このような手段は、一例として、ステージング・エリア１５４で示している。先に論じたように、このような手段は、図４に関連して説明したスパース・ファイル技術のような、スパース・ファイル格納技術を用いることによって実現することができる。種々のデータ圧縮機構等のような、その他の機構も使用可能である。総合的な目標は、ステージングに必要なストレージ空間を減少させることであり、より狭い範囲では、ステージング・エリアのストレージ空間の管理に伴うオーバーヘッドを削減することである。
【００４８】
一旦データをステージング・エリア１５４に移動させたなら、第２のトリガ・イベントが発生したときに、データをステージング・エリア１５４からリモート・ストレージ１５８に転送する。この場合も、イベント・モニタ５１２のように、所定のイベントがいつ発生するかを監視する手段によってトリガ・イベントを監視することができる。図６では、データをステージング・エリアからリモート・ストレージに転送する手段は、リモート・アーカイブ・ブロック１６０で示す。アーカイブ・ブロック１６０は、ステージング・エリア１５４から適切な情報を抽出し、この情報を適切な機構を経由してリモート・ストレージ１５８に転送する機構であれば、いずれでもよい。リモート・ストレージ１５８は、アーカイブ・システムが常駐するコンピュータに直接取り付けたディスクまたはその他の記憶装置、ネットワークまたはダイアル・アップ接続を通じてアクセスするリモート記憶装置、または中間のコンピュータまたはその他の中間デバイスを経由してアクセスするリモート記憶装置のように、多種多様な記憶機構で構成可能であることを思い出されたい。図６では、適切な情報をステージング・エリア１５４から抽出し、これをリモート・ストレージ１５８に転送するプロセスは、リモート・ストレージ通信インフラストラクチャ１６４を経由してアーカイブ・レコード１６２をリモート・ストレージ１５８に転送することによって示してある。リモート・ストレージ通信インフラストラクチャ１６４は、情報をリモート・ストレージ１５８に伝達し転送するのに必要なあらゆる機構を備えることができる。
【００４９】
一旦データを安全にリモート・ストレージ１５８に転送したならば、ログ・ファイルおよび／またはステージング・エリアからデータを安全に除去することができる。したがって、本発明の範囲内に該当する実施形態は、ローカル・ストレージ・エリア内のストレージ空間の割り当てを解除する手段、および／またはステージング・エリアにおけるストレージ空間の割り当てを解除する手段を備えるとよい。図６では、このような手段は、一例として、ストレージ割り当て解除ブロック１６６によって示している。図６には、ログ・ファイルを扱う実施形態を提示する。このような状況では、旧履歴レコードをログ・ファイルに維持しておく必要がない可能性が高い。したがって、割り当てを解除する手段は、ローカル・ストレージの割り当てを解除する手段、およびステージング・エリアのストレージの割り当てを解除する手段の双方を含むことも可能である。尚、これら個々のストレージ・タイプの各々を割り当て解除する手段は非常に異なる場合もあることを注記しておく。ストレージの割り当てをどのようにして解除するかは、ステージング・エリアおよびローカル・ストレージに用いる個々の記憶機構によって異なる。例えば、先に説明したスパース・ファイル技術を用いてステージング・エリア１５４を実現する場合、リモート・ストレージ１５８に転送し終えたアーカイブ・レコードは、単に、ステージング・エリア１５４に用いたスパース・ファイルにおいてそれらをゼロ化することによって、割り当てを解除することができる。つまり、図４に関連付けて先に説明したように、スパース・ファイルの性質から、ゼロ化したセクタは物理的にファイルから割り当て解除されることになる。同様の機構をログ・ファイル１４４にも使用可能であるが、同じスパース・ファイル技術を用いる必要はない。
【００５０】
要約すると、本発明は、ステージング・ストレージ・エリアが最小量のストレージ空間を用い、その管理に伴うオーバーヘッドをバックアップまたはアーカイブ・システムに殆どまたは全く負担させないように、データをリモート・ストレージにバックアップまたはアーカイブするシステムおよび方法を提供する。
【００５１】
本発明は、その精神または本質的な特徴から逸脱することなく、他の特定的な形態においても具体化することができる。記載した実施形態は、いかなる観点においても、限定ではなく例示として見なすべきである。したがって、本発明の範囲は、前述の説明ではなく、添付した請求の範囲によって示すものとする。特許請求の範囲の均等の意味および範囲に該当する全ての変更は、その範囲に包含するものとする。
【図面の簡単な説明】
【図１】  本発明に適した動作環境を備えるシステム例である。
【図２】  本発明の一実施形態の上位図である。
【図３】  本発明と共に用いるのに適したファイル構造を示す図である。
【図４】  スパース・ファイル技術の一例を示す図である。
【図５】  本発明によるフロー図である。
【図６】  本発明の別の実施形態である。
【図１】
0004323719.tif 000002
【図２】
0004323719.tif 000003
【図３】
0004323719.tif 000004
【図４】
0004323719.tif 000005
【図５】
0004323719.tif 000006
【図６】
0004323719.tif 000007