JP2012509516A - 仮想ディスクを含むコンピュータのリカバリ - Google Patents

仮想ディスクを含むコンピュータのリカバリ Download PDF

Info

Publication number
JP2012509516A
JP2012509516A JP2011523945A JP2011523945A JP2012509516A JP 2012509516 A JP2012509516 A JP 2012509516A JP 2011523945 A JP2011523945 A JP 2011523945A JP 2011523945 A JP2011523945 A JP 2011523945A JP 2012509516 A JP2012509516 A JP 2012509516A
Authority
JP
Japan
Prior art keywords
virtual disk
disk
volume
virtual
critical
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
JP2011523945A
Other languages
English (en)
Other versions
JP5572163B2 (ja
JP2012509516A5 (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 JP2012509516A publication Critical patent/JP2012509516A/ja
Publication of JP2012509516A5 publication Critical patent/JP2012509516A5/ja
Application granted granted Critical
Publication of JP5572163B2 publication Critical patent/JP5572163B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Abstract

仮想ディスクのバックアップおよび/または復元を説明する。一般的に、メタデータは、仮想ディスクを復元するためにバックアップされる。仮想ディスクを復元するために、物理ディスクのパーティション上に生成された仮想ディスクを有する物理ディスクが生成される。ブロックレベルの復元を含め、ネストされた仮想ディスクのバックアップおよび復元を説明する。さらに、クリティカルな仮想ディスクおよびそれらのコンテナのバックアップ、および基本ディスクおよび動的ボリュームに関する仮想ディスクのバックアップを説明する。

Description

本発明は、仮想ディスクを含むコンピュータをリカバリすることに関する。
現代のマイクロソフト(登録商標)Windows(登録商標)ベースのオペレーティングシステムでサポートされる仮想マシン技術により、単一の物理的なコンピューティングマシンが、例えば、複数のサーバ環境を提供することなど、複数のオペレーティングシステムを同時に実行することができる。このような技術において、仮想ディスクは、物理的なディスクドライブまたは別の仮想ディスクドライブに格納され得るファイルであり、さらに、この仮想ディスクは、そのファイルをディスクデバイスとして使用する(表現する(surface))ことができるフォーマットである。例えば、仮想ディスクは、マイクロソフト(登録商標)仮想ハードディスク(VHD:Virtual Hard Disc)フォーマットとすることができ、これにより、VHDフォーマットを理解するドライバは全て、VHDファイルをディスクデバイスとして実装(mount)することができる。すなわち、仮想ディスクは、VHDドライバにVHDファイルを実装させることによって生成されるディスクデバイスである。このような仮想ディスクを、物理マシン上で実行するWindows(登録商標)オペレーティングシステムにおいて生成して表現することもできる。このような仮想ディスクを使用して、重要な(critical)オペレーティングシステムファイル(例えば、ブートボリューム)を格納することができる。
このようなオペレーティングシステムは、自動システムリカバリ(ASR:automated system recovery)と名付けられた技術などにより、ベアメタルリカバリサポート(bare metal recovery support)を提供することもできる。この技術により、バックアップされたコンピュータシステムデータ(状態を含む)を、例えば、新しい交換マシンや、新しいディスクを用いて修復されたマシンなどの異なる物理マシン上に再生成することができる。一般的に、ASRは、コンピュータのディスク構成をバックアップして復元(restore)する能力をバックアップ/復元アプリケーションに提供する。しかしながら、既存のASR技術は、仮想ディスクに対応していない。
本概要の記載は、以下の発明を実施するための形態において詳述される代表的な概念の選択を、簡潔な形で紹介するために提供されるものである。本概要の記載は、特許請求される主題の主要な特徴または本質的な特徴を特定することは意図されておらず、特許請求される主題の範囲を限定するのに使用されることも意図されていない。
簡潔に言えば、本明細書で説明される主題の様々な態様は、コンピューングデバイスの仮想ディスクを、バックアップされたメタデータから復元する技術を対象としている。一般的に、仮想ディスクを復元するためには、物理ディスクを生成すること、およびその物理ディスクのパーティション上で仮想ディスクを生成することを含む。
一態様において、仮想ディスクはネスト(nest)され得る。そのようにネストされた仮想ディスクを復元するために、上位レベルの仮想レベルのディスクは、下位レベルにネストされた仮想ディスクよりも前に復元される。これによって、規則正しいファイルの復元およびブロックレベルの復元を提供する。
一態様において、仮想ディスクをバックアップすることも管理される。バックアップは、ディスクがバックアップに関して重要であるかどうかを評価することを必要とし、重要であるとき、バックアップする必要があるそのディスクのコンテナも重要であるとマークを付ける。バックアップはまた、基本ディスクおよび動的ボリュームに対して仮想ディスクのバックアップを区別する。
他の利点は、図面とともに以下の詳細な説明の記載から明らかになる。
本発明は、限定ではなく例示として添付の図面に図示されており、添付の図面において、同様の参照番号は同様の要素を示している。
仮想ディスクのバックアップおよび復元を含むバックアップおよび復元システムにおける例示的なコンポーネントを表すブロック図である。 仮想ハードディスク上の単一のボリュームを表す図である。 仮想ハードディスク上の複数のボリュームを表す図である。 ネストされた仮想ハードディスクを表す図である。 仮想ディスクを含むコンピュータを復元するために取ることができる例示的なステップを表すフロー図である。 本発明の様々な態様を組み込むことができる例示的なコンピューティング環境を示す図である。
本明細書で説明される技術の様々な態様は、一般的に、ディスクの1または複数が1つまたは複数の物理ディスクに格納された仮想ディスクである場合を含め、コンピュータのディスク構成をバックアップおよび復元する能力を提供するオペレーティングシステム(またはコンポーネントなど)を対象とする。このためには、本明細書で説明するように、バックアップ時に、物理ディスクまたは他の仮想ディスクのパーティションにおける仮想ディスクおよび仮想ディスクの依存性に関するメタデータ情報を、例えば「ディスク構成ファイル(disk-config-file)」などのファイルに格納することによって、上述の事項が達成される。
リカバリ時には、ディスク構成ファイルにアクセスして、ディスクレイアウトを再作成する。より具体的には、物理ディスクが最初に生成される。その後に、仮想ディスクが生成される。このプロセスをさらにネストして、仮想ディスクが他の仮想ディスクを含む状況にも対処することができる。仮想ディスクを用いたパーティションは、バックアップ時に使用できるように同じ名前空間に実装される。これにより、バックアップベンダなどは、仮想ディスクを生成した後、該仮想ディスクにデータを復元して、同じ名前空間に実装することができる。
言い換えれば、一例のプロセスは、物理ディスクを生成し、その物理ディスクに対してパーティション化してボリュームを生成する。次に、最初のネストレベル(レベル1)において任意の仮想ディスクが生成され、その後、このプロセスは、レベル1の仮想ディスクに対してボリュームをパーティション化して生成する。1つまたは複数のレベル2の仮想ディスクがある場合、それらを生成し後に、レベル2の仮想ディスクに対してパーティション化してボリュームを生成し、そして、これは最も深いネストレベルまで続く。保存されたメタデータは、(レベルごとに)レイヤ化された仮想ディスクを再生成するために、各仮想ディスクのネストレベルを見つけるのに十分な情報を含む。このように、レベルごとに仮想ディスクを再生成することによって、以下に説明するように、各レベル内におけるブロックレベルの動作が可能になる。
図1を参照すると、1つまたは複数の仮想ディスクを含むことができるディスク104を用いてコンピュータシステム102のベアメタルリカバリに使用されるコンポーネントを含む、例示的なブロック図が示されている。バックアップ機構106は、仮想ディスクバックアップ機構108を含み、これは、以下で説明するように、特定のファイルおよびメタデータをバックアップ/復元媒体110にバックアップする。
以下でも説明するが、仮想ディスク復元機構114を含む復元機構112は、点線で示されるように後に、対応する再生成ディスク118を用いてファイルおよびメタデータを再生成コンピュータシステム116に復元する。復元機構112は、メタデータを使用して物理ディスクを生成した後、任意のネストされた仮想ディスクを含む仮想ディスクを生成する。
一例示的なWindows(登録商標)ベースの実装では、バックアップ機構106および復元機構112は、自動システムリカバリASRコンポーネントに提供される。しかしながら、他の環境において、および/または他のファイルのフォーマットやメタデータを用いることを含め、本明細書で説明される技術を任意のプログラムが実装することもできる。そのため、本発明は、いずれかの特定の実施形態、態様、概念、構造、機能性または本明細書で説明される実施例に限定されることはない。むしろ、実施形態、態様、概念、構造、機能性または本明細書で説明される実施例のいずれも限定ではなく、本発明は、一般的にコンピューティングおよびデータストレージ/アクセスにおいて利益および利点をもたらす様々な方法に使用することができる。
システムは、複数の仮想ディスクを有することができる。一例のシナリオでは、ブートボリュームは、(物理的な)システムパーティション上に置かれた仮想ディスクファイルによって支援(back)される仮想ディスク上にある。この特定のシナリオに加え、一般的に、物理ボリューム上または仮想ディスクのボリューム上の仮想ディスクファイルによって支援される仮想ディスクがある。本明細書で説明するバックアップおよび復元(例えば、ASR)は、このようなシナリオにおいてディスクレイアウトのバックアップおよび復元に対処する。
図2から図4は、様々な例示的なシナリオを図示している。図2は、仮想ディスク上の単一のボリュームを表しており、E:は、仮想ディスクのコンテナ(例えば、ブートボリューム、すなわち、この例では、ボリュームC:を支援するVHDファイル、boot.vhd)でもある物理ボリュームである。C:ボリュームは、該ボリューム上にインストールされた1つまたは複数のアプリケーションを有することもできる。
図3は、単一の仮想ディスク上の複数のボリュームを表す。図3において、E:は、C:(ブートボリューム)および別のボリュームであるボリュームDを含む仮想ディスクファイル用のコンテナ(例えば、VHDブート)でもあるボリュームである。
図4は、ネストされた仮想ディスクを表す。図4において、E:は、ブートボリュームC:を支援する仮想ブートディスク(例えば、VHDブート)のコンテナでもある物理ボリュームである。仮想ブートディスクは、仮想アプリケーションディスク(例えば、App.vhd)も含み、ボリュームD:を支援して、1つまたは複数のアプリケーションを収容する。
以下に、自動システムリカバリ(ASR:automated system recovery)がバックアップおよびリカバリ機構を提供する、Windows(登録商標)ベースの環境におけるバックアップおよび復元の例を説明する。この例において、仮想ディスクに対応するファイルは、VHDフォーマットのために取得および保持された適切なメタデータを用いて、VHDフォーマットで保持される。しかしながら、容易に理解され得るように、任意の環境において、例示される技術による利益を得ることができ、および/または適切なメタデータを用いて任意の適切なファイルフォーマットをVHDフォーマットに使用できる。
実施例では、用語「パック(pack)」は、1つまたは複数の動的ディスク(動的ディスクは、周知の概念であり、一般的にディスクグループと関連付けられ、同じ構成データの複製を格納する)を備えたディスクグループ(ディスクのグループ化)を指す。
ASR実装において、AsrSystemは、ディスクのパーティションレイアウトおよび基本ボリューム用のVolume GUIDをバックアップして再生成するためのモジュールである。AsrLdmは、パック、該パック内の動的ディスク、および該パック内の動的ボリュームをバックアップして再生成するためのモジュールである。AsrFmtは、ボリュームをバックアップし、および再生成されたボリュームの復元とフォーマットを行うためのモジュールである。
仮想ディスクファイルは、複数の(例えば、VHD)ファイルを備えることができる。このことは、いくつかの変更を有する、新しい仮想ディスクが、既存の仮想ディスクをベースにする必要があるときなどに有用である。これを差分(differencing)と呼ぶが、仮想ディスクの差分化のために、仮想ディスク全体のチェーン(chain)を再生成する必要があることに留意されたい。
ASR環境におけるバックアップについて見ると、ASRは、仮想ディスクをバックアップする。一般的に、そのバックアップは、復元中に仮想ディスクを再生成するために十分な情報を含む。一例示的な実装では、ASRは、以下のwin32APIおよびIOCTLを使用して、バックアップ時に仮想ディスク情報を保存して、復元時に仮想ディスクを再生成する。
<バックアップ>
1.GetStorageDependencyinformation
a.このAPIは、バックアップ中に使用され、実装された仮想ディスクに関するメタデータ情報を見つけ出す。このAPIは、例えば、(仮想ディスクを差分する場合には2以上の)仮想ディスクファイルのファイルパス、および仮想ディスクがスパース(sparse)か固定か否か、仮想ディスクのブロックサイズなどの仮想ディスクの他の属性などの情報を返す。
b.仮想ディスクに関して、このAPIは、仮想ディスクフラグ、および差分ディスクチェーンのシーケンス情報などの付加的な情報を返すことができる。
<復元>
2.CreateVirtualDisk
a.このAPIを使用して、バックアップ時にGetStorageDependencyinformationによって返された情報に基づいて、仮想ディスクファイルを再生成する。
b.このAPIは、各仮想ディスクファイルを再生成するために使用される。
3.SurfaceVirtualDisk
a.仮想ディスクファイルを生成すると、このAPIを使用して、その仮想ディスクファイルをディスクとして表現する。
4.仮想ディスク内のボリュームを再生成する。
VSS(Volume Shadow (Copy) Service:ボリュームシャドウ(コピー)サービス)コンポーネントのバックアップに関して、物理ディスクおよびボリュームと同様に、ASRライタは、ASRにおいて仮想ディスクおよびボリュームをコンポーネントとして報告する。仮想ディスクのコンポーネントは、ASRメタデータを探している人に役立つ情報を伝達するために、「これは、仮想ディスクである(This is a virtual disk)」などのキャプションを含む。一例の実装において、このディスクコンポーネントは、以下の通りである。
<COMPONENT logicalPath="Disks"componentName="harddisk0"
componentType="filegroup"caption="This is a virtual disk"/>
ASRメタデータは、仮想ディスクを再生成するために、ディスクレイアウトに関する情報に加え、仮想ディスクのファイルパス等の付加的な情報も含むことができ、仮想ディスクのタイプも必要とされる。各仮想ディスクのレイアウトは、物理ディスクのレイアウトを保存する方法と同様に、<MbrDisk>または<GptDisk>ノードに格納される。参考までに、MBRノードは、ここで再生されるが、そのフォーマットに変更はない。
<MbrDisk>または<GptDisk>ノードは、物理ディスクのレイアウトが保存される方法と同様に保存される。参考までに、MBRノードは、ここで再生されるが、そのフォーマットに変更はない。
<MbrDisk NumPartitions="4" PartitionTableSize="4" BusKey="2"
DeviceNumber="1" IsCritical="1" MbrSignature="0x88eb9d23"…>
<MbrPartition PartitionIndex="0" PartitionFlag="0" BootFlag="0"
PartitionType="0x7" FileSystemType="0x0"
NumSymbolicNames="2" PartitionOffset="1048576"
PartitionLength="5368709120" IsCritical="1">
</MbrPartition>

</MbrDisk>
仮想ディスク用の追加の情報が新しいノードに格納される。
<VirtualDisk> 次の通りである。
<AsrVhd NumDisks="1">
<VirtualDisk DeviceNumber="1">
<VhdInfo File="\\?\Volume{e77e0446-d428-11dc-815b-
000000000000}\pl\p2foo.vhd" BlockSize=0x200000
Flag=0x00000008
Sequence=0>
<VhdInfo File="\\?\Volume{e77e0446-d428-11dc-815b-
000000000000}\p1\p2\foo1.vhd" BlockSize=0x200000
Flag=0x00000008

Sequence=1>
...
</VirtualDisk>
...
</AsrVhd>
新しいノードは、一実装において、概してテストおよび開発を簡易に行うのに生成されたことに留意されたい。<VirtualDisk>ノード内のDeviceNumber属性を使用して、そのレイアウト情報を<MbrDisk>ノード内でルックアップする。さらに、シーケンス0を用いたVhdInfoノードは、仮想ディスクをVHDフォーマットで表すVHDファイルであることに留意されたい。0より大きいシーケンスを用いるVhdInfoノードは、このVHDがリンクされるVHDを差分することを表す。Flag値は、VHDのタイプ、つまり動的または固定であるかを示す。BlockSizeは、VHDファイル内部で使用されるデータブロックのサイズである。BlockSizeは、VHDフォーマットの一部である。BlockSizeは、バイトを単位にする。
仮想ディスク情報は、以下の通りである。

ディスクのハンドルを開く。InfoLevelを2に設定し、GetParentsをTRUEに設定して、GetStorageDependencyinformationを呼び出す。

返されたステータスが、STATUS_INVALID_DEVICE_REQUESTである場合は、仮想ディスクではない。そうでない場合は、成功であり仮想ディスクである。
IOCTLが返信される。
STORAGE_QUERY_DEPENDENT_DISK_RESPONSEは以下のように定義される。
BOOL WINAPI
GetStorageDependencyInformation(
_in HANDLE hFile,
_in BOOL GetParents
_in ULONG InfoLevel,
_inout_opt LPVOID StorageDependency,
_inout ULONG *StorageDependencyLength
);
STORAGE_QUERY_DEPENDENT_DISK_LEV2_ENTRY構造のアレイを含み、アレイごとにディスクを差分する。
typedef struct_STORAGE_DEPENDENCY_INFO_LEVEL2{
ULONG DependencyTypeFlags;
ULONG ProviderSpecificFlags;
VIRTUALDEVICETYPE VirtualDeviceType;
GUID CallerContext;
GUID DiskContext;
LPWSTR DependencyDeviceName;
LPWSTR HostVolumeName;
LPWSTR DependentVolumeName;
LPWSTR DependentVolumeRelativePath;
}STORAGE_DEPENDENCY_INFO_LEVEL2,
*PSTORAGE_DEPENDENCY_INFO_LEVEL2;
このAPIは、差分ディスクの仮想ディスクファイルの中のシーケンス情報を返す。ASRは、差分チェーン内の他の仮想ディスクファイルから最も枝の多い(leaf-most)仮想ディスクファイルを、例えば、依存グラフで表すなどして区別する。
ある特定のボリューム/ディスクは、「クリティカル/重要(critical)」と呼ばれ、そのようにマークされる。物理ディスクの場合のように、実装される仮想ディスク内部のボリュームがクリティカルであるとき、その仮想ディスクおよびそれに属するパックもクリティカルとマークされる。さらに、仮想ディスクが、物理ディスクまたは(仮想ディスクファイルがある)仮想ディスク上のボリュームに依存するとき、親仮想ディスクもクリティカルとマークする必要がある。
ここで、2つのケース、すなわち親ボリュームが基本ディスク上にあるとき、および親ボリュームが動的ボリュームであるとき(例えば、ソフトウェアRAIDを用いるときなど)を考慮する必要がある。親ボリュームが基本ディスク上にあるとき、実装される仮想ディスクはクリティカルとしてマークされ、実装されるパーティションも同様にマークされる。これは、親ボリュームが基本ディスク上にあるため、その親パーティションおよび親ディスクもクリティカルとマークされるからである。
親ボリュームが動的ボリュームであるとき(例えば、ソフトウェアRAIDを用いるなど)、実装される仮想ディスクは、クリティカルとマークされ、実装されるパーティションも同様にマークされる。一般的に、動的な親ボリュームは、それと関連付けられたパーティションを有しない。一般的に、親ボリュームを含むディスクと同じパック内にある動的ディスクはクリティカルとマークされる。例えば、クリティカルなボリューム情報は、そのパックおよびボリュームが「IsCritial」と適切にマークされた、<AsrLdm>ノード内にマークされる。
さらに、仮想ディスクは、バックアップ時に除外されるディスクに依存することがあり、そのような場合に、その仮想ディスクがクリティカルであるとき、バックアップは失敗することに留意されたい。そうでない場合、その仮想ディスクは、除外されるものとしてマークされ、その仮想ディスクが復元時に含まれていても復元時に再生成されない。
復元に関連する態様について、復元中に、ASRは、最初に仮想ディスクを再生成して実装した後に、ASR内においてボリュームを再生成する。しかしながら、それを行う前に、仮想ディスクが依存するディスク、パーティション、およびボリュームを再生成する必要がある。このような依存性は、物理的または仮想的である場合がある。
したがって、ディスクの再生成は、レイヤごとに行われる必要がある。すなわち、物理ディスクから開始し、次いで、物理ディスクのみに依存する仮想ディスクを再生成し、その後、それまでに再生成されたディスクのみに依存する仮想ディスクを再生成する。従って、仮想ディスクを再生成するプロセス全体には3つのフェーズが含まれる。
a)仮想ディスクのディスクレイアウトおよび依存情報をASRメタデータから抽出すること。
b)依存情報を使用して、依存性が再生成された仮想ディスクを特定すること。
c)ステップ(b)で特定された仮想ディスクを再生成すること。
d)ステップ(c)で生成された仮想ディスク内部のパーティションおよびボリュームを再生成すること。
ステップ(b)、(c)および(d)は、すべてのVHDが再生成されるまで、または、それ以上VHDを再生成することができなくなるまで繰り返される。ボリュームを画像として復元(「ブロックレベル復元」)するアプリケーションをバックアップする場合、そのアプリケーションは、ステップ(d)の後ステップ(b)、(c)の前に、画像を復元する必要があり、次のネストレベルのために繰り返すことができる。
復元を要求する(リクエスタ)のに使用されるプログラム(または複数のプログラム)を選択すると、以下のようにSetRestoreOptionsを使用することにより仮想ディスクの再生成をスキップすることができる。
IVssBackupComponents::SetRestoreOptions (asrWriterId,
VSS_CT_FILEGROUP, NULL, L"ASR", L" …RecreateVHD=0…");
「RecreateVHD=0」というサブストリングが復元オプションストリング内に表示された場合、ASRが、仮想ディスクファイルおよび仮想ディスクディスクを再生成することはない。
復元のための仮想ディスク情報の抽出に関して、<MbrDisk>および<GptDisk>ノードは、他のディスクと同様に非シリアル化(de-serialize)され、これにより、仮想ディスクに関するレイアウト情報が認識される。この後、<AsrVhd>ノードが非シリアル化される。仮想ディスクファイルおよび任意の親仮想ディスクファイルに関する情報は、追加の情報として、以下の様に、既存のstruct ASR_DISK_INFO内に保持される。
struct ASR_VHD_INFO
{
BOOL fVirtual;

//
//\\?\Volume{grid}\p1\p2\foo.vhd
//
//VHDファイル名は<AsrVhd>内の「Sequence」よって順序付けされる
//
WCHAR **rgwszVHDFilemanes;
DWORD dwNumFiles;

DWORD dwFlag; //vhd flag―スパースまたは固定
};

struct ASR_VHD_INFO
{

//
//ディスクが仮想でない場合はNull
//
ASR_VHD_INFO* m_pVirtualDiskInfo;
};
仮想ディスクは、その依存性がすべて生成された場合にのみ生成される。仮想ディスクは、仮想ディスクの仮想ディスクファイルがある各ボリュームに依存する。そのような各ボリュームが再生成された場合、仮想ディスクが再生成される。
仮想ディスク再生成段階は、既存のAsrSys、AsrLdmおよびAsrFmtの事前復元(pre-restore)が完了した後に行われる。これは、仮想ディスクファイルがある物理ボリューム(基本ボリュームまたは動的ボリューム)がすでに再生成されることを確実にする。AsrSysは、ディスクの割り当て、再生成、およびクリティカルなボリュームがすべて再生成されたことを確認することに関して仮想ディスクを考慮しないように変更されている。
仮想ディスクの再生成中に、以下の例示的なステップを実行することができる。
a.仮想ディスクを表すASR_DISK_INFO pVhdDiskごとに行う。
b.{
c.仮想ディスクファイルが再生成されるASR_VHD_IFO::rgwszVHDFilenamesを使用して、最後の仮想ディスクファイルから開始し、その結果、差分チェーンが適切に再生成される。
・ 仮想ディスクファイルが除外されるディスク上に存在する場合、仮想ディスクファイルは再生成されない。
・ 仮想ディスクファイルが存在する場合、その対応するファイル(例えば、VHD)を最初に取り外して(dismount)、仮想ディスクファイルを削除する。
d.差分チェーンの枝であるASR_VHD_IFO::rgwszVHDFilenames[0]を使用して、仮想ディスクを実装する。
e.仮想ディスクを実装したあと、そのデバイスパス(device path)を返す。
f.そのデバイスパスを使用して、新しいASR_DISK_INFOオブジェクトであるpAssignedVHDを生成し、初期化して、そして復元中のシステム(AsrSystem::m_pDiskListDuringRestore)において利用可能なディスクのリストに追加する。
g.バックアップ中に特定の仮想ディスク用の仮想ディスクが生成されると、その機構は、直接ディスクの割り当てを実行する。すなわち、pVhdDisk->AssignedToを、pAssignedVHDに設定し、pAssignedVHD->AssignedToを、pVhdDiskに設定する。
h.実装された仮想ディスクは、物理ディスクが再生成されるように、再生成される。
i.仮想ディスクがクリティカルである場合、この段階における失敗により全体の復元が失敗する。
j.}
以下のAPIを使用して、仮想ディスクファイルを再生成する。

Typedef struct _CREATE_VIRTUAL_DISK_PARAMETERS_LEVEL1 {
VIRTUALDEVICETYPE VirtualDeviceType; // VHD or ISO - Is VHD for ASR.
GUID UniqueId;
LARGE_INTEGER MaximimSize; //ディスクサイズ
ULONG BlockSize;//VHDフォーマットで使用されるデータブロックのサイズ
ULONG SectorSize;//512バイト
ULONG ProviderSpecificFlags;
ULONG Flags;//スパースまたは固定
LPWSTR ParentPath;//ディスクを差分する場合のベースVHDファイルパス
LPWSTR SourcePath;
} CREATE_VIRTUAL_DISK_LEVEL1_PARAMETERS,
*PCREATE_VIRTUAL_DISK_L
EVEL1_PARAMETERS;

BOOL WINAPI
CreateVirtualDisk(
_in ULONG ParameterLevel,
_in LPWSTR Path, //VHDファイルのパス
_in_opt LPVOID Parameters,
_in_opt PSECURITY_DESCRIPTOR SecurityDescriptor, //セキュリティオン
//実装されたデバイス
_in_opt VIRTUAL_DISK_PROGRESSROUTINE ProgressRoutine,
_in_opt LPVOID ProgressRoutineContext
);
仮想ディスクを実装する(別名:表現する(surfacing))ためのAPI
typedef struct _SURFACE_VIRUTAL_DISK_LEVEL1_PARAMETERS {
GUID CallerContext;
GUID DiskContext;
PSECURITY_DESCRIPTOR SecurityDescriptor;
ULONG Timeout; //すべての表現を特定するオプションのタイムアウト
ULONG Flags; //VHDまたはISO
ULONG ProviderSpecificFlags;
USHORT OutputDeviceNameLength;//実装されたデバイスパス
LPWSTR OutputDeviceNameBuffer;
} SURFACE_VIRUTAL_DISK__PARAMETERS_LEVEL1, *PSURFACE_VIRUTAL_DISK_PARAMETERS LEVEL1;

BOOL WINAPI
SurfaceVirtualDisk(
_in LPWSTR Path,
_in VIRTUALDEVICETYPE VirtualDeviceType,
_in ULONG ParameterLevel,
_in_opt PVOID Parameters,
_in_opt VIRTUAL_DISK_PROGRESSROUTINE ProgressRoutine,
_in_opt LPVOID ProgressRoutineContext
);
すでに実装された仮想ディスクを取り外すことに関して、仮想ディスクを再生成する前に、その仮想ディスクファイルがすでに存在し、実装されている場合、そのデバイスおよびファイルは除去される。以下は、仮想ディスクを取り外すための1つのAPIである。

BOOL WINAPI
RemoveVirtualDisk(
_in VIRTUALDEVICETYPE VirtualDeviceType,
_in GUID CallerContext,
_in GUID DiskContext,
_in ULONG Flags
);
デバイスを取り外すために、そのCallerContextおよびDiskContextが必要である。そのために、ASRは、ネイティブな仮想ディスクAPIである、GetStorageDependencyinformationを使用して、所与のボリューム上に仮想ディスクファイルを有する実装された仮想ディスクを列挙する。
仮想ディスクの取り外しは、実装されたすべての仮想ディスクをその都度列挙する必要があるので、仮想ディスクごとに取り外しを行うのは非効率的である。そこで効率的にするために、仮想ディスクを再生成する前に、仮想ディスクの取り外しを一度の動作で行う。その動作は、以下の通りに行われる。
再生成する必要がある仮想ディスクファイルがあるボリューム名のリスト(リストでは複製されない)をコンパイルする。
1.GetParents=FALSEおよびInfoLevel=1で、ボリュームごとにGetStorageDependencyinformationを呼び出す。
2.返信されたSTORAGE_DEPENDENCY_INFO_LEVEL1ごとに、そのCallerContextおよびDiskContextを使用して仮想ディスクを取り外す。
3、検証のため、仮想ディスクの再生成段階の後に、ASRは、ASRメタデータ内のクリティカルなディスクの表示が再生成されたことを確認する。
VHDファイルの次のレベルを生成するためには、その前に、仮想ディスクの各レベルが生成されてパーティション化された後にブロックレベルの復元を起動する必要がある。
このようなアプリケーションは、SkipVHDRe-creationオプションを使用して、仮想ディスクの再生成を一切試みないようにASRに通知することもできる。
ネストされた仮想ディスクのレイヤごとの再生成について、仮想ディスクは、その仮想ディスクファイルを別の仮想ディスクまたは物理ボリューム上に有するなどして、仮想ディスクのレイヤをより多くすることができるので、仮想ディスクがレベルごとに生成され、図5で概ね表したように以下の通りになる。
1)物理ディスク上のパーティションおよびボリュームを再生成する(ステップ501)。

2)仮想ディスクのレベル1を再生成する(ステップ503)。すなわち、上記ステップ1で再生成されたボリューム上にある仮想ディスクファイルのすべてを有する、ASRメタデータを使用して仮想ディスクを見つける。

− 仮想ディスクのファイルを再生成して(レベル1におけるステップ504)、その仮想ディスクファイルを仮想ディスクとして表して、仮想ディスク上のパーティションおよびボリュームを再生成し、そしてパーティション/ボリュームをフォーマットする(レベル1におけるステップ505)。

3)仮想ディスクのレベル2を再生成する(ステップ509はレベルを増加させるが、ステップ509のレベルの増加は、ステップ507でブロックレベルの復元が行われる場合は、ステップ508でブロックレベルの復元の後に起こる)。すなわち、残りの仮想ディスクファイルがこれまでに再生成されたボリューム上に有する、残りのすべての仮想ディスクを見つける。どんな仮想ディスクファイルがどのボリューム上にあるかに関する情報は、ASRメタデータ内にある。

− 仮想ディスクファイルを再生成して(レベル2におけるステップ504)、その仮想ディスクファイルを仮想ディスクとして表して、仮想ディスク上のパーティションおよびボリュームを再生成して、そしてパーティション/ボリュームをフォーマットする(レベル2におけるステップ505)。

4)新しい仮想ディスクが再生成されなくなるまで、上記3を繰り返す(ステップ502)。
ブロックレベルの復元アプリケーションによるレイヤごとの再生成の利点の1つは、すべての仮想ディスクを一度に再生成することであるが、上述したように、ブロックレベルのリクエスタには適していない。ブロックレベルのリクエスタは、再生成された仮想ディスクが、仮想ディスクファイルが再生成されたボリュームを復元する場合に、再生成された仮想ディスクの破壊を避けることができない。
このことは、APIをASRライタオブジェクトインタフェース−HRESULTに追加することによる、レイヤごとの再生成を使用して解決される。IVssAsrWriterRestoreEx::RecreateNextLayer(void(ボイド))によって、リクエスタは、次のレイヤを再生成すべきときをASRに伝えることができる。リクエスタは、仮想ディスクおよびそれらの依存性を認識する必要がない。
以下に説明するように、リクエスタは、ASRと対話的に動作することができる。
1.リクエスタは、IVssBackupComponents::PreRestoreを呼び出す。
2.ASRは、物理ディスクを再生成する。
リクエスタは、バックアップしたボリュームから再生成されたボリュームのみを復元する。FindFirstVolume/findNextVolumeを呼び出すことによって、ボリュームを見つけることができる。
3.リクエスタは、IvssAsrWriterRestoreEx::RecreateNextLayerを呼び出す。
上記ステップ2で述べたように、ASRは、仮想ディスクを再生成することによって、さらなるボリュームを再生成する。それ以上再生成されるボリュームがない場合、ASRは、S_FALSEを返す。
4.ASRがS_FALSEを返すまで、リクエスタは、ステップ2および3を再度繰り返す。
レイヤ化された仮想ディスクの再生成中に動的ボリュームを再生成することに関して、一般的に、動的パックは、一部の仮想ディスク、および一部の物理ディスク、または仮想ディスク全体から構成できる。このような動的な仮想ディスクを、他の仮想ディスク上に置くことができ、ネストすることもできる。レイヤごとの再生成中、ASRの以下の追加のロジックは、動的ディスクおよびボリュームの再生成にも対処する。
1.物理ディスクの再生成の後に、これまでと同様にAsrLdmを使用して以下の変更により、物理パックを再生成する。
a.パック用のすべてのディスクは、それらが仮想ディスクであることがあるため、すぐには使用できない。したがって、少なくともパック内のすべての物理ディスクが再生成されたとしてもパックを生成する。
b.レイヤのためのすべての仮想ディスクが特定され、表現されてパーティション化されると、そのディスクが動的ディスクであったかどうかを確認する(これは、ASRメタデータを調べることによって見つけることができる)。

2.仮想ディスクが動的ディスクである場合、
a.物理ディスクの再生成中に再生成された動的パックに仮想ディスクを追加する。
b.AsrLdmメタデータから、パック内の(まだ再生成されていない)ボリュームを見つけ出して、すべてのボリュームをこれまでにパックに追加されたディスクのセット上に置く。それらのボリュームを再生成してフォーマットする。

3.ASRの終了条件は、同じように継続する。すなわち、もはや新しいボリュームが再生成されなかった場合、これにより、ディスクの再生成が終了する。
以上のように、仮想化がますます使用されるようになり、仮想ディスクを実行するマシンのベアメタルリカバリが必要とされる。これは、仮想ディスクからブートする物理マシンのベアメタルリカバリ、およびマルチレベルの仮想ディスク(仮想ディスク内において実装された仮想ディスク)を有する物理マシンのベアメタルリカバリを含む。
さらに、バックアップおよび復元は、本明細書で説明した仮想化に関連する技術のほんの一例の使用にすぎない。この技術を用いて、別のマシンへの仮想環境のマイグレーションを同様に行うこともできる。さらに、ゲストとして仮想マシンを監督するハイパーバイザを実行するホストパーティションも検討される。例えば、仮想ディスクを用いたゲストを有するホストによる自動システムリカバリおよび/またはマイグレーションを、この技術を介して行うことができる。
例示的なオペレーティング環境
図6は、図1から図5で表された例および/または実施形態を実装できるのに適したコンピューティングシステム環境600の例を図示している。コンピューティングシステム環境600は、適切なコンピューティング環境のほんの一例にすぎず、本発明の使用または機能性の範囲に関していかなる限定を示唆することを意図しない。コンピューティングシステム環境600は、この例示的なオペレーティング環境600内に図示されたコンポーネントの任意の1つまたはその組み合わせに関連する任意の依存性または要件を有するものとして解釈されるべきでない。
本発明は、他の多数の汎用または専用コンピューティングシステム環境または構成による動作が可能である。本発明において適切に使用することができる周知のコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、これらには限定されない。
本発明を、コンピュータによって実行されるプログラムモジュールなどの、コンピュータ実行可能命令の一般的な文脈において説明できる。一般的に、プログラムモジュールは、特定のタスクを行うまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明を、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが行われる、分散コンピューティング環境において実施することもできる。分散コンピューティング環境において、プログラムモジュールを、メモリ記憶装置を含む、ローカルおよび/またはリモートコンピュータ記憶媒体に配置することができる。
図6を参照して、本発明の様々な態様を実装する例示的なシステムは、汎用コンピューティングデバイスをコンピュータ610の形式で含むことができる。コンピュータ610のコンポーネントは、処理ユニット620、システムメモリ630、およびシステムメモリを含め様々なシステムコンポーネントを処理ユニット620に接続するシステムバス621を含むことができるが、これには限定されない。システムバス621は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造の任意のものとすることができる。例として、そのようなアーキテクチャは、ISAバス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、VESAローカルバス、およびメザニンバスとしても知られる、PCIバスを含むが、これらには限定されない。
コンピュータ610は、典型的には、様々なコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体は、コンピュータ610によってアクセスすることができ、揮発性および不揮発性媒体と、取外可能および取外不可能媒体の双方を含む、任意の利用可能な媒体とすることができる。例として、コンピュータ読取可能媒体は、コンピュータ記憶媒体および通信媒体を備えることができるが、これらには限定されない。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性媒体、取外可能および取外不可能媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ610によってアクセスすることができる他の媒体を含むが、これらには限定されない。通信媒体は、典型的に、コンピュータ読取可能命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送機構などの変調データ信号で具現化し、任意の情報配信媒体を含む。用語「変調データ信号」は、信号内の情報を符号化するような方法で、その特性のうち1または複数を設定または変更する信号を意味する。例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音響、RF、赤外線などの無線媒体および他の無線媒体を含むが、これらには限定されない。上記の任意の組み合わせも、コンピュータ読取可能媒体の範囲内に含まれるべきである。
システムメモリ630は、読み取り専用メモリ(ROM)631およびランダムアクセスメモリ(RAM)632など、揮発性および/または不揮発性メモリの形式のコンピュータ記憶媒体を含む。起動時などに、コンピュータ610内の要素間で情報を転送するのを助ける基本ルーチンを含む、基本入力/出力システム633(BIOS)は、典型的にROM631に格納される。RAM632は、典型的に、処理ユニット620によって、瞬時にアクセスでき、および/または動作されているデータおよび/またはプログラムモジュールを含む。限定ではなく例として、図6には、オペレーティングシステム634、アプリケーションプログラム635、他のプログラムモジュール636およびプログラムデータ637が図示されている。
コンピュータ610は、他の取外可能/取外不能、揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。単に例として、図6は、ノンリムーバブル不揮発性の磁気媒体との間で読み書きを行うハードディスクドライブ641と、リムーバブル不揮発性の磁気ディスク652との間で読み書きを行う磁気ディスクドライブ651と、CD−ROMまたは他の光媒体などのリムーバブル不揮発性の光ディスク656をとの間で読み書きを行う光ディスクドライブ655とが図示されている。例示的なオペレーティング環境において使用することができる他の取外可能/取外不能、揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROMなどが含まれるが、これらには限定されない。ハードディスクドライブ641は、典型的に、インタフェース640などの取外不能メモリインタフェースを介してシステムバス621に接続され、磁気ディスクドライブ651および光ディスクドライブ655は、典型的に、インタフェース650などの取外可能メモリインタフェースによってシステムバス621に接続される。
上述して図6に図示されたドライブおよびそれらに関連付けられたコンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールおよび他のデータのストレージをコンピュータ610に提供する。図6において、例えば、ハードディスクドライブ641は、オペレーティングシステム644、アプリケーションプログラム645、他のプログラムモジュール646およびプログラムデータ647を格納するものとして図示されている。これらのコンポーネントは、オペレーティングシステム634、アプリケーションプログラム635、他のプログラムモジュール636、およびプログラムデータ637と同じにしてもよいし、異なってもよいことに留意されたい。オペレーティングシステム644、アプリケーションプログラム645、他のプログラムモジュール646、およびプログラムデータ647は、本明細書では、最小限、それらが異なるコピーであることを図示するために異なる数字で示されている。ユーザは、タブレットもしくは電子デジタイザ664、リモートコントロール(R/C)663、キーボード662、および通常マウス、トラックボールもしくはタッチパッドと呼ばれるポインティングデバイス661などの入力デバイスを介して、コマンドおよび情報をコンピュータ610に入力することができる。図6に図示されていない他の入力デバイスには、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれうる。これらと他の入力デバイスは、しばしば、システムバスに接続されたユーザ入力インタフェース660を介して処理ユニット620に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)などの他のインタフェースおよびバス構造によって接続することもできる。モニタ691または他の種類の表示デバイスも、ビデオインタフェース690などのインタフェースを介してシステムバス621に接続される。モニタ691は、タッチスクリーンパネルなどと一体化することもできる。モニタおよび/またはタッチスクリーンパネルを、コンピューティングデバイス610がタブレット型パーソナルコンピュータなどに組み込まれる、ハウジング(housing)に物理的に接続することができることに留意されたい。さらに、コンピューティングデバイス610などのコンピュータは、出力周辺インタフェース694などを介して接続することができるスピーカ695およびプリンタ696などの、他の周辺出力デバイスを含むこともできる。
コンピュータ610は、リモートコンピュータ680などの1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境において動作できる。リモートコンピュータ680は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードとすることができ、メモリストレージデバイス681のみが図6に図示されているが、典型的には、コンピュータ610に関連して上述した多くのまたはすべての要素を含む。図6に図示された論理接続は、1つまたは複数のローカルエリアネットワーク(LAN)671および1つまたは複数のワイドエリアネットワーク(WAN)673を含むが、他のネットワークを含むこともできる。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的になってきている。
LANネットワーキング環境において使用されるとき、コンピュータ610は、ネットワークインタフェースまたはアダプタ670を介してLAN671に接続される。WANネットワーキング環境において使用されるとき、コンピュータ610は、典型的に、モデム672、またはインターネットなど、WAN673を介して通信を確立する他の手段を含む。内蔵または外付けとすることができるモデム672は、ユーザ入力インタフェース660または他の適切な機構を介してシステムバス621に接続され得る。インタフェースおよびアンテナなどを備える無線ネットワーキングコンポーネント674は、アクセスポイントまたはピアコンピュータなどの適切なデバイスを介して、WANまたはLANに接続され得る。ネットワーク環境において、コンピュータ610またはその一部に関連して図示されたプログラムモジュールは、リモートのメモリ記憶装置に格納することができる。限定でなく例として、図6では、リモートアプリケーションプログラム685がメモリデバイス681にあるように図示されている。示されるネットワーク接続は、例示であり、コンピュータ間で通信リンクを確立する他の手段を使用できることも認識されたい。
ユーザインタフェース660を介して(例えば、コンテンツの補助的な表示のための)補助サブシステム699を接続することにより、コンピュータシステムの主要部分が低電力状態にある場合も、プログラムコンテンツ、システム状態およびイベント通知などのデータをユーザに提供することができる。補助サブシステム699をモデム672および/またはネットワークインタフェース670に接続することによって、主処理ユニット620が低電力状態であってもこのシステム間で通信が可能になる。
結論
本発明をさまざまに変更して代替的に構成することが可能であるが、その一部の例示的な実施形態を図示し、上記で詳細に説明してきた。しかしながら、本発明を開示された特定の形態に限定することは意図しておらず、反対に、本発明は、本発明の精神および範囲内におけるすべての変更、代替的構成および同等物を網羅していることを理解されたい。

Claims (20)

  1. コンピューティング環境において、物理ディスクを生成すること(501)と、前記物理ディスクのパーティション上に前記仮想ディスクを生成することとを含む、仮想ディスクを復元するステップ(504、505、508)を備えることを特徴とする方法。
  2. 前記仮想ディスクを復元するステップは、前記仮想ディスクが第1のネストレベルと関連付けられていることを判定することと、各仮想ディスクが関連付けられているレベルに基づいて、レイヤ化された順序で第2のネストレベルで前記仮想ディスクおよび別の仮想ディスクを復元することとを含むことを特徴とする請求項1に記載の方法。
  3. 前記仮想ディスクは、ブロックレベルの復元のために構成され、前記仮想ディスクを復元するステップは、前記第1のネストレベルにおいてブロックレベルの復元を行うことを含むことを特徴とする請求項2に記載の方法。
  4. 前記仮想ディスクを復元するステップは、前記仮想ディスクを、レイヤ化された動作として表現すること、およびパーティション化することを含むことを特徴とする請求項1に記載の方法。
  5. 前記レイヤ化される動作は、任意の物理ディスクを再生成し、物理ディスクのみに依存する任意の仮想ディスクを再生成し、再生成されたディスクに依存する仮想ディスクを再生成することを特徴とする請求項4に記載の方法。
  6. コンピューティング環境において、後の復元のために仮想ディスク(104)をバックアップするステップ(108)を含み、該バックアップするステップは、前記仮想ディスクを再生成するためのメタデータ(110)を保持することを含むことを特徴とする方法。
  7. 前記メタデータは、依存情報またはレベル情報のいずれか、または双方を含むことを特徴とする請求項6に記載の方法。
  8. ボリュームまたはディスクはクリティカルであると判定するステップと、前記ボリュームまたはディスクをクリティカルとしてマークするステップとをさらに備えることを特徴とする請求項6に記載の方法。
  9. 実装された仮想ディスク内部のボリュームがクリティカルであるかどうかを判定するステップと、クリティカルである場合、前記ボリュームがクリティカルとして属する前記仮想ディスクおよびパックをマークするステップとをさらに備えることを特徴とする請求項6に記載の方法。
  10. 仮想ディスクが、該仮想ディスクのファイルが存在するボリュームまたは仮想ディスクに依存しているかどうかを判定するステップと、依存している場合、前記仮想ディスクの親ボリュームをクリティカルとしてマークするステップとをさらに備えることを特徴とする請求項6に記載の方法。
  11. 前記親ボリュームが基本ディスク上にあるかどうかを判定するステップと、基本ディスク上にある場合、実装された仮想ディスクをクリティカルとしてマークするステップと、実装されたパーティションをクリティカルとしてマークするステップと、親パーティションをクリティカルとしてマークするステップと、親ディスクをクリティカルとしてマークするステップとをさらに備えることを特徴とする請求項6に記載の方法。
  12. 親ボリュームが動的ボリュームであるかどうかを判定するステップと、動的ボリュームである場合に、実装された仮想ディスクをクリティカルとマークするステップと、実装されたパーティションをクリティカルとマークするステップと、前記親ボリュームを含む前記ディスクと同じパック内にある全ての動的ディスクをクリティカルとマークするステップとをさらに備えることを特徴とする請求項6に記載の方法。
  13. クリティカルとマークされた仮想ディスクが、バックアップ時に除外されるディスクに依存しないことを保証するステップをさらに備えることを特徴とする請求項6に記載の方法。
  14. コンピューティングデバイスを有するコンピューティング環境において、前記コンピューティングデバイス(102)のバックアップ時に保持されたメタデータ(110)に基づいて物理ディスクを再生成する機構(114)と、前記物理ディスク(118)上に仮想ディスクを再生成する機構とを含む、復元機構(112)を備えたことを特徴とするシステム。
  15. バックアップ時に仮想ディスクメタデータを含む前記メタデータを、前記復元機構によってアクセスされる媒体にバックアップするバックアップ機構をさらに備えたことを特徴とする請求項14に記載のシステム。
  16. 前記コンピューティングデバイスは、前記復元機構によって復元される複数の仮想ディスクを含むことを特徴とする請求項14に記載のシステム。
  17. 前記コンピューティングデバイスは、前記復元機構によって復元される仮想ディスク上のブートボリュームを含み、前記仮想ディスクは、物理システムパーティション上の仮想ディスクファイルと関連付けられていることを特徴とする請求項15に記載のシステム。
  18. 前記コンピューティングデバイスは、前記復元機構によって復元された物理ボリュームを含み、前記物理ボリュームは、ブートボリュームを支援する仮想ディスクを含むことを特徴とする請求項15に記載のシステム。
  19. 前記コンピューティングデバイスは、複数のボリュームを含む仮想ディスクファイル用のコンテナであるボリュームを含む、前記復元機構によって復元された単一の仮想ディスク上の複数のボリュームを含むことを特徴とする請求項15に記載のシステム。
  20. 前記コンピューティングデバイスは、物理ボリュームが、ブートボリュームを支援するブート仮想ディスクと、別のボリュームを支援する別の仮想ディスクとを含む、復元機構によって復元されたネストされた仮想ディスクを含むことを特徴とする請求項15に記載のシステム。
JP2011523945A 2008-08-20 2009-08-18 仮想ディスクを含むコンピュータのリカバリ Active JP5572163B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN2026/CHE/2008 2008-08-20
IN2026CH2008 2008-08-20
US12/242,933 US8150801B2 (en) 2008-08-20 2008-10-01 Recovery of a computer that includes virtual disks
US12/242,933 2008-10-01
PCT/US2009/054221 WO2010022099A2 (en) 2008-08-20 2009-08-18 Recovery of a computer that includes virtual disks

Publications (3)

Publication Number Publication Date
JP2012509516A true JP2012509516A (ja) 2012-04-19
JP2012509516A5 JP2012509516A5 (ja) 2012-10-04
JP5572163B2 JP5572163B2 (ja) 2014-08-13

Family

ID=41697311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011523945A Active JP5572163B2 (ja) 2008-08-20 2009-08-18 仮想ディスクを含むコンピュータのリカバリ

Country Status (7)

Country Link
US (2) US8150801B2 (ja)
EP (1) EP2335144B1 (ja)
JP (1) JP5572163B2 (ja)
KR (1) KR101591550B1 (ja)
CN (1) CN102124437B (ja)
CA (1) CA2730094C (ja)
WO (1) WO2010022099A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160036205A (ko) * 2014-09-25 2016-04-04 한국전자통신연구원 가상 머신 취약점 점검과 복구 방법 및 장치

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099391B1 (en) 2009-03-17 2012-01-17 Symantec Corporation Incremental and differential backups of virtual machine files
US8397046B2 (en) * 2009-03-26 2013-03-12 Hitachi, Ltd. Method and apparatus for deploying virtual hard disk to storage system
US8943203B1 (en) 2009-07-10 2015-01-27 Netapp, Inc. System and method for storage and deployment of virtual machines in a virtual server environment
US9032243B2 (en) * 2010-01-27 2015-05-12 International Business Machines Corporation Target operating system and file system agnostic bare-metal restore
US8627000B2 (en) * 2010-02-08 2014-01-07 Microsoft Corporation Virtual disk manipulation operations
US8413142B2 (en) * 2010-03-30 2013-04-02 Citrix Systems, Inc. Storage optimization selection within a virtualization environment
US9767274B2 (en) * 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US9037547B1 (en) * 2010-09-15 2015-05-19 Symantec Corporation Backup time deduplication of common virtual disks from virtual machine backup images
US8694745B2 (en) * 2010-09-15 2014-04-08 Symantec Corporation Physical to virtual disks creation (P2V) method, by harvesting data from critical sectors
US8666944B2 (en) 2010-09-29 2014-03-04 Symantec Corporation Method and system of performing a granular restore of a database from a differential backup
US8417672B2 (en) * 2010-10-11 2013-04-09 Microsoft Corporation Item level recovery
US8799337B2 (en) 2010-12-15 2014-08-05 Microsoft Corporation System reset and system restore
US8924700B1 (en) * 2011-05-06 2014-12-30 Symantec Corporation Techniques for booting from an encrypted virtual hard disk
US9069467B2 (en) 2011-06-01 2015-06-30 Microsoft Technology Licensing, Llc Isolation of virtual machine I/O in multi-disk hosts
US20130066838A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Efficient data recovery
CN102662783A (zh) * 2012-03-20 2012-09-12 浪潮电子信息产业股份有限公司 一种桌面云环境下修复虚拟机的方法
US8819090B2 (en) 2012-04-23 2014-08-26 Citrix Systems, Inc. Trusted file indirection
US8819369B1 (en) * 2012-06-26 2014-08-26 Netapp, Inc. Restoring a virtual machine
CN103838639B (zh) * 2012-11-23 2018-04-27 华为技术有限公司 一种恢复虚拟磁盘元数据的方法、装置及系统
US20140250077A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Deduplication vault storage seeding
US9218251B1 (en) * 2013-03-11 2015-12-22 Emc Corporation Method to perform disaster recovery using block data movement
US8766707B1 (en) 2013-03-15 2014-07-01 Seagate Technology Llc Integrated always on power island for low power mode operation
US9335809B2 (en) 2013-03-15 2016-05-10 Seagate Technology Llc Volatile memory storing system data during low power mode operation and monitoring the voltage supplied to the memory during low power mode
US9411394B2 (en) 2013-03-15 2016-08-09 Seagate Technology Llc PHY based wake up from low power mode operation
US9805068B1 (en) * 2013-08-30 2017-10-31 Veritas Technologies Llc Systems and methods for facilitating features of system recovery environments during restore operations
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
CN105808152B (zh) * 2014-12-29 2018-11-27 曙光云计算集团有限公司 一种优化raid全局元数据读写性能的方法
US9569138B2 (en) * 2015-06-15 2017-02-14 International Business Machines Corporation Copying virtual machine flat tires from a source to target computing device based on matching disk layout
US10126983B2 (en) 2015-06-24 2018-11-13 Vmware, Inc. Methods and apparatus to enforce life cycle rules in a modularized virtualization topology using virtual hard disks
US10097534B2 (en) * 2015-08-28 2018-10-09 Dell Products L.P. System and method to redirect hardware secure USB storage devices in high latency VDI environments
CN106445730B (zh) * 2016-07-22 2019-12-03 平安科技(深圳)有限公司 一种提高虚拟机性能的方法和终端
US10310949B1 (en) 2016-12-22 2019-06-04 EMC IP Holding Company LLC Disaster restore of big data application with near zero RTO
US10152387B1 (en) * 2016-12-23 2018-12-11 EMC IP Holding Company LLC Instant start of virtual machine from archive copy on backup media
US11016798B2 (en) 2018-06-01 2021-05-25 The Research Foundation for the State University Multi-hypervisor virtual machines that run on multiple co-located hypervisors
US10976959B2 (en) * 2018-07-23 2021-04-13 EMC IP Holding Company LLC Method and system for accessing virtual machine state while virtual machine restoration is underway
CN109358988A (zh) * 2018-12-10 2019-02-19 郑州云海信息技术有限公司 一种云备份数据的恢复方法、装置、系统及可读存储介质
US11847030B2 (en) * 2020-02-19 2023-12-19 EMC IP Holding Company LLC Prioritizing virtual machines for backup protection at a virtual machine disk level
US11586391B2 (en) 2020-12-16 2023-02-21 Nutanix, Inc. Technique for efficient migration of live virtual disk across storage containers of a cluster
US11487467B1 (en) 2021-05-28 2022-11-01 Microsoft Technology Licensing, Llc Layered memory mapped file technology

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007021435A2 (en) * 2005-08-15 2007-02-22 Microsoft Corporation Archiving data in a virtual application environment
JP2007052772A (ja) * 2005-08-17 2007-03-01 Hitachi Ltd データ複製システム並びにデータ移行方法
WO2007130209A1 (en) * 2006-05-08 2007-11-15 Microsoft Corporation Converting machines to virtual machines
JP2008009485A (ja) * 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
JP2008181271A (ja) * 2007-01-24 2008-08-07 Hitachi Ltd 仮想ボリュームに記憶されたデータをバックアップする記憶制御装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047294A (en) 1998-03-31 2000-04-04 Emc Corp Logical restore from a physical backup in a computer storage system
US20020095557A1 (en) 1998-06-22 2002-07-18 Colin Constable Virtual data storage (VDS) system
US6269431B1 (en) * 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US6820214B1 (en) 1999-07-26 2004-11-16 Microsoft Corporation Automated system recovery via backup and restoration of system state
JPWO2002056179A1 (ja) 2001-01-05 2004-05-20 株式会社メディアヴィジョン 仮想ドライブを使用したパーティションの再生成方法、データ処理装置及びデータ記憶装置
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7093086B1 (en) 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
WO2004047078A2 (en) 2002-11-20 2004-06-03 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
JP4493321B2 (ja) 2003-11-19 2010-06-30 株式会社日立製作所 ディスクアレイ装置及びデータ退避方法
US7440965B1 (en) * 2004-02-11 2008-10-21 Network Appliance, Inc. Method and system for generating and restoring a backup image
US7293272B1 (en) 2004-02-26 2007-11-06 Veritas Operating Corporation Device driver processing for automated system restores
US20060112313A1 (en) 2004-11-12 2006-05-25 Tripp Thomas M Bootable virtual disk for computer system recovery
US7669020B1 (en) * 2005-05-02 2010-02-23 Symantec Operating Corporation Host-based backup for virtual machines
US8346726B2 (en) 2005-06-24 2013-01-01 Peter Chi-Hsiung Liu System and method for virtualizing backup images
JP4702000B2 (ja) 2005-11-10 2011-06-15 パナソニック株式会社 電気湯沸かし器
JP4544146B2 (ja) 2005-11-29 2010-09-15 株式会社日立製作所 障害回復方法
US7441092B2 (en) 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007021435A2 (en) * 2005-08-15 2007-02-22 Microsoft Corporation Archiving data in a virtual application environment
JP2007052772A (ja) * 2005-08-17 2007-03-01 Hitachi Ltd データ複製システム並びにデータ移行方法
WO2007130209A1 (en) * 2006-05-08 2007-11-15 Microsoft Corporation Converting machines to virtual machines
JP2008009485A (ja) * 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
JP2008181271A (ja) * 2007-01-24 2008-08-07 Hitachi Ltd 仮想ボリュームに記憶されたデータをバックアップする記憶制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160036205A (ko) * 2014-09-25 2016-04-04 한국전자통신연구원 가상 머신 취약점 점검과 복구 방법 및 장치
KR101649909B1 (ko) * 2014-09-25 2016-08-22 한국전자통신연구원 가상 머신 취약점 점검과 복구 방법 및 장치
US9734330B2 (en) 2014-09-25 2017-08-15 Electronics And Telecommunications Research Institute Inspection and recovery method and apparatus for handling virtual machine vulnerability

Also Published As

Publication number Publication date
CA2730094A1 (en) 2010-02-25
WO2010022099A2 (en) 2010-02-25
EP2335144A2 (en) 2011-06-22
CN102124437A (zh) 2011-07-13
US8150801B2 (en) 2012-04-03
US9081732B2 (en) 2015-07-14
CN102124437B (zh) 2013-12-11
KR101591550B1 (ko) 2016-02-04
WO2010022099A3 (en) 2010-05-06
EP2335144B1 (en) 2013-08-14
US20100049750A1 (en) 2010-02-25
CA2730094C (en) 2016-11-01
US20120159240A1 (en) 2012-06-21
KR20110050452A (ko) 2011-05-13
EP2335144A4 (en) 2012-06-13
JP5572163B2 (ja) 2014-08-13

Similar Documents

Publication Publication Date Title
JP5572163B2 (ja) 仮想ディスクを含むコンピュータのリカバリ
US7669020B1 (en) Host-based backup for virtual machines
US8577845B2 (en) Remote, granular restore from full virtual machine backup
US8732121B1 (en) Method and system for backup to a hidden backup storage
US8924358B1 (en) Change tracking of individual virtual disk files
US9880759B2 (en) Metadata for data storage array
US8533164B2 (en) Method and tool to overcome VIOS configuration validation and restoration failure due to DRC name mismatch
US7877357B1 (en) Providing a simulated dynamic image of a file system
US6978363B2 (en) System and method to enable a legacy BIOS system to boot from a disk that includes EFI GPT partitions
US8489552B1 (en) Generic granular restore of application data from a volume image backup
US7496783B1 (en) Merging cluster nodes during a restore
US9804855B1 (en) Modification of temporary file system for booting on target hardware
JP5828897B2 (ja) 重要セクタからデータを得ることによる物理ディスクから仮想ディスクへの作成(p2v)方法、コンピュータ可読ストレージ媒体およびシステム
US20150026518A1 (en) System and method for data disaster recovery
US6687799B2 (en) Expedited memory dumping and reloading of computer processors
US11327927B2 (en) System and method for creating group snapshots
US9189345B1 (en) Method to perform instant restore of physical machines
CN115098299B (zh) 一种虚拟机的备份方法、容灾方法、装置及设备
US9846621B1 (en) Disaster recovery—multiple restore options and automatic management of restored computing devices
US9619340B1 (en) Disaster recovery on dissimilar hardware
CN115576743B (zh) 操作系统恢复方法、装置、计算机设备和存储介质
US8874870B2 (en) Dynamic VVDS expansion
CN117707431A (zh) 一种基于bios的软件raid数据读取方法、装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120810

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120810

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131225

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: 20140530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140627

R150 Certificate of patent or registration of utility model

Ref document number: 5572163

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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