(57)【要約】  【課題】  複数のロジカル・パーティションをサポートするコンピュータにおいてロジカル・パーティションにプロセッサを割り当てる方法および装置を提供する。  【解決手段】  複数のロジカル・パーティションをサポートするコンピュータにおけるロジカル・パーティションに対するプロセッサの割り当ては、パーティションに優先度を割り当てることと、パーティションの故障プロセッサのチェックストップを検出することと、故障プロセッサの状態を検索して取得することと、ハイパーバイザによって、故障プロセッサのパーティションの優先度よりも低い優先度を有するパーティションからの置換プロセッサによって故障プロセッサを置換することと、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てることと、を含む。【選択図】  図３
2009510572.tif 000002
【特許請求の範囲】
【請求項１】
複数のロジカル・パーティションをサポートするコンピュータにおいてロジカル・パーティションにプロセッサを割り当てるための方法であって、
パーティションに優先度を割り当てるステップと、
パーティションの故障プロセッサのチェックストップを検出するステップと、
前記故障プロセッサの状態を検索して取得するステップと、
ハイパーバイザによって、前記故障プロセッサのパーティションの優先度よりも低い優先度を有するパーティションからの置換プロセッサによって前記故障プロセッサを置換するステップと、
前記故障プロセッサの前記取得した状態を前記置換プロセッサの状態として割り当てるステップと、
を含む、方法。
【請求項２】
前記故障プロセッサが専用パーティションまたは仮想プロセッサのプールに割り当てられ、前記仮想プロセッサのプールが少なくとも１つの共有プロセッサ・パーティションをサポートし、
最低の優先度のパーティションが専用パーティションであり、
前記故障プロセッサの置換が前記最低の優先度のパーティションを終了させることを含む、請求項１に記載の方法。
【請求項３】
前記故障プロセッサが専用パーティションまたは仮想プロセッサのプールに割り当てられ、前記仮想プロセッサのプールが１つ以上の共有プロセッサ・パーティションをサポートし、
前記プールがサポートする前記共有プロセッサ・パーティションよりも低い優先度を有する共有プロセッサ・パーティションが利用可能であり、
前記故障プロセッサの置換が、前記プールがサポートする前記共有プロセッサ・パーティションよりも低い優先度を有する充分な数の共有プロセッサ・パーティションを終了させて置換プロセッサを解放することを含み、または、前記プールがサポートする前記共有プロセッサ・パーティションよりも低い優先度を有する充分な数の共有プロセッサ・パーティションをオーバーコミットさせてパーティションを終了させることなく置換プロセッサを解放することを含む、請求項１に記載の方法。
【請求項４】
複数のロジカル・パーティションをサポートするコンピュータにおいてロジカル・パーティションにプロセッサを割り当てるための装置であって、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作的に結合されたコンピュータ・メモリと、を含み、前記コンピュータ・メモリの内部にコンピュータ・プログラム命令が配されており、この命令が、
パーティションに優先度を割り当てることと、
パーティションの故障プロセッサのチェックストップを検出することと、
前記故障プロセッサの状態を検索して取得することと、
ハイパーバイザによって、前記故障プロセッサのパーティションの優先度よりも低い優先度を有するパーティションからの置換プロセッサによって前記故障プロセッサを置換することと、
前記故障プロセッサの前記取得した状態を前記置換プロセッサの状態として割り当てることと、
を実行可能である、装置。
【請求項５】
前記故障プロセッサが専用パーティションまたは仮想プロセッサのプールに割り当てられ、
最低の優先度のパーティションが専用パーティションであり、
前記故障プロセッサの置換が前記最低の優先度のパーティションを終了させることを含む、請求項４に記載の装置。
【請求項６】
前記故障プロセッサが専用パーティションまたは仮想プロセッサのプールに割り当てられ、
前記故障プロセッサの前記パーティションよりも低い優先度を有するパーティションが１つ以上の共有プロセッサ・パーティションを含み、
前記故障プロセッサの置換が、前記故障プロセッサの前記パーティションよりも低い優先度を有する充分な数の前記共有プロセッサ・パーティションを終了させて置換プロセッサを解放することを含み、または、
前記故障プロセッサの前記パーティションよりも低い優先度を有する前記共有プロセッサ・パーティションの１つ以上をオーバーコミットさせてパーティションを終了させることなく置換プロセッサを解放することを含む、請求項４に記載の装置。
【請求項７】
複数のロジカル・パーティションをサポートするコンピュータにおいてロジカル・パーティションにプロセッサを割り当てるためのコンピュータ・プログラムであって、信号記録媒体上に配され、コンピュータ・プログラム命令を含み、この命令が、
パーティションに優先度を割り当てることと、
パーティションの故障プロセッサのチェックストップを検出することと、
前記故障プロセッサの状態を検索して取得することと、
ハイパーバイザによって、前記故障プロセッサのパーティションの優先度よりも低い優先度を有するパーティションからの置換プロセッサによって前記故障プロセッサを置換することと、
前記故障プロセッサの前記取得した状態を前記置換プロセッサの状態として割り当てることと、
を実行可能である、コンピュータ・プログラム。
【請求項８】
前記信号記録媒体が記録可能媒体を含むか、または伝送媒体を含む、請求項７に記載のコンピュータ・プログラム。
【請求項９】
前記故障プロセッサが専用パーティションまたは仮想プロセッサのプールに割り当てられ、
最低の優先度のパーティションが専用パーティションであり、
前記故障プロセッサの置換が前記最低の優先度のパーティションを終了させることを含む、請求項７または８に記載のコンピュータ・プログラム。
【請求項１０】
前記故障プロセッサが専用パーティションまたは仮想プロセッサのプールに割り当てられ、
前記故障プロセッサの前記パーティションよりも低い優先度を有するパーティションが１つ以上の共有プロセッサ・パーティションを含み、
前記故障プロセッサの置換が、前記故障プロセッサの前記パーティションよりも低い優先度を有する充分な数の前記共有プロセッサ・パーティションを終了させて置換プロセッサを解放することを含み、または、
前記故障プロセッサの前記パーティションよりも低い優先度を有する前記共有プロセッサ・パーティションの１つ以上をオーバーコミットさせてパーティションを終了させることなく置換プロセッサを解放することを含む、請求項７から９のいずれかに記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野はデータ処理であり、更に具体的には、複数のロジカル・パーティションをサポートするコンピュータにおいて、ロジカル・パーティションに対してプロセッサを割り当てるための方法、装置、および製品に関する。
【背景技術】
【０００２】
１９４８年のＥＤＶＡＣコンピュータ・システムの開発は、コンピュータ時代の幕開けと言われることが多い。それ以来、コンピュータ・システムは極めて複雑なデバイスへと進化している。今日のコンピュータは、ＥＤＶＡＣ等の初期のシステムに比べてはるかに洗練されている。コンピュータ・システムは通常、ハードウェアおよびソフトウェア・コンポーネント、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入出力デバイス等の組み合わせを含む。半導体処理およびコンピュータ・アーキテクチャの向上によってコンピュータの性能がいっそう高度になるにつれて、このハードウェアの高性能を利用するようなもっと洗練されたコンピュータ・ソフトウェアが現れ、結果として、今日のコンピュータ・システムはわずか数年前のものよりもずっと強力となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
進歩している領域としては、固有のリソースが割り当てられて別個のオペレーティング・システムを動作させている複数のパーティションにおける多数の実行スレッドの並列処理が挙げられる。コンピュータ・ハードウェアおよびソフトウェアが、高度に並列でロジカル・パーティション化したモデルへとシフトすることで、たった数年前には実質的に存在しなかった高いシステム可用性のチャンスが得られる。高い可用性を維持するためのある機構では、故障が予測されたプロセッサを未使用のプロセッサによって動的に実行時に置換することが可能となる。ただし、これは、置換プロセスが完了するまで故障プロセッサが機能し続けることができる場合である。高い可用性のための別の機構は、完全なプロセッサ状態情報を維持し、破局的なプロセッサ故障の場合であっても（例えばチェックストップ（checkstop））、プロセッサによって実行中の動作を置換プロセッサ上で継続することができるようになっている。これらの回復機構における置換プロセッサの重要性は明白である。未使用のプロセッサが利用可能な場合は、こういった置換をどこで行うかは明らかである。しかしながら、未使用のプロセッサは一般的に無駄が多くて高価であり、このため、ほとんどのシステムではまれにしか存在しない。プロセッサがチェックストップし、未使用のプロセッサが使用可能でない場合、システムには２つの選択肢がある。すなわち、パーティションを終了させること、または、基礎にあるハイパーバイザが、物理的に利用可能であるよりも多くのプロセッサを有するかのようにパーティションを動作させることができる。これらのケースは双方とも望ましくない。前者の場合はパーティションが死んでおり、後者の場合はパーティションが所望の性能レベルで動作していない。確かに、利用しているプロセッサがチェックストップした場合、必ずシステム上のあるパーティションは悪影響を受けるが、偶発的な故障プロセッサに基づいて悪影響を受けるパーティションの選択を運に任せることは、最適な手順ではない。
【課題を解決するための手段】
【０００４】
開示する方法、装置、およびコンピュータ・プログラムは、概して、複数のロジカル・パーティションをサポートするコンピュータにおいて、ロジカル・パーティションに置換プロセッサを割り当てるように動作する。このため、割り当てたパーティション優先度を用い、あるプロセッサが置換プロセッサとして必要とされるまで、システム上の全てのプロセッサは有用な機能を実行することができ、いったんそれが必要とされると、エンド・ユーザの動作に対する影響を減じる予測可能な方法で処理リソースの割り当てを解除する。更に具体的には、開示する方法、装置、およびコンピュータ・プログラムは、複数のロジカル・パーティションをサポートするコンピュータにおいて、ロジカル・パーティションにプロセッサを割り当てるものであり、パーティションに優先度を割り当てること、パーティションの故障プロセッサのチェックストップを検出すること、故障プロセッサの状態を検索して取得すること、ハイパーバイザによって、故障プロセッサのパーティションの優先度よりも低い優先度を有するパーティションからの置換プロセッサによって故障プロセッサを置換すること、および、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てること、を含む。
【０００５】
本発明の前述およびその他の目的、特徴、および利点は、添付図面に示された本発明の例示的な実施形態の以下の更に具体的な説明から明らかとなろう。図面において、同様の参照番号は概ね本発明の例示的な実施形態の同様の部分を表す。
【発明を実施するための最良の形態】
【０００６】
本発明の実施形態による、ロジカル・パーティションにプロセッサを割り当てるための例示的な方法、装置、および製品について、図１から始まる添付図面を参照して説明する。本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てることは、概して、コンピュータによって、すなわち自動化コンピューティング機械によって実施される。従って、更に詳細な説明のため、図１は、自動化コンピューティング機械のブロック図を示し、これは、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てる際に有用な例示的なコンピュータ（１５２）を含む。図１のコンピュータ（１５２）は、複数の物理プロセッサ（１５６）およびランダム・アクセス・メモリ（１６８）（「ＲＡＭ」）を含み、このＲＡＭは、システム・バス（１６０）を介して、プロセッサ（１５６）およびコンピュータの他の構成要素に接続されている。ＲＡＭ（１６８）内には、ハイパーバイザ（１８４）、すなわちロジカル・パーティション（「ＬＰＡＲ」）を管理するためのコンピュータ・プログラム命令がストアされている。ハイパーバイザ（１８４）は、メモリ等の物理リソースおよび処理リソースのＬＰＡＲに対する割り当てを管理し、ＬＰＡＲ内からアクセスすることができる物理メモリ位置を制御し、Ｉ／Ｏメモリ空間に対するアクセスを制御する。更に、ハイパーバイザ（１８４）は、物理プロセッサに対する仮想プロセッサをスケジューリングし、ＬＰＡＲに対する仮想プロセッサの割り当てを管理する。
【０００７】
この例におけるハイパーバイザ（１８４）は、本発明の実施形態に従って複数のロジカル・パーティションをサポートするコンピュータにおいてロジカル・パーティションにプロセッサを割り当てるために改良されており、パーティションに優先度を割り当て、パーティションの故障プロセッサのチェックストップを検出し、故障プロセッサの状態を検索して取得し、ハイパーバイザによって、故障プロセッサのパーティションの優先度よりも低い優先度を有するパーティションからの置換プロセッサによって故障プロセッサを置換し、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる。
【０００８】
また、ＲＡＭ（１６８）内には、仮想プロセッサ（１２２）、すなわち、ＬＰＡＲに対する物理プロセッサ・リソースの割り当てを表すコンピュータ・プログラム命令もストアされている。また、ＲＡＭ（１６８）内には、ＬＰＡＲ（１０４）もストアされている。これは、単一のコンピュータ内でのハイパーバイザによるコンピュータ・リソースの分配をサポートして、コンピュータを２つ以上の独立したコンピュータであるかのように機能させる１組のデータ構造およびサービスである。ＬＰＡＲには、独立したコンピュータであるかのように動作するために必要なリソースが全て割り当てられており、これには、プロセッサ時間、メモリ、オペレーティング・システム等が含まれる。また、ＲＡＭには、アプリケーション・プログラム（１５８）、すなわちユーザ・レベルのデータ処理のためのコンピュータ・プログラム命令もストアされている。
【０００９】
また、ＲＡＭ（１６８）には、オペレーティング・システム（１５４）もストアされている。本発明の実施形態に従ったコンピュータにおいて有用なオペレーティング・システムは、ＵＮＩＸTM、ＬｉｎｕｘTM、Ｍｉｃｒｏｓｏｆｔ  ＮＴTM、ＡＩＸTM、ＩＢＭのｉ５／ＯＳTM、および、当業者に想起される他のものが含まれる。図１の例において、ハイパーバイザ（１８４）、仮想プロセッサ（１２２）、オペレーティング・システム（１５４）、ＬＰＡＲ（１０４）、およびアプリケーション・プログラム（１５８）は、ＲＡＭ（１６８）の中に示すが、かかるソフトウェアの多くの構成要素は通常、不揮発性メモリ（１６６）にもストアされている。
【００１０】
図１のコンピュータ（１５２）は、システム・バス（１６０）を介して物理プロセッサ（１５６）およびコンピュータ（１５２）の他の構成要素に結合されている不揮発性コンピュータ・メモリ（１６６）を含む。不揮発性コンピュータ・メモリ（１６６）は、ハード・ディスク・ドライブ（１７０）、光ディスク・ドライブ（１７２）、電気的消去可能書き込み可能読み出し専用メモリ空間（いわゆる「ＥＥＰＲＯＭ」または「Ｆｌａｓｈ」メモリ）（１７４）、ＲＡＭドライブ（図示せず）、または、当業者に想起されるような他のいずれかの種類のコンピュータ・メモリとして実施することができる。
【００１１】
図１の例示的なコンピュータは、１つ以上の入出力インタフェース・アダプタ（１７８）を含む。コンピュータにおける入出力インタフェース・アダプタは、ユーザ指向の入出力を実施し、これは例えば、コンピュータ・ディスプレイ・スクリーン等のディスプレイ・デバイス（１８０）に対する出力ならびにキーボードおよびマウス等のユーザ入力デバイス（１８１）からのユーザ入力を制御するためのソフトウェア・ドライバおよびコンピュータ・ハードウェアを利用する。
【００１２】
図１の例示的なコンピュータ（１５２）は、他のコンピュータ（１８２）とのデータ通信（１８４）を実施するための通信アダプタ（１６７）を含む。かかるデータ通信は、ＲＳ−２３２接続、ＵＳＢ等の外部バス、ＩＰネットワーク等のデータ通信ネットワーク、および当業者に想起されるような他の方法によってシリアルに実行することができる。通信アダプタは、ハードウェア・レベルのデータ通信を実施し、これによって、あるコンピュータは直接またはネットワークを介して別のコンピュータにデータ通信を送信する。本発明の実施形態に従って宛先の可用性を判定するために有用な通信アダプタの例は、有線ダイアルアップ通信のためのモデム、有線ネットワーク通信のためのイーサネット（ＩＥＥＥ８０２．３）アダプタ、および無線ネットワーク通信のための８０２．１１ｂアダプタを含む。
【００１３】
図２は、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための例示的なシステムの機能ブロック図を示す。図２のシステムは、ハイパーバイザ（１８４）、すなわちＬＰＡＲを管理するシステム・ソフトウェア層を含む。この例におけるハイパーバイザ（１８４）は、本発明の実施形態に従って複数のロジカル・パーティションをサポートするコンピュータにおいてロジカル・パーティションにプロセッサを割り当てるために改良されており、パーティションに優先度を割り当て、パーティションの故障プロセッサのチェックストップを検出し、故障プロセッサの状態を検索して取得し、ハイパーバイザによって、故障プロセッサのパーティションの優先度よりも低い優先度を有するパーティションからの置換プロセッサによって故障プロセッサを置換し、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる。
【００１４】
また、図２は、ＬＰＡＲ（１０３、１０４、１０５）も含む。各ＬＰＡＲ（１０３、１０４、１０５）ではオペレーティング・システム（１５４、１５５、１５７）が動作しており、各オペレーティング・システムは異なるものである場合がある。例えば、３つのＬＰＡＲを有するシステムでは、あるＬＰＡＲにおいてＬｉｎｕｘTMが動作し、別のＬＰＡＲにおいてＩＢＭのＡＩＸTMが動作し、別のＬＰＡＲにおいてＩＢＭのｉ５／ＯＳが同時に動作しているという場合がある。
【００１５】
また、図２は、複数の物理プロセッサ（１５６、１５８、１６０、１６２、１６４、１６６、１６８）を含む。物理プロセッサ（１５６、１５８）は、仮想プロセッサ（１２１、１２３）を介して排他的にＬＰＡＲ（１０３）に専用となっている。物理プロセッサがこのように排他的に専用とされたＬＰＡＲのことを、本明細書では「専用ＬＰＡＲ」と称する。この例において、物理プロセッサ（１６０、１６２、１６４、１６６、１６８）は、仮想プロセッサ（１２４、１２６、１２８、１３０、１３２、１３４）を介して、ＬＰＡＲ（１０４、１０５）によって共有されている。
【００１６】
仮想プロセッサ（１２４、１２６、１２８、１３０、１３２、１３４）は、ＬＰＡＲ（１０４、１０５）に対する割り当てのために利用可能な仮想プロセッサ・プール（１５３）に集められている。各仮想プロセッサは、プール（１５３）をサポートする物理プロセッサ（１６０、１６２、１６４、１６６、１６８）によって与えられる処理容量の一部をＬＰＡＲに対して割り当てることを表す。プールをサポートする物理プロセッサのうち、１つの仮想プロセッサによって表される部分は、ある物理プロセッサの一部またはある物理プロセッサ全体とすることができる。従って、ＬＰＡＲ（１０４、１０５）は、かかる各ＬＰＡＲにハイパーバイザ（１８４）が割り当てたプールされた仮想プロセッサを介して、間接的に物理プロセッサを共有する。プールされた仮想プロセッサを介して間接的に物理プロセッサを共有しているこのようなＬＰＡＲのことを、本明細書では「共有プロセッサ・パーティション」または「共有プロセッサＬＰＡＲ」と称する。
【００１７】
図２の例において、７つの物理プロセッサ（１５６、１５８、１６０、１６２、１６４、１６６、１６８）の処理容量は、ハイパーバイザによって、次のように３つのＬＰＡＲ（１０３、１０４、１０５）に割り当てられる。
【００１８】
・物理プロセッサ（１５６、１５８）の処理容量は全て、仮想プロセッサ（１２１、１２３）を介してＬＰＡＲ（１０３）に割り当てられる。
【００１９】
・２．５プロセッサと同等の物理プロセッサ（１６０、１６２、１６４、１６６、１６８）が表す処理容量の部分は、仮想プロセッサ（１２４、１２６、１２８）を介してＬＰＡＲ（１０４）に割り当てられる。
【００２０】
・２．５プロセッサと同等の物理プロセッサ（１６０、１６２、１６４、１６６、１６８）が表す処理容量の部分は、仮想プロセッサ（１３０、１３２、１３４）を介してＬＰＡＲ（１０５）に割り当てられる。
【００２１】
図２のシステムにおいて、物理プロセッサ、仮想プロセッサ、およびＬＰＡＲの数、配置、および割り当ては、例示のために示すだけであって、それらは本発明の限定ではない。複数のロジカル・パーティションをサポートするコンピュータにおいてロジカル・パーティションにプロセッサを割り当てるためのシステムは、いかなる数、配置、または割り当ての物理プロセッサ、仮想プロセッサ、およびＬＰＡＲでも含むことができる。
【００２２】
更に詳細な説明のため、図３は、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための例示的な方法を示すフロー・チャートを示す。これは、パーティション（３２０、３３０）に優先度（３１０）を割り当てること（３０４）を含む。パーティションに対する優先度の割り当ては、ユーザ（３０２）からパーティションの優先度を取得することによって、およびユーザ（３０２）が割り当てた優先度をストアすることによって実行可能である。あるいは、パーティションに対する優先度の割り当ては、パーティションに対する負荷を監視し、負荷と共に優先度が上がっていくように負荷に応じて優先度を割り当てることによって実行しても良い。あるいは、パーティションに対する優先度の割り当ては、ユーザから優先度を取得し、パーティションに対する負荷を監視し、この負荷およびユーザからの入力に基づいて優先度を割り当てることによって実行することも可能である。
【００２３】
また、図３の方法は、パーティション（３２０）の故障プロセッサ（３０８）のチェックストップを検出すること（３１２）も含む。「チェックストップ」という言葉は、本明細書において用いる場合、単独でまたは他のエラーと共に生じる極めて重大なプロセッサの動作エラーであり、プロセッサ置換の根拠となる。物理プロセッサは通常、特定方向に向けたハードウェア割込みによってプロセッサの動作エラーを信号で知らせる。チェックストップの検出は、物理プロセッサのプロセッサ動作エラーからの割込みをハイパーバイザの割込み処理ルーチンに向けることによって実行することができる。プロセッサから発するいかなるエラー条件または複数の条件も、チェックストップを構成するまたは発生させる場合があり、これは例えば、メモリ境界エラー、操作符号エラー、コプロセッサ・セグメント・エラー、メモリ・アドレス・エラー、算術または浮動小数点エラー、メモリ整合エラー、機械チェック例外等、当業者に想起されるものを含む。チェックストップの検出は、特定のエラーを、プロセッサ置換の根拠となるに充分であると個別に規定することを含む場合がある。あるいは、チェックストップの検出は、プロセッサ動作エラーの数を数え、この数が既定の閾値と等しくなったらチェックストップを識別することを含む場合もある。
【００２４】
また、図３の方法は、故障プロセッサの状態（３１６）を検索して取得すること（３１４）を含む。故障プロセッサの状態（３１６）を検索し取得すること（３１４）は、ハイパーバイザがプロセッサから直接プロセッサのレジスタの現在値を読み、プロセッサのレジスタの値を物理プロセッサの外部のランダム・アクセス・メモリに一時的にストアすることによって実行可能である。
【００２５】
また、図３の方法は、ハイパーバイザ（１８４）によって、故障プロセッサ（３０８）のパーティション（３２０）の優先度よりも低い優先度を有するパーティション（３２２）からの置換プロセッサ（３２６）によって故障プロセッサを置換すること（３１８）を含む。図３の例において、プロセッサ（３０８）は、専用ＬＰＡＲ（３２０）に全体的かつ排他的に割り当てられた故障プロセッサである。ＬＰＡＲ（３２０）は優先度１を有し、これはＬＰＡＲ（３２２）よりも高い優先度である。ＬＰＡＲ（３２２）は、プロセッサ（３２６）の全容量が割り当てられた専用ＬＰＡＲである。この例において、プロセッサ（３２６）は優先度の低いＬＰＡＲに割り当てられているので、プロセッサ（３２６）が置換プロセッサとして識別される。ハイパーバイザは、表１に示すものと同様のデータ構造を用いることによって、故障プロセッサ（３０８）を置換プロセッサ（３２６）によって置換する（３１８）ことができる。
【表１】
2009510572.tif 000003
【００２６】
表１は５つの列を有する。「記録番号」列は、表内の各レコードに参照番号を割り当てるが、これは単に説明の便宜のためのみである。「ＬＰＡＲ」列の値はパーティションを示す。「ＶＰ」列の値は仮想プロセッサを示す。「ＰＰ」列の値は物理プロセッサを示す。また、「部分」列の値は処理容量を示し、仮想プロセッサに割り当てられた、すなわち間接的に仮想プロセッサを介してパーティションに割り当てられた物理プロセッサの割合で表される。
【００２７】
表１における各レコードは、仮想プロセッサを介してＬＰＡＲに割り当てられた物理プロセッサの一部を表す。レコード番号１は、仮想プロセッサ（１２１）を介してＬＰＡＲ（３２０）に全体的に（部分＝１．０）割り当てられた故障プロセッサ（３０８）を表す。レコード番号２は、仮想プロセッサ（１２３）を介してＬＰＡＲ（３２２）に全体的に（部分＝１．０）割り当てられた置換プロセッサ（３２６）を表す。
【００２８】
ハイパーバイザ（１８４）は、表２に示すように表１のデータを更新することによって、故障プロセッサ（３０８）を置換プロセッサ（３２６）によって置換する（３１８）。
【表２】
2009510572.tif 000004
【００２９】
表２は、この時点でいずれのＬＰＡＲにも割り当てられていない故障プロセッサ（３０８）、および、仮想プロセッサ（１２１）を介してＬＰＡＲ（３２０）に全体的に（部分＝１．０）割り当てられている置換プロセッサ（３２６）を示す。ＬＰＡＲにプロセッサを割り当てるデータ値のハイパーバイザによる更新は、割込み処理中に行われ、いずれのオペレーティング・システムまたはアプリケーション・プログラムの動作に対して完全にトランスペアレントである。ハイパーバイザがその割込み処理ルーチンから制御を戻すと、オペレーティング・システムまたはアプリケーション・プログラムは置換プロセッサ上で動作を継続し、置換が生じたことに全く気付かない。この例において、ＬＰＡＲ（３２２）はその唯一の割り当てられたプロセッサすなわち置換プロセッサ（３２６）を失い、これは仮想プロセッサ（１２１）を介してＬＰＡＲ（３２０）に再割り当てされた。従って、この例において、ＬＰＡＲ（３２２）は終了するはずである。
【００３０】
また、図３の方法は、故障プロセッサ（３０８）の取得した状態（３１６）を置換プロセッサ（３２６）の状態として割り当てること（３１９）も含む。故障プロセッサの取得した状態は、ハイパーバイザがチェックストップを検出した時の故障プロセッサのレジスタの値である。故障プロセッサ（３０８）の取得した状態（３１６）を置換プロセッサ（３２６）の状態として割り当てること（３１９）は、置換プロセッサのレジスタに取得した状態（３１６）をストアすることによって実行可能である。
【００３１】
更に別の説明のため、図４は、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。図４の方法は図３の方法にと同様であり、図４の方法は、パーティションに優先度を割り当て（３０４）、パーティションの故障プロセッサのチェックストップを検出し（３１２）、故障プロセッサの状態を検索して取得し（３１４）、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる（３１９）ことを含む。これらは全て、上述した図３の方法と同様に動作する。
【００３２】
また、図４の方法は、ハイパーバイザ（１８４）によって、故障プロセッサ（４１２）のパーティション（４０４）の優先度よりも低い優先度を有するパーティション（４０８）からの置換プロセッサ（４１９）によって故障プロセッサを置換すること（３１８）を含む。しかしながら、図４の方法においては、故障物理プロセッサ（４１２）は専用パーティション（４０４）に割り当てられ、最低の優先度のパーティション（４０８）は専用パーティションであり、故障プロセッサ（４１２）の置換は最低優先度のパーティション（４０８）を終了させること（４０２）を含む。図４の例において、プロセッサ（４１２）は、仮想プロセッサ（１２３）を介して専用ＬＰＡＲ（４０４）に全体的かつ排他的に割り当てられた故障プロセッサである。専用ＬＰＡＲであるＬＰＡＲ（４０８）は優先度４を有し、これは優先度２を有するＬＰＡＲ（４０４）または優先度３を有するＬＰＡＲ（４０６）よりも低い優先度である。ＬＰＡＲ（４０８）には、仮想プロセッサ（１２９）を介してプロセッサ（４１８）の全容量が割り当てられている。この例において、プロセッサ（４１８）は最低優先度のＬＰＡＲに割り当てられているので、プロセッサ（４１８）が、故障プロセッサ（４１２）を置換するための置換プロセッサとして識別される。
【００３３】
図４の方法において、故障プロセッサの置換（３１８）は、最低優先度のパーティション（４０８）を終了させること（４０２）を含む。最低優先度のパーティション（４０８）を終了させること（４０２）は、最低優先度のパーティション（４０８）で動作しているプログラムを停止させ、最低優先度のパーティション（４０８）で動作しているオペレーティング・システムを停止させ、先に述べた表１および２と同様の、ＬＰＡＲに対する物理プロセッサの割り当てを表す表から、ＬＰＡＲ（４０８）を除去することによって、実行可能である。表３に、これらの変更を行った後の、ＬＰＡＲに対する物理プロセッサの割り当てを表す更新済みの表を示す。
【表３】
2009510572.tif 000005
【００３４】
表３は、この時点でいずれのＬＰＡＲにも割り当てられていない故障プロセッサ（４１２）、および、仮想プロセッサ（１２３）を介して全体的に（部分＝１．０）専用ＬＰＡＲ（４０４）に割り当てられている置換プロセッサ（４１８）を示す。プロセッサ（４１４）は、仮想プロセッサ（１２５）を介してＬＰＡＲ（４０６）に全体的に割り当てられ続ける。ＬＰＡＲ（４０８）は終了している。プロセッサ（４１６）、すなわち仮想プロセッサ（１２７）を介して終了したＬＰＡＲ（４０８）に割り当てられた他のプロセッサは、この時点ではいずれのＬＰＡＲにも割り当てられていない。
【００３５】
更に別の説明のため、図５は、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。図５の方法は図３の方法と同様であり、図５の方法は、パーティションに優先度を割り当て（３０４）、パーティションの故障プロセッサのチェックストップを検出し（３１２）、故障プロセッサの状態を検索して取得し（３１４）、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる（３１９）ことを含む。これらは全て、上述したような図３の方法と同様に動作する。
【００３６】
また、図５の方法は、ハイパーバイザ（１８４）によって、故障プロセッサ（４１０）のパーティション（４０４）の優先度よりも低い優先度を有するパーティション（５０４、５０６）からの置換プロセッサ（５２０）によって故障プロセッサを置換すること（３１８）を含む。しかしながら、図５の方法においては、故障プロセッサ（４１０）は専用パーティション（４０４）に割り当てられ、故障プロセッサ（４１０）のパーティション（４０４）よりも低い優先度を有するパーティションは１つ以上の共有プロセッサ・パーティション（５０４、５０６）を含み、故障プロセッサ（４１０）を置換すること（３１８）は、故障プロセッサ（４１０）のパーティション（４０４）よりも低い優先度を有する充分な数の共有プロセッサ・パーティション（５０４、５０６）を終了させて置換プロセッサ（５２０）を解放すること（５０２）を含む。図５の例においては、プロセッサ（４１０）は、仮想プロセッサ（１２１）を介して専用ＬＰＡＲ（４０４）に全体的かつ排他的に割り当てられた故障プロセッサである。ＬＰＡＲ（５０４、５０６）は、共有プロセッサ（ＬＰＡＲ）であり、プールされた仮想プロセッサ（５１０、５１２、５１４）を介して物理プロセッサ（５３０、５３１、５２０）からの処理容量を間接的に共有している。プールされた仮想プロセッサ（５１０、５１２、５１４）を介して、ＬＰＡＲ（５０４、５０６）には、１．２５プロセッサの容量が割り当てられている。すなわち、仮想プロセッサ（５１０）を介してＬＰＡＲ（５０４）に０．５プロセッサ、仮想プロセッサ（５１２）を介してＬＰＡＲ（５０６）に０．５プロセッサ、仮想プロセッサ（５１２）を介してＬＰＡＲ（５０６）に０．２５プロセッサが割り当てられている。従って、ＬＰＡＲ（５０４、５０６）を終了させると、故障プロセッサ（４１０）のパーティション（４０４）よりも低い優先度を有する充分な数の共有プロセッサ・パーティションが終了してプロセッサを解放する。
【００３７】
プール（５３２）をサポートする３つのプロセッサ（５３０、５３１、５２０）のいずれも、プールがサポートする残りの共有プロセッサＬＰＡＲの動作に影響を与えることなく、置換プロセッサとして利用することができる。残りの共有プロセッサＬＰＡＲ（５０８）には、仮想プロセッサ（５１６、５１８）を介して１．０プロセッサの処理容量が割り当てられている。故障プロセッサを置換するためにプールに割り当てられた物理プロセッサの１つを利用すると、２つの物理プロセッサはプールをサポートするために割り当てられたままとなる。プールはこの時点で、プールの仮想プロセッサの処理容量の割り当てを満足させるために、１つのみの物理プロセッサしか必要としない。
【００３８】
故障プロセッサ（４１０）のパーティション（４０４）よりも低い優先度を有する充分な数の共有プロセッサ・パーティション（５０４、５０６）を終了させてプロセッサ（５２０）を解放することは、終了させた共有プロセッサ・パーティション（５０４、５０６）上で動作しているプログラムを停止させ、終了させた共有プロセッサ・パーティション（５０４、５０６）上で動作しているオペレーティング・システムを停止させ、上述した表１および表２と同様の、ＬＰＡＲに対する物理プロセッサの割り当てを表す表から、ＬＰＡＲ（５０４、５０６）を除去することによって、実行可能である。表４に、これらの変更を行う前の、ＬＰＡＲに対する物理プロセッサの割り当てを表す表を示す。
【表４】
2009510572.tif 000006
【００３９】
表４は、仮想プロセッサ（１２１、１２３）を介して全体的に（部分＝１．０）専用ＬＰＡＲ（４０４）に割り当てられているプロセッサ（４１０、４１２）を示す。共有プロセッサ・パーティション（５０４、５０６、５０８）には、プールに割り当てられた物理プロセッサ（５２０、５３０、５３１）から、プールされた仮想プロセッサ（５１０〜５１８）を介して、処理リソースが割り当てられている。ＬＰＡＲ（５０４）には、仮想プロセッサ（５１０）を介して０．５物理プロセッサの処理容量が割り当てられている。ＬＰＡＲ（５０６）には、仮想プロセッサ（５１２、５１４）を介して０．７５物理プロセッサの処理容量が割り当てられている。ＬＰＡＲ（５０８）には、仮想プロセッサ（５１６、５１８）を介して１．０物理プロセッサの処理容量が割り当てられている。
【００４０】
表５は、故障プロセッサ（４１０）を置換プロセッサ（５２０）によって置換した後の、ＬＰＡＲに対する物理プロセッサの再割り当てを表す。
【表５】
2009510572.tif 000007
【００４１】
表５は、この時点でＬＰＡＲに割り当てられていない故障プロセッサ（４１０）、および、仮想プロセッサ（１２１）を介して専用ＬＰＡＲ（４０４）に全体的に（部分＝１．０）割り当てられている置換プロセッサ（５２０）を示す。プロセッサ（４１２）は、仮想プロセッサ１２３を介してＬＰＡＲ（４０４）に引き続き割り当てられている。ＬＰＡＲ（５０４、５０６）を終了させ、それらのエントリを表から削除する。ＬＰＡＲ（５０８）はそれ以前と同様に動作を継続し、プールされた仮想プロセッサ（５１６、５１８）を介して処理容量の１．０物理プロセッサが割り当てられている。
【００４２】
更に別の説明のため、図６は、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。図６の方法は図３の方法と同様であり、図６の方法は、パーティションに優先度を割り当て（３０４）、パーティションの故障プロセッサのチェックストップを検出し（３１２）、故障プロセッサの状態を検索して取得し（３１４）、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる（３１９）ことを含む。これらは全て、上述したような図３の方法と同様に動作する。また、図６の方法は、ハイパーバイザ（１８４）によって、故障プロセッサ（４１０）のパーティション（４０４）の優先度よりも低い優先度を有するパーティション（６０４）からの置換プロセッサ（６１６）によって故障プロセッサ置換すること（３１８）を含む。しかしながら、図６の方法においては、故障プロセッサ（４１０）は専用パーティション（４０４）に割り当てられ、故障プロセッサ（４１０）のパーティション（４０４）よりも低い優先度を有するパーティションは１つ以上の共有プロセッサ・パーティション（６０４）を含み、故障プロセッサ（４１０）を置換すること（３１８）は、故障プロセッサ（４１０）のパーティション（４０４）よりも低い優先度を有する共有プロセッサ・パーティション（６０４）の１つ以上をオーバーコミット（overcommitted）させて、パーティションを終了させることなく置換プロセッサを解放すること（６０２）を含む。図６の例においては、プロセッサ（４１０）は、仮想プロセッサ（１２１）を介して、優先度２を有する専用ＬＰＡＲ（４０４）に全体的かつ排他的に割り当てられた故障プロセッサである。
【００４３】
ＬＰＡＲ（６０４）は共有プロセッサＬＰＡＲであり、優先度４を有し、これは故障プロセッサ（４１０）のパーティション（４０４）の優先度（＝２）よりも低い。ＬＰＡＲ（６２５）は共有プロセッサＬＰＡＲであり、優先度１を有し、これは故障プロセッサ（４１０）のパーティション（４０４）の優先度（＝２）よりも高い。従って、ＬＰＡＲ（６０４）とＬＰＡＲ（６０６）との間では、ＬＰＡＲ（６０４）がオーバーコミットするように選択される。
【００４４】
ＬＰＡＲ（６０４）は共有プロセッサＬＰＡＲであり、プールされた仮想プロセッサ（６０６、６０８、６１０、６１２）を介して物理プロセッサ（６１６、６１８、６２０）からの処理容量を間接的に共有している。プールされた仮想プロセッサ（６０６、６０８、６１０、６１２）を介して、ＬＰＡＲ（６０４）には、３．０プロセッサの処理容量が割り当てられている。すなわち、仮想プロセッサ（６０６）を介して０．５プロセッサ、仮想プロセッサ（６０８）を介して０．５プロセッサ、仮想プロセッサ（６１０）を介して１．０プロセッサ、仮想プロセッサ（６１２）を介して１．０プロセッサが割り当てられている。プール（６３１）をサポートする３つのプロセッサ（６１６、６１８、６２０）のいずれでも置換プロセッサとして利用することができ、これによってＬＰＡＲ（６０４）については２つのみの物理プロセッサ（６１８、６２０）がプールをサポートし続けることになり、このプールは、その仮想プロセッサ（６０６、６０８、６１０、６１２）に、３．０物理プロセッサの処理容量をコミットする。
【００４５】
図６の方法においては、置換プロセッサを解放するためにパーティションを終了させることはない。代わりに、故障プロセッサ（４１０）を置換すること（３１８）は、故障プロセッサ（４１０）のパーティション（４０４）よりも低い優先度を有する共有プロセッサ・パーティション（６０４）の１つ以上をオーバーコミットさせる（６０２）ことによって実行される。置換プロセッサ（６１６）は、共有プロセッサ・パーティション（６０４）に処理容量を与える仮想プロセッサのプール（６３１）をサポートする１組のプロセッサ（６１６、６１８、６２０）の中から得られる。従って、共有プロセッサ・パーティション（６０４）がオーバーコミットして置換プロセッサを解放する。共有プロセッサ・パーティションをオーバーコミットさせるとは、このパーティションの仮想プロセッサが表す処理容量が、その容量を与えるために割り当てられた数の物理プロセッサよりも大きいことを意味する。共有プロセッサ・パーティションをオーバーコミットさせる場合、共有プロセッサ・パーティションに割り当てられる仮想プロセッサは、それらをサポートする物理プロセッサよりも多い。
【００４６】
共有プロセッサ・パーティションがオーバーコミットされている場合、データ処理のいずれかの特定の期間中、ハイパーバイザが共有プロセッサ・パーティションの仮想プロセッサをディスパッチする（dispatch）ことができる物理プロセッサ上の時間スライスの数は、あるべき数よりも少なく、ハイパーバイザは、各仮想プロセッサがディスパッチされる時間数をこれに比例して減らす。例えば、図６の例において、プール（６３１）に割り当てられた物理プロセッサの数が３から２に減った場合、ハイパーバイザは、仮想プロセッサ（６０６、６０８、６１０、６１２）に、０．３、０．３、０．７、および０．７物理プロセッサの処理容量をそれぞれ与えるので、合計処理容量は、実際にＬＰＡＲ（６０４）に割り当てられた３．０プロセッサの容量ではなく、２．０物理プロセッサのみとすることができる。従って、オーバーコミットさせる場合、共有プロセッサ・パーティション（６０４）は、パーティションに割り当てられた数の仮想プロセッサが示す性能に達しない。共有プロセッサ・パーティションの動作の性能は低下する。
【００４７】
更に別の説明のため、図７は、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。図７の方法は図３の方法と同様であり、図７の方法は、パーティションに優先度を割り当て（３０４）、パーティションの故障プロセッサのチェックストップを検出し（３１２）、故障プロセッサの状態を検索して取得し（３１４）、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる（３１９）ことを含む。これらは全て、上述したような図３の方法と同様に動作する。
【００４８】
また、図７の方法は、ハイパーバイザ（１８４）によって、故障プロセッサ（７２２）のパーティション（７０５、７３２）の優先度よりも低い優先度を有するパーティション（７０４）からの置換プロセッサ（７０８）によって故障プロセッサを置換すること（３１８）を含む。しかしながら、図７の方法においては、故障プロセッサ（７２２）は、仮想プロセッサ（７２２、７２４、７２６、７２８）のプール（７３１）に割り当てられ、仮想プロセッサのプールは１つ以上の共有プロセッサ・パーティション（７０５、７３２）をサポートし、最低優先度のパーティション（７０４）は専用パーティションであり、故障プロセッサ（７２２）を置換すること（３１８）は、最低優先度のパーティション（７４０）を終了させること（７０２）を含む。図７の例において、プロセッサ（７２２）は、仮想プロセッサ（７１２、７１４、７１６、７１８、７２０、７３０）のプール（７３１）に割り当てられている故障プロセッサである。専用ＬＰＡＲであるＬＰＡＲ（７０４）は、優先度（優先度＝１２）が、ＬＰＡＲ（７０５）（優先度＝４）よりも低く、ＬＰＡＲ（７３２）（優先度＝２）よりも低い。ＬＰＡＲ（７０４）には、仮想プロセッサ（１２１）を介してプロセッサ（７０８）の全容量が割り当てられている。この例では、プロセッサ（７０８）は最低優先度を有する専用ＬＰＡＲに割り当てられているので、プロセッサ（７０８）が置換プロセッサとして識別される。
【００４９】
上述のように、ＬＰＡＲ（７０４）は、図７の例において最低優先度のパーティションである。従って、最低優先度のパーティションを終了させることは、この例において、ＬＰＡＲ（７０４）を終了させることによって実行可能である。ＬＰＡＲ（７０４）を終了させること（７０２）は、ＬＰＡＲ（７０４）において動作しているプログラムを停止させ、ＬＰＡＲ（７０４）において動作しているオペレーティング・システムを停止させ、上述の表１および表２と同様の、ＬＰＡＲに対する物理プロセッサの割り当てを表す表から、ＬＰＡＲ（７０４）を除去することによって、実行可能である。表６に、ＬＰＡＲ（７０４）を除去する前の、図７の例におけるＬＰＡＲに対する物理プロセッサの割り当てを表す表を示す。
【表６】
2009510572.tif 000008
【００５０】
表６は、仮想プロセッサ（１２１、１２３）を介して専用ＬＰＡＲ（７０４）に全体的に割り当てられたプロセッサ（７０８、７１０）を示す。プロセッサ（７２２、７２４、７２６、７２８）は、プールされた仮想プロセッサ（７１２、７１４、７１６、７１８、７２０、７３０）を介して共有プロセッサＬＰＡＲ（７０５、７３２）に割り当てられている。表７は、最低優先度のパーティションすなわちＬＰＡＲ（７０４）を終了させた後の、ＬＰＡＲに対する物理プロセッサの再割り当てを表す。
【表７】
2009510572.tif 000009
【００５１】
表７は、プールされた仮想プロセッサ（７１２、７１４、７１６、７１８、７２０、７３０）を介して、共有プロセッサＬＰＡＲ（７０５、７３２）に、他の物理プロセッサ（７２４、７２６、７２８）と共に割り当てられた置換プロセッサ（７０８）を示す。故障プロセッサ（７２２）は、表７から全体的に削除され、終了したパーティション（７０４）に以前に割り当てられたプロセッサ（７１０）は、この時点では割り当てられていないものとして示す。
【００５２】
更に別の説明のため、図８は、本発明の実施形態に従ってロジカル・パーティションに対してプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。図８の方法は図３の方法と同様であり、図８の方法は、パーティションに優先度を割り当て（３０４）、パーティションの故障プロセッサのチェックストップを検出し（３１２）、故障プロセッサの状態を検索して取得し（３１４）、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる（３１９）ことを含む。これらは全て、上述したような図３の方法と同様に動作する。
【００５３】
また、図８の方法は、ハイパーバイザ（１８４）によって、故障プロセッサ（８２０）のパーティション（８０４、８０６）の優先度よりも低い優先度を有するパーティション（８０８、８２５）からの置換プロセッサ（８２２）によって故障プロセッサを置換すること（３１８）を含む。しかしながら、図８の方法においては、故障プロセッサ（８２０）は、仮想プロセッサ（８１０、８１２、８１４）のプール（８３１）に割り当てられている。仮想プロセッサのプールは、１つ以上の共有プロセッサ・パーティション（８０４、８０６）をサポートする。図８の例において、プール（８３１）がサポートする共有プロセッサ・パーティション（８０４、８０６）（優先度＝３、４）よりも優先度が低い（優先度＝９、１０）共有プロセッサ・パーティション（８０８、８２５）が利用可能であり、故障プロセッサ（８２０）を置換すること（３１８）は、プール（８３１）がサポートする共有プロセッサ・パーティション（８０４、８０６）よりも低い優先度を有する充分な数の共有プロセッサ・パーティション（８０８、８２５）を終了させて置換プロセッサを解放すること（８０２）を含む。
【００５４】
プール（８３１）を介して故障プロセッサ（８２０）が割り当てられた共有プロセッサ・パーティションよりも低い優先度を有する共有プロセッサ・パーティション（８０８、８２５）をサポートするために割り当てられたプロセッサ（８２２）が、置換プロセッサとして選択される。この例では、プール（８３３）を介して低い優先度のパーティション（８０８、８２５）をサポートするために割り当てられたプロセッサ（８２２、８２４）のいずれかを置換プロセッサとして選択することができる。この例では、ＬＰＡＲ（８０８、８２５）は、故障プロセッサ（８２０）の１つ以上の共有プロセッサ・パーティション（８０４、８０６）よりも低い優先度を有するＬＰＡＲであり、置換プロセッサ（８２２）はＬＰＡＲ（８０８、８２５）に割り当てられている。低い優先度のパーティション（８０８、８２５）の各々には、プール（８３３）から１．０プロセッサの処理容量が割り当てられている。故障プロセッサ（８０２）を置換するためには１．０プロセッサが必要である。従って、この例において、プール（８３１）がサポートする共有プロセッサ・パーティションよりも低い優先度を有する充分な数の共有プロセッサ・パーティションを終了させることは、２つの低い優先度のパーティション（８０８、８２５）のいずれかを終了させることによって実行可能である。共有プロセッサ・パーティションを終了させることは、パーティションにおいて動作しているプログラムを停止させ、パーティションにおいて動作しているオペレーティング・システムを停止させ、上述の表１および表２と同様の、プールされた仮想プロセッサに対する物理プロセッサの割り当てを表す表から、パーティションのエントリを除去することによって、実行可能である。表８に、共有プロセッサ・パーティションを除去する前の、プールされた仮想プロセッサを介した共有プロセッサ・パーティションに対する物理プロセッサの割り当てを表す表を示す。
【表８】
2009510572.tif 000010
【００５５】
表８は、プールされた仮想プロセッサ（８１０、８１２、８１４）を介して共有プロセッサＬＰＡＲ（８０４、８０６）に全体的に割り当てられた物理プロセッサ（８２０）を示す。表８によれば、物理プロセッサ（８２２、８２４）は、プールされた仮想プロセッサ（８１６、８１８、８２７、８２９）を介して共有プロセッサ・パーティション（８０８、８２５）に割り当てられている。表９は、最低優先度のパーティションすなわちＬＡＲ（８２５）を終了させた後の、共有プロセッサ・パーティションに対する物理プロセッサの割り当てを表す。
【表９】
2009510572.tif 000011
【００５６】
表９は、プールした仮想プロセッサ（８１０、８１２、８１４）を介して共有プロセッサＬＰＡＲ（８０４、８０６）に割り当てられた置換プロセッサ（８２２）を示す。
【００５７】
故障プロセッサ（８２０）は、表９から全体的に削除されている。終了した共有プロセッサ・パーティション（８２５）およびこれをサポートする仮想プロセッサ（８２７、８２９）は、表９から全体的に削除されている。残りのパーティションは全て、故障プロセッサを置換する前と全く同じように機能し続ける。パーティション（８０８）には、プールされた仮想プロセッサ（８１６、８１８）を介して１．０プロセッサが割り当てられ、１．０プロセッサが物理プロセッサ（８２４）として与えられる。同様に、プールされた仮想プロセッサ（８１０、８１２、８１４）を介して合計１．０プロセッサが割り当てられたパーティション（８０４、８０６）は、置換プロセッサ（８２２）による１．０物理プロセッサのサポートを有し続ける。図８の方法に従って故障プロセッサを置換することがシステム性能に及ぼす唯一の影響は、低い優先度のパーティション（８２５）が終了することである。
【００５８】
更に別の説明のため、図９は、本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。図９の方法は図３の方法と同様であり、図９の方法は、パーティションに優先度を割り当て（３０４）、パーティションの故障プロセッサのチェックストップを検出し（３１２）、故障プロセッサの状態を検索して取得し（３１４）、故障プロセッサの取得した状態を置換プロセッサの状態として割り当てる（３１９）ことを含む。これらは全て、上述したような図３の方法と同様に動作する。
【００５９】
また、図９の方法は、ハイパーバイザ（１８４）によって、１つ以上の低い優先度のパーティション（６０４）に以前に割り当てた置換プロセッサ（６１６）によって故障プロセッサ（４１０）を置換すること（３１８）を含む。
【００６０】
また、図９の方法は、ハイパーバイザ（１８４）によって、故障プロセッサ（４１０）のパーティション（８０４、８０６）の優先度よりも低い優先度を有するパーティション（８０８、８１０）からの置換プロセッサ（６１６）によって故障プロセッサを置換すること（３１８）を含む。しかしながら、図９の方法においては、故障プロセッサ（４１０）は、共有プロセッサ（８０４、８０６）をサポートする仮想プロセッサ（８２１、８２３）のプール（６３３）に割り当てられている。プール（６３３）がサポートする共有プロセッサ・パーティション（８０４、８０６）（優先度＝２）よりも優先度が低い（優先度＝４）共有プロセッサ・パーティション（８０８、８１０）が利用可能であり、故障プロセッサ（４１０）の置換（３１８）は、プール（６３３）がサポートする故障プロセッサ（４１０）のパーティション（８０４、８０６）よりも低い優先度を有する充分な数の共有プロセッサ・パーティションをオーバーコミットさせて、パーティションを終了させることなく置換プロセッサを解放すること（９０２）を含む。
【００６１】
ＬＰＡＲ（８０８、８１０）は共有プロセッサ・パーティションであり、優先度４を有し、これは故障プロセッサ（４１０）が割り当てられているプール（６３３）がサポートするパーティション（８０４、８０６）の優先度２よりも低い。ＬＰＡＲ（６２５）は共有プロセッサ・パーティションであり、優先度１を有し、これは故障プロセッサ（４１０）が割り当てられているプール（６３３）がサポートするパーティション（８０４、８０６）の優先度よりも高い。従って、ＬＰＡＲ（８０８、８１０）およびＬＰＡＲ（６２５）との間では、ＬＰＡＲ（８０８、８１０）がオーバーコミットするように選択され、ＬＰＡＲ（６２５）の動作は影響を受けないままである。
【００６２】
ＬＰＡＲ（８０８、８１０）は共有プロセッサ・パーティションであり、プールされた仮想プロセッサ（６０６、６０８、６１０、６１２）を介して物理プロセッサ（６１６、６１８、６２０、６２２）からの処理容量を間接的に共有している。プールされた仮想プロセッサ（６０６、６０８、６１０、６１２）を介して、ＬＰＡＲ（８０８、８１０）には、３．０プロセッサの処理容量が割り当てられている。すなわち、仮想プロセッサ（６０６）を介して０．５プロセッサ、仮想プロセッサ（６０８）を介して０．５プロセッサ、仮想プロセッサ（６１０）を介して１．０プロセッサ、仮想プロセッサ（６１２）を介して１．０プロセッサが割り当てられている。プール（６３１）をサポートする４つのプロセッサ（６１６、６１８、６２０、６２２）のいずれでも置換プロセッサとして利用することができ、これによってプール（６３１）については３つのみの物理プロセッサが仮想プロセッサ（６０６、６０８、６１０、６１２）をサポートし続けることになり、これらの仮想プロセッサに、３．０物理プロセッサの処理容量がコミットされる。
【００６３】
図９の方法においては、置換プロセッサを解放するためにパーティションを終了させることはない。代わりに、故障プロセッサ（４１０）を置換すること（３１８）は、故障プロセッサ（４１０）が割り当てられているプール（６３３）がサポートするパーティション（８０４、８０６）よりも低い優先度を有する共有プロセッサ・パーティション（８０８、８１０）の１つ以上をオーバーコミットさせる（９０２）ことによって実行される。置換プロセッサ（６１６）は、共有プロセッサ・パーティション（８０８、８１０）に処理容量を与える仮想プロセッサのプール（６３１）をサポートする１組のプロセッサ（６１６、６１８、６２０、６２２）の中から得られる。従って、共有プロセッサ・パーティション（８０８、８１０）がオーバーコミットして置換プロセッサを解放する。共有プロセッサ・パーティションをオーバーコミットさせるとは、パーティションの仮想プロセッサが表す処理容量が、その容量を与えるために割り当てられた物理プロセッサの数よりも大きいことを意味する。共有プロセッサ・パーティションをオーバーコミットさせる場合、共有プロセッサ・パーティションに割り当てられる仮想プロセッサは、それらをサポートする物理プロセッサよりも多い。
【００６４】
共有プロセッサ・パーティションがオーバーコミットされている場合、データ処理のいずれかの特定の期間中、ハイパーバイザが共有プロセッサ・パーティションの仮想プロセッサをディスパッチすることができる物理プロセッサ上の時間スライスの数は、あるべき数よりも少なく、ハイパーバイザは、各仮想プロセッサがディスパッチされる時間数をこれに比例して減らす。従って、オーバーコミットさせる場合、共有プロセッサ・パーティションは、パーティションに割り当てられた数の仮想プロセッサが示す性能に達しない。共有プロセッサ・パーティションの動作の性能は低下する。
【００６５】
例えば、図９の例において、プール（６３１）に割り当てられた物理プロセッサの数が４から３に減った場合、ＬＰＡＲ（６２５）はオーバーコミットさせないので、ハイパーバイザ（１８４）は、ＬＰＡＲ（８０８、８１０）の動作をサポートするために２物理プロセッサの処理容量のみを有する。パーティション（８０８、８１０）をオーバーコミットさせるようにハイパーバイザ（１８４）をプログラムするには、多数の方法がある。
【００６６】
・ハイパーバイザ（１８４）は、仮想プロセッサ（６０６、６０８、６１０、６１２）を介して、０．３、０．３、０．７、および０．７物理プロセッサの処理容量をそれぞれ与えて、合計処理容量を、実際に仮想プロセッサ（６０６、６０８、６１０、６１２）を介してパーティション（８０８、８１０）にコミットされた３．０プロセッサの容量ではなく、２．０物理プロセッサのみとすることによって、双方のパーティション（８０８、８１０）をオーバーコミットさせることができる。  
【００６７】
・ハイパーバイザ（１８４）は、仮想プロセッサ（６１０、６１２）を介して、０．５および０．５物理プロセッサの処理容量をそれぞれ与えて、合計処理容量を、実際に仮想プロセッサ（６１０、６１２）を介してパーティション（８１０）にコミットされた２．０プロセッサの容量ではなく、１．０物理プロセッサのみとすることによって、１つのみのパーティション（８１０）をオーバーコミットさせると共にパーティション（８０８）の動作は影響を受けないようにすることができる。
【００６８】
・ハイパーバイザ（１８４）は、仮想プロセッサ（６１０）の動作を終了させ、仮想プロセッサ（６１２）を介して１．０物理プロセッサの処理容量を与えて、合計処理容量を、実際に仮想プロセッサ（６１０、６１２）を介してパーティション（８１０）にコミットされた２．０プロセッサの容量ではなく、１．０物理プロセッサのみとすることによって、１つのみのパーティション（８１０）をオーバーコミットさせると共にパーティション（８０８）の動作は影響を受けないようにすることができる。
【００６９】
当業者には、かかるパーティションをオーバーコミットさせる他の方法も想起されよう。かかる全ての方法は本発明の範囲内に該当する。
【００７０】
ロジカル・パーティションにプロセッサを割り当てるための充分に機能するコンピュータ・システムの文脈において、本発明の例示的な実施形態について概ね説明した。しかしながら、いずれかの適切なデータ処理システムと共に用いられる信号記録媒体上に配されたコンピュータ・プログラムにおいても本発明を具現化可能であることは、当業者には認められよう。かかる信号記録媒体は、機械読み取り可能情報のための伝送媒体または記録可能媒体とすることができ、磁気媒体、光媒体、または他の適切な媒体を含む。記録可能媒体の例には、ハード・ドライブにおける磁気ディスクまたはディスケット、光ドライブのためのコンパクト・ディスク、磁気テープ、および当業者に想起されるその他のものが含まれる。伝送媒体の例には、音声通信およびデジタル・データ通信ネットワークのための電話ネットワークが含まれ、例えば、EthernetTMならびにインターネット・プロトコルおよびワールド・ワイド・ウェブによって通信するネットワークが含まれる。適切なプログラミング手段を有するいずれのコンピュータ・システムでも、プログラムに具現化された本発明の方法のステップを実行可能であることは、当業者には容易に認められよう。本明細書に記載した例示的な実施形態のいくつかは、コンピュータ・ハードウェア上にインストールして実行するソフトウェア向けであるが、ファームウェアまたはハードウェアとして実施される代替的な実施形態も本発明の範囲内に該当することは、当業者には容易に認められよう。
【００７１】
本発明の真の範囲から逸脱することなく、本発明の様々な実施形態に変形および変更が可能であることは、前述の記載から理解されよう。本明細書における記載は、例示の目的のためのみであり、限定の意味に解釈されるものではない。本発明の範囲は、特許請求の範囲の文言によってのみ限定される。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てる際に有用な例示的なコンピュータを含む自動化コンピューティング機械のブロック図を示す。
【図２】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための例示的なシステムの機能ブロック図を示す。
【図３】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための例示的な方法を示すフロー・チャートを示す。
【図４】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。
【図５】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。
【図６】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。
【図７】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。
【図８】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。
【図９】本発明の実施形態に従ってロジカル・パーティションにプロセッサを割り当てるための更に別の例示的な方法を示すフロー・チャートである。
【図１】
2009510572.tif 000012
【図２】
2009510572.tif 000013
【図３】
2009510572.tif 000014
【図４】
2009510572.tif 000015
【図５】
2009510572.tif 000016
【図６】
2009510572.tif 000017
【図７】
2009510572.tif 000018
【図８】
2009510572.tif 000019
【図９】
2009510572.tif 000020
【国際調査報告】
2009510572.tif 000021
2009510572.tif 000022
2009510572.tif 000023