(57)【特許請求の範囲】
【請求項１】
コンピュータの処理によって、或る論理パーティションを他の論理パーティションにマイグレートする方法であって、
仮想パーティション・メモリ・モードに切り替えられたことに応答して、ページ状態の参照カウントを初期化するステップと、
前記仮想パーティション・メモリ・モードにおいて、ページに対する書き込みアクセスが加えられた場合に、当該ページの状態を示す参照カウントが所定値未満である場合に前記参照カウントを増加するステップと、
前記仮想パーティション・メモリ・モードにおいて、前記参照カウントが前記所定値より大きくなった場合に、前記ページに対する書き込みアクセスが加えられたことにより大きな変化のあるページとして指定するステップと、
前記仮想パーティション・メモリ・モードにおいて、ストア動作を許容しないページに対する書込みアクセスが除去された場合に、前記ページの状態を示す参照カウントが前記所定値未満である場合に前記参照カウントを減少するステップと、
前記仮想パーティション・メモリ・モードにおいて、前記ページの参照カウントが前記所定値を超えた上限値に等しいか、またハイパーバイザのストアが生じている場合に、前記ページが既にマイグレート状態であることを示す前記参照カウントをゼロにするステップと、
前記仮想パーティション・メモリ・モードにおいて、前記パーティションの前記ページの参照カウントがゼロである場合、ソースの前記パーティションの前記ページをターゲットのパーティションに転送した後に前記参照カウントを前記上限値に設定してマイグレートするステップとを含む、
方法。  
【請求項２】
複数のページを有し、かつプロセッサのサイクルを使用するように構成される論理パーティションをもつコンピュータ装置において、或る論理パーティションを他の論理パーティションにマイグレートするためのプログラムであって、  
仮想パーティション・メモリ・モードに切り替えられたことに応答して、ページ状態の参照カウントを初期化するステップと、
前記仮想パーティション・メモリ・モードにおいて、ページに対する書き込みアクセスが加えられた場合に、当該ページの状態を示す参照カウントが所定値未満である場合に前記参照カウントを増加するステップと、
前記仮想パーティション・メモリ・モードにおいて、前記参照カウントが前記所定値より大きくなった場合に、前記ページに対する書き込みアクセスが加えられたことにより大きな変化のあるページとして指定するステップと、
前記仮想パーティション・メモリ・モードにおいて、ストア動作を許容しないページに対する書込みアクセスが除去された場合に、前記ページの状態を示す参照カウントが前記所定値未満である場合に前記参照カウントを減少するステップと、
前記仮想パーティション・メモリ・モードにおいて、前記ページの参照カウントが前記所定値を超えた上限値に等しいか、またハイパーバイザのストアが生じている場合に、前記ページが既にマイグレート状態であることを示す前記参照カウントをゼロにするステップと、
前記仮想パーティション・メモリ・モードにおいて、前記パーティションの前記ページの参照カウントがゼロである場合、ソースの前記パーティションの前記ページをターゲットのパーティションに転送した後に前記参照カウントを前記上限値に設定してマイグレートするステップとを、
前記プロセッサに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューティング・システムに関し、特にコンピュータ・システム相互間の論理パーティション（分割）のマイグレーションを管理することに関する。
【背景技術】
【０００２】
データ・マイグレーションは、一般にコンピュータ・データを一つのコンピュータ位置から他のコンピュータ位置に移行することをいう。例えば、管理者（アドミニストレータ）はアプリケーションやメモリを一つのオペレーティング・システムもしくはコンピュータから他に転送することによって維持や更新を促進することができる。必要ではあるが、データ・マイグレーションは多くのチャレンジとリスクを、割り込みを受けるコンピュータ・アクセスに従って企業、政府機関および個人に与える。あまりにもしばしば、ソフトウエア・インストレーション問題が生じる。そのような問題は処理環境内での予見不能な相互作用やプログラム・コードのエラーに寄与してしまうかもしれない。例えば、ストアされたデータが転送中に失われたり壊れたりするかもしれない。このような問題は、コストの高いシステムのエラーとダウンタイム（故障時間）を生じ得る。
【０００３】
ユニークな資源共有およびアクセスのプラクティスが追加的な配慮を提供してしまうかもしれない論理パーティション環境においては、データ転送に関連する問題が複合化してしまうかもしれない。論理パーティショニングは、コンピューティング・アセットを割当てて共有するのに適する、プログラムされたアーキテクチャを提供する。パーティションは、マシーンの物理プロセッサ、メモリおよび他の資源の一部を含んでもよい。そのように、管理者は同じ資源を1個以上のパーティションに割当ててもよい。各パーティションは複数個の仮想プロセッサに加えてオペレーティング・システムを追加的にホストしてもよい。ハイパーバイザあるいはパーティション・マネジャと呼ばれる基幹プログラムが各仮想プロセッサへの物理プロセッサを割当て、ディスパッチする。各パーティションは典型的にはネットワークと通信するために個別に接続されている。このようにして、各パーティションは、あたかも別個のコンピュータであるかのように大方は動作する。
【０００４】
マイグレーション中、適用可能なメモリ、プロセッサ／レジスタ状態情報および仮想コンポーネントに関連する物理インターフェース／ディスクに関する接続情報など、マイグレーティング論理パーティションの状態が他のコンピュータの他の論理パーティションに転送される。マイグレーションはマイグレーティング論理パーティションのコンピュータ上の新しいハードウエアもしくはプログラムの更新を含むように動機付けられていてもよい。しばしば（oftentime）そのマイグレートされた論理パーティションは元の論理パーティションの位置に最終には(eventually)戻される。
【０００５】
マイグレーション・パーティションは新しい論理パーティション上に割り込みなしに、例えばトランスペアレントに作業し続ける。この目的のために、マイグレーティング・パーティションはマイグレーション中その下の物理的なハードウエアからは分離されるように仮想化環境で稼動することができる。ハイパーバイザはソース論理パーティションからターゲット論理パーティションへのマイグレーションが行われるのを許容するインフラ（基盤）を提供する役割があってもよい。このターゲット論理パーティションはマイグレーションのために新しく作り出されてもよいが、典型的には別個の物理的なコンピュータ上に位置づけられ、その転送された論理パーティションの状態を含むように構成される。
【０００６】
ある論理パーティションが他のサーバー・コンピュータにマイグレートしているシナリオでは、その状態に影響を及ぼすストア動作、またはページ・エントリ、例えばマイグレーティング論理パーティションの、例えばストアされたメモリを占めるか(account for)、さもなければ保存する必要があるかもしれない。そのようなエントリのその保存された完全性が、一旦それがマイグレートされるときそのパーティションの適正な動作に必要とされるかもしれない。換言すると、論理パーティションの各ページの状態／エントリは、マイグレートされたパーティションの作業を比較的シームレスに再開できるよう許容するためにマイグレーション中はマイグレートされたパーティションが保存されるか、さもなければ維持されなければならない。この同じ理由のために、メモリの一部などパーティション・ページの維持には、コンピュータ・システムの、目に見える停止時間を必要としない。
【０００７】
マイグレーション・パーティションの状態を維持し損なうと、そのマイグレーション・パーティションにおけるデータの完全性（インテグリティ、整合性）またはパーティション機能の停止につながりかねない。マイグレーションの失敗からこのような問題が生じると、ビジネスの機会や人の時間を無駄にする結果ともなり得る。圧倒的な量のメモリの更新を人手で追跡するのは予防的に遅くて、退屈で、複雑である。このような潜在的な問題があるので、そのような転送がなければシステム・パフォーマンスを改良するであろう例においてもパーティションをマイグレートするのを渋る結果になるかもしれない。
【特許文献１】本出願と同日に米国で特許出願された米国特許出願第１１／７３５８３０号 (ROC920070009US1)
【特許文献２】本出願と同日に米国で特許出願された米国特許出願第１１／７３５７５０号 (ROC920070015US1)
【特許文献３】本出願と同日に米国で特許出願された米国特許出願第１１／７３５７７０号 (ROC920070062US1)
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、論理的にパーティションされた環境中にデータおよび関連プロセスをマイグレートする改良された態様の必要性がある。
【課題を解決するための手段】
【０００９】
本発明は論理パーティションのページの状態を自動的に追跡することによって論理的にパーティションされた環境でのファームウエア・マイグレーションを促進するように構成された方法、装置およびプログラムを提供する。本発明の一つの側面では、複数のページ状態に対応する複数個のエントリを有するテーブルを用いて論理パーティションのマイグレーションをこのプロセスは促進する。このテーブル・エントリは論理パーティションがマイグレートする際に個々のページの状態を記録し、維持してもよい。
【００１０】
本発明の一実施例では、前記ページの状態は、マイグレーション中に前記ページに影響を及ぼす変化の量を表す数値を含む。前記数値はストア動作を許容する前記ページのためのエントリに応答して増分されもしくは増加されてもよい。逆に、前記数値はストア動作を許容しない前記ページのためのエントリに応答して減少されてもよい。
【００１１】
本発明の他の側面では、或るページの潜在的マイグレーションに関し、他のページの前記状態に比較しての複雑さの相対的レベルを決定するのに、前記ページの前記状態が使用されてもよい。更に、前記ページの前記状態は、或るページがマイグレートされたか、前記ページがマイグレートされるべきか、そして前記ページがマイグレートされるべきでないか、ということに関する状態を示すのに使用される。前記状態は、前記ページの初期マイグレーションの後に或るページが変更されたかを追加的に示してもよい。
【００１２】
だから、本発明に沿う実施例は、前記論理パーティションの他のページの他の状態に対して前記ページの前記状態に基づく前記ページをマイグレートしてもよい。そのように構成された場合、実施例は、マイグレーションの理想の状態に近づいた状態にするように、ページ・エントリを立ち退かせることによって、たとえばストア動作を許容しないことによって、前記ページの前記状態を減少させる動作をとってもよい。
【００１３】
前記およびその他の目的および効果は添付の図面およびその説明から明らかになろう。
【発明を実施するための最良の形態】
【００１４】
本発明の特徴は、論理パーティションをマイグレートするページの状態を追跡するための装置、方法およびプログラムを含む。実施例は転送のための論理パーティションのページの準備や適切さを決定するためにその状態を使用するかもしれない。その状態はそのページに影響を及ぼす変化の数を表す値または他のデータあるいはそのページをマイグレートすることの相対的な容易さや適切さを含むかもしれない。論理パーティションの各ページの状態に対応するエントリをもつページ・マネジャ・テーブルが、マイグレーション中に論理パーティションが稼動し続ける間の状態を追跡するのに使用されてもよい。
【００１５】
マイグレーションの際、論理パーティションはその下の物理的なハードウエアからは分離した仮想化環境で公的に稼動する。ハイパーバイザはソースの論理パーティションからターゲットの論理パーティションにマイグレーションが生じるのを許容するインフラを提供してもよい。ターゲットの論理パーティションはそのマイグレーションのために新たに作られてもよく、その転送された論理パーティションを収容するようにフレームワーク構造を構成させている。
【００１６】
マイグレーション中、仮想化パーティション・メモリ・モードで動作している間、そのシステムは、ＩＳＩ（命令ストレージ割込み）およびＤＳＩ（データ・ストレージ割込み）といったストレージ割り込みのハイパーバイザ指向アナログを提供してもよい。この特徴はハイパーバイザがページ・テーブル・ミスに応答するのを許容するかもしれない。実施例は更にパーティション・メモリへのページ・エントリをハイパーバイザが許容するかもしれないし、そうする際にパーティションのメモリ中の各ページの状態を維持する。
【００１７】
仮想化パーティション・メモリ・モードおよび参照メモリでパーティションが稼動する際、ページ・エントリがページ・テーブルに加えられても良い。一実施例では、一つのテーブルのページは物理メモリを位置付けるのに使用されるアドレスを含んでもよい。パーティションのメモリが参照される際、プロセッサはそのページ・エントリの、参照され変更されタグのセットされたビットを更新するかもしれない。一般に、このようなビットは夫々、一つのページが使用されたか、変更されたか、もしくは代替不能な状態にあるかを示してもよい。
【００１８】
一つの物理システムから異なる物理システムに、或る稼働中のパーティションを移動する一部として、そのパーティションの全体の状態が転送される必要があるかもしれない。この状態はそのパーティションに割当てられたそのメモリの幾らかまたは全てを含んでもよい。メモリのその内容（コンテンツ）全部を転送するのはその稼動するパーティションを完全に停止することが必要であろう。そのパーティションは大量のメモリを備えているかも知れないが、そのパーティションを停止する必要があるかもしれず、許容し得ない程の長さの時間利用できないかもしれない。
【００１９】
稼動しているパーティションを長期間にわたって停止するのを回避するために、パーティションのメモリの内容をそれが稼働中に転送する必要があるかもしれない。しかしそのパーティションが稼動し続けるので、そのパーティションのメモリの内容が絶えず変更されているかもしれない。このことはターゲット・システムにその内容をいかにして正確かつ効果的に転送するかという問題を生じる。このことを効果的に行うためには、ページがいつ変更したか（それがそのターゲット・パーティションへの最新の転送であったから）を決定するために何らかの形態の追跡が必要とされるかもしれない。
【００２０】
この問題に関係している一つのプロセスは単一ビットを用いてパーティションのメモリの各ページを追跡するステップを含む。このビットはそのページの内容がそのターゲットに最後に転送されて以来変更されたかを示すことができよう。この追跡技法は相対的に効果的とはいえないかもしれない。というのも各ページが（一旦、変更されもしくはマイグレートされあるいはその両方が行われてから）再度変更する可能性を決定するための簡単な方法がないからである。例えば、或るページがページ・テーブルにマップ（写像）されるなら、それは異なるメモリ・アクセス動作のストア動作を通じて更に修正されるかもしれない可能性が残っている。ハイパーバイザの中に何らかのインテリジェンスが打ち立てられていなければ、そのような一つのページが何回も転送される可能性があり得る。不必要な転送はマイグレーションの沿う時間を増加させるかもしれない。
【００２１】
本発明に沿う実施例は、各ページをいつ転送しようかということに関する効果的な決定をハイパーバイザが行えるようにしてこれらの問題を更に解決することもできる。更に具体的には、ターゲット・システムに或るページを転送しようとするときなどハイパーバイザが決定を行うのに使用されることのできる追加的な情報を本発明の一実施例が提供してもよい。このために、パーティションのメモリ中のページごとに状態値、例えばバイト値をページ管理テーブルにハイパーバイザが維持してもよい。
【００２２】
パーティションのマイグレーションが初期化されると、各ページの状態がそのページの内容がターゲット・システムに転送される必要があるかもしれないことを示すために各ページの状態が０ｘ００に初期化されてもよい。パーティションがメモリを参照する際、その状態はそのページのための参照カウントを追跡するのに使用される。この参照カウントは、書き込みアクセスを示す参照（ページ・テーブル・エントリもしくは翻訳制御エントリ）の番号であってもよい。これらのカウントされた参照は、マイグレーティング・パーティションもしくは直接メモリ・アクセス動作によるストアによって変更しているページとなりそうな型の参照であってもよい。
【００２３】
ページの内容がターゲット・システムに転送されると、そのページの状態は０ｘＦＦにセットされて、そのソースとターゲットとがそのページの正確なコピーをいまや含むことを示す。０ｘＦＦが特別の値なので、記録された参照の番号は制限される必要（need to be capped）があるかもしれない。参照の番号が、例えば０ｘＦＤに達すると、任意の追加の参照が状態バイトに、恒久的な参照を示すのに使用される０ｘＦＥに変更させるかもしれない。例えばそのソース・パーティションがもはや稼動していないときにそのページ内容が転送されることができるようになるまで、この状態値がこの状態にとどまるかもしれない。
【００２４】
その状態値を維持するのは、一つのページがページ・テーブルにマップされるごとに状態もしくは参照カウントを増加させることを含んでもよい。反対に、ページがページ・テーブルからマップを外されるごとに減分されてもよい。もしそのページの状態バイトが０ｘＦＦにセットされ、かつ一つの動作がハイパーバイザによって行われる間にそのページに対するストアが生じるなら、そのページはターゲット・システムに転送される必要があるかもしれないことを示すために０ｘ００に変更されるかもしれない。ゼロでない参照カウントを有するページは見込みで（speculatively）マイグレートされないかもしれない。
【００２５】
各ページの状態によってサポートされてもよい種々の決定がハイパーバイザによって行われるかもしれない。例えば、或るパーティションのマイグレーションが開始された後だが、そのパーティションの一時的な中断（これはターゲット・システムにプロセッサ状態および他の必要な情報が送られる短い期間である）の前に、ハイパーバイザはパーティションのメモリの内容をターゲット・システムに見込みで転送してもよい。もっと具体的には、どのページを転送するか決定するのにハイパーバイザが各パーティション・メモリ・ページの状態を使用するかもしれない。参照カウントを持たない（あるいは低い参照カウントを持つ）ページは、それらが変更しそうもない（それらがページ・テーブルにエントリを持たない）ので、有力な候補となり得る。
【００２６】
パーティションがターゲット・システム上で一旦、稼動再開すると、ソースからまだ転送されていないページのページングの要求が実行されてもよい。 ハイパーバイザは高使用ページ（高い参照カウントを持つものであって、ターゲット・システム上でページ欠陥を生じさせがちなもの）を識別するためにパーティション・メモリごとの状態バイトを使用してもよい。パーティションが一時的に中断されているとき、ハイパーバイザはターゲット・システム上のパーティションを再開する前にこれらの高使用ページを転送してもよく、そして恐らくはページ要求を必要とするページ・フォールト（page faults）の数を減少させる。
【００２７】
一実施例では、ハイパーバイザがページ・テーブルをバックグラウンド走査し、ストア動作を許容しない書き込みアクセスでもってエントリを追い出してもよい。ハイパーバイザはページ・テーブル・エントリを追い立てるときにターゲットへのページを識別するために各パーティション・メモリ・ページのための状態を使用してもよい。例えば、ハイパーバイザは、ページの参照カウントが減少するようにエントリを追い立てることによって低い参照カウントを持つページの参照カウントを減少させようとしてもよい。例えば、もしページ・テーブル・エントリが参照カウントをゼロに進めるように仕向けるなら、そのページは見込みでマイグレートされてもよい。
【００２８】
状態値それ自体は、或るパーティション・メモリ・ページについての特定の情報を示すのに使用されてもよい。他の特定の値が、例えば特定の時刻に転送される必要があるかもしれないページなどを示すのに使用されてもよい。前述の機構はライブ・パーティション・マイグレーション中に或るパーティションのメモリの内容を効果的に効率よく転送する処理をするための情報を備えたハイパーバイザを提供してもよい。
【００２９】
ハードウエアおよびソフトウエアの環境
ここで本発明の原理に沿った態様でマイグレートしている論理パーティションの状態を追跡するように構成されたデータ処理システム１０もしくは装置を具体的に示す図１について説明しよう。システム１０は本発明の実施例に一致する論理的にパーティションされた環境を導入するのに使用される主たるソフトウエア・コンポーネントおよび資源を特に示す。
【００３０】
かくて、図１は、インターナショナル・ビジネス・マシーンズ・コーポレーション（Ｒ）によって開発されるような仮想マシーンとして特徴付けられるコンピューティング・アーキテクチャを含む。ネットワークされた装置／システム１０は個々のサーバー・コンピュータ３１、３２中の複数個のプロセッサに亘って配置された共通の処理資源を共有してもよい複数個のパーティション４１、４２および４４、４５を含む。各コンピュータ３１、３２は１個もしくは複数個の物理プロセッサ１２もしくは中央処理装置（ＣＰＵ）を備えた単一のコンピューティング・マシーンに依存してもよい。この物理プロセッサ（ＳＰ）１２は複数個の仮想プロセッサ（ＶＰ）１３をシミュレートするように構成されたソフトウエアを実行してもよい。
【００３１】
論理パーティション４１、４２、４４、４５はシステムの物理プロセッサ１２の一部、メモリ、および管理者によって割り当てられるような他の資源を含んでいてもよい。各論理パーティション４１、４２、４４、４５はオペレーティング・システム４８、５０、５６、５７を典型的にはホストし、複数個の仮想プロセッサ１３を有してもよい。このようにして、各論理パーティション４１、４２、４４、４５はそれがあたかも別個のコンピュータであるかのように大きく動作してもよい。
【００３２】
図１に示すように、物理ページ・テーブル（図1の「ＰＰＴ」）５２、５３、５４，５５およびキャッシュ・ページ・テーブル５８、５９、６１、６３が個々の論理パーティション４１、４２、４４、４５と関連するように図1に示されている。しかし、この関連はページ・テーブルすなわち物理ページ・テーブル５２、５３、５４，５５およびキャッシュ・ページ・テーブル（図1の「ＣＰＴ」）５８、５９、６１、６３がパーティション資源であることを暗示するつもりではない。例えば、これらのページ・テーブルが実際はハイパーバイザ４６の資源であるかもしれない。だから図1に示すようにこれらのテーブルを置いたのは各テーブルと夫々のパーティションとの関連付けを一層明確に示すことを意図したものである。仮想化されたパーティション・メモリ・モードで動作していない間、キャッシュ・ページ・テーブル５８、５９、６１、６３は論理パーティション４１、４２、４４、４５および物理プロセッサ１２からのエントリを受容れるための単なるページ・テーブルとして夫々動作してもよい。物理ページ・テーブル５２、５３、５４，５５はキャッシュ・ページ・テーブル５８、５９、６１、６３よりも相対的に小さくてよく、論理パーティション４１、４２、４４、４５が仮想化パーティション・メモリ・モードにある間、物理プロセッサ１２からのページ・エントリを受け取ってもよい。プログラムの仮想アドレスを物理アドレスにトランスペアレントに変換するためにプロセッサがページ・テーブルを用いてもよい。そこではページが物理メモリにマップ（写像）されている。
【００３３】
キャッシュ・ページ・テーブル５８、５９、６１、６３を更新するためにハイパーバイザ４６と呼ばれる基幹プログラムもしくはパーティション・マネジャは物理ページ・テーブル５２、５３、５４，５５を一般に用いてもよい。ハイパーバイザ４６は各論理パーティション４１、４２、４４、４５に物理資源を割当てる役割が一般にはある。例えば、ハイパーバイザ４６は資源を世界的に共有し割当てるためにオペレーティング・システム４８、５０、５６、５７からの資源の要求をインターセプト（横取り、傍受）してもよい。もし各サーバー３１、３２中の論理パーティション４１、４２、４４、４５が物理プロセッサ１２を個々に共有するなら、物理プロセッサ１２を共有する論理パーティション４１、４２、４４、４５の仮想プロセッサ１３相互間の物理的なプロセッサ・サイクルをハイパーバイザ４６が割当ててもよい。
【００３４】
図1に示すように、ＳＤＲＩレジスタ１４は仮想化パーティション・メモリ・モードにある間、物理ページ・テーブル５２、５３、５４、５５にポイント付けられてもよい。ＳＤＲＩレジスタ１４は物理プロセッサ１２に物理ページ・テーブル５２の位置およびサイズを提供してもよい。ページ・マネジャ１５、１６はマイグレーション中に論理パーティション・ページへの変更を追跡するためにハイパーバイザ４６によって使用されてもよい。例えば、ページ・マネジャ１５、１６は一つのパーティション・メモリの各ページの状態を表すエントリを含んでいてもよい。
【００３５】
物理ページ・テーブル５２、５３、５４、５５、キャッシュ・ページ・テーブル５８、５９、６１、６３およびページ・マネジャ１５、１６が図１では論理パーティション４１、４２、４４、４５もしくはハイパーバイザ４６のいずれかの中に含まれているものとして示されているが、図１のシステム１０中の他の位置に物理ページ・テーブル５２、５３、５４、５５、キャッシュ・ページ・テーブル５８、５９、６１、６３およびページ・マネジャ１５、１６がその役割を果たすのを許容することもその特徴構成の仮想的な性質上、当業者には容易に理解されよう。図示のとおり、その特徴構成の相対的な位置は、物理ページ・テーブル５２、５３、５４、５５、キャッシュ・ページ・テーブル５８、５９、６１、６３およびページ・マネジャ１５、１６の論理パーティション４１、４２、４４、４５のコンポーネントに対するアクセス、制御、もしくは協働動作のいずれか、またはそれらの組み合わせを表すように一般的に意図している。
【００３６】
各オペレーティング・システム５７、５０、５６、４８は夫々の論理パーティション４１、４２、４４、４５の主要動作を、パーティションのないコンピュータのオペレーティング・システムに似た態様で制御する。各論理パーティション４１、４２、４４、４５は論理メモリ６０によって表される、別個のメモリ・スペースで実行してもよい。更に、各論理パーティション４１、４２、４４、４５は、ネットワークされたシステム１０のサーバー３１、３２中の利用可能な資源の一部を静的にもしくは動的にまたはその両方で割当ててもよい。例えば、ここで説明するように、各論理パーティション４１、４２、４４、４５は1個もしくはそれ以上の物理プロセッサ１２および論理メモリ６０中の利用可能なメモリ・スペースの一部を共有してもよい。この態様では、所与のプロセッサが1個以上の論理パーティションによって利用されてもよい。
【００３７】
ハイパーバイザ４６は仮想プロセッサを物理プロセッサにディスパッチ・リストもしくはレディ・キュー（準備完了キュー）４７上でディスパッチするのを管理するディスパッチャ５１を含んでもよい。レディ・キュー４７は、物理プロセッサ１２上でディスパッチされるように待機しているワーク（作業）を有する仮想プロセッサのリストを含むメモリよりなる。図1のハイパーバイザ４６はまたプロセッサ制御ブロック４９に加えて物理プロセッサ１２を含む。プロセッサ制御ブロック４９は特定の物理プロセッサ１２上のアクセスを待っている仮想プロセッサのリストを含むメモリよりなる。
【００３８】
追加の資源、例えばマス・ストレージ、バックアップ・ストレージ、ユーザー入力、ネットワーク結合等が従来からよく知られた態様で1個もしくはそれ以上の論理パーティションに典型的には割当てられる。複数の論理パーティションが同じバス上の資源を共有しつつバス毎もしくは資源毎といったように資源を多くの態様で割当てることができる。幾つかの資源は一時に複数の論理パーティションに割当てられてもよい。図1は、例えば3個の論理バス６２、６４、６６を示す。バス６２上には、複数の資源があり、直接アクセス記憶装置（ＤＡＳＤ）６８、制御パネル７０、テープ・ドライブ７２および光ディスク７４を含む。他方、バス６４は、資源毎に資源が割当てられていてもよい。論理パーティション４２にはローカル・エリア・ネットワーク（ＬＡＮ）アダプタ７６、光ディスク・ドライブ７８、ＤＡＳＤ８０が割当てられ、ＬＡＮアダプタ８２および８４が論理パーティション４４に割当てられる。バス66は、例えば論理パーティション４４に特に割当てられる。その結果、そのバス上の全ての資源、例えばＤＡＳＤ８６、８８が同じ論理パーティションに割当てられる。
【００３９】
オーケストレータ・プログラム８５はマイグレーション・パーティションと通信してもよく、以下で詳細に説明するようにマイグレーションを統合しあるいは促進する。オーケストレータ・プログラム８５はシステム３０のサーバー３１、３２の対にネットワーク化されているように図1に示されている。１対のマイグレーション・パーティションの対相互間でそのマイグレーションを管理するのに適するシステム３０中の他のロケーション中にオーケストレータ・プログラムが位置づけられてもよいことを当業者は認めるべきである。
【００４０】
図1中の特定の資源の描写がその性質上単に例示に過ぎないこと、そして資源相互の任意の組み合わせおよび配列が、代替例中の任意の論理パーティションに割当てられていてもよいことを理解されたい。例えば、幾つかの導入例では他の論理パーティションの必要性に資するように資源が動的に再割当てされることを当業者には理解されよう。更に、そのコンピュータを特定のハードウエア装置とインターフェースさせるのに使用される入出力プロセッサ（ＩＯＰ）によって資源が代表されてもよいことも理解されよう。
【００４１】
図1に描かれた種々のソフトウエア・コンポーネントおよび資源が多くの態様、例えばこの後は「コンピュータ・プログラム」「ツール」「プログラム」もしくは「プログラム・コード」と称する、種々のコンピュータ・ソフトウエア・アプリケーション、ルーチン、コンポーネント、プログラム、オブジェクト、モジュール、データ構造で導入されてもよい。プログラム・コードはコンピュータ中にいろいろなメモリおよびストレージ装置に常駐する1個もしくはそれ以上の命令を典型的には含み、これらが、コンピュータ中の1個もしくはそれ以上のプロセッサにより読出され実行されるときには、本発明の種々の側面を実施するステップもしくは要素を実行するのに必要なステップをコンピュータに実行させる。
【００４２】
更に、本発明の説明した実施例を完全に機能的なコンピュータ・システムとそこに導入した管理ソフトウエアといった内容で記述して来たが、本発明の説明した実施例のソフトウエアの側面がプログラム製品として多様な形態で配布可能なこと、そして本発明の説明した実施例がその配布を実際に行うのに使用される特定の型のコンピュータ読み取り可能媒体に係わらず等しく適用できることを当業者は理解されたい。そのようなコンピュータ読取り可能媒体の例としては、以下に限るものではないが、揮発性および不揮発性のメモリ装置、フロッピー（登録商標）・ディスク、および他の取外し可能なディスク、ハードディスク・ドライブ、磁気テープ、光ディスク（例えば、ＣＤ  ＲＯＭ、ＤＶＤなど）、その他の有形の記録可能なタイプの媒体、ディジタル及びアナログの通信リンクなどの伝送タイプの媒体を含む。
【００４３】
更に、以下に記述される種々のプログラムが、本発明の特定の実施例で導入されるアプリケーションに基づいて識別されてもよい。しかし、任意の特定のプログラムの命名法は単に便宜上使用されるものであり、従って本発明がそのような命名法によって識別されたり示唆されたりする任意の特定のアプリケーションのみの使用に制限されるべきでないないことを理解されたい。
【００４４】
図1に示す実施例の環境が本発明を制限する意図のないことを当業者は認識するであろう。例えば、図1には示さないが、ハイパーバイザ４６の一部を有するパーティションを含め、他の実施例中に他のパーティションが含まれ得ることは当業者が認めるであろう。このハイパーバイザ・パーティションは従来の論理パーティション４１、４２、４４、４５（および関連するオペレーティング・システム）のように多くの態様で機能してもよいが、ユーザーの相互作用を介して生じて来るかもしれない故障から顧客がそれを保護するためのユーザー・インターフェースは持たない。更に、図1には4個の論理パーティション４１、４２、４４、４５が示されているが、当業者はもっと多くのあるいはもっと少しのパーティション必要に応じて導入されてもよい。他の代替例のハードウエアもしくはソフトウエアまたはその両方の環境が本発明の範囲から逸脱することなく使用されてもよい。
【００４５】
マイグレーションを促進するためにマイグレーション中、パーティション・ページの状態を追跡するプロセス
本発明に沿ったプロセスが、容易に移動され得るパーティション・メモリ・ページ、例えばまだ変更されてしまっていないページ、もしくは殆ど変更されていないページをハイパーバイザ４６が識別するのを許容してもよい。そのようにする際、ハイパーバイザ４６は、パーティションが稼動していないとき、あるいは中断している期間になる前にマイグレーション中に移動されるべきメモリ・ページを識別してもよい。この中断期間は、多分もっと複雑であるこれらの残りのメモリ・ページが最も効果的に行われるべきときと同時であってもよい。このようにして、実施例が全メモリを転送するのに必要な負担および時間を軽くするかもしれない。
【００４６】
図２は、図１の論理パーティション４２のマイグレーションを実行するための図1のシステムによって実行可能な諸ステップを有するフローチャート９０である。一般にマイグレーション中は、マイグレーション論理パーティション４２の状態が新しく生じる論理パーティション４４に転送される。このマイグレートしているパーティション４２は新しい論理パーティション４４およびターゲットのシステムであるサーバー３２上に割込むことなく理想的に作業を続行する。
【００４７】
フローチャート９０に特に触れると、マイグレーション・プロセスはブロック９１で開始される。開始プロセスは、差し迫ったマイグレーションに含まれる１対の論理パーティション４２，４４とはじめに通信するようにオーケストレータ・プログラム８５が促進することを含む。こうして、オーケストレータ・プログラム８５は対応付けを開始し、あるいはそのマイグレーションを促進する。
【００４８】
こうして、オーケストレータ・プログラム８５は図２のブロック９２でターゲットのパーティション４４の生成を開始してもよい。ここで説明するように、ターゲットのパーティション４４は、典型的には別個の物理コンピュータ３２に位置づけられ、その転送された論理パーティション４２の状態を収容するための比較的空のフレームワークを含んでもよい。そのように構成された場合、ターゲットの論理パーティション４４はシステム１０により使用されるデータを含んで、そのターゲットおよびソースの論理パーティション４２、４４相互間の基本的なファームウエア互換性を確保する。
【００４９】
メモリおよび他の状態情報、例えばプロセッサ、クロックおよびレジスタの状態情報がブロック９３でソースの論理パーティション４２からターゲットの論理パーティション４４に転送されてもよい。システム・プロセッサはメモリのマイグレーション中に生じるかもしれない状態情報への変更を追跡し続けてもよい。
【００５０】
同様に、ブロック９４で、ソースの論理パーティション４２からターゲットの論理パーティション４４に仮想Ｉ／Ｏデータが転送されてもよい。仮想Ｉ／Ｏデータの例は、そのマイグレートしているパーティションの仮想コンポーネントから、ソースのシステムであるサーバー３１上のインターフェースもしくは物理資源、例えばディスクへの結合を含んでもよい。このような結合情報はそのマイグレートされた論理パーティションが殆どシームレスにその作業を続けられるように、ブロック９４で転送されてもよい。
【００５１】
そのマイグレートされた論理パーティションがソース・コンピュータであるサーバー３１上でアクティブである間、パーティション４２がメモリを使用させ、ソース・システムであるサーバー３１上のパーティション４２のために他の資源が予約させられる。一旦そのパーティションがマイグレートされてしまうと、これらの資源は最早必要ない。図２のブロック９５で、オーケストレータ・プログラム８５はソース・コンピュータであるサーバー３１上の他のアプリケーションのために資源を使える（クリーンアップして、空いた）状態にする。
【００５２】
図３は論理パーティション・マイグレーション中のパーティション・ページ・メモリに対して行われる変更を追跡するために図１のシステム１０によって実行可能な諸ステップを示すフローチャート１００である。フローチャート１００のプロセスはソース・パーティションのハイパーバイザ４６の視点からとってもよい。だから、フローチャート１００のプロセスは図２のメモリ転送および追跡プロセスにおけるアプリケーションを有していてもよい。図３のブロック１０２に特に言及すると、論理パーティション４２はマイグレーションを促進するメモリ・モード、すなわち仮想パーティション・メモリ・モードに切換えられてもよい。
【００５３】
ハイパーバイザ４６は、状態ページ・マネジャ・テーブルであるページ・マネジャ１５にストアされたパーティション・メモリの各ページのための状態、例えばバイト値をブロック１０４で０ｘ００に初期化してもよい。この状態はマイグレートする用意ができたページと一致してもよい。
【００５４】
ハイパーバイザ４６は書込みアクセス参照が加えられたか、ブロック１０６で判定してもよい。書込みアクセス参照の例はページ・テーブル・エントリもしくは変換制御エントリを含んでもよい。変換制御エントリは例えば直接メモリ・アクセスのような一片のハードウエアによって典型的には達成されるような物理メモリへのＩ／Ｏマップ（写像）を含んでもよい。もし、ブロック１０６でそうなら（“Ｙ“）、ブロック１０８で論理パーティション４２がその参照カウントが０ｘＦＤに等しいかそれよりも小さいか判定してもよい。このエントリは、管理者が見込みでページを転送する目的のために効率を考慮するにはあまりに多くの変化、例えば２００という参照カウントがそのページに関してあると判断した所定のカウントと一致するかもしれない。だから、このページというのは一旦マイグレーションが中断するときにハイパーバイザにより転送されるべきタイプであるかもしれない。このページはブロック１１０でそのように指定されてもよい。
【００５５】
参照カウントが０ｘＦＤより少ないか等しい場合、参照カウントはブロック１１２でその参照ページのためのバイト値によって増加されてもよい。
【００５６】
もしブロック１０６で書込みアクセスが加えられない（“Ｎ”）なら、書込みアクセス参照除去（a write access reference removed）が生じたかブロック１１４でハイパーバイザ４６が判定してもよい。もしそう（“Ｙ”）なら、参照カウントが０ｘＦＤより少ないかもしくは等しいか、ブロック１１６でハイパーバイザ４６が判定してもよい。参照カウントが０ｘＦＤよりも少ないかもしくは等しいことに応じて、ブロック１１８でそのページの状態／参照カウントが減少されてもよい。
【００５７】
システム１０はそのページ状態が０ｘＦＦに等しいか、またハイパーバイザのストアが生じたかをブロック１２０で判定してもよい０ｘＦＦという状態はページが移動され、すなわち既に転送されてしまったことを示してもよい。ハイパーバイザのストアの例は、パーティションにより行われるハイパーバイザ・コールを含んでもよい。このようなシナリオは、そのページが既にマイグレートされた事実があるにも拘らず、そのページが変更されてしまったことを示すであろう。そのように、そのパーティションのためのページ状態が０ｘ００に戻るようにブロック１２２でセットされてもよい。この指定はその更新（ハイパーバイザ・コール）がそのマイグレーションにおいて更新が考慮されるであろうことを確保するであろう。すなわち、そのハイパーバイザ・ストアを反映するように再びそのページがマイグレートされ（そしてターゲットのパーティション４４上の対応するページが更新され）るであろう。
【００５８】
ブロック１２４で判定されるように０ｘ００に等しい全てのこれらのページ状態に対して、ブロック１２６でターゲットのパーティション４４にそのページを転送してもよい。ブロック１２８でそのページは０ｘＦＦにセットされてもよい。
【００５９】
本発明が種々の実施例の記述によって説明され、またこれらの実施例がかなり詳細に説明されているが、出願人はどのような態様であれ、その特許請求の範囲を限定し、もしくはそのような細部に制限する意図はない。例えば、他の実施例が同じコンピュータの論理パーティション相互間のマイグレーションをサポートする。だから、追加的な効果および変形が当業者には容易に得られる。発明のその広い側面は、従ってその特定の細部、代表的な装置および方法、ならびに図示の記述した説明例には限定されない。従って、出願人の一般的な発明概念の範囲から逸脱しない範囲で、そのような細部からの逸脱があってもよい。
【００６０】
ここに添付する図面は、本明細書の一部に組み込まれ、その一部を構成して、本発明の実施例を説明する。そして前述の本発明の一般的な説明、およびその後の実施例の詳細な説明とともに本発明の原理を説明するのに役立つ。
【図面の簡単な説明】
【００６１】
【図１】本発明の原理に沿った態様でマイグレーティング論理パーティションの状態を追跡するように構成されたコンピュータ・システムのブロック図である。
【図２】図１のローカル・パーティションのマイグレーションを行うために図１のシステムによって実行可能なステップを有するフローチャートである。
【図３】論理パーティション・マイグレーション中にパーティション・ページ・メモリに対して行われる変化を追跡するために図１のシステムによって実行可能なステップを有するフローチャートである。
【符号の説明】
【００６２】
１０  システム／装置
１２  物理プロセッサ（ＳＰ）
１３  仮想プロセッサ（ＶＰ）
１４  ＳＤＲＩレジスタ
１５、１６  ページ・マネジャ
３１、３２  サーバー
４１、４２、４４、４５  論理パーティション
４６  ハイパーバイザ
４７  レディ・キュー
４８、５０、５６、５７  オペレーティング・システム
４９  プロセッサ制御ブロック
５１  ディスパッチャ
５２、５３、５４、５５  物理ページ・テーブル（ＰＰＴ）
５８、５９、６１、６３    キャッシュ・ページ・テーブル（ＣＰＴ）
６２、６４、６６  論理バス
６８、８０、８６、８８  ＤＡＳＤ（直接アクセス記憶装置）
７０  制御パネル
７２  テープ・ドライブ
７４、７８  光ディスク・ドライブ
８２、８４  ＬＡＮアダプタ
８５  オーケストレータ・プログラム
【図１】
0005698432.tif 000002
【図２】
0005698432.tif 000003
【図３】
0005698432.tif 000004