(57)【要約】  仮想化されたプラットフォームへ安全に移行するためのコンピュータ実装方法は、（１）物理サーバからの物理／仮想変換の対象である仮想マシンを特定することと、（２）物理／仮想変換が完了する前に、物理／仮想変換が少なくとも１つの今後の工程を含むことを判定することと、（３）物理／仮想変換が今後の工程を含むという判定に基づいて、今後の工程の前の仮想マシンのスナップショットを作成することと、（４）今後の工程の前のスナップショットに仮想マシンを復元することと、を含み得る。多様な他の方法、システム、及びコンピュータで読み取り可能な媒体もまた開示される。
2015503782.tif 000002
【特許請求の範囲】
【請求項１】
仮想化されたプラットフォームへ安全に移行するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるコンピューティングデバイスにより実施され、前記方法が、
物理サーバからの物理／仮想変換の対象である仮想マシンを特定することと、
前記物理／仮想変換が完了する前に、前記物理／仮想変換が少なくとも１つの今後の工程を含むことを判定することと、
前記物理／仮想変換が前記今後の工程を含むという判定に基づいて、前記今後の工程の前の前記仮想マシンのスナップショットを作成することと、
前記今後の工程の前の前記スナップショットに前記仮想マシンを復元することと、を含む、コンピュータ実装方法。
【請求項２】
前記スナップショットを作成することが、前記今後の工程の前の変更から前記仮想マシンを保護するように前記スナップショットを作成することを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記スナップショットを作成することが、前記仮想マシンが前記スナップショットを作成する前にオフラインであると判定することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記仮想マシンが、前記スナップショットに基づいて、前記仮想マシンへの修正を検出することにより、前記今後の工程の前にオンラインにされたことを判定することを更に含み、
前記スナップショットに前記仮想マシンを復元することが、前記仮想マシンが前記今後の工程の前にオンラインにされたという判定に基づく、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記スナップショットが、前記仮想マシンに行われた各変更をスナップショットデータストアに記憶するように構成され、
前記スナップショットに前記仮想マシンを復元することが、前記スナップショットデータストアを削除することを含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記今後の工程が、前記仮想マシンへの先の更新以来の前記物理サーバへの増分変更に基づく、前記仮想マシンへの増分更新を含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記スナップショットに前記仮想マシンを復元することに基づいて、前記今後の工程を実施することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記スナップショットに前記仮想マシンを復元することに基づいて、前記スナップショットを除去することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
仮想化されたプラットフォームへ安全に移行するためのシステムであって、
物理サーバからの物理／仮想変換の対象である仮想マシンを特定するようにプログラムされる特定モジュールと、
前記物理／仮想変換が完了する前に、前記物理／仮想変換が少なくとも１つの今後の工程を含むことを判定するようにプログラムされる判定モジュールと、
前記物理／仮想変換が前記今後の工程を含むという判定に基づいて、前記今後の工程の前の前記仮想マシンのスナップショットを作成するようにプログラムされる作成モジュールと、
前記今後の工程の前の前記スナップショットに前記仮想マシンを復元するようにプログラムされる復元モジュールと、
前記特定モジュール、前記判定モジュール、前記作成モジュール、及び前記復元モジュールを実行するように構成される少なくとも１つのプロセッサと、を備える、システム。
【請求項１０】
前記作成モジュールが、前記今後の工程の前の変更から前記仮想マシンを保護するように前記スナップショットを作成することにより、前記スナップショットを作成するようにプログラムされる、請求項９に記載のシステム。
【請求項１１】
前記作成モジュールが、前記仮想マシンが前記スナップショットを作成する前にオフラインであると判定することにより、前記スナップショットを作成するようにプログラムされる、請求項９に記載のシステム。
【請求項１２】
前記復元モジュールが、前記スナップショットに基づいて、前記仮想マシンへの修正を検出することにより、前記今後の工程の前に前記仮想マシンがオンラインにされたことを判定するように更にプログラムされ、
前記復元モジュールが、前記今後の工程の前に前記仮想マシンがオンラインにされたという判定に基づいて、前記スナップショットに前記仮想マシンを復元するようにプログラムされる、請求項９に記載のシステム。
【請求項１３】
前記スナップショットが、前記仮想マシンに行われた各変更をスナップショットデータストアに記憶するように構成され、
前記復元モジュールが、前記スナップショットデータストアを削除することにより前記スナップショットに前記仮想マシンを復元するようにプログラムされる、請求項９に記載のシステム。
【請求項１４】
前記今後の工程が、前記仮想マシンへの先の更新以来の前記物理サーバへの増分変更に基づく、前記仮想マシンへの増分更新を含む、請求項９に記載のシステム。
【請求項１５】
前記復元モジュールが、前記スナップショットに前記仮想マシンを復元することに基づいて、前記今後の工程を実施するように更にプログラムされる、請求項９に記載のシステム。
【請求項１６】
前記復元モジュールが、前記スナップショットに前記仮想マシンを復元することに基づいて、前記スナップショットを除去するように更にプログラムされる、請求項９に記載のシステム。
【請求項１７】
コンピューティングデバイスの少なくとも１つのプロセッサにより実行されるとき、前記コンピューティングデバイスに、
物理サーバからの物理／仮想変換の対象である仮想マシンを特定させ、
前記物理／仮想変換が完了する前に、前記物理／仮想変換が少なくとも１つの今後の工程を含むことを判定させ、
前記物理／仮想変換が前記今後の工程を含むという判定に基づいて、前記今後の工程の前の前記仮想マシンのスナップショットを作成させ、
前記今後の工程の前の前記スナップショットに前記仮想マシンを復元させる、１つ以上のコンピュータで実行可能な命令を含むコンピュータで読み取り可能な記憶媒体。
【請求項１８】
前記１つ以上のコンピュータで読み取り可能な命令が、前記コンピューティングデバイスに前記今後の工程の前の変更から前記仮想マシンを保護するように前記スナップショットを作成させる、請求項１７に記載のコンピュータで読み取り可能な記憶媒体。
【請求項１９】
前記１つ以上のコンピュータで読み取り可能な命令が、前記スナップショットを作成する前に前記仮想マシンがオフラインであると前記コンピューティングデバイスに判定させることにより、前記コンピューティングデバイスに前記スナップショットを作成させる、請求項１７に記載のコンピュータで読み取り可能な記憶媒体。
【請求項２０】
前記１つ以上のコンピュータで読み取り可能な命令が、前記スナップショットに基づいて、前記仮想マシンへの修正を検出することにより、前記仮想マシンが前記今後の工程の前にオンラインにされたことを、前記コンピューティングデバイスに更に判定させ、
前記１つ以上のコンピュータで読み取り可能な命令が、前記コンピューティングデバイスに、前記仮想マシンが前記今後の工程の前にオンラインにされたという判定に基づいて、前記スナップショットに前記仮想マシンを復元させる、請求項１７に記載のコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
デジタル時代において、団体組織は、データを記憶及び処理するためにますます複雑なコンピューティング基盤に頼っている。一部の状況において、団体組織は、物理／仮想変換（physical-to-virtual conversion）（例えば、物理サーバ上のアプリケーション及びデータを仮想マシンへ移行及び／又は模造するために）を実施することを望み得る。物理サーバの仮想化は、リソースの改善された運用、増加した経営上の融通性、及び／又は障害回復等の、団体組織への多様な利益のいずれかを提供し得る。
【０００２】
一部の場合において、物理／仮想変換は、対象の仮想マシンが増分的にソース物理サーバと同期化される、ある長さの期間に及ぶ可能性がある。残念ながら、対象の仮想マシンへの変更は、この期間中、ソース物理サーバと対象の仮想マシンとの間での同期化を中断し、対象の仮想マシンを使用不能の状態にする可能性がある。例えば、ユーザが、増分の同期化ジョブの間に対象の仮想マシンを起動する場合、物理／仮想変換は損なわれ得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、本開示は、仮想化されたプラットフォームへ安全に移行する追加の改善されたシステム及び方法に対する必要性を特定し、対処する。
【課題を解決するための手段】
【０００４】
以下でより詳細に説明されるように、本開示は、概して、変換工程後に仮想マシンのスナップショットを作成し、後続の変換工程の前にスナップショットに復元する（例えば、変換工程の間に仮想マシンへ行われたいかなる変更をも破棄する）ことにより、仮想化されたプラットフォームへ安全に移行するためのシステム及び方法に関する。一実施例において、仮想化されたプラットフォームへ安全に移行するためのコンピュータ実装方法は、（１）物理サーバからの物理／仮想変換の対象である仮想マシンを特定することと、（２）物理／仮想変換が、物理／仮想変換が完了する前に、少なくとも１つの今後の工程を含むことを判定することと、（３）物理／仮想変換が今後の工程を含むという判定に基づいて、今後の工程の前の仮想マシンのスナップショットを作成することと、（４）今後の工程の前のスナップショットに仮想マシンを復元することと、を含み得る。
【０００５】
今後の工程は、物理／仮想変換における多様な工程のいずれかを含み得る。例えば、今後の工程は、仮想マシンへの先の更新以来の物理サーバへの増分変更に基づく、仮想マシンへの増分更新を含んでもよい。
【０００６】
一部の実施例では、スナップショットを作成する前に、仮想マシンがオフラインであることを判定することを含んでもよい。更に又は代替的に、スナップショットを作成することは、今後の工程の前の変更から仮想マシンを保護するようにスナップショットを作成することを伴い得る。
【０００７】
一部の実施形態において、コンピュータ実装方法はまた、スナップショットに基づいて、仮想マシンへの修正を検出することにより、今後の工程の前に仮想マシンがオンラインにされたことを判定することを含んでもよい。これらの実施形態において、スナップショットに仮想マシンを復元することは、今後の工程の前に仮想マシンがオンラインにされたという判定に基づき得る。一部の実施例において、スナップショットは、仮想マシンに行われた各変更をスナップショットデータストアに記憶するように構成され得る。これらの実施例において、スナップショットに仮想マシンを復元することは、スナップショットデータストアを削除することを含んでもよい。
【０００８】
一部の実施例において、コンピュータ実装方法はまた、スナップショットに仮想マシンを復元することに基づいて、今後の工程を実施することを更に含んでもよい。更に又は代替的に、コンピュータ実装方法はまた、スナップショットに仮想マシンを復元することに基づいて、スナップショットを除去することを含み得る。
【０００９】
一実施形態において、上記に説明される方法を実装するためのシステムは、（１）物理サーバからの物理／仮想変換の対象である仮想マシンを特定するようにプログラムされる特定モジュールと、（２）物理／仮想変換が完了する前に、物理／仮想変換が少なくとも１つの今後の工程を含むことを判定するようにプログラムされる判定モジュールと、（３）物理／仮想変換が今後の工程を含むという判定に基づいて、今後の工程の前の仮想マシンのスナップショットを作成するようにプログラムされる作成モジュールと、（４）今後の工程の前のスナップショットに仮想マシンを復元するようにプログラムされる復元モジュールと、を含み得る。本システムはまた、特定モジュール、判定モジュール、作成モジュール、及び復元モジュールを実行するように構成される、少なくとも１つのプロセッサを含み得る。
【００１０】
一部の実施例において、上記に説明される方法は、コンピュータで読み取り可能な記憶媒体上でコンピュータで読み取り可能な命令としてコード化され得る。例えば、コンピュータで読み取り可能な記憶媒体は、コンピューティングデバイスの少なくとも１つのプロセッサにより実行されるとき、コンピューティングデバイスに、（１）物理サーバからの物理／仮想変換の対象である仮想マシンを特定させ、（２）物理／仮想変換が完了する前に、物理／仮想変換が少なくとも１つの今後の工程を含むことを判定させ、（３）物理／仮想変換が今後の工程を含むという判定に基づいて、今後の工程の前の仮想マシンのスナップショットを作成させ、（４）今後の工程の前のスナップショットに仮想マシンを復元させることができる、１つ以上のコンピュータで実行可能な命令を含み得る。
【００１１】
以下でより詳細に説明されるように、変換工程後に仮想マシンのスナップショットを作成し、後続の変換工程の前にスナップショットに復元する（例えば、それによって変換工程の間に仮想マシンへ行われたいかなる変更をも破棄する）ことにより、本明細書に記載のシステム及び方法は、仮想マシンが、変換工程の間の予期される同期化された状態に留まることを確実にすることができる。したがって、これらのシステム及び方法は、物理／仮想変換中に広範囲の潜在的な干渉から、効率的かつ効果的に仮想マシンを保護し得る。
【００１２】
上に記述される実施形態のうちのいずれかからの特性は、本明細書に記載の一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特性、及び利点は、添付の図面及び特許請求の範囲と共に以下の詳細な説明を一読することでより完全に理解されるであろう。
【図面の簡単な説明】
【００１３】
添付の図面は、多数の例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の多様な原理を例証及び説明する。
【図１】仮想化されたプラットフォームへ安全に移行するための例示的なシステムのブロック図である。
【図２】仮想化されたプラットフォームへ安全に移行するための例示的なシステムのブロック図である。
【図３】仮想化されたプラットフォームへ安全に移行するための例示的なシステムの流れ図である。
【図４】仮想化されたプラットフォームへ安全に移行するための例示的な時系列である。
【図５】本明細書に記載及び／又は例解される実施形態のうちの１つ以上を実装することが可能な例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は例解される実施形態のうちの１つ以上を実装することが可能な例示的なコンピューティングネットワークのブロック図である。
【００１４】
図面を通して、同一の参照文字及び説明は、類似しているが必ずしも同一ではない要素を示す。本明細書に記載の例示的な実施形態は多様な修正及び代替形態が可能であるが、具体的な実施形態が、図面において例として示されており、本明細書に詳細に説明されるであろう。しかしながら、本明細書に記載の例示的な実施形態は、開示される特定の形態に限定されることを意図するものではない。むしろ、本開示は、添付の特許請求の範囲内にある全ての修正、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１５】
図１〜２を参照すると、以下に、仮想化されたプラットフォームへ安全に移行するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明はまた、図３と併せて提供される。仮想化されたプラットフォームへ安全に移行するための例示的な時系列の詳細な説明は、図４と併せて提供される。更に、本明細書に記載の実施形態のうちの１つ以上を実装することが可能な例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明は、それぞれに、図５及び６と併せて提供される。
【００１６】
図１は、仮想化されたプラットフォームへ安全に移行するための例示的なシステム１００のブロック図である。この図に例解されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含み得る。例えば、また以下により詳細に説明されるように、例示的なシステム１００は、物理サーバからの物理／仮想変換の対象である仮想マシンを特定するようにプログラムされる特定モジュール１０４を含み得る。例示的なシステム１００はまた、物理／仮想変換が完了する前に、物理／仮想変換が少なくとも１つの今後の工程を含むことを判定するようにプログラムされる特定モジュール１０６を含み得る。
【００１７】
更に、また以下により詳細に説明されるように、例示的なシステム１００は、物理／仮想変換が今後の工程を含むという判定に基づいて、今後の工程の前の仮想マシンのスナップショットを作成するようにプログラムされる作成モジュール１０８を含み得る。例示的なシステム１００はまた、今後の工程の前のスナップショットに仮想マシンを復元するようにプログラムされる復元モジュール１１０を含み得る。別個の要素として例解されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表し得る。
【００１８】
ある実施形態において、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスにより実行されるとき、コンピューティングデバイスに１つ以上のタスクを実施させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、またより詳細に以下に説明されるように、モジュール１０２のうちの１つ以上は、図２に例解されるデバイス（例えば、コンピューティングデバイス２０２及び／又はサーバ２０６）、図５にあるコンピューティングシステム５１０、及び／又は図６にある例示的なネットワークアーキテクチャ６００の部分等、１つ以上のコンピューティングデバイスに記憶され、そこで作動するように構成される、ソフトウェアモジュールを表し得る。図１にあるモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成される、１つ以上の特殊目的のコンピュータの全て又は部分を表し得る。
【００１９】
図１にある例示的なシステム１００は、多様な方法で実装されてもよい。例えば、例示的なシステム１００の全て又は一部分は、図２の例示的なシステム２００の部分を表し得る。図２に示されるように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信する、コンピューティングデバイス２０２を含み得る。例えば、コンピューティングデバイス２０２は、仮想マシン２１０へのサーバ２０６の物理／仮想変換を実施するように構成されてもよい。
【００２０】
一実施形態において、図１からの特定モジュール１０４、判定モジュール１０６、作成モジュール１０８、及び／又は復元モジュール１１０は、コンピューティングデバイス２０２の少なくとも１つのプロセッサにより実行されるとき、仮想化されたプラットフォームへ安全に移行する際にコンピューティングデバイス２０２を容易にする。例えば、また以下により詳細に説明されるように、モジュール１０２のうちの１つ以上は、コンピューティングデバイス２０２に、（１）物理サーバ（例えば、サーバ２０６）からの物理／仮想変換の対象である仮想マシン（例えば、仮想マシン２１０）を特定させ、（２）物理／仮想変換が完了する前に、物理／仮想変換が少なくとも１つの今後の工程（例えば、更新２３０）を含むことを判定させ、（３）物理／仮想変換が今後の工程を含むという判定に基づいて、今後の工程の前の仮想マシンのスナップショット（例えば、スナップショット２２０）を作成させ、（４）今後の工程の前のスナップショットに仮想マシンを復元させる（例えば、更新２３０の前に仮想マシン２１０をスナップショット２２０に復元させる）ことができる。
【００２１】
コンピューティングデバイス２０２は、概して、コンピュータで実行可能な命令を読み取ることが可能なコンピューティングデバイスの任意のタイプ又は形態を表す。コンピューティングデバイス２０２の例としては、これに限定されないが、サーバ、ハイパーバイザ、ラップトップ、デスクトップ、携帯電話、個人用デジタル補助装置（ＰＤＡ）、マルチメディアプレーヤ、埋め込みシステム、これらのうちの１つ以上の組み合わせ、図５の例示的なコンピューティングシステム５１０、又は任意の他の好適なコンピューティングデバイスが挙げられる。
【００２２】
サーバ２０６は、概して、１つ以上のコンピュータで実行されるタスクを実施する及び／又は１つ以上のコンピューティングリソースを提供することが可能なコンピューティングデバイスの任意のタイプ又は形態を表す。サーバ２０６の例としては、これに限定されないが、多様なデータベースサービスを提供する及び／又はあるソフトウェアアプリケーションを作動させるように構成されるアプリケーションサーバ及びデータベースサーバが挙げられる。
【００２３】
ネットワーク２０４は、概して、通信又はデータ転送を容易にすることが可能な任意の媒体又はアーキテクチャを表す。ネットワーク２０４の例としては、これに限定されないが、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、ＧＳＭネットワーク）（「ＧＳＭ」は登録商標）、図６の例示的なネットワークアーキテクチャ６００、等が挙げられる。ネットワーク２０４は、無線又は有線接続を使用して通信又はデータ転送を容易にし得る。一実施形態において、ネットワーク２０４は、コンピューティングデバイス２０２とサーバ２０６との間の通信を容易にし得る。
【００２４】
図３は、仮想化されたプラットフォームへ安全に移行するための例示的なコンピュータ実装方法３００の流れ図である。図３に示される工程は、任意の好適なコンピュータで実行可能なコード及び／又はコンピューティングシステムにより実施されてもよい。一部の実施形態において、図３に示される工程は、図１のシステム１００の構成要素のうちの１つ以上、図２のシステム２００、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分により実施されてもよい。
【００２５】
図３に例解されるように、工程３０２で、本明細書に記載のシステムのうちの１つ以上が、物理サーバからの物理／仮想変換の対象である仮想マシンを特定することができる。例えば、工程３０２で、特定モジュール１０４は、図２のコンピューティングデバイス２０２の一部として、サーバ２０６からの物理／仮想変換の対象として仮想マシン２１０を特定してもよい。
【００２６】
本明細書に使用される際、句「仮想マシン」は、概して、根本的なホストマシンのハードウェアへの直接対応を有さない場合がある、コンピューティングシステムプラットフォームを指す。例えば、ホストシステムのハードウェアは、ハイパーバイザ又は他の仮想化ソフトウェアを使用して仮想マシンに抽象化され得る。仮想マシンは、ゲストオペーレーティングシステム及び／又は多様な他のソフトウェアアプリケーションを作動させ得る。
【００２７】
本明細書に使用される際、句「物理／仮想変換」は、物理コンピューティングシステムから仮想化されたシステムを作成する任意のプロセスを指し得る。物理／仮想変換は、物理コンピューティングシステムのオペレーティングシステム、物理コンピューティングシステムの１つ以上のアプリケーション、並びに／又は物理コンピューティングシステム上に記憶される、そこにアクセス可能である、及び／若しくはそれよって管理されるデータを伴う、仮想化されたシステムのプロビジョニングを含み得る。一部の実施例において、物理／仮想変換は、物理コンピューティングシステムを、仮想化されたシステムとしてクローニングすることを含み得る。更に又は代替的に、物理／仮想変換は、物理コンピューティングシステムを仮想化されたシステムに移行することを含んでもよい。一部の実施例において、物理／仮想変換は、物理コンピューティングシステムの仮想化されたシステムへのライブマイグレーションを含んでもよい。一部の実施例において、物理／仮想変換は、１つ以上の別個の工程及び／又はジョブを含む、所定のスケジュール及び／又はポリシーに基づいて実施されてもよい。例えば、物理／仮想変換は、続いてデータへの１つ以上の増分及び／又は差分更新がある、データの初期移行を含み得る。
【００２８】
物理／仮想変換は、物理サーバを表す及び／又は物理サーバに対応する多様なデータを作成する及び／又はコピーすることを含んでもよい。例えば、物理／仮想変換は、物理サーバにより記憶され、アクセスされ、及び／又は管理されるデータを有する仮想マシンディスクイメージを作成すること及び追加投入することを含んでもよい。本明細書に使用される際、句「仮想マシンディスクイメージ」は、仮想マシンの使用のために記憶されるデータを含む、任意のファイル及び／又はイメージを指し得る。一部の実施例において、仮想マシンディスクイメージ内に記憶されるデータは、未加工の内容及び／又は仮想記憶デバイスの構造を反映し得る。例えば、「仮想マシンディスクイメージ」という句は、仮想マシンによりディスク又は他の物理記憶媒体（例えば、固体記憶媒体）として解釈され得る任意のデータ構造を指し得る。一実施例において、句「仮想マシンディスクイメージ」は、ＶＭＷＡＲＥ  ＶＩＲＴＵＡＬ  ＭＡＣＨＩＮＥ  ＤＩＳＫ（「ＶＭＤＫ」）を指し得る。一部の実施例において、物理／仮想変換はまた、物理サーバ及び／又は物理サーバの状態を反映する状態情報に基づいて、仮想マシンの現在の構成データを作成及び／又は維持することを含んでもよい。
【００２９】
特定モジュール１０４は、多様な方法のいずれかで仮想マシンを特定し得る。例えば、特定モジュール１０４は、物理／仮想変換システムの一部として動作し、対象として仮想マシンを伴う物理／仮想変換を実行する要求を受信してもよい。更に又は代替的に、特定モジュール１０４は、物理／仮想変換システムから、又はそれに対するメッセージを、受信及び／又は傍受してもよい。一部の実施例において、特定モジュール１０４は、保護する仮想マシンの１つ以上の構成要素（例えば、仮想マシンディスクイメージ、仮想マシンの状態及び／又は構成ファイル、等）を特定することにより、仮想マシンを特定することができる。
【００３０】
図４は、物理／仮想変換の例示的な時系列４００を例解する。図４に示されるように、例示的な時系列４００は、例示的な時系列４００が開始される時点である初期工程４１０を含み得る。一部の実施例において、特定モジュール１０４は、初期工程４１０で仮想マシンを特定し得る。
【００３１】
図３に戻って、工程３０４で、本明細書に記載のシステムのうちの１つ以上は、物理／仮想変換が完了する前に、物理／仮想変換が少なくとも１つの今後の工程を含むことを判定することができる。例えば、工程３０４で、判定モジュール１０６は、図２のコンピューティングデバイス２０２の一部として、物理／仮想変換が完了する前に、物理／仮想変換が更新２３０を含むことを判定することができる。
【００３２】
本明細書に使用される際、用語「工程」とは、物理／仮想変換に適用されるとき、仮想マシンにより使用される及び／又は仮想マシンを構成するデータへの変更を伴う物理／仮想変換プロセスの任意の部分を含み得る。前述のように、物理／仮想変換は、仮想マシンデータへの１つ以上の増分及び／又は差分更新を含む、１つ以上の別個の工程及び／又はジョブを含む、所定のスケジュール及び／又はポリシーに基づいて実施されてもよい。したがって、今後の工程は、全てのかかる工程を含んでもよい。例えば、今後の工程は、仮想マシンへの先の更新以来の物理サーバへの増分変更に基づいて、仮想マシンへの増分更新を含んでもよい。更に又は代替的に、今後の工程は、物理サーバからまだ移行されていなかったデータを表す仮想マシンへの増分付加を含んでもよい。
【００３３】
図４を例として使用すると、時系列４００は、初期工程４１０、増分工程４２０、増分工程４３０、及び最終工程４４０の４つの物理／仮想変換工程を含み得る。初期工程４１０で、判定モジュール１０６は、物理／仮想変換が今後に増分工程４２０を含むことを判定してもよい。同様に、増分工程４２０で、判定モジュール１０６は、物理／仮想変換が今後に増分工程４３０を含むことを判定してもよい。類似して、増分工程４３０で、判定モジュール１０６は、物理／仮想変換が今後に最終工程４４０を含むことを判定してもよい。
【００３４】
判定モジュール１０６は、物理／仮想変換が任意の多様な方法で今後の工程を含むことを判定し得る。例えば、判定モジュール１０６は、まだ実施されていない工程を特定するために、物理／仮想変換のスケジュール及び／又はポリシーを調べることができる。更に又は代替的に、判定モジュール１０６は、物理／仮想変換がまだ完了していないことを判定するために、エージェントに問い合わせをする及び／又は構成ファイルを読み出してもよい。一部の実施例において、判定モジュール１０６は、物理／仮想変換が、情報及び／又はそれと反対の命令の不在下で今後の工程を含むかのように仮定又は機能し得る。
【００３５】
図３に戻って、工程３０６で、本明細書に記載のシステムのうちの１つ以上は、物理／仮想変換が今後の工程を含むという判定に基づいて、今後の工程の前の仮想マシンのスナップショットを作成し得る。例えば、工程３０６で、作成モジュール１０８は、図２のコンピューティングデバイス２０２の一部として、物理／仮想変換が更新２３０を（例えば、今後に）含むという判定に基づいて、更新２３０の前の仮想マシン２１０のスナップショット２２０を作成し得る。図４を例として使用すると、工程３０６で、作成モジュール１０８は、スナップショット４１２を作成してもよい。別の実施例として、工程３０６で、作成モジュール１０８は、スナップショット４２２を作成してもよい。追加の実施例として、工程３０６で、作成モジュール１０８は、スナップショット４３２を作成してもよい。
【００３６】
本明細書に使用される際、用語「スナップショット」は、ある状態及び／又は時点でのデータの集合体の任意の表示をさし得る。一部の実施例において、「スナップショット」という用語は、空間節約スナップショット（例えば、非変更データのための主要容量を基準にして変更をスナップショットファイルに記憶するスナップショット）をさし得る。一部の実施例において、スナップショットは、ブロックレベル（例えば、変更されたブロックを記録すること）スナップショットを含み得る。
【００３７】
スナップショットは、保護を要求する仮想マシンに対応する任意のデータを含み得る。例えば、スナップショットは、仮想マシンディスクファイル、仮想マシン状態ファイル、及び／又は仮想マシン構成ファイルを含んでもよい。
【００３８】
作成モジュール１０８は、任意の好適なコンテクストでスナップショットを作成できる。例えば、作成モジュール１０８は、今後の工程の前に変更から仮想マシンを保護するためにスナップショットを作成してもよい。したがって、作成モジュール１０８は、先の変換工程が適用された直後にスナップショットを作成してもよい。図４を例として使用すると、増分工程４２０の後で、作成モジュール１０８は、直ちに仮想マシンのスナップショット４２２を取得してもよい。一部の実施例において、作成モジュール１０８は、スナップショットを作成する前に仮想マシンがオフラインであると判定し得る。この様式で、作成モジュール１０８は、先の変換工程が適用されて以来仮想マシンがオンラインにされていないことを確認し得る。
【００３９】
図３に戻って、工程３０８で、本明細書に記載のシステムのうちの１つ以上は、今後の工程の前のスナップショットに仮想マシンを復元し得る。例えば、工程３０８で、復元モジュール１１０は、図２のコンピューティングデバイス２０２の一部として、更新２３０の前のスナップショット２２０に仮想マシン２１０を復元してもよい。図４を例として使用すると、工程３０８で、復元モジュール１１０は、変更データの破棄４２８を実施することにより、増分工程４３０の前のスナップショット４２２に仮想マシンを復元できる。
【００４０】
先述のように、スナップショットに仮想マシンを復元することにより、復元モジュール１１０は、仮想マシンを先の変換工程で達成された状態へ回復することができる。図４を例として使用すると、変更データの破棄４２８を実施してスナップショット４２２に復元することにより、復元モジュール１１０は、仮想マシンを増分工程４２０により達成された状態に戻すことができる。したがって、仮想マシンの載置４２４及び仮想マシンへの変更４２６の後でさえも、増分工程４３０は、増分工程４２０以来仮想マシンへの変更が行われなかったかのように、適用され得る。
【００４１】
復元モジュール１１０は、任意の好適なコンテクストで仮想マシンを復元し得る。一部の実施例において、復元モジュール１１０は、スナップショットに基づいて、仮想マシンへの修正を検出することにより、今後の工程の前に仮想マシンがオンラインにされたことを判定してもよい。例えば、復元モジュール１１０は、スナップショットデータが空ではない（例えば、少なくとも１つの変更を反映していること）ことを判定し得る。これらの実施例において、復元モジュール１１０は、今後の工程の前に仮想マシンがオンラインにされたという判定に基づいて、スナップショットに仮想マシンを復元してもよい。更に又は代替的に、復元モジュール１１０は、仮想マシンがオンラインにされたかどうか、及び／又は仮想マシンに何らかの変更が行われたかどうかにかかわらず、仮想マシンを復元することができる。図４を例として使用すると、復元モジュール１１０は、スナップショット４１２の後に仮想マシンへの変更が行われなかったにしても、スナップショット４１２を破棄することにより変更データの破棄４１４を実施してもよい。同様に、復元モジュール１１０は、スナップショット４３２の後に仮想マシンへの変更が行われなかったにしても、スナップショット４３２を破棄することにより変更データの破棄４３４を実施してもよい。
【００４２】
復元モジュール１１０は、任意の好適な形式で仮想マシンを復元し得る。例えば、前述のように、スナップショットは、仮想マシンデータへのいかなる変更もスナップショットデータストアへリダイレクトすることより、仮想マシンデータを保存するように構成され得る。この実施例では、復元モジュール１１０は、単純にスナップショットデータストアを削除する（例えば、それによって行われたいかなる変更をも破棄する）ことにより、スナップショットに仮想マシンを復元することができる。
【００４３】
一部の実施例において、スナップショットに復元する前に、復元モジュール１１０は、スナップショットが干渉されていないことを確認することができる。例えば、復元モジュール１１０は、仮想マシンに対応するスナップショットイメージが存在すること、及び／又はスナップショットが先の変換工程の直後に取得されたことを確認することができる。この様式で、復元モジュール１１０は、スナップショットが仮想マシンを保護していることを保証することができる。一部の実施例において、復元モジュール１１０は、スナップショットイメージが存在しないと判定し、物理／仮想変換を失敗及び／若しくは以前の状態に回復させる、並びに／又は仮想マシンが信頼できない可能性があるという警告を発行し得る。
【００４４】
上で記述されたように、一部の実施例において、スナップショットは、仮想マシンに行われた各変更をスナップショットデータストアに記憶するように構成されてもよい。例えば、スナップショットは、スナップショットファイルに変更を記憶してもよい。
【００４５】
一部の実施例において、復元モジュール１１０はまた、スナップショットに仮想マシンを復元することに基づいて、今後の工程を実施してもよい。例えば、復元モジュール１１０は、スナップショットに仮想マシンを復元した後で、仮想マシンが物理／仮想変換の今後の工程を行う準備が整っていることを判定し、仮想マシンの準備状況に基づいて今後の工程を実施し得る。
【００４６】
一部の実施例において、復元モジュール１１０はまた、スナップショットに仮想マシンを復元することに基づいてスナップショットを除去してもよい。例えば、復元モジュール１１０は、（例えば、仮想マシンに行われた試変更がスナップショットデータストア内ではなく直接仮想マシンデータ上で実施されるように）スナップショットプロセスを中断する可能性がある。
【００４７】
上記に説明されるように、変換工程後に仮想マシンのスナップショットを作成し、後続の変換工程の前にスナップショットに復元する（例えば、それによって変換工程の間に仮想マシンへ行われたいかなる変更をも破棄する）ことにより、本明細書に記載のシステム及び方法は、仮想マシンが、変換工程の間での予期される同期化された状態に留まることを確実にすることができる。したがって、これらのシステム及び方法は、物理／仮想変換中に広範囲の潜在的な干渉から、効率的かつ効果的に仮想マシンを保護し得る。
【００４８】
図５は、本明細書に記載及び／又は例解される実施形態のうちの１つ以上を実装することが可能な例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０の全て又は一部分は、それぞれ単独で、又は他の要素と組み合わせて、本明細書に記載される特定、判定、作成、復元、実施、及び除去の工程のうちの１つ以上を実施し得る、及び／又は実施するための手段であり得る。コンピューティングシステム５１０の全て又は一部分はまた、本明細書に記載及び／又は例解される任意の他の工程、方法、又はプロセスを実施し得る、及び／又は実施するための手段であり得る。
【００４９】
コンピューティングシステム５１０は、コンピュータで読み取り可能な命令を実行することが可能な任意の単一又はマルチプロセッサコンピューティングデバイス又はシステムを広範に表す。コンピューティングシステム５１０の例としては、これに限定されないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ノートデバイス、又は任意の他のコンピューティングシステム又はデバイスが挙げられる。コンピューティングシステム５１０の最も基本的な構成において、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４及びシステムメモリ５１６を含み得る。
【００５０】
プロセッサ５１４は、概して、データ処理又は命令の解釈及び実行が可能な任意のタイプ又は形態を表す。ある実施形態において、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受信し得る。これらの命令は、プロセッサ５１４に、本明細書に記載及び／又は例解される例示的な実施形態のうちの１つ以上の機能を実施させ得る。
【００５１】
システムメモリ５１６は、概して、データ及び／又は他のコンピュータで読み取り可能な命令を記憶することが可能な揮発性又は非揮発性の記憶デバイス又は媒体の任意のタイプ又は形態を表す。システムメモリ５１６の例としては、これに限定されないが、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必ずしも必要ではないが、ある実施形態において、コンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６等）及び非揮発性記憶デバイス（例えば、以下に詳細に説明されるように、一次記憶デバイス５３２等）を含み得る。一実施例において、図１からのモジュール１０２のうちの１つ以上は、システムメモリ５１６にロードされ得る。
【００５２】
ある実施形態において、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ以上の構成要素又は要素を含んでもよい。例えば、図５に例解されるように、コンピューティングシステム５１０は、通信基盤５１２を介して各々が相互接続され得る、メモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０、及び通信インターフェース５２２を含んでもよい。通信基盤５１２は、概して、コンピューティングデバイスの１つ以上の構成要素の間の通信を容易にすることが可能な基盤の任意のタイプ又は形態を表し得る。通信基盤５１２の例としては、これに限定されないが、通信バス（ＩＳＡ、ＰＣＩ、ＰＣＩｅ、類似のバス等）及びネットワークが挙げられる。
【００５３】
メモリコントローラ５１８は、概して、コンピューティングシステム５１０の１つ以上の構成要素間でメモリ若しくはデータを扱う、又は通信を制御することが可能な任意のタイプ又は形態のデバイスを表し得る。例えば、ある実施形態において、メモリコントローラ５１８は、通信基盤５１２を介して、プロセッサ５１４、システムメモリ５１６、及びＩ／Ｏコントローラ５２０との間で通信を制御し得る。
【００５４】
Ｉ／Ｏコントローラ５２０は、概して、コンピューティングデバイスの入力及び出力機能を調整及び／又は制御することが可能な任意のタイプ又は形態のモジュールを表し得る。例えば、ある実施形態において、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、ディスプレイアダプタ５２６、入力インターフェース５３０、及び記憶インターフェース５３４のような、コンピューティングシステム５１０の１つ以上の要素間のデータの転送を制御又は容易にし得る。
【００５５】
通信インターフェース５２２は、広範に、例示的なコンピューティングシステム５１０と１つ以上の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形態の通信デバイス又はアダプタを表し得る。例えば、ある実施形態において、通信インターフェース５２２は、コンピューティングシステム５１０と、追加のコンピューティングシステムを含む私的又は公的なネットワークとの間の通信を容易にし得る。通信インターフェース５２２の例としては、これに限定されないが、有線ネットワークインターフェース（ネットワークインターフェースカード等）、無線ネットワークインターフェース（無線ネットワークインターフェースカード等）、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも１つの実施形態において、通信インターフェース５２２は、インターネット等の、ネットワークへの直接的なリンクを介して、リモートサーバへ直接的な接続を提供し得る。通信インターフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネットネットワーク等）（「イーサネット」は登録商標、以下同じ）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、間接的にかかる接続を提供してもよい。
【００５６】
ある実施形態において、通信インターフェース５２２はまた、外部バス又は通信チャンネルを介して、コンピューティングシステム５１０と、１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されるホストアダプタを表し得る。ホストアダプタの例としては、これに限定されないが、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ  １３９４ホストアダプタ、ＳＡＴＡ及びｅＳＡＴＡホストアダプタ、ＡＴＡ及びＰＡＴＡホストアダプタ、ファイバーチャンネルインターフェースアダプタ、イーサネットアダプタ等が挙げられる。通信インターフェース５２２はまた、コンピューティングシステム５１０が、分散型又はリモートコンピューティングに関与することを可能にし得る。例えば、通信インターフェース５２２は、実行のためにリモートデバイスから命令を受信するか、又はリモートデバイスへ命令を送信することができる。
【００５７】
図５に例解されるように、コンピューティングシステム５１０はまた、ディスプレイアダプタ５２６を介して通信基盤５１２に連結される少なくとも１つのディスプレイデバイス５２４を含んでもよい。ディスプレイデバイス５２４は、概して、ディスプレイアダプタ５２６によって転送される情報を視覚的に表示することが可能な任意のタイプ又は形態のデバイスを表し得る。同様に、ディスプレイアダプタ５２６は、概して、ディスプレイデバイス５２４上で表示のために、通信基盤５１２から（又は、当該分野で周知の、フレームバッファから）グラフィック、テキスト、及び他のデータを転送するように構成される任意のタイプ又は形態のデバイスを表す。
【００５８】
図５に例解されるように、例示的なコンピューティングシステム５１０はまた、入力インターフェース５３０を介して通信基盤５１２に連結される少なくとも１つの入力デバイス５２８を含んでもよい。入力デバイス５２８は、概して、例示的なコンピューティングシステム５１０に、コンピュータ又は人間のいずれかが生成した入力を提供することが可能な任意のタイプ又は形態の入力デバイスを表し得る。入力デバイス５２８の例としては、これに限定されないが、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
【００５９】
図５に例解されるように、例示的なコンピューティングシステム５１０はまた、記憶インターフェース５３４を介して通信基盤５１２に連結される一次記憶デバイス５３２及びバックアップ記憶デバイス５３３を含んでもよい。記憶デバイス５３２及び５３３は、概して、データ及び／又は他のコンピュータで読み取り可能な命令を記憶することが可能な任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ（「フロッピー」は登録商標、以下同じ）、磁気タイプドライブ、光ディスクドライブ、フラッシュドライブ等であり得る。記憶インターフェース５３４は、概して、記憶デバイス５３２及び５３３とコンピューティングシステム５１０の他の構成要素との間でデータを転送するための任意のタイプ又は形態のインターフェース又はデバイスを表す。
【００６０】
ある実施形態において、記憶デバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータで読み取り可能な情報を記憶するように構成される取り外し可能な記憶ユニットから読み取る、及び／又は取り外し可能な記憶ユニットに書き込むように構成されてもよい。好適な取り外し可能な記憶ユニットの例としては、これに限定されないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイス等が挙げられる。記憶デバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータで読み取り可能な命令がコンピューティングシステム５１０にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、記憶デバイス５３２及び５３３は、ソフトウェア、データ、又は他のコンピュータで読み取り可能な情報を読み取る及び書き込むように構成され得る。記憶デバイス５３２及び５３３はまた、コンピューティングシステム５１０の一部であってもよく、又は他のインターフェースシステムを通じてアクセスされる別個のデバイスであってもよい。
【００６１】
多くの他のデバイス又はサブシステムが、コンピューティングシステム５１０に接続され得る。反対に、本明細書に記載及び／又は例解される実施形態を実践するために、図５に例解される構成要素及びデバイスの全てが存在する必要はない。上で言及されるデバイス及びサブシステムはまた、図５に示されるものとは異なる方法で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を用いてもよい。例えば、本明細書に開示される例示的な実施形態のうちの１つ以上は、コンピュータで読み取り可能な記憶媒体上で、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータで読み取り可能な命令、又はコンピュータ制御論理とも称される）としてコード化され得る。「コンピュータで読み取り可能な記憶媒体」という句は、概して、コンピュータで読み取り可能な命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータで読み取り可能な記憶媒体の例としては、これに限定されないが、搬送波等の伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ及びフロッピーディスク）、光記憶媒体（例えば、ＣＤ−又はＤＶＤ−ＲＯＭ）、電子記憶媒体（ソリッドステートドライブ及びフラッシュ媒体）等の物理的媒体、並びに他の分散システムが挙げられる。
【００６２】
コンピュータプログラムを含むコンピュータで読み取り可能な記憶媒体は、コンピューティングシステム５１０にロードされ得る。次いで、コンピュータで読み取り可能な記憶媒体上に記憶されるコンピュータプログラムの全ての又は一部分は、システムメモリ５１６、並びに／又は記憶デバイス５３２及び５３３の多様な部分に記憶され得る。プロセッサ５１４により実行されるとき、コンピューティングシステム５１０にロードされるコンピュータプログラムは、プロセッサ５１４に、本明細書に記載及び／又は例解される例示的な実施形態のうちの１つ以上の機能を実施させ得る、及び／又は実施するための手段であり得る。更に又は代替的に、本明細書に記載及び／又は例解される例示的な実施形態のうちの１つ以上は、ファームウェア及び／又はハードウェアに実装され得る。例えば、コンピューティングシステム５１０は、本明細書に開示される例示的な実施形態のうちの１つ以上を実装するように適合される、特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００６３】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５がネットワーク６５０に連結され得る、例示的なネットワークアーキテクチャ６００のブロック図である。上に詳述されるように、ネットワークアーキテクチャ６００の全て又は一部分は、単独で、又は他の要素と組み合わせて、本明細書に開示される特定、判定、作成、復元、実施、及び除去の工程を実施し得る、及び／又は実施するための手段であり得る。ネットワークアーキテクチャ６００の全て又は一部分はまた、本開示に記載される他の工程及び特性を実施するために使用され得る、及び／又は実施するための手段であり得る。
【００６４】
クライアントシステム６１０、６２０、及び６３０は、概して、図５の例示的なコンピューティングシステム５１０等の、コンピューティングデバイス又はシステムの任意のタイプ又は形態を表し得る。同様に、サーバ６４０及び６４５は、概して、多様なデータベースサービスを提供する及び／又はあるソフトウェアアプリケーションを作動させるように構成される、アプリケーションサーバ又はデータベースサーバ等のコンピューティングデバイス又はシステムを表す。ネットワーク６５０は、概して、例えば、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを表す。一実施例において、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１からのシステム１００の全ての又は一部分を含んでもよい。
【００６５】
図６に例解されるように、１つ以上の記憶デバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接的に取設され得る。同様に、１つ以上の記憶デバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接的に取設され得る。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、概して、データ及び／又は他のコンピュータで読み取り可能な命令を記憶することが可能な任意のタイプ又は形態の記憶デバイス又は媒体を表す。ある実施形態において、記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、ＮＦＳ、ＳＭＢ、又はＣＩＦＳ等の、多様なプロトコルを使用してサーバ６４０及び６４５と通信するように構成されるネットワーク取設記憶（ＮＡＳ）デバイスを表し得る。
【００６６】
サーバ６４０及び６４５はまた、記憶エリアネットワーク（ＳＡＮ）ファブリック６８０に接続され得る。ＳＡＮファブリック６８０は、概して、複数の記憶デバイス間の通信を容易にすることが可能な任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５と複数の記憶デバイス６９０（１）〜（Ｎ）及び／又は知的記憶アレイ６９５との間の通信を容易にし得る。ＳＡＮファブリック６８０はまた、デバイス６９０（１）〜（Ｎ）及びアレイ６９５が、クライアントシステム６１０、６２０、及び６３０にローカルで取設されたデバイスとして現れるような様式で、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０と記憶デバイス６９０（１）〜（Ｎ）及び／又は知的記憶アレイ６９５との間の通信を容易にし得る。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）と同様に、記憶デバイス６９０（１）〜（Ｎ）及び知的記憶アレイ６９５は、概して、データ及び／又は他のコンピュータで読み取り可能な命令を記憶することが可能な任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【００６７】
ある実施形態において、及び図５の例示的なコンピューティングシステム５１０を参照して、図５の通信インターフェース５２２等の通信インターフェースは、各クライアントシステム６１０、６２０、及び６３０とネットワーク６５０との間の接続性を提供するために使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又はその他のクライアントソフトウェアを使用して、サーバ６４０又は６４５上の情報にアクセスすることが可能であり得る。そのようなソフトウェアは、クライアントシステム６１０、６２０、及び６３０が、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、又は知的記憶アレイ６９５によりホストされるデータにアクセスすることを可能にし得る。図６は、データを交換するためのネットワーク（インターネット等）の使用を描写するが、本明細書に記載及び／又は例解される実施形態は、インターネット又はいかなる特定のネットワークに基づく環境にも限定されない。
【００６８】
少なくとも１つの実施形態において、本明細書に開示される例示的な実施形態のうちの１つ以上の全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、知的記憶アレイ６９５、又はそれらの任意の組み合わせ上にロードされ、それによって実行され得る。本明細書に開示される少なくとも１つの例示的な実施形態の全て又は一部分は、コンピュータプログラムとしてとしてコード化され、サーバ６４０に記憶され、サーバ６４５により作動され、ネットワーク６５０を通じてクライアントシステム６１０、６２０、及び６３０に分散され得る。
【００６９】
上に詳述されるように、コンピューティングシステム５１０及び／又はネットワークアーキテクチャ６００の１つ以上の構成要素は、単独で、又は他の要素と組み合わせて、仮想化されたプラットフォームへ安全に移行するための例示的な方法の１つ以上の工程を実施し得る、及び／又は実施するための手段であり得る。
【００７０】
先述の開示は、特定のブロック図、流れ図、及び実施例を使用して多様な実施形態を説明するが、本明細書に記載及び／又は例解される各ブロック図の構成要素、流れ図の工程、動作、及び／又は構成要素は、個別に及び／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（又はそれらの任意の組み合わせ）構成を使用して、実装されてもよい。更に、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャが同じ機能性を達成するために実装することができるため、事実上例示的なものと見なされるべきである。
【００７１】
一部の実施例において、図１の例示的なシステム１００の全ての又は一部分は、クラウド−コンピューティング又はネットワークに基づく環境の部分を表し得る。クラウド−コンピューティング環境は、インターネットを介して多様なサービス及びアプリケーションを提供することができる。これらのクラウドに基づくサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤等）は、ウェブブラウザ又は他のリモートインターフェースを通じてアクセス可能であり得る。本明細書に記載の多様な機能は、リモートデスクトップ環境又は任意の他のクラウドに基づくコンピューティング環境を通じて提供され得る。
【００７２】
本明細書に記載及び／又は例解されるプロセスパラメータ及び工程の順序は、ほんの一例として提供され、所望に応じて変更することができる。例えば、本明細書に例解及び／又は記載される工程が特定の順序で示される又は論議されるが、これらの工程は、必ずしも例解又は論議される順序で実施される必要はない。本明細書に記載及び／又は例解される多様な例示的な方法はまた、本明細書に記載及び／又は例解される工程のうちの１つ以上を省略してもよく、又は開示されるものに加えて追加の工程を含んでもよい。
【００７３】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈において、本明細書に記載及び／又は例解されているが、これらの例示的な実施形態のうちの１つ以上は、実際に分散を行うために使用されるコンピュータで読み取り可能な記憶媒体の特定のタイプにかかわらず、多様な形態のプログラム製品として分散され得る。本明細書に開示の実施形態はまた、あるタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、スクリプト、バッチ、又はコンピュータで読み取り可能な記憶媒体上又はコンピューティングシステムに記憶され得る、他の実行可能なファイルを含んでもよい。一部の実施例において、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの１つ以上を実施するように、コンピューティングシステムを構成し得る。
【００７４】
更に、本明細書に記載のモジュールのうちの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を１つの形態から別の形態へ変換し得る。例えば、本明細書に列挙されるモジュールのうちの１つ以上は、コンピューティングシステムを仮想化されたプラットフォームへ安全に移行するためのシステムに変換し得る。別の実施例として、本明細書に列挙されるモジュールのうちの１つ以上は、物理／仮想変換プロセスにおいて、損なわれた仮想マシンを、損なわれていない仮想マシンに変換し得る。
【００７５】
先行の説明は、他の当業者が、本明細書に開示される例示的な実施形態の多様な態様を最大限に利用することを可能にするように提供されている。この例示的な説明は、包括的であること、又は開示されるいずれの正確な形態に限定されることも意図するものではない。多くの修正及び変形が、本開示の趣旨及び範囲から逸脱することなく可能である。本明細書に開示される実施形態は、あらゆる点で具体例であり、制限するものではないと見なされるべきである。本開示の範囲を決定する際、添付の特許請求の範囲及びその均等物への参照がなされるべきである。
【００７６】
特に記されない限り、本明細書及び特許請求の範囲に使用される用語「ａ」又は「ａｎ」は、「少なくとも１つの」を意味すると解釈される。更に、使用の容易さのために、本明細書及び特許請求の範囲に使用される際、単語「含む」及び「有する」は、単語「備える」と同義であり、かつ同じ意味を有する。
【図１】
2015503782.tif 000003
【図２】
2015503782.tif 000004
【図３】
2015503782.tif 000005
【図４】
2015503782.tif 000006
【図５】
2015503782.tif 000007
【図６】
2015503782.tif 000008
【手続補正書】
【提出日】平成26年6月24日(2014.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想化されたプラットフォームへ安全に移行するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるコンピューティングデバイスにより実施され、前記方法が、
物理サーバからの物理／仮想変換の対象である仮想マシンを特定することと、
前記物理／仮想変換が完了する前に、前記物理／仮想変換が少なくとも１つの今後の工程を含むことを判定することと、
前記物理／仮想変換が前記今後の工程を含むという判定に基づいて、前記今後の工程の前の前記仮想マシンのスナップショットを作成することと、
前記今後の工程の前の前記スナップショットに前記仮想マシンを復元することと、を含む、コンピュータ実装方法。
【請求項２】
前記スナップショットを作成することが、前記今後の工程の前の変更から前記仮想マシンを保護するように前記スナップショットを作成することを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記スナップショットを作成することが、前記仮想マシンが前記スナップショットを作成する前にオフラインであると判定することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記仮想マシンが、前記スナップショットに基づいて、前記仮想マシンへの修正を検出することにより、前記今後の工程の前にオンラインにされたことを判定することを更に含み、
前記スナップショットに前記仮想マシンを復元することが、前記仮想マシンが前記今後の工程の前にオンラインにされたという判定に基づく、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記スナップショットが、前記仮想マシンに行われた各変更をスナップショットデータストアに記憶するように構成され、
前記スナップショットに前記仮想マシンを復元することが、前記スナップショットデータストアを削除することを含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記今後の工程が、前記仮想マシンへの先の更新以来の前記物理サーバへの増分変更に基づく、前記仮想マシンへの増分更新を含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記スナップショットに前記仮想マシンを復元することに基づいて、前記今後の工程を実施することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記スナップショットに前記仮想マシンを復元することに基づいて、前記スナップショットを除去することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
仮想化されたプラットフォームへ安全に移行するためのシステムであって、
物理サーバからの物理／仮想変換の対象である仮想マシンを特定するようにプログラムされる特定モジュールと、
前記物理／仮想変換が完了する前に、前記物理／仮想変換が少なくとも１つの今後の工程を含むことを判定するようにプログラムされる判定モジュールと、
前記物理／仮想変換が前記今後の工程を含むという判定に基づいて、前記今後の工程の前の前記仮想マシンのスナップショットを作成するようにプログラムされる作成モジュールと、
前記今後の工程の前の前記スナップショットに前記仮想マシンを復元するようにプログラムされる復元モジュールと、
前記特定モジュール、前記判定モジュール、前記作成モジュール、及び前記復元モジュールを実行するように構成される少なくとも１つのプロセッサと、を備える、システム。
【請求項１０】
前記作成モジュールが、前記今後の工程の前の変更から前記仮想マシンを保護するように前記スナップショットを作成することにより、前記スナップショットを作成するようにプログラムされる、請求項９に記載のシステム。
【請求項１１】
前記作成モジュールが、前記仮想マシンが前記スナップショットを作成する前にオフラインであると判定することにより、前記スナップショットを作成するようにプログラムされる、請求項９に記載のシステム。
【請求項１２】
前記復元モジュールが、前記スナップショットに基づいて、前記仮想マシンへの修正を検出することにより、前記今後の工程の前に前記仮想マシンがオンラインにされたことを判定するように更にプログラムされ、
前記復元モジュールが、前記今後の工程の前に前記仮想マシンがオンラインにされたという判定に基づいて、前記スナップショットに前記仮想マシンを復元するようにプログラムされる、請求項９に記載のシステム。
【請求項１３】
前記スナップショットが、前記仮想マシンに行われた各変更をスナップショットデータストアに記憶するように構成され、
前記復元モジュールが、前記スナップショットデータストアを削除することにより前記スナップショットに前記仮想マシンを復元するようにプログラムされる、請求項９に記載のシステム。
【請求項１４】
前記今後の工程が、前記仮想マシンへの先の更新以来の前記物理サーバへの増分変更に基づく、前記仮想マシンへの増分更新を含む、請求項９に記載のシステム。
【請求項１５】
前記復元モジュールが、前記スナップショットに前記仮想マシンを復元することに基づいて、前記今後の工程を実施するように更にプログラムされる、請求項９に記載のシステム。
【国際調査報告】
2015503782.tif 000009
2015503782.tif 000010
2015503782.tif 000011