JP4406225B2 - 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム - Google Patents
宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム Download PDFInfo
- Publication number
- JP4406225B2 JP4406225B2 JP2003188933A JP2003188933A JP4406225B2 JP 4406225 B2 JP4406225 B2 JP 4406225B2 JP 2003188933 A JP2003188933 A JP 2003188933A JP 2003188933 A JP2003188933 A JP 2003188933A JP 4406225 B2 JP4406225 B2 JP 4406225B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cluster
- file
- storage medium
- stream
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/11—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータシステムに関し、一般的にはファイルシステム形式(format)に関する。より詳細には、本発明は、メモリ媒体の内容を記憶するためのイメージファイルに関する。
【0002】
【従来の技術】
コンピュータシステムは、1つまたは複数の記憶媒体とインターフェースをとる。記憶媒体は、オペレーティングシステムファイル、アプリケーションプログラム、およびアプリケーションプログラムで使用されるデータファイルなどの様々なデータを記憶する。周知の記憶媒体のタイプには、ハードディスク、CD−ROM、デジタルバーサタイルディスク(DVD)等が含まれる。記憶媒体は、1つまたは複数のボリューム、つまりパーティションに論理的に細分される。記憶媒体は、複数のセクタにさらに物理的に細分される。各セクタは、複数のデータバイトを記憶することができる。クラスタは、一群のセクタであり、コンピュータで実行されているオペレーティングシステムが記憶媒体上の場所を特定するのに使用する最小単位を表わす。したがって、オペレーティングシステムは、通常、クラスタごとにクラスタ上で記憶媒体上のデータの記憶、または読取りを行う。
【0003】
記憶媒体上のデータは、1組のファイル、およびディスク上のファイルを管理するのに使用される他の制御情報として編成される。例えば、各オペレーティングシステムファイル、アプリケーションプログラム、またはデータファイルは、記憶媒体上の異なるファイルを表わす。制御情報は、各ファイルに関するデータを含む記憶媒体上のクラスタを特定する。また、制御情報は、割り振られた、すなわち、ファイルに関するデータを含む記憶媒体上のクラスタ、および割り振られていないままの、すなわち、新しいデータを記憶するのに利用可能なクラスタも特定する。ファイルおよび制御情報が記憶媒体上で厳密にどのように編成されるかは、ファイルシステムに依存する。ファイルアロケーションテーブル16(File Allocation Table16:FAT16)、ファイルアロケーションテーブル32(FAT32)、およびニューテクノロジーファイルシステム(New Technology File System:NTFS)などの様々な周知のファイルシステムが存在する。
【0004】
【発明が解決しようとする課題】
イメージファイルは、ソース記憶媒体ボリューム上に記憶されたデータのコピーである。通常、イメージファイルは、ソース記憶媒体ボリュームに含まれるデータのセクタごとのコピーである単一のデータストリームである。イメージファイルは、宛先記憶媒体ボリューム上に記憶される。宛先記憶媒体ボリュームは、同一の記憶媒体上の異なるボリューム、つまり異なるパーティションであるか、あるいは別個の記憶媒体である。例えば、ハードディスクボリュームのセクタごとのコピーを表わすイメージファイルが、CD−ROM上に記憶される。
【0005】
イメージファイルは、少なくとも2つの機能のために使用される。第1に、イメージファイルは、ソース記憶媒体ボリュームをイメージファイルが作成された時点の状態に復元するのに使用される。したがって、記憶媒体ボリュームが損傷した場合、または壊れた場合、イメージファイルを使用してその記憶媒体ボリュームを復元することができる。第2に、イメージファイルは、複数のコンピュータシステムに同一の基本構成を提供するのに使用される。
【0006】
イメージファイルは、ソース記憶媒体のセクタごとのコピーとして作成され、単一のデータストリームとして記憶されるため、イメージファイルを操作することは困難である。例えば、ソース記憶媒体ボリュームに関してイメージファイルが作成され、その記憶媒体ボリューム上のオペレーティングシステムファイルが後に、新しいバージョンで置き換えられた場合、その新しいオペレーティングシステムファイルを含むようにイメージファイルを容易に変更することはできない。代わりに、新しいイメージファイルを作成しなければならない。また、ユーザまたはシステム管理者が、異なるバージョンのイメージファイルを維持することを望む場合、それぞれの異なるバージョンに関して別個のイメージファイルを作成しなければならない。したがって、周知のイメージファイル形式は、リソースを多く使用し、その維持に高い費用がかかる。
【0007】
本発明により、イメージファイル、ならびにイメージファイルを作成し、復元するための方法およびシステムが提供される。イメージファイルは、ソース記憶媒体ボリューム上のソースデータから作成される。イメージファイルは、宛先記憶媒体ボリューム上に記憶される。イメージファイルは、複数のイメージストリームを含む。イメージストリームには、制御ストリーム、データストリーム、ビットマップストリーム、およびクラスタマップストリームが含まれる。監査証跡ストリーム、プロパティストリーム、および修正ストリームなどのその他のイメージストリームが、オプションとしてイメージファイルの中に含められる。
【0008】
【課題を解決するための手段】
本発明において、制御ストリームは、イメージファイルを一意的に特定するイメージファイルのヘッダを形成する。また制御ストリームは、ソース記憶媒体ボリュームジオメトリ(geometry)、およびソース記憶媒体上に記憶されたオペレーティングシステムを特定するデータなどの、ソース記憶媒体ボリュームを特定するデータも含む。制御ストリームにより、イメージファイルを読み取る、復元する、編集するのに必要な情報が提供される。
【0009】
また、データストリームは、ソース記憶媒体ボリューム上の複数のファイルのそれぞれに関するデータを含む。また、データストリームは、ソース記憶媒体ボリュームからの制御情報も含む。データストリーム内のデータは、オプションとして、圧縮されるか、または暗号化される。本発明の実施形態では、データストリーム内のデータは、イメージファイルが作成されたときにデフラグ(defragment)される。
【0010】
また、ビットマップストリームは、ファイルに割り振られているソース記憶媒体上のクラスタ、および割り振られていないままのクラスタを特定する。ビットマップストリームは、オペレーティングシステムが新しいデータを記憶するのに利用可能なソース記憶媒体上の場所を特定するのを可能にする迅速なルックアップを提供することにより、イメージファイルを編集することを容易にする。
【0011】
さらに、クラスタマップストリームは、ソース記憶媒体上の一群のデータの場所をデータストリーム内の場所に相関させる。プロパティストリームや監査証跡ストリームなどのオプションのイメージファイルストリームは、イメージファイル内にあるファイルのタイプを特定し、またイメージファイルに行われた編集を特定する。
【0012】
本発明のさらなる特徴および利点は、添付の図を参照して行われる例示的な実施形態の以下の詳細な説明から明白となる。
【0013】
本発明の特徴は特許請求の範囲により詳細に提示されるが、本発明、ならびに本発明の目的および利点は、添付の図面と併せて考慮される以下の詳細な説明からよく理解することができる。
【0014】
【発明の実施の形態】
本出願は、Kartik Raghaven、Sarah Schumacher、and Wesley Wittが出願した「Method and System for Managing Image Files(イメージファイルを管理するための方法およびシステム)」という名称の同時係属出願に関連し、本発明は、イメージファイル、ならびにイメージファイルを作成し、復元するための方法およびシステムを対象とする。イメージファイルは、制御(control)ストリーム、データストリーム、ビットマップストリーム、クラスタマップストリーム、修正(fix-up)ストリーム、ならびに、オプションとして、監査証跡(audit trail)ストリームおよびプロパティストリームを含む複数のストリームを有する。データストリームは、ソース記憶媒体ボリュームからのソースデータを含む。制御ストリーム、ビットマップストリーム、クラスタマップストリーム、監査証跡ストリーム、およびプロパティストリームは、データストリーム内のソースデータに対するアクセスおよび編集を可能にする情報を含む。修正ストリームは、データストリーム内のデータの編成に基づいて複数のストリーム内の情報を更新する。
【0015】
同様の符号が同様の要素を指している図面を参照すると、本発明が適切な計算環境において実施されているものとして示されている。必須ではないが、本発明は、パーソナルコンピュータによって実行される、プログラムモジュールなどの、コンピュータ実行可能命令の一般的な文脈で説明する。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。また、本発明は、タスクが、通信網を介してリンクされた遠隔の処理デバイスによって行われる分散計算環境において実施することも可能である。分散計算環境では、プログラムモジュールは、ローカルのメモリ記憶デバイスと遠隔のメモリ記憶デバイスの両方の中に配置されることが可能である。
【0016】
図1は、本発明を実施することが可能な適切な計算システム環境100の例を示している。計算システム環境100は、適切な計算環境の一例に過ぎず、本発明の使用または機能の範囲について全く限定を示唆するものではない。また、計算環境100が、例示的な動作環境100に示した構成要素のいずれか1つ、またはいずれかの組合せに関連する何らかの依存性または要件を有するものと解釈してはならない。
【0017】
本発明は、多数の他の汎用または特殊目的の計算システム環境または計算システム構成で動作する。本発明で使用するのに適する可能性がある周知の計算システム、計算環境、および/または計算構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスの任意のものを含む分散計算環境等が含まれるが、以上には限定されない。
【0018】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することが可能である。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。また、本発明は、タスクが、通信網を介してリンクされた遠隔の処理デバイスによって行われる分散計算環境において実施することも可能である。分散計算環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルのコンピュータ記憶媒体と遠隔のコンピュータ記憶媒体の両方の中に配置されることが可能である。
【0019】
図1を参照すると、本発明を実施するための例示的なシステムが、コンピュータ110の形態で汎用計算デバイスを含んでいる。コンピュータ110の構成要素には、処理ユニット120、システムメモリ130、ならびにシステムメモリを含む様々なシステム構成要素を処理ユニット120に結合するシステムバス121が含まれる可能性があるが、以上には限定されない。システムバス121は、様々なバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造の任意のものであることが可能である。例として、限定としてではなく、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、エンハンストISA(Enhanced ISA:EISA)バス、ビデオエレクトロニクススタンダーズアソシエート(VideoElectronics Standards Associate:VESA)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect:PCI)バスが含まれる。
【0020】
コンピュータ110は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセス可能な任意の利用可能な媒体であることが可能であり、揮発性の媒体と不揮発性の媒体、取外し可能な媒体と取外し不可能な媒体がともに含まれる。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことが可能である。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または任意の技術で実装される揮発性の媒体および不揮発性の媒体、取外し可能な媒体および取外し不可能な媒体がともに含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ディスクストーレッジ、磁気カセット、磁気テープ、磁気ディスクストーレッジまたは他の磁気記憶デバイス、あるいは所望の情報を記憶するのに使用することができ、コンピュータ110がアクセスすることができる任意の他の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信媒体が含まれる。「変調されたデータ信号」という用語は、信号に情報を符号化するような仕方で特性の1つまたは複数が設定または変更されている信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。また、前述したもののいずれかの組合せも、コンピュータ可読媒体の範囲に含まれるべきものである。
【0021】
システムメモリ130は、読取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性メモリおよび/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。始動中など、コンピュータ110内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システム133(BIOS)が、通常、ROM131の中に記憶されている。RAM132は、通常、処理ユニット120によって即時にアクセス可能であり、かつ/または現在、処理されているデータおよび/またはプログラムモジュールを含む。例として、限定としてではなく、図1は、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示している。
【0022】
また、コンピュータ110は、他の取外し可能な/取外し不可能な、揮発性/不揮発性のコンピュータ記憶媒体を含むことも可能である。単に例として、図1は、取外し不可能な不揮発性の磁気媒体に対して読取りおよび書込みを行うハードディスクドライブ141、取外し可能な不揮発性の磁気ディスク152に対して読取りおよび書込みを行う磁気ディスクドライブ151、およびCD−ROMまたは他の光媒体などの取外し可能な不揮発性の光ディスク156に対して読取りおよび書込みを行う光ディスクドライブ155を示している。例示的な動作環境において使用することができる他の取外し可能な/取外し不可能な揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM等が含まれるが、以上には限定されない。ハードディスクドライブ141は、通常、インターフェース140のような取外し不可能なメモリインターフェースを介してシステムバス121に接続され、また磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150のような取外し可能なメモリインターフェースでシステムバス121に接続される。
【0023】
前述し、図1に示すドライブおよび関連するコンピュータ記憶媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータのストーレッジがコンピュータ110に提供される。図1では、例えば、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶しているものとして示されている。以上の構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであることも、異なることも可能であることに留意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147に、少なくともそれらが異なるコピーであることを示すために異なる符号を付けている。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介してコンピュータ110にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれる可能性がある。以上の入力デバイスおよび他の入力デバイスは、しばしば、システムバスに結合されたユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(Universal Serial Bus:USB)などの他のインターフェースおよびバス構造で接続してもよい。また、モニタ191または他のタイプの表示デバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース195を介して接続することができるスピーカ197やプリンタ196などの他の周辺出力デバイスも含むことが可能である。
【0024】
コンピュータ110は、遠隔コンピュータ180のような1つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境で動作することも可能である。遠隔コンピュータ180は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、パーソナルコンピュータ110に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶デバイス181だけを図1に示している。図1に描いた論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むことも可能である。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【0025】
LANネットワーキング環境で使用されるとき、パーソナルコンピュータ110は、ネットワークインターフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用されるとき、コンピュータ110は、通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、または他の手段を含む。内部にあることも、外部にあることも可能なモデム172は、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することが可能である。ネットワーク化された環境では、パーソナルコンピュータ110に関連して描いたプログラムモジュール、またはプログラムモジュールの部分を遠隔のメモリ記憶デバイスの中に記憶することができる。例として、限定としてではなく、図1は、遠隔アプリケーションプログラム185をメモリデバイス181上に常駐するものとして示している。図示したネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用してもよいことが認められよう。
【0026】
以下の説明では、特に明示しない限り、本発明を1つまたは複数のコンピュータによって行われる動作の処理および記号表現に関連して説明する。このため、ときとして、コンピュータによって実行されるものとして述べるそのような処理および動作には、コンピュータの処理ユニットによる構造化された形態のデータを表わす電気信号の操作が含まれるものと理解されたい。この操作により、データが変形されるか、またはコンピュータのメモリシステム内の場所に保持され、コンピュータの動作が、当分野の技術者によってよく理解されている形で再構成されるか、または別の仕方で変更される。データが保持されているデータ構造は、データの形式によって定義された特定のプロパティを有するメモリの物理的な場所である。ただし、本発明を以上の文脈で説明しているが、これは、以下に説明する様々な処理および動作をハードウェアで実施することも可能であることが当分野の技術者には認められるように、限定するものではない。
【0027】
図2は、本発明を実施するのに使用される例示的な動作構成およびイメージファイル形式を示している。この動作構成は、ソース記憶媒体204および宛先記憶媒体206とインターフェースをとるコンピュータ200を含む。オペレーティングシステム202が、コンピュータ200内部で実行される。オペレーティングシステム202は、コンピュータ200と記憶媒体204および206の間の通信を円滑にするファイルシステムドライバ208、イメージドライバ210、およびデバイスドライバ212などの構成要素を含む。
【0028】
各記憶媒体は、1つまたは複数のボリュームに論理的に分割される。記憶媒体204は、第1のボリューム214および第2のボリューム216に分割される。記憶媒体206は、単一のボリュームに分割される。記憶媒体204および206は、ジオメトリに従って定義される。記憶媒体のジオメトリには、シリンダ(cylinder)の数、シリンダ当たりのトラック数、およびトラック当たりのセクタ数が含まれる。セクタは、記憶媒体上の物理的単位である。各セクタは、ある量の情報、例えば、512バイトを記憶することができる。記憶媒体のジオメトリは、周知であり、本明細書で詳細に説明する必要はない。
【0029】
クラスタは、1つまたは複数のセクタのグループである。オペレーティングシステム202が、記憶媒体上の1つまたは複数のクラスタを参照することによって記憶媒体から情報を読み取り、記憶媒体にデータを書き込む。ファイルシステムは、クラスタを構成するセクタの数を決める。ファイルアロケーションテーブル16(File Allocation Table16:FAT16)、ファイルアロケーションテーブル32(FAT32)、コンパクトディスクファイルシステム(CDFS)、およびニューテクノロジーファイルシステム(NewTechnology File System:NTFS)などの様々な周知のファイルシステムが存在する。
【0030】
図示するとおり、ソース記憶媒体204の第1のボリューム214は、ソースデータ218を含む。ソースデータ218は、オペレーティングシステムファイル236、アプリケーションプログラムなどの実行可能プログラム238、およびアプリケーションプログラムで使用されるデータファイル240などの複数のファイルを含む。また、ソースデータ218は、制御情報242も含む。制御情報は、各ファイルに関するデータを含む記憶媒体ボリューム214上のクラスタを特定するファイル割振りデータ249を含む。また、制御情報242は、ビットマスク248も含む。ビットマスク248は、複数のビットを含み、各ビットが、記憶媒体ボリューム上の1つのクラスタに対応する。ビットマスク内の各ビットの値は、対応するクラスタが少なくとも1つのファイルに関する記憶されたデータを含むか、またはそのクラスタが割り振られていないままであるかを明らかにする。
【0031】
制御情報242、およびファイル236、238、240を編成し、記憶するのに使用されるやり方は、使用されるファイルシステムに依存する。例として、NTFSファイルシステムは、マスタファイルテーブル(MFT)を記憶媒体上に記憶する。MFTは、記憶媒体上に記憶された各ファイルに関する範囲(extent list)リストを含む。範囲リストは、開始ブロックおよび長さを明らかにする一連のエントリを含む。開始ブロックおよび長さは、ファイルに関するデータを含む一続きの連続するクラスタを定義する。
【0032】
ソースデータ218の一部として含まれるその他の情報には、ページメモリ(paged memory)244およびBIOSパラメータブロック(BPB)が含まれる。ページメモリ244は、記憶媒体214に書き込まれるコンピュータのメモリの一部分である。BPB246は、媒体のサイズや記憶媒体上のあるファイルの場所などの記憶媒体ボリュームに関するデータを含む。
【0033】
宛先記憶媒体206は、イメージファイル220を含む。このイメージファイルは、ソースデータ218などの情報の論理的キャプチャである。本発明では、イメージファイル220は、ソース記憶媒体ボリューム214にソースデータ218を復元するのに使用される。別法では、イメージファイル220は、1つまたは複数の記憶媒体ボリュームにソース記憶媒体ボリューム214と同一の構成を与えるのに使用される。
【0034】
イメージファイル220は、複数のイメージストリームを含む。図示するとおり、イメージファイル220は、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、およびプロパティストリーム232を含む。イメージストリームは、宛先記憶媒体206上にイメージファイル220の一部として記憶される。また、イメージファイル220は、修正ストリーム234も含む。修正ストリーム234は、その他のイメージストリームがイメージファイル220に書き込まれる前に、その他のイメージストリームのデータを変更するのに使用される。本発明の実施形態では、監査証跡ストリーム230およびプロパティストリーム232は、オプションである。
【0035】
図示した実施形態では、宛先記憶媒体206およびソース記憶媒体214は、共通のデバイスドライバ212およびファイルシステムドライバ208を介してコンピュータ200とインターフェースをとっており、これにより、両方の記憶媒体は、共通のファイルシステムおよび共通の記憶媒体タイプを使用するものと想定される。当分野の技術者には認識されるとおり、異なる記憶媒体が、異なるファイルシステムおよび異なる記憶媒体タイプを利用することが可能である。例えば、記憶媒体206が、CDFSファイルシステムを使用するCD−ROMであり、他方、記憶媒体204は、FAT16またはFAT32を使用するハードディスクであることが可能である。その場合、複数のファイルシステムドライバ208および複数のデバイスドライバ212が必要とされる可能性がある。
【0036】
通常、ユーザは、イメージファイル220がシステムツール232を介して作成されることを要求する。システムツールは、ユーザインターフェースとして、またはコマンドラインライン要求としてなどの任意の適切な仕方で実装される。別法では、システムツール232は、アプリケーションプログラムなどの別のプログラムモジュールの一部として実装される。要求は、イメージドライバ210に送られ、イメージドライバ210は、ソース記憶媒体204および宛先記憶媒体206にファイルシステムドライバ208を介してアクセスを得る。イメージドライバ210が、ソース記憶媒体および宛先記憶媒体へのアクセスを得ると、オペレーティングシステム202が、イメージドライバ210およびデバイスドライバ212を介してそれらの記憶媒体とインターフェースをとる。イメージファイルを作成するのに、オペレーティングシステムは、ソースデータ218を読み取り、複数のイメージストリーム222〜234を生成し、そのイメージストリームを宛先記憶媒体206に書き込む。イメージファイル220からソースデータ218を復元するのに、ソースデータ218を復元するユーザ要求が、システムツール232によって開始される。イメージドライバ210が、ファイルシステムドライバ208を介してソース記憶媒体ボリューム214およびイメージファイル220へのアクセスを得る。オペレーティングシステムが、イメージドライバ210およびデバイスドライバ212を介してそのイメージファイル220を読み取る。次に、オペレーティングシステム202は、イメージファイル220内のデータに基づいてソース記憶媒体214にソースデータ218を復元する。
【0037】
図3は、本発明を実施するのに使用されるイメージファイル220の実施形態を示している。イメージファイル220は、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、およびプロパティストリーム232を含む。前述したとおり、監査証跡ストリーム230およびプロパティストリーム232は、オプションであり、イメージファイル220に追加の機能を提供するのに使用される。修正ストリーム234は、その他のイメージストリームがイメージファイル220に書き込まれる前に、その他のイメージストリーム内のデータを変更するのに使用される一時的なストリームである。
【0038】
制御ストリーム222は、イメージファイル220内に含まれる他のデータを開き、解釈するのに必要とされるイメージファイル220の属性を記述するヘッダとして機能するデータ構造である。制御ストリーム内のデータには、イメージ識別250、ボリューム情報252、記憶媒体ジオメトリ254、ファイルシステム情報256、オペレーティングシステム情報258、および圧縮情報260が含まれる。
【0039】
イメージ識別250は、イメージを一意的に特定するデータであり、また制御ストリーム222のサイズをバイト数で特定するデータでもある。ボリューム情報252は、ソース記憶媒体ボリューム214を定義するデータを含む。ボリューム情報252内のデータには、記憶媒体204の先頭からのボリュームオフセット、ボリュームの長さ、ボリューム上の隠れたセクタの数、ボリューム番号、およびボリュームによって使用されるファイルシステムのタイプが含まれる。
【0040】
記憶媒体ジオメトリ254は、シリンダの数、シリンダ当たりのトラック数、およびトラック当たりのセクタ数を含むソース記憶媒体214の物理的属性を記述するデータを含む。ファイルシステム情報256は、クラスタの総数、クラスタ当たりのバイト数、およびレコード当たりのクラスタ数を特定するデータを含む。
【0041】
オペレーティングシステム情報258は、ソース記憶媒体ボリューム214上に記憶されたオペレーティングシステムバージョンを特定するデータを含む。また、オペレーティングシステム情報258は、サービスパック識別などのオペレーティングシステムに行われたあらゆる更新を特定するデータも含む。サービスパックは、ソフトウェアプログラムが抱える既知の問題を修正する、またはソフトウェアプログラムに拡張を提供するソフトウェアプログラムに対する更新である。サービスパック識別は、オペレーティングシステムファイル236に関してソース記憶媒体ボリューム214上に記憶されたあらゆるサービスパックを特定する。圧縮/暗号化情報260は、イメージファイル220が圧縮されているかどうか、またイメージファイル220が暗号化されているかどうかを明らかにするデータを含む。
【0042】
データストリーム224は、目標記憶媒体ボリューム214上にあるファイルのそれぞれに関するデータを含む。各ファイルに関するデータは、オプションとして、周知の方法を使用して圧縮されるか、または暗号化される。以下により詳細に説明するとおり、データを圧縮する決定は、ファイルごとに行われる。したがって、データストリーム224内の一部のデータが圧縮され、その他のデータが圧縮されないことが可能である。同様に、データストリーム224内の一部のデータが暗号化され、その他のデータが暗号化されないことが可能である。ソースデータ218の一部を成す制御情報242も1つまたは複数のファイルを含み、データストリーム224の一部として記憶される。
【0043】
本発明の実施形態では、データストリーム224は、同一のデータの複数のコピーは含まない。例えば、同一のデータファイル240の複数のコピーがソース記憶媒体ボリューム214の中に記憶されている場合、データファイル240の1つのコピーだけが、データストリーム224の中に記憶される。また、ページメモリ244も、データストリーム224の中に含める必要がない。イメージファイル220が記憶媒体ボリューム上に復元される際、オペレーティングシステム202が、必要に応じて記憶媒体ボリューム上にページメモリ244を生成する。データファイルおよびページメモリファイルの複数のコピーをなくすことにより、イメージファイル220のサイズが小さくなる。
【0044】
クラスタマップストリーム228は、イメージファイル220内のデータの場所をソース記憶媒体ボリューム214上のデータの場所に相関させる。クラスタマップストリーム228は、一続きのレコードを含む。図3は、クラスタマップストリーム228内の単一のレコードを示している。各レコードは、開始クラスタ262および終了クラスタ264を含む。開始クラスタ262および終了クラスタ264により、ソース記憶媒体214上でデータが位置する開始クラスタおよび終了クラスタが特定される。
【0045】
オフセット268は、データストリームの先頭から計測されたデータストリーム224内のデータの開始位置を特定する。圧縮されたファイルの場合、イメージファイル220内のデータ長は、圧縮サイズ270に等しい。圧縮されていないデータの場合、イメージファイル220内のデータ長は、制御ストリーム222内で特定される長さ266とクラスタ当たりのバイト数の積である。フラグフィールド272は、イメージファイル220内のデータが圧縮されているか、圧縮されていないかを明らかにする。
【0046】
クラスタマップストリーム228は、オペレーティングシステムが、データストリーム224内のデータを探し出すことを可能にする機構を提供する。これにより、イメージファイルを閲覧し、編集することが可能になる。
【0047】
図4を参照すると、データストリーム224内のデータの場所とソース記憶媒体ボリューム214上のデータの場所の間の関係の例が示されている。図4では、制御ストリーム222内で特定されるクラスタ当たりのバイト数が、512であるものと想定されている。ソース記憶媒体ボリューム214は、順次に番号が付けられたブロックを含む。各ブロックは、ソース記憶媒体ボリューム上の1つのクラスタを表わす。また、データストリーム224も、順次に番号が付けられたブロックを含む。データストリーム224内の各ブロックは、データストリーム224内のバイトを表わし、また番号は、データストリーム224の先頭からのバイト数でのオフセットを表わす。
【0048】
クラスタマップレコード228の開始クラスタフィールド262は、開始クラスタ100を含み、終了クラスタフィールド264は、終了クラスタ149を含む。したがって、データは、一般的に示すとおり、ソース記憶媒体ボリューム214のクラスタ100ないし149上に記憶される。オフセットフィールドは、1000という値を有している。したがって、データは、データストリーム224の先頭から1000バイトのオフセットで開始する。フィールド272が、データは圧縮されていないことを示している。したがって、データストリーム224内のこのデータの長さは、長さフィールド266の中で50と特定される長さと、クラスタ当たりのバイト数512の積(50クラスタ*クラスタ当たり512バイト=25600バイト)である。図示するとおり、イメージファイル内の対応するデータは、データストリーム224の先頭を起点としてバイト1000ないし26599に位置する。
【0049】
同じデータの複数のコピーがソース記憶媒体ボリューム214上に記憶される場合、そのデータは、データストリーム224の中に一度限り、入れられる。これが行われる場合、クラスタストリーム228内で複数のレコードが生成され、ソース記憶媒体ボリューム214上でデータが出現する各回に関して1つのレコードが生成される。各レコードは、同じ長さフィールド266、同じオフセットフィールド262、同じ圧縮サイズフィールド270、および同じ圧縮フィールド272を含み、これにより、データストリーム224内の同一のデータをポイントする。開始クラスタフィールド262および終了クラスタフィールド264は異なり、これにより、データが属するソース記憶媒体214上の複数の場所が特定される。
【0050】
図3に戻ると、ビットマップストリーム226を使用して、ソース記憶媒体ボリューム214の割振り済みクラスタおよび未割振りクラスタが特定される。割振り済みクラスタは、ソース記憶媒体ボリューム214上のファイルに関するデータを含むクラスタである。未割振りクラスタは、新しいデータを記憶するのに利用可能なクラスタである。図示した例では、ビットマップストリームは、ビットマップとして実装される。ビットマップ内の各ビットが、ソース記憶媒体214上のクラスタに対応する。「1」という値を有するビットは、割振りクラスタを表わし、他方、「0」という値を有するビットは、未割振りクラスタを表わす。ビットマップストリームは、ビットマスク240と同じ機能を果たす。ただし、ビットマップストリーム226は、データストリーム224の外にあるため、イメージファイル220内で容易にアクセス可能である。
【0051】
監査証跡ストリーム230は、イメージファイルに加えられたあらゆる変更、その変更を開始したユーザ、変更されているファイルがある場合、そのファイル、ならびにその変更が実施された日付および時刻を明らかにするデータを含む。プロパティストリーム232は、オペレーティングシステムバージョンなどのイメージファイル220の属性を明らかにするデータを含む。プロパティストリーム232には、所望の属性を有するイメージファイル220を特定するためにクエリが行われる。例えば、プロパティストリーム232にクエリが行われて、特定のバージョンのオペレーティングシステムを含むイメージファイルが探し出される。監査証跡ストリーム230およびプロパティストリーム232は、任意の適切な仕方で実装される。
【0052】
修正ストリームは、ソースデータ218がオペレーティングシステム202によって読み取られた後、イメージストリームを変更するのに使用される。例えば、ソースデータ218は、データストリーム224の中に入れられたとき、ソース記憶媒体214上の元の場所から移動されている可能性がある。修正ストリームが、ソースデータ218の適切な場所を反映するようにデータストリーム内のBPB246および制御情報242を更新する。
【0053】
図5aおよび5bは、ソース記憶媒体214上のデータが、データストリーム224の中に入れられたとき、オプションとして、どのようにデフラグ(defragment)されるかを示している。図示のとおり、ソースデータ218はソース記憶媒体214に記憶される。ファイルAに関するデータが、280のラベルが付けられたクラスタ上に記憶され、ファイルBに関するデータが、282のラベルが付けられたクラスタ上に記憶され、またファイルCに関するデータが、284のラベルが付けられたクラスタ上に記憶される。図示するとおり、ファイルAに関するデータ、およびファイルBに関するデータは、不連続のクラスタ上に記憶される。あるファイルに関するデータが不連続のクラスタ上に記憶されるとき、そのファイルが断片化される(fragmented)という言い方をする。
【0054】
オペレーティングシステム202は、ファイルAに関してソース記憶媒体214上の制御情報242を読み取ったとき、280のラベルが付けられた、そのファイルに関するデータを含むクラスタを特定し、そのデータを読み取る。次に、オペレーティングシステムは、データストリーム224内で、287のラベルが付けられた連続する場所の中にファイルAに関するデータを入れる。オペレーティングシステム202は、ファイルBおよびファイルCに関して同一のプロセスを行う。図5bに示すとおり、ファイルBに関するデータ、およびファイルCに関するデータは、それぞれ288および289のラベルが付けられた連続する場所に入れられる。データが連続する場所に入れられるため、オペレーティングシステム202は、各ファイルに関するファイル割振り249を更新することによってそのファイルをデフラグすることができる。ソース記憶媒体214上のファイルをデフラグするのに使用される方法を以下に、より十分に説明する。
【0055】
前述したとおり、各ファイルに関するボリュームビットマスク248およびファイル割振り249を含む制御情報242が、1つまたは複数のファイルとしてデータストリーム224の中に記憶される。制御情報242に関するデータ286は、通常、図5bに示すとおり、データストリーム224の終端にある。
【0056】
ファイルがデフラグされたとき、クラスタマップ228レコードが、その新しいデータ場所を反映するように変更される。データが元の場所から移動されているため、開始クラスタおよび終了クラスタは、ソース記憶媒体ボリューム上のソースデータの元の場所に対応しない可能性がある。代わりに、開始クラスタおよび終了クラスタは、イメージファイルが記憶媒体ボリュームに復元される際にデータが記憶される場所を特定する。
【0057】
図6および7は、ソース記憶媒体ボリューム214からイメージファイル220を作成するのに使用されるプロセスを示している。例として、プロセス290は、イメージドライバ210内で動作するプログラムモジュールによるなど、オペレーティングシステム構成要素によって実行される。別法では、プロセス290は、システムツール232によって完全に、または部分的に実行される。
【0058】
通常、イメージファイル220は、システムツール232からのユーザ要求を介して作成される。この要求がシステムツール232から受け取られた後、オペレーティングシステム202が、ステップ292に示されるとおり、ソース記憶媒体ボリューム214を開く。ソース記憶媒体ボリューム214を開くのに、イメージドライバ210は、ファイルシステムドライバ208を介してソース記憶媒体ボリューム214に対するリファレンスを獲得する。ソース記憶媒体ボリューム214に対するリファレンスが獲得されると、オペレーティングシステム202は、イメージドライバ210およびデバイスドライバ212を介して記憶媒体214と通信する。
【0059】
ステップ294で、プロセス290は、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、プロパティストリーム232、および修正ストリーム234を含むイメージファイル220の複数のイメージストリームを生成する。この時点で、イメージファイル220を構成する複数のストリームをメモリ構造内におけるのと同様に実装し、あるいは、宛先記憶媒体ボリューム206上に直接に実装する。
【0060】
ステップ296で、プロセス290が、ソース記憶媒体ボリューム214上の制御情報242を読み取る。制御情報242は、ソース記憶媒体ボリューム214上の複数のファイル、およびそのファイルのそれぞれに割り振られたクラスタを識別する。例えば、ソース記憶媒体ボリュームがNTFSファイルシステムを使用する場合、プロセス290は、記憶媒体ボリューム214上のMFTを読み取る。
【0061】
ステップ298で、プロセス290は、制御情報242によって特定された第1のファイルに関するデータを読み取る。ステップ300で、プロセスは、そのファイルに関するデータをデータストリーム224の中に入れる。前述したとおり、そのファイルデータの複数のコピーが存在する場合、データは、データストリームの中に一度限り入れられる。さらに、ファイルデータがページメモリ244の一部である場合、そのデータは、データストリーム224の中に入れる必要がない。ファイルに関するデータは、オプションとして、データストリーム224の中に入れられる際にデフラグされる。
【0062】
ステップ302で、ソース記憶媒体ボリューム214上のデータの場所をデータストリーム224内のデータの場所に相関させるレコードを追加することにより、クラスタストリーム228が更新される。クラスタマップストリーム228により、オペレーティングシステム202が、データストリーム224内のデータにアクセスし、編集することができるようになる。ステップ304で、プロセス290は、ソース記憶媒体ボリューム214がさらなるファイルデータを含むかどうかを判定する。さらなるファイルデータが存在する場合、プロセス290は、ステップ298に戻り、次のファイルに関するデータを読み取る。
【0063】
もはやファイルデータが存在しない場合、プロセス290は、ステップ306に進み、修正をイメージファイルストリームに適用する。この修正は、データの移動を考慮に入れるように適用される。例えば、前述したとおり、プロセス290は、ソース記憶媒体214上の複数のファイルに関するデータをデフラグする可能性がある。したがって、プロセス290は、データストリーム224内にある制御情報242を変更して、制御情報242が、各ファイルに現在、割り振られているクラスタを特定するようにする。NTFSボリュームの場合、プロセスは、MFT内の各ファイルに関する範囲リストを訂正する。各ファイルに関するデータは、デフラグされているため、各ファイルに関する範囲リストは、単一の範囲を含む。また、ビットマスク248も、データ位置の変更に鑑みて、目標記憶媒体上の割振り済みのクラスタおよび未割振りのクラスタを適切に反映するように変更される。また、修正は、BPB246にも適用される。BPB内で参照されるファイルの場所は変更されているため、BPBは、ファイルの適切な場所が参照されるように変更される。
【0064】
以上のプロセスが完了すると、制御ストリーム222、データストリーム224、ビットマップストリーム226、クラスタマップストリーム228、監査証跡ストリーム230、およびプロパティストリーム232は、宛先記憶媒体206に書き込まれ、これにより、ステップ308に示したイメージファイル220が形成される。
【0065】
図7は、ソース記憶媒体ボリューム214からのデータを暗号化し、圧縮するのに使用されるプロセスを示している。ステップ320で、プロセス290は、制御情報242によって特定されたクラスタ上に記憶されたデータを読み取る。ステップ322で、プロセス290は、データを圧縮するかどうかを決める。本発明では、ファイル圧縮は、オプションであり、システムツール232、または任意の適切なオペレータインターフェースを介してユーザによる選択が可能であることが可能である。ファイル圧縮が選択された場合、プロセス290は、ステップ324に示されるとおり、データを圧縮する。好ましくは、データは、既に圧縮形式で記憶されていない場合にだけ、圧縮される。データは、ステップ324に示されるとおり、任意の圧縮/圧縮解除(CODEC)アルゴリズムを使用して圧縮される。
【0066】
ステップ326で、プロセス290は、データを暗号化するかどうかを決める。本発明では、ファイル暗号化は、オプションであり、システムツール232を介してユーザによる選択が可能である。選択された場合、データは、ステップ328に示されるとおり、任意の適切な周知の方法を使用して暗号化される。データは、該当する場合に暗号化され、かつ/または圧縮されると、ステップ330に示されるとおり、データストリーム224に書き込まれる。
【0067】
図8は、ソース記憶媒体ボリューム214にイメージファイル220を復元するのに使用される、340のラベルが付けられたプロセスを示している。プロセス340は、オペレーティングシステム202によって実行されることが可能である。別法では、プロセス340は、システムツール232によって完全に、または部分的に実行されることが可能である。ステップ342で、プロセス340は、イメージファイル220を開く。オペレーティングシステム202が、ファイルシステムドライバ208を介して宛先記憶媒体ボリューム206に対するリファレンスを獲得する。
【0068】
ステップ344で、プロセス340は、クラスタマップストリーム228内に含まれる複数のクラスタマップレコードの1つを読み取る。クラスタマップレコードは、データに関するデータストリーム224内の場所を特定し、また、ソース記憶媒体ボリューム214上のそのデータの意図される場所も特定する。クラスタマップレコードを読み取った後、ステップ346で示すとおり、データが、データストリーム224から読み取られる。次に、データは、ソース記憶媒体214に、クラスタマップレコード228内の開始クラスタおよび終了クラスタによって特定されたクラスタ上で書き込まれる。
【0069】
ステップ350で、プロセス340は、クラスタマップストリーム228内でさらなるレコードが存在するかどうかを判定する。さらなるレコードが存在する場合、プロセスは、ステップ314に戻り、次のクラスタマップレコードが検査される。もはやレコードが存在しない場合、プロセス340は、ステップ352に進み、修正が適用される。この修正は、イメージファイルを作成するのに使用されたソース記憶媒体ボリューム214と、ソースデータ218が復元される記憶媒体ボリュームの間でジオメトリが異なる場合、必要とされる。例えば、BPB内で特定されたファイルの場所が変更されている場合、BPBが、ファイルのその新しい場所を反映するように更新される。また、BPBは、記憶媒体のジオメトリ情報も含む。BPB内のジオメトリ情報は、復元されたソースデータ218を含む記憶媒体の実際のジオメトリを反映するように更新される必要がある。
【0070】
図9は、イメージファイル220からのデータを暗号化解除し、圧縮解除するのに使用されるプロセスを示している。ステップ360で、プロセス340は、データを圧縮解除するかどうかを決める。データは、圧縮解除を必要とする場合、ステップ362に示されるとおり、周知の圧縮解除アルゴリズムを使用して圧縮解除される。ステップ364で、プロセス340は、データを暗号化解除するかどうかを決める。データが暗号化解除を必要とする場合、ステップ366に示されるとおり、周知の暗号化解除アルゴリズムを使用してデータが暗号化解除される。データは、必要に応じて圧縮解除され、暗号化解除されると、ソース記憶ボリューム214に書き込まれる。データは、該当のデータに関するクラスタレコード内で特定されたクラスタに書き込まれる。
【0071】
本発明の原理を適用することが可能な多数の可能な実施形態に鑑みて、図面を参照して本明細書で説明した実施形態は、単に例示的なものに過ぎず、本発明の範囲を制限するものと受け取られるべきでないことを認識されたい。例えば、本発明の趣旨逸脱することなく、ソフトウェアで示される例示した実施形態の要素をハードウェアで実装することが可能であり、またその逆も可能であること、あるいは、例示した実施形態の構成および詳細を変更できることが、当分野の技術者には認められよう。したがって、本明細書で説明した本発明は、特許請求の範囲の範囲に入る可能性があるすべてのそのような実施形態、およびそれと等価な形態を企図している。
【図面の簡単な説明】
【図1】本発明が存在する例示的なコンピュータシステムを一般的に示すブロック図である。
【図2】イメージファイルの作成、復元、および編集を行うのに使用される動作環境を示すブロック図である。
【図3】イメージファイル形式の例を示すブロック図である。
【図4】クラスタマップストリームを示すブロック図である。
【図5a】ソースデータおよびデータストリームを示すブロック図である。
【図5b】ソースデータおよびデータストリームを示すブロック図である。
【図6】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【図7】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【図8】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【図9】本発明の実施形態で行われることが可能な手続きの例を示す流れ図である。
【符号の説明】
220 イメージファイル
222、224、226、228、230、232、234 ストリーム
250、252、254、256、258、260 データ
262、264、266、268、270、272 フィールド
Claims (3)
- 第1の記憶媒体ボリュームおよび第2の記憶媒体ボリュームにアクセス可能なコンピュータが、前記第1の記憶媒体ボリューム上に記憶されたソースデータから、前記第2の記憶媒体ボリューム上に記憶されたイメージファイルを作成するための方法であって、
前記コンピュータが、データストリーム及びクラスタマップストリームを含む複数のイメージストリームを生成するステップと、
前記コンピュータが、前記ソースデータに含まれる制御情報であって、前記ソースデータに含まれる複数のファイルが記憶された前記第1の記憶媒体ボリューム上のクラスタを特定する制御情報を前記第1の記憶媒体ボリュームから読み取るステップと、
前記コンピュータが、前記制御情報により特定されたクラスタから前記複数のファイルを読み取るステップと、
前記コンピュータが、読み取られた前記複数のファイルを前記データストリームに書き込むステップと、
前記コンピュータが、前記複数のファイルが記憶されていた前記第1の記憶媒体ボリューム上のクラスタと、前記複数のファイルの前記データストリーム内の位置との関係を特定するクラスタマップレコードを生成するステップと、
前記コンピュータが、前記クラスタマップレコードを前記クラスタマップストリームに追加するステップと、
前記コンピュータが、前記データストリーム及び前記クラスタマップストリームを前記第2の記憶媒体ボリュームに書き込むステップと
を含み、
前記複数のファイルは、同一のデータを表す第1のファイルおよび第2のファイルを有し、
前記データストリームに書き込むステップは、前記コンピュータが、前記第1のファイルを前記データストリームに書き込むステップを含み、
前記クラスタマップレコードを生成するステップは、前記コンピュータが、前記第1のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第1のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第1のクラスタマップレコードと、前記第2のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第2のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第2のクラスタマップレコードとを作成するステップを含み、
前記第1のクラスタマップレコードと前記第2のクラスタマップレコードとは、前記第1の記憶媒体ボリューム上のクラスタを特定する開始クラスタ及び終了クラスタを除いて同一であることを特徴とするイメージファイルの作成方法。 - 第1の記憶媒体ボリュームおよび第2の記憶媒体ボリュームにアクセス可能なコンピュータに、前記第1の記憶媒体ボリューム上に記憶されたソースデータから、前記第2の記憶媒体ボリューム上に記憶されたイメージファイルを作成させるためのプログラムであって、
データストリーム及びクラスタマップストリームを含む複数のイメージストリームを生成するステップと、
前記ソースデータに含まれる制御情報であって、前記ソースデータに含まれる複数のファイルが記憶された前記第1の記憶媒体ボリューム上のクラスタを特定する制御情報を前記第1の記憶媒体ボリュームから読み取るステップと、
前記制御情報により特定されたクラスタから前記複数のファイルを読み取るステップと、
読み取られた前記複数のファイルを前記データストリームに書き込むステップと、
前記複数のファイルが記憶されていた前記第1の記憶媒体ボリューム上のクラスタと、前記複数のファイルの前記データストリーム内の位置との関係を特定するクラスタマップレコードを生成するステップと、
前記クラスタマップレコードを前記クラスタマップストリームに追加するステップと、
前記データストリーム及び前記クラスタマップストリームを前記第2の記憶媒体ボリュームに書き込むステップと
を前記コンピュータに実行させ、
前記複数のファイルは、同一のデータを表す第1のファイルおよび第2のファイルを有し、
前記データストリームに書き込むステップは、前記第1のファイルを前記データストリームに書き込むステップを含み、
前記クラスタマップレコードを生成するステップは、前記第1のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第1のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第1のクラスタマップレコードと、前記第2のファイルが記憶されていた前記第1の記憶媒体ボリューム上の第2のクラスタと、前記第1のファイルの前記データストリーム内の位置との関係を特定する第2のクラスタマップレコードとを作成するステップを含み、
前記第1のクラスタマップレコードと前記第2のクラスタマップレコードとは、前記第1の記憶媒体ボリューム上のクラスタを特定する開始クラスタ及び終了クラスタを除いて同一であることを特徴とするプログラム。 - 請求項2に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/185,755 US7293150B2 (en) | 2002-06-28 | 2002-06-28 | Method and system for creating and restoring an image file |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004038979A JP2004038979A (ja) | 2004-02-05 |
JP4406225B2 true JP4406225B2 (ja) | 2010-01-27 |
Family
ID=29718009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003188933A Expired - Fee Related JP4406225B2 (ja) | 2002-06-28 | 2003-06-30 | 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (2) | US7293150B2 (ja) |
EP (1) | EP1376403A3 (ja) |
JP (1) | JP4406225B2 (ja) |
CN (1) | CN1329841C (ja) |
TW (1) | TWI311702B (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7293150B2 (en) * | 2002-06-28 | 2007-11-06 | Microsoft Corporation | Method and system for creating and restoring an image file |
US7334099B2 (en) * | 2002-06-28 | 2008-02-19 | Microsoft Corporation | Method and system for managing image files |
JP2004240549A (ja) * | 2003-02-04 | 2004-08-26 | Ricoh Co Ltd | イメージファイル作成方法、記録方法、プログラム及び記録媒体、並びに情報記録システム |
JP4502375B2 (ja) * | 2004-05-27 | 2010-07-14 | キヤノン株式会社 | ファイルシステムおよびその制御方法 |
US7305539B2 (en) * | 2004-10-14 | 2007-12-04 | Sandisk Il Ltd. | Adaptive booting from mass storage device |
US7353355B1 (en) * | 2004-12-28 | 2008-04-01 | Acronis Inc. | System and method for rapid restoration of server from backup |
US7475282B2 (en) * | 2004-12-28 | 2009-01-06 | Acronis Inc. | System and method for rapid restoration of server from back up |
US7509530B2 (en) * | 2005-01-19 | 2009-03-24 | Sonic Solutions | Method and system for use in restoring an active partition |
US7549037B1 (en) * | 2005-09-01 | 2009-06-16 | Symantec Operating Corporation | Efficient off-host backup of a file set clone |
US7617226B1 (en) * | 2006-02-10 | 2009-11-10 | Google Inc. | Document treadmilling system and method for updating documents in a document repository and recovering storage space from invalidated documents |
US7634521B1 (en) * | 2006-04-27 | 2009-12-15 | Symantec Corporation | Technique for scanning stealthed, locked, and encrypted files |
JP2008077249A (ja) * | 2006-09-19 | 2008-04-03 | Fujitsu Ltd | システム環境復元方法 |
US7508609B2 (en) * | 2006-10-25 | 2009-03-24 | Spectra Logic Corporation | Formatted storage media providing space for encrypted text and dedicated space for clear text |
US20090185762A1 (en) * | 2008-01-18 | 2009-07-23 | Inventec Corporation | Data structure for image file |
US20090185761A1 (en) * | 2008-01-18 | 2009-07-23 | Inventec Corporation | Method of generating image file |
US8170991B1 (en) * | 2008-09-15 | 2012-05-01 | Symantec Corporation | Method and apparatus for managing image data on a sequential storage device |
US8930423B1 (en) * | 2008-12-30 | 2015-01-06 | Symantec Corporation | Method and system for restoring encrypted files from a virtual machine image |
US8712968B1 (en) * | 2009-07-15 | 2014-04-29 | Symantec Corporation | Systems and methods for restoring images |
DE102010006931A1 (de) * | 2010-02-04 | 2011-08-04 | Bienert, Jörg, 50354 | Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen |
US8564798B2 (en) * | 2010-03-03 | 2013-10-22 | Xerox Corporation | Validation of print jobs using bitmapped image |
JP5494073B2 (ja) * | 2010-03-18 | 2014-05-14 | 日本電気株式会社 | ファイル持出制御システム、ファイル持出制御方法、ファイル持出制御プログラム |
US8898206B1 (en) * | 2010-04-28 | 2014-11-25 | Netapp, Inc. | Mechanism for distributed inode to path traversal in a striped volume system |
US20120047110A1 (en) * | 2010-08-18 | 2012-02-23 | Jeffrey Brunet | System and Method for Automatic Data Defragmentation When Restoring a Disk |
US9933978B2 (en) | 2010-12-16 | 2018-04-03 | International Business Machines Corporation | Method and system for processing data |
CN103902587B (zh) * | 2012-12-27 | 2017-06-27 | 联想(北京)有限公司 | 一种识别信息同步的方法及电子设备 |
US9436617B2 (en) * | 2013-12-13 | 2016-09-06 | Texas Instruments Incorporated | Dynamic processor-memory revectoring architecture |
US10268552B2 (en) * | 2014-11-25 | 2019-04-23 | Sap Se | Database recovery using foreign backups |
US10157102B2 (en) * | 2016-12-29 | 2018-12-18 | Whatsapp Inc. | Techniques to scan and reorganize media files to remove gaps |
US10757425B2 (en) * | 2017-07-24 | 2020-08-25 | United States Postal Service | Image encryption through dynamic compression code words |
CN109145858A (zh) * | 2018-09-03 | 2019-01-04 | 哦加哦网络科技(上海)有限公司 | 无人货架视频审核系统及方法 |
US10838641B2 (en) * | 2019-03-04 | 2020-11-17 | International Business Machines Corporation | Defragmenting backup objects |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276860A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data processor with improved backup storage |
US5584023A (en) * | 1993-12-27 | 1996-12-10 | Hsu; Mike S. C. | Computer system including a transparent and secure file transform mechanism |
US5818723A (en) * | 1994-12-22 | 1998-10-06 | International Business Machines Corporation | Quick access data storage library with backup capability |
KR100326130B1 (ko) * | 1995-08-21 | 2002-09-05 | 마츠시타 덴끼 산교 가부시키가이샤 | 동적인재생출력의전환을실현하는멀티미디어광디스크와그재생장치및그재생방법 |
US5907672A (en) | 1995-10-04 | 1999-05-25 | Stac, Inc. | System for backing up computer disk volumes with error remapping of flawed memory addresses |
US5991542A (en) * | 1996-09-13 | 1999-11-23 | Apple Computer, Inc. | Storage volume handling system which utilizes disk images |
US5966730A (en) * | 1996-10-30 | 1999-10-12 | Dantz Development Corporation | Backup system for computer network incorporating opportunistic backup by prioritizing least recently backed up computer or computer storage medium |
US6058390A (en) * | 1996-11-26 | 2000-05-02 | Visteon Technologies, Llc | Vehicle navigation assistance device having fast file access capability |
US5960460A (en) * | 1997-01-02 | 1999-09-28 | Exabyte Corporation | Non-intrusive replication of hard disk |
US5930828A (en) * | 1997-03-26 | 1999-07-27 | Executive Software International | Real-time apparatus and method for minimizing disk fragmentation in a computer system |
EP0927934A1 (en) * | 1997-06-30 | 1999-07-07 | Matsushita Electric Industrial Co., Ltd. | File managing device, file managing method, and recording medium stored with file managing program |
US6092128A (en) | 1997-08-28 | 2000-07-18 | Cypress Semiconductor Corp. | Ethernet repeater that couples an input data stream to multiple output data streams of differing rates and provides access to a shared bus by a number of inputs and outputs |
US6108697A (en) * | 1997-10-06 | 2000-08-22 | Powerquest Corporation | One-to-many disk imaging transfer over a network |
US6374336B1 (en) * | 1997-12-24 | 2002-04-16 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6205527B1 (en) * | 1998-02-24 | 2001-03-20 | Adaptec, Inc. | Intelligent backup and restoring system and method for implementing the same |
CA2234493C (en) | 1998-04-09 | 2002-12-31 | Pmc-Sierra Ltd. | State machine architecture with multiplexed random access memory |
WO1999057641A1 (en) * | 1998-05-01 | 1999-11-11 | Powerquest Corporation | Manipulation of virtual and live computer storage device partitions |
US6278838B1 (en) | 1998-06-26 | 2001-08-21 | Lsi Logic Corporation | Peak-ahead FIFO for DVD system stream parsing |
US7233978B2 (en) * | 1998-07-08 | 2007-06-19 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
JP2000200207A (ja) * | 1998-10-30 | 2000-07-18 | Sony Corp | 階層管理ファイル装置及びこれを具備した電子機器 |
US6747986B1 (en) * | 1998-11-25 | 2004-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet pipe architecture for access networks |
US6519762B1 (en) | 1998-12-15 | 2003-02-11 | Dell Usa, L.P. | Method and apparatus for restoration of a computer system hard drive |
US6256673B1 (en) | 1998-12-17 | 2001-07-03 | Intel Corp. | Cyclic multicasting or asynchronous broadcasting of computer files |
US6424999B1 (en) * | 1999-03-11 | 2002-07-23 | Emc Corporation | System and method for restoring previously backed-up data in a mass storage subsystem |
US6546500B1 (en) * | 1999-03-19 | 2003-04-08 | Fujitsu Limited | Computer, computer network system, and recording medium |
US6505216B1 (en) * | 1999-10-01 | 2003-01-07 | Emc Corporation | Methods and apparatus for backing-up and restoring files using multiple trails |
JP2001126405A (ja) * | 1999-10-26 | 2001-05-11 | Victor Co Of Japan Ltd | ビットストリーム記録/又は再生装置 |
US6477624B1 (en) * | 1999-11-08 | 2002-11-05 | Ondotek, Inc. | Data image management via emulation of non-volatile storage device |
SE9904094D0 (sv) * | 1999-11-12 | 1999-11-12 | Protegrity Research & Dev | Method for reencryption of a database |
US6658436B2 (en) * | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
ATE533102T1 (de) * | 2000-02-01 | 2011-11-15 | Commvault Systems Inc | Hochgeschwindigkeitsdatentransfermechanismus |
US6718446B1 (en) * | 2000-02-11 | 2004-04-06 | Iomega Corporation | Storage media with benchmark representative of data originally stored thereon |
US7096327B2 (en) * | 2000-03-24 | 2006-08-22 | Koninklijke Philips Electronics N.V. | System for and method of accessing blocks on a storage medium |
US7450114B2 (en) * | 2000-04-14 | 2008-11-11 | Picsel (Research) Limited | User interface systems and methods for manipulating and viewing digital documents |
US7358986B1 (en) * | 2000-09-13 | 2008-04-15 | Nextengine, Inc. | Digital imaging system having distribution controlled over a distributed network |
WO2002035359A2 (en) | 2000-10-26 | 2002-05-02 | Prismedia Networks, Inc. | Method and system for managing distributed content and related metadata |
US7197513B2 (en) * | 2000-12-08 | 2007-03-27 | Aol Llc | Distributed image storage architecture |
US6948039B2 (en) * | 2001-12-14 | 2005-09-20 | Voom Technologies, Inc. | Data backup and restoration using dynamic virtual storage |
US20030163809A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Automatic provisioning for subscription computing |
US7185169B2 (en) * | 2002-04-26 | 2007-02-27 | Voom Technologies, Inc. | Virtual physical drives |
US7293150B2 (en) | 2002-06-28 | 2007-11-06 | Microsoft Corporation | Method and system for creating and restoring an image file |
-
2002
- 2002-06-28 US US10/185,755 patent/US7293150B2/en not_active Expired - Fee Related
-
2003
- 2003-06-17 EP EP20030013749 patent/EP1376403A3/en not_active Ceased
- 2003-06-24 TW TW092117174A patent/TWI311702B/zh not_active IP Right Cessation
- 2003-06-27 CN CNB031452760A patent/CN1329841C/zh not_active Expired - Fee Related
- 2003-06-30 JP JP2003188933A patent/JP4406225B2/ja not_active Expired - Fee Related
-
2007
- 2007-09-27 US US11/862,910 patent/US7818532B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004038979A (ja) | 2004-02-05 |
US7818532B2 (en) | 2010-10-19 |
TW200407690A (en) | 2004-05-16 |
US20080016304A1 (en) | 2008-01-17 |
TWI311702B (en) | 2009-07-01 |
EP1376403A2 (en) | 2004-01-02 |
CN1329841C (zh) | 2007-08-01 |
US20040003314A1 (en) | 2004-01-01 |
CN1495669A (zh) | 2004-05-12 |
EP1376403A3 (en) | 2008-01-23 |
US7293150B2 (en) | 2007-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4406225B2 (ja) | 宛先記憶媒体、イメージファイルの作成方法、データ復元方法およびプログラム | |
JP4406224B2 (ja) | イメージファイル管理方法及びその記録媒体 | |
US7380091B2 (en) | Heap memory management using a tri-linked list | |
US8386733B1 (en) | Method and apparatus for performing file-level restoration from a block-based backup file stored on a sequential storage device | |
JP4755642B2 (ja) | 記憶のためのファイル圧縮および圧縮ファイルの操作の方法およびシステム | |
US8069320B1 (en) | System and method for consolidation of backups | |
US8549051B2 (en) | Unlimited file system snapshots and clones | |
US7856451B2 (en) | Selective file erasure using metadata modifications | |
US7979478B2 (en) | Data management method | |
US6789094B2 (en) | Method and apparatus for providing extended file attributes in an extended attribute namespace | |
US20060015535A1 (en) | Preload library for transparent file transformation | |
EP2718825A2 (en) | Storage architecture for backup application | |
US8412753B2 (en) | File creation API | |
US20110125950A1 (en) | Systems and methods for performing deduplicated data processing on tape | |
WO2016118580A1 (en) | File encryption support for fat file systems | |
US20080320252A1 (en) | Optimized and robust in-place data transformation | |
JP2008269520A (ja) | 記録装置及び記録方法 | |
US20110320753A1 (en) | Data processing apparatus, computer program therefor, and data processing method | |
JPH0869400A (ja) | 圧縮データ記録方法 | |
JP2001056775A (ja) | 計算機システム及びプログラム記録媒体 | |
JP2004005524A (ja) | データ記録装置、データ記録方法、当該方法を実行するためのプログラム及びプログラム記録媒体 | |
JP2005135525A (ja) | 記録再生装置、記録再生方法、及び記録再生プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060518 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090522 |
|
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: 20091009 |
|
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: 20091106 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121113 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121113 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131113 Year of fee payment: 4 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |