JP2012155768A - マシンから仮想マシンへの変換 - Google Patents

マシンから仮想マシンへの変換 Download PDF

Info

Publication number
JP2012155768A
JP2012155768A JP2012115974A JP2012115974A JP2012155768A JP 2012155768 A JP2012155768 A JP 2012155768A JP 2012115974 A JP2012115974 A JP 2012115974A JP 2012115974 A JP2012115974 A JP 2012115974A JP 2012155768 A JP2012155768 A JP 2012155768A
Authority
JP
Japan
Prior art keywords
machine
virtual
volumes
virtual machine
host
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
JP2012115974A
Other languages
English (en)
Other versions
JP5496254B2 (ja
Inventor
L Michael Michael
エル.マイケル マイケル
L Scheidel William
エル.シャイデル ウィリアム
Alan Leis Benjamin
アラン レイス ベンジャミン
Mehra Karan
メーラ キャラン
Raman Venkatasubrahmanyam
ラマン ベンカタサブラーマニヤン
V Varava Natalia
ヴィ.ヴァラヴァ ナタリア
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 JP2012155768A publication Critical patent/JP2012155768A/ja
Application granted granted Critical
Publication of JP5496254B2 publication Critical patent/JP5496254B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】物理(または、前の仮想)マシンボリュームを仮想マシンホストにおける仮想マシンへ、物理マシンが実行中である間に変換する。
【解決手段】一実装では、ボリュームシャドウコピーサービスを使用して、1つまたは複数の物理マシンボリュームの、アプリケーション(および/またはファイルシステム)との一貫性を有するスナップショットを、その1つまたは複数のボリュームが実行中である間に、作成する。スナップショットを、仮想マシンホストにおいて、マウントされた仮想ハードディスクファイル(ダイナミックまたは固定)へ転送する。仮想マシン内の仮想ハードディスクファイルおよびオペレーティングシステムに関連する動作情報(例えば、ブートレコード、システムレジストリ、ドライバ、デバイス、コンフィギュレーション基本設定など)を、対応する仮想マシンが仮想マシンホストでブート可能かつ機能することを保証するために、適切に修正する。
【選択図】図1A

Description

本発明は、マシンから仮想マシンへの変換に関する。
異なるタイプのリソース(ソフトウェア、ハードウェア、またはそれらの組み合わせ)を、コンピュータ化された環境内で分散させるための多数の方法がある。ソフトウェアの観点からすれば、例えば、企業では、オペレーティングシステム(または、アプリケーションプログラム)の複数のコピーを複数の異なるコンピュータ上にインストールし、それにより、1つのコピーを多数のシステム間で分散させる場合がある。従来のハードウェア共有方法には、さまざまなストレージまたはファイル共有の必要性のために、複数の異なるコンピュータシステムが別のコンピュータのドライブスペースにアクセスすることができるように、コンピュータシステムをネットワーク上でセットアップすることが含まれる。
しかし、最近のハードウェアの能力(すなわち、現在のストレージ、メモリおよび処理能力)の進歩により、単に従来のストレージおよび/またはネットワークトラフィック管理機能を提供しても、所与の物理マシンを十分に利用しない傾向があるようになってきている。したがって、ソフトウェアおよびハードウェアの組み合わせの観点から、リソースを分散させるさらなる方法には、このとき、複数の仮想コンピュータシステムを単一の物理システム上にインストールすることが含まれる。通常、仮想マシンを、ホストのストレージの専用部分における特定のオペレーティングシステムの固有のインスタンスにより、かつ、ホストメモリおよび処理能力の割り当てられた部分により、インストールすることができる。
これらのおよび他の特徴のため、仮想マシンを他の仮想マシンと、また、それらがインストールされるホストサーバーとさえ、容易に区別することができる。ネットワーク上の他のユーザーにとって、仮想マシンは単に、ネットワーク上のいずれかの他の物理コンピュータシステムなど、別にアドレス指定可能なコンピュータシステムとして見えるようになる。次いで、仮想マシンを、ネットワーク上で別のサーバー(例えば、電子メールまたはデータベースサーバー)として使用するため、ソフトウェアまたはハードウェアをテストする目的のため、シンクライアント用のメインコンピュータシステムとして、など、幅広い範囲の目的のために使用することができる。
この機能性に加えて、仮想マシンはまた、インストールおよびセットアップ、ならびに除去がかなり容易に、また、場合によっては高速にできるという、追加の利点をも提供することができる。例えば、特定のホストコンピュータシステムのためのアドミニストレータは、仮想マシンについてのリクエストを受信し、適切なリソースをホストコンピュータ上で手動で割り振り、次いで、リクエストを受けた仮想マシンをインストールすることができる。仮想マシンがもはや必要とされない場合、アドミニストレータは、ホストサーバーにおいて仮想マシンをシャットダウン、または削除さえもするための1つまたは複数のコマンドを手動で選択することができる。したがって、組織は、1台または少数のホストサーバーに何百もの仮想マシンを潜在的にホストさせることによって、その物理マシン(サーバー、パーソナルコンピュータなど)の数を減らすことを望む場合がある。このような統合は、特に組織が、節電、温度/冷却の節約、スペースの節約、および、物理マシン利用の低減により得られる他の節約など、さまざまなリソース消費およびマシン管理コストを削減することができる場合、多数の利点をもたらす可能性があることは理解されよう。
残念ながら、選択された数の既存の物理コンピュータシステムを仮想マシンに変換することによって、物理マシンを統合することは、簡単なことではない。具体的には、物理ドライブの内容をホストサーバーのパーティション上へ単にコピーしても、通常、使用可能な仮想マシンを作成するには十分ではないものとなる。例えば、物理マシンが実行中である間に物理マシンのドライブの基本的なコピーを行うと、ファイル状態における非一貫性が生じる(すなわち、データは「アプリケーションとの一貫性を有する」ものではない)場合がある。したがって、その物理マシンにおけるデータにアクセスしているアプリケーションは、そのデータのコピーが後に仮想マシンへ移動されたときに、そのデータのコピーを使用できなくなる場合がある。加えて、このようなコピーを単にホストサーバーへ転送すると、システムレジストリにおける他の非一貫性、または、さまざまなディスクおよびネットワークドライバとの非一貫性、オペレーティングシステムバイナリにおける非一貫性などが生じる場合がある。このような難点を回避するためのいくつかのメカニズムはあるが、そのように行うための従来のメカニズムは、典型的には大幅なダウンタイムおよびリソース消費(人的およびソフトウェアの両方の観点から)を伴う。
例えば、物理マシンを変換する1つの方法は、仮想マシンホストにおいて仮想マシンを最初から作成することを含む。具体的には、アドミニストレータは単に、物理マシンにおけるすべてのアプリケーションを新しい仮想マシンにインストールし、ファイルシステムおよびアプリケーションデータを仮想マシンへ転送し、次いで、仮想マシンにおける他のいかなるワークロードをも、最初から、かつ/または、アプリケーションリストアオペレーションを通じて、再構築することができる。言うまでもなく、この方法は、さまざまな観点から望ましくないものであり、特に、何百もの物理マシンを仮想マシンへ変換しようと試みる場合、組織のリソースの消費を生じる場合がある。
物理マシンを変換するためのもう1つの方法は、自動デプロイメントサービス(Automated Deployment Services:「ADS」)、および/または、プリインストール実行可能環境(Pre−Installation Executable Environment:「PXE」)など、かなり複雑なインフラストラクチャコンポーネントを使用して、物理マシンの内容の転送可能コピーを作成することを含む。通常、このタイプのインフラストラクチャを使用するメカニズムは、物理マシンのシャットダウン、および、例えば、PXEによる物理マシンのリブートを含む。これにより、アドミニストレータは、固有のオペレーティングシステムをロードすることなく、物理マシンを起動させることができ、したがって、コピープロセス中のファイルへの書き込みを禁じることができる。
物理ドライブの内容をコピーした後、アドミニストレータは次いで、この内容を仮想マシンホストへ転送することができる。これだけで、数ギガバイトのデータにつき1時間から数時間を要する場合がある。データを転送すると、アドミニストレータは次いで、コピーされた内容を仮想マシンとしてブート可能にするために、転送されたデータに対して多数の比較的複雑な変更を行うことが必要となる。少なくとも部分的には、変換中の物理マシンをオフラインにし、データをブート可能にすることに関するダウンタイムのため、この方法は典型的には、単に物理マシンを最初から仮想マシンとして再構築することがあまりにも困難である場合に、行われる。
したがって、物理マシンをアドレス指定可能な仮想マシンへ変換することに関連する、多数の問題がある。
本発明の実装は、当技術分野における1つまたは複数の問題を、物理マシンを仮想マシンへ効率的に変換するように構成されたシステム、方法およびコンピュータプログラム製品によって解決する。具体的には、本発明の実装は、仮想マシンホスト(または、他の適切なコンピュータシステム)などで、物理マシンを必ずしもオフラインにする必要なしに、物理マシンボリュームデータを高速にコピーし、転送し、かつブート可能にすることを可能とする。一実装では、例えば、1つまたは複数のアプリケーションライタを(例えば、ボリュームシャドウコピーサービスを介して)使用して、1つまたは複数の物理マシンボリュームの、アプリケーション(および/またはファイルシステム)との一貫性を有するスナップショットを、その1つまたは複数のボリュームをオンラインにしたまま、作成することができる。スナップショットを次いで、効率的な転送手段(例えば、ブロックレベルコピー)を使用して、ホストサーバーにおける仮想ハードディスクファイルへ転送することができる。転送されたスナップショットデータに関連する動作情報(例えば、ブートデータ、システムレジストリおよびバイナリなど)を次いで、仮想マシンホストで修正して、それにより、転送されたスナップショットボリュームをブート可能にすることができる。
例えば、物理マシンの観点からの、本発明の一実装による、大幅なダウンタイムを招くことなく物理マシンを仮想マシンへ変換する一実施例の方法は、物理マシンの1つまたは複数のボリュームについての1つまたは複数のハードウェアコンフィギュレーション設定を識別することを含むことができる。この方法はまた、1つまたは複数の物理マシンボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成することを含むこともできる。加えて、この方法は、1つまたは複数のスナップショットを、マウントされた仮想ハードディスクファイルへ送信することを含むことができる。さらに、この方法は、1つまたは複数の一貫性のあるスナップショットのためのブートレコードを、マウントされた仮想ハードディスクファイルへ送信することを含むことができる。このような場合、ブートレコードは、仮想マシンホストで修正(または、必要に応じて最初から作成)することができる、1つまたは複数の一貫性のあるスナップショットについての動作情報の一部を形成することができる。
加えて、仮想マシンホストの観点からの、本発明の一実装による、物理マシンを仮想マシンへ変換するもう1つの実施例の方法は、ファイルサイズを有する仮想ハードディスクファイルを作成することを含むことができる。この方法はまた、仮想マシンホストにおいて仮想ハードディスクファイルをマウントすることを含むこともできる。このような場合、仮想ハードディスクファイルは、オペレーティングシステムにとって、アクセス可能な物理ディスクとして見えることが可能である。加えて、この方法は、1つまたは複数の物理マシンボリュームに対応する1つまたは複数の一貫性のあるスナップショットを受信することを含むことができる。さらに、この方法は、1つまたは複数の一貫性のあるスナップショットについての動作情報を修正することを含むことができる。したがって、ブートレコード、ドライバ、オペレーティングシステムバイナリ、システムレジストリ、および/または、コンフィギュレーション基本設定への変更を通じるなどして、1つまたは複数の一貫性のあるスナップショットを、仮想マシンホストにおけるオペレーティングシステムにとって適切にすることができる。なお、さらに、この方法は、仮想ハードディスクファイルのマウントを解除することを含むことができる。したがって、仮想ハードディスクファイルを、物理ディスクとしてアクセス不可能にすることができるが、むしろ、仮想マシンとしてブート可能にすることができる。
この概要は、さらに詳細な説明において後述される簡略化された形態において概念の選択を導入するために提供される。この概要は、特許請求の範囲に記載された対象の重要な特徴または本質的特徴を特定することを意図するものではなく、特許請求の範囲に記載された対象の範囲の決定を助けるものとして使用されることを意図するものでもない。
本発明の例示的実装の追加の特徴および利点を以下の説明において述べ、これは部分的にはその説明から明らかとなり、または、このような例示的実装の実施によって知ることができる。このような実装の特徴および利点を、付属の特許請求の範囲において特に指摘された手段および組み合わせを用いて実現し、得ることができる。これらおよび他の特徴は、以下の説明および付属の特許請求の範囲からより十分に明らかとなり、または、後述のような例示的実装の実施によって知ることができる。
本発明の上記および他の利点および特徴を得ることができる方法を説明するため、簡単に上述した本発明のより詳細な説明を、付属の図面において例示されるその特定の実施形態を参照して、提供する。これらの図面は本発明の典型的な実施形態のみを示すものであり、したがって、その範囲を限定するように見なされるべきではないという理解において、以下の添付の図面の使用を通じて、さらなる特異性および詳細とともに、本発明を記載および説明する。
1つまたは複数の物理ディスクボリュームの1つまたは複数のスナップショットが取られ、1つまたは複数の仮想ハードディスクファイルが仮想マシンホストで作成される、本発明の一実装による概観概略図である。 物理ディスクボリュームの1つまたは複数のスナップショットのデータが、作成された仮想ハードディスクファイルへ、効率的な転送メカニズムを使用して転送される、図1Aの概観概略図である。 本発明の一実装により、転送されたスナップショットデータを含む仮想ハードディスクファイルが修正されて、ブート可能な仮想マシンが作成される、図1Aから図1Bの概観概略図である。 1つまたは複数のマシンを対応する1つまたは複数の仮想マシンに変換するための物理マシンおよび仮想マシンホストの観点からの方法のフローチャートである。
本発明は、物理マシンを仮想マシンへ効率的に変換するように構成されたシステム、方法およびコンピュータプログラム製品に及ぶ。具体的には、本発明の実装は、仮想マシンホスト(または、他の適切なコンピュータシステム)などで、物理マシンを必ずしもオフラインにする必要なしに、物理マシンボリュームデータを高速にコピーし、転送し、かつブート可能にすることを可能とする。一実装では、例えば、1つまたは複数のアプリケーションライタを(例えば、ボリュームシャドウコピーサービスを介して)使用して、1つまたは複数の物理マシンボリュームの、アプリケーション(および/またはファイルシステム)との一貫性を有するスナップショットを、その1つまたは複数のボリュームをオンラインにしたまま、作成することができる。スナップショットを次いで、効率的な転送手段(例えば、ブロックレベルコピー)を使用して、ホストサーバーにおける仮想ハードディスクファイルへ転送することができる。転送されたスナップショットデータに関連する動作情報(例えば、ブートデータ、システムレジストリおよびバイナリなど)を次いで、仮想マシンホストで修正して、それにより、転送されたスナップショットボリュームをブート可能にすることができる。
したがって、本発明の実装は、物理マシンのダウンタイムを回避可能な方法における、比較的高速な「ワンタッチ」の物理−仮想マシン変換のような利点を提供することができる。さらに、本発明の実装は、信頼できる「ワンタッチ」の物理−仮想マシン変換を可能にし、これは、変換されたマシンが仮想マシンホストで一貫性を有するようになるからである。以下の明細書および特許請求の範囲からより十分に理解されるように、このような変換を、いかなる数の適切なコンポーネントおよびモジュールによっても実施することができる。例えば、本発明の実装は、ボリュームシャドウコピーサービス(「VSS」)におけるコンポーネントおよびメカニズムを使用して、アプリケーション(および/またはファイルシステム)との一貫性を有するスナップショットを作成することを含むことができる。このようなコンポーネントは、スナップショットプロセス中に実行している1つまたは複数の物理マシンボリュームの1つまたは複数の一貫性のあるスナップショット(または、ポイントインタイムイメージ)を作成することができる。
加えて、本発明の実装は、ボリュームディスクサービス(「VDS」)および/または関連コンポーネントの使用を含むことができる。一般に、VDS(または、関連コンポーネント)は、物理ディスク上でボリュームを作成および構成するためのプラットフォームを含む。さらに、本発明の実装は、「ディスクイメージャ(disk imager)」の使用、および、場合によっては、「イメージマウンタ(image mounter)」の使用を含む。通常、ディスクイメージャは、コピーするための開始位置およびバイト(または、バイトブロック)数が与えられると、物理ディスクまたはボリュームのブロック(または、バイトブロック)ベースのコピーを作成するように構成されたコンポーネントおよび/またはモジュールを含む。対照的に、イメージマウンタツールは、例えば、仮想ハードディスクファイルを入力として取り、この仮想ハードディスクファイルをファイルシステムにマウントして、このファイルを物理ディスクとしてエクスポーズするように構成された、1つまたは複数のコンポーネントおよび/またはモジュールを備える。他のいずれかの物理ディスクがオペレーティングシステムにとってアクセス可能である場合があるのと同様に、このエクスポーズされた物理ディスクをアクセス可能にすることができ、これには、データをそのボリュームに書き込ませる機能が含まれる。
本発明の実装はさらに、仮想マシンホストでの仮想ハードディスクファイル(「VHD」ファイル)の使用を含み、ここで、VHDファイルは、1つまたは複数の仮想マシン(「VM」)によって管理された(および、その内部でアクセス可能な)1つの物理ディスクおよび1つまたは複数の物理ディスクボリュームを備える。「仮想マシン」、「仮想マシンホスト」および「VHDファイル」という用語はいくつかのMICROSOFT環境で使用されるが、本明細書におけるMICROSOFTコンポーネント(および/またはWINDOWS(登録商標) SERVERコンポーネント)への言及は例示的でしかないことは理解されよう。具体的には、本明細書および特許請求の範囲を読んだ後、本明細書に記載されたコンポーネント、モジュール、および/またはメカニズムが、仮想マシンまたは関連するそのようなエンティティを実装する幅広い範囲の動作環境において見られ、実施されることが可能であることは理解されよう。
ここで、図1Aを参照すると、この図は、物理マシン105(例えば、パーソナルコンピュータ、物理サーバーなど)を、仮想マシンホスト110でホストされた仮想マシンに変換することができる、例示的なコンピュータ化された環境100の概略概観図を例示する。1つの基本的レベルでは、物理マシン(例えば、105)を仮想マシン(例えば、175、図1C)に変換することは、1つまたは複数の物理マシンボリューム(例えば、115)のスナップショットを取ること、仮想マシンハードディスクファイル(例えば、140)を仮想マシンホストで作成すること、スナップショットをVHDファイルへ転送すること、次いで、VHDファイルにおける1つまたは複数の転送されたスナップショットボリュームを仮想マシン(例えば、175)としてブート可能にすることを含むことができる。よって、この変換が効率的に起こるようにするために実装することができる、多数の異なる準備およびオペレーション後のプロセスがあることは理解できよう。
少なくとも一実装では、例えば、この変換プロセスを、物理マシン105の物理ディスク上の1つまたは複数のボリューム(例えば、ボリューム115)のスナップショットオペレーションを開始する、変換モジュール130(すなわち、マシン105および/またはホスト110における1つまたは複数のモジュールを含む場合がある)の使用を通じて開始することができる。一般に、変換モジュール130は、物理ディスクボリュームの一貫性のあるシャドウコピーを作成するために構成された、いずれかの適切なライタおよびリクエスタを備えることができる。上述したように、例えば、このようなライタおよびリクエスタを、ボリュームシャドウコピーサービスにおいて提供することができる。よって、例えば、変換モジュール130は、信号を物理ディスクの1つまたは複数のボリュームの各々(例えば、ボリューム115)におけるすべてのアプリケーションライタへ送信して、そのデータのスナップショットオペレーションを開始することによって、変換プロセスを開始することができる。図示のように、例えば、ボリューム115は、少なくともボリュームデータ125、ならびにブートレコード120を含む。
このメッセージを変換モジュール130から受信すると、ボリューム115における各アプリケーションライタは、そのメモリ内データを物理ディスクへフラッシュする、かつ/または、いずれかのファイルシステムまたはボリュームログをフリーズする可能性がある。アプリケーションライタを使用しないアプリケーションに対しては、変換モジュール130は、(例えば、デフォルトで、または、ユーザーまたはアドミニストレータからのコマンドにより)そのアプリケーションをシャットダウンするように命令し、それにより、スナップショット中に書き込みが行われないことを保証することができる。したがって、図1Aは、変換モジュール130が次いで、ボリューム115におけるすべてのボリュームデータの単一のポイントインタイムスナップショット(すなわち、コピー)を作成することができることを示す。例えば、図1Aは、変換モジュール130がボリューム115のスナップショット117(すなわち、「スナップショットボリューム」)を作成しており、スナップショット117はこの場合、ボリュームデータ127およびブートレコード120を備えることを示す。
スナップショットを取るか、またはスナップショット(およびコピー)オペレーションを行うときに、データが効率的にコピーかつ転送されることを保証するために、多数の最適化を行うことができることは理解されよう。例えば、変換モジュール130は、ボリューム115のどの部分が使用中である(すなわち、データを含む)か、および、どの部分が空いているかを識別することができる。よって、スナップショットオペレーションを、ボリューム全体または物理ディスク全体ではなく、ボリュームまたは物理ディスクの使用済み部分のコピーのみを行うように構成することができる。加えて、スナップショットオペレーションをさらに、仮想化された環境においてそれほど有用でない(または、まったく有用でない)可能性のある、特定のファイルを回避するように構成することができる。
具体的には、例えば、スナップショットオペレーションはさらに、ボリューム差分(diff)エリア、ページファイル、不良クラスタ、ハイバネーションファイルなどに含まれるようなファイルを識別するように構成されてもよい。よって、スナップショット117を作成するか、またはバイトブロック転送を行うとき、これらのファイルを回避し、さらに、仮想マシンホスト110へ転送する必要のあるデータ量を減らすことができる。これらのタイプのファイルおよび最適化は、幅広い種類の動作環境において、他のタイプのファイル、使用済みまたは空き領域計算などのために容易に変更できることは、理解されよう。
いずれにしても、また説明のため、スナップショット117におけるデータ127は、主としてスナップショットオペレーション中(および/または、その後の)時間における変化のため、通常、ボリューム115における元のデータ125とは異なるようになる。例えば、物理マシン105はスナップショットオペレーション中になお実行中であるため、ユーザーが特定のアプリケーションデータへの書き込みを作成し続けている場合など、ボリュームデータ125は変化し続ける可能性がある。よって、ボリュームデータ127(すなわち、「ボリュームデータ127」)は、ボリューム115におけるデータ125の、以前の一貫性のあるポイントインタイムを表し、これは本質的に、変換モジュール130がスナップショットプロセスを開始したポイントインタイムである。
それにもかかわらず、図1Aはまた、ブートレコード120がスナップショット117において、ボリューム115の実行中データがある状態と同じであることも示す。すなわち、ブートレコード(例えば、120)はスナップショットプロセス中に変化する可能性が低く、これは、アプリケーションが典型的にはブートレコードへのアクセスを有していないからであることは理解されよう。具体的には、ブートレコードは通常、オペレーティングシステムによって変更されるが、仮にそうであっても、典型的にはまれなことである。したがって、図1Aは、この場合のブートレコード120がスナップショットオペレーション前の状態と同じであることを示す。
スナップショット117の作成前、作成中、または作成直後、変換モジュール130はまた、1つまたは複数の仮想ハードディスク(「VHD」)ファイル140を、物理マシン105の物理ディスク(図示せず)に対応する仮想マシンホスト110でセットアップすることもできる。例えば、図1Aは、変換モジュール130が、書き込み可能な仮想ハードディスクファイル140を作成するためのメッセージ150を送信することを示す。一実装では、これにはまた、最初に、特定の固定サイズのVHDファイル(例えば、140)を作成するためのメッセージを送信し、次いで、VHDファイルを書き込み可能にするための別のメッセージを送信することが含まれる場合もある。(変換モジュール130はまた、(書き込み可能、またはそうでない)動的サイズのVHDファイルを作成するためのメッセージを送信することもでき、このVHDファイルはデータの追加によりサイズが増大する。)
通常、各VHDファイルを、コンピュータシステムの単一物理ディスクに対応するように構成することができ、物理ディスク内の各ボリュームを、新たに作成されたVHDファイルにおいて同じやり方で表すことができる。しかし、VHDファイルは、場合によっては、物理ディスク全体ではなく、単一ボリュームを表す場合がある。それにもかかわらず、物理ディスクが複数のボリュームを有する(単一ボリューム115のみが図示されるが)、物理ディスクの実施例では、新しいVHDはまた、複数のボリュームに対応するデータを含むこともできる。言うまでもなく、この点では多少の柔軟性がある。例えば、物理マシン105のユーザーが、複数のパーティション(および/または、ミラー化ボリュームなど)に散在するボリュームを有した場合、このユーザーは、ただ1つのパーティションを宛先仮想ハードディスクファイルにおけるスナップショットデータ専用にすることを決定する可能性がある。同様に、このユーザーは、複数のボリュームを備える物理ディスクの1つのボリュームのみを仮想ハードディスクファイルへ転送することを決定する可能性がある。
よって、VHDファイルのサイズは通常、少なくとも、転送されたソース(例えば、物理ディスク、具体的には、物理ディスクボリューム、物理ディスク内のデータなど)のデータに対して必要とされる可能性のある大きさのサイズとなる。したがって、本明細書の技術をまたさらに、既存の仮想マシンをより大きいストレージ領域に複製する場合にも使用することができることは理解されよう。例えば、アドミニストレータは、仮想マシンのボリュームストレージ容量が減少していることを確認すると、追加のより大きいVHDファイルを作成し、仮想マシンデータのスナップショットを取り、すでに上述した同じプロセスを用いてそのスナップショットデータを新しいVHDファイルへ転送する(例えば、コピーする)ことによって、この仮想マシンを本質的に「再仮想化」することができる。
よって、本発明の実装は、「物理−仮想」マシン変換のみでなく、「仮想−仮想」マシン変換をも含む。具体的には、また、状況によっては、本発明の実装をまた、より一般には、「マシン」から「仮想マシン」への変換と呼ぶこともできる。すなわち、「マシン」は、「物理」コンピュータシステム(例えば、関連したハードウェアおよびオペレーティングシステムを有するデスクトップコンピュータ)および「仮想」コンピュータシステム(例えば、仮想マシンホストで固有のコンピュータシステムとしてインストールされたコンピュータシステム)の両方を含むものとして理解することができる。
いずれにしても、仮想ハードディスクファイル140を作成すると、変換モジュール130はファイル140を物理ディスクとしてマウントし、例えば、ネットワーク通信を通じて、ファイル140がスナップショット117のデータを受信することができるようにする。(本明細書に記載の実装によっては、マウントすることが必要でさえない場合があることは理解されよう。)よって、図1Aはまた、変換モジュール130が、仮想ハードディスクファイル140をマウントするためのメッセージ155を送信することも示す。追加の実装または代替の実装では、メッセージ155は、VHDファイル140を、仮想マシンホスト110、変換中の物理マシン105上、または、VHDファイル140がマウントされるマシンと変換中の物理マシン(すなわち、この場合は105)の間にネットワーク接続性があるいずれかの場所のうち、いずれかにマウントするための命令を含む場合がある。
ファイル140をマウントする部分には、このファイルを、物理ディスクのデバイスIDなど、1つまたは複数のデバイス識別子に関連付けることが含まれる場合がある。例えば、仮想マシンホスト110に、仮想ハードディスクファイル140を、「\\.\device\Harddisk145\.」のようなドライブパスを通じて識別可能であるようにマウントするように命令することができる。具体的には、図1Bは、VHD140が「ディスクドライブ145」として識別可能であることを示す。同じような仕方で、変換モジュール130はまた、各スナップショット(例えば、117)のデバイス識別子(および/または、例えば、マウントポイント)を識別することもできる。最終的に、変換モジュール130は、いずれかのスナップショットについて、かつ、いずれかの対応するVHDファイルについて識別されたデバイス識別子を使用して、スナップショットの内容を転送することができる。
通常、変換モジュール130はスナップショット117の内容を、いずれかの数のデータ転送メカニズムを使用して転送することができる。一実装では、例えば、変換モジュール130はスナップショット117をバイトごとにファイル140へ、ディスクドライブ145を通じて転送することができる。追加または代替実装では、しかし、変換モジュール130は、「バイトブロック」を識別かつ転送することによって、スナップショット117をファイル140へ転送することができる。一般に、バイトブロックは、個々のバイトの(いずれかの任意のサイズの)固定シーケンスを備える。少なくとも一実装では、個々のバイトではなく、バイトブロックを転送することにより、ネットワークを介してスナップショット117を転送可能な速度が劇的に増す可能性がある。
例えば、従来のネットワーク転送プロトコルを介して仮想マシンホスト110へ転送するために、通常では数時間もかかる場合がある数ギガバイトのデータを、場合によっては、バイトブロック転送メカニズムにより、数分のみで転送することができる。いずれにしても、図1Bは、変換モジュール130がこの場合はバイト(または、バイトブロック)「160」、「160」などを転送し、これらのバイト/バイトブロックを直接、書き込み可能な仮想ハードディスクファイル140へ、ディスクドライブ145を通じて転送することを示す。図1Bに示すように、仮想ハードディスクファイル140はブートデータ120のすべてを有することができ、データ転送が完了すると、スナップショット117で取り込まれた他のボリュームデータ127を含むようになる。
データ転送にもかかわらず、仮想ハードディスクファイル140は必ずしも仮想マシンホスト110でブート可能ではない場合があり、これは、ブートデータおよびドライバが仮想マシンホスト110との関連において有用である可能性が低いからである。この理由の1つは、仮想マシン環境(および/または、仮想マシンホスト110内)に存在する「仮想ハードウェア」が物理マシン105用のハードウェアと同じものでない可能性があることである。例えば、物理マシン105におけるカーネルおよびハードウェアアブストラクションレイヤ(「HAL」)のようなコンポーネントは、例えば、デュアルプロセッサシステムに基づく場合がある。加えて、仮想マシンホスト110は、異なるネットワークカードドライバ、プロセッサアーキテクチャ、物理ディスク(例えば、マシンに取り付けられたストレージ)、物理ディスク識別子、オペレーティングシステムドライバ、およびディスクドライバを、ホストされた仮想マシンへエミュレートすることができ、これらは、そうでなければ、変換中のソースマシン(例えば、物理マシン105)で見つからない可能性がある。このような違いはまた、物理ディスクボリュームを仮想ホスト内から仮想マシンへ変換する場合に存在する可能性も高い。
結果として、転送されたブートデータ120は、仮想マシンホスト110における適切な仮想化された環境内で必ずしも適用されるとは限らない、物理マシン105におけるオペレーティングシステム特性に基づく可能性がある。これらおよび他の理由は、アドミニストレータが特定の動作環境に応じて多数の異なる修正を行う必要がある場合があることを意味する。したがって、変換モジュール130はまた、仮想ハードディスクファイル140を、仮想マシンホスト110でブート可能になるように修正することもできる。これには、場合によっては、作成する仮想マシンについて、カーネルおよびHAL、および、他のドライバおよびレジストリ設定を、スナップショットデータに基づいて更新するための命令が含まれる場合がある。
よって、例えば、図1Cは、変換モジュール130がまた、リクエスト165および対応する引数を仮想マシンホスト110へ送信して、動作情報の修正をも行うことを示す。(場合によっては、仮想マシンの動作情報(例えば、ブートセクタおよびレジストリ情報)に対するこれらの修正が、(VHDファイル内部に転送される前に)物理マシンで行われる場合さえもある。)一実装では、これには、変換モジュール130がボリュームスナップショット117のブートレコードを検査し、以前に転送されたブートデータ120を、仮想マシンの新しいディスクおよびボリュームコンフィギュレーションに基づいた新しいブート情報(例えば、修正されたブート情報、または、最初から新しいブート情報)に置換することが含まれる場合がある。別のステップでは、変換モジュール130はまた、ボリュームスナップショット117の転送されたレジストリ情報(図示せず)を検査し、転送されたレジストリ情報を、仮想マシンホスト110上に存在する新しいハードウェアおよびドライバに基づいて、仮想マシン110にとって適切な方法で更新することもできる。
このような更新にはまた、カーネルおよびHALドライバなど、システムバイナリを、マルチプロセッサからシングルプロセッサハードウェアコンフィギュレーションへ変更することが含まれる場合がある。加えて、このような更新には、仮想マシンホスト110に固有のコンピュータおよびドライブ識別情報の追加、仮想マシンホスト110に固有のいずれかの適切なディスクまたはファイルドライバの追加、ならびに、適切なネットワークドライバ、ストレージドライバなどに適合するようにレジストリ情報を変更することが含まれる場合がある。このような更新にはさらに、物理デバイス用のドライバを仮想デバイス用のドライバに置換すること、仮想環境において対応する仮想デバイスがないハードウェア用のドライバを無効化すること、および、仮想環境において対応する仮想デバイスがないデバイスに依存するサービスおよびアプリケーションを無効化することが含まれる場合がある。
加えて、変換モジュール130はさらに、所期の仮想マシン(例えば、175)用のこれらおよび/または他の適切なコンフィギュレーション値を作成し、結果として生じる仮想マシン(例えば、175)が元の物理マシン105と同じ基本設定(例えば、メモリ、CPUなど)で動作するようにすることができる。このような仕方で、仮想マシンホスト110のアドミニストレータはまた(あるいは別法として)、結果として生じる仮想マシン用のこれらの基本設定を修正してもよい。さらに、アドミニストレータは、このような動作情報(すなわち、コンフィギュレーション値、基本設定など)をさらに最初から構築してもよい。いずれにしても、多数のエンティティがいかなる数の構成変更をも適切にして、結果として生じる仮想マシンがブート可能であり、かつ、仮想マシンの常駐場所(例えば、仮想マシンホスト110)で正しく動作するようになることを保証することができることは理解されよう。
適切なブートレコード(すなわち、120から123へ)、システムレジストリ情報、ドライバ情報、および/または、他のコンフィギュレーションまたは基本設定情報を適切に修正/作成した後、変換モジュール130は次いで、仮想ハードディスクファイル140のマウントを解除(すなわち、「アンマウント」)し、もはやドライブとしてアクセス可能ではないようにすることができる。例えば、図1Cは、変換モジュール130がメッセージ170を仮想マシンホスト110へ送信し、仮想マシンホスト110に対して、仮想ハードディスクファイル140のマウントを解除するように命令することを示す。このマウントを解除した後、仮想ハードディスクファイル140を仮想マシン175として使用することができ、そのデータは本質的に、スナップショットオペレーションが開始された時点のボリューム115のデータに等しい。
具体的には、新しい仮想マシン175によって管理されたボリューム内のデータは、あらゆる適切な点で一貫性がある(例えば、アプリケーションとの一貫性を有する、ファイルシステムとの一貫性を有する、かつ/または、クラッシュとの一貫性を有する、など)。結果として、物理マシン105の前のユーザーはこのとき、仮想マシンホスト110で仮想マシン175をブートし、ちょうどユーザーが物理マシン105を使用していたかのように(あるいは、そうであった場合よりも最適に)仮想マシンを使用する(前のデータへのアクセスを含む)ことができるようになる。加えて、VHDファイルが通常はポータブルとなる可能性があることは理解されよう。例えば、エンドユーザーは、仮想マシン175を、少なくとも一実装において所望のいずれかのロケーション(すなわち、別の仮想マシンホスト)へ転送することを、単に、仮想マシン175に関連する仮想マシンファイル(例えば、VHDファイルなど)をその所望のロケーションへ転送し、いずれかの必要な動作情報更新を行うことによって、行うことができる。
別の実装では、1つまたは複数のVHDファイル(例えば、140)を物理マシン105自体で作成し、次いで、適切な仮想マシンホスト(例えば、110)へ送信/転送することさえできる。例えば、物理マシン105のユーザーはVHDファイル(例えば、140)をその物理マシンで作成し、スナップショットの内容をその物理マシンにおいて関心のあるデータのためのVHDファイルへ転送することができる。これは、ユーザーが望むなら、VHDファイルのマウントを(すなわち、仮想マシンホスト110において)回避することができる、少なくとも1つの方法である。いずれにしても、ユーザーは次いで、VHDファイルおよび対応するスナップショットの内容を適切な宛先(例えば、仮想マシンホスト110)へ送信/転送し、その宛先で対応する動作情報を変更することができる。別法として、ユーザーは、ソース(例えば、物理マシン105)におけるVHDファイルおよびスナップショットの内容についての動作情報を、VHDファイルおよびスナップショットの内容を新しい宛先へ向けて送信する前に、さらに変更してもよい。
場合によっては、VHD「ファイル」を作成するのではなく、そのようなものとして、メモリから、物理マシン105で作成されたスナップショットデータおよびVHDメタデータを、トランスポートに有効な部分(例えば、バイトブロック)においてストリームするように、モジュール(例えば、変換モジュール130)を構成することができる。ストリームされるデータをまた、適切なVHDフォーマット/コンテンツ仕様に従って、VHDフォーマットでフォーマットすることもできる。よって、宛先(例えば、仮想マシンホスト110)へ転送された後、このストリームを次いでVHDファイルとしてセーブすることができ、これは、ストリームされたデータがVHDフォーマットで生成されたからである。これは、VHDファイルのマウントを回避するための、さらにもう1つの方法である。
したがって、図1Aから図1Cは、物理マシンボリュームデータのスナップショットを作成し、そのデータから新しい仮想マシンを作成するための、本発明の実装によって使用することができる、多数の概観概略およびコンポーネントを例示する。前述に加えて、本発明の実装をまた、特定の結果を達成するための1つまたは複数の動作を備える方法のフローチャートに関して説明することもできる。例えば、図2は、物理マシンまたは異なる仮想マシンなどのマシンを仮想マシンに変換するための物理マシン105および仮想マシンホスト110の観点からの方法のフローチャートを例示する。図2の方法を、図1Aないし図1Cのメカニズムにおけるコンポーネントに関して、以下で説明する。
例えば、図2は、1つまたは複数の物理マシンボリュームにおいて大幅なダウンタイムを招くことなく、物理マシンを仮想マシンホストにおける仮想マシンへ変換する物理マシン105の観点からの方法が、物理マシンのハードウェアコンフィギュレーションを識別する動作200を備えることができることを示す。動作200は、マシンの1つまたは複数のボリュームについての1つまたは複数のハードウェアコンフィギュレーション設定を識別することを含む。例えば、図1Aは変換モジュール130を示し、これは、スナップショットプロセスの開始に先立って、ボリューム115におけるハードウェア(および/またはソフトウェア)コンフィギュレーション設定を識別することができる。これには、ブートレコード120およびボリュームデータ125を、物理マシン105でボリューム115上に存在するものとして識別することが含まれる場合があり、さらに、データがマルチプロセッサ環境向けに構成されるかどうか、オペレーティングシステムによりサポートされたファイルにおける非互換性、考慮する必要のあるストレージおよびネットワークドライバがあるかどうかなどを識別することが含まれる場合がある。
加えて、図2は、物理マシン105の観点からのこの方法が、1つまたは複数のボリュームのスナップショットを作成する動作210を備えることができることを示す。動作210は、1つまたは複数のマシンボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成することを含む。例えば、図1Aは、変換モジュール130がボリューム115のスナップショット117を作成することを示し、これには、以前と同じブートレコード120、ならびにボリュームデータ127が含まれる。少なくとも一実装では、変換モジュール130は、ボリューム115において、使用可能な場合は、ライタに含まれたスナップショットプロセスを呼び出すことができ、あるいは、このようなライタが使用可能でない場合は単にアプリケーション(または、他の書き込みプロセス)をシャットダウンすることができる。結果として、スナップショット117内のデータがスナップショットプロセス後に、時間内に単一インスタンスについて一貫する(例えば、アプリケーションとの一貫性を有する)ことを保証することができる。
図2はまた、物理マシン105の観点からのこの方法が、スナップショットを、マウントされた仮想ディスクファイルへ送信する動作220を備えることができることを示す。動作220は、1つまたは複数の一貫性のあるスナップショットを、マウントされた仮想ハードディスクファイルへ送信することを含む。例えば、変換モジュール130は、物理マシン105で取られた各スナップショットのためのデバイス識別子を検索し、さらに、仮想マシンホスト110にマウントされた各仮想ハードディスクファイルのためのいかなるデバイス識別子をも検索する。適切なデバイス識別子を検索すると、図1Bは、変換モジュール130が、バイト(または、バイトブロック)転送/コピーメカニズムを使用するなどして、スナップショット117のボリュームデータ127を仮想ハードディスクファイル140へ転送することができることを示す。
図2はさらに、物理マシン105の観点からのこの方法が、ブートレコードを、マウントされた仮想ディスクファイルへ送信する動作230を備えることができることを示す。動作230は、1つまたは複数の一貫性のあるスナップショットのためのブートレコードを、マウントされた仮想ハードディスクファイルへ送信し、1つまたは複数の一貫性のあるスナップショットのためのブートレコードを仮想マシンホストで修正することができるようにすることを含む。例えば、図1Bは、変換モジュール130がまたブートデータ120をも仮想ハードディスクファイル140へ送信することを示す。図1Cはまた、変換モジュール130が、ブートレコード120をレコード123に修正して、ブートレコード123が仮想マシンホスト110の動作環境に対して一貫するようにするためのメッセージ165を送信することができることも示す。一実装では、新しい仮想マシンのための新しいブートレコードを、単に送信および修正するのではなく、単に最初から作成することができる。
前述に加えて、図2は、仮想マシンホスト110の観点からの、1つまたは複数のマシンボリュームにおいて大幅なダウンタイムを招くことなく、マシン(すなわち、物理マシンまたは前の仮想マシン)を仮想マシンホストにおける仮想マシンへ変換する方法が、仮想ハードディスクファイルを作成する動作240を備えることができることを示す。動作240は、ファイルサイズを有する仮想ハードディスクファイルを作成することを含む。例えば、図1Aは、仮想マシンホスト110が、書き込み可能な仮想ハードディスクファイルを作成するように仮想マシンホスト110に命令するメッセージ150、ならびに、新しい仮想ハードディスクファイルを書き込み可能にするための命令を受信することを示す。これに応じて、仮想マシンホスト110は仮想ハードディスクファイル140を作成し、これを書き込み可能にする。上述したように、本明細書では、仮想ハードディスクファイルサイズを静的または動的にすることができる。例えば、仮想ハードディスクファイル140は、50ギガバイトのボリューム115データを収容するために、100ギガバイトに設定される場合がある。別法として、変換モジュール130は、仮想ハードディスクファイル140を、追加のデータ転送に伴い、動的に大きくなるように設定する。
図2はまた、仮想マシンホスト110の観点からのこの方法が、仮想ハードディスクファイルをマウントする動作250を備えることができることも示す。動作250は、仮想マシンホストにおいて仮想ハードディスクファイルをマウントし、仮想ハードディスクファイルがアクセス可能な物理ディスクとして見えるようにすることを含む。例えば、図1Aは、仮想マシンホスト110が、仮想ハードディスクファイル140をマウントするためのリクエスト155を受信することを示す。一実装では、仮想マシンホスト110は、ファイル140を特定のデバイス識別子に関連付けるように、次いで、その識別子を物理デバイスとしてマウントするように、命令される場合がある。仮想ハードディスクファイル140は次いで、ディスクデバイス145として見なされ、アクセスされることが可能である。
加えて、仮想マシンホスト110の観点からのこの方法は、1つまたは複数のスナップショットを受信する動作260を備えることができる。動作260は、1つまたは複数の物理マシンボリュームに対応する1つまたは複数の一貫性のあるスナップショットのデータを受信することを含む。例えば、図1Bに示すように、仮想マシンホスト110は、いずれかの適切な転送メカニズムの使用を通じて(すなわち、いずれかのネットワーク転送プロトコルにおいて、バイトごとか、バイトブロックごとか、などにかかわらず)、ボリュームデータ127およびブートデータ120を受信する。
さらに、図2は、仮想マシンホスト110の観点からのこの方法が、ブートレコードを修正する動作270を備えることができることを示す。動作270は、1つまたは複数の一貫性のあるスナップショットについての動作情報を修正し、1つまたは複数の一貫性のあるスナップショットが仮想マシンホストにおけるオペレーティングシステムにとって適切であるようにすることを含む。図1Cに示すように、例えば、仮想マシンホスト110は動作情報を修正するためのメッセージ165を受信する。例えば、メッセージ165は、適切な仮想マシンホスト110基準を識別するための1つまたは複数のリクエスト、および、ブートデータ120をブートデータ123へ適切な方法で変更することを含むことができる。メッセージ165(または、図示しない別のメッセージ)にはまた、レジストリ、および、または動作基本設定情報を変更するための1つまたは複数のリクエストが含まれる場合もある。
動作特性のこのような変更には、例えば、いずれかの数のハードウェアおよびオペレーティングシステムコンフィギュレーション(例えば、プロセッサの数、ハードウェアドライバ、ディスクドライバ/識別子およびストレージドライバ/識別子、ネットワークドライバなど)が含まれる場合がある。このような変更では、仮想マシンの新しいオペレーティングシステムが仮想環境に対して互換性を有し、適切に機能していることを保証するように考慮する必要がある場合がある。動作特性の変更にはさらに、ドライバおよび他のハードウェアの使用、バイナリにおいて置換および/または登録中であるドライバの識別、カーネルおよび/またはHAL情報の更新など、さまざまなレジストリ操作が含まれる場合がある。動作特性の変更にはなお、さらに、メモリおよび/またはCPU要件についてのものなど、仮想マシンについてのさまざまなコンフィギュレーション基本設定が含まれる場合がある。
加えて、図2は、仮想マシンホスト110の観点からのこの方法が、仮想ハードディスクファイルのマウントを解除する動作280を備えることができることを示す。動作280は、ハードディスクファイルのマウントを解除し、仮想ハードディスクファイルが物理ディスクとしてアクセスできないようにすることを含む。例えば、仮想マシンホスト110はメッセージ170を受信し、これは、仮想マシンホスト110が仮想ハードディスクファイル140のマウントを解除することを要求するものである。仮想マシンホスト110は次いで、仮想ハードディスクファイルをアンマウントし、ファイル140がローカルに、あるいはネットワークを介して、ホストレベルのディスクドライブとしてもはやアクセスできないようにすることができる。結果として、仮想ディスクファイル140を仮想マシン175としてブートすることができ、これは、時間内に単一インスタンスについて一貫性があり、かつ、仮想マシンホスト110で動作する準備ができているデータを含む。具体的には、また、エンドユーザーの観点から、仮想マシン175は、ほぼあらゆる点から見て、スナップショットオペレーションより前の物理マシン105の、本質的に同一の形態(すなわち、同じデータ、またはそのデータサブセット)である。
したがって、図1Aから図1Cおよび図2は、マシン(例えば、物理マシンまたは前の仮想マシン)を仮想マシンに効率的に変換するための多数のコンポーネントおよびメカニズムを提供する。具体的には、これらの図および対応するテキストでは、変換中のマシンを必ずしもリブートすることなく、かつ/または、必ずしもADSまたはPXE環境にリブートする必要なしに、どのように本発明の実装を少なくとも1つの点において実施することができるかを説明している。したがって、前述のコンポーネントおよびメカニズムにより、物理マシンを比較的高速に、従来のディスクおよびネットワーク転送速度などで、作成可能となる。
本明細書で上述したように、本発明の実装を、幅広い範囲の最適化、および、幅広い範囲のハードウェアおよびオペレーティングシステム環境に合わせて、変更あるいは修正することができることは理解されよう。例えば、本発明の実装を、いかなるタイプのマシンの、新しい仮想マシンへの変換にも容易に適用することができる。以前の仮想マシンについて、例えば、ユーザーは、そのボリュームがすでに使い切られている可能性のある仮想マシン用に、より大きいストレージ領域の作成を望む場合がある。したがって、ユーザーは、以前の仮想マシンの以前のVHDファイルより大きい1つまたは複数のVHDファイルを作成し、前の仮想マシンデータのスナップショットを取り、この仮想マシンのスナップショットデータを、より大きいVHDファイルへ転送することもありうる。なお、さらに、本明細書に記載した変換プロセスをさらに、明記したステップ以外の複数の独立ステップに分けることができる。例えば、ユーザーが、ボリュームイメージをターゲットマシンに転送する方法を有する場合、このユーザーは単にフィックスアップ(fix−up)オペレーションを呼び出して、このイメージを「仮想化」するなどし、このイメージがターゲットマシンでブート可能であるようにすることができる。
前述に加えて、本発明の実装をまた幅広い範囲のディスクコンフィギュレーションにも適用することができることは、容易に理解されよう。例えば、マシンボリューム115がインストールされる物理ディスクは、オペレーティングシステムにおけるいかなる1つまたは複数のベーシックまたはダイナミックディスクであってもよく、さらに、さまざまなパーティションおよび/またはボリュームを有する場合がある。それにもかかわらず、本明細書に記載したプロシージャ、コンポーネントおよびメカニズムを、仮想マシンにおいて、ちょうどそれらが前のマシン(例えば、物理マシンまたは以前の仮想マシン)においてそうであったように、このような変形形態に適用することができる。具体的には、新しい仮想マシンが、ちょうど以前にベーシックまたはダイナミックディスク特性で動作していたように動作するように、物理ダイナミックまたはベーシックディスクに関連する特性を仮想マシンホストへ転送することができる。したがって、本明細書に記載したコンポーネント、モジュールおよびメカニズムを幅広く適用して、前のマシンから、前のマシンの新たに仮想化された形態へのシームレスな移行を保証することができる。
本発明の実施形態は、以下でより詳細に論じるような、さまざまなコンピュータハードウェアを含む専用または汎用コンピュータを備える場合がある。本発明の範囲内の実施形態はまた、コンピュータ実行可能命令またはデータ構造を搬送または格納するためのコンピュータ可読媒体をも含む。このようなコンピュータ可読媒体は、汎用または専用コンピュータによってアクセスすることができる、いかなる使用可能な媒体にすることもできる。
限定ではなく例として、このようなコンピュータ可読媒体には、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または、所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形態において搬送または格納するために使用することができ、かつ、汎用または専用コンピュータによってアクセスできる、他のいかなる媒体もが含まれる場合がある。ネットワークまたは別の通信接続(ハードワイヤード、ワイヤレス、または、ハードワイヤードまたはワイヤレスの組み合わせのいずれか)を介して情報がコンピュータへ転送または提供される場合、このコンピュータは適切にこの接続をコンピュータ可読媒体と見なす。よって、このようないかなる接続も適切にコンピュータ可読媒体と称される。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータまたは専用処理デバイスに、特定の機能または機能のグループを行わせる、命令およびデータを備える。対象を構造的特徴および/または方法的動作に特有の言語において説明したが、添付の特許請求の範囲で定義された対象が必ずしも上述の特定の特徴または動作に限定されないことを理解されたい。むしろ、上述の特定の特徴および動作は、特許請求の範囲を実施する実施例の形態として開示される。
本発明は、他の特定の形態において、その精神または本質的特徴から逸脱することなく、実施することができる。上記の実施形態は、あらゆる点で例示的なものでしかなく、限定的ではないと見なされるものである。本発明の範囲は、したがって、前述の記載によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲と等価の意味および範囲に入るすべての変更は、その範囲内に含まれるものである。
100 コンピュータ化された環境
105 物理マシン
110 仮想マシンホスト
130 変換モジュール

Claims (15)

  1. マシンを仮想マシンへ変換する方法であって、
    マシンの1つまたは複数のボリュームについての1つまたは複数のハードウェアコンフィギュレーション設定を識別するステップと、
    前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップと、
    前記1つまたは複数の一貫性のあるスナップショットを、マウントされた仮想ハードディスクファイルへ送信するステップと、
    前記1つまたは複数の一貫性のあるスナップショットのためのブートレコードを、前記マウントされた仮想ハードディスクファイルへ送信し、前記1つまたは複数の一貫性のあるスナップショットのための前記ブートレコードを仮想マシンホストで修正することができるようにするステップと
    を含むことを特徴とする方法。
  2. 前記仮想マシンホストは、1つまたは複数の仮想マシンのホストとなるように構成されることを特徴とする請求項1に記載の方法。
  3. 前記スナップショットは、該スナップショットが前記仮想マシンにおいてオペレーティングシステムで使用できるように、前記仮想マシンホストにおいて修正できることを特徴とする請求項1に記載の方法。
  4. 前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップは、前記マシンの1つまたは複数のボリュームがアクティブである間、前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記マシンの1つまたは複数のボリュームは、ダイナミック物理ディスク上にインストールされた複数のマシンボリュームを含むことを特徴とする請求項1に記載の方法。
  6. 少なくとも1つのプロセッサにより実行されたとき、マシンを仮想マシンへ変換する方法を実行するコンピュータ実行可能命令をコード化するコンピュータ読取可能な記録媒体であって、前記方法は、
    マシンの1つまたは複数のボリュームについての1つまたは複数のハードウェアコンフィギュレーション設定を識別するステップと、
    前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップと、
    前記1つまたは複数の一貫性のあるスナップショットを、マウントされた仮想ハードディスクファイルへ送信するステップと、
    前記1つまたは複数の一貫性のあるスナップショットのためのブートレコードを、前記マウントされた仮想ハードディスクファイルへ送信し、前記1つまたは複数の一貫性のあるスナップショットのための前記ブートレコードを仮想マシンホストで修正することができるようにするステップと
    を含むことを特徴とするコンピュータ読取可能記録媒体。
  7. 前記仮想マシンホストは、1つまたは複数の仮想マシンのホストとなるように構成されることを特徴とする請求項6に記載のコンピュータ読取可能記録媒体。
  8. 前記スナップショットは、該スナップショットが前記仮想マシンにおいてオペレーティングシステムで使用できるように、前記仮想マシンホストにおいて修正できることを特徴とする請求項6に記載のコンピュータ読取可能記録媒体。
  9. 前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップは、前記マシンの1つまたは複数のボリュームがアクティブである間、前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップを含むことを特徴とする請求項6に記載のコンピュータ読取可能記録媒体。
  10. 前記マシンの1つまたは複数のボリュームは、ダイナミック物理ディスク上にインストールされた複数のマシンボリュームを含むことを特徴とする請求項6に記載のコンピュータ読取可能記録媒体。
  11. 1つまたは複数のプロセッサと、
    前記1つまたは複数のメモリに結合されたメモリと
    を備えたコンピュータシステムであって、前記メモリは、前記1つまたは複数のプロセッサにより実行されたとき、該1つまたは複数のプロセッサに、マシンを仮想マシンへ変換する方法を実行させる命令を記録し、前記方法は、
    マシンの1つまたは複数のボリュームについての1つまたは複数のハードウェアコンフィギュレーション設定を識別するステップと、
    前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップと、
    前記1つまたは複数の一貫性のあるスナップショットを、マウントされた仮想ハードディスクファイルへ送信するステップと、
    前記1つまたは複数の一貫性のあるスナップショットのためのブートレコードを、前記マウントされた仮想ハードディスクファイルへ送信し、前記1つまたは複数の一貫性のあるスナップショットのための前記ブートレコードを仮想マシンホストで修正することができるようにするステップと
    を含むことを特徴とするコンピュータシステム。
  12. 前記仮想マシンホストは、1つまたは複数の仮想マシンのホストとなるように構成されることを特徴とする請求項11に記載のコンピュータシステム。
  13. 前記スナップショットは、該スナップショットが前記仮想マシンにおいてオペレーティングシステムで使用できるように、前記仮想マシンホストにおいて修正できることを特徴とする請求項11に記載のコンピュータシステム。
  14. 前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップは、前記マシンの1つまたは複数のボリュームがアクティブである間、前記マシンの1つまたは複数のボリュームに対応する1つまたは複数の一貫性のあるスナップショットを作成するステップを含むことを特徴とする請求項11に記載のコンピュータシステム。
  15. 前記マシンの1つまたは複数のボリュームは、ダイナミック物理ディスク上にインストールされた複数のマシンボリュームを含むことを特徴とする請求項11に記載のコンピュータシステム。
JP2012115974A 2006-05-08 2012-05-21 マシンから仮想マシンへの変換 Active JP5496254B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/430,676 2006-05-08
US11/430,676 US7653794B2 (en) 2006-05-08 2006-05-08 Converting physical machines to virtual machines

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009509559A Division JP5026509B2 (ja) 2006-05-08 2007-03-08 マシンから仮想マシンへの変換

Publications (2)

Publication Number Publication Date
JP2012155768A true JP2012155768A (ja) 2012-08-16
JP5496254B2 JP5496254B2 (ja) 2014-05-21

Family

ID=38662463

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009509559A Active JP5026509B2 (ja) 2006-05-08 2007-03-08 マシンから仮想マシンへの変換
JP2012115974A Active JP5496254B2 (ja) 2006-05-08 2012-05-21 マシンから仮想マシンへの変換

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009509559A Active JP5026509B2 (ja) 2006-05-08 2007-03-08 マシンから仮想マシンへの変換

Country Status (18)

Country Link
US (1) US7653794B2 (ja)
EP (1) EP2021939B1 (ja)
JP (2) JP5026509B2 (ja)
KR (2) KR101465928B1 (ja)
CN (2) CN102541658B (ja)
AU (1) AU2007248886B2 (ja)
BR (1) BRPI0711336A8 (ja)
CA (1) CA2648761C (ja)
ES (1) ES2632512T3 (ja)
HK (1) HK1172718A1 (ja)
IL (2) IL194679A (ja)
MX (1) MX2008014244A (ja)
MY (1) MY149997A (ja)
NO (1) NO342885B1 (ja)
RU (2) RU2446450C2 (ja)
TW (2) TWI547875B (ja)
WO (1) WO2007130209A1 (ja)
ZA (1) ZA200808579B (ja)

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US8347063B2 (en) * 2005-08-19 2013-01-01 Intel Corporation Method and system for device address translation for virtualization
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US8087075B2 (en) * 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
US8577940B2 (en) * 2006-03-20 2013-11-05 Parallels IP Holdings GmbH Managing computer file system using file system trees
US8321377B2 (en) 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US7617373B2 (en) * 2006-05-23 2009-11-10 International Business Machines Corporation Apparatus, system, and method for presenting a storage volume as a virtual volume
US8429712B2 (en) * 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US7689859B2 (en) * 2006-12-20 2010-03-30 Symantec Operating Corporation Backup system and method
US8656386B1 (en) * 2007-03-13 2014-02-18 Parallels IP Holdings GmbH Method to share identical files in a common area for virtual machines having the same operating system version and using a copy on write to place a copy of the shared identical file in a private area of the corresponding virtual machine when a virtual machine attempts to modify the shared identical file
EP2137629A4 (en) * 2007-03-20 2010-12-29 Sanggyu Lee MOBILE VIRTUAL MACHINE IMAGE
US20080235361A1 (en) * 2007-03-21 2008-09-25 David Crosbie Management layer method and apparatus for dynamic assignment of users to computer resources
US8566502B2 (en) * 2008-05-29 2013-10-22 Vmware, Inc. Offloading storage operations to storage hardware using a switch
US8239646B2 (en) 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
US8245217B2 (en) 2007-10-12 2012-08-14 Microsoft Corporation Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
US8407688B2 (en) * 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US7865711B2 (en) * 2007-12-03 2011-01-04 Microsoft Corporation Efficient method for operating system deployment
US8181174B2 (en) * 2007-12-28 2012-05-15 Accenture Global Services Limited Virtual machine configuration system
US20090217296A1 (en) * 2008-02-26 2009-08-27 Alexander Gebhart Benefit analysis of implementing virtual machines
US8560593B2 (en) 2008-03-27 2013-10-15 Dell Software Inc. System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
US8364983B2 (en) * 2008-05-08 2013-01-29 Microsoft Corporation Corralling virtual machines with encryption keys
US8266099B2 (en) * 2008-05-29 2012-09-11 Vmware, Inc. Offloading storage operations to storage hardware using a third party server
US8745336B2 (en) * 2008-05-29 2014-06-03 Vmware, Inc. Offloading storage operations to storage hardware
US20090328030A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Installing a management agent with a virtual machine
US20100042719A1 (en) * 2008-08-12 2010-02-18 Junji Kinoshita Content access to virtual machine resource
US8150801B2 (en) * 2008-08-20 2012-04-03 Microsoft Corporation Recovery of a computer that includes virtual disks
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8572608B2 (en) * 2008-10-22 2013-10-29 Vmware, Inc. Methods and systems for converting a related group of physical machines to virtual machines
CN101408856A (zh) * 2008-11-21 2009-04-15 清华大学 一种用于容灾备份的系统和方法
US9454368B2 (en) 2009-01-21 2016-09-27 Vmware, Inc. Data mover permitting data transfer without transferring data between application and operating system
JP5166307B2 (ja) * 2009-01-30 2013-03-21 株式会社立花エレテック 接続機器利用システムおよびその方法
US9134922B2 (en) 2009-03-12 2015-09-15 Vmware, Inc. System and method for allocating datastores for virtual machines
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US20110010710A1 (en) * 2009-07-10 2011-01-13 Microsoft Corporation Image Transfer Between Processing Devices
US9778946B2 (en) * 2009-08-07 2017-10-03 Dell Software Inc. Optimized copy of virtual machine storage files
US9043454B2 (en) * 2009-08-26 2015-05-26 Red Hat Israel, Ltd. Auto suspense of virtual machine on client disconnection
US8589913B2 (en) * 2009-10-14 2013-11-19 Vmware, Inc. Tracking block-level writes
US8161077B2 (en) * 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US8150808B2 (en) 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8856080B2 (en) 2009-10-30 2014-10-07 Microsoft Corporation Backup using metadata virtual hard drive and differential virtual hard drive
US9106591B2 (en) 2009-12-24 2015-08-11 Delphix Corporation Adaptive resource management using survival minimum resources for low priority consumers
US9262306B2 (en) * 2010-01-27 2016-02-16 Hewlett Packard Enterprise Development Lp Software application testing
US8751780B2 (en) 2010-02-08 2014-06-10 Microsoft Corporation Fast machine booting through streaming storage
US8751738B2 (en) 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US8204860B1 (en) * 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
JP5636695B2 (ja) * 2010-03-02 2014-12-10 日本電気株式会社 フォールトトレラントシステム及び仮想マシン構築方法
KR20110106716A (ko) 2010-03-23 2011-09-29 삼성전자주식회사 프로그램 컴파일러, 설치 장치, 및 설치 방법
US8775781B2 (en) 2010-03-25 2014-07-08 Microsoft Corporation Intelligent boot device selection and recovery
CN102214126A (zh) * 2010-04-02 2011-10-12 英业达股份有限公司 卷影复制服务的供应程序的对象的创建方法
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US9767274B2 (en) * 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US9569446B1 (en) 2010-06-08 2017-02-14 Dell Software Inc. Cataloging system for image-based backup
US8548944B2 (en) 2010-07-15 2013-10-01 Delphix Corp. De-duplication based backup of file systems
US20120054742A1 (en) * 2010-09-01 2012-03-01 Microsoft Corporation State Separation Of User Data From Operating System In A Pooled VM Environment
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US8694745B2 (en) 2010-09-15 2014-04-08 Symantec Corporation Physical to virtual disks creation (P2V) method, by harvesting data from critical sectors
JP2012068790A (ja) 2010-09-22 2012-04-05 Internatl Business Mach Corp <Ibm> Osのイメージの選択装置、選択方法、及び選択プログラム
JP5492731B2 (ja) 2010-10-06 2014-05-14 株式会社日立製作所 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
US9069620B2 (en) 2010-10-20 2015-06-30 Microsoft Technology Licensing, Llc Creating and deploying service-ready virtual hard disks
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
WO2012063311A1 (ja) * 2010-11-08 2012-05-18 株式会社日立製作所 計算機の制御方法、計算機システム及び記憶媒体
GB2499956B (en) 2010-11-23 2018-02-14 Servicenow Inc Direct migration of software images with streaming technique
US8468174B1 (en) 2010-11-30 2013-06-18 Jedidiah Yueh Interfacing with a virtual database system
US8495352B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation System and method for instantiation of distributed applications from disk snapshots
CN103250163B (zh) 2010-12-09 2016-08-10 国际商业机器公司 用于加密和解密虚拟盘的计算机可读存储介质
CN103250134B (zh) 2010-12-13 2016-09-07 国际商业机器公司 基于流技术的软件映像更新
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
JP5672075B2 (ja) * 2011-03-03 2015-02-18 日本電気株式会社 計算機システム、仮想環境マイグレーション方法および仮想環境マイグレーションプログラム
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US8725782B2 (en) 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9519496B2 (en) 2011-04-26 2016-12-13 Microsoft Technology Licensing, Llc Detecting and preventing virtual disk storage linkage faults
US9069467B2 (en) * 2011-06-01 2015-06-30 Microsoft Technology Licensing, Llc Isolation of virtual machine I/O in multi-disk hosts
US20130007726A1 (en) 2011-06-30 2013-01-03 Indrajit Poddar Virtual machine disk image installation
KR101493827B1 (ko) * 2011-07-04 2015-02-17 주식회사 케이티 물리서버를 가상 서버로 마이그레이션하는 장치 및 그 방법
DE102011107169A1 (de) * 2011-07-13 2013-01-17 Kuka Roboter Gmbh Steuerung eines Roboter
US9158561B2 (en) * 2011-08-18 2015-10-13 Vmware, Inc. Systems and methods for modifying an operating system for a virtual machine
US8595460B2 (en) 2011-08-26 2013-11-26 Vmware, Inc. Configuring object storage system for input/output operations
CN102323943A (zh) * 2011-09-02 2012-01-18 北京天地云箱科技有限公司 基于虚拟机的数据存储方法及系统
US20130066838A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Efficient data recovery
EP2570920A1 (en) * 2011-09-16 2013-03-20 France Télécom System and method for cross-platform application execution and display
US9461881B2 (en) * 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US9009318B2 (en) * 2011-11-03 2015-04-14 Microsoft Corporation Offline resource allocation algorithms
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
JP5684170B2 (ja) * 2012-02-28 2015-03-11 株式会社東芝 情報処理装置、クライアント管理システムおよびクライアント管理方法
US9055067B1 (en) 2012-03-26 2015-06-09 Amazon Technologies, Inc. Flexible-location reservations and pricing for network-accessible resource capacity
TWI456944B (zh) * 2012-05-02 2014-10-11 Quanta Comp Inc 管理方法及其系統
US9952879B2 (en) 2012-08-30 2018-04-24 Microsoft Technology Licensing, Llc Application pre-layout in byte-addressable persistent random access memory
US9740500B2 (en) 2012-08-30 2017-08-22 Microsoft Technology Licensing, Llc Layout system for operating systems using BPRAM
US9778860B2 (en) 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX
US8788461B2 (en) 2012-10-04 2014-07-22 Delphix Corp. Creating validated database snapshots for provisioning virtual databases
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US9740702B2 (en) 2012-12-21 2017-08-22 Commvault Systems, Inc. Systems and methods to identify unprotected virtual machines
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US20140196039A1 (en) 2013-01-08 2014-07-10 Commvault Systems, Inc. Virtual machine categorization system and method
US10025674B2 (en) * 2013-06-07 2018-07-17 Microsoft Technology Licensing, Llc Framework for running untrusted code
US9383986B2 (en) 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
US9841983B2 (en) * 2013-06-28 2017-12-12 Vmware, Inc. Single click host maintenance
US9262448B2 (en) * 2013-08-12 2016-02-16 International Business Machines Corporation Data backup across physical and virtualized storage volumes
US9639384B2 (en) * 2013-08-20 2017-05-02 Vmware, Inc. Method and system for fast provisioning of virtual desktop
US10359951B1 (en) * 2013-08-23 2019-07-23 Acronis International Gmbh Snapshotless backup
US9594583B2 (en) 2013-11-12 2017-03-14 Red Hat, Inc. Lightweight snapshots for virtual disks
CN104809020B (zh) * 2013-11-20 2018-05-11 华为技术有限公司 一种生成快照的方法、系统和装置
WO2015074200A1 (zh) 2013-11-20 2015-05-28 华为技术有限公司 一种生成快照的方法、系统和装置
CN103761168B (zh) * 2014-01-26 2017-06-13 上海爱数信息技术股份有限公司 一种基于nfs卷挂载备份虚拟机的方法
US20150269029A1 (en) * 2014-03-20 2015-09-24 Unitrends, Inc. Immediate Recovery of an Application from File Based Backups
US9454439B2 (en) 2014-05-28 2016-09-27 Unitrends, Inc. Disaster recovery validation
US9448834B2 (en) 2014-06-27 2016-09-20 Unitrends, Inc. Automated testing of physical servers using a virtual machine
US20160019317A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Volume or virtual machine level backup and generating placeholders for virtual machine files
US9684567B2 (en) * 2014-09-04 2017-06-20 International Business Machines Corporation Hypervisor agnostic interchangeable backup recovery and file level recovery from virtual disks
CN104298559B (zh) * 2014-09-30 2018-03-02 深信服科技股份有限公司 物理主机系统虚拟化的方法及装置
TWI608420B (zh) * 2014-10-20 2017-12-11 緯創資通股份有限公司 虛擬機器監控方法及其系統
CN104331375B (zh) * 2014-10-29 2018-08-07 中国建设银行股份有限公司 共享虚拟化资源池环境下的共享虚拟资源管理方法和装置
US9983936B2 (en) 2014-11-20 2018-05-29 Commvault Systems, Inc. Virtual machine change block tracking
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
US20160162302A1 (en) * 2014-12-07 2016-06-09 Strato Scale Ltd. Fast initiation of workloads using memory-resident post-boot snapshots
WO2016197069A1 (en) 2015-06-05 2016-12-08 Nutanix, Inc. Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines
CN105573791A (zh) * 2015-12-15 2016-05-11 国云科技股份有限公司 一种linux虚拟机实现网卡热插拔的方法
CN105740042B (zh) * 2016-01-15 2019-07-02 北京京东尚科信息技术有限公司 虚拟机内存的管理方法和管理系统
US10922116B2 (en) 2016-02-12 2021-02-16 Hewlett Packard Enterprise Development Lp Creating operating system volumes
US10133593B1 (en) * 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
CN107800730B (zh) * 2016-08-30 2021-01-29 阿里巴巴集团控股有限公司 一种虚拟磁盘的扩容方法以及装置
US10678758B2 (en) 2016-11-21 2020-06-09 Commvault Systems, Inc. Cross-platform virtual machine data and memory backup and replication
US10649679B2 (en) * 2016-11-23 2020-05-12 Nutanix, Inc. Containerized application extensions in distributed storage systems
CN106708603B (zh) * 2016-12-28 2019-04-26 平安科技(深圳)有限公司 虚拟机快速恢复方法及装置
JP6897136B2 (ja) 2017-02-10 2021-06-30 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US10761911B2 (en) 2017-02-13 2020-09-01 Nutanix, Inc. Asynchronous application interactions in distributed systems
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US20180276085A1 (en) 2017-03-24 2018-09-27 Commvault Systems, Inc. Virtual machine recovery point generation
US10387073B2 (en) 2017-03-29 2019-08-20 Commvault Systems, Inc. External dynamic virtual machine synchronization
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
US10754829B2 (en) * 2017-04-04 2020-08-25 Oracle International Corporation Virtual configuration systems and methods
CN107463404A (zh) * 2017-08-03 2017-12-12 浪潮(北京)电子信息产业有限公司 一种向虚拟机文件系统中增加配置文件的方法和系统
US10860242B1 (en) * 2017-10-06 2020-12-08 EMC IP Holding Company LLC Method for automatic instant access mount point cleanup
KR102003721B1 (ko) * 2018-01-10 2019-07-26 성균관대학교산학협력단 Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치
CN110347483B (zh) 2018-04-08 2021-05-11 中兴通讯股份有限公司 物理机到虚拟机迁移方法、装置及存储介质
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
US10887382B2 (en) * 2018-12-18 2021-01-05 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery
US11080082B2 (en) 2019-08-02 2021-08-03 Red Hat, Inc. Cross-hypervisor virtual machine conversion
CN110515697A (zh) * 2019-08-16 2019-11-29 济南浪潮数据技术有限公司 一种虚拟机迁移方法、装置、存储介质及计算机设备
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
CN113609075A (zh) * 2021-08-18 2021-11-05 济南浪潮数据技术有限公司 一种创建快照的方法、系统、存储介质及设备
US20230305854A1 (en) * 2022-03-25 2023-09-28 Sap Se Reducing downtime during operating system patching

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021981A (ja) * 2002-06-12 2004-01-22 Microsoft Corp イメージベースのソフトウェアインストール

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4475156A (en) * 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
US4835685A (en) * 1985-05-06 1989-05-30 Computer X, Inc. Virtual single machine with message-like hardware interrupts and processor exceptions
US4787026A (en) * 1986-01-17 1988-11-22 International Business Machines Corporation Method to manage coprocessor in a virtual memory virtual machine data processing system
US5692193A (en) * 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US5996026A (en) * 1995-09-05 1999-11-30 Hitachi, Ltd. Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information
US6052781A (en) 1997-02-21 2000-04-18 Savvy Frontiers Property Trust Multiple user computer including anti-concurrent user-class based disjunctive separation of plural hard drive operation
US6445704B1 (en) * 1997-05-02 2002-09-03 Cisco Technology, Inc. Method and apparatus for virtualizing a locally initiated outbound connection from a connection manager
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
KR100846530B1 (ko) * 2000-07-05 2008-07-15 언스트 앤 영 엘엘피 컴퓨터 서비스를 제공하는 방법 및 장치
CN1224914C (zh) * 2000-08-25 2005-10-26 四国电力株式会社 远程控制服务器、中央服务器以及由它们构筑的系统
US6789156B1 (en) 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7213065B2 (en) 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7448034B2 (en) * 2003-07-30 2008-11-04 International Business Machines Corporation Build time determination and installation of drivers on cloned systems
US7373451B2 (en) * 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7577959B2 (en) * 2004-06-24 2009-08-18 International Business Machines Corporation Providing on-demand capabilities using virtual machines and clustering processes
CA2486103A1 (en) * 2004-10-26 2006-04-26 Platespin Ltd. System and method for autonomic optimization of physical and virtual resource use in a data center
US7441092B2 (en) * 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021981A (ja) * 2002-06-12 2004-01-22 Microsoft Corp イメージベースのソフトウェアインストール

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSND200400124007; 高野 了成: 'Bochs 2.0 リリース記念! x86エミュレータBochsで遊ぼう!' UNIX USER 第12巻,第2号, 20030201, p.64-73, ソフトバンクパブリッシング株式会社 *
CSND200500829009; 茂木 龍太: 'サーバー向け仮想マシン・ソフトを徹底比較' 日経Windowsプロ no.9 , 200412, p.94-100, 日経BP社 *
CSND200600161008; 福田 和宏: 'SBUML' 日経Linux 第7巻,第3号, 200503, p.72-75, 日経BP社 *
CSND200600896001; 橋本 新義: 'BartPE、1CD Linux...... 起動不能! まさかの時のデータ救出 システムクラッシュ対策ツー' DOS/V SPECIAL 第11巻,第3号, 20060301, p28-29, (株)毎日コミュニケーションズ *
JPN6013016030; 茂木 龍太: 'サーバー向け仮想マシン・ソフトを徹底比較' 日経Windowsプロ no.9 , 200412, p.94-100, 日経BP社 *
JPN6013016031; 福田 和宏: 'SBUML' 日経Linux 第7巻,第3号, 200503, p.72-75, 日経BP社 *
JPN6013037807; 橋本 新義: 'BartPE、1CD Linux...... 起動不能! まさかの時のデータ救出 システムクラッシュ対策ツー' DOS/V SPECIAL 第11巻,第3号, 20060301, p28-29, (株)毎日コミュニケーションズ *
JPN6013037808; 高野 了成: 'Bochs 2.0 リリース記念! x86エミュレータBochsで遊ぼう!' UNIX USER 第12巻,第2号, 20030201, p.64-73, ソフトバンクパブリッシング株式会社 *

Also Published As

Publication number Publication date
MX2008014244A (es) 2008-11-18
WO2007130209A1 (en) 2007-11-15
JP2009536762A (ja) 2009-10-15
CA2648761A1 (en) 2007-11-15
TW201415371A (zh) 2014-04-16
TW200813839A (en) 2008-03-16
ES2632512T3 (es) 2017-09-13
JP5026509B2 (ja) 2012-09-12
IL194679A (en) 2014-08-31
RU2008144202A (ru) 2010-05-20
JP5496254B2 (ja) 2014-05-21
CN102541658A (zh) 2012-07-04
CN101443748B (zh) 2012-02-08
EP2021939A4 (en) 2010-11-24
RU2011147372A (ru) 2013-05-27
EP2021939B1 (en) 2017-04-19
MY149997A (en) 2013-11-15
BRPI0711336A2 (pt) 2011-08-30
BRPI0711336A8 (pt) 2017-01-17
EP2021939A1 (en) 2009-02-11
IL223026A (en) 2014-12-31
KR20090025204A (ko) 2009-03-10
IL223026A0 (en) 2012-12-31
KR101465928B1 (ko) 2014-11-26
NO342885B1 (no) 2018-08-20
US7653794B2 (en) 2010-01-26
CA2648761C (en) 2015-06-02
NO20084228L (no) 2008-10-22
ZA200808579B (en) 2011-11-30
RU2446450C2 (ru) 2012-03-27
AU2007248886A1 (en) 2007-11-15
HK1172718A1 (en) 2013-04-26
AU2007248886B2 (en) 2011-11-03
TWI428830B (zh) 2014-03-01
US20070260831A1 (en) 2007-11-08
TWI547875B (zh) 2016-09-01
KR101376952B1 (ko) 2014-03-20
KR20140000720A (ko) 2014-01-03
CN101443748A (zh) 2009-05-27
CN102541658B (zh) 2014-09-24

Similar Documents

Publication Publication Date Title
JP5496254B2 (ja) マシンから仮想マシンへの変換
EP3117311B1 (en) Method and system for implementing virtual machine images
US9104431B2 (en) Deployment of a software image on multiple targets with streaming technique
WO2020103904A1 (zh) 云桌面升级方法、装置、云端服务器及存储介质
KR20130115391A (ko) 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법
CN110806911B (zh) 一种云桌面管控方法、装置及系统
JP2012128839A (ja) ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US20140082275A1 (en) Server, host and method for reading base image through storage area network
AU2012200600B2 (en) &#34;Converting machines to virtual machines&#34;
WO2016070641A1 (zh) 数据的保存方法、装置及读取方法、装置
CN117581205A (zh) 用于虚拟化系统中虚拟化操作的虚拟化引擎
TWI460584B (zh) 以儲存區域網路提供讀取基礎鏡像之伺服器、主機端及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130709

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130718

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131202

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140304

R150 Certificate of patent or registration of utility model

Ref document number: 5496254

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250