マイグレーション元データ処理エンティティにインストールされたソフトウェアイメージをマイグレーション先データ処理エンティティにマイグレーションするためのマイグレーション方法A310~A310、A410~A410、A510~A510、A610~A610であって、スタンドアロンの予備的なオペレーティングシステムを提供する予備的なブートストラッププログラムから前記マイグレーション先データ処理エンティティをブートするステップA306、A406、A506、A606と、前記ソフトウェアイメージをリモートの大容量メモリとして前記マイグレーション先データ処理エンティティにマウントするステップA307、A407、A507、A607と、前記ソフトウェアイメージのプライマリブートストラッププログラムを前記マイグレーション先データ処理エンティティのローカルの大容量メモリにコピーするステップA308、A408、A508、A608であって、前記プライマリブートストラッププログラムは、前記ソフトウェアイメージを前記マイグレーション先データ処理エンティティにマイグレーションするように適合されたストリーミング機能を含む、ステップA308、A408、A508、A608と、前記ローカルの大容量メモリ上の前記プライマリブートストラッププログラムから前記マイグレーション先データ処理エンティティをリブートし、それによって、前記ストリーミング機能をロードするステップA309、A409、A509、A609と、前記マイグレーション先データ処理エンティティ上のメモリブロックにアクセスする各要求を前記ストリーミング機能によって処理するステップA310、A410、A510、A610であって、前記ストリーミング機能は、前記ローカルの大容量メモリ内に前記メモリブロックがないことに応じて前記メモリブロックを前記ソフトウェアイメージからダウンロードし718~730、前記メモリブロックを前記ローカルの大容量メモリに記憶するか、または前記ローカルの大容量メモリ内に前記メモリブロックがある場合は前記メモリブロックを前記ローカルの大容量メモリから取得する733、ステップA310、A410、A510、A610とを含む、マイグレーション方法A310~A310、A410~A410、A510~A510、A610~A610。更新モードでメモリブロックにアクセスする各要求に関して、前記ローカルの大容量メモリ内の前記メモリブロックを更新するステップ748をさらに含む請求項1に記載のマイグレーション方法A310~A310、A410~A410、A510~A510、A610~A610。前記ソフトウェアイメージのサイズに対応する数の前記メモリブロックを前記ローカルの大容量メモリに記憶することに応じて、各メモリブロックを前記ローカルの大容量メモリから直接取得するために前記ストリーミング機能を無効化するステップ742~745、769~772をさらに含む請求項1または2に記載のマイグレーション方法A310~A310、A410~A410、A510~A510、A610~A610。前記マイグレーション先データ処理エンティティまたは前記マイグレーション元データ処理エンティティあるいはその両方の負荷を監視するステップ751と、前記負荷が閾値未満になることに応じて、前記ローカルの大容量メモリに記憶されていない選択されたメモリブロックの組を前記ソフトウェアイメージからダウンロードし754~766、前記選択されたメモリブロックを前記ローカルの大容量メモリに記憶するステップとをさらに含む請求項1ないし3のいずれかに記載のマイグレーション方法A310~A310、A410~A410、A510~A510、A610~A610。前記マイグレーション先データ処理エンティティがマイグレーション先物理コンピュータであり、予備的なブートストラッププログラムから前記マイグレーション先データ処理エンティティをブートする前記ステップA306、A506が、ネットワークブートストラッププログラムから前記マイグレーション先物理コンピュータをブートするステップA306、A506を含む請求項1ないし4のいずれかに記載のマイグレーション方法A310~A310、A510~A510。前記マイグレーション先データ処理エンティティがマイグレーション先ハイパーバイザ上で実行されるマイグレーション先仮想マシンであり、予備的なブートストラッププログラムから前記マイグレーション先データ処理エンティティをブートする前記ステップA406、A606が、前記マイグレーション先仮想マシンの外部のブート仮想ディスクから前記マイグレーション先仮想マシンをブートするステップA406、A606を含む請求項1ないし4のいずれかに記載のマイグレーション方法A410~A410、A610~A610。ブート仮想ディスクから前記マイグレーション先仮想マシンをブートする前記ステップA406、A606が、前記マイグレーション先ハイパーバイザによって前記ブート仮想ディスクをダウンロードするステップA406、A606を含む請求項6に記載のマイグレーション方法A410~A410、A610~A610。ブート仮想ディスクから前記マイグレーション先仮想マシンをブートする前記ステップA406、A606が、前記ブート仮想ディスクを指すように前記マイグレーション先仮想マシンのブートセクタを変更するステップA406、A606を含む請求項6または7に記載のマイグレーション方法A410~A410、A610~A610。前記マイグレーション元データ処理エンティティがマイグレーション元物理コンピュータであり、前記マイグレーション方法が、前記ソフトウェアイメージをマウントすることなくさらなるスタンドアロンの予備的なオペレーティングシステムを提供するさらなる予備的なブートストラッププログラムから前記マイグレーション元物理コンピュータをブートするステップA303、A503と、前記マイグレーション先データ処理エンティティによる前記ソフトウェアイメージのリモートアクセスのために一貫した状態の前記ソフトウェアイメージを準備するステップA304、A504とをさらに含む請求項1ないし8のいずれかに記載のマイグレーション方法A310~A310、A510~A510。さらなる予備的なブートストラッププログラムから前記マイグレーション元物理コンピュータをブートする前記ステップA303、A503が、さらなるネットワークブートストラッププログラムから前記マイグレーション元物理コンピュータをブートするステップA303、A503を含む請求項9に記載のマイグレーション方法A310~A310、A510~A510。前記マイグレーション元データ処理エンティティがマイグレーション元ハイパーバイザ上で実行されるマイグレーション元仮想マシンであり、前記マイグレーション方法が、前記マイグレーション先データ処理エンティティによる前記ソフトウェアイメージのリモートアクセスのために一貫した状態の前記ソフトウェアイメージを準備するステップA404、A604であって、前記ソフトウェアイメージは、前記マイグレーション元仮想マシンがオフにされた状態で準備される、ステップA404、A604をさらに含む請求項1ないし8のいずれかに記載のマイグレーション方法A410~A410、A610~A610。コンピュータプログラムがデータ処理システム100で実行されるときに、前記データ処理システムに請求項1ないし11のいずれかに記載の方法A310~A310、A410~A410、A510~A510、A610~A610のステップを実行させるためのコード手段を含むコンピュータプログラム300、400、500、600。請求項1ないし11のいずれかに記載の方法A310~A310、A410~A410、A510~A510、A610~A610のステップを実行するための手段300、400、500、600を含むシステム100。ストリーミング技術を用いたソフトウェアイメージの直接的なマイグレーション方法、システム、またはコンピュータプログラムを提供することである。大まかに言えば、本発明の1つまたは複数の実施形態によるソリューションは、ストリーミング技術を用いてソフトウェアイメージをマイグレーションするという考えに基づく。特に、本発明の特定の実施形態によるソリューションの1つまたは複数の態様が、独立請求項に記載されており、同じソリューションの有利な特徴が、従属請求項に記載されており、これらの請求項の表現は、参照により本明細書にそのまま援用される本発明の実施形態によるソリューションの特定の態様に関連して与えられる任意の有利な特徴は、ソリューションのあらゆるその他の態様に準用される。より具体的には、本発明の実施形態によるソリューションの態様は、マイグレーション元データ処理エンティティ例えば、マイグレーション元コンピュータまたはマイグレーション元仮想マシンにインストールされたソフトウェアイメージをマイグレーション先データ処理エンティティ例えば、マイグレーション先コンピュータまたはマイグレーション先仮想マシンにマイグレーションするためのマイグレーション方法を提供する。マイグレーション方法は、以下のステップを含む。マイグレーション先データ処理エンティティが、スタンドアロンの予備的なオペレーティングシステムを提供する予備的なブートストラッププログラムから例えば、ネットワークブートストラッププログラムまたは一時的なブートストラップ仮想ディスクからブートされる。次に、ソフトウェアイメージが、例えば、リモートアクセスイニシエータとして働くことによってリモートの大容量メモリとしてマイグレーション先データ処理エンティティにマウントされる。ソフトウェアイメージのプライマリブートストラッププログラムが、例えば、ソフトウェアイメージをアクセスオンコピーaccessoncopyモードでマウントすることによってマイグレーション先データ処理エンティティのローカルの大容量メモリにコピーされ、プライマリブートストラッププログラムは、ソフトウェアイメージをマイグレーション先データ処理エンティティにマイグレーションするように適合されたストリーミング機能を含む。マイグレーション先データ処理エンティティが、ローカルの大容量メモリ上のプライマリブートストラッププログラムからリブートされ、それによって、ストリーミング機能をロードする。次いで、マイグレーション先データ処理エンティティ上のメモリブロックにアクセスする各要求が、ストリーミング機能によって処理され、ストリーミング機能は、ローカルの大容量メモリ内にメモリブロックがないことに応じてメモリブロックをソフトウェアイメージからダウンロードし、そのメモリブロックをローカルの大容量メモリに記憶し、そうでない場合、ストリーミング機能は、メモリブロックをローカルの大容量メモリから取得する。本発明の実施形態によるソリューションのさらなる態様は、コンピュータプログラムがデータ処理システムで実行されるときに、データ処理システムにこのマイグレーション方法のステップを実行させるためのコード手段を含むコンピュータプログラムを提供し、本発明の実施形態によるソリューションのさらに別の態様は、コンピュータプログラムを具現化する非一時的コンピュータ可読媒体を含むコンピュータプログラム製品を提供し、コンピュータプログラムは、データ処理システムの作業メモリに直接ロード可能なコード手段を含み、それによって、同じマイグレーション方法を実行するようにデータ処理システムを構成する。本発明の実施形態によるソリューションの別の態様は、マイグレーション方法のステップを実行するための手段を含むシステムを提供する。本発明の1つまたは複数の実施形態によるソリューション、ならびにそのソリューションの特徴および利点は、添付の図面単純化するために、対応する要素が等しいまたは同様の参照符号によって表され、それらの要素の説明は繰り返されず、各エンティティの名前は、概して、そのエンティティの種類とそのエンティティの属性-そのエンティティの値、内容、および表現-の両方を表すために使用されると併せて読まれるべき、純粋に非限定的な目安として与えられる以下の詳細な説明を参照して最も深く理解される。特に図1を参照すると、本発明の実施形態によるソリューションが適用可能なデータ処理システムまたは単にシステム100の概略構成図が示される。システム100は、ネットワーク105-例えば、ローカルエリアネットワークLAN-に基づく分散型アーキテクチャを有する。複数のコンピュータが、ネットワーク105を介して互いに接続される。特に、サーバコンピュータ110は、直接的なタイプのマイグレーションプロセスを制御し、ソフトウェアイメージが、異なるクライアントコンピュータ115-単純化するために図には2つだけ示される-の間で直接転送され、各ソフトウェアイメージは、1つまたは複数のソフトウェアモジュール例えば、オペレーティングシステム、アプリケーションプログラム、またはデータ、あるいはそれらすべてを含む構造である。各マイグレーションプロセス中、マイグレーション元クライアント-物理コンピュータ115か、またはそのコンピュータ115上で実行される仮想マシンかのどちらかからなる-が、そのマイグレーション元クライアントに既にインストールされている対応するソフトウェアイメージを提供し、マイグレーション先クライアント-やはり物理コンピュータ115か、またはそのコンピュータ115上で実行される仮想マシンかのどちらかからなる-が、マイグレーション元クライアントからソフトウェアイメージをダウンロードし、インストールする。この点で、用語、マイグレーション元クライアントおよびマイグレーション先クライアントは、例えば、次のマイグレーションプロセスにおいてマイグレーション先クライアントとして動作する可能性があるマイグレーションプロセスのマイグレーション元クライアント、または次のマイグレーションプロセスにおいてマイグレーション元クライアントとして動作する可能性があるマイグレーションプロセスのマイグレーション先クライアントによる異なるマイグレーションプロセスにおいて時間が経つにつれて変わり得る動的な役割を特定するに過ぎず、さらに、任意の数のマイグレーション元クライアントまたはマイグレーション先クライアントあるいはその両方が、単一のマイグレーション元クライアントが複数のマイグレーション先クライアントに同時にサービスを提供するとしても同時にアクティブである可能性があることが指摘される。システム100の全般的なサーバまたはクライアントコンピュータは、構造がシステムにおけるコンピュータの実際の機能に応じて好適にスケーリングされるようにしてシステムバス120に並列に接続されたいくつかのユニットによって形成される。詳細に言えば、1つまたは複数のマイクロプロセッサμP125がコンピュータの動作を制御し、RAM130がマイクロプロセッサ125によって作業メモリとして直接使用され、ROM135がコンピュータの基本コードを記憶する。いくつかの周辺ユニットが、それぞれのインターフェースによってローカルバス140のまわりにクラスタ化される。特に、大容量メモリが、1つまたは複数のハードディスク145、および光ディスク155例えば、DVDまたはCDを読むためのドライブ150により構成される。さらに、コンピュータは、入力ユニット160例えば、キーボードおよびマウスならびに出力ユニット165例えば、モニタおよびプリンタを含む。アダプタ170が、コンピュータをネットワーク105に接続するために使用される。ブリッジユニット175が、システムバス120とローカルバス140とのインターフェースをとる。各マイクロプロセッサ125およびブリッジユニット175は、情報を送信するためにシステムバス120へのアクセスを要求するマスタエージェントとして動作することができる。アービタ180が、システムバス120への相互排他的なアクセスの許可を管理する。本発明の実施形態によるマイグレーションプロセスの概念図が、図2~図9に示される。図2から始めると、マイグレーションプロセスは、マイグレーション元クライアント215sからマイグレーション先クライアント215tへのものである。この目的のために、マイグレーション元クライアント215sのマイグレーション元ディスク245sが、例えば、対応する物理コンピュータをセーフモードでブートすることによって、または対応する仮想マシンをオフにすることによってマイグレーション先クライアント215tによるそのマイグレーション元ディスク245sのリモートアクセスのために一貫した状態のマイグレーション元クライアント215sのソフトウェアイメージを提供するように準備される。次に、マイグレーション先クライアント215tが、例えば、ネットワークブートストラッププログラムから対応する物理コンピュータをブートすることによって、または一時的なブートストラップの仮想ディスクから対応する仮想マシンをブートすることによってそのマイグレーション先クライアント215tの基本的な機能だけを提供するスタンドアロンの予備的なオペレーティングシステムまたは最小限のオペレーティングシステムを提供する外部の予備的なブートストラッププログラムからブートされ、このようにして、マイグレーション先クライアント215tのブートは、そのマイグレーション先クライアント215tがどのような状態であっても-すなわち、機能するオペレーティングシステムが利用可能でないときでさえも-常に可能である。図3に移ると、マイグレーション元ディスク245sが、マイグレーション先クライアント215tにリモートでマウントされ、次に、マイグレーション元ディスク245sに含まれるプライマリブートストラッププログラム250sが、対応するプライマリブートストラッププログラム250tを得るために例えば、マイグレーション元ディスク245sをコピーオンアクセスcopyonaccessモードでマウントすることによってマイグレーション先クライアント215tのマイグレーション先ディスク245tにコピーされる。この時点で、図4に示されるように、マイグレーション先クライアント215tは、マイグレーション先クライアント215tのすべての機能を提供する完全なオペレーティングシステムを提供するようにマイグレーション先ディスク245t上のプライマリブートストラッププログラム250tから通常通りリブートされる。マイグレーション先クライアント215tのブートストラップは、プライマリブートストラッププログラム250tに含まれるストリーミングドライバ255tのローディングを引き起こすこのストリーミングドライバ255tは、そのマイグレーション先クライアント215tの標準的なファイルシステムのドライバをオーバーライドする。ここで図5を参照すると、マイグレーション先クライアント215tの動作中のマイグレーション先クライアント215t上のメモリブロックにアクセスするあらゆる要求は、したがって、ストリーミングドライバ255tによって処理され、メモリブロックは、マイグレーション先クライアント215tによってアクセスされる必要がある任意の種類の情報例えば、オペレーティングシステムかまたはアプリケーションプログラムかのどちらかに関連する1つもしくは複数のセクタ、ファイル、ライブラリ、ディレクトリ、またはそれらの組み合わせもしくは一部を含み得る。要求されたメモリブロックがマイグレーション先ディスク245t内にないときは、図6の場合のように、ストリーミングドライバ255tが、当該メモリブロックをマイグレーション元イメージ245sからダウンロードし、そのメモリブロックをマイグレーション先ディスク245tに記憶する。対照的に、要求されたメモリブロックがマイグレーション先ディスク245tにおいて既に利用可能であるときは、図7の場合のように、ストリーミングドライバ255tは、当該メモリブロックをマイグレーション先ディスク245tから直接取得する。図8に移ると、メモリブロックがマイグレーション先クライアント215tに書き込まれる必要がある場合、更新は、マイグレーション先ディスク245tに記憶されたメモリブロックに対してのみ適用される-このメモリブロックは、このメモリブロックの書き込みの前に読まれたはずであるのでマイグレーション先ディスク245tにおいて必ず利用可能である。したがって、マイグレーション先ディスク245tは、マイグレーションプロセスがまだ進行中であるときでさえもそのメモリブロックがマイグレーション先クライアント215tに既に完全に転送されたので通常通りに更新されることができる。最後に図9を参照すると、最終的に、マイグレーション元ディスク245sのすべてのメモリブロックが、マイグレーション先ディスク245tに記憶される。この時点で、マイグレーション元ディスク245sのすべてのメモリブロックが、その間のあり得るローカルの更新が追加されるようにしてマイグレーション元クライアント215sからマイグレーション先クライアント215tに転送され終わったのでマイグレーションプロセスが完了する。マイグレーション先クライアント215tの動作は、今や、マイグレーション先ディスク245tから直接のメモリブロックにアクセスするように、ストリーミング機能255tが無効化されることができる状態でマイグレーション元クライアント215sから完全に独立している。上述のソリューションは、マイグレーション元クライアント215sが、マイグレーション先クライアント215tによるマイグレーション元ディスク245sのリモートアクセスのためにマイグレーション元ディスク245sを準備するために必要とされる短い時間の間だけ利用できないままであるので非常に高速であるいかなる中央リポジトリも必要とせずにマイグレーション元クライアント215sから直接行われ、負荷を複数のマイグレーション元クライアントに分散させる可能性がある直接的なマイグレーションプロセスを提供する。さらに、この場合、マイグレーション先クライアント215tも、短い時間の後で利用可能である。さらに言えば、マイグレーション先クライアント215tは、今や、プライマリブートストラッププログラム250sがマイグレーション先ディスク245tにコピーされた直後にマイグレーションプロセスがまだ進行中であったとしても使用されることができる。そのとき、マイグレーション先クライアント215tの動作は、マイグレーション先クライアント215tがマイグレーション元ディスク245sからさらにダウンロードされるべきであるメモリブロックにアクセスするときにマイグレーション先クライアント215tの性能がわずかに落ちるだけでマイグレーション先ディスク245tでマイグレーション元ディスク245sのその他のメモリブロックが利用できるか否かにかかわらずまったく通常通りであるが、マイグレーション元ディスク245sのマイグレーション先ディスク245tへの転送が完了すると、マイグレーション先クライアント215tは、従来のマイグレーションプロセスが実行されたかのようにマイグレーション元クライアント215sをまったく必要とせずに自律的に機能する。この点で、上述のストリーミング機能は、オンデマンドでオペレーティングシステムまたはアプリケーションプログラムあるいはその両方を提供するための、当技術分野で知られているストリーミング技術とは無関係であることに留意されたい。さらに言えば、知られているストリーミング技術においては、オペレーティングシステムまたはアプリケーションプログラムあるいはその両方のイメージのブロックは、それらのブロックを直ちに使用するためにのみマイグレーション先クライアントにダウンロードされる。しかし、これらのブロックは、マイグレーション先クライアントに持続的に記憶されずすなわち、これらのブロックは、使用された後に、およびいずれにせよマイグレーション先クライアントがオフにされた後に消える、したがって、マイグレーション先クライアントは、サーバコンピュータから切断されることができない。実際は、ブロックがプリフェッチされるときでさえも、それらのブロックは、それらのブロックのあり得る次の使用までしかマイグレーション先クライアント上に残らず、同様に、メモリブロックのローカルキャッシュが実装されるときでさえも、ほんのわずかなメモリブロックのみが、それらのブロックの再使用のためにローカルキャッシュ内に残るいずれにせよ、ローカルキャッシュ内の最も長い間使用されていないメモリブロックが、新しいメモリブロックを記憶するために結局追い出される。対照的に、このストリーミング機能においては、マイグレーション元ディスク245sのすべてのメモリブロックが、それらのメモリブロックがマイグレーション元クライアント215sからダウンロードされるとマイグレーション先ディスク245tに必ず記憶され、さらに、この場合、マイグレーションプロセスは、マイグレーション先クライアント215tのスタンドアロン動作のためにマイグレーション先クライアント215t上にマイグレーション元ディスク245sの全体のコピーを作成することを目的としている。その上、最小限のオペレーティングシステムでのマイグレーション先クライアント215tの最初のブートは、最小限のオペレーティングシステムがマイグレーション元クライアント215sのうちの1つと互換性がある-すなわち、その最小限のオペレーティングシステムがそのマイグレーション元クライアント215sのファイルシステムをサポートする-という条件でマイグレーション元ディスク245sを任意のタイプのマイグレーション先クライアント215tにマイグレーションすることを可能にし、したがって、異種のプラットフォームを用いたマイグレーション元クライアントとマイグレーション先クライアント-例えば、いずれの場合も、同じハードウェアアーキテクチャ-例えば、x86-に基づく異なるハイパーバイザ上で実行される仮想マシン-の間でさえも非常に高速なマイグレーションプロセスを得ることが今や可能である。上述のマイグレーションプロセスは、任意の組み合わせの物理コンピュータと仮想マシンの両方をサポートする単一のメカニズムを提供し、特に、物理コンピュータに対するそのメカニズムの実装は、仮想マシンにも直接適用可能であるその仮想マシンの製品化までの時間に好影響を与える。本発明の対応する実施形態によるソリューションの異なる例示的な実装が、図10~図13に示される。この目的のために、各図は、対応するマイグレーションプロセスを実装するために使用され得る主要なソフトウェアコンポーネントの役割を表すコラボレーション図を提供する。特に、図は、対応するコンポーネントによってシステムの静的な構造を示し、記号Aが前に付いた増加する連番で示される対応するアクションをそれぞれが表す、一連の交換されるメッセージによってそのシステムの動的な振る舞いを示す。情報プログラムおよびデータは、概して、ハードディスク上に記憶され、プログラムが実行されているときに各コンピュータの作業メモリに少なくとも部分的にロードされる。プログラムは、例えば、DVDからハードディスクに最初にインストールされる。図10から始めると、マイグレーション元クライアントとマイグレーション先クライアントの両方が物理コンピュータである物理-物理P2Pタイプのマイグレーションプロセスの例示的な実装が示される。このマイグレーションプロセスを実装するために使用され得るソフトウェアコンポーネントは、全体として参照番号300によって表される。特に、サーバコンピュータ110が、デプロイメントマネージャ305-例えば、IBMのIBMTivoliProvisioningManagerforOSDeploymentまたはTPMforOSDのIBMTivoliProvisioningManagerforImagesまたはTPMfIIBMおよびTivoliはIBMの商標である-を実行し、デプロイメントマネージャ305は、オペレーティングシステムまたはアプリケーションプログラムあるいはその両方のサーバコンピュータ110からシステムのクライアントコンピュータへのリモートでのデプロイを自動化するために使用される。この目的のために、デプロイメントマネージャ305は、ソフトウェアイメージ310のリポジトリを管理する。ブラウザ312が、デプロイメントマネージャ305と情報をやりとりするためにオペレータ313によって使用される。通常通り、選択されたソフトウェアイメージ310が、デプロイメントマネージャ305の制御の下でマイグレーション元コンピュータ315sにデプロイされるアクションA301.デプロイ。この時点で、本発明の実施形態によるソリューションにおいては、マイグレーション元コンピュータ315s上にインストールされたオペレーティングシステムまたはアプリケーションプログラムあるいはその両方が、マイグレーション先コンピュータ315tに直接マイグレーションされることができる。この目的のために、オペレータ313は、デプロイメントマネージャ305上でマイグレーションプロセスのためのマイグレーション元コンピュータ315sおよびマイグレーション先コンピュータ315tを選択するアクションA302.マイグレーション。それに応じて、デプロイメントマネージャ305は、-例えば、WakeonLANWoLサービスによって-ネットワークを介してマイグレーション元コンピュータ315sを強制的にブートすることによってマイグレーション元コンピュータ315sを必要に応じてオフにし、それからオンにするアクションA303.ネットワークブート。この目的のために、マイグレーション元コンピュータ315sは、ネットワークブートローダ-例えば、そのマイグレーション元コンピュータ315sのネットワークアダプタに組み込まれたプリブート実行環境PrebootExecutionEnvironmentPXE-を起動する。ネットワークブートローダは、動的アドレスサービス-例えば、動的ホスト構成プロトコルDHCPに基づく-を利用して、マイグレーション元コンピュータ315sに対する動的アドレスを取得し、具体的には、ネットワークブートローダは、DHCPサーバとして働くサーバコンピュータ110によって処理される対応する要求をブロードキャストする。次に、ネットワークブートローダは、ネットワークブートストラッププログラムのアドレスを返すサーバコンピュータ110によってやはり処理されるブートストラップ要求をブロードキャストし、ネットワークブートローダは、ネットワークブートストラッププログラムを-例えば、簡易ファイル転送プロトコルTFTPによって-RAMディスクすなわち、大容量メモリとして扱われる作業メモリの一部にダウンロードし、次いで、そのネットワークブートストラッププログラムを起動する。ネットワークブートストラッププログラム-例えば、Windowsプレインストール環境WinPE、Windowsはマイクロソフトの商標である-は、いかなるディスクもマウントせずにマイグレーション元コンピュータ315sのための最小限のオペレーティングシステム325sを提供し、したがって、マイグレーション元コンピュータ315sは、大容量メモリ内のそのマイグレーション元コンピュータ315sの状態に変更が加えられる可能性がまったくない完全なセーフモードで動作する。最小限のオペレーティングシステム325sは、-例えば、インターネット小型コンピュータシステムインターフェースInternetSmallComputerSystemInterfaceiSCSIプロトコルに基づいて-リモートでデータにアクセスすることを可能にするためのリモートアクセスサーバ330sと、デプロイメントマネージャ305と情報をやりとりするためのデプロイメントエージェント335sとを含む。この時点で、デプロイメントエージェント335sは、リモートアクセスサーバ330sを通じたマイグレーション元ディスク345sのリモートアクセスのためにクライアントコンピュータ315sのソフトウェアイメージのマイグレーション元ディスク345sを-問題としている例においては単にそのマイグレーション元ディスク345sをiSCSIターゲットとして定義することによって-準備し、具体的には、マイグレーション元イメージ345sは、対応するブートストラッププログラム350sを含む。デプロイメントエージェント335sは、今や、マイグレーション元コンピュータ315sの平常動作を可能にするために通常通りにマイグレーション元コンピュータ315sをオフにし、それからオンにすることができるアクションA304.準備。この時点で、デプロイメントエージェント335sは、対応するメッセージをデプロイメントマネージャ305に送信することによってマイグレーション先コンピュータ315tへの転送アクションをトリガするアクションA305.トリガ。それに応じて、デプロイメントマネージャ305は、ネットワークを介してマイグレーション先コンピュータ315tを強制的にブートすることによってマイグレーション先コンピュータ315tを必要に応じてオフにし、それからオンにするアクションA306.ネットワークブート。上述のように、マイグレーション先コンピュータ315tは、ネットワークブートローダ例えば、PXEを起動し、そのネットワークブートローダは、動的アドレスサービス例えば、DHCPを利用してサーバコンピュータ110からマイグレーション先コンピュータ315tに対する動的アドレスを取得し、次いで、サーバコンピュータ110からネットワークブートストラッププログラムをダウンロードし、そのネットワークブートストラッププログラムを起動する。ネットワークブートストラッププログラム例えば、WinPEは、マイグレーション先コンピュータ315tのための最小限のオペレーティングシステム325tを提供する。最小限のオペレーティングシステム325tは、デプロイメントマネージャ305と情報をやりとりするためのデプロイメントエージェント335tを含む。デプロイメントエージェント335tは、リモートアクセスサーバ330sを通じてマイグレーション元ディスク345sにリモートでアクセスするためにマイグレーション元ディスク345sをリモートディスクとしてすなわち、問題としている例においてはiSCSIイニシエータとして働くことによってマウントしアクションA307.マウント、マイグレーション元ディスク345sは、アクセスオンコピーモードでマウントされ、したがって、マイグレーション先コンピュータ315tによってアクセスされるマイグレーション元ディスク345sの任意のメモリブロックは、そのマイグレーション先コンピュータ315tのマイグレーション先ディスク345tに自動的にコピーされる。特に、デプロイメントエージェント335tが、対応するデプロイメントエージェントを含むマイグレーション元ディスク345sのブートストラッププログラム350sにアクセスし、ブートストラッププログラム350sが、マイグレーション元ディスク345sの残りをストリーミングで転送するためのストリーミングドライバをやはり含む。マイグレーション元ディスク345sがアクセスオンコピーモードでマウントされたので、これは、ブートストラッププログラム350sをマイグレーション先ディスク345tに対応するブートストラッププログラム350tとしてコピーすることを引き起こすアクションA308.コピー。この時点で、デプロイメントエージェント335tが、マイグレーション先コンピュータ315tを通常通りにオフにし、それからオンにする。したがって、マイグレーション先コンピュータ315tがオンになるときに実行される、マイグレーション先コンピュータ315tのファームウェアに記憶されたブートローダ-例えば、基本入出力システムBIOS-が、ここで、マイグレーション先ディスク345t内のブートストラッププログラム350tを発見し、その結果、マイグレーション先コンピュータ315tはそのブートストラッププログラム350tからローカルでブートするアクションA309.ローカルブート。このようにして、ブートストラッププログラム350tが、今や、マイグレーション先コンピュータ315tのための完全なオペレーティングシステムを提供する。特に、完全なオペレーティングシステムは、任意のメモリブロックへのアクセスのそれぞれの要求を処理し、そのメモリブロックを-以下で詳細に説明されるように-ストリーミングで提供するストリーミングドライバを含むアクションA310.ストリーミング。図11に移ると、仮想-仮想V2Vタイプのマイグレーションプロセスの例示的な実装が示される。このマイグレーションプロセスを実装するために使用され得るソフトウェアコンポーネントは、全体として参照番号400によって表される。特に、ここで、マイグレーション元コンピュータおよびマイグレーション先コンピュータは、ハイパーバイザ405sおよびハイパーバイザ405t例えば、VMWareのWMWareESX-VMWareはVMWareの商標であるをそれぞれ実行し、各ハイパーバイザ405s、405tは、仮想マシンが独占的に制御する物理コンピュータの見かけを与える抽象的な環境からそれぞれが構成される仮想マシンをエミュレートする仮想化層virtualizationlayerを実装する。この場合、マイグレーションプロセスは、ハイパーバイザ405s上で実行されるマイグレーション元仮想マシン415sからハイパーバイザ405t上で実行されるマイグレーション先仮想マシン415tへのものである。この目的のために、ハイパーバイザ405sは、例えば、iSCSIプロトコルに基づくリモートアクセスサーバ430sおよびデプロイメントマネージャ305と情報をやりとりするためのデプロイメントエージェント435sを実行し、同様に、ハイパーバイザ405tは、デプロイメントマネージャ305と情報をやりとりするためのデプロイメントエージェント435tを実行する。上述のように、サーバコンピュータ110は、デプロイメントマネージャ305と情報をやりとりするためにオペレータ313によって使用されるブラウザ312とともに、ソフトウェアイメージ310のリポジトリを管理するデプロイメントマネージャ305を実行する。通常通り、選択されたソフトウェアイメージ310が、デプロイメントマネージャ305の制御の下でマイグレーション元仮想マシン415sにデプロイされるアクションA401.デプロイ。この時点で、本発明の実施形態によるソリューションにおいては、オペレータ313は、デプロイメントマネージャ305上でマイグレーションプロセスのためのマイグレーション元仮想マシン415sおよびマイグレーション先仮想マシン415tを選択するアクションA402.マイグレーション。それに応じて、デプロイメントマネージャ305は、デプロイメントエージェント435sにマイグレーション元仮想マシン415sを必要に応じてオフにするように命令する。デプロイメントエージェント435sは、リモートアクセスサーバ430sを通じたマイグレーション元仮想ディスク445sのリモートアクセスを可能にするためにマイグレーション元仮想マシン415sのソフトウェアイメージのマイグレーション元仮想ディスク445sを問題としている例においては単にそのマイグレーション元仮想ディスク445sをiSCSIターゲットとして定義することによって準備する。デプロイメントエージェント435sは、ここで、マイグレーション元仮想マシン415sの平常動作を可能にするためにマイグレーション元仮想マシン415sをオンにすることができるアクションA404.準備。この時点で、デプロイメントエージェント435sは、対応するメッセージをデプロイメントマネージャ305に送信することによってマイグレーション先仮想マシン415tへの転送アクションをトリガするアクションA405.トリガ。それに応じて、デプロイメントマネージャ305は、デプロイメントエージェント435tに、ネットワークブートストラップディスクを例えば、ISO形式でダウンロードするように命令し、そのネットワークブートストラップディスクはブートストラップ仮想ディスク437に記憶される。次いで、デプロイメントエージェント435tは、マイグレーション先仮想マシン415tを必要に応じてオフにする。この時点で、マイグレーション先仮想マシン415tのマイグレーション先仮想ディスク445tのブートセクタ-例えば、マスタブートレコードMBR-すなわち、ブートローダ例えば、BIOSによってロードされるマイグレーション先仮想ディスク445tの最初のセクタ-が、ブートストラップ仮想ディスク437を指すようにデプロイメントエージェント435tによって変更される。次に、デプロイメントエージェント435tは、マイグレーション先仮想マシン415tをオンにし、したがって、マイグレーション先仮想ディスク445tをブート可能なデバイスとして特定し、そのマイグレーション先仮想ディスク445tのブートセクタをロードするマイグレーション先仮想マシン415tのブートローダは、今や、ブートストラップ仮想ディスク437にリダイレクトされ、それによって、マイグレーション先仮想マシン415tがそのブートストラップ仮想ディスク437からブートするようにする。これは、マイグレーション先仮想マシン415tのための最小限のオペレーティングシステム425tを提供するブートストラップ仮想ディスク437に記憶されたブートストラッププログラム例えば、WinPEを起動することをともない、特に、最小限のオペレーティングシステム425tは、-デプロイメントマネージャ305と情報をやりとりするための-デプロイメントエージェント435tvをさらに含むアクションA406.ネットワークブート。デプロイメントエージェント435tvは、リモートアクセスサーバ430sを通じてマイグレーション元仮想ディスク445sにリモートでアクセスするためにマイグレーション元仮想ディスク445sをアクセスオンコピーモードのリモートディスクとしてすなわち、問題としている例においてはiSCSIイニシエータとして働くことによってマウントするアクションA407.マウント。デプロイメントエージェント435tvは、マイグレーション元仮想ディスク445sのブートストラッププログラム450sがマイグレーション先仮想ディスク445tに対応するブートストラッププログラム450tとしてコピーされるようにする-それに応じてブートセクタをオーバーライドする-ように、対応するデプロイメントエージェントおよびストリーミングドライバを含むマイグレーション元仮想ディスク445sのブートストラッププログラム450sにアクセスするアクションA408.コピー。この時点で、デプロイメントエージェント435tは、ブートストラップ仮想ディスク437を削除することができる。デプロイメントエージェント435tは、マイグレーション先仮想マシン415tをオフにし、それからオンにする。したがって、マイグレーション先仮想マシン415tのブートローダは、今や、マイグレーション先仮想ディスク445t内のブートストラッププログラム450tを発見し、その結果、マイグレーション先仮想マシン415tは、そのブートストラッププログラム450tからローカルでブートするアクションA409.ローカルブート。このようにして、ブートストラッププログラム450tが、今や、マイグレーション先仮想マシン415tのための完全なオペレーティングシステムを提供する。特に、完全なオペレーティングシステムは、任意のメモリブロックへのアクセスのそれぞれの要求を処理し、そのメモリブロックを-以下で詳細に説明されるように-ストリーミングで提供するストリーミングドライバを含むアクションA410.ストリーミング。ここで図12を参照すると、物理-仮想P2Vタイプのマイグレーションプロセスの例示的な実装が示される。このマイグレーションプロセスを実装するために使用され得るソフトウェアコンポーネントは、全体として参照番号500によって表される。この場合、マイグレーションプロセスは、マイグレーション元コンピュータ315sからマイグレーション先仮想マシン415tハイパーバイザ405t上で実行され、ハイパーバイザ405tは、さらにデプロイメントエージェント435tを実行するへのものである。上述のように、サーバコンピュータ110は、デプロイメントマネージャ305と情報をやりとりするためにオペレータ313によって使用されるブラウザ312とともに、ソフトウェアイメージ310のリポジトリを管理するデプロイメントマネージャ305を実行する。通常通り、選択されたソフトウェアイメージ310が、デプロイメントマネージャ305の制御の下でマイグレーション元コンピュータ315sにデプロイされるアクションA501.デプロイ。この時点で、本発明の実施形態によるソリューションにおいては、オペレータ313は、デプロイメントマネージャ305上でマイグレーションプロセスのためのマイグレーション元コンピュータ315sおよびマイグレーション先仮想マシン415tを選択するアクションA502.マイグレーション。それに応じて、デプロイメントマネージャ305は、リモートアクセスサーバ330sおよびデプロイメントエージェント335sを含む最小限のオペレーティングシステム325sを提供するために、ネットワークを介してマイグレーション元コンピュータ315sを強制的にブートすることによってマイグレーション元コンピュータ315sを必要に応じてオフにし、それからオンにするアクションA503.ネットワークブート。デプロイメントエージェント335sは、リモートアクセスサーバ330sを通じたマイグレーション元ディスク345sのリモートアクセスを可能にするためにすなわち、問題としている例においてはiSCSIターゲットとしてマイグレーション元ディスク345sを準備する。デプロイメントエージェント335sは、今や、マイグレーション元コンピュータ315sの平常動作を可能にするために通常通りにマイグレーション元コンピュータ315sをオフにし、それからオンにすることができるアクションA504.準備。この時点で、デプロイメントエージェント335sは、対応するメッセージをデプロイメントマネージャ305に送信することによってマイグレーション先仮想マシン415tへの転送アクションをトリガするアクションA505.トリガ。それに応じて、デプロイメントマネージャ305は、デプロイメントエージェント435tに、ブートストラップ仮想ディスク437をダウンロードするように命令する。次に、デプロイメントエージェント435tは、マイグレーション先仮想マシン415tを必要に応じてオフにし、ブートストラップ仮想ディスク437を指すようにマイグレーション先仮想ディスク445tのブートセクタ例えば、MBRを変更する。次いで、デプロイメントエージェント435tは、-デプロイメントエージェント435tvを含む最小限のオペレーティングシステム425tを提供するために-マイグレーション先仮想マシン415tをオンにし、それによって、マイグレーション先仮想マシン415tがブートストラップ仮想ディスク437からブートするようにするアクションA506.ネットワークブート。デプロイメントエージェント435tvは、リモートアクセスサーバ330sを通じてマイグレーション元仮想ディスク345sにリモートでアクセスするためにマイグレーション元仮想ディスク345sをアクセスオンコピーモードのリモートディスクとしてすなわち、問題としている例においてはiSCSIイニシエータとして働くことによってマウントするアクションA507.マウント。デプロイメントエージェント435tvは、マイグレーション元仮想ディスク345sのブートストラッププログラム350sがマイグレーション先仮想ディスク445tに対応するブートストラッププログラム450tとしてコピーされるようにするように、対応するデプロイメントエージェントおよびストリーミングドライバを含むマイグレーション元仮想ディスク345sのブートストラッププログラム350sにアクセスするアクションA508.コピー。この時点で、デプロイメントエージェント435tは、ブートストラップ仮想ディスク437を削除することができる。デプロイメントエージェント435tは、マイグレーション先仮想マシン415tをマイグレーション先仮想ディスク445tからローカルでブートするために、マイグレーション先仮想マシン415tをオフにし、それからオンにするアクションA509.ローカルブート。そのようにして提供されるマイグレーション先仮想マシン415tのための完全な動作環境は、任意のメモリブロックへのアクセスのそれぞれの要求を処理し、そのメモリブロックを-以下で詳細に説明されるように-ストリーミングで提供するストリーミングドライバを含むアクションA510.ストリーミング。最後に、図13において、仮想-物理V2Pタイプのマイグレーションプロセスの例示的な実装が示される。このマイグレーションプロセスを実装するために使用され得るソフトウェアコンポーネントは、全体として参照番号600によって表される。この場合、マイグレーションプロセスは、マイグレーション元仮想マシン415sハイパーバイザ405s上で実行され、ハイパーバイザ405sは、さらにリモートアクセスサーバ430sおよびデプロイメントエージェント435sを実行するからマイグレーション先コンピュータ315tへのものである。上述のように、サーバコンピュータ110は、デプロイメントマネージャ305と情報をやりとりするためにオペレータ313によって使用されるブラウザ312とともに、ソフトウェアイメージ310のリポジトリを管理するデプロイメントマネージャ305を実行する。通常通り、選択されたソフトウェアイメージ310が、デプロイメントマネージャ305の制御の下でマイグレーション元仮想マシン415sにデプロイされるアクションA601.デプロイ。この時点で、本発明の実施形態によるソリューションにおいては、オペレータ313は、デプロイメントマネージャ305上でマイグレーションプロセスのためのマイグレーション元仮想マシン415sおよびマイグレーション先コンピュータ315tを選択するアクションA602.マイグレーション。それに応じて、デプロイメントマネージャ305は、デプロイメントエージェント435sにマイグレーション元仮想マシン415sを必要に応じてオフにするように命令する。デプロイメントエージェント435sは、リモートアクセスサーバ430sを通じたマイグレーション元仮想ディスク440sのリモートアクセスを可能にするためにすなわち、問題としている例においてはそのマイグレーション元仮想ディスク445sをiSCSIターゲットとして定義することによってマイグレーション元仮想ディスク440sを準備する。デプロイメントエージェント435sは、ここで、マイグレーション元仮想マシン415sの平常動作を可能にするためにマイグレーション元仮想マシン415sをオンにすることができるアクションA604.準備。この時点で、デプロイメントエージェント435sは、対応するメッセージをデプロイメントマネージャ305に送信することによってマイグレーション先コンピュータ315tへの転送アクションをトリガするアクションA605.トリガ。それに応じて、デプロイメントマネージャ305は、デプロイメントエージェント335tを含む最小限のオペレーティングシステム325tを提供するために、ネットワークを介してマイグレーション先コンピュータ315tを強制的にブートすることによってマイグレーション先コンピュータ315tを必要に応じてオフにし、それからオンにするアクションA606.ネットワークブート。デプロイメントエージェント335tは、リモートアクセスサーバ430sを通じてマイグレーション元仮想ディスク445sにリモートでアクセスするためにマイグレーション元仮想ディスク445sをアクセスオンコピーモードのリモートディスクとしてすなわち、問題としている例においてはiSCSIイニシエータとして働くことによってマウントするアクションA607.マウント。デプロイメントエージェント335tは、マイグレーション元仮想ディスク445sのブートストラッププログラム450sがマイグレーション先ディスク345tに対応するブートストラッププログラム350tとしてコピーされるようにするように、対応するデプロイメントエージェントおよびストリーミングドライバを含むマイグレーション元仮想ディスク445sのブートストラッププログラム450sにアクセスするアクションA608.コピー。この時点で、デプロイメントエージェント335tは、マイグレーション先コンピュータ315tをマイグレーション先ディスク345tからローカルでブートするために、通常マイグレーション先コンピュータ315tをオフにし、それからオンにするアクションA609.ローカルブート。そのようにして提供されるマイグレーション先コンピュータ315tのための完全なオペレーティングシステムは、任意のメモリブロックへのアクセスのそれぞれの要求を処理し、そのメモリブロックを-以下で詳細に説明されるように-ストリーミングで提供するストリーミングドライバを含むアクションA610.ストリーミング。上述のストリーミングプロセスを説明するために、ここで、本発明の実施形態によるソリューションの実装に関連する作業のフローを示すアクティビティ図を示す図14に対する参照がなされ、特に、アクティビティ図は、方法700による例示的なストリーミングプロセスを示す。方法700は、マイグレーション先クライアントすなわち、マイグレーション先コンピュータまたはマイグレーション先仮想マシンのファイルシステムドライバのスイムレーン内の黒い開始の円703で始まり、次いで、例えば、アプリケーションプログラムからメモリブロックへのアクセスすなわち、読み取りの要求が受信されるとすぐにブロック706に進む。それに応じて、ブロック709において、ファイルシステムドライバが、その要求をストリーミングドライバに渡す。ストリーミングドライバのスイムレーンに移ると、ブロック712において、要求されたブロックがマイグレーション先物理または仮想ディスクにおいて利用可能であるかどうかを判定する検証がなされ、そのために、ストリーミングドライバが、この情報を例えば、各メモリブロックが利用できるかどうかを示す-例えば、512バイトの-各メモリブロックに関するビットを含むビットマップで記憶するロケーションマップlocationmapにアクセスする。次に、作業のフローは、ブロック715において、この検証の結果にしたがって枝分かれする。メモリブロックがマイグレーション先ディスクにおいて利用可能でないすなわち、ロケーションマップ内のそのメモリブロックのビットがデアサートされている場合、ブロック718において、ストリーミングドライバが、問題としている例においてはiSCSIイニシエータとして働くリモートアクセスドライバにメモリブロックを要求する。ブロック721に進み、リモートアクセスドライバが、マイグレーション元クライアントすなわち、マイグレーション元コンピュータまたはマイグレーション元仮想マシンのリモートアクセスサーバ-問題としている例においてはマイグレーション元物理または仮想ディスクをiSCSIターゲットとして提供する-に対応するダウンロード要求を送る。それに応答して、ブロック724において、リモートアクセスサーバが、マイグレーション先クライアントのリモートアクセスドライバに要求されたメモリブロックを返す。次に、ブロック727において、リモートアクセスドライバが、そのようにダウンロードされたメモリブロックをストリーミングドライバに返す。ここでブロック730を参照すると、ストリーミングドライバが、このメモリブロックをマイグレーション先ディスクに記憶し、それに合わせて、そのメモリブロックが利用可能であることを示すためにすなわち、対応するビットをアサートすることによってロケーションマップを更新する。再びブロック715を参照すると、メモリブロックがマイグレーション先ディスクにおいて既に利用可能であるすなわち、そのメモリブロックのビットがアサートされている場合、方法700は、ブロック733へと下り、ブロック733において、メモリブロックが、マイグレーション先ディスクから直接取得される。いずれの場合も、作業のフローは、ブロック736においてブロック730か、またはブロック733かのどちらかから合流し、このフェーズにおいて、ストリーミングドライバが、ファイルシステムドライバにメモリブロックを返す。そして今度は、ブロック739において、ファイルシステムドライバが、要求元のアプリケーションプログラムにメモリブロックを返す。同時に、ストリーミングドライバのスイムレーンのブロック742において、マイグレーション元ディスクのサイズに対応する事前に定義された数のマイグレーション元ディスクのすべてのメモリブロックがマイグレーション先ディスクにおいて利用可能であるすなわち、ロケーションマップ内の対応するビットがアサートされているかどうかを検証するためのテストが、行われる。利用可能である場合、ブロック745において、ストリーミングドライバが無効化され、その結果、あらゆるメモリブロックの読み取りのすべての次の要求は通常通りにファイルシステムドライバによって直接処理され、逆に言えば、いかなるアクションも実行されない。ファイルシステムドライバのスイムレーンに戻って、メモリブロックが書き込みのためにやはり要求された場合、要求は、ブロック748において、ファイルシステムドライバによって直接処理され、具体的には、ここで、ファイルシステムドライバが、メモリブロックをそのメモリブロックがそのメモリブロックの読み取りの後に必ず利用可能であるマイグレーション先ディスクに書き込む。完全に非同期的に、ブロック751において、ストリーミングドライバが、マイグレーション先クライアント、マイグレーション元クライアント、またはネットワーク、あるいはそれらすべての負荷を周期的に例えば、10~100msごとに検証し、負荷が事前に定義された閾値未満である対応するリソースが-例えば、マイグレーション先クライアントまたはマイグレーション元クライアントあるいはその両方でアクションが実行されておらず、ネットワークのトラフィックが低いために-今のところ十分に利用されていないことを示す場合、作業のフローは、ブロック754に進む。このフェーズにおいて、ストリーミングドライバは、上述の同じ動作を繰り返すことによって、マイグレーション先ディスクにおいてまだ利用可能でないメモリブロック例えば、ロケーションマップ内のビットがデアサートされている最初のメモリブロックをダウンロードする。簡潔に言えば、対応する要求が、リモートアクセスドライバに送られ、ブロック757において、リモートアクセスドライバが、その要求をマイグレーション元クライアントのリモートアクセスサーバに渡す。ブロック760において、マイグレーション元クライアントのリモートアクセスサーバが、要求されたメモリブロックをマイグレーション先ディスクのリモートアクセスドライバに返し、そして今度は、ブロック763において、リモートアクセスドライバが、そのメモリブロックをストリーミングドライバに返す。ここでブロック766を参照すると、ストリーミングドライバが、このメモリブロックをマイグレーション先ディスクに記憶し、それに合わせて、そのメモリブロックが利用可能であることを示すためにロケーションマップを更新する。ここで、ブロック769において、マイグレーション元ディスクのすべてのメモリブロックがマイグレーション先ディスクに記憶されているかどうかを検証するためのテストが、行われる。記憶されている場合、ブロック772において、ストリーミングドライバが無効化されるが、記憶されていない場合は、いかなるアクションも実行されない。どちらの場合も、次に、方法700は、ブロック772か、またはブロック769かのどちらかから同心の白/黒の停止の円775において終了する。当然ながら、ローカルの具体的な要件を満足するために、当業者は、上述のソリューションに対して、多くの論理的または物理的あるいはその両方の修正および変更を適用する可能性がある。より具体的には、このソリューションがこのソリューションの1つまたは複数の実施形態を参照してある程度の具体性を持って説明されたが、形態および詳細のさまざまな省略、置き換え、および変更、ならびにその他の実施形態が例えば、プロセスのパラメータに関してあり得ることを理解されたい。特に、本発明のさまざまな実施形態は、それらの実施形態のより完全な理解をもたらすために上記の説明で述べられた特定の詳細数値例などなしに実施される可能性さえあり、逆に、よく知られている特徴は、不必要に詳細であることによって説明を曖昧にしないために省略されたか、または簡略化された可能性がある。さらに、開示されたソリューションの任意の実施形態に関連して説明された特定の要素または方法のステップあるいはその両方は、全体的な設計の選択の問題として、任意のその他の実施形態に組み込まれる可能性があることがはっきりと意図される。例えば、同様の考えが、同じソリューションがより多くのステップもしくはその一部のステップからなる同じ機能を有する同様のステップを用いること、必須ではない一部のステップを削除すること、またはさらなる任意的なステップを追加することによって均等な方法によって実施される場合に当てはまり、さらに、それらのステップは、少なくとも部分的に異なる順序で、同時に、またはインターリーブされるようにして実行される可能性がある。さらに、マイグレーションされるべきマイグレーション元ディスクは、任意のソフトウェアプログラム例えば、アプリケーションプログラムを持たずにオペレーティングシステムだけを含む可能性がある。いずれにせよ、マイグレーションプロセスは、ソフトウェアイメージがマイグレーション元クライアントにどのように例えば、手動でデプロイされたかとまったく無関係であり、さらに広く言えば、マイグレーションプロセスは、デプロイメントマネージャを有するいかなるサーバコンピュータもない簡略化されたシステムで実装される可能性もある。同様に、任意のその他の方法でマイグレーション元ディスクがアクセスオンコピーモードでマウントされないときに専用の動作さえも用いてプライマリブートストラッププログラムをマイグレーション元ディスクからマイグレーション先ディスクにコピーすることがあり得る。当然、ダウンロードされるべきマイグレーション元ディスクのメモリブロックは、任意のその他の情報を含む可能性があり、または任意のその他のサイズを有する可能性があり、あるいはその両方である可能性があり、加えて、メモリブロックの起こり得る使用の前にそれらのメモリブロックをマイグレーション先ディスクにダウンロードし、記憶することによってメモリブロックのプリフェッチを実施することもあり得る。任意の均等な構造が、例えば、ロケーションマップをマイグレーション先コンピュータの作業メモリにロードすることを可能にするためにロケーションマップをチャンクに分割することによってストリーミング機能を提供するため、およびマイグレーション先ディスクにおいてメモリブロックが利用できるかどうかを管理するために使用される可能性がある。上述のケースは例示的であるに過ぎず、それらのケースは限定的に解釈されるべきでなく、例えば、マイグレーションプロセスは、互いに異なってさえいる任意の種類のハイパーバイザ例えば、ESXとKVM上で実行される仮想マシンの間のものである可能性がある。あるいは、マイグレーション先ディスクへのメモリブロックの書き込みもストリーミングドライバによって管理することがあり得る。ストリーミングドライバを無効化することに関して異なる条件例えば、マイグレーション先ディスクの事前に定義された領域が書き込まれたときが想定され得るが、ストリーミングドライバを例えば、ロケーションマップ内の対応するビットのリセットに応じてメモリブロックの最新のバージョンをダウンロードするために常にアクティブに維持することを妨げるものは何もない。負荷は、任意のその他の周期で、または特定の期間中に例えば、夜間にだけ監視される可能性があり、同様の考えが、負荷がマイグレーション元クライアント、マイグレーション先クライアント、ネットワーク、またはそれらの任意の組み合わせに関してのみ監視される場合に当てはまる。さらに、負荷に関する閾値は、任意のその他の方法で例えば、異なる重みでその負荷の寄与を重み付けすることによって定義され得る。同様の考えが、負荷が閾値未満になるときに2つ以上のメモリブロックが同時にダウンロードされる場合に当てはまる。いずれにせよ、この特徴は、任意的であるに過ぎず、簡素な実装においては省略され得る。マイグレーション先コンピュータのための最小限のオペレーティングシステムは、任意の均等な予備的ブートストラッププログラム例えば、BartPEからそのマイグレーション先コンピュータをブートすることによって提供される可能性がある。その上、所望の結果が、例えば、RIPL、gPXE、PXELinuxなどに基づく異なるネットワークブートプロシージャを用いて、またはさらに別の方法で例えば、ネットワークブートCDから手動でマイグレーション先コンピュータをブートすることによって達成される可能性もある。同様の考えが、マイグレーション先仮想マシンのブートに当てはまり、いずれにせよ、マイグレーション先コンピュータの最小限のオペレーティングシステムを提供するための同じ技術すなわち、ネットワークを介したそのマイグレーション先コンピュータのブートをマイグレーション先仮想マシンにも適用することが可能である。いかなる場合も、異なる方法で例えば、取り外し可能なストレージデバイスからブート仮想ディスクをロードすることによってブート仮想ディスクを提供することを妨げるものは何もない。同様に、マイグレーション元コンピュータのための最小限のオペレーティングシステムは、任意の均等な予備的ブートストラッププログラム例えば、BartPEからそのマイグレーション元コンピュータをブートすることによって提供される可能性がある-マイグレーション元ディスクは、その最小限のオペレーティングシステムに含まれる任意のその他のモジュールによって準備される可能性がある。その上、所望の結果が、例えば、RIPL、gPXE、PXELinuxなどに基づく異なるネットワークブートプロシージャを用いて、またはさらに別の方法で例えば、ネットワークブートCDから手動でマイグレーション元コンピュータをブートすることによって達成される可能性もある。あるいは、マイグレーション元ディスクは、マイグレーション元コンピュータのハイパーバイザ上で実行される任意のその他のモジュールによって準備される可能性があり、いずれにせよ、マイグレーション元コンピュータのマイグレーション元ディスクを準備するためのすなわち、最小限のオペレーティングシステムを用いてそのマイグレーション元コンピュータをブートすることに基づく同じ技術をマイグレーション元仮想マシンにも適用することが可能である。同様の考えが、本発明の各実施形態を実装するために使用され得るプログラムが異なる方法で構築される場合、または追加的なモジュールもしくは機能が提供される場合に当てはまり、同様に、メモリの構造は、その他のタイプである可能性があり、または必ずしも物理的なストレージ媒体で構成されるとは限らない均等なエンティティによって置き換えられる可能性がある。プログラムは、任意のデータ処理システムによって、または任意のデータ処理システムに関連して例えば、仮想マシン内で使用されるのに好適な任意の形態をとる可能性があり、特に、プログラムは、オブジェクトコードか、または-例えば、コンパイルもしくは解釈されるべき-ソースコードかのいずれかの外部または常駐ソフトウェア、ファームウェア、またはマイクロコードの形態である可能性がある。さらに、プログラムを任意のコンピュータが使用可能な媒体に実装された製品として提供することが可能であり、媒体は、プログラムを包含、記憶、伝達、伝播、または転送するのに好適な任意の要素である可能性がある。例えば、媒体は、電子式、磁気式、光学式、電磁式、赤外線式、または半導体式である可能性があり、そのような媒体の例は、プログラムが予めロードされる可能性がある固定式ディスク、取り外し可能なディスク、テープ、カード、電線、ファイバ、無線接続、ネットワーク、放送波などである。いずれにせよ、本発明の実施形態によるソリューションは、例えば、半導体材料のチップに集積されたハードウェア構造を用いるとしても、または別の方法で構成された好適にプログラムされたソフトウェアとハードウェアの組み合わせを用いるとしても、実装されるのに適している。あるいは、システムは、異なる構造を有するか、もしくは均等なコンポーネントを含み、またはシステムは、その他の有効な特徴を有する。いずれにせよ、システムのあらゆるコンポーネントがより多くの要素に分けられる可能性があり、または2つ以上のコンポーネントが単一の要素にまとめられる可能性があり、さらに、各コンポーネントが、対応する動作の並列的な実行をサポートするために複製される可能性がある。概して、異なるコンポーネントの間の任意のインタラクションは、別途指定されない限り連続的である必要はなく、直接的であるか、または1つまたは複数の媒介手段を通じて間接的であるかのどちらかである可能性があることも指摘される。特に、マイグレーションプロセスは、異なるアーキテクチャ例えば、広域、グローバル、セルラ、または衛星ネットワークに基づき、任意の種類の有線または無線あるいはその両方の接続を利用するシステムでやはり実施され得る。いずれにせよ、各コンピュータは、別の構造を有する可能性があり、またはプログラムもしくはその一部を一時的に記憶するキャッシュメモリなどの同様の要素を含む可能性があり、さらに、コンピュータをPDA、携帯電話などの任意のコードを実行するエンティティまたは複数のエンティティの組み合わせで置き換えることが可能である。