"プロセッサにより実行されると該プロセッサに、仮想ディスクファイルを開き、該仮想ディスクファイルは、第1の固有識別子と、仮想ディスク内のデータの少なくとも一部を形成する仮想ディスク範囲データと、を有し、仮想ディスク範囲データがどのようにインタープリットされるかに影響する情報を前記仮想ディスクファイルに書き込む試みの検出に応答して、前記仮想ディスクファイル内の前記第1の固有識別子を第2の固有識別子で上書きし、前記第2の固有識別子が前記仮想ディスクファイルの永続的コピーに書き込まれたと決定し、前記第2の固有識別子が前記仮想ディスクファイルの前記永続的コピーに書き込まれたという決定に応答して、仮想ディスクファイルに前記情報を書き込ませる、命令を有するコンピュータ可読記憶媒体。実行されると前記プロセッサに、子仮想ディスクファイルにより完全に記述されるグループ内の仮想ディスク範囲を識別する情報と数値を関連付け、前記仮想ディスクファイル内のデータが変更されたという決定に応答して、前記子仮想ディスクファイル内の前記数値のコピーを第2の数値に更新し、前記情報が前記グループ内の前記仮想ディスク範囲の状態を正確に反映するという決定に応答して、前記情報に関連付けられた前記数値を前記第2の数値に更新させる、命令を更に有する請求項1に記載のコンピュータ可読記憶媒体。プロセッサと、給電されると前記プロセッサと電子的に通信するメモリと、を有し、前記メモリは、プロセッサにより実行されると該プロセッサに、仮想ディスクをインスタンス化し、前記仮想ディスクは第1の仮想ディスクファイルにより記述される仮想ディスク範囲のグループを有し、前記第1の仮想ディスクファイルは第1の識別子を有し、前記第1の仮想ディスクファイルにより完全に記述される前記グループ内の仮想ディスク範囲を識別する情報を、ランダムアクセスメモリにロードし、前記情報は前記第1の識別子のコピーと関連付けられ、前記第1の仮想ディスクファイルを開いた後に、前記第1の仮想ディスクファイル内の前記第1の識別子を第2の識別子に変更し、前記情報が前記グループ内の前記仮想ディスク範囲の状態を正確に反映するという決定に応答して、前記情報と関連付けられた前記第1の識別子の前記コピーを前記第2の識別子に変更させる、命令を有する、コンピュータシステム。実行されると前記プロセッサに、前記仮想ディスクをインスタンス化させる命令は、実行されると前記プロセッサに、前記第1の仮想ディスクファイル内の固有識別子が親仮想ディスクファイル内にある固有識別子に一致するという決定に応答して、前記仮想ディスクをインスタンス化させる、命令を更に有する、請求項3に記載のコンピュータシステム。実行されると前記プロセッサに、前記情報と関連付けられた前記第1の識別子の前記コピーを前記第2の識別子に変更させる命令は、実行されると前記プロセッサに、前記仮想ディスクファイルは変更されたという決定に応答して、前記情報と関連付けられた前記第1の識別子の前記コピーを前記第2の識別子に変更させる、命令を更に有する、請求項3に記載のコンピュータシステム。実行されると前記プロセッサに、親仮想ディスクファイルに基づく前記仮想ディスクの仮想ディスク範囲データがどのようにインタープリットされるかに影響する前記親仮想ディスクファイル内の情報を変更しようとする試みを検出し、前記親仮想ディスクファイル内の前記第1のランダム値を第2のランダム値で上書きし、前記仮想ディスクファイルをフラッシュし、前記フラッシュが完了したことを示す信号の受信に応答して、前記親仮想ディスクファイル内の前記情報を変更させる、命令を更に有する、請求項3に記載のコンピュータシステム。親仮想ディスクファイルを開くステップであって、前記親仮想ディスクファイルは子仮想ディスクファイルにリンク付けされ、前記親仮想ディスクファイルは第1の識別子を有し、前記子仮想ディスクファイルは前記第1の識別子のコピーを有する、ステップと、仮想ディスク範囲を記述するデータを変更する試みの検出に応答して、前記仮想ディスクファイル内の前記第1の識別子を第2の識別子で上書きするステップと、前記親仮想ディスクファイルの永続的コピーを格納するよう構成される記憶装置に、前記第1の識別子を前記第2の識別子で上書きすることを示す入力/出力ジョブを発行するステップと、前記記憶装置にフラッシュコマンドを発行するステップと、前記記憶装置が内部キャッシュの内容を持続していることを示す信号の受信に応答して、前記仮想ディスク範囲を記述する前記データを変更するステップと、を有するコンピュータが実施する方法。前記仮想ディスクファイルの前記永続的コピー内の前記第2の識別子が前記子仮想ディスクファイルに格納された前記第1の識別子と一致しないという決定に応答して、前記仮想ディスクをインスタンス化する要求を拒否するステップ、を更に有する請求項7に記載のコンピュータが実施する方法。前記仮想ディスクをインスタンス化するステップであって、前記仮想ディスクは前記親仮想ディスクファイルにより記述される仮想ディスク範囲と前記子仮想ディスクファイルにより記述される仮想ディスク範囲とを有し、前記子仮想ディスクファイルはシーケンス番号を有する、ステップと、前記子仮想ディスクファイルにより完全に記述される前記仮想ディスクファイル内の前記仮想ディスク範囲のサブセットを識別する情報を、ランダムアクセスメモリにロードするステップであって、前記情報は前記シーケンス番号のコピーと関連付けられる、ステップと、前記子仮想ディスクファイルは変更されたという決定に応答して、前記子仮想ディスクファイル内の前記シーケンス番号を増大するステップと、前記情報は前記子仮想ディスクファイル内の仮想ディスク範囲の前記サブセットの状態を正確に反映するという決定に応答して、前記情報と関連付けられた前記シーケンス番号を増大するステップと、を更に有する請求項7に記載のコンピュータが実施する方法。仮想ディスク範囲のグループのセクタビットマップを前記仮想ディスクファイルに書き込むステップであって、前記仮想ディスクファイルのセクションは、前記セクションが前記仮想ディスクファイルを格納するよう構成された記憶装置のセクタと揃えられるよう選択された仮想ディスクファイルオフセットを有する、ステップ、を更に有する請求項7に記載のコンピュータが実施する方法。例示的な実施形態では、仮想ディスクファイルは識別子を割り当てられ、仮想ディスクファイルに依存する仮想ディスクファイルは、該識別子のコピーを有する。仮想ディスクファイルが開かれ、データが変更されて仮想ディスク範囲の内容に変更を生じる場合には、識別子は変更され得る。仮想ディスクをインスタンス化するために仮想ディスクファイル及び従属する仮想ディスクファイルが用いられる場合、識別子同士の差分が検出される。この差分は、仮想ディスクが損傷しているという事実を示す。同一の又は別の例示的な実施形態では、仮想ディスク範囲のグループの正規化ビットマップは永続的であり得る。識別子は仮想ディスクファイルに格納され、識別子のコピーは正規化ビットマップと関連付けられ得る。仮想ディスクファイルに対して変更が行われると、識別子は更新され得る。正規化ビットマップが仮想ディスク範囲のグループのセクタビットマップを正確に反映する場合には、正規化ビットマップと関連付けられた識別子のコピーが更新され得る。仮想ディスクファイルが後の時間に開かれるとき、2つの識別子の一致は、正規化ビットマップが仮想ディスク範囲のグループのセクタビットマップを正確に反映していること、及びビットマップが使用可能であることを示す。以上に加え、他の技術は、請求の範囲、詳細な説明及び図面に記載される。当業者は、本開示の1又は複数の種々の態様が、限定ではなく、ここに言及される態様を達成する回路及びプログラムを有しても良く、該回路及びプログラムが、システム設計者の設計選択に依存してここに言及される態様を達成するよう構成されるハードウェア、ソフトウェア及び/又はファームウェアの実質的に如何なる組合せでもあり得ることを理解する。以上は要約であり、したがって必然的に簡略化、一般化及び詳細の省略を含む。当業者は、この要約が単に説明のためであり、限定を意図しないことを理解する。本願明細書で用いられる用語、回路は、ハードウェア割り込み制御部、ハードドライバ、ネットワークアダプタ、グラフィックプロセッサ、ハードウェアベースのビデオ/オーディオコーデックのようなハードウェアコンポーネント、及びこれらのハードウェアを動作させるファームウェアを含み得る。用語、回路は、マイクロプロセッサ、特定用途向け集積回路、及びファームウェア及び/又はソフトウェアにより構成されるプロセッサ、例えば命令をリードし及び実行する実行ユニットも含み得る。プロセッサ等は、メモリ、例えばRAM、ROM、ファームウェア及び/又は大容量記憶装置から読み込んだ命令により構成され得る。このような命令は、1又は複数の機能を実行するようプロセッサを構成するロジックを用い得る。特定の例示的な回路は、ハードウェア及びソフトウェアの組合せを含み得る。この特定例では、実装者は、プロセッサにより実行可能な機械可読コードに後にコンパイルされる、ロジックを具現化するソースコードを記述しても良い。当業者は、最先端では、ハードウェアで実装される機能とソフトウェアで実装される後にハードウェアにより実行される機能との間に僅かな差しかないことを理解する。したがって、ハードウェア又はソフトウェアで実装されるというような機能の記載は、単に設計選択である。端的に言うと、ソフトウェア処理は等価なハードウェア構造に変換でき、ハードウェア構造はそれ自体が等価なソフトウェア処理に変換できるので、命令で具現化されるよう記載される機能は代替としてハードウェアで実装でき、逆も同様である。開示の主題は、1又は複数のコンピュータシステムを用いても良い。図1及び以下の議論は、開示の主題が実施され得る適切なコンピューティング環境の簡潔な概略的説明を提供することを目的とする。図1を参照すると、例示的なコンピューティングシステム100が示される。コンピューティングシステム100は、プロセッサ102、例えば実行コアを有し得る。1つのプロセッサ102が図示されるが、多の実施形態では、コンピュータシステム100は、複数のプロセッサ、例えばプロセッサ基板毎に複数の実行コアを及び/又はそれぞれ複数の実行コアを有する複数のプロセッサ基板を有しても良い。図示のように、種々のコンピュータ可読記憶媒体110が、種々のシステムコンポーネントをプロセッサ102に結合する1又は複数のシステムバスにより相互接続され得る。システムバスは、メモリバス又はメモリ制御部、周辺バス、及び種々のバスアーキテクチャのうちの任意のものを用いるローカルバスを含む複数種類のバス構造のうちの任意のものであっても良い。例示的な実施形態では、コンピュータ可読記憶媒体110は、例えばRAMrandomaccessmemory、記憶装置106、例えば電気機械ハードドライブ、固体ハードドライブ等、ファームウェア108、例えばFLASHRAM若しくはROM,及び取り外し可能記憶装置118、例えばCD-ROM,フロッピディスク、DVD、FLASHドライブ、外部記憶装置等を有し得る。当業者に理解されるべきことに、磁気カセット、フラッシュメモリカード、及び/又はデジタルビデオディスクのような他の種類のコンピュータ可読記憶媒体を用いることができる。コンピュータ可読記憶媒体110は、プロセッサ実行可能命令122、データ構造、プログラムモジュール、及び実行可能命令のようなコンピュータ100のための他のデータの不揮発性及び揮発性記憶を提供し得る。BIOSbasicinputoutputsystem120は、起動中のような、コンピュータシステム100内の要素間の情報転送を助ける基本ルーチンを含み、ファームウェア108に格納され得る。オペレーティングシステム及び/又はアプリケーションプログラムを含む多数のプログラムが、ファームウェア108、記憶装置106、RAM104、及び/又は取り外し可能記憶装置118に格納され、プロセッサ102により実行されても良い。例示的な実施形態では、コンピュータ可読記憶媒体110は、以下に詳述する仮想ディスクパーサ404を格納し得る。仮想ディスクパーサ404は、プロセッサ102により実行されることにより、コンピュータシステム100を、特定目的のために構成されたコンピュータシステムに変える。つまり、コンピュータシステムは、本願明細書に記載される技術に従って構成される。コマンド及び情報は、キーボード及びポインティングデバイスを含むがこれらに限定されない入力装置116を通じて、コンピュータ100により受信されても良い。他の入力装置は、マイクロフォン、ジョイスティック、ゲームパッド、スキャナ等を有しても良い。上述の及び他の入力装置は、システムバスに結合されるシリアルポートインタフェースを通じて、プロセッサ102に接続される場合が多いが、パラレルポート、ゲームポート又はUSBuniversalserialbusポートのような他のインタフェースにより接続することもできる。ディスプレイ又は他の種類のディスプレイは、グラフィックプロセッサユニット112の一部であり又はそれに接続されるビデオアダプタのようなインタフェースを介してシステムバスにも接続され得る。ディスプレイに加え、コンピュータは、通常、スピーカ及びプリンタ図示しないのような他の周辺出力装置を有する。図1の例示的なシステムは、ホストアダプタ、SCSISmallComputerSystemInterfaceバス、及びSCSIバスに接続される外部記憶装置も有し得る。コンピュータシステム100は、遠隔コンピュータのような1又は複数のリモートコンピュータへの論理コネクションを用いてネットワーク環境で動作しても良い。リモートコンピュータは、別のコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置又は他の一般的なネットワークノードであって良く、通常、コンピュータシステム100に関して上述した要素の多く又は全てを有し得る。LAN又はWANネットワーク環境で用いられるとき、コンピュータシステム100は、ネットワークインタフェースカード114を通じて、LAN又はWANに接続され得る。NIC114は、内蔵又は外付けであって良く、システムバスに接続され得る。ネットワーク環境では、コンピュータシステム100に関連して示されたプログラムモジュール又はその部分は、遠隔メモリ記憶装置に格納されても良い。理解されるべきことに、本願明細書に記載されたネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を用いることが出来る。さらに、本開示の多数の実施形態はコンピュータ化されたシステムに特に良く適すると考えられるが、本願明細書はこのような実施形態に本開示を限定するものではない。図2及び3を参照すると、仮想デスクトップセッションに用いられる仮想マシンを生成するために用いることができる例示的な仮想化プラットフォームが示される。本実施形態では、ハイパーバイザマイクロカーネル202は、コンピュータシステム200のハードウェアを制御し、該ハードウェアへのアクセスを調停するよう構成され得る。ハイパーバイザマイクロカーネル202は、Childパーティション1乃至Nここで、Nは1より大きい整数であるのようなパーティションと呼ばれる実行環境を生成し得る。ここで、Childパーティションは、ハイパーバイザマイクロカーネル202によりサポートされる分離の基本単位である。ハイパーバイザマイクロカーネル202は、あるパーティションのプロセスを、別のパーティションのリソースへのアクセスから隔離できる。各Childパーティションは、ハイパーバイザマイクロカーネル202の制御下にあるハードウェアリソース、例えばメモリ、装置、プロセッササイクル等のセットにマッピングされ得る。実施形態では、ハイパーバイザマイクロカーネル202は、スタンドアロン型ソフトウェア、オペレーティングシステムの一部であり、マザーボードのファームウェア内に組み込まれ、専用集積回路であり、又はそれらの組合せであり得る。ハイパーバイザマイクロカーネル202は、ゲストオペレーティングシステムの、物理コンピュータシステム内のメモリの視野メモリビューを制限することにより、パーティションを実行できる。ハイパーバイザマイクロカーネル202は、仮想マシンのインスタンスを生成するとき、システム物理メモリsystemphysicalmemory:SPMのページ、例えば開始アドレス及び終了アドレスを有する固定長メモリブロックを、ゲスト物理メモリguestphysicalmemory:GPMとして仮想マシンに割り当てることができる。ここで、ゲストの、システムメモリの制限された視野は、ハイパーバイザマイクロカーネル202により制御される。用語、ゲスト物理メモリは、仮想マシンの観点からメモリページを記述する省略表現である。また、用語、システム物理メモリは、物理システムの観点からメモリページを記述する省略表現である。したがって、仮想マシンに割り当てられるメモリページは、ゲスト物理アドレス仮想マシンにより用いられるアドレス及びシステム物理メモリページの実際のアドレスを有する。ゲストオペレーティングシステムは、ゲスト物理メモリを仮想化しても良い。仮想メモリは、オペレーティングシステムに、メモリをコミットさせ、アプリケーションに連続ワーキングメモリへの単独アクセスを与えさせる管理技術である。仮想化環境では、ゲストオペレーティングシステムは、1又は複数のページテーブルを用い、仮想ゲストアドレスとして知られる仮想アドレスを、ゲスト物理アドレスに変換する。本例では、メモリアドレスは、ゲスト仮想アドレス、ゲスト物理アドレス、及びシステム物理アドレスを有しても良い。図示の例では、Parentパーティションコンポーネントは、Xenのオープンソースハイパーバイザのドメイン0と同様であるとも考えられ、ホスト204を含み得る。ホスト204はオペレーティングシステム又は設定ユーティリティのセットであり、ホスト204は、仮想化サービスプロバイダ228VSPを用いることにより、Childパーティション1~Nで実行するゲストオペレーティングシステムにリソースを提供するよう構成され得る。VSP228は、通常、オーブンソースコミュニティでバックエンドドライバと呼ばれ、仮想化サービスクライアントVSC通常、オーブンソースコミュニティでフロントエンドドライバと呼ばれる、又は並列仮想化装置を用いてハードウェアリソースへのインタフェースを多重化するために用いることができる。図示のように、仮想化サービスクライアントは、ゲストオペレーティングシステムの環境内で実行する。しかしながら、これらのドライバは、ゲストによってではなく、ハイパーバイザにより提供される点で、ゲスト内の残りのドライバと異なる。例示的な実施形態では、仮想化サービスクライアント216及び218と通信するために仮想化サービスプロバイダ228により用いられる経路は、仮想化パスであると考えられる。図示のように、エミュレータ234、例えば仮想化IDE装置、仮想化ビデオアダプタ、仮想化NIC等は、ホスト204内で動作するよう構成され、ゲストオペレーティングシステム220、222に利用可能なリソースに取り付けられる。例えば、ゲストOSが装置のレジスタが存在する場所にマッピングされたメモリ位置又はメモリにマッピングされた装置に触れるとき、ハイパーバイザマイクロカーネル202は、要求を傍受し、関連するエミュレータに書き込みしようとしたゲストに値を渡す。また、本例のリソースは、仮想装置が位置する場所に存在すると考えられる。このようなエミュレータの使用は、エミュレーションパスと考えられる。エミュレーションパスは、装置をエミュレートするためにはVSPとVSCとの間でメッセージを渡すよりも多くのCPUリソースを必要とするので、仮想化パスと比べて非効率である。例えば、エミュレーションパスを介してディスクに値を書き込むために、レジスタにマッピングされたメモリに対する何百回もの動作は、仮想化パスでは、VSCからVSPに渡される単一のメッセージにまで削減されても良い。各Childパーティションは、1又は複数の仮想プロセッサ230、232を有し得る。ゲストオペレーティングシステム220、222は、仮想プロセッサを管理し、それらで実行すべきスレッドをスケジューリングする。概して、仮想プロセッサは、実行可能命令であり、特定アーキテクチャを有する物理的プロセッサを表す関連状態情報である。例えば、ある仮想マシンは、Intelx86プロセッサの特徴を有する仮想プロセッサを有しても良い。また、別の仮想プロセッサは、PowerPCプロセッサの特徴を有しても良い。本例の仮想プロセッサは、コンピュータシステムのプロセッサにマッピングされ、仮想プロセッサを達成する命令がプロセッサにより支援されるようにする。したがって、複数のプロセッサを有する一実施形態では、仮想プロセッサは複数のプロセッサにより同時に実行でき、同時に、例えば他のプロセッサはハイパーバイザ命令を実行する。パーティションにおける仮想プロセッサとメモリの組合せは、仮想マシンと考えられる。ゲストオペレーティングシステム220、222は、例えばMicrosoft登録商標、Apple登録商標、オープンソースコミュニティ等によるオペレーティングシステムのような任意のオペレーティングシステムであり得る。ゲストオペレーティングシステムは、ユーザ/カーネル動作モードを有し、スケジューラ、メモリマネジャ等を含み得るカーネルを有し得る。一般的に、カーネルモードは、少なくとも特権的プロセッサ命令へのアクセスを許可する、プロセッサの実行モードを有し得る。各ゲストオペレーティングシステムは関連ファイルシステムを有し得る。ゲストオペレーティングシステムは、端末サービス、電子商取引サービス、電子メールサービス等のような関連ファイルシステムに格納されたアプリケーション、並びにゲストオペレーティングシステム自身を有し得る。ゲストオペレーティングシステムは、仮想プロセッサで実行すべきスレッドをスケジューリングでき、このようなアプリケーションのインスタンス化が達成できる。図3を参照すると、図2と同様のコンポーネントを示すが、この例示的な実施形態では、ハイパーバイザ302が、マイクロカーネルコンポーネント、並びに仮想サービスプロバイダ228及びデバイスドライバ224のような図2のホスト204内のコンポーネントと同様のコンポーネントを含み得る。一方、管理オペレーティングシステム304は、例えばハイパーバイザ302を構成するために用いられる設定ユーティリティを有しても良い。このアーキテクチャでは、ハイパーバイザ302は、図2のハイパーバイザマイクロカーネル202及びホスト204と同じ又は同様の機能を実行できる。図3のハイパーバイザ302は、スタンドアロン型ソフトウェア、オペレーティングシステムの一部であり、マザーボードのファームウェア内に組み込まれ、及び/又はハイパーバイザ302の一部が専用集積回路により達成され得る。図4を参照すると、コンピュータシステム400を示す。図4は、本願明細書に記載する技術を実行するために用いることができるコンポーネントのハイレベルブロック図である。簡単に言うと、コンピュータシステム400は、図1~3に関して上述したコンポーネントと同様のコンポーネントを有し得る。図4は、図2又は3により説明した仮想プラットフォームのハイレベル表現であると考えられる仮想システム420を示す。例えば、仮想システム420は、ハイパーバイザマイクロカーネル202及びホスト環境204により提供される機能の組合せのハイレベル表現と考えられる。或いは、仮想システム420は、ハイパーバイザ302及び管理OS304のハイレベル表現と考えられる。したがって、本願明細書を通じて用語仮想システム420の使用は、以下の段落で説明する仮想ディスク技術が任意の種類の仮想ソフトウェア層内で又は任意の種類の仮想プラットフォームで実装され得ることを示唆する。仮想ディスクパーサ404は、特定の例示的な実施形態では実行可能命令であり、仮想ディスクファイルから仮想ディスクをインスタンス化し、仮想マシンの代わりに記憶IOを処理するために用いることができる。図示のように、仮想ディスクパーサ404は、仮想ディスクファイル406のような1又は複数の仮想ディスクファイルを開き、仮想ディスク402を生成できる。仮想ディスクパーサ404は、仮想システムファイルシステム408を介して記憶装置106から仮想ディスクファイル406を得ることができる。簡単に言うと、仮想システムファイルシステム408は、仮想ディスクファイル406のような、仮想システム420のコンピュータファイル及びデータを編成する実行可能命令を表す。仮想システムファイルシステム408は、このデータを固定サイズの物理的範囲のアレイ、つまり物理的記憶装置の連続記憶領域に格納できる。特定の例では、1つの範囲はクラスタであり、設定された長さを有する、複数ビットのバイトシーケンスである。例示的なクラスタのサイズは、通常、2の冪乗であり、512バイト乃至64キロバイトである。特定の構成では、クラスタのサイズは、4キロバイトであり得る。仮想ディスクファイル406を開く要求を受信すると、仮想システムファイルシステム408は、ファイルがディスクのどこに位置するかを決定し、ディスクの1又は複数の物理的範囲からデータを読み出すためにIOジョブをディスクデバイスドライバへ発行する。ファイルシステム408により発行されたIOジョブは、記憶装置106にある仮想ディスクファイル406の永続的コピーの位置を記述するディスクオフセット及び長さを決定し、IOジョブを記憶装置106へ発行する。記憶装置がどのように動作するかのセマンティクスにより、書き込みIOジョブは、記憶装置106の回路が永続的記憶ユニット460の位置、例えばプラッタ、フラッシュメモリセル等にアクセスし、及び仮想ディスクファイル406の永続的コピーの新しいコンテンツを示すバッファリングされたビットパターンを永続的記憶ユニット460に書き込むことを決定するまで、キャッシュ454により表される揮発性メモリの1又は複数レベルのキャッシュにバッファリングされる。仮想ディスクパーサ404は、仮想ディスクファイル406を示すビットパターンを得て、複数の仮想ディスク範囲を有するディスクとして仮想ディスクファイル406内にペイロード、例えばユーザデータを置く。一実施形態では、これらの仮想ディスク範囲は、固定サイズブロック、512キロバイト乃至64メガバイトのサイズであり、複数のセクタに区分され得る。しかしながら、別の実施形態では、仮想ディスク範囲は、可変サイズの範囲であり得る。例示的な構成では、ゲストオペレーティングシステム412をブートする前に、エミュレート又はEnlightened記憶制御部及び仮想ディスクのEnlightened特徴に関連するリソースは、メモリをマッピングされたレジスタを有するエミュレートされた記憶制御部が仮想マシン410のゲスト物理アドレス空間内で実行されるよう、設定される。ブートコードが実行し、ゲストオペレーティングシステム412をブートし得る。仮想システム420は、ゲスト物理アドレス空間のこの領域へのアクセスの試みを検出し、ゲストオペレーティングシステム412に記憶装置がエミュレートされた記憶制御部に取り付けられると決定させる結果を返す。これに応答して、ゲストオペレーティングシステム412は、ドライバ並列仮想ドライバ又は通常のドライバをロードし、該ドライバを用いて、検出した記憶装置へ記憶IO要求を発行する。仮想システム420は、記憶IO要求を仮想ディスクパーサ404へ転送できる。ゲストオペレーティングシステム412は、実行された後、ファイルシステム408を介して仮想ディスク402へIOジョブを発行できる。これは、ゲストオペレーティングシステム412及びゲストオペレーティングシステム412にインストールされたアプリケーションのコンピュータファイル及びデータを編成する仮想システムファイルシステム414と似ている。ゲストオペレーティングシステム412は、オペレーティングシステムが物理的記憶装置と相互作用するのと同様の方法で、仮想ディスク402と相互作用でき、最終的にIOジョブは仮想ディスクパーサ404へ転送される。仮想ディスクパーサ404は、物理的記憶装置をエミュレートする方法で、IOジョブにどのように応答するかを決定するロジックを有し得る。例えば、仮想ディスクパーサ404は、仮想ディスクファイル406からデータを読み出し、及び仮想ディスクファイル406にデータを書き込むことができる。また、仮想ディスクファイル406に書き込まれたデータは、仮想システムファイルシステム408を通じて転送され、永続的記憶ユニット460に格納された仮想ディスクファイル406の永続的コピーに又は永続的記憶ユニット460にコミットされる。図5Aを参照すると、本願明細書に記載される技術を実施するための代替のアーキテクチャを示す。図5に示すように、仮想ディスクパーサ404は、Microsoft登録商標により提供されるオペレーティングシステムのようなオペレーティングシステム502に実装できる。本例では、仮想ディスクパーサ404は、図1のコンピュータシステム100と同様のコンポーネントを有し得る記憶サーバ500で実行するよう構成され得る。本例では、記憶サーバ500は、物理的記憶装置アレイ510を有し、サーバが利用可能な記憶を作るよう構成され得る。したがって、記憶は、オペレーティングシステム508にローカルに取り付けられるように見える。仮想ディスクパーサ404は、図4に関して説明したのと同様に動作する。相違点は、本構成では、ファイルシステム414により発行されるリード/ライトIOジョブが、ネットワーク接続を介して仮想ディスクパーサ404へ転送されることである。図5Bを参照すると、本願明細書に記載される技術を実施するための更に別のアーキテクチャを示す。図5Bは、図5Aと同様に、仮想ディスクパーサ404がオペレーティングシステム502に実装され、コンピュータシステム512が図1のコンピュータシステム100と同様のコンポーネントを有し得る。しかしながら、本例は、図がループバックの取り付けられた仮想ディスク402を示す点が異なる。アプリケーション424のようなアプリケーションを含み、ファイルシステム414は、仮想ディスク402に格納され、また、仮想ディスクファイル406はコンピュータシステムファイルシステム514に格納され得る。仮想ディスク402に注意を向けると、仮想ディスク402は単一の仮想ディスクファイルにより達成されるが、他の構成では、仮想ディスク402をもたらすために、差分仮想ディスクファイルのグループを用いることができる。図6は、差分ディスクとして仮想ディスク402を達成するために仮想ディスクパーサ404により用いられ得る仮想ディスクファイルの例示的なチェーンを示す。概して、差分仮想ディスクファイルは、仮想ディスクの現在状態を、親イメージと比較した変更の程度のセットとして表す。親イメージは、別の差分仮想ディスクファイル又は基本仮想ディスクファイルであり得る。例示的な構成では、親仮想ディスクファイルと子仮想ディスクファイルとの間のリンク付けは、子の中に格納され得る。特に、子は、親の識別子及び親の位置を記述する値を有し得る。仮想マシンを起動するとき、仮想ディスクパーサ404は、チェーンの中の最後の仮想ディスクファイルを記述する情報を受信し、このファイルを開いても良い。つまり、仮想ディスクファイル612は、仮想ディスクファイル612、610、606、600を含むチェーンの最後である。このファイルは、このファイルの親、つまり仮想ディスクファイル610の識別子、及び親へのパスを有し得る。仮想ディスクパーサ404は親の位置を特定して親を開き、基本仮想ディスクファイルの位置が特定されそれが開かれるまで、以降同様である。仮想ディスクパーサ404は、データが親仮想ディスクファイル内に存在するか又は格納されているか否かを示す情報を用いることができる。通常、チェーンの中の最後の仮想ディスクファイルは読み出し/変更として開かれ、他の仮想ディスクファイルは読み出しのみとして開かれる。したがって、書き込みは、通常、チェーン内の最後の仮想ディスクファイルに対して行われる。同様に、読み出し動作は、先ずチェーン内の最後の仮想ディスクファイルに向けられる。そして、仮想ディスクパーサ404は、最後から基本へと、データが位置する場所に関する情報がキャッシュされていないインスタンスでデータが見付かるまで、仮想ディスクファイルを論理的に検索する。特定の例では、仮想ディスクファイル、例えば仮想ディスクファイル612の割り当てテーブル図示しないは、仮想ディスク範囲が仮想ディスクファイルのセクションにより定められるか否か、又はこの仮想ディスク範囲が透過的か、例えば更にチェーンに沿って差分仮想ディスクファイルにより定められるかどうかを示す状態情報を有し得る。一実施形態では、仮想ディスクパーサ404は、この仮想ディスク範囲が透過的か否かを決定し、チェーン内の次の仮想ディスクファイル、例えば仮想ディスクファイル610の割り当てテーブルにアクセスするというように、データを定めるチェーン内の仮想ディスクファイルの位置が特定されるまで同様にする。問題は、ユーザが意図的に又は不注意に親である仮想ディスクファイルを開き、ユーザペイロードに影響を与えるデータを変更し得るという点にある。これはまた、このファイルをチェーンの一部として用いる任意の仮想ディスクに影響を与え、仮想ディスクファイルを使用不可能にしてしまう可能性がある。例えば、ユーザが仮想ディスクファイル610を開き、パッチを適用し又はデフラグすると仮定する。本例では子仮想ディスクファイル612は、今や移動され又は失われた仮想ディスクファイル610内のデータに依存し得る。子仮想ディスクファイル612の割り当てテーブルが、仮想ディスクパーサ404に仮想ディスクファイル610から読み出すよう指示すると、仮想ディスクパーサ404は、誤ったデータを返し、仮想ディスクファイル600、606、610、612の組により記述されるゲストオペレーティングシステムを使用不可能にしてしまう。例示的な実施形態では、固有識別子は、仮想ディスクファイルが生成されるとき、各仮想ディスクファイルに挿入され得る。子仮想ディスクファイルが生成されるとき、子の生成と同時にその親の固有識別子のコピーも、子に挿入され得る。したがって、仮想ディスクファイル604は、生成されたとき、固有識別子固有識別子3を与えられ、その親の固有識別子固有識別子1も仮想ディスクファイル604に挿入されている。例示的な実施形態では、仮想ディスクパーサ404は、仮想ディスクファイルへの書き込みが仮想ディスク範囲及び/又は仮想ディスクのサイズを変更し得る場合に、仮想ディスクファイルの固有識別子を変更するよう構成され得る。例えば、異なるセクションに向けられる読み出し動作を生じる、ユーザペイロード、ディスク識別子の末尾又は割り当てテーブル内のエントリに対する変更は、仮想ディスクパーサ404に固有識別子を変更させる例である。仮想ディスクパーサ404は、仮想ディスクファイルのチェーンを開くとき、仮想ディスクファイルの親の固有識別子を子に格納された固有識別子と比較するよう構成され得る。差は、仮想ディスク範囲及び/又は仮想ディスクのサイズに影響を与える変更が親に対して行われたことを反映する。図7を参照すると、仮想ディスクファイル402と仮想ディスク402を形成する1又は複数の仮想ディスクファイルとの間の関係を示す。本例では2つの仮想ディスクファイル700、702が示されるが、この図示の例は限定ではなく、仮想ディスク402を達成するためにより多くの仮想ディスクファイルを用いることができる。図7に示すように、各仮想ディスクファイルは、メタデータ704、706を有し得る。仮想ディスクファイル702のメタデータ706は、固有識別子708として格納された固有識別子を有し得る。仮想ディスクファイル700のメタデータ704は、親の固有ID710として格納された仮想ディスクファイル702の固有識別子のコピー、及び固有ID712として格納された自身の固有識別子を有し得る。例示的な実施形態では、親仮想ディスクファイル702が開かれ、書き込まれて仮想ディスク範囲のペイロード及び/又は仮想ディスクのサイズに変更が生じた場合、仮想ディスクパーサ404は、固有識別子708として格納された識別子を新しい固有識別子に変更する。その後、仮想ディスクパーサ404が親の固有識別子710として格納された識別子を固有識別子708として格納された識別子と比較する場合、二者は一致せず、仮想ディスク402は損傷した可能性があると決定され得る。また、メタデータ706、704は、ディスク識別子714、716として格納された識別子を有し得る。これは、ページ83要求等で仮想ディスク402の識別子としてゲストオペレーティングシステム412へ返される値であり得る。子仮想ディスクファイルが生成されるとき、親のディスク識別子として格納された値のコピーは子にもコピーされ、新しいディスク識別子が子に割り当てられ得る。ディスク識別子は、仮想ディスクを識別するためにゲストオペレーティングシステム412により用いられ、それを固有識別子と区別するために検討され得る。ディスク、シリンダ、ヘッド及びセクタ識別子に加え、従来の情報CHS情報718、720もメタデータ706、704に格納され得る。CHS情報は、シリンダ、ヘッド及びセクタ値の観点からIOを表現するIOジョブをオフセットとして表現されたIOジョブに変換するために用いることができる。図7の総括を続けると、図示のように、仮想ディスク402は、N個の記憶範囲Nは1より大きい整数であるを有し、この特定の例では、仮想ディスク402は10個の範囲を有する。仮想ディスク402は、ゲストオペレーティングシステム412の異なるファイル及びデータのビットパターンを有するとして示される。これらのビットパターンは、仮想ディスク範囲内の異なるハッチングにより区別される。仮想ディスク402は物理的記憶装置ではないので、仮想ディスク範囲のための基本ペイロードデータは、仮想ディスクファイル702、700内の異なるセクションにより記述され、つまり異なるセクションに格納され得る。割り当てテーブル416は、コンピュータシステム400の動作中にランダムアクセスメモリに格納され、任意のセクションにある仮想ディスクファイル702内に存続し、複数のセクションに及び得る。要するに、各仮想ディスクファイルは、仮想ディスク範囲を仮想ディスクファイル702又は700のセクションにリンク付けする情報を含む割り当てテーブル図示しないと関連付けられ得る。各仮想ディスク範囲は、セクタビットマップと関連付けられ得る。例示的な構成では、仮想ディスク範囲のセクタビットマップは、仮想ディスク範囲を記述するために用いられる仮想ディスクファイルのセクションの始めに格納され得る。代替の構成では、図9を説明する段落で詳述するように、複数の仮想ディスク範囲のセクタビットマップは、集約され、合成セクタビットマップに格納される。セクタビットマップは、対応する仮想ディスク範囲内のセクタ毎に1バイトを有し得る。したがって、範囲が2メガバイトであり、各セクタが4キロバイトである場合、各仮想ディスク範囲は、512セクタを有し、各セクタビットマップは512バイトを有する。1は、セクタが子仮想ディスクファイル600により記述されることを示し、0は、セクタが親のような別の仮想ディスクファイルにより記述されることを示す。ディスクからのセクタビットマップへのアクセスは性能に悪影響を与え得るので、一実施形態では、仮想ディスクパーサ404は、正規化ビットマップを生成するよう構成され得る。正規化ビットマップは、完全に記述される仮想ディスク範囲毎に1バイトを有し得る。ビットは、仮想ディスク範囲の各セクタが存在する場合に1に、仮想ディスク範囲内のセクタが透過的である場合に0に設定され得る。したがって、仮想ディスクパーサ404は、先ず、セクタビットマップを調べる必要が有るか否かを決定するために、正規化ビットマップを調べ得る。正規化ビットマップ内のエントリが1である場合、セクタビットマップを調べる必要はない。例えば、図8を参照すると、セクタビットマップが仮想ディスク範囲毎にどのように生成され、正規化ビットマップを生成するために用いられるかの特定の例を示す。図8は、4個のセクタビットマップテーブル802、804、806、808を示し、各セクタビットマップは仮想ディスク範囲内のセクタ毎に1ビットを有し得る。図8に示すセクタビットマップは、本願明細書に記載する技術を説明するために実寸ではなく、8ビットを有するまた、各仮想ディスク範囲は8個のセクタを有する。正規化ビットマップ810、812は、完全に記述される各仮想ディスク範囲が1でマーク付けされることを示す。例えば、正規化ビットマップ810は、仮想ディスク範囲1及び仮想ディスク範囲2のための1ビットを有し、これらの仮想ディスク範囲が子仮想ディスクファイル600により完全に記述されることを示す。問題は、全ての仮想ディスクパーサが正規化ビットマップを使用するよう構成され、これらの正規化ビットマップが永続的ではない可能性があるという点にある。この制限を克服するために、例示的な実施形態では、仮想ディスクパーサ404は、仮想ディスクファイルに正規化ビットマップを格納するよう構成され得る。しかしながら、全ての仮想ディスクパーサがそれらを理解し又はそれらを使用せず、仮想ディスクパーサは仮想ディスクファイル406に格納された正規化ビットマップを示すビットパターンを上書きし、削除し又は無効にし得るので、仮想ディスクパーサ404は、それらを使用する前にそれらを認証するよう構成され得る。例示的な実施形態では、これらの正規化ビットマップは、仮想ディスクパーサ404により持続され、仮想ディスクパーサ404は仮想ディスクをブートするときにそれらを認証するよう構成され得る。一実施形態では、各正規化ビットマップは、メタデータ704に格納され得る正規化ビットマップ識別子NBID、例えばランダム値、シーケンス番号、タイムスタンプ等を割り当てられ得る。図示のように、メタデータ704は、NBID820として格納された識別子、及びNBID822として格納された識別子を有する。さらに、正規化ビットマップの状態が関連付けられたセクタビットマップを正確に記述する場合は、識別子のコピーも各正規化ビットマップと関連して格納され得る。例えば、正規化ビットマップ810はNBID814として格納された識別子を有するとして示され、正規化ビットマップ812はNBID816を有するとして示される。NBIDは個々の正規化ビットマップに格納されるとして図示されるが、このように格納される必要はない。むしろ、NBIDは、BAT内のような仮想ディスクファイル700内のどこにでも格納できる。仮想ディスクパーサ404は、仮想ディスクファイルを開くとき、関連する正規化ビットマップが有効か否か及び使用可能か否かを決定するために、NBIDを用いることができる。このように、正規化ビットマップを使用するよう構成される仮想ディスクパーサは、正規化ビットマップが有効か否か、及び仮想ディスクファイルが正規化ビットマップを使用しない仮想ディスクパーサにより依然として使用可能か否かを決定できる。例えば、これら2つの識別子が一致するという事実は、正規化ビットマップが有効であり再生成する必要がなく使用可能であることを示す。仮想ディスクパーサ404が仮想ディスクファイルを書き込み/変更モードで開いた後又は最初の書き込みが検出されたとき、仮想ディスクパーサ404は、メタデータに格納された識別子を新しい識別子に変更するよう構成され得る。例えば、仮想ディスクパーサ404は、シーケンス番号を増大し、記憶装置106の更新を示すIOジョブを発行して、識別子に対する変更が永続的になるようにし得る。正規化ビットマップがそれらが記述するセクタビットマップの状態を正確に反映する場合には、正規化ビットマップと関連付けて格納された識別子も、メタデータと一致するよう更新され得る。識別子が一致しない場合には、仮想ディスクパーサ404は、正規化ビットマップを再構築し得る。図9を参照すると、例示的な実施形態では、仮想ディスクファイルの複数の仮想ディスク範囲のためのセクタビットマップは、集約され、合成セクタビットマップに格納され得る。例えば、合成セクタビットマップ900は、仮想ディスクファイル702の仮想ディスク範囲0~3のためのセクタビットマップを有し、合成セクタビットマップ902は仮想ディスクファイル700の仮想ディスク範囲0~3のためのセクタビットマップを有する。また、正規化ビットマップは、上述と同じ技術を用いて合成セクタビットマップのために生成され得る。正規化ビットマップを構築するために用いられるデータが集約される点が異なる。例示的な実施形態では、合成セクタビットマップ900、902は、仮想ディスク範囲のペイロードを格納するために用いられるセクションの先頭からセクタビットマップを除去するために用いられ得る。これは、ペイロードを基礎となる記憶装置のセクタサイズに揃えるという効果を有する。さらに、合成セクタビットマップ900及び/又は902を形成するために用いられるセクタビットマップの数は、少なくとも基礎となる記憶装置により用いられるセクタサイズの倍数に等しくなるよう選択され得る。図9の構成は、例示的であり実寸ではない。むしろ、図9は、仮想ディスク範囲のためのセクタビットマップを集約し、それらを合成セクタビットマップに格納する概念を説明するために用いられる。特定の例では、仮想ディスク範囲は2MBの大きさであり、各セクタは4KBであるとする。これは、各仮想ディスク範囲が512個のセクタを有し、仮想ディスク範囲のセクタビットマップが512バイトを有することを意味する。合成セクタビットマップが1メガバイトに渡るよう構成される例では、合成セクタビットマップは2048個の仮想ディスクファイル範囲を記述するために用いることができる。合成セクタビットマップのサイズは、基礎となる記憶装置及び仮想ディスク範囲に揃えられるよう選択され得る。以下に、動作手順を示す一連のフローチャートを示す。理解を容易にするために、フローチャートは、最初のフローチャートが全体的な対局図により実装を表し、以降のフローチャートが破線で示される更なる追加及び/又は詳細を提供するよう構成される。さらに、当業者は、破線で示した動作手順が任意と考えられることを理解する。図10を参照すると、図4のコンピュータシステムのようなコンピュータシステムにより実行され得る動作手順を示す。動作1000は動作手順を開始する。動作1002は、コンピュータシステム400が、仮想ディスクファイルを開くよう構成される回路を含むことを示す。ここで、該仮想ディスクファイルは、第1の固有識別子、及び仮想ディスク内のデータの少なくとも一部を形成する仮想ディスク範囲データを有する。例えば、図4を参照すると、コンピュータシステム400は実行可能命令であり得る仮想ディスクパーサ404を有し得る。例示的な実施形態では、仮想ディスクパーサ404は、図1のプロセッサ102のようなプロセッサにより実行でき、仮想化システムファイルシステム408に仮想ディスクファイルを開く要求を発行し得る。特定の例では、要求は、別の仮想ディスクファイル親である仮想ディスクファイル、例えば図6の仮想ディスクファイル600、604、606又は610を開くためであり得る。ここで、ユーザは、仮想ディスクファイルに格納された情報の一部を変更するために該仮想ディスクファイルを開くことを決定しても良い。例えば、ユーザは、パッチを適用するために仮想マシンの仮想ディスクとして仮想ディスクファイルを開き、彼又は彼女は該仮想ディスクの内容に別の仮想ディスクファイルが依存していることを知らないと仮定する。別の特定の例では、ユーザは、ファイルの内容を閲覧するために、テキストファイルとして仮想ディスクファイルを開いても良い。図7を参照すると、特定の例では、仮想ディスクファイルは親の仮想ディスクファイル702であると仮定する。本例では、仮想ディスクパーサ404が親の仮想ディスクファイル702を開くとき、仮想ディスク範囲のペイロードデータ及びメタデータ704固有識別子708として格納された第1の識別子を含むが検出され得る。図10を参照すると、動作1004は、コンピュータシステム400により実行され得る動作を示す。特に、例示的な実施形態のコンピュータシステム400は、仮想ディスク範囲データがどのようにインタープリットされるかに影響する情報を仮想ディスクファイルに書き込む試みを検出するのに応答して、仮想ディスクファイル内の第1の固有識別子を第2の固有識別子で上書きする仮想ディスクファイルを開いた後、仮想ディスクパーサ404は、プロセッサ102により実行され、格納するペイロードに影響を与えるデータに行われた変更を検出し得る。仮想ディスクパーサ404は、ペイロードに影響を与える第1の変更を行うよう指示されるときを検出できるロジックを有し得る。また、変更が行われる前に、仮想ディスクパーサ404は、固有ID708として格納された第1の固有識別子を第2の固有識別子に変更する1又は複数のIOジョブを記憶装置106に発行し得る。例えば、仮想ディスクは仮想ディスクファイルからインスタンス化され、ユーザは仮想ディスクをデフラグしようと試みると仮定する。仮想ディスクパーサ404は、第1の仮想ディスク範囲に格納されたデータを第2の仮想ディスク範囲に移動する1又は複数のIOジョブを受信し得る。このIOジョブの受信に応答して、仮想ディスクパーサ404は、割り当てテーブル内の関係を変更することを決定し得る。この変更は、第1の仮想ディスク範囲を記述するために用いられる仮想ディスクファイルのセクションを第2の仮想ディスク範囲を記述するよう変更する。仮想ディスクパーサ404は、例えばメモリ内のビットを調べ、仮想ディスク範囲が変更されていないことを示す、ビットが設定されていないという決定により開かれるので、自身が格納する仮想ディスク範囲データが変更されたか否かを決定し得る。この決定に応答して、仮想ディスクパーサ404は、ランダム値又はランダム英数字値を用いて第2の値を生成し、固有ID708として格納された第1の固有識別子を第2の固有識別子に変更する1又は複数のIOジョブを記憶装置106に発行し得る。図10に戻ると、動作1006は、コンピュータシステム400が、第2の固有識別子が仮想ディスクファイルの永続的コピーに書き込まれたと決定する回路を任意的に含み得ることを示す。文脈上、図4に戻ると、コンピュータシステム400は、第2の固有識別子がディスクに永続的になったことを決定できる回路、例えばプロセッサ102で動作する仮想ディスクパーサ404を有し得る。例えば、前段落の例を続けると、仮想ディスクパーサ404は、1又は複数のIOジョブを記憶装置106に送信した後に、記憶装置106にフラッシュを発行し得る。記憶装置106は、永続的記憶ユニット460にキャッシュ454をフラッシュし得る。また、仮想ディスクファイル702のディスク上コピーに固有識別子として格納された識別子は、第2の固有識別子に更新され得る。この動作の結果として、仮想ディスクパーサ404は、仮想ディスクファイル702から構築された仮想ディスク及び別の仮想ディスクファイルが損傷している可能性があることを決定し得る。図10に戻ると、動作1008は、コンピュータシステム400が、第2の固有識別子が仮想ディスクファイルの永続的コピーに書き込まれたという決定に応答して、仮想ディスクファイルに対して情報を変更する回路を追加で有し得ることを示す。図4に戻ると、仮想ディスクパーサ404は、仮想ディスクファイル702のディスク上コピーに固有識別子708として格納された識別子が第2の固有識別子に更新されたと決定し、仮想ディスクファイル702に格納された情報を変更し得る。例えば、仮想ディスクパーサ404は、記憶装置106から肯定応答を受信することにより、フラッシュ動作が完了したと決定し得る。代替で、仮想ディスクパーサ404は、障害メッセージが受信されなかったので、フラッシュ動作が完了したと決定し得る。フラッシュが終了した後、仮想ディスクパーサ404は、仮想ディスクファイル702に変更を行い、変更を示す1又は複数のIOジョブを記憶装置106へ送信させ得る。図11を参照すると、図10に示した動作と共に実行され得る代替動作を示す。図11は、動作1110を示す。動作1110は、一実施形態では、第1の固有識別子を上書きするよう構成された回路が、追加で、仮想ディスク範囲のビットパターンへの書き込みの試みを検出するのに応答して、第1の固有識別子を上書きするよう構成され得ることを示す。例えば、図7に戻り、ユーザは親仮想ディスクファイル702から仮想ディスク402をインスタンス化し、仮想ディスク範囲のビットパターンに変更を生じるデータを変更すると仮定する。例えば、ユーザは、ファイルの内容を消去すると仮定する。仮想ディスクパーサ404は、仮想ディスク範囲に全て0を書き込む要求を示すIOジョブを受信し、これが、仮想ディスクファイル702が開かれて以来、仮想ディスクファイル702に対する最初の変更であると決定し得る。この決定に応答して、仮想ディスクパーサ404は、1又は複数のIOジョブを記憶装置106に発行し、固有識別子708として格納された第1の識別子を第2の固有識別子で上書きし得る。図11に戻ると、動作1112は、例示的な実施形態では、コンピュータシステム400は、仮想ディスクファイルから得た第2の固有識別子が子仮想ディスクファイルに格納された固有識別子に等しくないという決定に応答して、仮想ディスクファイルをインスタンス化する要求を拒否するよう構成される回路を任意的に有し得ることを示す。例えば、図7に戻り、ユーザが仮想ディスクファイル700及び仮想ディスクファイル702の両方から仮想ディスク402をインスタンス化しようと試みた後のあるときを仮定する。本例では、仮想ディスクパーサ404は、子仮想ディスクファイル700を開き、親仮想ディスクファイル702へのパス、並びに親の固有識別子710として格納された識別子、本例では第1の固有識別子を決定し得る。次に、仮想ディスクパーサ404は、親仮想ディスクファイル702の位置を特定し、親仮想ディスクファイル702を開き、固有識別子708として格納された識別子、本例では第2の固有識別子の位置を特定し得る。仮想ディスクパーサ404は、第1の識別子が第2の識別子と等しくないと決定し得る。これは、親仮想ディスクファイル702が変更されたという事実を示す。そして、仮想ディスクパーサ404は、仮想ディスク402をインスタンス化する要求を拒否し得る。特定の例では、仮想ディスクパーサ404は、基本仮想ディスクファイルが有する変更が仮想ディスク402を無効にしたので、仮想ディスク402が損傷していることを示すテキストを含むダイアログボックスを表示させても良い。図11を参照すると、動作1114は、例示的な実施形態では、コンピュータシステム400は、ユーザ入力に応答して、第2の固有識別子を第1の固有識別子に変更するよう構成された回路を有し得ることを示す。例えば、図7に戻り、ユーザは仮想ディスク402をインスタンス化しようと試みると仮定する。先行する段落で説明したように要求を拒否するのではなく、仮想ディスクパーサ404は、仮想ディスク402が損傷しているか否かに拘わらず、選択された場合に仮想ディスクパーサ404に仮想ディスク402をインスタンス化するよう試みるよう指示する選択肢を含むダイアログボックスを生じ得る。仮想ディスク402を開くのに成功した場合に、仮想ディスクパーサ404は、永続的固有識別子710として格納された識別子、つまり第1の固有識別子をコピーし、固有識別子708として格納された識別子、つまり第2の固有識別子を上書きし、修復動作が成功したことを示し得る。図11に戻ると、動作1116は、例示的な実施形態では、コンピュータシステム400は、子仮想ディスクファイルにより完全に記述されるグループ内の仮想ディスク範囲を識別する情報と数値を関連付けるよう構成される回路、仮想ディスクファイル内のデータが変更されたという決定に応答して、子仮想ディスクファイル内の数値のコピーを第2の数値に更新するよう構成される回路、及び情報がグループ内の仮想ディスク範囲の状態を正確に反映するという決定に応答して、情報に関連付けられた数値を第2の数値に更新するよう構成される回路を有し得ることを示す。例えば、仮想ディスク402はインスタンス化され、仮想ディスクパーサ404はランダムアクセスメモリ内に正規化ビットマップをロードすると仮定する。正規化ビットマップは、正規化ビットマップ識別子、例えばランダムな数値、シーケンス番号等と関連付けられ得る。特定の例では、正規化ビットマップは図8の正規化ビットマップ810と同様である。図示のように、正規化ビットマップは、正規化ビットマップ識別子814として格納された識別子と関連付けられ得る。仮想ディスクパーサ404は、例示的な実施形態では、仮想ディスクファイル700内のデータ、例えばメタデータ及び/又はペイロードデータを変更する要求の受信に応答して、仮想ディスクファイル700が変更されたか否かを決定するよう構成され得る。仮想ディスクパーサ404は、これが仮想ディスクファイル700が開かれて以来、最初の変更であるかどうかを知るために、メモリ内の識別子を調べ得る。この構成では、変更が、仮想ディスクファイル700が開かれて以来最初のものであるとき、仮想ディスクパーサ404は、変更を示す1又は複数のIOジョブを記憶装置106に発行させることにより、NB識別子820として格納された識別子を第2のNB識別子に変更し得る。代替の構成では、仮想ディスクパーサ404は、仮想ディスクファイル700が読み出し/変更モードで開かれると直ぐに、変更を示す1又は複数のIOジョブを記憶装置106に発行させることにより、NB識別子720として格納された識別子を第2のNB識別子に変更し得る。この時点で、仮想ディスクファイル700のディスク上コピーは、正規化ビットマップ値720及び正規化ビットマップ値814に対して異なる識別子を有し、次に仮想ディスクファイル700が仮想ディスクパーサ404により開かれたとき仮想ディスクパーサ404がクラッシュした場合、数値は一致しない。これは、正規化ビットマップ810が、正規化ビットマップ810がカバーするセクタビットマップの内容を正確に反映しないことを示す。仮想ディスクパーサ404が正規化ビットマップを維持するよう、例えば仮想ディスク範囲0~4のセクタビットマップが完全に記述された状態に遷移するときに正規化ビットマップを更新するようプログラミングされる例では、仮想ディスクパーサ404は、正規化ビットマップ識別子814を、永続的正規化ビットマップ識別子820に等しくなるよう変更し、変更を永続的にするために記憶装置106にIOジョブを発行するよう構成され得る。以上に詳述したように、正規化ビットマップ810のメモリ内バージョンに対して行われる変更が永続的記憶ユニット460にコミットし成功することを保証するために、トランザクションログ又は特定の他のロギングメカニズムが用いられる例では、正規化ビットマップ識別子814として格納された識別子に対する変更は、仮想ディスクパーサ404が子仮想ディスクファイル700を閉じるとき、又は変更が永続的正規化ビットマップ数値820に対して行われると直ぐに行われ得る。図11に戻ると、動作1118は、例示的な実施形態では、コンピュータシステム400が、限定ではないが、仮想ディスクファイルのセクションに書き込まれた仮想ディスク範囲のグループのセクタビットマップにアクセスするよう構成される回路を有し得ることを示す。仮想ディスクファイルのセクタは、セクションが仮想ディスクファイルを格納するよう構成された記憶装置のセクタと揃えられるよう選択された仮想ディスクファイルオフセットを有する。例示的な実施形態では、IOジョブは、仮想ディスクパーサ404により受信され得る。これは、仮想ディスクパーサ404に、合成セクタビットマップ900を格納する仮想ディスクファイル702のセクションにアクセスさせる。本例では、合成セクタビットマップ900は、仮想ディスクファイル702に書き込まれるので、記憶装置106の基礎的セクタサイズに揃えられる。このように揃えられることは、合成セクタビットマップ900及び仮想ディスク範囲ペイロードが記憶装置106に揃えられ、したがってディスクに基づく記憶装置から読み出すときにトラック境界を跨る機会が減少するので、仮想ディスク402の全体性能を向上させる。図12を参照すると、動作1200、1202、1204、1206、1208を含む動作手順を示す。動作1200を参照すると、動作の開始を示す。動作1202は、コンピュータシステム400の回路により実行され得る動作、つまり仮想ディスクをインスタンス化する動作を示す。ここで、該仮想ディスクは、第1の仮想ディスクファイルにより記述される仮想ディスク範囲のグループを有し、第1の仮想ディスクファイルは第1の識別子を有する。例えば、図4を参照し、ユーザ又は管理プログラムは仮想マシン410を起動すると仮定する。このような信号の受信に応答して、仮想化システム420は、仮想マシン410をインスタンス化する動作処理を開始し得る。処理の一部は、仮想ディスクパーサ404が、ゲストオペレーティングシステム412を形成するビットパターンを一緒に格納する仮想ディスクファイルを開く信号であり得る。仮想ディスクパーサ404は、例えば、子仮想ディスクファイル700及び親仮想ディスクファイル702を開き、それらを用いて図7の仮想ディスク402をインスタンス化すると決定し得る。図8に示すように、仮想ディスクファイル700は、正規化ビットマップ識別子820として格納された識別子を有するメタデータ804を有し得る。図12に戻ると、動作1204は、コンピュータシステム400が、仮想ディスクファイルにより完全に記述されるグループ内の仮想ディスク範囲を識別する情報をランダムアクセスメモリ内にロードする回路を含むよう構成され得ることを示す。ここで、該情報は、第1の識別子のコピーに関連付けられる。次に、仮想ディスクパーサ404は、正規化ビットマップをランダムアクセスメモリ104内にロードし得る。代替で、情報は、テーブル、又は正規化ビットマップ以外のデータ構造に編成され得る。正規化ビットマップを用いる特定の例では、正規化ビットマップは、図8の正規化ビットマップ810と同様であり、仮想ディスク402の仮想ディスク範囲のグループが子仮想ディスクファイル700により完全に記述されるか否かを示すために用いられ得る。実行時間中、正規化ビットマップが仮想ディスク範囲は完全に永続的である、つまり全てのセクタは仮想ディスクファイル700により記述されると示す場合には、仮想ディスクパーサ404は、セクタビットマップを調べることなく、ペイロードを読み出し得る。本例では、ランダムアクセス104内にロードされた正規化ビットマップ810は、NBID814として格納されたNBID820として格納された同じ識別子を有し得る。仮想ディスクパーサ404は、識別子を比較し、正規化ビットマップ810が有効であると決定し、正規化ビットマップが記述する各セクタビットマップを読み出すことにより正規化ビットマップを再生成する代わりに、それを用い得る。動作1206を参照すると、コンピュータシステム400が、第1の仮想ディスクファイルを開いた後に、第1の仮想ディスクファイル内の第1の識別子を第2の識別子に変更するよう構成される回路も含み得ることを示す。例えば、図8を参照すると、正規化ビットマップ810がメモリにロードされた後に、仮想ディスクパーサ404は、正規化ビットマップ識別子820として格納された識別子を第2の識別子に、例えば第2のランダムに生成された英数字値等に変更し得る。例示的な構成では、仮想ディスクパーサ404は、仮想ディスクファイル700が変更されるとき、正規化ビットマップ識別子820として格納された識別子を変更するよう構成され得る。図12に戻ると、動作1208は、コンピュータシステム400が、情報がグループ内の仮想ディスク範囲の状態を正確に反映するという決定に応答して、情報に関連付けられた第1の識別子のコピーを第2の識別子に更新する回路を有し得ることを示す。文脈上、図8を再び参照すると、仮想ディスクパーサ404は、正規化ビットマップ数値814として格納された識別子を変更し、変更を示す1又は複数のIOジョブを記憶装置106に発行させ及び永続的記憶ユニット460により持続されるよう構成され得る。正規化ビットマップ810がそれがカバーするセクタビットマップの状態を正確に反映するという決定がなされた場合、仮想ディスクパーサ404は、NBID814として格納される識別子を変更し、NBID820として格納される識別子と一致させるように構成され得る。図13を参照すると、図12に示した動作と共に実行され得る追加動作を示す。動作1310に注意を向けると、コンピュータシステム400が、第1の仮想ディスクファイル内の固有識別子が親仮想ディスクファイル内にある固有識別子と一致するという決定に応答して、仮想ディスクをインスタンス化する回路を追加で含み得ることを示す。例えば、文脈上、図7を参照すると、正規化ビットマップの識別子を更新する前に、仮想ディスクパーサ404は、親の固有ID710として格納された識別子が固有ID708として格納された識別子と一致すると決定することにより、仮想ディスクファイル700と702との間のリンクは有効であると決定し得る。この決定に応答して、仮想ディスクパーサ404は、仮想ディスク402を達成し得る。また、識別子が一致するという事実は、子仮想ディスクファイル700が生成されて以来、親仮想ディスクファイル702がそのペイロードデータに影響を与えるように変更されなかったという事実を示す。図13に戻ると、動作1312は、例示的な実施形態では、コンピュータシステム400は、限定ではなく、第1の仮想ディスクファイル内の固有識別子が親仮想ディスクファイル内にある固有識別子と一致しないという決定に応答して、仮想ディスクファイルをインスタンス化する要求を拒否する回路を追加で有し得ることを示す。例えば、図7に戻り、ユーザが仮想ディスクファイル700及び仮想ディスクファイル702の両方から仮想ディスク402をインスタンス化しようと試みた後のあるときを仮定する。本例では、仮想ディスクパーサ404は、子仮想ディスクファイル700を開き、親仮想ディスクファイル702へのパス、並びに親の固有識別子710として格納された識別子、本例では第1の固有識別子を決定し得る。次に、仮想ディスクパーサ404は、親仮想ディスクファイル702の位置を特定し、親仮想ディスクファイル702を開き、固有識別子708として格納された識別子、本例では第2の固有識別子の位置を特定し得る。仮想ディスクパーサ404は、第1の識別子が第2の識別子と等しくないと決定し得る。これは、親仮想ディスクファイル702が変更されたという事実を示す。そして、仮想ディスクパーサ404は、仮想ディスク402をインスタンス化する要求を拒否し得る。特定の例では、仮想ディスクパーサ404は、基本仮想ディスクファイルが有する変更が仮想ディスク402を無効にしたので、仮想ディスク402が損傷していることを示すテキストを含むダイアログボックスを表示させても良い。図13に戻ると、動作1314は、コンピュータシステム400が、グループ内の仮想ディスク範囲が変更されたという決定に応答して、第1の仮想ディスクファイル内の第1の識別子を第2の識別子に変更するよう構成される回路を追加で有し得ることを示す。例示的な実施形態では、仮想ディスク402がインスタンス化されるとき、仮想ディスクパーサ404は、仮想ディスクパーサが仮想ディスクファイル700の内容を変更しようとする試みを検出すると、NBID820として格納された第1の識別子を第2の識別子に変更する要求を示すIOジョブを発行し得る。図13の説明を続けると、動作1316は、例示的な実施形態では、コンピュータシステム400が、仮想ディスクファイルと閉じる処理中に、情報と関連付けられた第1の識別子のコピーを第2の識別子に変更する回路を有し得ることを示す。再び図8を参照すると、仮想ディスクパーサ404は、仮想ディスクファイル402を閉じるとき、正規化ビットマップ数値814として格納された数値を変更するよう構成され得る。仮想ディスクファイル700を閉じる前に、仮想ディスクパーサ404は、第1の識別子を第2の識別子に変更する変更を、仮想ディスクファイル700に書き込み得る。これは、また、NBID810として格納されたディスク上の第1の識別子を第2の識別子に変更するために、1又は複数のIOジョブを記憶装置106に発行させる。図13に戻ると、動作1318は、例示的な実施形態では、コンピュータシステム400は、仮想ディスクファイルは変更されたという決定に応答して、情報に関連付けられた第1の識別子のコピーを第2の固有識別子に変更するよう構成された回路を有し得ることを示す。例えば、再び図8を参照すると、仮想ディスクパーサ404は、仮想ディスク402の実行時間中に、正規化ビットマップ識別子814として格納された識別子を、第1の識別子から第2の識別子に変更して、格納された識別子が正規化ビットマップ識別子820と一致するようにするよう構成され得る。本例では、トランザクションログ等は、仮想ディスクパーサ404が正規化ビットマップ810を、仮想ディスク範囲0~4のセクタビットマップの状態を反映する状態に保持するために用いられ得る。図13に戻ると、動作1320は、コンピュータシステム400が、仮想ディスクファイルのセクションに書き込まれた仮想ディスク範囲のグループのセクタビットマップにアクセスするよう構成される回路を有し得ることを示す。仮想ディスクファイルのセクションは、セクションが仮想ディスクファイルを格納するよう構成された記憶装置のセクタと揃えられるよう選択された仮想ディスクファイルオフセットを有する。例示的な実施形態では、IOジョブは、仮想ディスクパーサ404により受信され得る。これは、仮想ディスクパーサ404に、合成セクタビットマップ900を格納する仮想ディスクファイル602のセクションにアクセスさせる。本例では、合成セクタビットマップ900は、仮想ディスクファイル702に書き込まれるので、記憶装置106の基礎的セクタサイズに揃えられる。このように揃えられることは、合成セクタビットマップ900及び仮想ディスク範囲ペイロードが記憶装置106に揃えられ、したがってディスクに基づく記憶装置から読み出すときにトラック境界を跨る機会が減少するので、仮想ディスク402の全体性能を向上させる。図13に戻ると、動作1322は、コンピュータシステム400が、親仮想ディスクファイルに基づく仮想ディスクの仮想ディスク範囲がどのようにインタープリットされるかに影響する親仮想ディスクファイル内の情報を変更しようとする試みを検出するよう構成される回路であって、親仮想ディスクファイルは第1のランダム値を有する、回路、親仮想ディスクファイル内の第1のランダム値を第2のランダム値で上書きする回路、仮想ディスクファイルをフラッシュする回路、フラッシュが完了したことを示す信号の受信に応答して親仮想ディスクファイル内の情報を変更するよう構成される回路、を任意的に有し得ることを示す。例えば、図7を参照すると、仮想ディスクパーサ404は、仮想ディスクファイル702に適用される場合、IOジョブが仮想ディスク402がどのように公開されるかに影響するかを決定すると仮定する。例えば、仮想ディスクパーサ404は、仮想ディスクパーサ404に親仮想ディスクファイル702のペイロードデータを変更させる書き込み動作、仮想ディスク402の終わりを記述する情報を変更する書き込み動作、割り当てテーブルエントリを変更し、該変更が親仮想ディスクファイル702のどのセクションが仮想ディスク範囲を記述するために用いられるかを変更する書き込み動作、等を検出するよう構成され得る。このような書き込み動作の検出に応答して、仮想ディスクパーサ404は、固有識別子708として格納された第1のランダム値を第2のランダム値に変更し、フラッシュを発行しフラッシュは、第2のランダム値を記憶装置106により永続的にさせる、次に書き込み動作を仮想ディスクファイル702に適用するよう構成され得る。図13に戻ると、動作1324は、コンピュータシステム400が、情報が第1の数値のコピーに関連付けられ、及び第1の仮想ディスクファイルが第2の数値を有するという決定に応答して、更新された情報を引き出すよう構成される回路を任意的に有し得ることを示す。例えば、図8を参照し、仮想ディスクパーサ404は、例えば子仮想ディスクファイル700及び親仮想ディスクファイル702から仮想ディスク402をインスタンス化すると仮定する。本例では、仮想ディスクパーサ404は、主記憶及びメタデータ704に正規化ビットマップ810をロードし得る。仮想ディスクパーサ404は、正規化ビットマップ識別子814として格納された識別子を正規化ビットマップ識別子820として格納された識別子と比較し、2つの識別子が一致しない、つまり正規化ビットマップ810は仮想ディスク範囲0~4のセクタビットマップの状態を反映していないと決定し得る。この決定に応答して、仮想ディスクパーサ404は、仮想ディスク範囲0~4のセクタビットマップを読み出すことにより、正規化ビットマップ810の新しい情報を引き出すよう構成され得る。対応するセクタビットマップにより完全に定められる各仮想ディスク範囲について、つまり、対応するビットマップは全て1を有し、仮想ディスクパーサ404は正規化ビットマップ810に1を格納し得る。対応するセクタビットマップにより完全に定められない各仮想ディスク範囲について、仮想ディスクパーサ404は正規化ビットマップ810に0を格納し得る。正規化ビットマップ810が関連する仮想ディスク範囲を反映するために更新された後、仮想ディスクパーサ404は、仮想ディスク402の実行時間中に正規化ビットマップ810を使用できる。図14を参照すると、動作1400、1402、1404、1406、1408及び1410を含む、コンピュータシステム400により実行可能な動作手順を示す。動作1400は動作手順を開始する。動作1402は、一実施形態では、コンピュータシステム400が、親仮想ディスクファイルを開く回路を有するよう構成され得ることを示す。ここで、該親仮想ディスクファイルは子仮想ディスクファイルにリンク付けされ、親仮想ディスクファイルは第1の識別子を有し、子仮想ディスクファイルは第1の識別子のコピーを有する。例えば、図4を参照すると、コンピュータシステム400は実行可能命令のモジュールであり得る仮想ディスクパーサ404を有し得る。例示的な実施形態では、仮想ディスクパーサ404は、図1のプロセッサ102のようなプロセッサにより実行でき、仮想化システムファイルシステム408に仮想ディスクファイルを開く要求を発行し得る。特定の例では、要求は、別の仮想ディスクファイル親である仮想ディスクファイル、例えば図6の仮想ディスクファイル600、604、606又は610を開くためであり得る。ここで、ユーザは、格納された情報の一部を変更するために仮想ディスクファイルを開くことを決定しても良い。例えば、ユーザは、パッチを適用するために仮想マシンの仮想ディスクとして仮想ディスクファイルを開き、彼又は彼女は該仮想ディスクの内容に別の仮想ディスクファイルが依存していることを知らないと仮定する。図14に戻ると、動作1404は、コンピュータシステム400が、仮想ディスク範囲を記述するデータを変更する試みの検出に応答して、仮想ディスクファイル内の第1の識別子を第2の識別子で上書きする回路を追加で有し得ることを示す。仮想ディスクファイルを開いた後、仮想ディスクパーサ404は、プロセッサ102により実行され、格納するペイロードに影響を与えるデータに変更が行われたことを検出し得る。図14に戻ると、動作1406は、コンピュータシステム400が、親仮想ディスクファイルの永続的コピーを格納するよう構成される記憶装置に、第1の識別子を第2の識別子で上書きすることを示す入力/出力ジョブを発行する回路を追加で有する例を示す。仮想ディスクパーサ404は、仮想ディスク範囲のペイロードに影響を与える変更を行うよう指示されるときを検出できるロジックを有し得る。また、変更が行われる前に、仮想ディスクパーサ404は、固有ID708として格納された第1の固有識別子のディスク上コピーを第2の固有識別子に変更する1又は複数のIOジョブを記憶装置106に発行し得る。図14の動作1408を参照すると、一実施形態では、コンピュータシステム400は、記憶装置にフラッシュコマンドを発行する回路を有し得る。例えば、再び図4を参照すると、第1の識別子を第2の識別子で上書きする要求を示すIOジョブの後に、仮想ディスクパーサ404は、記憶装置106にフラッシュコマンドを送信し得る。記憶装置106は、フラッシュコマンドを受信し、キャッシュ454の内容を永続的記憶ユニット460、例えばプラッタ又は1又は複数のフラッシュメモリセルに書き込み得る。そして、第2のランダム値は永続的であり得る。図14の動作1410は、コンピュータシステム400が、記憶装置が内部キャッシュの内容を持続させることを示す信号の受信に応答して、仮想ディスク範囲を記述するデータを変更する回路を追加で有し得ることを示す。フラッシュコマンドが発行され、失敗メッセージが受信されない、又はフラッシュが成功したことを示す肯定応答が受信された後、仮想ディスクパーサ404は、仮想ディスク範囲を記述する親仮想ディスクファイルのセクションを変更し得る。これはまた、1又は複数のIOジョブを記憶装置106へ送信させ、変更を永続的にする。図15を参照すると、図14に示した動作と共に実行され得る追加動作を示す。動作1512を参照すると、コンピュータシステムが仮想ディスクファイルの永続的コピー内の第2の識別子が子仮想ディスクファイルに格納された第1の識別子に一致しないという決定に応答して、仮想ディスクをインスタンス化する要求を拒否する回路を有するよう任意的に構成され得ることを示す。例えば、図7に戻り、ユーザが仮想ディスクファイル702及び仮想ディスクファイル702の両方から仮想ディスク402をインスタンス化しようと試みた後のあるときを仮定する。本例では、仮想ディスクパーサ404は、第1の識別子が第2の識別子と等しくないと決定し得る。これは、親仮想ディスクファイル702が変更されたという事実を示す。そして、仮想ディスクパーサ404は、仮想ディスク402をインスタンス化する要求を拒否し得る。特定の例では、仮想ディスクパーサ404は、基本仮想ディスクファイルが有する変更が仮想ディスク402を無効にしたので、仮想ディスク402が損傷していることを示すテキストを含むダイアログボックスを表示させても良い。図15の説明を続けると、動作1514は、コンピュータシステム400は、ユーザ入力に応答して、固有識別子を前の値に変更する回路を含み得ることを示す。例えば、図7に戻り、ユーザは仮想ディスク402をインスタンス化しようと試みると仮定する。先行する段落で説明したように要求を拒否するのではなく、仮想ディスクパーサ404は、仮想ディスク402が損傷しているか否かに拘わらず、仮想ディスク402をインスタンス化しようと試みるよう仮想ディスクパーサ404に指示するダイアログボックスを表示させ得る。仮想ディスク402を開くのに成功した場合に、仮想ディスクパーサ404は、親の固有識別子710として格納された識別子、つまり第1の固有識別子をコピーし、固有識別子708として格納された識別子、つまり第2の固有識別子を上書きし、修復動作が成功したことを示し得る。図15の説明を続けると、動作1516は、コンピュータシステム400が、仮想ディスクをインスタンス化する回路であって、仮想ディスクは親仮想ディスクファイルにより記述される仮想ディスク範囲を有し、仮想ディスク範囲は子仮想ディスクファイルにより記述され、子仮想ディスクファイルはシーケンス番号を有する、回路、子仮想ディスクファイルにより完全に記述される子仮想ディスクファイル内の仮想ディスク範囲のサブセットを識別する情報を、ランダムアクセスメモリにロードする回路であって、該情報はシーケンス番号のコピーと関連付けられる、回路、子仮想ディスクファイルが変更されたという決定に応答して、子仮想ディスクファイル内のシーケンス番号を増大する回路、情報が子仮想ディスクファイル内の仮想ディスク範囲のサブセットの状態を正確に反映するという決定に応答して、情報に関連付けられたシーケンス番号を増大する回路、を有し得ることを示す。例えば、仮想ディスク402はインスタンス化され、仮想ディスクパーサ404はランダムアクセスメモリ内に正規化ビットマップをロードする代替で、情報は、正規化ビットマップ以外のテーブルに編成され得る。正規化ビットマップは、正規化ビットマップ識別子、例えばランダムな数値、シーケンス番号等と関連付けられ得る。また、識別子は、正規化ビットマップがそれがカバーするセクタビットマップに対して正確であるときを示し得る。特定の例では、正規化ビットマップは図8の正規化ビットマップと同様である。図示のように、正規化ビットマップは、正規化ビットマップ識別子814として格納された識別子と関連付けられ得る。仮想ディスクパーサ404は、例示的な実施形態では、仮想ディスクファイル702内のデータ、例えばメタデータ及び/又はペイロードデータを変更する要求の受信に応答して、仮想ディスクファイル702が変更されたか否かを決定するよう構成され得る。仮想ディスクパーサ404は、これが仮想ディスクファイル702が開かれて以来、最初の変更であるかどうかを知るために、メモリ内の識別子を調べ得る。この構成では、変更が、仮想ディスクファイル702が開かれて以来最初のものであるとき、仮想ディスクパーサ404は、変更を示す1又は複数のIOジョブを記憶装置106に発行させることにより、NB識別子820として格納された識別子を第2のNB識別子に変更し得る。代替の構成では、仮想ディスクパーサ404は、仮想ディスクファイル702が読み出し/変更モードで開かれると直ぐに、変更を示す1又は複数のIOジョブを記憶装置106に発行させることにより、NB識別子820として格納された識別子を第2のNB識別子に変更し得る。この時点で、仮想ディスクファイル702のディスク上バージョンは、正規化値820及び正規化ビットマップ値814に対して異なる識別子を有し、次に仮想ディスクファイル602が仮想ディスクパーサ404により開かれたとき仮想ディスクパーサ404がクラッシュした場合、数値は一致しない。これは、正規化ビットマップ810が、正規化ビットマップ810がカバーするセクタビットマップの内容を正確に反映しないことを示す。仮想ディスクパーサ404が正規化ビットマップを維持するよう、例えば仮想ディスク範囲0~4のセクタビットマップが完全に記述された状態に遷移するときに正規化ビットマップを更新するようプログラミングされる例では、仮想ディスクパーサ404は、正規化ビットマップ識別子814を、永続的正規化ビットマップ識別子820に等しくなるよう変更し、変更を永続的にするために記憶装置106にIOジョブを発行するよう構成され得る。以上に詳述したように、正規化ビットマップ810のメモリ内バージョンに対して行われる変更が永続的記憶ユニット460にコミットし成功することを保証するために、トランザクションログ又は特定の他のロギングメカニズムが用いられる例では、正規化ビットマップ識別子814として格納された識別子に対する変更は、仮想ディスクパーサ404が子仮想ディスクファイル700を閉じるとき、又は変更が永続的正規化ビットマップ数値820に対して行われると直ぐに行われ得る。図15の説明を続けると、動作1518は、コンピュータシステム400が、仮想ディスク範囲のグループのセクタビットマップを仮想ディスクファイルのセクションに書き込む回路であって、仮想ディスクファイルのセクションは、セクションが仮想ディスクファイルを格納するよう構成される記憶装置のセクタに揃えられるよう選択された仮想ディスクファイルオフセットを有する、回路を含み得ることを示す。例示的な実施形態では、IOジョブは、仮想ディスクパーサ404により受信され得る。これは、仮想ディスクパーサ404に、合成セクタビットマップ900を格納する仮想ディスクファイル602のセクションにアクセスさせる。本例では、合成セクタビットマップ900は、仮想ディスクファイル702に書き込まれるので、記憶装置106の基礎的セクタサイズに揃えられる。このように揃えられることは、合成セクタビットマップ900及び仮想ディスク範囲ペイロードが記憶装置106に揃えられ、したがってディスクに基づく記憶装置から読み出すときにトラック境界を跨る機会が減少するので、仮想ディスク402の全体性能を向上させる。以上の詳細な説明では、例及び/又は動作図を介してシステム及び/又は処理の種々の実施形態を説明した。このようなブロック図、及び/又は例が1又は複数の機能及び/又は動作を含む限り、当業者は、このようなブロック図又は例に含まれる各機能及び/又は動作が、広範なハードウェア、ソフトウェア、ファームウェア又は実質的にこれらの如何なる組合せにより個々に及び/又は集合的に実施され得ることを理解する。本願明細書に記載された本発明の主題の特定の態様が示され説明されたが、当業者は、本願明細書の教示に基づき、本願明細書に記載された主題およびその広範な態様から逸脱することなく変更及び修正が為されても良く、したがって添付の請求の範囲が、その範囲内に、そのような全ての変更及び修正を本願明細書に記載された主題の真の精神及び範囲内にあるものとして包含することを理解する。"