JP2009501390A - 領域を解放するための、ストレージボリューム上のファイルから代替ロケーションへのデータの移動 - Google Patents

領域を解放するための、ストレージボリューム上のファイルから代替ロケーションへのデータの移動 Download PDF

Info

Publication number
JP2009501390A
JP2009501390A JP2008521514A JP2008521514A JP2009501390A JP 2009501390 A JP2009501390 A JP 2009501390A JP 2008521514 A JP2008521514 A JP 2008521514A JP 2008521514 A JP2008521514 A JP 2008521514A JP 2009501390 A JP2009501390 A JP 2009501390A
Authority
JP
Japan
Prior art keywords
file
data
ghosted
ghosting
volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008521514A
Other languages
English (en)
Other versions
JP4955677B2 (ja
JP2009501390A5 (ja
Inventor
バラクリシュナン ショバナ
サイラス ハヴェワラ サロシュ
スリヤナラヤナン グハン
フランク ロバート クリストフ
テオドシウ ダン
エス.ブジョーナー ニコライ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009501390A publication Critical patent/JP2009501390A/ja
Publication of JP2009501390A5 publication Critical patent/JP2009501390A5/ja
Application granted granted Critical
Publication of JP4955677B2 publication Critical patent/JP4955677B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

コンピューティング装置は、ファイルシステムによってストレージ媒体(128)上に保存され、そのようなファイルシステム(131)を介してアクセスされる、ファイルを有する。ファイルは、データと、データに関するメタデータとを含むように定義され、ファイルのデータの少なくとも一部は、データが実質的にボリューム上のどの領域も占有せず、ファイルが縮小されたゴースト化形式をとるように、ファイルから除去され、代替ロケーションに保存される。ゴースト化ファイルは、代替ロケーションからデータを取り出し、そのような取り出されたデータをそのようなゴースト化ファイルに関連付けて、再構成ファイルを形成することによって、使用のために再構成される。

Description

本発明は、ストレージボリューム上の領域を解放するために、ストレージボリューム上に保存されたコンピュータファイル内のデータが、代替ロケーションに移動または「ゴースト化(ghost)」されることを可能にする、アーキテクチャおよび方法に関する。より詳細には、本発明は、ゴースト化ファイル(ghosted file)の残りがストレージボリューム上に留まり、必要に応じて、代替ロケーションのゴースト化データが取り出され、ゴースト化ファイル内に置き戻されて、逆ゴースト化ファイル(de−ghosted file)を作り出す、アーキテクチャおよび方法に関する。
パーソナルコンピュータまたはコンピュータサーバなどのコンピューティング装置では、知られているように、データは、典型的には、コンピューティング装置の1つまたは複数のローカルストレージボリューム上に存在するローカルコンピュータファイルの形式で、コンピューティング装置上に永続的に保存される。そのような各ストレージボリュームは、コンピューティング装置のハードドライブ上などに存在することができ、そのようなストレージボリュームは、やはり知られているように、コンピューティング装置上で動作するファイルシステムによって編成され、ファイルシステムを介してアクセスされ、さもなければファイルシステムによって管理される。
時には、ストレージボリューム上のコンピュータファイルのいくつかが、多くが、場合によっては大部分さえもが、興味のないものであり、「コールド(cold)」になっていると考えられ得る場合があり得る。すなわち、そのようなコールドファイル(cold file)は、例えば、かなりの長期間にわたってアクセスされたことがなく、かつ/またはかなりの長期間にわたってアクセスされない可能性が高く、したがって、ボリューム上に留まり続ける実際上の価値は、持つとしても僅かしか持たない。
もちろん、そのようなコールドファイルは、そのようなボリューム上で空き領域を必要とする場合は特に、ストレージボリュームから単に削除されることができる。しかし、大部分のユーザは、単に空き領域を作るためだけに、ファイルを削除することを嫌うことを認識されたい。加えて、認知された不使用だけを理由にして、コールドファイルを削除することは悪い実践であると考えられている。いずれにしても、コールドファイルは、必要であるとは考えられず、また必要になるとは予想されなくても、それにも関わらず、将来のいずれかの時点で必要になり得る場合があり得、そうなる可能性がある。
そのような状況では、そのようなコールドファイルがボリューム上にプレゼンス(presence:存在すること)を維持することを依然として可能にしながら、そのようなコールドファイルから代替ロケーションにデータを移動させることによって、ボリューム上に空き領域を作り得ることが役に立つ。すなわち、コールドファイルをより小さい「ゴースト化」された形式でボリューム上に残しながら、そのようなコールドファイルから代替ロケーションにデータを移動させることによって、コールドファイルを「ゴースト化」し得ること、またはファイル全体を代替ロケーションにコピーし得ることが役に立つ。したがって、実際に、ゴースト化ファイルがコンピューティング装置上で必要とされる場合、そのようなゴースト化ファイルのデータが、代替ロケーションから取り出されることができ、それに基づいて、ゴースト化ファイルが再構成されることができ、その後、そのような再構成ファイルが利用されることができる。
別のシナリオでは、企業などのデータファイルが、おそらくハブなどの中央ロケーションから、企業の複数の支店ロケーションにレプリケートされる場合があり得る。例えば、建築設計会社は、すべての建築設計ファイルが、その会社の複数の支店のどこででも利用可能であることを望むかもしれない。
そのような状況では、各ファイルのコピーを各支店にレプリケートし、すべての支店のすべてのファイルを最新に維持するために、ネットワーク接続されたシステムが構築されることができる。そのようなシステムでは、例えば、中央ハブサーバが、そのような各ファイルを保存し、ハブの各ファイルのコピーを、ネットワークを介して、各支店の支店サーバなどに分散させるために、レプリケーションサービスが利用される。しかし、企業のファイルの数が増大するにつれて、各ファイルのサイズが増大するにつれて、また支店の数が増大するにつれて、ネットワークを介するトラフィックの量も、おそらく利用可能な帯域幅を超える点まで増大する。さらに、ハブのすべてのファイルの総サイズが増大するにつれて、各支店サーバが、ハブサーバからレプリケートされるそのようなファイルのすべてを保存するために利用可能な領域を十分に持たない場合が実際に生じ得る。
先のシナリオと類似しているが、特定の支店の支店サーバ上のコンピュータファイルのいくつかが、多くが、場合によっては大部分さえもが、興味のないものであり、不要であると考えられ得る場合があり得る。そのような不要ファイルは、例えば、その特定の支店には関係のない事柄に関するかもしれず、その特定の支店を介してアクセスされない可能性が高く、したがって、その特定の支店用の支店サーバ上にレプリケートされる実際上の価値は、持つとしても僅かしか持たない。例えば、ペンシルベニア州ウィルクスバレにある建築設計会社の支店は、フロリダ州ボイントンビーチにあるその会社の支店によって主導されるプロジェクトに関する建築設計ファイルを保有する必要は、あるとしてもごく僅かしかない可能性が高い。
そのような状況では、先のシナリオと同様に、特定の支店に関係するファイルだけは、その特定の支店の支店サーバ上に全体を保存し、企業用のハブサーバから利用可能なその他のすべての無関係なファイルは、その特定の支店のその支店サーバ上に一部だけを保存し得ることが役に立つ。したがって、先のシナリオの方法と類似した方法により、無関係な各ファイルはより小さい「ゴースト化」された形式で支店サーバ上に留まるように、特定の支店の支店サーバにおいて無関係なファイルを「ゴースト化」し得ることが役に立つ。したがって、やはり、実際に、ゴースト化ファイルが支店サーバにおいて必要とされる場合、そのようなゴースト化ファイル用のデータが、ハブサーバから取り出されることができ、それに基づいて、ゴースト化ファイルが再構成されることができ、その後、そのような再構成ファイルが利用されることができる。
したがって、ローカルボリュームまたは支店サーバなどのソース(source)のファイルが、ファイルのデータが代替ロケーションまたはハブサーバなどのシンク(sink)に保存されるように、レプリケートまたはゴースト化されることができ、その結果、ソースのファイルが、必要に応じて再構成され得る縮小またはゴースト化形式をとるようにする、方法およびメカニズムに対する必要が存在する。特に、そのようなゴースト化ファイルが、必要に応じて形成および再構成されることができるようにする、そのような方法およびメカニズムに対する必要が存在する。
上述の必要は、コンピューティング装置が、ストレージボリュームと、ストレージボリュームを管理するファイルシステムと、ファイルシステムによってストレージボリューム上に保存され、そのようなファイルシステムを介してアクセスされるファイルとを有する本発明によって少なくとも部分的には満たされる。ファイルは、データと、データに関するメタデータとを含むように定義され、データが実質的にボリューム上のどの領域も占有せず、ファイルが縮小されたゴースト化形式をとるように、ファイルのデータの少なくとも一部は、ファイルから除去され、代替ロケーションに保存される。ゴースト化ファイルは、代替ロケーションからデータを取り出し、そのような取り出されたデータをそのようなゴースト化ファイルに関連付けて、再構成ファイルを形成することによって、使用のために再構成される。
ファイルをゴースト化するため、ファイルが識別され、ファイルから除去されるデータの少なくとも一部が識別され、識別されたデータは、ファイルから、そこに保存される代替ロケーションに移動されて、ファイルは、縮小されたゴースト化形式をとる。移動されたデータによってそれまで占有されていたボリューム上の領域は、空きであるとして標識が付される。加えて、ゴースト化中ファイル(now−ghosted file)のメタデータは、ファイルの、移動されたデータを、代替ロケーションから取り出すために利用され得る情報を含むゴースト化情報(ghosting information)を含むように修正される。
ゴースト化ファイルは、ゴースト化ファイルの、移動されたデータに、アクセスする要求を受け取ったときに再構成される。要求に応答して、ゴースト化ファイルがボリューム上で発見され、ファイルのメタデータ内のゴースト化情報が識別され、識別されたゴースト化情報に基づいて、代替ロケーションにある、ファイルの、移動されたデータが発見される。その後、発見されたデータは、代替ロケーションからコンピューティング装置に移動され、移動されたデータは、そのようなゴースト化ファイルと関連付けられて、再構成ファイルを形成する。
上述の要約および以下に示される本発明の実施形態の詳細な説明は、添付の図面と併せて読むことで、より良く理解されるであろう。本発明を説明する目的で、図面には現時点で好ましい実施形態が示されている。しかし、理解されるべきこととして、本発明は、示された通りの構成および手段に限定されない。
コンピュータ環境
図1および以下の説明は、本発明および/または本発明の部分が実施され得る適切なコンピューティング環境の簡潔な概略的説明を提供することが意図されている。必ずしも必要ではないが、本発明は、クライアントワークステーションまたはサーバなどのコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的背景において説明される。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。さらに、本発明および/または本発明の部分は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、およびメインフレームコンピュータなどを含む、その他のコンピュータシステム構成を用いて実施されることもできることを理解されたい。本発明は、通信ネットワークを介して結合されるリモート処理装置によってタスクが実行される、分散コンピューティング環境でも実施されることができる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモート両方のメモリ記憶装置に配置されることができる。
図1に示されるように、例示的な汎用コンピューティング装置は、処理ユニット121と、システムメモリ122と、システムメモリを始めとする様々なシステム構成要素を処理ユニット121に結合するシステムバス123とを含む、従来のパーソナルコンピュータ120などを含む。システムバス123は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、複数のタイプのバス構造のいずれかとすることができる。システムメモリは、読み出し専用メモリ(ROM)124およびランダムアクセスメモリ(RAM)125を含む。基本入出力システム(BIOS)126は、起動中などにパーソナルコンピュータ120内の要素間で情報を伝送する助けをする基本ルーチンを含み、ROM124内に保存される。
パーソナルコンピュータ120は、ハードディスク(図示されず)から読み取り、それに書き込むためのハードディスクドライブ127と、着脱可能磁気ディスク129から読み取り、それに書き込むための磁気ディスクドライブ128と、CD−ROMまたはその他の光媒体などの着脱可能光ディスク131から読み取り、それに書き込むための光ディスクドライブ130とをさらに含むことができる。ハードディスクドライブ127、磁気ディスクドライブ128、および光ディスクドライブ130は、それぞれハードディスクドライブインタフェース132、磁気ディスクドライブインタフェース133、および光ディスクドライブインタフェース134によって、システムバス123に接続される。ドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶をパーソナルコンピュータ120に提供する。
本明細書で説明される例示的な環境は、ハードディスク、着脱可能磁気ディスク129、および着脱可能光ディスク131を利用するが、コンピュータによってアクセス可能なデータを保存することができるその他のタイプのコンピュータ可読媒体も、例示的な動作環境で使用され得ることを理解されたい。そのようなその他のタイプの媒体は、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌイカートリッジ、ランダムアクセスメモリ(RAM)、および読み出し専用メモリ(ROM)などを含む。
オペレーティングシステム135、1つまたは複数のアプリケーションプログラム136、その他のプログラムモジュール137、およびプログラムデータ138を含む多数のプログラムモジュールが、ハードディスク、磁気ディスク129、光ディスク131、ROM124、またはRAM125上に保存されることができる。ユーザは、キーボード140およびポインティングデバイス142などの入力装置を介して、パーソナルコンピュータ120にコマンドおよび情報を入力することができる。その他の入力装置(図示されず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、またはスキャナなどを含むことができる。上記およびその他の入力装置は、システムバスに結合されるシリアルポートインタフェース146を介して、しばしば処理ユニット121に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などのその他のインタフェースによって接続されてもよい。モニタ147またはその他のタイプの表示装置も、ビデオアダプタ148などのインタフェースを介して、システムバス123に接続される。モニタ147に加えて、パーソナルコンピュータは、典型的には、スピーカおよびプリンタなどのその他の周辺出力装置(図示されず)も含む。図1の例示的なシステムは、ホストアダプタ155、スモールコンピュータシステムインタフェース(SCSI)バス156、およびSCSIバス156に接続される外部記憶装置162も含む。
パーソナルコンピュータ120は、リモートコンピュータ149などの1つまたは複数のリモートコンピュータへの論理コネクションを使用して、ネットワーク環境で動作することができる。リモートコンピュータ149は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、またはその他の共通ネットワークノードとすることができ、典型的には、パーソナルコンピュータ120に関して上で説明された要素の多くまたはすべてを含むが、図1にはメモリ記憶装置150のみが示されている。図1に示される論理コネクションは、ローカルエリアネットワーク(LAN)151およびワイドエリアネットワーク(WAN)152を含む。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
LANネットワーク環境で使用される場合、パーソナルコンピュータ120は、ネットワークインタフェースまたはアダプタ153を介して、LAN151に接続される。WANネットワーク環境で使用される場合、パーソナルコンピュータ120は、典型的には、インターネットなどのワイドエリアネットワーク152を介する通信を確立するためのモデム154またはその他の手段を含む。モデム154は、内蔵または外付けとすることができ、シリアルポートインタフェース146を介してシステムバス123に接続される。ネットワーク環境では、パーソナルコンピュータ120に関して示されたプログラムモジュールまたはその部分は、リモートメモリ記憶装置内に保存されることができる。示されたネットワーク接続は、例示的なものであり、コンピュータ間の通信リンクを確立するその他の手段も使用され得ることを理解されたい。
ファイルのゴースト化および再構成
次に図2を参照すると、本発明では、パーソナルコンピュータまたはコンピュータサーバなどのコンピューティング装置10は、ハードドライブまたは永続性RAMドライブなどのストレージボリューム12を有し、ボリューム12は、そこに多数のコンピュータファイル14を保存し、ボリューム12上のファイル14は、コンピューティング装置10上で動作するファイルシステム16によって編成され、ファイルシステム16を介してアクセスされ、さもなければファイルシステム16によって管理される。理解され得るように、コンピューティング装置10、ボリューム12、ファイル14、およびファイルシステム16は、本発明の主旨および範囲から逸脱することなく、任意のタイプのコンピューティング装置、ボリューム、ファイル、およびファイルシステムとすることができる。
本発明の一実施形態では、コンピューティング装置10は、パーソナルコンピュータなどであり、コンピューティング装置のボリューム12上のファイル14のうちの少なくともいくつかは、例えば、そのようなファイル14が、かなりの長期間にわたってアクセスされたことがなく、かつ/またはかなりの長期間にわたってアクセスされない可能性が高く、したがって、ボリューム12上に留まり続ける実際上の価値は、持つとしても僅かしか持たないので、コールドであると決定される。しかし、ファイル14のコールドネス(coldness)は、本発明の主旨および範囲から逸脱することなく、任意の適切な方法で定義されてよいことに留意されたい。
いずれにしても、コールドであると決定されたとき、ファイル14は、ボリューム12から削除されず、代わりに、ファイルの少なくとも一部のデータ20を代替ロケーション18に移動することによって、ボリューム12上のサイズが縮小される。そのような代替ロケーション18は、コンピューティング装置から見てローカルなロケーションでも、またはリモートな(遠く離れた)ロケーションでもよい。一般に、そのような代替ロケーション18は、コンピューティング装置10に適切に結合され、本発明の主旨および範囲から逸脱することなく、任意の適切なストレージロケーションとすることができる。例えば、代替ロケーション18は、記憶装置10上の別のボリューム12、別のコンピューティング装置10上の別のボリューム12、サーバのファイルウェアハウス、またはリモートサーバなどの長期記憶装置とすることができる。
代替ロケーション18を用いる場合、ボリューム12上の領域は、そのようなコールドファイル14からそのような代替ロケーション18に上述のデータ20を移動することによって、解放されることができる。重要なこととして、そのようなコールドファイル14のデータ20は移動されるが、そのようなコールドファイル14は、縮小または「ゴースト化」された形式であるにしても、ボリューム12上にプレゼンスまたは「ゴースト」として留まり続ける。したがって、実際に、ゴースト化ファイル14がコンピューティング装置10上で必要とされる場合、ゴースト化ファイルのデータ20を代替ロケーション18から取り出し、そのような取り出されたデータ20をそのようなゴースト化ファイル14と再度関連付けて、再構成ファイル14を形成することによって、そのようなゴースト化ファイル14は再構成される。理解され得るように、再構成された後、ファイル14は、実際に利用されることができる。
本発明の別の実施形態では、コンピューティング装置10は、支店サーバなどであり、支店サーバのボリューム12上の少なくともいくつかのファイル14は、例えば、そのようなファイル14はその支店サーバに関連付けられた支店に関係がないので、無関係であると決定される。もちろん、ファイル14に関する無関係性は、本発明の主旨および範囲から逸脱することなく、任意の適切な方法で定義されてよい。
いずれにしても、以前のように、無関係なファイル14は、ファイルの少なくとも一部のデータ20を伴わない縮小された形式で、支店サーバ10のボリューム12上に維持される。ここでは、そのようなデータ20は、支店がそれの支店である企業によって維持される中央ハブサーバなどの代替ロケーション18に保存される。やはり、そのようなハブサーバ18は、支店サーバ10に適切に結合される。
ハブサーバ18を用いる場合、そのような無関係なファイル14のそのような上述のデータ20をそのようなハブサーバ18に保存することによって、支店サーバ10のボリューム12上で使用される領域は最小化され、そのような領域にデータ投入するために必要な帯域幅も最小化される。重要なこととして、以前と同様に、そのような無関係なファイル14のデータ20は支店サーバ10に存在しないが、そのような無関係なファイル14は、縮小または「ゴースト化」された形式であるにしても、支店サーバのボリューム12上にプレゼンスまたは「ゴースト」として留まり続ける。したがって、実際に、ゴースト化ファイル14が支店サーバ10上で必要とされる場合、ゴースト化ファイルのデータ20をハブサーバ18から取り出し、そのような取り出されたデータ20をそのようなゴースト化ファイル14と再度関連付けて、再構成ファイル14を形成することによって、そのようなゴースト化ファイル14は再構成される。やはり、再構成された後、ファイル14は、実際に利用されることができる。
一般化すると、パーソナルコンピュータなどのコンピューティング装置10と代替ロケーション18を含む構成にせよ、支店サーバ10とハブサーバ18を含む構成にせよ、またはそれ以外の構成にせよ、「ゴースト化」は、図2に見られるように、ファイル14がそのようなファイル14に関連するデータ20のかなりの部分を含まない縮小形式でボリューム12上に存在するに過ぎないことが決定された、ソース10のボリューム12上のファイル14を含む。したがって、図2に見られるように、そのようなデータ20は、ソース10に適切に結合されたシンク18に保存される。
そのようなシンク18を用いる場合、ボリューム12上のゴースト化ファイル14は縮小または「スタブ(stub)」形式で存在するので、ソース10のボリューム12上で使用される領域は最小化される。したがって、実際に、ゴースト化ファイル14がソース10で必要とされる場合、ゴースト化ファイルのデータ20をシンク18から取り出し、そのような取り出されたデータ20をそのようなゴースト化ファイル14と再度関連付けて、再構成ファイル14を形成することによって、そのようなゴースト化ファイル14は再構成される。やはり、再構成された後、ファイル14は、必要に応じて、ソース10において実際に利用されることができる。
本発明の一実施形態では、ソース10のボリューム上に存在するゴースト化ファイル14のスタブは、元のファイル14と同じボリューム12上のロケーションに保存される。したがって、ファイルシステム16が、ボリューム12をディレクトリ形式によって編成するにせよ、またはその他の形式によって編成するにせよ、ゴースト化されたファイル14を特定のロケーション内で探すファイルシステム16は、そのようなロケーションで、ファイル14のスタブ、すなわち、ゴースト化ファイル14を見出さなければならない。重要なこととして、ソース10のボリューム12上に存在するゴースト化ファイル14は、元の非ゴースト化ファイル14のすべてのメタデータ22を含み、とりわけ、ファイル14のデータ20をシンク18から取り出すために利用され得るゴースト化情報24も含む。理解され得るように、そのようなゴースト化情報24は、ファイル14のメタデータ22に追加されてよく、またはファイル14の別のロケーションに保存されてもよい。
したがって、ユーザなどは、ボリューム12上のファイル14のいくつかはゴースト化され、ボリューム12上のファイル14のいくつかはゴースト化されていなくても、ファイルシステム16によって、ソース10のボリューム12全体をブラウズすることができる。特に、ゴースト化ファイル14に関連するメタデータ22は、そのようなブラウジング中に、とりわけ、ゴースト化ファイル14を識別し、サイズ情報および日付情報などを提供するために、利用されることができる。ユーザがゴースト化ファイル14にアクセスしようと試みるとき、ゴースト化ファイルのデータ20は、ゴースト化ファイル14内に存在するゴースト化情報24に基づいて取り出され、ゴースト化ファイル14は、非ゴースト化ファイル14に再構成され、その後、非ゴースト化ファイル14は、実際にユーザによってアクセスされることができる。
次に図3Aを参照すると、ソース10のボリューム12上に存在し得る非ゴースト化ファイル14は、ヘッダ内などに構成され得るメタデータ22を含み、そのようなメタデータ22は、論理ファイルサイズ、ボリューム12上のサイズ、作成時刻、修正時刻、アクセス時刻、アクセス許可、および様々なファイル属性などの、非ゴースト化ファイル14のデータ20に関する情報を含む。加えて、明らかなように、ソース10のボリューム12上に存在するそのような非ゴースト化ファイル14は、ファイル14の実際のデータ20も含む。ここで、実際のデータ20は、1次データおよび代替データとして組織されることができ、1次データは、アプリケーション30など(図2)によって利用され得るファイル14のデータ20であり、代替データは、その他の使用のために生成されたファイル14のデータであることに留意されたい。単なる一例として、そのような代替データは、ソース10においておそらくはアプリケーション30またはファイルシステム16によってファイル14の表現を表示するときに利用され得る、「サムネイル」などのグラフィック表現を含むことができる。
いずれにしても、1次データがサイズ的にデータ20の大部分となる場合が可能性として高い。したがって、非ゴースト化ファイル14が実際にゴースト化される場合、ゴースト化ファイル14を形成するために、データ20の1次データのみが、非ゴースト化ファイル14の残りから除去されること、またそのような1次データのみが、図3Aに示されるように、おそらくはゴースト化ファイル14の識別情報と一緒に、シンク18に保存されることが、実際にあり得る。もちろん、ファイル14のその他の部分も、本発明の主旨および範囲から逸脱することなく、ファイル14のゴースト化中に除去されることができる。
しかし、理解され得るように、ハブサーバ18がファイル14を支店サーバ10にレプリケートする、支店サーバ10とハブサーバ18の環境において、非ゴースト化ファイル14が実際にゴースト化される場合、データ20の1次データが、ソース18のレプリケートファイル14の残りから除去されて、ゴースト化ファイル14を形成し、そのようなファイル14の全体が、図3Bに示されるように、おそらくはゴースト化ファイル14の識別情報と一緒に、シンク18に保存されることが、実際にあり得る。
次に図3および図4を参照すると、非ゴースト化ファイル14をゴースト化ファイル14に変換するため(すなわち、ファイル14をゴースト化するため)、最初に、ファイル14が識別され(ステップ401)、その後、ファイル14から除去されるデータ20が識別される(ステップ403)。やはり、そのようなデータ20は、典型的には、データ20の1次データであるが、そのようなデータ20のその他のデータとすることもできる。いずれにしても、その後、識別されたデータ20は、適切なトランスポート機構および経路によって、ソース10からシンク18に移動され(ステップ405)、その後、そのような移動されたデータ20は、適切なフォーマットでシンク18に保存される(ステップ407)。理解され得るように、データ20のシンク18への保存は、本発明の主旨および範囲から逸脱することなく、任意の適切なフォーマットおよび方法で行われることができる。例えば、データ20は、それが望ましければ、圧縮かつ/または暗号化されることができるが、そのようなデータ20は、ファイル14を再構成する要求があったときに、そのようなデータ20が相対的に容易に取り出され得るような方法で保存されるべきである。例えば、そのようなデータ20は、以下でより詳細に説明されるように、取り出しのために利用されるIDに従って保存されることができる。
ステップ405においてデータ20が移動されてしまえば、ソース10のボリューム12上のそのようなデータ20によって占有されていた領域は、理解され得るように、ファイル14に割り当てられ続ける必要はない。したがって、そのような割り当て領域は、空きとして標識を付されることができ(ステップ409)、その結果、ゴースト化中ファイル14は、疎であるとして標識を付される。重要なこととして、そのような割り当て領域は、ゴースト化ファイル14による使用から解放されるが、そのようなファイル14のメタデータ22内または別の場所において、ゴースト化中ファイル14の論理ファイルサイズは、変更されるべきではなく、ファイル14のボリューム12上のサイズは、そのような解放された領域を反映するために実際に変更されてよい。
加えて、本発明の一実施形態では、ゴースト化中ファイル14のメタデータ22は、そのようなファイル14がゴースト化中であることを示すために修正される(ステップ411)。そうするために、例えば、「ゴースト化」属性を、メタデータ22に設定することができる。理解され得るように、そのような設定されたゴースト化属性は、問い合わせアプリケーション30などへの、ファイル14が実際にゴースト化されていることの信号として、主に利用されることができる。そのような信号を用いる場合、問い合わせアプリケーション30は、ファイル14が実際にゴースト化されていることばかりでなく、そのようなファイル14へのアクセスは、そのようなファイル14が最初に非ゴースト化形式に再構成されなければならないので、コストを伴うことも認識することができる。理解されるべきこととして、そのようなコストは、とりわけ、シンク18のファイル14のデータ20にアクセスするのに必要とされる帯域幅、ボリューム12上でデータ20用に必要とされる領域、および/またはシンク18のデータ20にアクセスし、それに基づいてファイル14を再構成するための待ち時間に関するものとすることができる。
また、本発明の一実施形態では、ゴースト化中ファイル14のメタデータ22は、上述のゴースト化情報24を含むように修正される(ステップ413)。やはり、そのようなゴースト化情報24は、とりわけ、ファイル14のデータ20をシンク18から取り出すために利用され得る情報を含む。例えば、そのようなゴースト化情報24は、シンク18にデータ20と共に保存され、データ20を識別するIDと、シンク18をどのように発見するか、かつ/またはファイル14をどのように再構成するかなどに関する情報を含む、ゴースト化ファイル14に関係するその他の情報を保存するために利用され得るある量の記憶とを含むことができる。ゴースト化情報24内のそのような記憶は、可変または固定の量とすることができ、後者の場合、16キロバイト程度に制限されることができる。理解され得るように、そのようなゴースト化情報24は、ファイル14を再構成するために利用される構造がどのようなものでも、そうした構造によって主に利用され、上述の問い合わせアプリケーション30などによっては一般に使用されないが、それにも関わらず、そのような使用も、本発明の主旨および範囲から逸脱することなく、行われることができる。
理解されるべきこととして、ゴースト化されたゴースト化ファイル14は、少なくともボリューム12がもはや動作用に残っていなくなるまで、短い期間、長い期間、非常に長い期間、または永遠に、分散されずにソース10のボリューム12上に存在してよい。次に図5を参照すると、しかし、いずれかの時点で、ゴースト化ファイル14の保存されたデータ20にアクセスする要求が、アプリケーション30、そのようなアプリケーション30のユーザなどから受け取られ得ることを理解されたい(ステップ501)。もちろん、そのような要求に先立って、そのようなゴースト化ファイル14のメタデータ22にアクセスする1つまたは複数の要求も受け取られ得ることも可能である。例えば、上述のアプリケーション30は、ファイル14が実際にゴースト化されていると決定するために、そのようなゴースト化ファイル14のメタデータ22内の設定されたゴースト化属性にアクセスすることができ、ボリューム12を管理するファイルシステム16は、ディレクトリリストなどの編集中にメタデータ22にアクセスすることができる。後者の場合、留意すべきこととして、ファイルシステム16、アプリケーション30、または別のエンティティは、ファイル14の表現を表示するときに利用され得る上述のグラフィックを獲得するために、データ22の代替データにもアクセスすることができる。
いずれにしても、ステップ501におけるゴースト化ファイル14の保存されたデータ20にアクセスする要求に応答して、ゴースト化ファイル14は、以下のようにして、実際に再構成される。準備として、ファイル14がボリューム12上で発見され(ステップ503)、その後、ファイル14のメタデータ22内のゴースト化情報24が識別される(ステップ505)。理解され得るように、シンク18に保存されたファイル14のデータ20が、そのような識別されたゴースト化情報24に基づいて発見され(ステップ507)、その後、そのような発見されたデータ20が、適切なトランスポート機構および経路によって、シンク18からソース10に移動されることができる(ステップ511)。
もちろん、そのようなデータ20をファイル14と共にソース10に保存するため、そのようなデータ20によって占有されるソース10のボリューム12上の領域が割り当てられなければならず(ステップ509)、その結果、もはやゴースト化中でないファイル14は、もはや疎であるとして標識を付されない。理解され得るように、データ20が、ファイル14を再構成するために、実際にファイル14に移動された後、もはやゴースト化中でないファイル14のメタデータ22は、例えば、そのようなメタデータ22内のゴースト化属性をリセットすることなどによって、そのようなファイル14がゴースト化されていないことを示すように修正される(ステップ513)。また、もはやゴースト化中でないファイル14のメタデータ22は、ゴースト化情報24を削除するようにも修正される(ステップ515)。したがって、ファイル14は、今では非ゴースト化形式をとる。
理解されるべきこととして、ゴースト化ファイル14の生成をもたらす2つの主要なシナリオが存在する。第1のシナリオでは、ファイル14は、直ちにゴースト化ファイル14としてボリューム12上に生成される。そのようなゴースト生成は、支店サーバ10とハブサーバ18を用いて上で説明されたレプリケーションアーキテクチャにおいて典型的とすることができる。そのようなレプリケーションアーキテクチャでは、複数の支店サーバ10のそれぞれに中央ハブサーバ18からすべてのファイル14の非ゴースト化コピーを投入することは、膨大な量の帯域幅を必要とする。したがって、代わりに、レプリケーションエンジンは、単にファイル14のゴースト化コピーを支店サーバ10上に生成することを決定することができる。その場合、任意の特定の支店サーバ10の任意の特定のゴースト化ファイル14に関連するデータ20は、そのような特定の支店サーバ10においてそのような特定のゴースト化ファイル14を非ゴースト化ファイル14に再構成するために、必要に応じて、要求があったときにハブサーバ18から取り出されることができる。
第2のシナリオでは、ファイル14は、非ゴースト化ファイル14としてボリューム12上に生成され、ある後の時点で、そのようなボリューム12上でゴースト化ファイル14に変換される。そのような非ゴースト生成は、パーソナルコンピュータなどと代替ロケーション18を用いて上で説明されたような領域節約アーキテクチャにおいて典型的とすることができる。そのような領域節約アーキテクチャでは、パーソナルコンピュータなどのボリューム12上の領域は、例えば稀にしか使用されないファイル14に関連するデータ20を、別の媒体または別のシステムとすることができる代替ロケーション18に移動することによって、再利用される。第1のシナリオと同様に、パーソナルコンピュータなどの任意の特定のゴースト化ファイル14に関連するデータ20は、そのような特定のゴースト化ファイル14を非ゴースト化ファイル14に再構成するために、必要に応じて、要求があったときに代替ロケーション18から取り出されることができる。
本発明の一実施形態では、ユーザまたはアプリケーション30のために、またゴースト化ファイル14に関して、ソース10において実行される図5の動作は、図2に見られるように、実際にはゴースト化フィルタ(ghosting filter)26の支援を受けて実行される。そのような動作は、ユーザもしくはアプリケーション30から透過的に、またはそれらに通知して、実行されることができるが、透過的であるほうが、そのようなユーザまたはアプリケーション30にとって好ましい可能性が高い。特に、ユーザまたはアプリケーション30が、ゴースト化ファイル14の除去されたデータ20にアクセスを試みる場合、ファイルシステム16は、そのようなアクセスの要求を受け取ると、ゴースト化ファイル14が除去されたデータ20を含まないことを見出し、その結果、エラーを返すが、ゴースト化フィルタ26は、そのエラーをインタセプトする。そのようなインタセプトが行われると、ゴースト化フィルタ26は、ファイルシステム16を利用して、ゴースト化ファイル14のメタデータ22からゴースト化情報24を獲得し、獲得されたゴースト化情報24に基づいて、そのようなゴースト化フィルタ26は、アクセスの要求が最終的に満たされ得るように、そのようなゴースト化ファイル14の再構成を、以下でより詳細に説明されるようにトリガする。
理解され得るように、ゴースト化フィルタ26は、多くの機能を伴わず、シンク18などのネットワークリソースにアクセスを行わない、低水準の構造とすることができる。そのような状況では、図2に示されるように、ゴースト化フィルタ26は、ゴースト化マネージャ28などのより高水準の構造とインタフェースをとることができ、そのようなゴースト化マネージャ28は、追加のゴースト化機能と、シンク18などのネットワークリソースへの直接アクセスとを含む。さらに、そのような状況では、ゴースト化フィルタ26が、そのようなゴースト化ファイル14のそのような再構成をトリガした場合、ゴースト化マネージャ28は、以下でより詳細に説明されるように、図5に関連して示されたソース10のためのそのような再構成機能の大部分を実行する。そのようなゴースト化マネージャ28は、図4に関連して示されたソース10のための再構成機能の大部分も実行することができる。
ゴースト化ファイル14のデータ20を要求するアプリケーション30
ゴースト化ファイル14の再構成は図4に関連してすでに上で詳述されたが、そのようなゴースト化ファイル14のデータ20のある部分を読み取ることを望むアプリケーション30などの観点から、そのようなプロセスを再び検討することは有益である。理解され得るように、そのようなファイル14からそのようなデータ20を読み取ることを望むそのようなアプリケーション30は、典型的には、ファイル14に関してファイルシステム16にopenコマンドを発行し、次にそのようなオープンされたファイル14に関してファイルシステム16にreadコマンドを発行することによって、そのような機能を達成する。本発明の一実施形態では、そのようなアプリケーション30は、そのようなopenおよびreadコマンドを発行し続けるが、ゴースト化された問題のファイル14に基づく場合、そのようなコマンドは、少し異なって解釈される。そのような差異は、アプリケーション30からは透過的であり、アプリケーション30には僅かな関わりしか持たないが、アプリケーション30は、ゴースト化ファイル14が再構成されている間に、多少の待ち時間を経験することがあり、そのような待ち時間は、大部分はシンク18からソース10にデータ20を移動することに起因する可能性が高い。
いずれにしても、次に図6を参照すると、アプリケーション30は、ボリューム12上の特定のゴースト化ファイル14に関してopenコマンドを発行することによって、プロセスを開始し、そのようなopenコマンドは、最終的にファイルシステム16によって受け取られる(ステップ601)。留意すべきこととして、アプリケーション30は、そのようなopenコマンドを発行する際、特定のファイル14が実際にはゴースト化されていることに関していかなる知識を有することも期待されないが、アプリケーション30は、ファイル14についてゴースト化属性が設定されているかどうかを報告するようにファイルシステム16に指令することによって、実際にはそのような決定を行うことができる。
上述されたように、ファイルシステム16は、openコマンドを受け取ると、ゴースト化ファイル14が除去されたデータ20を含むことに気づき、その結果、エラーを返すが(ステップ603)、ゴースト化フィルタ26が、そのような返されたエラーをインタセプトし、エラーに基づいて、問題のファイル14が実際にはゴースト化形式をとることを理解する(ステップ605)。その結果、ゴースト化フィルタ26自体が、そのようなゴースト化ファイル14からゴースト化情報24を取り出すようにファイルシステム16に指令し、実際にそのようなゴースト化情報24を受け取る(ステップ607)。そのようなゴースト化情報24に基づいて、その後、ゴースト化フィルタ26は、ゴースト化ファイル14に対応するバッファおよびハンドルを生成し、アプリケーション30からのopenコマンドに対する(正常)応答として、アプリケーション30にハンドルを送り届ける(ステップ609)。
アプリケーション30によって受け取られたゴースト化ファイル14のハンドルは、オープンされたゴースト化ファイル14のインスタンスを表し、例えば、readコマンドまたはcloseコマンドなど、さらなるコマンドをそのようなファイル14に関して発行するときに、そのようなファイル14への参照として、アプリケーション30によって利用される。しかし、重要なこととして、ゴースト化フィルタ26によって生成され、アプリケーション30からのコマンドのハンドルパラメータとして利用される、ゴースト化ファイル14のそのようなハンドルは、そのようなコマンドが、ファイルシステム16ではなく、ゴースト化フィルタ26に直接送られる原因となる。
ゴースト化ファイル14用のバッファは、例えば、ゴースト化ファイルのゴースト化情報24など、ゴースト化ファイル14に関する情報を保存するために、ゴースト化フィルタ26によって利用されることにも留意されたい。したがって、ゴースト化ファイル14がゴースト化フィルタ26によって操作されている間は、そのようなゴースト化情報24に対する変更は、バッファ内に記録され、ファイル14に書き戻される必要はない。もちろん、ゴースト化フィルタ26がゴースト化ファイル14を操作することを終えた後、バッファ内のそのような記録された変更は、必要であれば、ファイル14のゴースト化情報24に書き戻されることができる。
いずれにしても、ゴースト化フィルタ26からのゴースト化ファイル14用のハンドルを用いて、アプリケーション30は、ボリューム12上の特定のゴースト化ファイル14に関してreadコマンドを発行することによって、処理を続けることができ、そのようなreadコマンドは、ハンドル、ファイルのデータ20におけるオフセット、およびそのようなオフセットから開始するそのようなデータ20に関するリード長などを含むパラメータを有する。したがって、そのようなreadコマンドは、コマンドのパラメータとしてそのようなハンドルを有することに基づいて、ファイルシステム16ではなく、最終的にゴースト化フィルタ26によって受け取られる(ステップ611)。しかし、明らかなように、データ20は実際にはゴースト化ファイル14内に存在せず、したがって、ゴースト化フィルタは、さらなる処理を待機するために、待ち行列などにreadコマンドを保存する(ステップ613)。
理解されるべきこととして、そのようなさらなる処理は、主として、シンク18からゴースト化ファイル14のデータ20を獲得することを含む。特に、ゴースト化フィルタ26は、シンク18のゴースト化ファイルのデータ20に基づいて、ゴースト化ファイル14の再構成を開始し、そのような再構成は、以下のようにして行われることができる。
ゴースト化フィルタ26が、より高水準のゴースト化機能を実行し、シンク18などのネットワークリソースに直接アクセスするゴースト化マネージャ28とインタフェースをとることができることを思い出すと、ゴースト化フィルタ26は、シンク18からゴースト化ファイル14のデータ20のある部分を獲得する要求をゴースト化マネージャ28に対して発行し(ステップ615a)、そのような要求は、ゴースト化ファイル14のゴースト化情報24からのIDと、データ20におけるオフセットと、そのようなオフセットから開始する獲得されるデータ20の長さとを含む。その後、ゴースト化マネージャ28は、シンク18からそのようなデータ20の要求された部分を実際に獲得する(ステップ615b)。仮定上、ゴースト化マネージャ28は、そのような獲得を行うのに必要なすべての機能を含み、当業者に知られたまたは明らかである、本明細書で詳細に説明される必要のない方法でそのような機能を含む。したがって、そのような獲得を行う任意の特定の方法が、本発明の主旨および範囲から逸脱することなく、利用されることができる。
ゴースト化マネージャ28が、ステップ615bにおいてシンク18からデータ20の要求された部分を獲得中に、いくらかの遅延が生じることがあることに留意されたい。例えば、そのようなデータ20がネットワークを介して獲得される場合があり得、その場合、おそらく数ミリ秒、数秒、またはさらに大きなネットワーク遅延が生じることがある。したがって、ゴースト化マネージャ28、ゴースト化フィルタ26、および/または別のエンティティは、シンク18に要求され、おそらく対応する要求時間と共に、シンク18からまだ獲得されていないデータ20の各部分を表す、処理中データリストを維持することを望むことができる。理解され得るように、データの各要求された部分の識別情報は、そのような要求が行われた時に、処理中データリストに追加され、ゴースト化ファイル14と共に受け取られ、保存された時に、処理中データリストから削除される。そのような処理中データリストを用いる場合、データ20を求めるすべての処理中の要求は、経過時間(age)について監視され、一定の期間内に満たされなかった要求はタイムアウトされ得ることがあってよい。
ゴースト化マネージャ28が、シンク18からそのようなデータ20のそのような要求された部分を実際に獲得すると、そのようなゴースト化マネージャ28は、ゴースト化フィルタ26にそのような要求された部分を送り(ステップ615c)、その後、そのようなゴースト化フィルタ26は、ファイルシステム16に対する適切なコマンドによって、問題のファイル14の適切なロケーションに、そのような要求された部分を書き込む(ステップ615d)。問題のファイル14の適切なロケーションにそのような要求された部分を書き込むことは、当業者に知られ、または明らかであり、したがって、本明細書で詳細に説明される必要はない。したがって、そのような書き込みを行う任意の特定の方法が、本発明の主旨および範囲から逸脱することなく、利用されることができる。
もちろん、ファイル14のデータ20のすべてがファイル14に書き込まれるまで、ステップ615a〜615dを何度も繰り返す必要があることがあり、したがって、そのようなステップは、必要に応じて繰り返される。ファイル14のデータ20のすべてが実際にファイル14に書き込まれた後、ゴースト化フィルタ26は、必要に応じて、ゴースト化情報24の削除およびゴースト化属性のリセットを含む、そのような今では再構成されたファイル14のメタデータ22を修正するためのコマンドを、ファイルシステム14に対して発行する(ステップ617)。加えて、ゴースト化フィルタ26は、ファイル14に対するすべてのreadコマンドを待ち行列から取り出し、アプリケーション30からのreadコマンドが問題のデータ20を用いて実際に応答されるようにするさらなる処理のために、そのようなreadコマンドをファイルシステム16に渡す(ステップ619)。
オープンされたファイル14用のハンドルは、ゴースト化フィルタ26に関連付けられたまま保たれ、そのような今では再構成されたファイル14に関連するアプリケーション30からのコマンドを、そのようなゴースト化フィルタ26に誘導し続ける。したがって、ゴースト化フィルタ26が、そのようなコマンドをファイルシステム16に転送する場合があり得、ゴースト化フィルタ26が、ハンドルをファイルシステム16に再度関連付ける場合があり得、またはゴースト化フィルタが、ハンドルをファイルシステム16に再度関連付けるように別の構造に指令する場合などがあり得る。
ゴースト化ファイル14の部分的再構成
理解され得るように、ファイル14のゴースト化データ20のすべてではなく、その一部のみが要求アプリケーション30によって要求される状況においては、ゴースト化ファイル14を完全に再構成する必要はない。したがって、アプリケーション30が、2ギガバイトのデータ20のうち特定のオフセットから1、2、12、または100キロバイトのみが必要とされると決定することができる場合、シンク18から2ギガバイトのデータ20を獲得する必要はなく、代わりに、特定のオフセットから数キロバイトの必要とされるデータ20のみを獲得すればよい。さらに、そのような状況では、ゴースト化ファイル14を一部だけ再構成することによって、相当な量の不必要なデータ20をシンク18からソース10に転送する必要が回避され、それを行うのに必要とされる帯域幅がそれに応じて削減される。
ゴースト化ファイル14を一部だけ再構成することによって、アプリケーション30は、ファイル14の完全な再構成をトリガせずに、必要であればファイルの数バイトのみを読み取ることができる。したがって、例えば、ビデオファイル14の最初のフレームのみが必要とされる場合、シンク18のファイル14のデータ20から、そのような最初のフレームが獲得され、10ギガバイトまたは100ギガバイトのオーダにさえなり得るゴースト化ファイル14の全量のデータ20は獲得されない。その場合、部分的再構成は、アプリケーション30からの特定のread要求を満たすのに必要なだけ、シンク18のゴースト化ファイル14のデータ20をフェッチし、それ以上はフェッチしない。
ゴースト化ファイル14を部分的に再構成する場合、シンク18から獲得されるデータ20の部分は、そのようなシンク18から実際に削除される場合も、または削除されない場合もあり得る。一方では、獲得されるそのような部分は、ソース10に保存され、したがって、もはやシンク18で維持される必要はない。しかし、他方では、獲得された部分をシンク18から実際に削除するには、さらなる労力が実際には必要とされることがある。さらに、例えば、シンクがハブサーバ18であり、ソースが支店サーバ10である場合など、少なくともいくつかの状況では、そのような獲得された部分は、その他のソース10によるアクセスのためにシンク18に留まり続けるべきである。
理解され得るように、ゴースト化ファイル14が実際に部分的に再構成される場合、そのような部分がゴースト化ファイル14内に存在するかどうかをゴースト化フィルタ26が決定することができるように、ゴースト化ファイル14のどの部分が実際に再構成されたかを書き留めるために、記録が維持されなければならない。したがって、本発明の一実施形態では、そのような記録が、そのようなゴースト化ファイル14のメタデータ22内のゴースト化情報24において維持される。特に、再構成され、したがって、ゴースト化ファイル14に存在する、ゴースト化ファイル14のデータ20の各連続セクションについて、ゴースト化情報24は、セクションの開始を記述するオフセットと、そのようなセクションの連続量を記述する長さとを含む、セクション参照を含む。
典型的には、部分的再構成データ20の上述の記録を含むゴースト化ファイル14のゴースト化情報24は、ゴースト化フィルタ26によって維持される。上述されたように、そのようなゴースト化フィルタ26は、ファイルシステム16によって、ゴースト化ファイル14のメタデータ22内で、そのようなゴースト化情報24を直接的に維持および更新することができるが、そのような維持および更新は、ファイルシステム16によって実行されるその他の操作と干渉することがあり得る。したがって、ゴースト化ファイル14を操作中のゴースト化フィルタ26は、代わりに、そのようなメタデータ22からそのようなゴースト化情報24を最初に獲得し、図6のステップ609でゴースト化ファイル14に関連して生成されたバッファに、そのようなゴースト化情報24を保存し、その後、ゴースト化ファイル14を操作中に、そのようなゴースト化情報24を維持および更新し、完了時に、そのようなゴースト化情報24をバッファからゴースト化ファイル14のメタデータ22に書き込む。
時々、ゴースト化ファイル14の部分的再構成は、例えば、ソース12における電力またはネットワーク接続の喪失によって、中断されることがあり得ることに留意されたい。同様に、電力が失われ、バッファが揮発性RAMなどに維持されている場合は特に、ゴースト化ファイル14用のバッファが失われる場合もあり得る。そのような状況では、維持および更新されたゴースト化情報24は、バッファからファイル14のメタデータ22に書き込まれずに失われるが、実際には、そのようなゴースト化情報24が失われるばかりでなく、そのようなゴースト化情報24がなければ、部分的再構成データ20は発見することができないので、物理的にはソース10に存在するとしても、それに関連するすべての部分的再構成データ20も失われる。したがって、本発明の一実施形態では、維持および更新されたそのようなゴースト化情報24は、例えば、毎分に1回など、定期的にバッファからファイル14のメタデータ22に書き込まれる。したがって、高々1分間ほどのそのようなゴースト化情報24およびそれに関連する部分的再構成データ20が、バッファの喪失が原因で失われることがあり得る。
本発明の一実施形態では、ゴースト化ファイル14は、そのようなゴースト化ファイル14のデータ20を要求するアプリケーション30からの適切なコマンドに基づいて、一部だけが再構成される。したがって、そのようなアプリケーション30は、特定のファイル14のゴースト化属性が設定されているかどうかを決定して、そのようなファイル14が実際にゴースト化されているかどうかを決定するために、最初にファイルシステム16をチェックしなければならず、ゴースト化されている場合、アプリケーション30は、適切なコマンドによって、そのようなゴースト化ファイル14のデータ20の1つまたは複数の部分の部分的再構成を要求することができる。
部分的再構成を考慮して、本発明の一実施形態では、図6のステップ611で与えられるような、ゴースト化ファイル14に関するreadコマンドに応答するゴースト化フィルタ26は、最初に対応するバッファに保存されたそのようなゴースト化ファイル14のゴースト化情報24内のセクション参照を調べ、次に要求されたデータ20またはその一部がソース10のゴースト化ファイル14内にすでに存在するかどうかをセクション参照から決定することによって、readコマンドに応答する。要求されたデータ20のすべてが実際に存在する場合、そのようなデータ20は、シンク18からそのようなデータ20を獲得する必要なしに、ソース10のゴースト化ファイル14から読み取られる。要求されたデータ20の一部のみが存在する場合、データ20のそのような存在する一部は、シンク18からそのようなデータ20を獲得する必要なしに、ソース10のゴースト化ファイル14から読み取られ、データ20の残りは、シンク18から獲得され、その後、上述のように読み取られる。要求されたデータ20がまったく存在しない場合、そのようなデータ20のすべてが、シンク18から獲得され、その後、上述のように読み取られる。
要約するために、次に図7を参照すると、部分的再構成が必要とされ得る、ゴースト化ファイル14をオープンするためのアプリケーション30からのコマンドに応答して(ステップ701)、ゴースト化フィルタ26は、ステップ609でのように、ゴースト化ファイル14に対応するバッファおよびハンドルをやはり生成し、アプリケーション30からのopenコマンドに対する(正常)応答として、アプリケーション30にハンドルを送り届ける(ステップ703)。加えて、ゴースト化フィルタ26は、最初にゴースト化ファイル14のメタデータ22からゴースト化情報24を獲得し、そのようなゴースト化情報24を生成されたバッファに保存する(ステップ705)。
以前のように、ゴースト化フィルタ26からのゴースト化ファイル14のハンドルを用いて、アプリケーション30は、ステップ611でのように、ボリューム12上の特定のゴースト化ファイル14のデータ20の部分に対するreadコマンドを発行し、そのようなreadコマンドは、ハンドルを含み、また部分のオフセットおよび長さを定義する(ステップ707)。ここでは、readコマンドに応答して、ゴースト化フィルタ26は、ゴースト化ファイル14用のバッファ内のゴースト化情報24に基づいて、定義されたそのような部分が少なくとも部分的に、ソース10に存在するゴースト化ファイル14内にすでに存在するかどうかを決定する(ステップ709)。そのような決定を行うことは、当業者に知られ、または明らかであり、したがって、本明細書で詳細に説明される必要はない。したがって、そのような決定を行う方法が、本発明の主旨および範囲から逸脱することなく、利用されることができる。
やはり、データ20の部分のすべてが実際に存在する場合、そのようなデータのそのような部分は、シンク18から獲得される必要はない(ステップ711a)。データ20の部分の一部だけが存在する場合、データ20の部分の残りが、シンク18から獲得される(ステップ711b)。データ20の部分がまったく存在しない場合、データ20のそのような部分のすべてが、シンク18から獲得される(ステップ711c)。重要なこととして、ステップ711bまたは711cでのように、シンク18からデータ20のいずれかの部分が獲得される際、ゴースト化フィルタ26は、データ20の部分が今ではゴースト化ファイル14と共に存在し、ゴースト化ファイル14に再構成されていることを適切に反映するように、バッファに保存されたゴースト化ファイル14のゴースト化情報24を更新する(ステップ713)。いずれにしても、今ではソース10に存在するデータ20の要求された部分を用いて、そのような要求された部分は、今では実際に、ステップ619でのように、アプリケーション30によって読みとることができる(ステップ715)。
上で説明されたように、ゴースト化フィルタ26は、バッファの喪失が起こった場合に、ゴースト化情報24およびそれに関連する部分的再構成データ20がすべて失われないように、そのようなゴースト化情報24を最新の形式でバッファからファイル14のメタデータ22に定期的に書き込む(ステップ717)。加えて、例えば、アプリケーション30のコマンドなどで、ゴースト化ファイル14がクローズされた後(ステップ719)、ゴースト化フィルタ26は、もちろんゴースト化ファイル14が完全には再構成されていないことを想定して、ゴースト化情報24を最新の形式でバッファからファイル14のメタデータ22に書き込むことによって、バッファを処分する(ステップ721)。したがって、最新の形式をとるそのようなゴースト化情報24は、ステップ705でのように、ある後の時点で取り出されることができる。
部分的再構成ゴースト化ファイル14の高速読み取り
アプリケーション30は、ゴースト化ファイル14に関してreadコマンドを発行する際、ゴースト化ファイル14の状態を考慮せず、特に、ゴースト化ファイル14がすでに部分的に再構成されているかどうか、および/またはすでに部分的再構成の処理中にあるかどうかを考慮しない。すなわち、次に図8を参照すると、ゴースト化ファイル14に関する特定のreadコマンドが、データ20の特定の部分を指定し、そのような特定の部分が、すでにゴースト化ファイル14内に存在するデータ20を含む第1のセグメントと、シンク18からゴースト化ファイル14にコピーされている最中のデータ20を含む第2のセグメントと、ゴースト化ファイル14内に存在せず、代わりに、シンク18にのみ保存されているデータ20を含む第3のセグメントとに対応する場合があり得る。
理解され得るように、そのようなreadコマンドが、データ20の特定の部分のすべてがシンク18からゴースト化ファイル14にコピーされるように処理される場合、そのような処理は、そのような特定の部分に対応する少なくとも第1および第2のセグメントに関して重複があり、無駄である。特に、やはり理解され得るように、第1のセグメントに対応するデータ20のコピーは、そのようなデータ20がすでにゴースト化ファイル14内に存在するので不必要であり、第2のセグメントに対応するデータ20のコピーは、そのようなデータ20がすでにシンク18からゴースト化ファイル14にコピーされている最中であるので不必要である。実際には、第3のセグメントに対応するデータ20のみが、そのようなデータ20はゴースト化ファイル14内に存在せず、そのようなゴースト化ファイル14にコピーされるようにまだ要求されていないので、シンク18からゴースト化ファイル14にコピーされる必要がある。
本発明の一実施形態では、その場合、ゴースト化フィルタ26は、最初にデータ20のそのような特定の部分に関して、すでに存在するゴースト化ファイル14内の対応するセグメント(すなわち、第1のセグメント)と、すでに処理中であるゴースト化ファイル14内の対応するセグメント(すなわち、第2のセグメント)と、存在もせず、処理中でもないゴースト化ファイル14内の対応するセグメント(すなわち、第3のセグメント)とを識別し、その後、そのような第3のセグメントのみを実際に獲得することによって、データ20の特定の部分に対するそのようなreadコマンドを処理する。実際には、その場合、ゴースト化フィルタ26は、シンク18から実際に読み取る必要のないすべてのセグメントを、readコマンドから取り除く。そのような取り除きアクションを実行することによって、readコマンドは、より高速に処理され、それは、そのような「高速読み取り」は、実際に必要とされるデータ20のみをシンクから獲得し、ゴースト化ファイル14内にすでに存在するデータ20または処理中のデータ20は獲得しないためである。すなわち、ゴースト化フィルタ26によって実行される高速読み取りは、アプリケーション30からのreadコマンドに対してより高速な応答をもたらし、それに付随して、そのようなreadコマンド用に必要とされる帯域幅の量を低減する。
本発明の一実施形態では、ゴースト化フィルタ26は、すでに存在するゴースト化ファイル14内の各第1のセグメントを、そのようなゴースト化ファイル14のために維持されるゴースト化情報24を参照して識別する。上で説明されたように、そのようなゴースト化情報24は、そのようなゴースト化ファイル14のためのメタデータ22内に配置されるものとして参照されることができ、またはそのようなゴースト化ファイル14に対応するバッファ内に配置されるものとして参照されることもできる。同様に、本発明の一実施形態では、ゴースト化フィルタ26は、すでに処理中のゴースト化ファイル14内の各第2のセグメントを、図6のステップ615bに関連して上で開示された処理中データリスト内の情報を参照して識別する。そのようなゴースト化情報24および処理中データリストを参照するそのような第1および第2のセグメントの識別は、当業者に知られ、または明らかであり、したがって、本明細書で詳細に説明される必要はない。したがって、そのような識別は、本発明の主旨および範囲から逸脱することなく、任意の適切な方法で実行されることができる。
今では理解され得るように、第1および第2のセグメントが識別された後、残りが第3のセグメントであり、除去のプロセスによって、存在もせず、処理中でもないゴースト化ファイル14のそのような第3のセグメントが識別される。もちろん、識別された後、そのような第3のセグメントは、実際にシンク18に要求され、受け取られると、ゴースト化ファイル14にコピーされる。要求されると、そのような各第3のセグメントは、実際には第2の処理中セグメントになることに留意されたい。受け取られ、ゴースト化ファイル14にコピーされると、各第2のセグメントは、実際には第1の存在セグメントになることにも留意されたい。セグメントが第1のセグメントになると、そのような第1のセグメントは、アプリケーション30からのreadコマンドに応答して、実際にアプリケーション30によって読み取られるように利用可能となることにも最後に留意されたい。
少なくともいくつかの状況では、アプリケーション30は、ゴースト化ファイル14内の特定のデータ20に対するreadコマンドを発行していないが、それにも関わらず、ゴースト化フィルタ26は、ゴースト化フィルタ14がその他の処理で占有されていなければ、そのようなreadコマンドを予想して、そのようなデータ20をシンク18からゴースト化ファイル14に移動するべきであることが理解されよう。単なる一例として、ゴースト化オーディオファイル14、ゴースト化ビデオファイル14、またはゴースト化マルチメディアファイル14などのコンテンツをストリーミングする場合、特定の時間間隔T0におけるデータ20に対するreadコマンドには、次の時間間隔T1におけるデータ20に対するreadコマンドが続くと予想することは理にかなっている。そのような状況では、ゴースト化フィルタ26は、その他の処理で占有されていなければ、アプリケーション30からの特定のreadコマンドを得ていなくても、時間間隔T1のためのそのようなデータ20をシンク18から獲得する機会を利用することができる。もちろん、それを行う際、ゴースト化フィルタ26は、そのようなアクションを、上で説明されたような高速読み取りとして実行することができる。
要約するために、次に図9を参照すると、ゴースト化フィルタ26は、以下のようにして、アプリケーション30からのreadコマンドに応答して、高速読み取りを実行する。事前に、readコマンドは、アプリケーション30から実際に受け取られ、そのようなreadコマンドは、ゴースト化ファイル14から読み取られるデータ30の部分または範囲を指定する(ステップ901)。典型的には、やはり、そのような範囲は、データ30に関するオフセットおよび長さとして表現される。
その後、ゴースト化フィルタ26は、最初に、データ20のそのような範囲内で、すでに存在するゴースト化ファイル14内のデータ20の対応する第1のセグメントを識別する(ステップ903)。やはり、そのような識別は、そのようなゴースト化ファイル14のためのメタデータ22内またはそのようなゴースト化ファイル14に対応するバッファ内で、そのようなゴースト化ファイル14のために維持される、ゴースト化情報24を参照して実行される。識別された第1のセグメントが、データ20の要求された範囲のすべてを含む場合、ゴースト化ファイル14は、readコマンドを満たすのに必要な程度にすでに再構成されており、したがって、そのようなreadコマンドは、シンク18からのデータ20のさらなるコピーを行わず、また処理中のデータ20を待つことなく、完了されることができる(ステップ905)。
しかし、識別された第1のセグメントが、データ20の要求された範囲のすべてを含むわけではない場合、ゴースト化ファイル14は、少なくとも処理中のデータ20に基づいて、readコマンドを満たすのに必要な程度に実際に再構成されなければならず、したがって、ゴースト化フィルタ26は、第1のセグメントではないデータ20の要求された範囲の各セグメントの範囲を含む第1の組を計算する(ステップ907)。その後、以前と同様に、ゴースト化フィルタ26は、第1の組内で、処理中であるゴースト化ファイル14内のデータ20の対応する第2のセグメントを識別する(ステップ909)。やはり、そのような識別は、処理中データリストを参照して実行される。識別された第2のセグメントが、第1の組のすべてを含む場合、ゴースト化ファイル14は、readコマンドを満たすのに必要な程度に再構成されている最中であり、そのようなreadコマンドは、すべての処理中のデータ20が実際にゴースト化ファイル14にコピーされた時に完了されることができる(ステップ911)。
今理解されるべきこととして、しかし、識別された第2のセグメントが、第1の組のすべてを含むわけではない場合、ゴースト化ファイル14は、シンク18からコピーされるデータ20に基づいて、readコマンドを満たすのに必要な程度に実際に再構成されなければならず、したがって、ゴースト化フィルタ26は、第1のセグメントでなく、かつ第2のセグメントでもないデータ20の要求された範囲の各セグメントの範囲を含む第2の組、すなわち、第3のセグメントを計算する(ステップ913)。その後、ゴースト化フィルタ26は、第2の組/第3のセグメントがシンク18からゴースト化ファイル14にコピーされるように要求する(ステップ915)。
時が経つにつれて、やはり、要求された各第3のセグメントは、第2の処理中セグメントになり、実際にコピーされた各第2のセグメントは、第1の存在セグメントになり、ついには、すべてのコピーが完了する(ステップ917)。その後、readコマンドの要求された範囲は、そのようなreadコマンドに応答して、実際にアプリケーション30によって読み取られるように利用可能となる(ステップ919)。
ファイル14の再ゴースト化/ゴースト化
理解され得るように、再構成または部分的に再構成されたゴースト化ファイル14は、ある時点で、例えば、ソース10において追加の領域が必要とされる場合に、再ゴースト化されることができる。加えて、やはり理解され得るように、ゴースト化されたことのないファイル14も、同様に、ある時点で、類似の理由でゴースト化されることができる。
特に、ゴースト化ファイル14が部分的もしくは完全に再構成された後、またはファイル14がソース10にインストールされた後、そのようなファイル14が再ゴースト化またはゴースト化(これ以降「再ゴースト化」)されるまで、そのようなファイル14は、そのような形式でソース10に存在し続ける。そのような再ゴースト化は、例えば、ソース10で領域が必要なことの決定、ファイル14がかなりの期間にわたってアクセスされていないことの決定など、いくつかのイベントによってトリガされる。さらに、ファイル14を再ゴースト化することによって、特に支店サーバ10およびハブサーバ18の環境では、ソース10またはシンク18のファイル14に対する変更は、ファイル14を最新に維持するために、それぞれシンク18またはソース10にレプリケートされることができる。
本発明の一実施形態では、ソース10における再ゴースト化は、最終アクセス時刻、ボリューム上の残り空き領域、データへのアクセス頻度、および/またはどこかで生じたファイル14に対する修正などの要因を計算に入れた再ゴースト化アルゴリズムに従って実行される。再ゴースト化アルゴリズムは、そのような要因を検討する際、目標として、再ゴースト化された後あまり時間を置かずに、ゴースト化ファイル14が再び再構成される可能性を小さくするべきである。その結果、そのようなゴースト化および再ゴースト化のために必要な帯域幅は、減少しないにせよ、最小化されることができる。典型的には、必ずしも必要ではないが、再ゴースト化アルゴリズムは、ソース10のアプリケーション30によって、またはソース10のゴースト化マネージャ28によって実行されるが、その他のエンティティが、本発明の主旨および範囲から逸脱することなく、そのような再ゴースト化アルゴリズムを実行することもできる。
ソース10のファイル14を再ゴースト化するために利用される再ゴースト化アルゴリズムは、少なくとも部分的に構成可能な方針に基づいて定義されることができる。特に、そのような再ゴースト化アルゴリズムは、構成可能な方針に少なくとも部分的に基づいて、トリガされることができ、そのような再ゴースト化アルゴリズムは、構成可能な方針に少なくとも部分的に基づいて、特定のファイル14を再ゴースト化することを決定することができる。場合毎に、そのような方針は、ソース10のユーザによって、またはソース10の管理者などによって構成されることができる。
再ゴースト化アルゴリズムに関連して利用される可能なトリガパラメータは、
−所定の期間が経過した時に起動される周期的トリガ、
−ソース10のボリューム12の空き領域がある量を下回った時、またはソース10のボリューム12の使用中領域がある量を上回った時に起動される領域トリガ、
−ソース10の空き領域がある量を下回っている場合、またはソースの使用中領域がある量を上回っている場合に限って、所定の期間が経過した時に起動される周期的−領域トリガ、
−ボリューム12が残り空き領域を持たないことを通知するためにファイルシステム16によってボリューム満杯エラーが返されたことをゴースト化フィルタ26が認識した時に起動されるボリューム満杯トリガ、
−所定の数のバイトがソース10にダウンロードされた時に起動されるバイトダウンロードトリガ、
−ユーザまたは管理者などによって起動されることができる手動トリガ、
を含むが、これらに限定されない。もちろん、再ゴースト化アルゴリズムのトリガは、そのようなトリガの1つに基づいて、またはそのようなトリガの組合せに基づいて生じることができる。
特定のファイル14を再ゴースト化するかどうかを決定するための可能な選択要因は、
−ファイル14が最後にアクセスされた時刻、それによって、より古いアクセス時刻を有するファイル14が優先的に再ゴースト化され得る、
−ファイル14に関連するダウンロード時刻、それによって、より古いダウンロード時刻を有するファイル14が優先的に再ゴースト化され得る、
−ファイル14のファイルサイズ、それによって、より大きなファイル14が優先的に再ゴースト化され得る、
−ファイル14のファイルタイプ、それによって、特定の拡張子を有するファイル14が優先的に再ゴースト化され得る、
−ファイル14のファイル属性、それによって、例えば、システムファイルであるファイル14は再ゴースト化されないが、隠しファイルであるファイル14は再ゴースト化される、
−複数の同様のファイル14が存在するかどうかの判定、それによって、同じと見なされたファイル14が優先的に再ゴースト化され得る、
−ファイル14がシンク18において修正されたかどうかの判定、それによって、そのようなファイル14は、最新ではないと見なされ得るデータ20を除去するために再ゴースト化される、
−ファイル14がソース10で修正または生成されたかどうかの判定、それによって、そのようなファイル14は、そのような修正/生成を保存するために、再ゴースト化のために選択されなくてよく、またはそのような修正/生成をシンク18にコピーするために、再ゴースト化のために選択されてもよい、
−特定の期間におけるファイル14へのアクセス頻度、
−特定の期間におけるファイル14へのアクセス回数、
−例えば、同じフォルダ内、同じコンテンツセット内などのその他の関連ファイル14のアクセス頻度/アクセス回数/最終アクセス時刻、
−例えば、リスト、メソッド、XMLファイルなどによる、優先的に再ゴースト化される特定のファイルまたは特定のタイプのファイルについての外部入力、
を含むが、これらに限定されない。もちろん、再ゴースト化アルゴリズムは、単一の選択要因、またはそのような選択要因の組合せを利用することができる。
再ゴースト化のために選択されたファイル14は、実際に再ゴースト化されてもよく、または代わりに、優先再ゴースト化の候補として単に指定されるだけでもよい。特に後者の場合、再ゴースト化は、特定のストップトリガに到達して初めて、実行されることができる。理解され得るように、そのようなストップトリガは、再ゴースト化セッションを開始したトリガパラメータに対応することができ、再ゴースト化の候補ファイル14を選択するための基準に対応することができ、または本発明の主旨および範囲から逸脱することなく、別のトリガとすることもできる。
あるストップトリガに到達して初めて、再ゴースト化が実行される場合には、再ゴースト化される候補であるファイル14に関する選択基準に応じて、そのようなファイル14の再ゴースト化を片付けるのが適当であることがある。例えば、候補ファイル14が、ソース10において、少なくとも2週間以前の最終アクセス日時を有することに基づいて選択される場合、最初に2ヶ月以前の最終アクセス日時を有するそのような候補のすべてを再ゴースト化し、次に必要であれば1ヶ月以前の最終アクセス日時を有するそのような候補のすべてを再ゴースト化し、次に必要であれば3週間などというように進め、最後にストップトリガが起動されるようにするのが適当であることがある。同様に、候補ファイル14が、10メガバイトの最小ファイルサイズを有することに基づいて選択される場合、最初に1ギガバイトより大きいファイルサイズを有するそのような候補のすべてを再ゴースト化し、次に必要であれば100メガバイトより大きいファイルサイズを有するそのような候補のすべてを再ゴースト化し、次に必要であれば50メガバイトなどというように進め、最後にストップトリガが起動されるようにするのが適当であることがある。理解され得るように、どちらのシナリオでも、いくつかの処理は、候補ファイル14のリストを生成し、リストをソートし、再ゴースト化の1つまたは複数のラウンドを生成することなどを要求される。
再ゴースト化は、特にファイル14の異なるバージョンがソース10およびシンク18に配置され得る状況で、両方の場所のファイル14の一貫性を維持するために利用され得ることにも留意されたい。したがって、ファイル14がソース10で再構成され、ソース10のデータ20は修正されるが、シンク18の対応するデータ20は修正されない場合、シンク18のデータ20をソース10のデータで置き換えるために、再ゴースト化が実行されることができる。同様に、ソース10のファイル14のデータ20は修正されないが、シンク18の対応するデータ20は修正される場合、ソース10のそのようなデータ20を削除するためだけに、再ゴースト化が実行されることができ、これは、そのようなファイルの後の再構成が、シンク18のデータ20をソース10にコピーすることを期待してのものである。もちろん、ソース10のファイル14のデータ20が修正され、シンク18の対応するデータ20も修正される場合、競合が存在しており、したがって、ファイル14を再ゴースト化するかどうか、するならば、どのように再ゴースト化するかを決定するために、適切な競合ルールが参考にされることができる。
要約するために、次に図10を参照すると、ボリューム12上のファイル14の再ゴースト化は、再ゴースト化アルゴリズムに従って実行されることができ、そのような再ゴースト化アルゴリズムは、以下のようにして、いくつかのエンティティによって実行される。準備として、再ゴースト化アルゴリズムが、何らかのイベントによってトリガされ(ステップ1001)、そのようなトリガは、エンティティによって内部的に生成されてよく、またはそのようなエンティティによって外部から受け取られてもよい。そのようなトリガが生じると、再ゴースト化アルゴリズムは、何らかの選択基準に基づいて、完全または部分的に再構成されたファイル14およびゴースト化されたことのないファイル14の中からファイル14を選択する(ステップ1003)。
この時点で、再ゴースト化アルゴリズムは、選択されたファイル14を再ゴースト化することによって、単に開始することができ(ステップ1005)、または代わりに、可能な再ゴースト化のための候補ファイル14であると、選択されたファイル14を見なすこともできる(ステップ1007)。後者の場合、ストップトリガが起動されるまで1つまたは複数のラウンドで再ゴースト化を行うために、その後、候補ファイル14が選択される。特に、ラウンド毎に、候補ファイル14のグループが選択され(ステップ1009)、そのような選択されたグループが再ゴースト化され(ステップ1011)、ストップトリガが起動されたかどうか決定が下される。ストップトリガが起動された場合、プロセスは終了する(ステップ1013)。起動されていない場合、プロセスは、別のグループを選択するために、ステップ1009に戻ることによって続けられる(ステップ1015)。
汎用ゴースト化
本明細書でこれまで説明してきたように、特定のソース10でゴースト化されるすべてのファイル14は、ファイルのデータ20が単一のシンク18に存在するように、特にゴースト化される。しかし、理解され得るように、特定のソース10の各ゴースト化ファイル14のデータ20は、図11に示されるように、複数のそのようなシンク18のいずれかに存在することができる。
特に、理解され得るように、本発明のゴースト化フィルタ26は、単一のゴースト化マネージャ28と共に機能して、データ20をファイル14から単一のシンク18にゴースト化するように必ずしも制限される必要はない。代わりに、ゴースト化フィルタは、実際には複数のゴースト化マネージャ28と共に機能することができ、そのような各ゴースト化マネージャ28は、複数のシンク18の特定の1つに関するゴースト化機能を実行する。
支店サーバ10およびハブサーバ18の環境では、例えば、特定の支店サーバ10は、複数のハブサーバ18とインタフェースをとることができる。したがって、特定の支店サーバ10とインタフェースをとる1つのハブサーバ18は、第1のソースからのデータ20を有し、そのような特定の支店サーバ10とインタフェースをとる別のハブサーバ18は、第2のソースからのデータ20を有することがあり得る。同様に、コンピューティング装置10と代替ロケーション18の環境では、例えば、特定のコンピューティング装置10は、複数の代替ロケーションにデータ20を保存することができる。したがって、特定のコンピューティング装置10用の1つの代替ロケーション18は、第1の特定のタイプのファイル14からのデータ20を保存するように指定され、特定のコンピューティング装置10用の別の代替ロケーション18は、第2の特定のタイプのファイル14からのデータ20を保存するように指定される。もちろん、利用されるシンク18の数、およびそのようなシンク18の間にデータ20を分配する基準は、本発明の主旨および範囲から逸脱することなく、任意の適切な数および基準とすることができる。
いずれにしても、複数のシンク18が、特定のソース18と共に利用される場合、どのシンク18が、そのようなソース10の特定のゴースト化ファイル14からのデータ20を有するかを識別し、どの対応するゴースト化マネージャ28が、そのようなシンク18にアクセスするために利用されなければならないかを識別するための、メカニズムが必要とされる。したがって、本発明の一実施形態では、そのような識別情報は、図11に示されるように、そのような特定のファイル14に関連するゴースト化情報24内に維持される。
結果として、ゴースト化フィルタ26は、特定のゴースト化ファイル14と遭遇し、ゴースト化ファイルからゴースト化情報24を読み取ると、そのようなゴースト化情報24から、そのような特定のゴースト化ファイル14と関連して利用されるゴースト化マネージャ28の識別情報を獲得することができ、識別情報に基づいて、必要に応じてそのような識別されたゴースト化マネージャ28と通信し、そのようなシンク18にアクセスすることができる。実際には、その場合、ゴースト化フィルタ26は、ゴースト化マネージャ28のすべてにとって汎用的であり、ゴースト化フィルタ26は、そのような特定のゴースト化ファイル14に関連して、その他のどのゴースト化マネージャ28とも通信すべきではないので、識別されたゴースト化マネージャ28が、そのような特定のゴースト化ファイル14を管理または「所有」する。
仮定上、各ゴースト化マネージャ28は、ゴースト化フィルタ26がシンクとの通信に関与する必要がないように、対応するシンク18と通信するのに必要なすべての機能および情報を含む。その場合、ゴースト化フィルタ26にとって、特定のゴースト化ファイル14に関連する識別されたゴースト化マネージャ28との通信が、対応する18にアクセスするために必要とされるすべてであり、そのようなゴースト化フィルタ26は、そのような識別されたゴースト化マネージャ28がそのような対応するシンク18とどのように通信するか、またはそのような識別されたゴースト化マネージャ28がそのような対応するシンク18をどのように発見するかなどに実際に関与する必要はない。
図4および図5に示されたプロセスと同様に、次に図12を参照すると、ファイル14の汎用ゴースト化および再構成は、以下のように実行される。仮定上、そのようなゴースト化は、特定の識別情報(ID)を有する特定のゴースト化マネージャ28によって開始され、実際にはゴースト化フィルタ26によって実行され、したがって、そのようなゴースト化マネージャ28は、IDとゴースト化されるファイル14の識別情報とを含む適切なゴースト化要求(ghosting request)をゴースト化フィルタ26に送り(ステップ1201)、その後、ゴースト化フィルタ26は、必要に応じて、ファイル14からデータ20を除去する(ステップ1203)。その後、ゴースト化フィルタ26は、必要に応じて、そのような除去されたデータ20を、要求しているゴースト化マネージャのIDによってこの要求しているゴースト化マネージャ28に転送し(ステップ1205)、その後、そのようなゴースト化マネージャ28は、そのようなゴースト化マネージャ28と共に含まれるプロトコルがどのようなものであれ、そのプロトコルに基づいて、そのような除去されたデータを対応するシンク18に転送することができる。
この点に関して、シンク18およびファイル14のタイプに応じて、例えば、シンク18が問題のファイル14をソース10に読み取り専用方式でレプリケートする場合など、ゴースト化マネージャ28は、実際にはそのような除去されたデータをシンク18に送らないことを選択し得ることに留意されたい。もちろん、そのような場合、ゴースト化マネージャ28からのゴースト化要求が、不必要であるのでステップ1205を実際には実行しないようにゴースト化フィルタに通知することがあり得る。
いずれにしても、以前のように、ゴースト化フィルタ26は、「ゴースト化」属性を設定し、ゴースト化情報24を追加することによって、ゴースト化中ファイルのメタデータ22を修正する(ステップ1207)。重要なこととして、そのようなゴースト化情報は、後でゴースト化ファイル14を再構成する時に使用するための、ゴースト化マネージャ28のIDを含むべきである。したがって、その後、ゴースト化マネージャ28またはアプリケーション30がそのようなゴースト化ファイル14のデータ20へのアクセスを要求した時に、要求は、上で説明されたように、最終的にゴースト化フィルタ26に到達し(ステップ1209)、そのようなゴースト化フィルタ26は、ファイル14のメタデータ22内でゴースト化情報24を発見する(ステップ1211)。
やはり、シンク18に保存されたファイル14のデータ20は、そのような識別されたゴースト化情報24に基づいて発見されるが、この場合、ゴースト化フィルタ26は、最初にそのようなゴースト化情報24内でそのようなゴースト化ファイル14を担当するゴースト化マネージャ28のIDを発見し(ステップ1213)、そのようなIDを用いて、実際にそのようなデータ20を対応するシンク18から獲得するための要求を対応するゴースト化マネージャ28に伝達する(ステップ1215)。仮定上、そのようなゴースト化マネージャ28は、実際にそのようなデータ20をそのようなシンク18から獲得し、そのようなデータ20をゴースト化フィルタ26に供給し(ステップ1217)、その後、そのようなゴースト化フィルタは、そのようなデータ20を問題のファイル14に再構成する(ステップ1219)。
結論
本発明に関連して実行されるプロセスを実施するのに必要なプログラミングは、相対的に簡単であり、当業者には明らかである。したがって、そのようなプログラミングは、本明細書に添付されない。その場合、任意の特定のプログラミングが、本発明の主旨および範囲から逸脱することなく、本発明を実施するために利用されることができる。
上述の説明において、ローカルボリューム12、コンピューティング装置10、または支店サーバ10などのソース10のファイル14が、ファイル14のデータ20が代替ロケーション18またはハブサーバ18などのシンク18に保存され、したがって、ソースのファイル14が必要に応じて再構成され得る縮小またはゴースト化形式をとるように、レプリケートまたはゴースト化され得る、新しい有用な方法およびメカニズムを本発明が含むことが理解される。ゴースト化ファイル14は、必要に応じて、形成または再構成されることができる。
本発明の主旨および範囲から逸脱することなく、上で説明された実施形態に変更が施され得ることを理解されたい。したがって、一般に、本発明は、開示された特定の実施形態に限定されず、添付の特許請求の範囲によって確定される本発明の主旨および範囲内の修正を包含することが意図されていることを理解されたい。
本発明の態様および/またはその一部がその中で具体化され得る汎用コンピュータシステムを表すブロック図である。 本発明の実施形態による、ゴースト化ファイルのデータがシンクに保存されるように、ソースにおいてゴースト化されるファイルを示すブロック図である。 本発明の実施形態による、データのみがシンクに保存される、図2のファイルおよびデータを示すブロック図である。 本発明の実施形態による、ファイル全体がシンクに保存される、図2のファイルおよびデータを示すブロック図である。 本発明の一実施形態による、図2のシンクにファイルをゴースト化する際に実行される主要ステップを示すフローチャートである。 本発明の一実施形態による、図2のシンクからゴースト化ファイルを再構成する際に実行される主要ステップを示すフローチャートである。 本発明の一実施形態による、図2のシンクからゴースト化ファイルを再構成する際に実行される主要ステップをより詳細に示すフローチャートである。 本発明の一実施形態による、図2のシンクからゴースト化ファイルを部分的に再構成する際に実行される主要ステップを示すフローチャートである。 本発明の一実施形態による、図2のファイルのデータに関する様々なステータスを示すブロック図である。 本発明の一実施形態による、図8で説明された部分のデータのセグメントのステータスに基づいて、図2のシンクからゴースト化ファイルの少なくとも一部を効率的に再構成する際に実行される主要ステップを示すフローチャートである。 本発明の一実施形態による、ファイルを図2のシンクに再ゴースト化する時に実行される主要ステップを示すフローチャートである。 本発明の一実施形態による、ソースが単一の汎用ゴースト化フィルタと、各シンクに対応するゴースト化マネージャとを有することによって、複数のシンクに関連付けられた図2のソースを示すブロック図である。 本発明の一実施形態による、ソースのファイルをゴースト化および再構成する際に図11のゴースト化フィルタによって実行される主要ステップを示すフローチャートである。

Claims (19)

  1. ストレージボリュームと、前記ストレージボリュームを管理するファイルシステムと、前記ファイルシステムによって前記ストレージボリューム上に保存され、そのようなファイルシステムを介してアクセスされるファイルと、を有するコンピューティング装置であって、前記ファイルは、データと、前記データに関係するメタデータと、を含むように定義され、前記ファイルの前記データの少なくとも一部は、前記データが実質的に前記ボリューム上のどの領域も占有せずかつ前記ファイルが縮小されたゴースト化形式をとるように、前記ファイルから除去されて代替ロケーションに保存され、前記ゴースト化ファイルは、前記代替ロケーションから前記データを取り出し、そのような取り出されたデータをそのようなゴースト化ファイルに関連付けて、再構成ファイルを形成することによって、使用のために再構成されることを特徴とするコンピューティング装置。
  2. 前記コンピューティング装置は、支店サーバであり、前記代替ロケーションは、前記支店サーバから遠く離れたハブサーバであり、前記ハブサーバは、複数のそのような支店サーバにサービスすることを特徴とする請求項1に記載の装置。
  3. 前記ゴースト化ファイルは、長期間無使用(stale)または無関係の少なくとも一方であると決定されたものであることを特徴とする請求項1に記載の装置。
  4. 前記ボリューム上の前記ゴースト化ファイルは、前記ファイルシステムによって、あるファイルロケーションに論理的に保存され、前記ゴースト化ファイルのゴースト化は、前記ゴースト化ファイルの前記ファイルロケーションを変更せず、それによって、ユーザは、前記ファイルシステムを手段として、前記ボリュームをブラウズして、前記ゴースト化ファイルおよび前記ゴースト化ファイルの前記ロケーションを識別することができることを特徴とする請求項1に記載の装置。
  5. 前記ボリューム上に存在する前記ゴースト化ファイルの前記メタデータは、ゴースト化より前の前記ファイルからの実質的にすべてのメタデータを含み、前記代替ロケーションから前記ファイルの前記データを取り出すために利用されるゴースト化情報も含むことを特徴とする請求項1に記載の装置。
  6. 前記ファイルは、1次データおよび2次データを含むデータを含むように定義され、前記1次データは、前記2次データよりも大きく、前記ファイルの少なくとも前記1次データは、前記ファイルから除去され、前記代替ロケーションに保存されることを特徴とする請求項1に記載の装置。
  7. ストレージボリュームと、前記ストレージボリュームを管理するファイルシステムと、前記ファイルシステムによって前記ストレージボリューム上に保存され、そのようなファイルシステムを介してアクセスされるファイルであって、データおよび前記データに関係するメタデータを含むように定義されるファイルと、を有するコンピューティング装置に関連する方法であって、前記ファイルの少なくとも一部によって占有される前記ボリューム上の領域を解放するための前記方法は、
    前記ファイルを識別するステップと、
    前記ファイルから除去される前記データの少なくとも一部を識別するステップと、
    前記識別されたデータを、前記ファイルが縮小されたゴースト化形式をとるように、代替ロケーションに保存するために、前記ファイルから該代替ロケーションに移動するステップと、
    前記移動されたデータによって以前占有されていた前記ボリューム上の領域を空きとして標識付けするステップと、
    前記ゴースト化中ファイルの前記メタデータを、前記ファイルの前記移動されたデータを前記代替ロケーションから取り出すために利用され得る情報を含むゴースト化情報を含むように、修正するステップと、を含み、
    それによって、前記ゴースト化ファイルは、前記代替ロケーションから前記データを取り出し、そのような取り出されたデータをそのようなゴースト化ファイルに関連付けて、再構成ファイルを形成することによって、使用のために再構成され得ることを特徴とする方法。
  8. 前記識別されたデータを前記ファイルから前記代替ロケーションに移動するステップと、そのような移動されたデータを前記ファイルのID(identification)と共に前記代替ロケーションに保存するステップと、を含むことを特徴とする請求項7に記載の方法。
  9. 前記移動されたデータによって以前占有されていた領域を空きとして標識付けするステップは、前記ファイルの前記メタデータ内に書き留められた前記ボリューム上の前記ゴースト化ファイルの物理サイズを低減させ、やはり前記ファイルの前記メタデータ内に書き留められた前記ボリューム上の前記ゴースト化ファイルの論理ファイルサイズを低減させない結果を生むことを特徴とする請求項7に記載の方法。
  10. 前記ゴースト化中ファイルの前記メタデータを、そのようなファイルが今はゴースト化されていることを示す属性を設定するように修正するステップをさらに含み、それによって、前記コンピューティング装置上のアプリケーションは、そのような属性から、前記ファイルが今ゴースト化されていると決定することができ、したがって、そのようなアプリケーションは、そのようなファイルの前記データにアクセスする前に、そのようなファイルが最初に非ゴースト化形式に再構成されなければならないことを知らされることを特徴とする請求項7に記載の方法。
  11. 前記ファイルが長期間無使用または無関係の少なくとも一方であると決定したことに基づいて、前記ファイルを識別するステップを含むことを特徴とする請求項7に記載の方法。
  12. 前記ボリューム上の前記ゴースト化ファイルは、前記ファイルシステムによって、あるファイルロケーションに論理的に保存され、前記方法は、前記ゴースト化ファイルの前記ファイルロケーションを変更しないステップを含み、それによって、ユーザは、前記ファイルシステムを手段として、前記ボリュームをブラウズして、前記ゴースト化ファイルおよび前記ゴースト化ファイルの前記ロケーションを識別することができることを特徴とする請求項7に記載の方法。
  13. 前記ファイルは、1次データおよび2次データを含むデータを含むように定義され、前記1次データは、前記2次データよりも大きく、前記方法は、
    前記1次データの少なくとも一部を、前記ファイルから除去される前記データとして識別するステップと、
    前記識別された1次データを、前記ファイルが縮小されたゴースト化形式をとるように、前記代替ロケーションに保存するために、前記ファイルから前記代替ロケーションに移動するステップと、を含むことを特徴とする請求項7に記載の方法。
  14. 前記ゴースト化ファイルを再構成するステップをさらに含み、そのような再構成するステップは、
    前記ゴースト化ファイルの前記移動されたデータにアクセスする要求を受け取るステップと、
    前記ボリューム上の前記ゴースト化ファイルを発見するステップと、
    前記ファイルの前記メタデータ内の前記ゴースト化情報を識別するステップと、
    前記識別されたゴースト化情報に基づいて、前記代替ロケーションにある前記ファイルの前記移動されたデータを発見するステップと、
    前記発見されたデータの少なくとも一部を、前記代替ロケーションから前記コンピューティング装置に移動するステップと、
    再構成ファイルを形成するために、前記移動されたデータをそのようなゴースト化ファイルに関連付けるステップと、を含むことを特徴とする請求項7に記載の方法。
  15. 前記再構成ファイルの前記メタデータを、そのようなファイルがゴースト化されていることを示す属性をリセットするように修正するステップをさらに含むことを特徴とする請求項14に記載の方法。
  16. 前記再構成ファイルを形成するために、前記移動されたデータを前記ゴースト化ファイルに関連付けるステップは、前記ボリューム上の前記移動されたデータによって占有される領域を前記ファイルに割り当てるステップと、前記割り当てられた領域に前記移動されたデータを保存するステップと、を含むことを特徴とする請求項14に記載の方法。
  17. 前記再構成ファイルの前記メタデータを、前記ゴースト化情報を削除するように修正するステップをさらに含むことを特徴とする請求項14に記載の方法。
  18. 前記ファイルシステムが、前記ゴースト化ファイルの前記移動されたデータにアクセスする要求を受け取り、前記ゴースト化ファイルがそのような移動されたデータを含まないことを発見し、エラーを返すステップと、前記コンピューティング装置は、ゴースト化フィルタをさらに有するものであって、前記ゴースト化フィルタが、前記エラーをインタセプトし、前記ゴースト化ファイルの前記メタデータから前記ゴースト化情報を獲得するために、前記インタセプトされたエラーに基づいて前記ファイルシステムを利用するステップと、前記獲得されたゴースト化情報に基づいて前記ゴースト化ファイルの再構成をトリガするステップと、を含むことを特徴とする請求項14に記載の方法。
  19. 前記ゴースト化フィルタは、前記代替ロケーションにアクセスしない低水準構造であり、前記コンピューティング装置は、前記代替ロケーションにアクセスする高水準構造であり前記ゴースト化フィルタとインタフェースをとるゴースト化マネージャを、さらに有するものであり、前記ゴースト化フィルタは、前記ゴースト化ファイルの再構成を実行するように前記ゴースト化マネージャに要求することによって、前記ゴースト化ファイルの再構成をトリガすることを特徴とする請求項18に記載の方法。
JP2008521514A 2005-07-14 2006-07-10 領域を解放するための、ストレージボリューム上のファイルから代替ロケーションへのデータの移動 Active JP4955677B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/181,440 US7506005B2 (en) 2005-07-14 2005-07-14 Moving data from file on storage volume to alternate location to free space
US11/181,440 2005-07-14
PCT/US2006/026853 WO2007011576A2 (en) 2005-07-14 2006-07-10 Moving data from file on storage volume to alternate location to free space

Publications (3)

Publication Number Publication Date
JP2009501390A true JP2009501390A (ja) 2009-01-15
JP2009501390A5 JP2009501390A5 (ja) 2009-08-27
JP4955677B2 JP4955677B2 (ja) 2012-06-20

Family

ID=37662875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521514A Active JP4955677B2 (ja) 2005-07-14 2006-07-10 領域を解放するための、ストレージボリューム上のファイルから代替ロケーションへのデータの移動

Country Status (6)

Country Link
US (1) US7506005B2 (ja)
EP (1) EP1902393A4 (ja)
JP (1) JP4955677B2 (ja)
KR (1) KR20080033264A (ja)
CN (1) CN101288074B (ja)
WO (1) WO2007011576A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065314A (ja) * 2009-09-16 2011-03-31 Hitachi Ltd ファイル管理方法及びストレージシステム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979565B2 (en) * 2008-08-27 2011-07-12 International Business Machines Corporation System and method to provide a network service
JP5234342B2 (ja) * 2008-09-22 2013-07-10 株式会社日立製作所 計算機システム及びその制御方法
US8762325B2 (en) * 2008-10-06 2014-06-24 Foxit Corporation Processing of files for electronic content management
US8635184B2 (en) * 2009-06-25 2014-01-21 Emc Corporation System and method for providing long-term storage for data
US9239762B1 (en) * 2009-08-11 2016-01-19 Symantec Corporation Method and apparatus for virtualizing file system placeholders at a computer
US20130311597A1 (en) * 2012-05-16 2013-11-21 Apple Inc. Locally backed cloud-based storage
CN106576078B (zh) * 2014-08-26 2020-06-23 Ctera网络有限责任公司 用于在云存储系统中路由数据流的方法和系统
CN107409142A (zh) * 2015-01-30 2017-11-28 卓普网盘股份有限公司 存储受约束的共享内容项同步
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063551A (ja) * 1996-08-16 1998-03-06 Nec Off Syst Ltd 情報処理装置
JP2002099450A (ja) * 2000-08-24 2002-04-05 Microsoft Corp コンピュータ・システムにおけるオブジェクトの別のストレージ・ロケーションへの部分的移動
JP2004265418A (ja) * 2003-02-28 2004-09-24 Microsoft Corp ピアコンピューティングデバイスの間で共用されるデータを同期させるための方法およびシステム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4468785A (en) * 1981-06-10 1984-08-28 Gould Inc. Telemetry system with signal booster for digital data transmission through a transmission line
US5214768A (en) 1989-11-01 1993-05-25 E-Systems, Inc. Mass data storage library
US5504873A (en) 1989-11-01 1996-04-02 E-Systems, Inc. Mass data storage and retrieval system
US5832526A (en) 1996-01-24 1998-11-03 Symantec Corporation Method and apparatus using slack area of file storage structures for file reconstruction
US5950203A (en) 1997-12-31 1999-09-07 Mercury Computer Systems, Inc. Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US7010532B1 (en) * 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6694317B1 (en) 1997-12-31 2004-02-17 International Business Machines Corporation Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US6374363B1 (en) * 1998-02-24 2002-04-16 Adaptec, Inc. Method for generating a footprint image file for an intelligent backup and restoring system
US6119131A (en) 1998-06-12 2000-09-12 Microsoft Corporation Persistent volume mount points
US6571245B2 (en) * 1998-12-07 2003-05-27 Magically, Inc. Virtual desktop in a computer network
US7010554B2 (en) 2002-04-04 2006-03-07 Emc Corporation Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
US6625622B1 (en) * 1999-05-14 2003-09-23 Eisenworld, Inc. Apparatus and method for transfering information between platforms
US6499039B1 (en) 1999-09-23 2002-12-24 Emc Corporation Reorganization of striped data during file system expansion in a data storage system
US6414627B1 (en) * 1999-10-12 2002-07-02 Mcewan Technologies, Llc Homodyne swept-range radar
US6421579B1 (en) 1999-11-05 2002-07-16 International Business Machines Corporation Multiple independent intelligent pickers with dynamic routing in an automated data storage library
US6718372B1 (en) * 2000-01-07 2004-04-06 Emc Corporation Methods and apparatus for providing access by a first computing system to data stored in a shared storage device managed by a second computing system
US7222147B1 (en) * 2000-05-20 2007-05-22 Ciena Corporation Processing network management data in accordance with metadata files
US7225244B2 (en) * 2000-05-20 2007-05-29 Ciena Corporation Common command interface
EP1168174A1 (en) * 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Automatic backup/recovery process
US6996588B2 (en) * 2001-01-08 2006-02-07 International Business Machines Corporation Efficient application deployment on dynamic clusters
GB2377542B (en) 2001-05-12 2005-06-15 M4 Data Ltd Data storage
US6948038B2 (en) 2001-07-24 2005-09-20 Microsoft Corporation System and method for backing up and restoring data
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US20040039891A1 (en) 2001-08-31 2004-02-26 Arkivio, Inc. Optimizing storage capacity utilization based upon data storage costs
EP2420873A3 (en) * 2001-12-14 2013-01-16 QUALCOMM MEMS Technologies, Inc. Uniform illumination system
US6600967B2 (en) 2001-12-20 2003-07-29 Storage Technology Corporation Automated physical disk storage and management
US7064913B2 (en) 2002-01-09 2006-06-20 Quantum Corporation Enhanced read margining using dither enhanced write marginalization for mass data storage applications
US6795904B1 (en) 2002-03-28 2004-09-21 Hewlett-Packard Development Company, L.P. System and method for improving performance of a data backup operation
GB2393804B (en) 2002-10-02 2005-05-18 Hewlett Packard Co Retrieval of records from data storage media
US6771118B2 (en) * 2002-10-30 2004-08-03 Texas Instruments Incorporated System and method for reducing a leakage current associated with an integrated circuit
GB2397936A (en) 2003-01-31 2004-08-04 Hewlett Packard Co Automated storage apparatus having diagnostic means
US7373416B2 (en) * 2003-04-24 2008-05-13 Akamai Technologies, Inc. Method and system for constraining server usage in a distributed network
US20050021566A1 (en) * 2003-05-30 2005-01-27 Arkivio, Inc. Techniques for facilitating backup and restore of migrated files
US7284156B2 (en) 2003-09-19 2007-10-16 International Business Machines Corporation Debugging a grid environment using ghost agents
JP2005165486A (ja) * 2003-12-01 2005-06-23 Sony Corp ファイル管理装置、ストレージ管理システム、ストレージ管理方法、プログラム及び記録媒体
US7293044B2 (en) 2004-04-09 2007-11-06 Microsoft Corporation Method and system for verifying integrity of storage
US8412685B2 (en) * 2004-07-26 2013-04-02 Riverbed Technology, Inc. Method and system for managing data
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063551A (ja) * 1996-08-16 1998-03-06 Nec Off Syst Ltd 情報処理装置
JP2002099450A (ja) * 2000-08-24 2002-04-05 Microsoft Corp コンピュータ・システムにおけるオブジェクトの別のストレージ・ロケーションへの部分的移動
JP2004265418A (ja) * 2003-02-28 2004-09-24 Microsoft Corp ピアコンピューティングデバイスの間で共用されるデータを同期させるための方法およびシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065314A (ja) * 2009-09-16 2011-03-31 Hitachi Ltd ファイル管理方法及びストレージシステム

Also Published As

Publication number Publication date
JP4955677B2 (ja) 2012-06-20
US20070016621A1 (en) 2007-01-18
WO2007011576A2 (en) 2007-01-25
WO2007011576A3 (en) 2008-02-14
CN101288074A (zh) 2008-10-15
EP1902393A2 (en) 2008-03-26
KR20080033264A (ko) 2008-04-16
CN101288074B (zh) 2012-08-15
EP1902393A4 (en) 2011-10-19
US7506005B2 (en) 2009-03-17

Similar Documents

Publication Publication Date Title
JP4955677B2 (ja) 領域を解放するための、ストレージボリューム上のファイルから代替ロケーションへのデータの移動
JP4955678B2 (ja) ストレージボリューム上のファイルから空きスペースの代替ロケーションへのデータの移動
US11593319B2 (en) Virtualized data storage system architecture
US7506004B2 (en) Moving data from file on storage volume to alternate location to free space
US7984255B2 (en) Optimizing reclamation of data space
US7925858B2 (en) Linear space allocation mechanisms in data space
US8484161B2 (en) Live file system migration
US7506008B2 (en) Storage apparatus, storage control method, and computer product
JP2009070361A (ja) コンピュータストレージシステムにおいてデータ圧縮並びに整合性を管理する方法および装置
JP2009289252A (ja) 階層ストレージシステムでのリモート複製
US9307024B2 (en) Efficient storage of small random changes to data on disk
KR102064696B1 (ko) 공유 콘텐츠 항목의 저장소 제약된 동기화
US7505986B2 (en) Moving data from file on storage volume to alternate location to free space
US7873681B2 (en) Moving data from file on storage volume to alternate location to free space
JP2019515365A (ja) ストレージ制約付きの同期エンジン
US7383292B2 (en) Moving data from file on storage volume to alternate location to free space
US8886656B2 (en) Data processing
US8290993B2 (en) Data processing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090707

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120309

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120315

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4955677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250