(57)【要約】【課題】ソースサーバから宛先サーバまで１つ以上の仮想マシンの迅速かつ効率的なマイグレーションを容易にする論理コンテナを形成する。【解決手段】論理コンテナは、１つ以上の仮想マシンに関するファイルの全ておよび状態情報を含むことができる。論理コンテナをソースサーバから取り外し、宛先サーバに取り付けることによって、１つ以上の仮想マシンをマイグレートすることができる。ソースサーバから宛先サーバまで多数の仮想マシンのバッチマイグレーションを容易にするためにマネジメントサービスを含むことができる。【選択図】図３
2014142957.tif 000002
【特許請求の範囲】
【請求項１】
論理コンテナがソースサーバ上の複数の仮想マシンに関する全てのファイルを含むように、マネジメントサービスによって前記論理コンテナを形成するステップと、
前記複数の仮想マシンのための状態情報を前記論理コンテナに関連付けるステップと、
を具える方法であって、
前記複数の仮想マシンに関する前記全てのファイルを前記ソースサーバから宛先サーバにコピーせずに、前記論理コンテナを前記ソースサーバから取り外し前記宛先サーバに取り付けることによって、前記論理コンテナは、前記複数の仮想マシンを前記ソースサーバから前記宛先サーバにマイグレートするのに必要な情報の全てを含むことを特徴とする方法。
【請求項２】
前記ファイルは前記論理コンテナに１つのデータファイルとして格納されることを特徴とする請求項１に記載の方法。
【請求項３】
前記全てのファイルおよび前記状態情報を前記論理コンテナに格納するために、前記マネジメントサービスを用いることを特徴とする請求項１に記載の方法。
【請求項４】
前記複数の仮想マシンが少なくとも３つの仮想マシンを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記複数の仮想マシンに関する前記全てのファイルを複数の記憶装置に格納することを特徴とする請求項１に記載の方法。
【請求項６】
前記複数の仮想マシンに関する前記全てのファイルを前記論理コンテナに格納するステップおよび／または前記複数の仮想マシンのための前記状態情報を前記論理コンテナに格納するステップを、前記マネジメントサービスを使用して、単一オペレーションで達成することを特徴とする請求項１に記載の方法。
【請求項７】
前記複数の仮想マシンが第１の複数の仮想マシンであり、前記１つのデータファイルが第１のデータファイルであり、前記論理コンテナが第１の論理コンテナである請求項１に記載の方法であって、前記方法は、
第２の複数の仮想マシンに関する全てのファイルを第２の論理コンテナが含むように、前記第２の論理コンテナを前記マネジメントサービスによって形成するステップと、
前記第２の複数の仮想マシンのための状態情報を前記第２の論理コンテナに関連付けるステップと、を具え、
前記第２の複数の仮想マシンに関する前記全てのファイルをソースサーバから宛先サーバにコピーせずに、前記第２の論理コンテナを前記ソースサーバから取り外し前記宛先サーバに取り付けることによって、前記第２の論理コンテナは、前記第２の複数の仮想マシンを前記ソースサーバから前記宛先サーバにマイグレートするのに必要な情報の全てを含むことを特徴とする方法。
【請求項８】
複数の仮想マシンに関する全てのファイルと状態情報とを論理コンテナが含むように、前記論理コンテナをマネジメントサービスによって形成するステップと、
前記論理コンテナをソースサーバから取り外すステップと、
前記論理コンテナを宛先サーバに取り付けるステップと、を具え、
前記複数の仮想マシンを、前記ソースサーバから前記宛先サーバにマイグレートすることを特徴とする方法。
【請求項９】
前記論理コンテナを前記ソースサーバから取り外す前に、前記複数の仮想マシンをシャットダウンするステップを更に具えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記マネジメントサービスが、前記複数の仮想マシンを単一オペレーションでシャットダウンすることを特徴とする請求項９に記載の方法。
【請求項１１】
前記マネジメントサービスが、前記論理コンテナを前記宛先サーバに取り付けた後、前記複数の仮想マシンを単一オペレーションでスタートアップすることを特徴とする請求項９に記載の方法。
【請求項１２】
前記複数の仮想マシンが起動中に、前記複数の仮想マシンを前記ソースサーバから前記宛先サーバまでマイグレートするステップをさらに具えることを特徴とする請求項８に記載の方法。
【請求項１３】
前記論理コンテナを前記ソースサーバから取り外すステップが、前記ソースサーバによる前記論理コンテナに対する排他的アクセスを放棄するステップを含み、前記論理コンテナを前記宛先サーバに取り付けるステップが、前記論理コンテナに対する排他的アクセスを獲得するステップを含むことを特徴とする請求項８に記載の方法。
【請求項１４】
前記ファイルは、前記論理コンテナに１つのデータファイルとして格納されることを特徴とする請求項８に記載の方法。
【請求項１５】
ソースサーバ上で動作している複数の仮想マシンを、前記仮想マシンを安定状態にするために停止するステップと、
前記複数の仮想マシンに関する全てのファイルを論理コンテナが含むように、前記論理コンテナをマネジメントサービスによって形成するステップと、
前記仮想マシンのための状態情報を、前記論理コンテナに格納するステップと、
前記論理コンテナを前記ソースサーバから取り外すステップと、
前記論理コンテナを宛先サーバに取り付けるステップと、
前記宛先サーバ上で、前記複数の仮想マシンの動作を再開するステップとを有し、
前記仮想マシンは、前記仮想マシンの起動中に前記ソースサーバから前記宛先サーバへマイグレートされる
ことを特徴とする方法。
【請求項１６】
前記複数の仮想マシンが少なくとも３つの仮想マシンを含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記複数の仮想マシンを停止するステップ、前記複数の仮想マシンのための状態情報を格納するステップ、および／または前記複数の仮想マシンの動作を再開するステップは、前記マネジメントサービスを使用して、単一オペレーションで達成されることを特徴とする請求項１５に記載の方法。
【請求項１８】
前記ファイルは、１つのデータファイルとして前記論理コンテナに格納されることを特徴とする請求項１５に記載の方法。
【請求項１９】
前記論理コンテナを前記ソースサーバから取り外すステップが、前記ソースサーバによる前記論理コンテナに対する排他的アクセスを放棄するステップを含み、前記論理コンテナを前記宛先サーバに取り付けるステップが、前記論理コンテナに対する排他的アクセスを獲得するステップを含むことを特徴とする請求項１５に記載の方法。
【請求項２０】
前記論理コンテナが複数の記憶装置に格納されたファイルを含むことを特徴とする請求項１５に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
従来、１つのコンピュータシステムは、１つのオペレーティングシステムを起動するものであった。例えば、各コンピュータユーザを、１つのオペレーティングシステムおよび要求に応じて様々なアプリケーションプログラムを起動するクライアント・コンピュータデバイスに割り当てることができる。サーバ・コンピュータデバイスもまた、１つのオペレーティングシステムおよび様々なアプリケーションを同様の方法で起動することができる。
【０００２】
オペレーティングシステムおよびコンピュータシステム上で起動できるアプリケーションプログラムの数を増加するために、あるタイプのＣＰＵを有する所定のコンピュータ（ホストと呼ばれている）が、エミュレータプログラム（ホストコンピュータが無関係なタイプのＣＰＵの命令をエミュレートすることができ、ゲストと呼ばれている）を含むという仮想化技術が開発されてきた。このように、ホストコンピュータは、所定のゲスト命令に応答して呼ばれる１つ以上のホスト命令を生じるアプリケーションを実行する。それゆえ、ホストコンピュータは、自身のハードウェアアーキテクチャ用に設計されたソフトウェアと、無関係なハードウェアアーキテクチャを有するコンピュータ用に書かれたソフトウェアとの両方を走らせることができる。例えば、アップル・コンピュータにより製造されるコンピュータシステムは、ＰＣベースコンピュータシステム用に書かれたオペレーティングシステムおよびプログラムを実行できる。エミュレータプログラムを使用して、１つのＣＰＵ上で多数の非互換のオペレーティングシステムを並行に起動することも可能である。この構成では、各オペレーティングシステムは互いに互換性がないが、エミュレータプログラムは２つのオペレーティングシステムのうちの１つをホストとし、他の非互換のオペレーティングシステムを同じコンピュータシステム上で並行に起動できる。
【０００３】
ゲストコンピュータシステムがホストコンピュータシステム上でエミュレートされるとき、ゲストコンピュータシステムが、１つの特定のハードウェアアーキテクチャのオペレーションの純粋なソフトウェア表現としてホストコンピュータシステム内に存在するだけなので、一般に、ゲストコンピュータシステムは「仮想マシン」と言われる。エミュレータ、仮想マシンおよびプロセッサ・エミュレーションという用語は、コンピュータシステム全体のハードウェアアーキテクチャを模倣（エミュレート）する能力を意味するために、ほとんど同じ意味に用いられることがある。例えば、いくつかの市販のソフトウェアは、インテル80X86ペンティアムプロセッサ（登録商標）および様々なマザーボード・コンポーネントおよびカードを含む全てのコンピュータをエミュレートする。これらのコンポーネントのオペレーションは、ホストマシン上で起動している仮想マシンにおいてエミュレートされる。ホストコンピュータ（例えば、ＰｏｗｅｒＰＣプロセッサを有するコンピュータシステム）のソフトウェアおよびハードウェアアーキテクチャをオペレーティングシステム上で実行しているエミュレータプログラムは、全てのゲストコンピュータシステムのオペレーションを模倣する。
【０００４】
エミュレータプログラムは、ホストマシンのハードウェアアーキテクチャとエミュレートされた環境内で動作するソフトウェアにより送信される命令との間の中継（インターチェンジ）として作用する。このエミュレータプログラムは、物理的なコンピュータハードウェア上で直接起動しているオペレーティングシステムであるホストオペレーティングシステム（ＨＯＳ）となることができる。あるいは、エミュレートされた環境は、ハードウェア上で直接起動するソフトウェア層であり、ハイパーバイザが仮想化しているハードウェア（ハイパーバイザが、それより上で起動しているオペレーティングシステム層に気づかれないことを可能にする）と同様のインタフェースを露出することにより、マシンの全てのリソースを仮想化するハイパーバイザまたは仮想マシンモニタとすることもできる。ホストオペレーティングシステムおよびハイパーバイザは、同一の物理ハードウェア上に並んで起動することができる。
【０００５】
物理計算機上の仮想マシンの多くの利点の１つは、同一の仮想マシンの多数の例（インスタンス）を迅速かつ安価に作成できることである。多数の仮想マシンが単一のホストマシン（ホストコンピュータシステム）環境において、同時に存在することができ、ホストマシンのリソースを様々な仮想マシンで分割できる。仮想マシンを１つのホストマシンから他に移動、すなわち、「マイグレート」する能力と組み合わせたとき、この柔軟なリソース・アロケーション（資源配分）はより有効となる。
【０００６】
仮想マシンを１つのホストマシンから他のホストマシンに迅速かつ容易にマイグレートすることが可能であることは、例えば、システムの「負荷平衡」のため、マシンを廃棄するため、ハードウェアまたはソフトウェアのアップグレードを実行するため、または、障害回復に対処するために有効である。より詳しくは、仮想マシンが１つのホストマシンで利用可能な分より多くの処理能力を必要とする場合、余分の容量を有する他のホストマシンへ移動することができる。ホストマシンがハードウェア保守またはソフトウェア・アップグレードを必要とする場合、仮想マシンを１つの物理計算機から他に一時的にマイグレートすることができ、これによって、第１の物理計算機を停止してアップグレードすることができる。障害回復の場合、例えば、差し迫った洪水または嵐が予測される場合、データセンターの全ての仮想マシンを、危険な状況の外にある他のデータセンターにマイグレートし、その後、脅威が去ったとき元にマイグレートすることができる。このことによって、全ての場合において、例えば、重要なビジネスアプリケーションの中断なしで、さらに、ユーザが中断を知ることさえなしで稼働し続けることができる。
【０００７】
仮想マシン・マイグレーション・プロセスを実行することは、仮想マシンの全ての状態を移行することが必要である。これらの状態は、３つの領域を含む。すなわち、（１）仮想マシンの仮想化デバイス状態（全ての仮想化コントローラ、マザーボードの仮想化デバイス、例えば、仮想化割込みコントローラ、仮想化ＳＣＳＩコントローラおよび仮想化ビデオ・コントローラの内部状態）、（２）仮想マシンのメモリの状態、および（３）仮想マシンのディスク状態（永続記憶装置）である。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
サーバ仮想化技術において、仮想マシンの状態情報およびデータは同一の記憶対象には存在しない。このことは、特に多数の仮想マシンのマイグレーションが必要なととき、多くの問題を提示しうる。例えば、管理者は、各々および全ての仮想マシンをマイグレートすること、および、アクセスされてきたストレージが宛先のホストマシンでもアクセスできるかを確認することを気にする必要がある。また、多数の仮想マシンのマイグレーションには長い時間がかかり、各仮想マシンに必要な多数のステップのため、エラーが発生しやすいプロセスである。
【０００９】
１つ以上の仮想マシン、好ましくは、多数の仮想マシンを迅速かつ効率よく移動する方法を提供することが望ましい。
【課題を解決するための手段】
【００１０】
本明細書では、１つ以上仮想マシンをマイグレートするためのシステムと方法の各種実施例が示される。仮想マシンに関する全ファイルおよび仮想マシンに関する状態情報を含む論理コンテナを設けることができる。論理コンテナを用いて、全ファイルを１台のホストから他のホストまでコピーする必要をなくすことにより、仮想マシンを迅速かつ効率よくマイグレートすることができる。また、多数の仮想マシンをマイグレートするのに用いられるマネジメントサービスを設けることもできる。マネジメントサービスにより、管理者は、マイグレーションプロセスの一部として全ての仮想マシンをシャットダウンして、スタートアップすることができる。論理コンテナおよび／またはマネジメントサービスの使用は、通常実行すべき多数のステップをなくすことにより、大多数の仮想マシンのマイグレーションを著しく容易にする。任意数の仮想マシンを、一定時間あるいはほぼ一定時間でマイグレートすることができる。
【００１１】
一実施例において、論理コンテナを形成する方法は、複数の仮想マシンに関するファイルの全てを論理コンテナに関連付けるステップと、複数の仮想マシンのための状態情報を論理コンテナに関連付けるステップとを含む。論理コンテナをソースサーバから取り外し、宛先サーバに取り付けることによって、複数の仮想マシンに関するファイルの全てをソースサーバから宛先サーバにコピーせずに、論理コンテナは、複数の仮想マシンをソースサーバから宛先サーバまでマイグレートするのに必要な情報の全てを含むことができる。状態情報は、プロセッサレジスタの状態、仮想ハードウェアの状態および仮想記憶の状態のうち、少なくとも１つを含むことができる。また、マネジメントサービスを用いて、ファイルの全ておよび状態情報を論理コンテナに関連付けることができる。複数の仮想マシンは、少なくとも３台、４台、５台、６台またはより多くの仮想マシンを含むことができる。複数の仮想マシンに関するファイルを複数の記憶装置に格納できる。複数の仮想マシンに関するファイルの全てを論理コンテナに関連付けること、および／または複数の仮想マシンのための状態情報を論理コンテナに関連付けることは、マネジメントサービスを使用して、単一のオペレーションで達成できる。
【００１２】
他の実施例において、複数の仮想マシンをマイグレートする方法は、ソースサーバから論理コンテナを取り外し、宛先サーバに論理コンテナを取り付けるステップを含む。論理コンテナは、ソースサーバ上の複数の仮想マシンに関するファイルの全てを含む。一実施例において、論理コンテナをソースサーバから取り外す前に、複数の仮想マシンをシャットダウンすることができる。マネジメントサービスを用いて、複数の仮想マシンを単一のオペレーションでシャットダウンすることができる。また、マネジメントサービスを用いて、宛先サーバに論理コンテナを取り付けた後に複数の仮想マシンを単一のオペレーションでスタートアップすることができる。他の実施例では、仮想マシンが起動中に、複数の仮想マシンをマイグレートすることができる。ソースサーバから論理コンテナを取り外すステップは、ソースサーバによる論理コンテナに対する排他的アクセスを放棄するステップを含み、宛先サーバに記憶（論理）コンテナを取り付けるステップは論理コンテナに排他的アクセスを獲得するステップを含む。論理コンテナは複数の記憶装置に格納されるファイルを含む。
【００１３】
他の実施例において、仮想マシンをマイグレートする方法は、ソースサーバ上で動作している仮想マシンを、安定状態にするために停止するステップと、仮想マシンのための状態情報を論理コンテナに格納するステップと、論理コンテナをソースサーバから取り外すステップと、論理コンテナを宛先サーバに取り付けるステップと、論理コンテナから状態情報を読み出すステップと、宛先サーバ上で仮想マシンの動作を再開するステップと、を含む。この方法は、同じ方法を使用して、複数の仮想マシンをマイグレートするステップを含むことができる。マネジメントサービスを用いて、複数の仮想マシンを停止し、複数の仮想マシンのための状態情報を格納し、および／または、複数の仮想マシンの動作を単一オペレーションで再開することができる。状態情報は、プロセッサレジスタの状態、仮想ハードウェアの状態および仮想記憶の状態の少なくとも１つを含むことができる。
【発明を実施するための形態】
【００１４】
１つ以上の仮想マシンを１つのホストから他のホストまでマイグレートするのに用いることができるシステムおよび方法の多くの実施例は、本明細書に記載されている。本発明のシステムおよび方法は、特に多数の仮想マシンを１台のサーバから他のサーバまでマイグレートするのに適している。これは、多数のサーバおよび共にネットワーク化される記憶装置を有する大規模ネットワーク・コンピュータシステムにおいて望ましい。一実施例において、本明細書に記載されているシステムおよび方法は、１００台以上の多数の仮想マシンをマイグレートするために用いることができる。過去においては、各仮想マシンを別個にマイグレートする必要があったので、このような方法は非常に時間がかかって面倒であった。
【００１５】
コンピュータシステムは、ハードウェアの基盤層上で起動しているソフトウェアの１層以上の層を有していると概念的にみなされる。この階層化は抽象化のために行われる。ソフトウェアの所定の層のためのインタフェースを定めることによって、その層は、それより上の他の層によって、異なって実現される。適切に設計されたコンピュータシステムにおいて、各層はその直下の層のみを知る（依存する）。これによって、層または「スタック」（隣接している多層）を、前記層またはスタックより上の層に否定的に影響を与えずに交換できる。例えば、ソフトウェアプリケーション（上層）は、ファイルをある形の永久記憶装置に書き込むために一般的にオペレーティングシステム（下層）の下位レベルに依存し、これらのアプリケーションはフロッピー（登録商標）ディスク、ハードディスクまたはネットワーク・フォルダに書き込むデータの違いを理解する必要はない。この下層がファイルを書き込むための新規なオペレーティングシステムコンポーネントと交換される場合、上層ソフトウェアプリケーションの動作は影響を受けないままである。
【００１６】
階層化したソフトウェアの柔軟性によって、仮想マシンが、本当は他のソフトウェア層である仮想ハードウェア層を表すことができる。このような方法で、仮想マシンは、ソフトウェアの上位層が別々のコンピュータシステム上で起動しているという錯覚を引き起こすことができる。このように、仮想マシンによって、多数の「ゲストシステム」が単一の「ホストシステム」上で並行して動作できる。
【００１７】
仮想化が、オペレーティングシステムレベルの仮想化（図１）、ハードウェアレベルの仮想化（図２）またはより高水準の仮想化を含むシステム層の範囲に適用されることを認識されたい。図１は、オペレーティングシステムレベルで仮想化されたコンピュータシステムまたはサーバ100の一実施例を示す図である。仮想化されたコンピュータシステム100は、物理的なコンピュータハードウェア102の直上で起動しているホストオペレーティングシステム・ソフトウェア層104を含む。２つの仮想化層は、ホストオペレーティングシステム104上にある。各仮想化層は仮想マシン112、122を含む。図１に示すように、アプリケーション106のようなアプリケーションは、仮想マシン112、122と並列に、ホストオペレーティングシステム上で起動できる。また、各仮想マシン112、122は、ゲストオペレーティングシステム114、124および１以上のアプリケーション116、126を起動する。コンピュータシステム100が多くの適切な方法で変形可能であることに留意されたい。例えば、コンピュータシステム100は、図１に示されるより多くの仮想マシンを含むことができる。
【００１８】
図２は、ハードウェアレベルで仮想化されたコンピュータシステムまたはサーバ200の一実施例を示す。仮想化されたコンピュータシステム200は、物理的なコンピュータハードウェア202上に仮想化層を含む。仮想化層はハイパーバイザ204を含む。ハイパーバイザ204がハードウェアに直接アクセスをするので、このタイプの方法は、しばしば、「ベア・メタル」方法と呼ばれる。このために、ハイパーバイザ204は、オペレーティングシステムレベルの仮想化よりスケーラビリティ、ロバストネスおよびパフォーマンスが優れるという利点を提供できる。
【００１９】
図２に示される実施例では、コンピュータシステム200は、複数の仮想マシン205、215、225、235、245、255を含む。ゲストオペレーティングシステム206、216、226、236、246、256は、仮想マシン205、215、225、235、245、255上で動作する。ゲストオペレーティングシステム206、216、226、236、246、256は、アプリケーション208、218、228、238、248、258を実行する。マネジメントサービス270は、ハイパーバイザ204上で動作し、クラスタリング・アプリケーション260を含む。一実施例において、コンピュータシステム200は、ローカルエリアネットワークのようなより大きなネットワークの一部として共にネットワーク化される多数のサーバのうちの１つである。このようなシステムでは、マネジメントサービス270がネットワーク上のいずれかのサーバ上に存在し、さまざまなエージェントまたは他の制御技術を使用して、サーバ上に存在する仮想マシンと同様にサーバの全体のネットワークの動作を管理できることに留意されたい。また、物理的なハードウェア202がコンピュータシステム200のプロセッサにネットワーク接続される外部デバイスを含むことができることにも留意されたい。例えば、ハードウェア202は、ストレージ・エリア・ネットワーク（ＳＡＮ）またはネットワーク接続ストレージ（ＮＡＳ）を含むことができる。
【００２０】
図１および２に関して、図示される仮想マシンは、ソフトウェア構成としてのみ存在し、仮想マシンを各ゲストオペレーティングシステムに与えるだけでなく、ゲストオペレーティングシステムに必要なソフトウェア・ステップの全てを実行する専門ソフトウェアコードの存在のために、実際の物理コンピュータハードウェア102、202と対話が可能である仮想化されたコンピュータハードウェア表現である、ということを認識することは重要である。
【００２１】
この完全な機能は、特定の実施例（例えば図１に例示される）において、仮想マシンモニタがホストオペレーティングシステム104の一部を構成するような場合、仮想マシンモニタと称することができる。しかし、他の実施例において、仮想マシンモニタは、ホストオペレーティングシステム104上で起動しており、ホストオペレーティングシステム104を介してのみコンピュータハードウェア102と対話するアプリケーションとすることもできる。他の実施例において、仮想マシンモニタは、あるレベルでは、ホストオペレーティングシステム104を介してコンピュータハードウェア102と間接的に対話するが、他のレベルでは、仮想マシンモニタは、コンピュータハードウェア102と直接対話する（ホストオペレーティングシステムがコンピュータハードウェアと直接対話する方法と同様に）、部分的に独立したソフトウェアシステムを具えることもできる。さらに他の実施例（例えば図２に例示される）において、仮想マシンモニタは、ホストオペレーティングシステムを利用せずに、全レベルでコンピュータハードウェア202と直接対話する（ホストオペレーティングシステムが図１のコンピュータハードウェアと直接対話する方法と同様に）、ハイパーバイザ204のような完全に独立したソフトウェアシステムを具えることができる。仮想マシンモニタを実現するためのこれらの変更の全ては、本願明細書に記載されているコンピュータシステムの代替実施例を構成すると考えることができる。
【００２２】
図３には、１つ以上の仮想マシンをマイグレートするためのシステムが示される。システムは、ソースサーバ302、宛先サーバ304および論理コンテナ308を含む。サーバという用語が、広く一般的な意味で用いられ、１つのコンピュータデバイスに対応するということに留意されたい。サーバ302、304は、それぞれ、メモリ、プロセッサ等のハードウェアを含むことができる。論理コンテナ308はストレージリポジトリ306、310を含む。ストレージリポジトリ306、310はシステムの物理記憶を表す。各ストレージリポジトリ306、310は、任意の適切な記憶装置（例えば、特に、ハードディスク、フラッシュメモリ・ドライブ、ドライブ・アレイまたはピア・ツー・ピア・ストレージシステム）を含むことができる。一実施例において、各ストレージリポジトリ306、310は、ストレージ・エリア・ネットワーク（ＳＡＮ）を含むことができる。ＳＡＮは、記憶装置（例えばハードディスク）のネットワークとみなすことができる。大企業において、ＳＡＮは、サーバ302、304および潜在的に多数の他のサーバを、ディスク記憶装置の中央集中に接続する。ＳＡＮは何百ものサーバ（それぞれがハードディスクを有する）の管理をより容易にすることによって、システム管理を改善する。任意の数および構成の記憶装置を論理コンテナ308に含めることができることを認識されたい。図３に示すように、サーバ302、304および論理コンテナ308は、ネットワーク（例えば論理コンテナ308のためのＳＡＮ接続）を介して、各々接続できる。
【００２３】
各サーバ302、304は、１つ以上の仮想マシンのホストとなるように構成できる。大企業のネットワーク環境において、サーバ302、304は、比較的多数の仮想マシンのホストとなるように構成できる。図３のサーバ302、304に示される仮想マシンの数は、説明のために選択されたのみであり、制限するものとみなされてはならない。図３では、仮想マシン312、314を、ソースサーバ302から宛先サーバ304までマイグレートすることが示される。仮想マシン316はソースサーバ302上に残される。仮想マシンをマイグレートするこの例は、サーバ302、304の負荷をバランスするのが必要なときに生ずる状況を反映できる。
【００２４】
仮想マシン312、314は、各々、物理的計算機のファイルおよび状態情報に類似の、関連する組のファイルおよび状態情報を有する。ファイルは、設定ファイル、仮想ディスクファイル、仮想記憶ファイル、仮想マシン312、314がサーバ302、304上で起動するのに必要な他のタイプの情報を含む。一実施例において、関連するファイルを、１つのデータファイルとして論理コンテナ308に格納できる。物理ファイルを、１つの記憶装置または論理コンテナ308内の多数の記憶装置内に格納できる。各仮想マシン312、314のための状態情報は、プロセッサレジスタの状態、仮想ハードウェアの状態、仮想記憶の状態等に関する情報を含むことができる。
【００２５】
図３に示すように、仮想マシン312、314に関連する全てのファイルおよび状態情報を、論理コンテナまたは記憶コンテナ308に格納できる。論理コンテナ308が多数の物理的なストレージリポジトリ306、310を含むことができ、各ストレージリポジトリ306、310が多数の物理的な記憶装置（例えば物理的なハードディスク、パーティション等）を含むことを認識されたい。論理コンテナ308は、仮想マシン312、314に関するファイルおよび状態情報のより高レベルの編成を提供すると考えられる。論理コンテナ308は、マイグレートする仮想マシンのためのファイルの全ておよび状態情報を含むように形成されなければならない。
【００２６】
論理コンテナ308を使用することにより、１台の仮想マシン、特に複数の仮想マシンのマイグレーションが非常に単純になる。全ファイルをソースサーバ302から宛先サーバ304にコピーする（これは、以前、行われていた通常の方法であった）代わりに、管理者は、論理コンテナ308を、ソースサーバ302から取り外し、宛先サーバ304に取り付けるだけでよい。ソースサーバ302と宛先サーバ304との間で交換される情報量は、宛先サーバ304が記憶コンテナ308に正しく接続されるのに必要な量のみである。
【００２７】
一実施例において、仮想マシン312、314のマイグレーションを、図２に示されるマネジメントサービス270によって制御できる。マネジメントサービス270は、管理者または他のユーザが、仮想マシン312、314を最小限のステップで迅速かつ容易にマイグレートすることを可能にする。例えば、マネジメントサービス270は、仮想マシンをソースサーバ302から宛先サーバ304にマイグレートするために、管理者からの入力を受信するようにプログラムすることができる。マネジメントサービス270は、サーバ302、304と論理コンテナ308との間の必要な接続が良好であること、および、マイグレーションを達成するのに必要な全データが論理コンテナ308内にあることを確認することによって、この入力に応じて働く。次に、マネジメントサービス270は、仮想マシン312、314を自動的にシャットダウンし、それらをサーバ304にマイグレートした後、再起動できる。これは、多数の仮想マシンをサーバ間でマイグレートする方法を著しく単純化する。
【００２８】
マネジメントサービス270を用いて、マイグレートすべき仮想マシンの数に応じて、論理コンテナを形成し、破壊し、使用可能にし、あるいは使用不能にすることができる。一実施例において、マネジメントサービス270は、論理コンテナを形成するために図４に示される方法を使用することができる。ステップ402に示されるように、マイグレートされるべき１つの仮想マシンまたは仮想マシンの組に関する全ファイルを、論理コンテナに関連付ける。また、ステップ404に示されるように、１つの仮想マシンまたは仮想マシンの組のための状態情報を論理コンテナに格納する。ライブ・マイグレーション（仮想マシンがマイグレーション時に起動している）では、仮想マシンをマイグレーションの直前に停止すると、状態情報を論理コンテナに格納する。コールド・マイグレーション（仮想マシンがマイグレーション時にシャットダウンする）では、仮想マシンをシャットダウンする直前に、状態情報を論理コンテナに格納する。
【００２９】
マネジメントサービス270が仮想マシンのマイグレーションを制御するように示されるが、他の実施例では、サーバ302、304上の仮想マシンおよび論理コンテナ308を制御するように個別の仮想マシンの制御プログラムを設けることができると認識されたい。
【００３０】
図５には、仮想マシン312、314のコールド・マイグレーション方法の一実施例が示される。第１のステップ502において、ソースサーバ302上の仮想マシン312、314をシャットダウンする。仮想マシン312、314をシャットダウンした後、状態情報を論理コンテナ308に格納する。一旦仮想マシン312、314をシャットダウンすると、次のステップ504において、論理コンテナ308をソースサーバ302から取り外す。一般的に論理コンテナ308をソースサーバ302から取り外すステップは、論理コンテナ308に対する排他的アクセスを放棄するステップを含む。次に、ステップ506において、論理コンテナ308を宛先サーバ304に取り付ける。一般的に、このステップは、宛先サーバ304によって、論理コンテナ308に対する排他的アクセスを確立するステップを含む。一実施例において、宛先サーバ304が論理コンテナ308への接続を確立できるように、設定情報を宛先サーバ304に提供することができる。設定情報を、マネジメントサービス270によって提供する、あるいは、ソースサーバ302から複製することができる。一旦論理コンテナ308を宛先サーバ304に取り付けると、仮想マシン312、314のための状態情報を論理コンテナ308から読み出し、仮想マシン312、314をスタートアップする。
【００３１】
図６は、仮想マシン312、314のホット・マイグレーション方法（すなわち、仮想マシン312、314が起動中にマイグレートする方法）の一実施例を示す。第１のステップ602において、状態情報をマイグレーション中に一定に保つために、仮想マシン312、314を停止する。前述のように、このステップ602、および、この方法あるいは本明細書に記載されている他の方法の任意のステップを、マネジメントサービス270が自動的に制御および／または実行できる。次のステップ604において、状態情報を論理コンテナ308に格納する。状態情報は、メモリの内容等に関する情報を含むことができる。次のステップ606、608において、論理コンテナ308を、ソースサーバ302から取り外し、宛先サーバ304に取り付ける。これらのステップは、上述したコールド・マイグレーション・プロセスのステップ504、506と同様に実行される。論理コンテナ308を宛先サーバ304に取り付け、この２つの構成要素は、各々通信するので、状態情報を論理コンテナ308から読み出す。最終ステップ610において、仮想マシン312、314の動作を再開する。
【００３２】
図５および図６に示される方法は、特にマネジメントサービス270のようなマネジメントプログラムを用いてマイグレーションを制御するとき、多数の仮想マシンを迅速かつ効率よくマイグレートするのに用いることができる点に留意されたい。多数の仮想マシンをマイグレートするのに必要なステップ数は、仮想マシンの数と無関係である。１台の仮想マシンをマイグレートする場合も、２０台の仮想マシンをマイグレートする場合も、ステップ数は同じである。これは、時間および人手の著しい節約につながる。
【００３３】
図７は、本明細書において、説明および／または図示される１つ以上の実施例を実現できる代表的なコンピュータシステム710のブロック図である。コンピュータシステム710は、コンピュータ可読の命令を実行できる任意のシングルまたはマルチプロセッサ・コンピュータデバイスまたはシステムを広く示す。コンピュータシステム710の例としては、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型計算システム、携帯デバイスまたは他のいかなるコンピュータシステムまたはデバイスが挙げられるが、これらに限定されるものではない。そのうち最も基本的な構成において、コンピュータシステム710は、少なくとも１つのプロセッサ714およびシステムメモリ716を具えることができる。
【００３４】
プロセッサ714は、一般に、データを処理する、または命令を解釈し実行できる、任意の種類の処理装置を表す。ある実施例では、プロセッサ714は、ソフトウェアプリケーションまたはモジュールから命令を受信できる。これらの命令は、プロセッサ714に、本明細書において説明および／または図示される１つ以上の例示的実施例の機能を実行させることができる。例えば、プロセッサ714は、単独でまたは他要素と共に、本明細書に記載の、関連付け、マイグレーション、格納、検索、取り付け、取り外し、設置、修復、比較ステップの１つ以上のステップを実行できる、および／または、実行手段となりうる。プロセッサ714は、また、本明細書に記載および／または例示される任意の他のステップ、方法、プロセスを実行できる、および／または、実行手段となりうる。
【００３５】
システムメモリ716は、一般に、データおよび／または他のコンピュータ可読の命令を格納できる、任意の種類の揮発性または不揮発性の記憶装置または媒体を表す。システムメモリ716の例として、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリまたは他の任意の適切な記憶装置が挙げられるが、これらに限定されるものではない。必須ではないが、ある実施例において、コンピュータデバイス710は揮発性記憶装置（例えば、システムメモリ716）および不揮発性記憶（例えば、以下で詳細に説明される主記憶装置732）を具えることができる。
【００３６】
ある実施例では、例示的なコンピュータシステム710は、プロセッサ714およびシステムメモリ716に加えて１つ以上の構成要素もまた具えることができる。例えば、図７に示したように、コンピュータシステム710はメモリコントローラ718、入出力（Ｉ／Ｏ）コントローラ720および通信インタフェース722を具えることができ、それぞれは通信インフラ712を介して相互に接続される。通信インフラ712は、一般に、コンピュータデバイスの１つ以上の構成要素間の通信を可能にする任意の種類のインフラを表す。通信インフラ712の例としては、通信バス（例えばＩＳＡ、ＰＣＩ、ＰＣＩｅまたは同様のバス）およびネットワークが挙げられるが、これらに限定されるものではない。
【００３７】
メモリコントローラ718は、一般に、メモリまたはデータを処理できる、あるいは、コンピュータシステム710の１つ以上の構成要素間の通信を制御できる、任意の種類のデバイスを表す。例えば、ある実施例において、メモリコントローラ718は、通信インフラ712を介して、プロセッサ714、システムメモリ716およびＩ／Ｏコントローラ720の間の通信を制御できる。ある実施例では、メモリコントローラ718は、単独でまたは他要素と共に、本明細書に記載の、関連付け、マイグレーション、格納、取り付け、取り外し、設置、修復、比較、検索のような、１つ以上のステップまたは機能を実行できる、および／または、実行手段となりうる。
【００３８】
Ｉ／Ｏコントローラ720は、一般に、コンピュータデバイスの入出力機能を調整および／または制御できる、任意の種類のモジュールを表す。例えば、ある実施例では、Ｉ／Ｏコントローラは、コンピュータシステム710の１つ以上の要素（例えばプロセッサ714、システムメモリ716、通信インタフェース722、ディスプレイアダプタ726、入力インタフェース730および記憶インタフェース734）間のデータ転送を制御または容易にすることができる。Ｉ／Ｏコントローラ720を用いて、例えば、単独でまたは他要素と共に、本明細書に記載の、識別、決定、形成、格納、設置、修復、検索、複製、比較ステップのうち、１つ以上のステップを実行できる、および／または、実行手段となりうる。Ｉ／Ｏコントローラ720は、本明細書に開示される他のステップおよび機能を実行できる、および／または、実行手段となりうる。
【００３９】
通信インタフェース722は、一般に、例示的なコンピュータシステム710と１つ以上の追加のデバイスとの間の通信を可能にする、任意の種類の通信装置またはアダプタを表す。例えば、ある実施例では、通信インタフェース722は、コンピュータシステム710と、追加のコンピュータシステムを具えるプライベートあるいはパブリックネットワークとの間の通信を容易にすることができる。通信インタフェース722の例としては、有線のネットワーク・インタフェース（例えばネットワーク・インタフェースカード）、無線のネットワーク・インタフェース（例えばワイヤレスネットワーク・インタフェースカード）、モデムおよび他の任意の適切なインタフェースが挙げられるが、これらに限定されるものではない。少なくとも１つの実施例において、通信インタフェース722は、ネットワーク（例えばインターネット）への直接リンクを介して、リモートサーバに直接接続を提供できる。通信インタフェース722は、このような接続を、例えば、ローカルエリアネットワーク（例えばイーサネット（登録商標）・ネットワーク）、パーソナル・エリア・ネットワーク（例えばブルートゥース・ネットワーク）、電話網、ケーブルネットワーク、携帯電話接続、衛星データ接続または他の任意の適切な接続を介して間接的に提供できる。
【００４０】
ある実施例では、通信インタフェース722は、外部バスまたは通信チャネルを介して、コンピュータシステム710と１つ以上の追加のネットワークまたは記憶装置との間の通信を容易にするように構成されるホスト・アダプタを表すこともできる。ホスト・アダプタの例としては、ＳＣＳＩホスト・アダプタ、ＵＳＢホスト・アダプタ、ＩＥＥＥ１３９４ホスト・アダプタ、ＳＡＴＡおよびｅＳＡＴＡホスト・アダプタ、ＡＴＡおよびＰＡＴＡホスト・アダプタ、ファイバチャネルインタフェースアダプタ、イーサネット（登録商標）・アダプタ等が挙げられるが、これらに限定されるものではない。通信インタフェース722によって、コンピュータシステム710が分散コンピューティングまたはリモート・コンピューティングに係わることができる。例えば、通信インタフェース722は、遠隔装置から命令を受信する、あるいは実行するために命令を遠隔装置に送信できる。ある実施例では、通信インタフェース722は、単独でまたは他要素と共に、本明細書に記載の、識別、決定、形成、格納、設置、修復、複製、比較、検索ステップのうち、１つ以上のステップを実行できる、および／または、実行手段となりうる。通信インタフェース722は、また、本明細書に開示される他のステップおよび機能を実行できる、および／または、実行手段となりうる。
【００４１】
図７に示したように、コンピュータシステム710は、ディスプレイアダプタ726を介して通信インフラ712と結合される少なくとも１つのディスプレイ装置724も具えることができる。ディスプレイデバイス724は、一般に、ディスプレイアダプタ726により転送される情報を視覚的に表示すことができる、任意の種類のデバイスを表す。同様に、ディスプレイアダプタ726は、一般に、ディスプレイデバイス724上に表示するために、通信インフラ712から（または、従来技術において、既知のフレーム・バッファから）、グラフィックス、テキストおよび他のデータを転送ように構成される任意の種類のデバイスを表す。
【００４２】
図７に示したように、例示的なコンピュータシステム710は、入力インタフェース730を介して通信インフラ712と結合される少なくとも１つの入力装置728も具えることができる。入力装置728は、一般に、コンピュータあるいは人間による入力を例示的なコンピュータシステム710に供給できる、任意の種類の入力装置を表す。入力装置728の例としては、キーボード、ポインティングデバイス、音声認識装置または他の任意の入力装置が挙げられるが、これらに限定されるものではない。少なくとも１つの実施例において、入力装置728は、単独でまたは他要素と共に、本明細書に記載の、識別、決定、形成、格納、設置、修復、複製、比較、検索ステップのうち、１つ以上のステップを実行できる、および／または、実行手段となりうる。入力装置728を用いて、本明細書に開示される他のステップおよび機能を実行できる、および／または、実行手段となりうる。
【００４３】
図７に示したように、例示的なコンピュータシステム710は、記憶インタフェース734を介して通信インフラ712と結合される主記憶装置732およびバックアップ記憶装置733も具えることができる。記憶装置732、733は、一般に、データおよび／または他のコンピュータ可読の命令を格納できる、任意の種類の記憶装置または記憶媒体を表す。例えば、記憶装置732、733は、磁気ディスク装置（例えば、いわゆるハードディスク）、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光学ディスクドライブ、フラッシュ・ドライブ等とすることができる。記憶インタフェース734は、一般に、記憶装置732、733とコンピュータシステム710の他の構成要素との間でデータを転送するための、任意の種類のインタフェースまたはデバイスを表す。
【００４４】
ある実施例では、記憶装置732、733を、コンピューターソフトウェア、データまたは他のコンピュータ可読情報を格納するように構成される着脱可能な記憶装置から読み出すおよび／または書き込むように構成できる。適切な着脱可能な記憶装置の例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュ記憶装置等が挙げられるが、これらに限定されるものではない。記憶装置732、733は、コンピューターソフトウェア、データまたは他のコンピュータ可読の命令がコンピュータシステム710へロード可能にするための他の類似した構造またはデバイスもまた具えることができる。例えば、記憶装置732、733を、ソフトウェア、データまたは他のコンピュータ可読の情報を読み出すおよび書き込むように構成できる。記憶装置732、733は、コンピュータシステム710の一部であってもよいし、他のインタフェースシステムを介してアクセスされる別個のデバイスであってもよい。
【００４５】
ある実施例では、本明細書において開示される例示的なファイルシステムを、主記憶装置732に格納し、本明細書において開示される例示的なファイルシステム・バックアップをバックアップ記憶装置733に格納することができる。記憶装置732、733は、例えば、単独でまたは他要素と共に、本明細書に記載の、識別、決定、形成、格納、設置、修復、複製、比較、検索ステップのうち、１つ以上のステップを実行できる、および／または、実行手段となりうる。記憶装置732、733を用いて、本明細書に開示される他のステップおよび機能を実行できる、および／または、実行手段となりうる。
【００４６】
多くの他のデバイスまたはサブシステムを、コンピュータシステム710に接続できる。逆に、図７に示される構成要素およびデバイスの全てが、本明細書において記載および／または図示される実施例を実現するために、必要なわけではない。上述したデバイスおよびサブシステムを、図７に示したのとは異なる方法で相互に接続することもできる。コンピュータシステム710は、任意数のソフトウェア構成、ファームウェア構成および／またはハードウェア構成を使用することもできる。例えば、本明細書において開示される１つ以上の例示的実施例は、コンピュータ可読媒体上のコンピュータープログラム（コンピューターソフトウェア、ソフトウェアプリケーション、コンピュータ可読の命令またはコンピュータ制御論理と称する）としてコード化されうる。「コンピュータ可読媒体」という用語は、一般に、コンピュータ可読の命令を格納または伝えることができる任意の形式のデバイス、キャリアまたは媒体を表す。コンピュータ可読媒体の例は、記録可能媒体（例えばフロッピー（登録商標）ディスク、ＣＤ-ＲＯＭ、ＤＶＤ−ＲＯＭ）、伝送型媒体（例えば搬送波）、電子記憶媒体、磁気記録媒体、光記憶媒体および他の分散システムを含む。
【００４７】
コンピュータープログラムを含むコンピュータ可読媒体を、コンピュータシステム710へロードすることができる。コンピュータ可読媒体に格納されるコンピュータープログラムの全てまたは一部を、システムメモリ716および／または記憶装置732、733の様々な部分に格納できる。コンピュータシステム710にロードされたコンピュータープログラムは、プロセッサ714により実行されるとき、プロセッサ714に、本明細書において、説明および／または図示される１つ以上の例示的実施例の機能を実行させる、および／または実行手段とすることができる。さらに代案として、本明細書において説明および／または図示される１つ以上の例示的実施例は、ファームウェアおよび／またはハードウェアにおいて実現される。例えば、コンピュータシステム710を、本明細書において開示される１つ以上の例示的実施例を実現するのに適している特定用途向けＩＣ（ＡＳＩＣ）として構成することができる。
【００４８】
図８は、クライアントシステム810、820、830およびサーバ840、845をネットワーク850に結合できる例示的なネットワークアーキテクチャ800のブロック図である。クライアントシステム810、820、830は、一般に、図７の例示的なコンピュータシステム710のような、任意の種類のコンピュータデバイスまたはシステムを表す。同様に、サーバ840、845は、一般に、様々なデータベースサービスを提供するおよび／または特定のソフトウェアプリケーションを実行するように構成されるコンピュータデバイスまたはシステム（例えばアプリケーションサーバまたはデータベースサーバ）を表す。ネットワーク850は、一般に、例えば、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナル・エリア・ネットワーク（ＰＡＮ）またはインターネットを含む、任意の電気通信またはコンピューターネットワークを表す。
【００４９】
図８に示すように、１つ以上の記憶装置860(1)-(N)をサーバ840に直接取り付けることができる。同様に、１つ以上の記憶装置870(1)-(N)をサーバ845に直接取り付けることができる。記憶装置860(1)-(N)および記憶装置870(1)-(N)は、一般に、データおよび／または他のコンピュータ可読の命令を格納できる、任意の種類の記憶装置または媒体を表す。ある実施例では、記憶装置860(1)-(N)および記憶装置870(1)-(N)は、様々なプロトコル（例えばＮＦＳ、ＳＭＢまたはＣＩＦＳ）を使用して、サーバ840、845と通信するように構成されるネットワーク接続ストレージ（ＮＡＳ）デバイスを表すことができる。
【００５０】
サーバ840、845を、ストレージ・エリア・ネットワーク（ＳＡＮ）ファブリック880に接続できる。ＳＡＮファブリック880は、一般に、複数の記憶装置間の通信を容易にすることができる、任意の種類のコンピューターネットワークまたはアーキテクチャを表す。ＳＡＮファブリック880は、サーバ840、845と複数の記憶装置890(1)-(N)および／またインテリジェントストレージアレイ895との間の通信を容易にすることができる。ＳＡＮファブリック880は、ネットワーク850およびサーバ840、845を介して、クライアントシステム810、820、830と記憶装置890(1)-(N)および／またはインテリジェントストレージアレイ895との間の通信を、装置890(1)-(N)およびアレイ895が、クライアントシステム810、820、830に直接取り付けられているように見せる方法で容易にすることもできる。記憶装置860(1)-(N)および記憶装置870(1)-(N)と同様に、記憶装置890(1)-(N)およびインテリジェントストレージアレイ895は、一般に、データおよび／または他のコンピュータ可読の命令を格納できる、任意の種類の記憶装置または媒体を表す。
【００５１】
ある実施例において、図７の例示的なコンピュータシステム710を参照すると、通信インタフェース（例えば、図７の通信インタフェース722）を用いて、各クライアントシステム810、820、830とネットワーク850との間の接続を与えることができる。クライアントシステム810、820、830は、例えば、ウェブ・ブラウザまたは他のクライアントソフトウェアを使用して、サーバ840または845上の情報にアクセスすることができる。このようなソフトウェアによって、クライアントシステム810、820、830は、サーバ840、サーバ845、記憶装置860(1)-(N)、記憶装置870(1)-(N)、記憶装置890(1)-(N)、あるいはインテリジェントストレージアレイ895がホストとなっているデータにアクセスすることができる。図８はデータを交換するためのネットワーク（例えばインターネット）の使用を表すが、本明細書において記載および／または図示される実施例は、インターネットまたはいかなる特定のネットワークベースの環境に限定されることはない。
【００５２】
少なくとも１つの実施例において、本明細書において開示される１つ以上の例示的実施例の全部あるいは一部を、サーバ840、サーバ845、記憶装置860(1)-(N)、記憶装置870(1)-(N)、記憶装置890(1)-(N)、インテリジェントストレージアレイ895あるいはそれらの組み合わせによって、コンピュータープログラムとしてコード化し、ロードし、実行することができる。本明細書において開示される１つ以上の例示的実施例の全部または一部を、コンピュータープログラムとしてコード化する、サーバ840に格納する、サーバ845で実行する、ネットワーク850上でクライアントシステム810、820、830に分散することができる。したがって、ネットワークアーキテクチャ800は、単独でまたは他要素と共に、本明細書に記載の、識別、決定、形成、格納、設置、修復、複製、比較、検索ステップのうち、１つ以上のステップを実行できる、および／または、実行手段となりうる。ネットワークアーキテクチャ800を用いて、本明細書に開示される他のステップおよび機能を実行できる、および／または、実行手段となりうる。
【００５３】
例えば、特定の実施例において、本明細書において開示される例示的なファイルシステムを、クライアントシステム810、820および／または830に格納することもできる。同様に、本明細書において開示される例示的なファイルシステム・バックアップを、サーバ840、サーバ845、記憶装置860(1)-(N)、記憶装置870(1)-(N)、記憶装置890(1)-(N)、インテリジェントストレージアレイ895あるいはそれらの組み合わせに格納することもできる。
【００５４】
上述した開示は、特定のブロック図、フローチャートおよび実施例を用いて、各種実施例を記載するが、本明細書において記載および／または図示される各々のブロック図の構成要素、フローチャートのステップ、動作および／または構成要素を、広範囲にわたるハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせの構成を使用して、個々におよび／または集合的に、実現することができる。さらに、多くの他の構成を、同一の機能を達成するために実現できるので、他の構成要素内に含まれる構成要素の任意の開示も、事実上、例示的であるとみなされたい。
【００５５】
本明細書において記載および／または図示されるプロセスのパラメータおよびステップのシーケンスは単に一例として与えられ、要求に応じて変化しうる。例えば、本明細書において図示および／または記載されているステップは、特定の順序で示されているが、これらのステップは、必ずしも図示される順序で実行される必要はない。本明細書において記載および／または図示される様々な例示的な方法は、本明細書において記載または図示されるステップの１つ以上を省略することができ、あるいは、開示されるステップに加えて、追加ステップを含むことができる。
【００５６】
さらに、各種実施例は、完全な機能を有するコンピュータシステムの文脈で、本明細書において記載および／または例示されたが、これらの例示的実施例の１つ以上は、実際に分散を実行するのに使用されるコンピュータ可読の媒体の特定のタイプに係わらず、様々な形式で、プログラム製品として分散されうる。本明細書において開示される実施例は、特定のタスクを実行するソフトウェア・モジュールを使用して実現できる。これらのソフトウェア・モジュールは、スクリプト、バッチまたはコンピュータ可読の記憶媒体上またはコンピュータシステム内に格納される他の実行可能ファイルを含むことができる。ある実施例では、これらのソフトウェア・モジュールは、本明細書において開示される１つ以上の例示的実施例を実行するように、コンピュータシステムを構成できる。
【００５７】
上述した記載は、当業者が、本明細書において開示される例示的実施例の様々な最良の形態を利用できるように提供された。この例示的な記載は、徹底的であること、または開示される正確な形に限定されることを意図しない。多くの修正および変更が、本発明の開示の精神および範囲から逸脱することなく可能である。本明細書において開示される実施例は、全ての点で例示的であり限定的ではないとみなされたい。参照は、添付の請求の範囲および本発明の開示の範囲を決定する際の等価物になされなければならない。
【００５８】
特に明記しない限り、本明細書および特許請求の範囲に単数形で記載された構成要素は、「少なくとも１つ」を意味する。さらに、本明細書および特許請求の範囲に記載された「含む」、「有する」という用語は、「具える」という用語と交換可能であり、同じ意味を表す。
【図面の簡単な説明】
【００５９】
【図１】ホストオペレーティングシステムがエミュレータプログラムとして機能する複数の仮想マシンを有するコンピュータシステムの図である。
【図２】ハイパーバイザがエミュレータプログラムとして機能する複数の仮想マシンを有する他のコンピュータシステムの図である。
【図３】ソースホストから宛先ホストまでマイグレートされることになっている複数の仮想マシンを含むシステムの図である。
【図４】１つ以上の仮想マシンのファイルの全てを含む論理コンテナを形成する方法の一実施例を示すフローチャートである。
【図５】仮想マシンをシャットダウンすることにより、１つ以上の仮想マシンをソースホストから宛先ホストへマイグレートする方法の一実施例を示すフローチャートである。
【図６】複数の仮想マシンが起動中に、１つ以上の仮想マシンをソースホストから宛先ホストへマイグレートする方法の一実施例を示すフローチャートである。
【図７】本明細書において、説明および／または図示される１つ以上の実施例を実現できる例示的なコンピュータシステムのブロック図である。
【図８】クライアントシステムおよびサーバがネットワークに結合されうる例示的なネットワークアーキテクチャのブロック図である。
【図１】
2014142957.tif 000003
【図２】
2014142957.tif 000004
【図３】
2014142957.tif 000005
【図４】
2014142957.tif 000006
【図５】
2014142957.tif 000007
【図６】
2014142957.tif 000008
【図７】
2014142957.tif 000009
【図８】
2014142957.tif 000010
【外国語明細書】
2014142957000001.pdf