(57)【特許請求の範囲】
【請求項１】
データ処理システムにおける方法であって、
移動元システムから移動先システムに論理区画を移動させるために、仮想マシン・モニタが論理区画移行操作を開始することに応答して、前記論理区画から前記仮想マシン・モニタに処理リソースの部分を再割振りするステップと、
前記仮想マシン・モニタによって、前記論理区画移行操作を実施するステップであって、前記仮想マシン・モニタが、処理リソースの前記部分を使用して、前記論理区画移行操作を達成する、前記実施するステップと、
前記論理区画移行操作の完了に応答して、処理リソースの前記部分を前記論理区画に戻すステップと
を含む、方法。
【請求項２】
前記論理区画がドナー・デバイス・ドライバを備え、前記ドナー・デバイス・ドライバが処理リソースの前記部分を前記仮想マシン・モニタに与える、請求項１に記載の方法。
【請求項３】
前記仮想マシン・モニタが、前記論理区画移行操作のために使用される前記論理区画から処理リソースの前記部分を再割振りする、請求項１に記載の方法。
【請求項４】
前記仮想マシン・モニタが前記移動元システム中で実行し、前記論理区画移行操作を実施するステップが、前記仮想マシン・モニタによって、前記論理区画の状態を前記移動先システムに前記移動元システム中で実行するムーバ・サービス区画を介してコピーするステップを含む、請求項１に記載の方法。
【請求項５】
前記ムーバ・サービス区画が、仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションを備え、前記仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションが、処理リソースを与える以外の論理区画移行機能を実施する、請求項４に記載の方法。
【請求項６】
前記仮想マシン・モニタが前記移動先システム中で実行し、前記論理区画移行操作を実施するステップが、前記仮想マシン・モニタによって、前記論理区画の状態を前記移動元システムから前記移動先システム中で実行するムーバ・サービス区画を介して受け取るステップを含む、請求項１に記載の方法。
【請求項７】
前記ムーバ・サービス区画が、仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションを備え、前記仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションが、処理リソースを与える以外の論理区画移行機能を実施する、請求項６に記載の方法。
【請求項８】
コンピュータ・プログラムであって、移動元システムまたは移動先システムのいずれか一方に、
前記移動元システムから前記移動先システムに論理区画を移動させるために、仮想マシン・モニタが論理区画移行操作の一部を開始することに応答して、前記論理区画から前記仮想マシン・モニタに処理リソースの部分を再割振りするステップと、
前記仮想マシン・モニタによって、前記論理区画移行操作の一部を実施するステップであって、前記仮想マシン・モニタが、処理リソースの前記部分を使用して、前記論理区画移行操作の一部を行う、前記実施するステップと、
前記論理区画移行操作の完了に応答して、処理リソースの前記部分を前記論理区画に戻
すステップと
を行わせる、コンピュータ・プログラム。
【請求項９】
前記論理区画がドナー・デバイス・ドライバを備え、前記ドナー・デバイス・ドライバ
が処理リソースの前記部分を前記仮想マシン・モニタに与える、請求項８に記載のコンピ
ュータ・プログラム。
【請求項１０】
前記仮想マシン・モニタが、前記論理区画移行操作の一部のために使用される前記論理区画から処理リソースの前記部分を再割振りする、請求項８に記載のコンピュータ・プログラム。
【請求項１１】
前記仮想マシン・モニタが前記移動元システム中で実行し、前記論理区画移行操作の一部を実施するステップが、前記仮想マシン・モニタによって、前記論理区画の状態を前記移動先システムに前記移動元システム中で実行するムーバ・サービス区画を介してコピーするステップを含む、請求項８に記載のコンピュータ・プログラム。
【請求項１２】
前記ムーバ・サービス区画が、仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションを備え、前記仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションが、処理リソースを与える以外の論理区画移行機能を実施する、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記仮想マシン・モニタが前記移動先システム中で実行し、前記論理区画移行操作の一部を実施するステップが、前記仮想マシン・モニタによって、前記論理区画の状態を前記移動元システムから前記移動先システム中で実行するムーバ・サービス区画を介して受け取るステップを含む、請求項８に記載のコンピュータ・プログラム。
【請求項１４】
前記ムーバ・サービス区画が、仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションを備え、前記仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションが、処理リソースを与える以外の論理区画移行機能を実施する、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記コンピュータ・プログラムがリモート・データ処理システムからネットワークを介してダウンロードされた、請求項８に記載のコンピュータ・プログラム。
【請求項１６】
装置であって、
プロセッサと、
前記プロセッサに結合されるメモリとを備え、前記メモリは命令を含み、前記命令は、前記プロセッサに、
移動元システムから移動先システムに論理区画を移動させるために、仮想マシン・モニタが論理区画移行操作の一部を開始することに応答して、前記論理区画から前記仮想マシン・モニタに処理リソースの部分を再割振りするステップと、
前記仮想マシン・モニタによって、前記論理区画移行操作の一部を実施するステップであって、前記仮想マシン・モニタが、処理リソースの前記部分を使用して、前記論理区画移行操作の一部を行う、前記実施するステップと、
前記論理区画移行操作の完了に応答して、処理リソースの前記部分を前記論理区画に戻すステップと
を行わせる、装置。
【請求項１７】
前記論理区画がドナー・デバイス・ドライバを備え、前記ドナー・デバイス・ドライバが処理リソースの前記部分を前記仮想マシン・モニタに与える、請求項１６に記載の装置。
【請求項１８】
前記仮想マシン・モニタが前記移動元システム中で実行し、前記論理区画移行操作の一部を実施するステップが、前記仮想マシン・モニタによって、前記論理区画の状態を前記移動先システムに前記移動元システム中で実行するムーバ・サービス区画を介してコピーするステップを含み、前記ムーバ・サービス区画が、仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションを備え、前記仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションが、処理リソースを与える以外の論理区画移行機能を実施する、請求項１６に記載の装置。
【請求項１９】
前記仮想マシン・モニタが前記移動先システム中で実行し、前記論理区画移行操作の一部を実施するステップが、前記仮想マシン・モニタによって、前記論理区画の状態を前記移動元システムから前記移動先システム中で実行するムーバ・サービス区画を介して受け取るステップを含み、前記ムーバ・サービス区画が、仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションを備え、前記仮想非同期サービス・インターフェイス仮想デバイスおよびムーバ・カーネル・エクステンションが、処理リソースを与える以外の論理区画移行機能を実施する、請求項１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般的に、改善したデータ処理装置および方法に関し、より詳細には、性能を向上し、システム・リソースをより良好に利用するため、移動性操作期間に、クライアント・リソースを利用するための機構に関する。
【背景技術】
【０００２】
ライブ・パーティション・モビリティ（ＬＰＭ）は、実行中の論理区画（logicalpartition、ＬＰＡＲ）を、１つのシステムから別のものに再配置することを可能にする、ＰＯＷＥＲ６（Ｒ）およびＰＯＷＥＲ７（Ｒ）サーバの特徴である。ＰＯＷＥＲ６（Ｒ）およびＰＯＷＥＲ７（Ｒ）は、米国および他の国における、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの商標である。ソース・システムおよびターゲット・システムは、同じネットワークおよびストレージ・エリア・ネットワーク（ＳＡＮ）へのアクセスを有さなければならないが、同じタイプである必要はない。再配置される区画は、完全に仮想化されなければならない（すなわち、専用の入出力（Ｉ／Ｏ）アダプタを持たない）が、マルチパス・ソフトウェアを使用して、移動の期間に仮想アダプタにフェイル・オーバすることが可能である。
【０００３】
任意のサイズ決定された区画を移動することができ、基本的に、メモリが１つのシステムから別のものに非同期的にコピーされ、必要に応じて再コピーされる「ダーティな（dirty）」ページを有する、実行中の区画のクローンを生成する。閾値に到達すると（すなわち、ページの大きな割合が首尾よく向こう側にコピーされたとき）、区画は、ターゲット・マシンに転移され、何らかの残りのページは、同期して向こう側にコピーされる。メモリのコピーを実行するエージェントは、各マシン上の指名された仮想Ｉ／Ｏサーバ（Virtual I/O Servers、ＶＩＯＳ）である。ＬＰＭは、計画的なサーバ・メンテナンス、複数のサーバ間の負荷均衡化、およびエネルギー節約のための停止を回避するために使用される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、背景技術に示される問題を解決することである。
【課題を解決するための手段】
【０００５】
１つの例示的な実施形態では、データ処理システムにおける方法が提供され、方法は、ソース・システムから移動先システムに論理区画を移動させるために、仮想マシン・モニタが論理区画移行操作を開始することに応答して、論理区画から仮想マシン・モニタに処理リソースの部分を再割振りするステップを含む。方法は、仮想マシン・モニタによって、論理区画移行操作を実施するステップをさらに含む。仮想マシン・モニタは、処理リソースの部分を使用して、論理区画移行操作を達成する。方法は、論理区画移行操作の完了に応答して、処理リソースを論理区画に戻すステップをさらに含む。
【０００６】
他の例示的な実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を備えるコンピュータ・プログラムが提供される。コンピュータ可読プログラムは、コンピューティング・デバイス上で実行されると、コンピューティング・デバイスに、方法を例示する実施形態に関して上で概説された操作のうちの様々な操作、および操作の組合せを実施させる。
【０００７】
さらに別の例示的な実施形態では、システム／装置が提供される。システム／装置は、１つまたは複数のプロセッサおよび１つまたは複数のプロセッサに結合されるメモリを備えることができる。メモリは、１つまたは複数のプロセッサにより実行されると、１つまたは複数のプロセッサに、方法を例示する実施形態に関して上で概説された操作のうちの様々な操作、および操作の組合せを実施させる命令を含むことができる。
【０００８】
本発明のこれらおよび他の特徴ならびに利点は、本発明の例示の実施形態の以下の詳細な記載中に記載されることになり、または本発明の例示の実施形態の以下の詳細な記載を見れば当業者には明らかとなるであろう。
【０００９】
本発明とともに、本発明の使用の好ましいモードならびにさらなる目的および利点は、添付の図面と一緒に読まれると、例示的な実施形態の以下の詳細な記載を参照することにより、最も良好に理解されるであろう。
【図面の簡単な説明】
【００１０】
【図１】例示的な実施形態の態様が実装され得る、例示の分散データ処理システムを描く、図式的な表現である。
【図２】例示的な実施形態の態様が実装され得る、例示のデータ処理システムのブロック図である。
【図３】実施形態にしたがう、プロセッサ・リソースの付与を有する区画移行を示すブロック図である。
【図４】例示的な実施形態にしたがう、移行区画によるプロセッサ・リソースの付与を有する区画移行を示すブロック図である。
【図５】例示的な実施形態にしたがう、プロセッサ・リソースにわたる仮想マシン・モニタ制御を用いる区画移行を示すブロック図である。
【図６】例示的な実施形態にしたがう、移行区画によるプロセッサ・リソースの付与を用いる区画移行操作を示すフローチャートである。
【図７】例示的な実施形態にしたがう、プロセッサ・リソースにわたる仮想マシン・モニタ制御を用いる区画移行操作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
例示的な実施形態は、性能を向上し、システム・リソースをより良好に利用するため、移動性操作期間に、クライアント・リソースを利用する機構を提供する。ライブ・パーティション・モビリティ（ＬＰＭ）は、実行中の区画をそのオペレーティング・システム（ＯＳ）およびアプリケーションとともに、１つの物理的サーバ（すなわち、コンピュータ電子装置複合体（computer electronic complex、ＣＥＣ））から別のものに、その区画の操作を中断することなく移動する能力を提供する。仮想非同期サービス・インターフェイス（ＶＡＳＩ）仮想デバイスおよび仮想Ｉ／Ｏサーバ（ＶＩＯＳ）区画上のムーバ・カーネル・エクステンションは、１つのシステムから別のものに区画状態を搬送する機能を提供する。この機能性を利用するように構成されるＶＩＯＳは、ムーバ・サービス区画（ＭＳＰ）と考えられる。
【００１２】
ＰＯＷＥＲ  （Ｒ）ハイパーバイザー（ＰＨＹＰ）は、クライアントの区画のメモリを含む、クライアントの区画の状態の知識を有する、シン（thin）ファームウェア・レベルである。ハイパーバイザーは、仮想マシン（論理区画）を生成、実行、および管理する、データ処理システムの仮想マシン・モニタの一種である。ハイパーバイザーまたはＶＭＭは、また、論理区画に割り振られるリソースの仮想化を実施し、論理区画を実行および管理するための他の機能を実施する。本明細書に記載される例示の実施形態はＰＨＹＰ、またはより一般的にハイパーバイザーについて言及するが、本発明の態様は、仮想化構成要素またはＶＭＭの任意の形式に当てはまる。
【００１３】
アクティブな移行期間に、ＰＨＹＰは、ソース・システムおよび移動先システムのＭＳＰ間で、状態とメモリ・イメージの両方のクライアント情報を転送するサポートを提供する。クライアントのメモリ・イメージを移動するため、ＰＨＹＰは、クライアントのメモリを送信および追跡し、移動性操作のほぼ全ての期間、クライアントが実行し続けるように、ダーティなページを再送信することが潜在的にできる。
【００１４】
１つの実装では、ＰＨＹＰは、それ自体の何らかのメモリまたは中央処理装置（ＣＰＵ）の権利を有さず、ＬＰＭ操作期間に、１つの物理的システムから別のものに、安全な方法でクライアントのデータを移動するために、ＰＨＹＰはソースおよび移動先ＭＳＰの両方に依存してＰＨＹＰが必要とするリソースを提供する。
【００１５】
クライアントのメモリ・イメージは、特に、データベースを実行しているクライアントにおいて、非常に大きい可能性がある。加えて、ＬＰＭ機能性の採用の現在の割合では、より多数の並行移動性操作をサポートする方向へ向かう動きが続いている。ＭＳＰが多数のクライアントの移動性または多数の複数の並行移動性操作をサポートする必要がある場合、ＰＨＹＰにより利用されるＶＩＯＳ  ＣＰＵサイクルの量が増加する。
【００１６】
ＬＰＭのユーザは、ＭＳＰ機能性をサポートするためＶＩＯＳ区画上で追加のリソースを割り振らなければならない、そうしなければＶＩＯＳ上の移動性および他の操作の性能に影響を与えてしまう。。加えて、区画移動性は停止（outages）を回避するため、全てのデータ・センターで不可欠であると考えられるが、ＬＰＭは、おそらく、常に動作しているわけではない。これは、現在の解決策のＶＩＯＳが、ピーク負荷のためにサイズ決定される必要があり、したがってリソースが十分活用されないこと、そうでなければオペレータが、ＬＰＭ操作を実行する前にピーク負荷をサポートするため、ＶＩＯＳにリソースを与える余分なステップを行わなければならないことを意味する。
【００１７】
例示的な実施形態は、ＰＨＹＰが、移動されるクライアント区画からＣＰＵリソースを利用し、したがってＭＳＰ上のＣＰＵリソースを開放する機構を提供する。機構は、ライブ・パーティション・モビリティ操作に必要なＶＩＯＳリソースの量を減らす。例示的な実施形態の機構は、全体的なシステム利用および可能な費用の節約を増加することを可能にする。
【００１８】
例示的な実施形態の機構は、ＶＩＯＳ区画がより少ないＣＰＵリソースで構成されるが、依然として、多数のクライアントの移動性操作を含む、多くの並行移動性操作をサポートし続けることを可能にする。機構は、移動性操作がＶＩＯＳによりサービスされる非移行クライアント上に及ぼす影響を減らす。オペレータにより追加のＣＰＵリソースで既に選好された主要なクライアント区画は、他の選好されないクライアント区画と並行して移行されるとき、より速く移動性操作を完了する可能性が高い。機構は、ＰＨＹＰにサイクルを与えるＶＩＯＳに関連するＣＰＵのオーバヘッドをやはり減らし、全体的なシステム効率を増加させる。例示的な実施形態の機構は、移動性操作の全体的な性能をやはり増加させる。というのは、移行するクライアントがより少なくＣＰＵリソースにアクセスし、したがって、移動先システムに既に送信されたメモリのページを変えるクライアントの機会を減少し、再送信されなければならないページの数を減少する結果となる。
【００１９】
本発明の例示的な実施形態の上記の態様および利点は、添付図面を参照して、以下で非常に詳細に記載されることになる。図面は、本発明の例示の実施形態を説明することだけを意図していることを理解されたい。本発明は、図面に明示的には示されないが、例示的な実施形態の本記載を見れば当業者には容易に明らかとなる、描かれた例示の実施形態に対する態様、実施形態、および変更形態を包含することができる。
【００２０】
当業者なら理解するように、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。したがって、本発明の態様は、全体的にハードウェアの実施形態、（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）全体的にソフトウェアの実施形態、または、本明細書で「回路」、「モジュール」、もしくは「システム」と全てが一般的に呼ばれ得る、ソフトウェアとハードウェアの態様を組み合わせる実施形態の形をとることができる。さらに、本発明の態様は、そこに具現化されるコンピュータ使用可能プログラム・コードを有する、１つまたは複数のコンピュータ可読媒体内に具現化されるコンピュータ・プログラムの形をとることができる。
【００２１】
１つまたは複数のコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、電子的、磁気的、光学的、電磁的、もしくは半導体の特質、上記の任意の好適な組合せ、またはそれらの等価物の、システム、装置、またはデバイスであってよい。コンピュータ可読記憶媒体のより具体的な例（網羅的でないリスト）は以下、すなわち、記憶能力を有する電気デバイス、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ・ベースのデバイス、携帯型コンパクト・ディスク読取り専用メモリ（ＣＤＲＯＭ）、光学的記憶デバイス、磁気的記憶デバイス、または上記の任意の好適な組合せを含むことになる。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスにより使用される、または命令実行システム、装置、もしくはデバイスに関連して使用されるプログラムを含む、または記憶することができる、任意の有形の媒体であってよい。
【００２２】
一部の例示的な実施形態では、コンピュータ可読媒体は、非一時的コンピュータ可読媒体である。非一時的コンピュータ可読媒体は、実体を持たない信号または伝播波、すなわち、それ自体が純粋な信号または伝播波でない、任意の媒体である。非一時的コンピュータ可読媒体は、信号および伝播波を利用することができるが、信号または伝播波自体ではない。したがって、例えば、その状態を維持するなどの任意の方法で信号を利用する、例えば、様々な形式のメモリ・デバイスおよび他のタイプのシステム、デバイス、または装置が、本記載の範囲内で、非一時的コンピュータ可読媒体であると考えることができる。
【００２３】
一方、コンピュータ可読信号媒体としては、その中にコンピュータ可読プログラム・コードが具現化される、例えば、ベースバンドで、または搬送波の部分として、伝播されるデータ信号を挙げることができる。そのような伝播される信号は、限定するものではないが、電磁的、光学的、またはその任意の好適な組合せを含む、様々な形のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスにより使用される、または命令実行システム、装置、またはデバイスに関連して使用されるプログラムを通信、伝播、または搬送することができる任意のコンピュータ可読媒体であってよい。同様に、コンピュータ可読記憶媒体は、コンピュータ可読信号媒体ではない任意の可読媒体である。
【００２４】
コンピュータ可読媒体上に具現化されるコンピュータ・コードは、限定するものではないが、無線、ワイヤ線、光ファイバ・ケーブル、電波周波数（ＲＦ）など、またはそれらの任意の好適な組合せを含む、任意の適切な媒体を使用して送信することができる。
【００２５】
本発明の態様のための操作を行うためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来型手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にはユーザのコンピュータ上および部分的にはリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続することができ、または、外部コンピュータに（例えば、インターネット・サービス・プロバイダを使用してインターネットを通して）接続をすることができる。
【００２６】
本発明の態様は、本発明の例示的な実施形態にしたがう、方法、装置（システム）およびコンピュータ・プログラムの、フローチャート図またはブロック図あるいはその両方を参照して下に記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方中のブロックの組合せは、コンピュータ・プログラム命令により実装することが可能であることが理解されよう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実装するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すことができる。
【００２７】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体中に記憶された命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実装する命令を含む製造品を作り出すように、コンピュータ可読媒体中に記憶され、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに特定のやり方で機能するように指示することもできる。
【００２８】
コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実装するためのプロセスを提供するように、コンピュータ実装されたプロセスを作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされて、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上で一連の動作ステップを実行させることもできる。
【００２９】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態にしたがうシステム、方法、およびコンピュータ・プログラムの可能な実装の、アーキテクチャ、機能性、および操作を示す。この点に関連し、フローチャートまたはブロック図内の各ブロックは、指定された論理的機能を実装するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表すことができる。いくつかの代替実装において、ブロック内に言及される機能は、図中で言及される順序から外れて生じ得ることにも留意されたい。例えば、含まれる機能性に依存して、連続して示される２つのブロックが、実際には、実質的に同時に実行されてよく、またはブロックが、場合によって逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方中のブロックの組合せは、指定される機能または行為を実施する専用ハードウェアベースのシステムまたは専用ハードウェアとコンピュータ命令の組合せにより実装できることも留意されよう。
【００３０】
したがって、例示的な実施形態は、多くの異なるタイプのデータ処理環境で利用され得る。例示的な実施形態の特定の要素および機能性を記載するための文脈を提供するために、図１および図２は、以下で、例示的な実施形態の態様が実装され得る例示の環境として提供される。図１および図２は、単に例であり、本発明の態様または実施形態が実装され得る環境に関して、何らかの限定を主張または暗示することは意図していないことを理解されたい。本発明の思想および範囲から逸脱することなく、描かれる環境への多くの変形がなされ得る。
【００３１】
図１は、例示的な実施形態の態様が実装され得る、例示の分散データ処理システムの図式的な表現を描く。分散データ処理システム１００は、例示的な実施形態の態様が実装され得る、コンピュータのネットワークを含み得る。分散データ処理システム１００は、分散データ処理システム１００内で一緒に接続される様々なデバイスおよびコンピュータ間で通信リンクを実現するために使用される媒体である、少なくとも１つのネットワーク１０２を含む。ネットワーク１０２としては、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続が挙げられる。
【００３２】
描かれる例では、サーバ１０４およびサーバ１０６が、記憶ユニット１０８とともにネットワーク１０２に接続される。加えて、クライアント１１０、１１２、および１１４が、やはり、ネットワーク１０２に接続される。これらのクライアント１１０、１１２、および１１４は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータなどであってよい。描かれる例では、サーバ１０４は、クライアント１１０、１１２、および１１４に、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを提供する。クライアント１１０、１１２、および１１４は、描かれる例では、サーバ１０４に対するクライアントである。分散データ処理システム１００は、追加のサーバ、クライアント、および他の図示されないデバイスを含んでよい。
【００３３】
描かれる例では、分散データ処理システム１００は、互いに通信するため、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スイートのプロトコルを使用する、ネットワークおよびゲートウェイの世界的な集合を表す、ネットワーク１０２を備えるインターネットである。インターネットの中心にあるのは、データおよびメッセージを配信する、数千の商業用、政府用、教育用、および他のコンピュータ・システムからなる、主要ノードまたはホスト・コンピュータ間の高速データ通信線のバックボーンである。もちろん、分散データ処理システム１００は、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）などの、多数の異なるタイプのネットワークを含むように実装されてもよい。上記のように、図１は、例として意図されており、本発明の異なる実施形態についてのアーキテクチャ上の限定としては意図されておらず、したがって、図１に示される特定の要素は、本発明の例示的な実施形態が実装され得る環境に関して限定すると考えられるべきでない。
【００３４】
図２は、例示的な実施形態の態様が実装され得る、例示のデータ処理システムのブロック図である。データ処理システム２００は、図１内のクライアント１１０のようなコンピュータの例であり、本発明の例示的な実施形態用のプロセスを実装する、コンピュータ使用可能コードまたは命令が配置され得る。
【００３５】
描かれた例では、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ２０２）、ならびにサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ２０４）を含むハブ・アーキテクチャを採用する。処理ユニット２０６、メイン・メモリ２０８、およびグラフィックス・プロセッサ２１０は、ＮＢ／ＭＣＨ２０２に接続される。グラフィックス・プロセッサ２１０は、アクセラレィティッド・グラフィックス・ポート（ＡＧＰ）を通してＮＢ／ＭＣＨ２０２に接続されてよい。
【００３６】
描かれた例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ（ネットワーク・アダプタ２１２）は、ＳＢ／ＩＣＨ２０４に接続する。オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読取り専用メモリ（ＲＯＭ２２４）、ハード・ディスク・ドライブ（ＨＤＤ２２６）、ＣＤ−ＲＯＭドライブ２３０、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよび他の通信ポート２３２、ならびにＰＣＩ／ＰＣＩｅデバイス２３４は、バス２３８およびバス２４０を通してＳＢ／ＩＣＨ２０４に接続する。ＰＣＩ／ＰＣＩｅデバイス２３４としては、例えば、ノートブック・コンピュータ用のイーサネット（Ｒ）・アダプタ、アドイン・カード、およびＰＣカードが挙げられる。ＰＣＩは、カード・バス・コントローラを使用するが、ＰＣＩｅは使用しない。ＲＯＭ２２４は、例えば、フラッシュ基本入出力システム（ＢＩＯＳ）であってよい。
【００３７】
ＨＤＤ２２６およびＣＤ−ＲＯＭドライブ２３０は、バス２４０を通してＳＢ／ＩＣＨ２０４に接続する。ＨＤＤ２２６およびＣＤ−ＲＯＭドライブ２３０は、例えば、統合ドライブ・エレクトロニクス（ＩＤＥ）またはシリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）インターフェイスを使用してよい。スーパーＩ／Ｏ（ＳＩＯ）デバイス２３６が、ＳＢ／ＩＣＨ２０４に接続され得る。
【００３８】
オペレーティング・システムは、処理ユニット２０６上で走る。オペレーティング・システムは、図２のデータ処理システム２００内の様々な構成要素の制御を協調して提供する。クライアントとして、オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ（Ｒ）  Ｗｉｎｄｏｗｓ  ７（Ｒ）などの市販のオペレーティング・システムであってよい。Ｊａｖａ（Ｒ）プログラミング・システムなど、オブジェクト指向プログラミング・システムは、オペレーティング・システムと一緒に走ることができ、データ処理システム２００上で実行しているＪａｖａ（Ｒ）プログラムまたはアプリケーションからオペレーティング・システムに呼出しを行う。
【００３９】
サーバとして、データ処理システム２００は、例えば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（Ｒ））オペレーティング・システムまたはＬＩＮＵＸ（Ｒ）オペレーティング・システムが走るＩＢＭ（Ｒ）  ｅＳｅｒｖｅｒ（商標）  Ｓｙｓｔｅｍ  ｐ（Ｒ）コンピュータ・システムであってよい。データ処理システム２００は、処理ユニット２０６内に複数のプロセッサを含む、対称型マルチプロセッサ（ＳＭＰ）システムであってよい。あるいは、単一プロセッサシステムが採用され得る。
【００４０】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムのための命令は、ＨＤＤ２２６などの記憶デバイス上に配置され、処理ユニット２０６によって実行するためメイン・メモリ２０８にロードされ得る。例えば、本発明の例示的な実施形態のためのプロセスは、例えば、メイン・メモリ２０８、ＲＯＭ２２４、または１つまたは複数の周辺デバイス、ＨＤＤ２２６およびＣＤ−ＲＯＭドライブ２３０内などのメモリに配置され得る、コンピュータ使用可能プログラム・コードを使用して、処理ユニット２０６により実施され得る。
【００４１】
図２に示されるような、バス２３８またはバス２４０などのバス・システムは、１つまたは複数のバスからなってよい。もちろん、バス・システムは、通信機構またはアーキテクチャに取り付けられる異なる構成要素またはデバイス間でデータの転送を可能にする、任意のタイプの通信機構またはアーキテクチャを使用して実装され得る。図２のモデム２２２またはネットワーク・アダプタ２１２などの通信ユニットは、データを送受信するために使用される１つまたは複数のデバイスを含み得る。メモリは、例えば、図２内の、メイン・メモリ２０８、ＲＯＭ２２４、またはＮＢ／ＭＣＨ２０２内に見られるようなキャッシュであってよい。
【００４２】
当業者なら、図１および図２のハードウェアが、実装に依存して変わってよいことを理解するであろう。フラッシュ・メモリ、等価な不揮発メモリ、または光ディスク・ドライブなどの、他の内部ハードウェアまたは周辺デバイスが、図１および図２に描かれたハードウェアに加えて、または図１および図２に描かれたハードウェアの代わりに使用され得る。また、例示的な実施形態のプロセスは、本発明の思想および範囲から逸脱することなく、上述のＳＭＰシステム以外の、マルチプロセッサ・データ処理システムに適用され得る。
【００４３】
さらに、データ処理システム２００は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話または他の通信デバイス、携帯情報端末（ＰＤＡ）などを含む、複数の異なるデータ処理システムのいずれかの形をとることができる。例えば、いくつかの例示的な実施形態では、データ処理システム２００は、オペレーティング・システム・ファイルまたはユーザが生成したデータあるいはその両方を記憶させるための不揮発性メモリを提供するため、フラッシュ・メモリで構成される、携帯型コンピューティング・デバイスであってよい。本質的に、データ処理システム２００は、アーキテクチャ上の限定のない、任意の知られた、または後で開発されるデータ処理システムであってよい。
【００４４】
図３は、実施形態にしたがう、プロセッサ・リソースの付与を有する区画移行を示すブロック図である。出発モバイル区画３１１は、ソース・システム３１０から移動先システム３２０に移行される。区画移行操作では、仮想マシン・モニタ（ＶＭＭ３１５）は、ソース・システム３１０中のムーバ・サービス区画（ＭＳＰ３１２）から、移動先システム３２０中のＭＳＰ３２１に、出発モバイル区画３１１の状態およびメモリ・イメージを転送するサポートを提供する。ＶＭＭ３２５は、移動先システム３２０中のＭＳＰ３２１を使用して、到着モバイル区画３２２の状態およびメモリ・イメージを受け取るサポートを提供する。
【００４５】
ＭＳＰ３１２は、ムーバ／ＶＡＳＩデバイス・ドライバ３１３を含み、ＭＳＰ３２１はムーバ／ＶＡＳＩデバイス・ドライバ３２３を含む。ムーバ／ＶＡＳＩデバイス・ドライバ３１３は、ＶＭＭ３１５に中央処理装置（ＣＰＵ）サイクルを提供し、ムーバ／ＶＡＳＩデバイス・ドライバ３２３は、ＶＭＭ３２５にＣＰＵサイクルを提供して、区画移行操作を実施する。ＶＭＭ３１５は、クライアントの区画のメモリを送信および追跡し、移動性操作のほぼ全ての期間、クライアントの区画が実行し続けるとき、ダーティなページを潜在的に再送信することができる。
【００４６】
クライアントのメモリ・イメージは、特に、データベースを実行しているクライアントにおいて、非常に大きい可能性がある。加えて、ＬＰＭ機能性の採用の現在の割合では、より多数の並行移動性操作をサポートする方向へ向かう動きが続いている。ＭＳＰ３１２、３２１が多数のクライアントの移動性または多数の複数並行移動性操作をサポートする必要がある場合、ＶＭＭにより利用されるＣＰＵサイクルの量が増加する。
【００４７】
ＬＰＭのユーザは、ＭＳＰ機能性をサポートするためＭＳＰ３１２、３２１上で追加のリソースを割り振らなければならない、そうでなければＭＳＰ３１２、３２１上の移動性および他の操作の性能に影響を与える。加えて、区画移動性は停止（outages）を回避するために、全てのデータ・センターで不可欠であると考えられるが、ＬＰＭは、おそらく、常に動作しているわけではない。これは、現在の解決策のＭＳＰ３１２、３２１が、ピーク負荷のためにサイズ決定される必要があり、したがってリソースが十分活用されないこと、そうでなければオペレータが、ＬＰＭ操作を実行する前にピーク負荷をサポートするため、ＭＳＰ３１２、３２１にリソースを与える余分なステップを行わなければならないことを意味する。
【００４８】
図４は、例示的な実施形態にしたがう、移行区画によるプロセッサ・リソースの付与を有する区画移行を示すブロック図である。出発モバイル区画４１１は、ソース・システム４１０から移動先システム４２０に移行される。区画移行操作において、ＶＭＭ４１５は、ソース・システム４１０中のムーバ・サービス区画（ＭＳＰ）４１２から、移動先システム４２０中のＭＳＰ４２１に、出発モバイル区画４１１の状態およびメモリ・イメージを転送するサポートを提供する。ＶＭＭ４２５は、移動先システム４２０中のＭＳＰ４２１を使用して、到着モバイル区画４２２の状態およびメモリ・イメージを受け取るサポートを提供する。
【００４９】
例示的な実施形態によれば、出発モバイル区画４１１は、ＣＰＵサイクルをＶＭＭ４１５に提供する、ドナー・デバイス・ドライバ４１３を含む。ムーバ／ＶＡＳＩデバイス・ドライバ４１４は、もはやＣＰＵサイクルを提供しないが、全ての他の責務を持ち続ける。代替実施形態では、ドナー・デバイス・ドライバ４１３は、必要とされるＣＰＵサイクルの大部分を与えることができる一方、ムーバ／ＶＡＳＩデバイス・ドライバ４１４は、区画移行操作に必要とされるＣＰＵサイクルのうちのほんの少しの部分を与える。
【００５０】
移動先システム４２０において、到着モバイル区画４２２はドナー・デバイス・ドライバ４２４を含み、ドナー・デバイス・ドライバ４２４は、ＣＰＵサイクルをハイパーバイザー（ＶＭＭ４２５）に提供して、区画移行操作を達成する。１つの例示の実施形態では、ムーバ／ＶＡＳＩデバイス・ドライバ４２３は、ＣＰＵサイクルのうちの少しの部分をＶＭＭ４２５に与えることができる。
【００５１】
図５は、例示的な実施形態にしたがう、プロセッサ・リソースにわたる仮想マシン・モニタ制御を有する区画移行を示すブロック図である。出発モバイル区画５１１は、ソース・システム５１０から移動先システム５２０に移行される。区画移行操作において、ＶＭＭ５１５は、ソース・システム５１０中のムーバ・サービス区画（ＭＳＰ５１２）から、移動先システム５２０中のＭＳＰ５２１に、出発モバイル区画５１１の状態およびメモリ・イメージを転送するサポートを提供する。ＶＭＭ５２５は、移動先システム５２０中のＭＳＰ５２１を使用して、到着モバイル区画５２２の状態およびメモリ・イメージを受け取るサポートを提供する。
【００５２】
例示的な実施形態によれば、ＶＭＭ５１５は、区画に割り振られるリソースにわたる制御を有する。ムーバ／ＶＡＳＩデバイス・ドライバ５１３を介してＣＰＵサイクルをＭＳＰ５１２に与えさせる代わりに、ＶＭＭ５１５は、出発モバイル区画５１１に割り当てられる一部のリソースを利用する。ＶＭＭ５１５は、ＶＭＭ５１５によって移動性操作のために特に利用される、移行するクライアント（出発モバイル区画５１１）からのＣＰＵリソース５１６の量を自動的に減少させることができる。同様に、ＭＳＰ５２１が到着モバイル区画５２２を受け取るとき、ＶＭＭ５２５は、移動性操作のために、到着モバイル区画５２２に割り当てられるＣＰＵリソース５２６の量を利用する。仮想リソースの管理は、各区画に対して既に透過的であり、したがって、移行区画（出発モバイル区画５１１、到着モバイル区画５２２）に割り当てられるＣＰＵリソース５１６、５２６を利用するＶＭＭ５１５、５２５は、区画（出発モバイル区画５１１、ＭＳＰ５２１）の性能に、ほとんどまたは全く影響を与えないことになる。ムーバ・カーネル・エクステンション（ムーバ／ＶＡＳＩデバイス・ドライバ５１３、５２３）は、もはやＣＰＵサイクルをＶＭＭ５１５、５２５には提供しないが、全ての他の責務を持ち続ける。あるいは、ムーバ／ＶＡＳＩデバイス・ドライバ５１３、５２３は、出発モバイル区画５１１、到着モバイル区画５２２に割り当てられるＣＰＵリソースに加えて少量のＣＰＵリソースを与えることができる。
【００５３】
図６は、例示的な実施形態にしたがう、移行区画によるプロセッサ・リソースの付与を有する区画移行操作を示すフローチャートである。操作が開始し（ブロック６００）、仮想マシン・モニタ（ＶＭＭ）が、モバイル区画中にドナー・デバイス・ドライバを実装する（ブロック６０１）。モバイル区画は、出発モバイル区画または到着モバイル区画であってよい。ソース・システム上で、出発モバイル区画中にドナー・デバイス・ドライバをＶＭＭが実装し、モバイル区画を出発させることを含む移行操作をＶＭＭが開始するのに応答して、ドナー・デバイス・ドライバがＣＰＵサイクルをハイパーバイザーに与える。移動先システム上で、ＶＭＭは、移行操作が完了するまでＶＭＭにＣＰＵサイクルを与えるドナー・デバイス・ドライバを含む到着モバイル区画のための論理区画を開始する。
【００５４】
ＶＭＭは、次いで、モバイル区画をムーバ・サービス区画を用いて移動先システムに移動し、ドナー・デバイス・ドライバは、ＶＭＭにサイクルを与えて移行を達成する（ブロック６０２）。ソース・システム上で、ＶＭＭは、区画のメモリ・イメージを含む区画の状態をコピーすることにより、移動先システムにムーバ・サービス区画を介してモバイル区画を移動する。移動先システム上で、ＶＭＭは、区画のメモリ・イメージを含む区画の状態を、ムーバ・サービス区画を介して受け取る。
【００５５】
移行操作が完了すると、ＶＭＭは、ＣＰＵサイクルをモバイル区画に戻す（ブロック６０３）。ソース・システムの場合、出発モバイル区画が終了し、移動先システムの場合、到着モバイル区画が作動状態に入れられる。その後、操作が終了する（ブロック６０４）。
【００５６】
図７は、例示的な実施形態にしたがう、プロセッサ・リソースにわたる仮想マシン・モニタ制御を有する区画移行操作を示すフローチャートである。操作が開始し（ブロック７００）、ＶＭＭが、モバイル区画に割り当てられるＣＰＵリソースを減少させる（ブロック７０１）。モバイル区画は、出発モバイル区画または到着モバイル区画であってよい。ソース・システム上で、モバイル区画を出発させることを含む移行操作をＶＭＭが開始するのに応答して、ＶＭＭは、モバイル区画へのＣＰＵリソースの割振りを制御して、ＣＰＵリソースを減少させる。ＶＭＭは、次いで、その量のＣＰＵリソースを移行操作のために使用することができる。移動先システム上で、ＶＭＭは、到着モバイル区画に割り振られるＣＰＵリソースを最初に減少し、その量のＣＰＵリソースを移行操作のために使用する。
【００５７】
ＶＭＭは、次いで、モバイル区画自体からとられたその量のＣＰＵリソースを使用して、モバイル区画をムーバ・サービス区画を用いて移動先システムに移動する（ブロック７０２）。代替実施形態では、モバイル・サービス区画のムーバ／ＶＡＳＩドライバは、追加のＣＰＵリソースをＶＭＭに与えることができる。ソース・システム上で、ＶＭＭは、区画のメモリ・イメージを含む区画の状態をコピーすることにより、移動先システムにムーバ・サービス区画を介してモバイル区画を移動する。移動先システム上で、ＶＭＭは、区画のメモリ・イメージを含む区画の状態を、ムーバ・サービス区画を介して受け取る。
【００５８】
移行操作が完了すると、ＶＭＭは、ＣＰＵリソースをモバイル区画に戻す（ブロック７０３）。ソース・システムの場合、出発モバイル区画が終了し、移動先システムの場合、到着モバイル区画が作動状態に入れられる。その後、操作が終了する（ブロック７０４）。
【００５９】
上述したように、例示的な実施形態は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態、または、ハードウェアおよびソフトウェアの両方の要素を含む実施形態の形をとることができることを理解されたい。１つの例示の実施形態では、例示的な実施形態の機構は、限定するものではないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、ソフトウェアまたはプログラム・コードに実装される。
【００６０】
プログラム・コードを記憶または実行あるいはその両方をするのに好適なデータ処理システムは、システム・バスを通してメモリ要素に直接または間接に結合される少なくとも１つのプロセッサを含むことになる。メモリ要素としては、プログラム・コードの実際の実行期間に採用されるローカル・メモリ、大容量記憶装置、および実行期間に大容量記憶装置から取り出されなければならないコードの回数を減少させるため、少なくともいくつかのプログラム・コードの一時記憶を実現するキャッシュ・メモリが挙げられる。
【００６１】
（限定するものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）入出力またはＩ／Ｏデバイスは、直接または介在するＩ／Ｏコントローラを通してシステムと結合することができる。ネットワーク・アダプタがやはりシステムに結合されて、データ処理システムが、介在するプライベート・ネットワークまたは公衆ネットワークを通して、他のデータ処理システムまたはリモート・プリンタまたは記憶デバイスに結合されることを可能にすることができる。モデム、ケーブル・モデム、およびイーサネット（Ｒ）・カードは、現在利用可能なタイプのネットワーク・アダプタのうちのごくわずかである。
【００６２】
本発明の記載は、例示および記載のために提示されたが、網羅的であること、または開示された形に発明を限定することを意図していない。多くの変形形態および変更形態が当業者には明らかであろう。実施形態は、本発明の原理および実践的な適用を最もよく説明するため、および意図された具体的な使用に適するように様々な変更を有する様々な実施形態のために当業者が本発明を理解することが可能となるように、選択され記載された。
【図１】
0006291563.tif 000002
【図２】
0006291563.tif 000003
【図３】
0006291563.tif 000004
【図４】
0006291563.tif 000005
【図５】
0006291563.tif 000006
【図６】
0006291563.tif 000007
【図７】
0006291563.tif 000008