JP5907983B2 - マイグレーション方法、コンピュータ・プログラム、およびシステム - Google Patents

マイグレーション方法、コンピュータ・プログラム、およびシステム Download PDF

Info

Publication number
JP5907983B2
JP5907983B2 JP2013539195A JP2013539195A JP5907983B2 JP 5907983 B2 JP5907983 B2 JP 5907983B2 JP 2013539195 A JP2013539195 A JP 2013539195A JP 2013539195 A JP2013539195 A JP 2013539195A JP 5907983 B2 JP5907983 B2 JP 5907983B2
Authority
JP
Japan
Prior art keywords
migration
destination
data processing
source
memory
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.)
Active
Application number
JP2013539195A
Other languages
English (en)
Other versions
JP2013543192A (ja
Inventor
フォンティニー、ジャック
マリネッリ、クラウディオ
スコットン、ドクター、パオロ
ヴィユーミエ、シュテッケルベルグ、マルク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013543192A publication Critical patent/JP2013543192A/ja
Application granted granted Critical
Publication of JP5907983B2 publication Critical patent/JP5907983B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Description

本発明の1つまたは複数の実施形態によるソリューションは、データ処理の分野に関する。より具体的には、このソリューションは、ソフトウェア・イメージのマイグレーションに関する。
ソフトウェア・イメージのマイグレーションは、多数のコンピュータを含む大規模なデータ処理システムにおける重大な作業である。一般的に、ソフトウェア・イメージは、物理的な形式のコンピュータ中か、または仮想マシンによってエミュレートされるコンピュータ中のどちらかに存在するソフトウェア・モジュール(例えば、そのコンピュータのオペレーティング・システム、アプリケーション・プログラム、またはデータ、あるいはそれらすべて)を含む構造である。
ソフトウェア・イメージをマイグレーションするプロセス(または単にマイグレーション・プロセス)は、段階的なタイプであるか、または直接的なタイプである可能性がある。段階的なマイグレーション・プロセスにおいては、マスタ・コンピュータのマスタ・ソフトウェア・イメージがキャプチャされ、中央リポジトリに記憶され、そして、サーバ・コンピュータが、任意の所望のマイグレーション先クライアントへのマスタ・ソフトウェア・イメージのデプロイを制御する。対称的に、直接的なマイグレーション・プロセスにおいては、1つまたは複数のマイグレーション元クライアントのソフトウェア・イメージが、マイグレーション先クライアントに直接転送され、直接的なマイグレーション・プロセスは、(いかなる中央リポジトリも必要とせずにマイグレーション元クライアントから直接行われることができ、対応する負荷を複数のマイグレーション元クライアントに分散させる可能性があるので)より高速で、より単純である。
特に、直接的なマイグレーション・プロセスに関して、さまざまな手法が、当技術分野で提案されている。
特に、コールド・タイプのマイグレーション・プロセスにおいては、マイグレーション元クライアントは、(ソフトウェア・イメージがマイグレーション元クライアントの一貫性のある状態を反映することを保証するように)そのクライアントのソフトウェア・イメージをキャプチャするために停止される。コールド・マイグレーション・プロセスは、同種のプラットフォームかまたは異種のプラットフォームかのどちらかを有するマイグレーション元クライアントとマイグレーション先クライアントの間でうまく機能する可能性があるが、コールド・マイグレーション・プロセスは、マイグレーション元クライアントとマイグレーション先クライアントの両方がソフトウェア・イメージ全体をマイグレーションするために必要とされる(数時間ほどの)時間の間中ずっと利用できないので非常に低速である。その代わりに、ホット・タイプのマイグレーション・プロセスにおいては、マイグレーション元クライアントは、そのクライアントの一貫性のある状態をキャプチャするために必要な時間の間だけ休止される(一方で、マイグレーション先クライアントへのソフトウェア・イメージの実際の転送は、通常通り動作することができるマイグレーション元クライアントに対して透過的に行われる)。ホット・マイグレーション・プロセスは、(マイグレーション元クライアントが、そのクライアントの状態をキャプチャするために必要とされる数分ほどの時間の間だけ利用できないままであるので)マイグレーション元クライアントにおいては高速であるが、ホット・マイグレーション・プロセスは、同種のプラットフォーム上で実行される仮想マシンの間でのみ適用可能である。同様に、ライブ・タイプのマイグレーション・プロセスにおいては、マイグレーション元クライアントは、そのクライアントの状態を共有ファイルにカプセル化するために必要とされる時間の間だけ休止される。ライブ・マイグレーション・プロセスは、(マイグレーション元クライアントが利用できない時間が数秒ほどであるので)マイグレーション元クライアントにおいては非常に高速であるが、ライブ・マイグレーション・プロセスは、やはり、同種のプラットフォーム上で実行される仮想マシンの間でのみ適用可能である。いずれにせよ、ホット・マイグレーション・プロセスとライブ・マイグレーション・プロセスの両方において、マイグレーション先クライアントは、ソフトウェア・イメージ全体がそのクライアントに転送され終わった後(すなわち、マイグレーション・プロセスの開始から数時間後)にのみ利用可能である。
さらに、米国特許第7,512,833号(この特許の開示全体は参照により本明細書に援用される)は、オペレーティング・システムを、異なるハードウェア構成を有するコンピュータにクローニングするための方法を開示する。この目的のために、オペレーティング・システムのマスタ・イメージが、そのオペレーティング・システムが既にインストールされたマスタ・コンピュータのディスクの内容をキャプチャすることによって作成され、次いで、マスタ・イメージのファイル、ドライバ、およびレジストリの設定が、マスタ・イメージを異なるコンピュータ上でブート可能にするために、ソフトウェアおよびハードウェアの非互換性を排除する最低限の基本的レベルにそぎ落とされる。
米国特許出願第2008/0301425号(この特許出願の開示全体は参照により本明細書に援用される)は、ホストのリモートのブートをサポートするための方法を開示する。この目的のために、ホストの管理コントローラが、リモートのアクセス対象からホストに最初のオペレーティング・システムのイメージのカーネルをロードするリモート・アクセス・イニシエータ(remote access initiator)を含み、そして、カーネルが、そのカーネル独自のリモート・アクセス・イニシエータを用いて、リモートのアクセス対象から別のオペレーティング・システムのイメージをロードする。これは、マザーボード上のLAN(LANon motherboard)(LOM)機器をまったく持たないとしても、ホストのリモートのブートを可能にする。
米国特許出願第2006/0031547号(この特許出願の開示全体は参照により本明細書に援用される)は、オペレーティング・システムおよびアプリケーション・プログラムの統合されたオンデマンドの配信のための方法を開示する。この目的のために、オペレーティング・システムが、ストリーミング・サーバ上の対応するイメージからクライアントにストリーミングで配信され−すなわち、それらのイメージのブロックが(既に受信されたブロックが使用されている間にさらなるブロックがプリフェッチされるようにして)必要とされるときにネットワークからダウンロードされ、場合によってはローカル・キャッシュ機能が追加され、アプリケーション・プログラムが、同様に、別個のイメージからストリーミングで配信される。−各ユーザに関して組み合わされたオペレーティング・システムおよびアプリケーション・プログラムのイメージをビルドする必要がないように−オペレーティング・システムの管理は、コンピュータに固有である一方、アプリケーション・プログラムの管理はユーザに固有である。
米国特許出願第2010/0174894号(この特許出願の開示全体は参照により本明細書に援用される)は、ディスクレス・タイプの対象コンピュータのオペレーティング・システムを構成するための方法を開示する。この目的のために、ドナー・コンピュータ(donor computer)の構成イメージが、仮想ディスクにコピーされ、次いで、その構成イメージが、−仮想ディスクからのその構成イメージの次のブートを可能にするように−対象コンピュータのハードウェア構成に応じて修正される。
米国特許第7,512,833号 米国特許出願第2008/0301425号 米国特許出願第2006/0031547号 米国特許出願第2010/0174894号
ストリーミング技術を用いたソフトウェア・イメージの直接的なマイグレーション方法、システム、またはコンピュータ・プログラムを提供することである。
大まかに言えば、本発明の1つまたは複数の実施形態によるソリューションは、ストリーミング技術を用いてソフトウェア・イメージをマイグレーションするという考えに基づく。
特に、本発明の特定の実施形態によるソリューションの1つまたは複数の態様が、独立請求項に記載されており、同じソリューションの有利な特徴が、従属請求項に記載されており、これらの請求項の表現は、参照により本明細書にそのまま援用される(本発明の実施形態によるソリューションの特定の態様に関連して与えられる任意の有利な特徴は、ソリューションのあらゆるその他の態様に準用される)。
より具体的には、本発明の実施形態によるソリューションの態様は、マイグレーション元データ処理エンティティ(例えば、マイグレーション元コンピュータまたはマイグレーション元仮想マシン)にインストールされたソフトウェア・イメージをマイグレーション先データ処理エンティティ(例えば、マイグレーション先コンピュータまたはマイグレーション先仮想マシン)にマイグレーションするためのマイグレーション方法を提供する。マイグレーション方法は、以下のステップを含む。マイグレーション先データ処理エンティティが、スタンドアロンの予備的なオペレーティング・システムを提供する予備的なブートストラップ・プログラムから(例えば、ネットワーク・ブートストラップ・プログラムまたは一時的なブートストラップ仮想ディスクから)ブートされる。次に、ソフトウェア・イメージが、(例えば、リモート・アクセス・イニシエータとして働くことによって)リモートの大容量メモリとしてマイグレーション先データ処理エンティティにマウントされる。ソフトウェア・イメージのプライマリ・ブートストラップ・プログラムが、(例えば、ソフトウェア・イメージをアクセス・オン・コピー(access-on-copy)モードでマウントすることによって)マイグレーション先データ処理エンティティのローカルの大容量メモリにコピーされ、プライマリ・ブートストラップ・プログラムは、ソフトウェア・イメージをマイグレーション先データ処理エンティティにマイグレーションするように適合されたストリーミング機能を含む。マイグレーション先データ処理エンティティが、ローカルの大容量メモリ上のプライマリ・ブートストラップ・プログラムからリブートされ、それによって、ストリーミング機能をロードする。次いで、マイグレーション先データ処理エンティティ上のメモリ・ブロックにアクセスする各要求が、ストリーミング機能によって処理され、ストリーミング機能は、ローカルの大容量メモリ内にメモリ・ブロックがないことに応じてメモリ・ブロックをソフトウェア・イメージからダウンロードし、そのメモリ・ブロックをローカルの大容量メモリに記憶し、そうでない場合、ストリーミング機能は、メモリ・ブロックをローカルの大容量メモリから取得する。
本発明の実施形態によるソリューションのさらなる態様は、コンピュータ・プログラムがデータ処理システムで実行されるときに、データ処理システムにこのマイグレーション方法のステップを実行させるためのコード手段を含むコンピュータ・プログラムを提供し、本発明の実施形態によるソリューションのさらに別の態様は、コンピュータ・プログラムを具現化する非一時的コンピュータ可読媒体を含むコンピュータ・プログラム製品を提供し、コンピュータ・プログラムは、データ処理システムの作業メモリに直接ロード可能なコード手段を含み、それによって、同じマイグレーション方法を実行するようにデータ処理システムを構成する。
本発明の実施形態によるソリューションの別の態様は、マイグレーション方法のステップを実行するための手段を含むシステムを提供する。
本発明の1つまたは複数の実施形態によるソリューション、ならびにそのソリューションの特徴および利点は、添付の図面(単純化するために、対応する要素が等しいまたは同様の参照符号によって表され、それらの要素の説明は繰り返されず、各エンティティの名前は、概して、そのエンティティの種類とそのエンティティの属性−そのエンティティの値、内容、および表現−の両方を表すために使用される)と併せて読まれるべき、純粋に非限定的な目安として与えられる以下の詳細な説明を参照して最も深く理解される。
本発明の実施形態によるソリューションが適用可能なデータ処理システムの概略構成図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の実施形態によるマイグレーション・プロセスの概念図である。 本発明の対応する実施形態によるソリューションの異なる例示的な実装を示す図である。 本発明の対応する実施形態によるソリューションの異なる例示的な実装を示す図である。 本発明の対応する実施形態によるソリューションの異なる例示的な実装を示す図である。 本発明の対応する実施形態によるソリューションの異なる例示的な実装を示す図である。 本発明の実施形態によるソリューションの実装に関連する作業のフローを示すアクティビティ図である。
特に図1を参照すると、本発明の実施形態によるソリューションが適用可能なデータ処理システム(または単にシステム)100の概略構成図が示される。システム100は、ネットワーク105−例えば、ローカル・エリア・ネットワーク(LAN)−に基づく分散型アーキテクチャを有する。複数のコンピュータが、ネットワーク105を介して互いに接続される。特に、サーバ・コンピュータ110は、直接的なタイプのマイグレーション・プロセスを制御し、ソフトウェア・イメージが、異なるクライアント・コンピュータ115−単純化するために図には2つだけ示される−の間で直接転送され、各ソフトウェア・イメージは、1つまたは複数のソフトウェア・モジュール(例えば、オペレーティング・システム、アプリケーション・プログラム、またはデータ、あるいはそれらすべて)を含む構造である。各マイグレーション・プロセス中、マイグレーション元クライアント−(物理)コンピュータ115か、またはそのコンピュータ115上で実行される仮想マシンかのどちらかからなる−が、そのマイグレーション元クライアントに既にインストールされている対応するソフトウェア・イメージを提供し、マイグレーション先クライアント−やはり(物理)コンピュータ115か、またはそのコンピュータ115上で実行される仮想マシンかのどちらかからなる−が、マイグレーション元クライアントからソフトウェア・イメージをダウンロードし、インストールする。この点で、用語、マイグレーション元クライアントおよびマイグレーション先クライアントは、(例えば、次のマイグレーション・プロセスにおいてマイグレーション先クライアントとして動作する可能性があるマイグレーション・プロセスのマイグレーション元クライアント、または次のマイグレーション・プロセスにおいてマイグレーション元クライアントとして動作する可能性があるマイグレーション・プロセスのマイグレーション先クライアントによる)異なるマイグレーション・プロセスにおいて時間が経つにつれて変わり得る動的な役割を特定するに過ぎず、さらに、任意の数のマイグレーション元クライアントまたはマイグレーション先クライアントあるいはその両方が、(単一のマイグレーション元クライアントが複数のマイグレーション先クライアントに同時にサービスを提供するとしても)同時にアクティブである可能性があることが指摘される。
システム100の全般的な(サーバまたはクライアント)コンピュータは、(構造がシステムにおけるコンピュータの実際の機能に応じて好適にスケーリングされるようにして)システム・バス120に並列に接続されたいくつかのユニットによって形成される。詳細に言えば、1つまたは複数のマイクロプロセッサ(μP)125がコンピュータの動作を制御し、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をコピー・オン・アクセス(copy-on-access)モードでマウントすることによって)マイグレーション先クライアント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のIBM Tivoli Provisioning Manager for OS Deployment(またはTPM for OSD)のIBMTivoli Provisioning Manager for Images(またはTPMfI)(IBMおよびTivoliはIBMの商標である)−を実行し、デプロイメント・マネージャ305は、オペレーティング・システムまたはアプリケーション・プログラムあるいはその両方のサーバ・コンピュータ110からシステムのクライアント・コンピュータへのリモートでのデプロイを自動化するために使用される。この目的のために、デプロイメント・マネージャ305は、ソフトウェア・イメージ310のリポジトリを管理する。ブラウザ312が、デプロイメント・マネージャ305と情報をやりとりするためにオペレータ313によって使用される。
通常通り、選択されたソフトウェア・イメージ310が、デプロイメント・マネージャ305の制御の下でマイグレーション元コンピュータ315sにデプロイされる(アクション「A301.デプロイ」)。
この時点で、本発明の実施形態によるソリューションにおいては、マイグレーション元コンピュータ315s上にインストールされたオペレーティング・システムまたはアプリケーション・プログラムあるいはその両方が、マイグレーション先コンピュータ315tに直接マイグレーションされることができる。この目的のために、オペレータ313は、(デプロイメント・マネージャ305上で)マイグレーション・プロセスのためのマイグレーション元コンピュータ315sおよびマイグレーション先コンピュータ315tを選択する(アクション「A302.マイグレーション」)。それに応じて、デプロイメント・マネージャ305は、−例えば、Wake on LAN(WoL)サービスによって−ネットワークを介してマイグレーション元コンピュータ315sを強制的にブートすることによってマイグレーション元コンピュータ315sを(必要に応じて)オフにし、それからオンにする(アクション「A303.ネットワーク・ブート」)。この目的のために、マイグレーション元コンピュータ315sは、ネットワーク・ブート・ローダ−例えば、そのマイグレーション元コンピュータ315sのネットワーク・アダプタに組み込まれたプリブート実行環境(Preboot Execution Environment)(PXE)−を起動する。ネットワーク・ブート・ローダは、動的アドレス・サービス−例えば、動的ホスト構成プロトコル(DHCP)に基づく−を利用して、マイグレーション元コンピュータ315sに対する動的アドレスを取得し、具体的には、ネットワーク・ブート・ローダは、(DHCPサーバとして働く)サーバ・コンピュータ110によって処理される対応する要求をブロードキャストする。次に、ネットワーク・ブート・ローダは、ネットワーク・ブートストラップ・プログラムのアドレスを返すサーバ・コンピュータ110によってやはり処理されるブートストラップ要求をブロードキャストし、ネットワーク・ブート・ローダは、ネットワーク・ブートストラップ・プログラムを−例えば、簡易ファイル転送プロトコル(TFTP)によって−RAMディスク(すなわち、大容量メモリとして扱われる作業メモリの一部)にダウンロードし、次いで、そのネットワーク・ブートストラップ・プログラムを起動する。ネットワーク・ブートストラップ・プログラム−例えば、Windowsプレインストール環境(WinPE)、Windowsはマイクロソフトの商標である−は、(いかなるディスクもマウントせずに)マイグレーション元コンピュータ315sのための最小限のオペレーティング・システム325sを提供し、したがって、マイグレーション元コンピュータ315sは、大容量メモリ内のそのマイグレーション元コンピュータ315sの状態に変更が加えられる可能性がまったくない完全なセーフ・モードで動作する。最小限のオペレーティング・システム325sは、−例えば、インターネット小型コンピュータ・システム・インターフェース(InternetSmall Computer System Interface)(iSCSI)プロトコルに基づいて−リモートでデータにアクセスすることを可能にするためのリモート・アクセス・サーバ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のWMWare ESX−VMWareはVMWareの商標である)をそれぞれ実行し、各ハイパーバイザ405s、405tは、(仮想マシンが独占的に制御する)物理コンピュータの見かけを与える抽象的な環境からそれぞれが構成される仮想マシンをエミュレートする仮想化層(virtualization layer)を実装する。この場合、マイグレーション・プロセスは、ハイパーバイザ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バイトの−各メモリ・ブロックに関するビットを含むビットマップで)記憶するロケーション・マップ(location map)にアクセスする。次に、作業のフローは、ブロック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、携帯電話などの)任意のコードを実行するエンティティまたは複数のエンティティの組み合わせで置き換えることが可能である。

Claims (13)

  1. マイグレーション元データ処理エンティティにインストールされたソフトウェア・イメージをマイグレーション先データ処理エンティティにマイグレーションするためのマイグレーション方法であって、
    スタンドアロンの予備的なオペレーティング・システムを提供する予備的なブートストラップ・プログラムから前記マイグレーション先データ処理エンティティをブートするステップ(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)と
    を含む、マイグレーション方法
  2. 更新モードでメモリ・ブロックにアクセスする各要求に関して、
    前記ローカルの大容量メモリ内の前記メモリ・ブロックを更新するステップ(748)をさらに含む請求項1に記載のマイグレーション方法
  3. 前記ソフトウェア・イメージのサイズに対応する数の前記メモリ・ブロックを前記ローカルの大容量メモリに記憶することに応じて、各メモリ・ブロックを前記ローカルの大容量メモリから直接取得するために前記ストリーミング機能を無効化するステップ(742〜745、769〜772)
    をさらに含む請求項1または2に記載のマイグレーション方法
  4. 前記マイグレーション先データ処理エンティティまたは前記マイグレーション元データ処理エンティティあるいはその両方の負荷を監視するステップ(751)と、
    前記負荷が閾値未満になることに応じて、前記ローカルの大容量メモリに記憶されていない選択されたメモリ・ブロックの組を前記ソフトウェア・イメージからダウンロードし(754〜766)、前記選択されたメモリ・ブロックを前記ローカルの大容量メモリに記憶するステップと
    をさらに含む請求項1ないし3のいずれかに記載のマイグレーション方法
  5. 前記マイグレーション先データ処理エンティティがマイグレーション先物理コンピュータであり、予備的なブートストラップ・プログラムから前記マイグレーション先データ処理エンティティをブートする前記ステップ(A306、A506)が、
    ネットワーク・ブートストラップ・プログラムから前記マイグレーション先物理コンピュータをブートするステップ(A306、A506)
    を含む請求項1ないし4のいずれかに記載のマイグレーション方法
  6. 前記マイグレーション先データ処理エンティティがマイグレーション先ハイパーバイザ上で実行されるマイグレーション先仮想マシンであり、予備的なブートストラップ・プログラムから前記マイグレーション先データ処理エンティティをブートする前記ステップ(A406、A606)が、
    前記マイグレーション先仮想マシンの外部のブート仮想ディスクに記憶された前記予備的なブートストラップ・プログラムから前記マイグレーション先仮想マシンをブートするステップ(A406、A606)
    を含む請求項1ないし4のいずれかに記載のマイグレーション方法
  7. 前記ブート仮想ディスクに記憶された前記予備的なブートストラップ・プログラムから前記マイグレーション先仮想マシンをブートする前記ステップ(A406、A606)が、
    前記マイグレーション先ハイパーバイザによって前記ブート仮想ディスクに記憶される前記予備的なブートストラップ・プログラムをダウンロードするステップ(A406、A606)
    を含む請求項6に記載のマイグレーション方法
  8. 前記ブート仮想ディスクに記憶された前記予備的なブートストラップ・プログラムから前記マイグレーション先仮想マシンをブートする前記ステップ(A406、A606)が、
    前記ブート仮想ディスクを指すように前記マイグレーション先仮想マシンのブート・セクタを変更するステップ(A406、A606)
    を含む請求項6または7に記載のマイグレーション方法
  9. 前記マイグレーション元データ処理エンティティがマイグレーション元物理コンピュータであり、前記マイグレーション方法が、
    前記ソフトウェア・イメージをマウントすることなくさらなるスタンドアロンの予備的なオペレーティング・システムを提供するさらなる予備的なブートストラップ・プログラムから前記マイグレーション元物理コンピュータをブートするステップ(A303、A503)と、
    前記マイグレーション先データ処理エンティティによる前記ソフトウェア・イメージのリモート・アクセスのために一貫した状態の前記ソフトウェア・イメージを準備するステップ(A304、A504)と
    をさらに含む請求項1ないし8のいずれかに記載のマイグレーション方法
  10. さらなる予備的なブートストラップ・プログラムから前記マイグレーション元物理コンピュータをブートする前記ステップ(A303、A503)が、
    さらなるネットワーク・ブートストラップ・プログラムから前記マイグレーション元物理コンピュータをブートするステップ(A303、A503)
    を含む請求項9に記載のマイグレーション方法
  11. 前記マイグレーション元データ処理エンティティがマイグレーション元ハイパーバイザ上で実行されるマイグレーション元仮想マシンであり、前記マイグレーション方法が、
    前記マイグレーション先データ処理エンティティによる前記ソフトウェア・イメージのリモート・アクセスのために一貫した状態の前記ソフトウェア・イメージを準備するステップ(A404、A604)であって、前記ソフトウェア・イメージは、前記マイグレーション元仮想マシンがオフにされた状態で準備される、ステップ(A404、A604)
    をさらに含む請求項1ないし8のいずれかに記載のマイグレーション方法
  12. コンピュータ・プログラムがデータ処理システム(100)で実行されるときに、前記データ処理システムに請求項1ないし11のいずれかに記載の方法のステップを実行させるためのコードを含むコンピュータ・プログラム(300、400、500、600)。
  13. 請求項1ないし11のいずれかに記載の方法のステップを実行するための手段(300、400、500、600)を含むシステム(100)。
JP2013539195A 2010-11-23 2011-11-03 マイグレーション方法、コンピュータ・プログラム、およびシステム Active JP5907983B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10192219 2010-11-23
EP10192219.3 2010-11-23
PCT/EP2011/069306 WO2012069297A1 (en) 2010-11-23 2011-11-03 Direct migration of software images with streaming technique

Publications (2)

Publication Number Publication Date
JP2013543192A JP2013543192A (ja) 2013-11-28
JP5907983B2 true JP5907983B2 (ja) 2016-05-11

Family

ID=44906118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013539195A Active JP5907983B2 (ja) 2010-11-23 2011-11-03 マイグレーション方法、コンピュータ・プログラム、およびシステム

Country Status (6)

Country Link
US (1) US9086892B2 (ja)
JP (1) JP5907983B2 (ja)
CN (1) CN103221921B (ja)
DE (1) DE112011103880T5 (ja)
GB (1) GB2499956B (ja)
WO (1) WO2012069297A1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
GB2499956B (en) 2010-11-23 2018-02-14 Servicenow Inc Direct migration of software images with streaming technique
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 ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US20140359617A1 (en) * 2011-12-08 2014-12-04 International Business Machines Corporation Patching a Virtual Image
US9110604B2 (en) 2012-09-28 2015-08-18 Emc Corporation System and method for full virtual machine backup using storage system functionality
US9104331B2 (en) * 2012-09-28 2015-08-11 Emc Corporation System and method for incremental virtual machine backup using storage system functionality
US9384094B2 (en) * 2013-01-08 2016-07-05 Veritas Us Ip Holdings Llc Method and system for instant restore of system volume from a backup image
US9130836B2 (en) 2013-02-04 2015-09-08 Cisco Technology, Inc. Provisoning of a new node joining an existing cluster in a data center environment
US9286047B1 (en) * 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
CN104378396B (zh) * 2013-08-15 2018-05-15 上海七牛信息技术有限公司 数据管理装置及方法
US9639384B2 (en) * 2013-08-20 2017-05-02 Vmware, Inc. Method and system for fast provisioning of virtual desktop
US10372463B1 (en) * 2013-11-27 2019-08-06 EMC IP Holding Company LLC Provisioning a computerized device with an operating system
US10983831B2 (en) 2014-12-10 2021-04-20 Hewlett Packard Enterprise Development Lp Firmware-based provisioning of operating system resources
WO2016093828A1 (en) * 2014-12-10 2016-06-16 Hewlett Packard Enterprise Development Lp Firmware-based provisioning of operating system resources
US10162827B2 (en) 2015-04-08 2018-12-25 Honeywell International Inc. Method and system for distributed control system (DCS) process data cloning and migration through secured file system
US10409270B2 (en) 2015-04-09 2019-09-10 Honeywell International Inc. Methods for on-process migration from one type of process control device to different type of process control device
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
CN105549913B (zh) * 2015-12-22 2019-02-12 内蒙古农业大学 一种异构混合云环境下提高映像管理效率的方法
US10133593B1 (en) 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration
US10019252B1 (en) * 2016-04-07 2018-07-10 Nutanix, Inc. Virtualizing installers
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
CN108255570B (zh) * 2016-12-28 2021-06-15 华为技术有限公司 异构虚拟机监视器平台间的虚拟机迁移方法、装置和系统
US10318166B1 (en) * 2016-12-28 2019-06-11 EMC IP Holding Company LLC Preserving locality of storage accesses by virtual machine copies in hyper-converged infrastructure appliances
CN106953893A (zh) * 2017-02-15 2017-07-14 北京百度网讯科技有限公司 云存储系统间的数据迁移
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
US10972347B2 (en) * 2019-01-16 2021-04-06 Hewlett Packard Enterprise Development Lp Converting a first cloud network to second cloud network in a multi-cloud environment
US20210247993A1 (en) * 2020-02-06 2021-08-12 EMC IP Holding Company LLC True zero rto eliminating os and app load times
CN111597145B (zh) * 2020-05-20 2024-01-23 上海英方软件股份有限公司 一种Windows操作系统迁移的方法、装置及系统
US11620254B2 (en) 2020-06-03 2023-04-04 International Business Machines Corporation Remote direct memory access for container-enabled networks

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075858A (en) 1995-10-27 2000-06-13 Scm Microsystems (U.S.) Inc. Encryption key system and method
US5991876A (en) 1996-04-01 1999-11-23 Copyright Clearance Center, Inc. Electronic rights management and authorization system
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6567774B1 (en) 1998-01-30 2003-05-20 Compaq Computer Corporation Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk
US6973447B1 (en) 2000-03-23 2005-12-06 International Business Machines Corporation System apparatus and method for supporting multiple partitions including multiple systems in boot code
US8140683B2 (en) 2000-12-07 2012-03-20 International Business Machines Corporation Method and system for selecting an operating system at user login on a target device
US6920555B1 (en) 2001-03-10 2005-07-19 Powerquest Corporation Method for deploying an image into other partition on a computer system by using an imaging tool and coordinating migration of user profile to the imaged computer system
US7428636B1 (en) 2001-04-26 2008-09-23 Vmware, Inc. Selective encryption system and method for I/O operations
FR2824646B1 (fr) * 2001-05-09 2003-08-15 Canal Plus Technologies Procede de selection d'une image de logiciel executable
US7103747B2 (en) 2001-06-28 2006-09-05 Hewlett-Packard Development Company, L.P. Memory table and memory manager for use in managing memory
US20030126242A1 (en) 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US7505889B2 (en) 2002-02-25 2009-03-17 Zoran Corporation Transcoding media system
US7379982B2 (en) 2002-04-15 2008-05-27 Bassam Tabbara System and method for custom installation of an operating system on a remote client
JP2003316595A (ja) 2002-04-23 2003-11-07 Casio Comput Co Ltd インストール方法、ファイル更新方法、プログラム及びコンピュータシステム
US7313793B2 (en) 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7062517B2 (en) 2002-08-14 2006-06-13 Hitachi, Ltd. Method and apparatus for centralized computer management
US6857011B2 (en) 2002-10-31 2005-02-15 Paragon Development Systems, Inc. Method of remote imaging
US6857069B1 (en) 2003-03-24 2005-02-15 Cisco Technology, Inc. Modified operating system boot sequence for iSCSI device support
US7360072B1 (en) 2003-03-28 2008-04-15 Cisco Technology, Inc. iSCSI system OS boot configuration modification
US6925533B2 (en) 2003-05-07 2005-08-02 International Business Machines Corporation Virtual disk image system with local cache disk for iSCSI communications
US7281247B2 (en) 2003-06-24 2007-10-09 Microsoft Corporation Software image creation in a distributed build environment
JP2007510979A (ja) 2003-11-06 2007-04-26 インテュウェーブ リミテッド 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法
US20050160150A1 (en) 2004-01-20 2005-07-21 Su-Hwa Kao Apparatus and method for managing and transporting virtual disks over a network to networked stations
JP4900760B2 (ja) 2004-03-31 2012-03-21 株式会社日立製作所 Osイメージのデプロイメントマシン及び方法
US8230095B2 (en) 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US7664834B2 (en) 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US7269722B1 (en) 2004-07-26 2007-09-11 Sun Microsystems, Inc. Preview of UNIX boot process from multi-user level
US8346886B2 (en) 2004-09-08 2013-01-01 Red Hat, Inc. System, method, and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system
JP2006085209A (ja) * 2004-09-14 2006-03-30 Hitachi Ltd 計算機システムのデプロイメント方式
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7509530B2 (en) 2005-01-19 2009-03-24 Sonic Solutions Method and system for use in restoring an active partition
US7512833B1 (en) 2005-05-09 2009-03-31 Adam C. Murphy Universal imaging utility program
US7536541B2 (en) 2006-03-07 2009-05-19 Novell Inc. Parallelizing multiple boot images with virtual machines
US7653794B2 (en) 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
JP2007310508A (ja) * 2006-05-16 2007-11-29 Nippon Telegraph & Telephone East Corp シンクライアントシステムおよびシンクライアント端末用プログラム
US8234359B2 (en) 2006-05-24 2012-07-31 Absolute Software Corp. System and method for remotely re-imaging a computer system
JP4725798B2 (ja) 2006-06-21 2011-07-13 日本電気株式会社 コンピュータシステム、ネットワークブートシステム、osイメージ切替方法、osイメージ切替プログラム
US9003000B2 (en) * 2006-07-25 2015-04-07 Nvidia Corporation System and method for operating system installation on a diskless computing platform
US7809919B2 (en) 2006-07-26 2010-10-05 Hewlett-Packard Development Company, L.P. Automatic data block misalignment detection and correction in a computer system utilizing a hard disk subsystem
JP4366698B2 (ja) * 2006-07-27 2009-11-18 日本電気株式会社 計算機、計算機システム、及びディスクイメージ配布方法
US8387038B2 (en) 2006-08-14 2013-02-26 Caterpillar Inc. Method and system for automatic computer and user migration
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8032351B2 (en) 2006-11-30 2011-10-04 Symantec Corporation Running a virtual machine directly from a physical machine using snapshots
US20080141015A1 (en) 2006-12-06 2008-06-12 Glen Edmond Chalemin System and method for operating system deployment in a peer-to-peer computing environment
US8312115B2 (en) * 2006-12-21 2012-11-13 1E Limited Network booting apparatus and method
EP2137629A4 (en) 2007-03-20 2010-12-29 Sanggyu Lee MOBILE VIRTUAL MACHINE IMAGE
US8331366B2 (en) 2007-04-11 2012-12-11 Dell Products L.P. System and method for deployment of a software image to a plurality of target devices
US8245022B2 (en) 2007-06-01 2012-08-14 Dell Products L.P. Method and system to support ISCSI boot through management controllers
US20090049160A1 (en) 2007-08-14 2009-02-19 Dell Products L.P. System and Method for Deployment of a Software Image
CN101399696B (zh) * 2007-09-24 2011-09-21 国际商业机器公司 通过网络为客户机安装软件的方法、系统及相应的客户机
US8782637B2 (en) 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
JP2009176213A (ja) * 2008-01-28 2009-08-06 Hitachi Software Eng Co Ltd ネットワークブート方式
US7953833B2 (en) 2008-01-31 2011-05-31 Wanova Technologies Ltd. Desktop delivery for a distributed enterprise
CN100578461C (zh) 2008-03-12 2010-01-06 中兴通讯股份有限公司 一种引导程序的备份方法及其备份装置
US20090240953A1 (en) 2008-03-19 2009-09-24 Safenet, Inc. On-disk software image encryption
US8359593B2 (en) * 2008-04-21 2013-01-22 Vmware, Inc. Computer machine migration of file system images using a redo-log file
SG158757A1 (en) 2008-07-10 2010-02-26 Fast And Safe Technology Pte L Method and apparatus for protecting data in computers
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8510352B2 (en) 2008-10-24 2013-08-13 Microsoft Corporation Virtualized boot block with discovery volume
US8701106B2 (en) 2008-11-30 2014-04-15 Red Hat Israel, Ltd. Hashing storage images of a virtual machine
US20100174894A1 (en) 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
US8429639B2 (en) 2009-02-10 2013-04-23 Microsoft Corporation Image-based software update
JP5220675B2 (ja) * 2009-04-07 2013-06-26 株式会社日立製作所 シンクライアントマスタの書換システム、シンクライアントマスタの書換方法、およびシンクライアント
US8301874B1 (en) 2009-10-20 2012-10-30 Wanova Technologies, Ltd. Atomic switching of images in desktop streaming over wide area networks
US9130912B2 (en) 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US8407662B2 (en) 2010-06-25 2013-03-26 Wyse Technology Inc. Apparatus and method for network driver injection into target image
US8560825B2 (en) * 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
GB2499956B (en) 2010-11-23 2018-02-14 Servicenow Inc Direct migration of software images with streaming technique
CN103250163B (zh) 2010-12-09 2016-08-10 国际商业机器公司 用于加密和解密虚拟盘的计算机可读存储介质
CN103250134B (zh) 2010-12-13 2016-09-07 国际商业机器公司 基于流技术的软件映像更新
CN102567042B (zh) 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)

Also Published As

Publication number Publication date
US9086892B2 (en) 2015-07-21
WO2012069297A1 (en) 2012-05-31
CN103221921A (zh) 2013-07-24
GB2499956A (en) 2013-09-04
GB201310938D0 (en) 2013-07-31
DE112011103880T5 (de) 2013-08-22
US20130219161A1 (en) 2013-08-22
JP2013543192A (ja) 2013-11-28
CN103221921B (zh) 2016-06-22
GB2499956B (en) 2018-02-14

Similar Documents

Publication Publication Date Title
JP5907983B2 (ja) マイグレーション方法、コンピュータ・プログラム、およびシステム
US8527728B2 (en) Management of multiple software images with relocation of boot blocks
JP5767565B2 (ja) ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US11474829B2 (en) Customizing program logic for booting a system
JP5911504B2 (ja) ストリーミング技術に基づくソフトウェア・イメージのアップグレード
JP5174110B2 (ja) 自動化されたモジュール型のセキュアな起動ファームウェアの更新
US11126420B2 (en) Component firmware update from baseboard management controller
US8930685B2 (en) Deployment of a software image on multiple targets with streaming technique
US11550593B2 (en) Information handling system quick boot
KR20160039287A (ko) 사전 부팅 펌웨어 갱신을 위한 선택적인 전력 관리
CN107533441B (zh) 创建操作系统卷
US20150278032A1 (en) Providing services on system being recovered
CN114741233A (zh) 快速启动方法
JP6750605B2 (ja) 計算機システム、ベースボード管理コントローラ、osインストール方法、及びプログラム
US11675601B2 (en) Systems and methods to control software version when deploying OS application software from the boot firmware
Vainio WDS Server for Hybrid Delivery of Windows and Linux Operating Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20150625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150907

TRDD Decision of grant or rejection written
RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160301

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160322

R150 Certificate of patent or registration of utility model

Ref document number: 5907983

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