(57)【要約】【課題】自動で論理サーバに物理ＣＰＵ、メモリを割当てるとき、メモリのレイテンシによる性能低下が発生しないようにする。【解決手段】物理ＣＰＵとメモリの配置を認識することで、自動で論理サーバに割当てる物理ＣＰＵをメモリレイテンシの緩和を考慮した割当てを行う。また、論理サーバと物理ＣＰＵをグループ分けし、論理サーバに割当てる物理ＣＰＵを同じグループのもの、メモリはその物理ＣＰＵが属するメモリコントローラ下のものにすることで、メモリのレイテンシの緩和を考慮した物理ＣＰＵの割り当てを行う。【選択図】図１
2010122805.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の物理ＣＰＵを搭載しメモリコントローラを備える複数のＣＰＵモジュールと、
各ＣＰＵモジュールのメモリコントローラにそれぞれ接続された複数の物理メモリと、
複数の論理サーバに物理ＣＰＵと物理メモリのブロックをそれぞれ割り当てるハイパバイザとを備える仮想サーバシステムにおいて、
論理サーバと、その論理ＣＰＵモード、必要な論理ＣＰＵ数、必要な論理メモリサイズが関連付けて登録されている論理サーバ構成管理テーブルと、
物理ＣＰＵと、そのＣＰＵモード、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けて記憶したＣＰＵ管理テーブルと、
前記物理メモリに対して、単位容量ごとに、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けて記憶したメモリ管理テーブルとを有し、
前記ハイパバイザは、論理サーバがアクティベイトされたとき、前記論理サーバ構成管理テーブルを参照して論理ＣＰＵモードと論理ＣＰＵ数と論理メモリサイズの情報を取得し、次に前記ＣＰＵ管理テーブル及びメモリ管理テーブルを参照して、同じＣＰＵモジュールから必要数の物理ＣＰＵを割り当てると共に、割り当てた物理ＣＰＵのメモリコントローラに接続された物理メモリから必要サイズのメモリのブロックを割り当てることを特徴とする仮想サーバシステム。
【請求項２】
請求項１記載の仮想サーバシステムにおいて、前記論理サーバ構成管理テーブルは論理サーバのグループ付け情報を含み、前記ハイパバイザは、同じグループに属している複数の論理サーバに対して同じ物理ＣＰＵを割り当てることを特徴とする仮想サーバシステム。
【請求項３】
請求項２記載の仮想サーバシステムにおいて、グループ付けされた複数の論理サーバのうちの１つがディアクティベイトされた後、再びアクティベイトされたとき、前記ハイパバイザは、当該論理サーバに対して従前と同じ物理ＣＰＵを割り当てることを特徴とする仮想サーバシステム。
【請求項４】
それぞれが複数の物理ＣＰＵを搭載しメモリコントローラを備える複数のＣＰＵモジュール、各ＣＰＵモジュールのメモリコントローラにそれぞれ接続された複数の物理メモリ、及び、論理サーバとその論理ＣＰＵモード、必要な論理ＣＰＵ数、必要な論理メモリサイズが関連付けて登録されている論理サーバ構成管理テーブルを有するサーバシステムに対して、ハイパバイザが、各論理サーバに物理ＣＰＵと物理メモリのブロックを割り当てる方法において、
前記ハイパバイザは、
物理ＣＰＵとそのＣＰＵモード、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けるＣＰＵ管理テーブル、及び、物理メモリに対して、単位容量ごとに、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けるメモリ管理テーブルを初期化する工程、
アクティベイトされた論理サーバに必要な論理ＣＰＵと論理メモリサイズの情報を前記論理サーバ構成管理テーブルから取得する工程、
前記ＣＰＵ管理テーブル及びメモリ管理テーブルを参照して、前記論理サーバに、同じＣＰＵモジュールに搭載された物理ＣＰＵから必要数のＣＰＵを割り当てると共に、割り当てた物理ＣＰＵのメモリコントローラに接続された物理メモリから必要サイズのメモリブロックを割り当てる方法を探索する工程、
前記探索が成功したとき、前記ＣＰＵ管理テーブル及びメモリ管理テーブルを更新する工程、
を実行することを特徴とする割り当て方法。
【請求項５】
請求項４記載の割り当て方法において、前記論理サーバ構成管理テーブルが論理サーバのグループ付け情報を含むとき、前記ハイパバイザは、同じグループに属している複数の論理サーバに対して同じ物理ＣＰＵを割り当てることを特徴とする割り当て方法。
【請求項６】
請求項５記載の割り当て方法において、グループ付けされた複数の論理サーバのうちの１つがディアクティベイトされた後、再びアクティベイトされたとき、前記ハイパバイザは、当該論理サーバに対して従前と同じ物理ＣＰＵを割り当てることを特徴とする割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想サーバシステムに関し、１台の物理計算機上に複数台動作させる論理計算機への計算機資源の自動割当て方式に関する。
【背景技術】
【０００２】
仮想計算機システムは、ハイパバイザにより物理計算機を複数の論理区画（ＬＰＡＲ：Logical Partition）に分割し、各ＬＰＡＲに対して計算機資源（ＣＰＵ、主記憶、Ｉ／Ｏ）を割当て、各ＬＰＡＲ上でそれぞれＯＳを動作させるものである。各ＬＰＡＲ上で動作するＯＳのことを、ハイパバイザという制御プログラムの上で動作する制御プログラムという特殊な動作をすることを表現するためゲストＯＳと呼ぶ。
【０００３】
ゲストＯＳは論理的には一般のＯＳとまったく同様に動作するため、割当てた主記憶もゲストＯＳには通常のメモリのように０番地から連続したアドレスを提供する必要がある。そのため、主記憶のアドレスはゲスト物理アドレスとホスト物理アドレスに区別され、ＬＰＡＲ上ではゲスト物理アドレスからホスト物理アドレスへの変換が行われることで、ゲストＯＳは通常に動作する。
【０００４】
【特許文献１】特開２００６−２４４７９号公報
【特許文献２】特開２００８−７７６５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術では、アクティベイトする論理サーバに割当てる物理ＣＰＵ、及びメモリブロックは他の論理サーバが使用していないものを順番に割当てる制御をしているが、メモリレイテンシを考慮して物理ＣＰＵ及びメモリブロックを割当てる制御をしていなかった。このため、メモリレイテンシの影響によるＬＰＡＲの性能劣化が問題となった。これを回避するには、ユーザが、物理ＣＰＵとメモリブロックの物理的配置を意識して、ＬＰＡＲに割当てる物理ＣＰＵを決めるしかなかった。ただし、ＬＰＡＲが物理ＣＰＵを占有で使用する場合に限った方法で、ＬＰＡＲが物理ＣＰＵを時分割共有する場合はメモリレイテンシの影響を回避する方法がなかった。
【課題を解決するための手段】
【０００６】
本発明では、ハイパバイザがＣＰＵとメモリブロックの物理的配置の情報を持ち、ＣＰＵ及びメモリブロックをメモリレイテンシの緩和を考慮してＬＰＡＲに割り当てを行う。また、ＬＰＡＲが物理ＣＰＵを時分割共有で使用する場合、ＬＰＡＲと物理ＣＰＵにグループを付け、ＬＰＡＲのグループと同じグループの物理ＣＰＵを割り当てることでメモリレイテンシの緩和を考慮した物理ＣＰＵの割り当てを行う。
【０００７】
すなわち、本発明の仮想サーバシステムは、それぞれが複数の物理ＣＰＵを搭載しメモリコントローラを備える複数のＣＰＵモジュールと、各ＣＰＵモジュールのメモリコントローラにそれぞれ接続された複数の物理メモリと、複数の論理サーバに物理ＣＰＵと物理メモリのブロックをそれぞれ割り当てるハイパバイザとを備える仮想サーバシステムにおいて、論理サーバと、その論理ＣＰＵモード、必要な論理ＣＰＵ数、必要な論理メモリサイズが関連付けて登録されている論理サーバ構成管理テーブルと、物理ＣＰＵと、そのＣＰＵモード、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けて記憶したＣＰＵ管理テーブルと、物理メモリに対して、単位容量ごとに、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けて記憶したメモリ管理テーブルとを有し、ハイパバイザは、論理サーバがアクティベイトされたとき、論理サーバ構成管理テーブルを参照して論理ＣＰＵモードと論理ＣＰＵ数と論理メモリサイズの情報を取得し、次にＣＰＵ管理テーブル及びメモリ管理テーブルを参照して、同じＣＰＵモジュールから必要数の物理ＣＰＵを割り当てると共に、割り当てた物理ＣＰＵのメモリコントローラに接続された物理メモリから必要サイズのメモリのブロックを割り当てる。
【０００８】
論理サーバ構成管理テーブルが論理サーバのグループ付け情報を含むとき、ハイパバイザは、同じグループに属している複数の論理サーバに対して同じ物理ＣＰＵを割り当てる。そして、グループ付けされた複数の論理サーバのうちの１つがディアクティベイトされた後、再びアクティベイトされたとき、ハイパバイザは、当該論理サーバに対して従前と同じ物理ＣＰＵを割り当てる。
【０００９】
また、本発明は、それぞれが複数の物理ＣＰＵを搭載しメモリコントローラを備える複数のＣＰＵモジュール、各ＣＰＵモジュールのメモリコントローラにそれぞれ接続された複数の物理メモリ、及び、論理サーバとその論理ＣＰＵモード、必要な論理ＣＰＵ数、必要な論理メモリサイズが関連付けて登録されている論理サーバ構成管理テーブルを有するサーバシステムに対して、ハイパバイザが、各論理サーバに物理ＣＰＵと物理メモリのブロックを割り当てる方法において、ハイパバイザは、物理ＣＰＵとそのＣＰＵモード、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けるＣＰＵ管理テーブル、及び、物理メモリに対して、単位容量ごとに、使用している論理サーバ、接続されているメモリコントローラの情報を関連付けるメモリ管理テーブルを初期化する工程、アクティベイトされた論理サーバに必要な論理ＣＰＵと論理メモリサイズの情報を論理サーバ構成管理テーブルから取得する工程、ＣＰＵ管理テーブル及びメモリ管理テーブルを参照して、論理サーバに、同じＣＰＵモジュールに搭載された物理ＣＰＵから必要数のＣＰＵを割り当てると共に、割り当てた物理ＣＰＵのメモリコントローラに接続された物理メモリから必要サイズのメモリブロックを割り当てる方法を探索する工程、探索が成功したとき、ＣＰＵ管理テーブル及びメモリ管理テーブルを更新する工程、を実行する。
【発明の効果】
【００１０】
本発明により、メモリレイテンシを考慮したＬＰＡＲへの物理ＣＰＵとメモリブロックの割り当てが自動的に行われる。
【００１１】
また、ＬＰＡＲと物理ＣＰＵにグループを付けることで、ＬＰＡＲの論理ＣＰＵがどの物理ＣＰＵを使用しているか明確になり、物理ＣＰＵモジュールの稼動時交換など物理サーバの保守に役立つメリットがある。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例を図面に基づいて説明する。
図１は、本発明におけるサーバモジュールの基本的な構成例を示す説明図である。サーバモジュール１００は４つの物理ＣＰＵ１１０〜１１３、１１４〜１１７を持つＣＰＵモジュールを２つ（１０７，１０８）搭載し、それぞれのＣＰＵモジュールはメモリコントローラ１１８，１１９を備え、それぞれのメモリコントローラは３枚のＤＩＭＭ（２ＧＢ）１２０〜１２２，１２３〜１２５を実装した３ウェイインタリーブ構成となっている。同じメモリコントローラに接続される物理ＣＰＵ１１０〜１１３とＤＩＭＭ１２０〜１２２、又は物理ＣＰＵ１１４〜１１７とＤＩＭＭ１２３〜１２５の間の配線距離は４５ｍｍである。異なるメモリコントローラに接続される物理ＣＰＵ１１０〜１１３とＤＩＭＭ１２３〜１２５、物理ＣＰＵ１１４〜１１７とＤＩＭＭ１２０〜１２２の間の配線距離は４５０ｍｍである。
【００１３】
ハイパバイザ１０１は物理的な１台のサーバを論理的に複数のサーバに見せる仮想化機構である。ハイパバイザはメモリブロック１２６，１２７を占有で使用して動作している。ハイパバイザ上には４台の論理計算機（ＬＰＡＲ）１０３〜１０６があり、アクティベイトはＬＰＡＲ１（１０３）、ＬＰＡＲ２（１０４）、ＬＰＡＲ３（１０５）、ＬＰＡＲ４（１０６）の順に行われている。ＬＰＡＲ１（１０３）は、論理メモリ２ＧＢと物理ＣＰＵを時分割共有する２つの共有論理ＣＰＵを必要とし、ＬＰＡＲグループ＃１（１０２）に属している。ＬＰＡＲ２（１０４）は論理メモリ１ＧＢと物理ＣＰＵを時分割共有する２つの共有論理ＣＰＵを必要とし、ＬＰＡＲグループ＃１（１０２）に属している。ＬＰＡＲ３（１０５）は、論理メモリ２ＧＢと物理ＣＰＵを時分割共有する２つの共有論理ＣＰＵを必要とし、ＬＰＡＲグループには属していない。ＬＰＡＲ４（１０６）は、論理メモリ２ＧＢと物理ＣＰＵを占有する２つの占有論理ＣＰＵを必要とする。
【００１４】
ＬＰＡＲ１（１０３）をアクティベイトすると、ハイパバイザはＬＰＡＲ１（１０３）がＬＰＡＲグループ＃１（１０２）に属しているＬＰＡＲであると認識して、ＣＰＵグループ＃１の２つの物理ＣＰＵ１１０，１１１と２ＧＢのメモリブロック１２８を割当てる。ＬＰＡＲ２（１０４）をアクティベイトすると、ＬＰＡＲ１（１０３）と同様にハイパバイザはＬＰＡＲ２（１０４）がＬＰＡＲグループ＃１（１０２）に属しているＬＰＡＲであると認識して、ＣＰＵグループ＃１の２つの物理ＣＰＵ１１０，１１１と１ＧＢのメモリブロック１２９，１３０を割当てる。ＬＰＡＲ３（１０５）をアクティベイトすると、ハイパバイザはＬＰＡＲグループに属さないＬＰＡＲであるため、未使用の物理ＣＰＵと未使用のメモリブロックを調べる。この結果、ＬＰＡＲ３（１０５）には２つの物理ＣＰＵ１１４，１１５と２ＧＢのメモリブロック１３１を割当てる。ＬＰＡＲ４（１０６）をアクティベイトすると、ハイパバイザは物理ＣＰＵを占有で使用する論理ＣＰＵを持つＬＰＡＲであると認識し、未使用の物理ＣＰＵと未使用のメモリブロックを調べる。この結果、ＬＰＡＲ４（１０６）には２つの物理ＣＰＵ１１６，１１７と２ＧＢのメモリブロック１３２を割当てる。
【００１５】
図２は、図１に示す４つのＬＰＡＲ１０３〜１０６のＬＰＡＲ構成管理テーブル２００である。このＬＰＡＲ構成管理テーブルは、各ＬＰＡＲの論理ＣＰＵモード２０１と、論理ＣＰＵ数（２０２）と、論理メモリサイズ（２０３）と、ＬＰＡＲグループ＃（２０４）で構成される。このＬＰＡＲ構成管理テーブルの情報は、ユーザから入力される。ハイパバイザ１０１はＬＰＡＲをアクティベイトするとき、各ＬＰＡＲのＬＰＡＲ構成管理テーブルの情報を使用して必要なＣＰＵとメモリブロックを割当てる。
【００１６】
図３は、図１に示す物理ＣＰＵ１１０〜１１７のＣＰＵ管理テーブル３００である。このＣＰＵ管理テーブルは、ハイパバイザ１０１によりＣＰＵごとに管理される。ＣＰＵ管理テーブルは、物理ＣＰＵごとにＣＰＵモード３０１と、使用ＬＰＡＲ＃（３０２）と、ＣＰＵグループ＃（３０３）と、ＭＣ＃（３０４）で構成される。ハイパバイザ１０１によって、ＣＰＵモード３０１は時分割共有モード、使用ＬＰＡＲ＃（３０２）は０、ＣＰＵグループ＃（３０３）は０で初期化される。
【００１７】
ＭＣ＃（３０４）は、ハイパバイザにより初期化され、各物理ＣＰＵが搭載されるＣＰＵモジュールに搭載されるメモリコントローラの番号が与えられる。ＭＣ＃（３０４）は、詳細は後述するが、メモリレイテンシの緩和を考慮した物理ＣＰＵの割り当てを行うために用いられる。また、ＭＣ♯（３０４）は、ハイパバイザにより初期化された後は更新されない。ＣＰＵグループ＃（３０３）の情報はユーザから入力される。ＬＰＡＲをアクティベイトすると、ＣＰＵモード３０１と使用ＬＰＡＲ＃（３０２）とが更新される。また、ＬＰＡＲをディアクティベイトすると初期状態に戻る。
【００１８】
図４は、図１に示す物理メモリ１２０〜１２５のＬＰＡＲへの割り当てを管理するために、ハイパバイザが持つメモリ管理テーブル４００である。メモリ管理テーブルは、ＬＰＡＲに物理メモリ１２０〜１２５を２５６ＭＢ単位で割り当てるために、ハイパバイザ１０１により物理メモリ１２０〜１２５を２５６ＭＢずつのエントリ４０１に分けて管理される。メモリ管理テーブルは、２５６ＭＢのエントリごとに、ＬＰＡＲ＃（４０２）と、ホスト物理アドレス４０３と、サイズ４０４と、ゲスト物理アドレス４０５と、ベースアドレス４０６と、ＭＣ＃（４０７）から構成される。ＬＰＡＲ＃（４０２）及びゲスト物理アドレス４０５は「０」で、ホスト物理アドレス４０３及びベースアドレス４０６は物理メモリ１２０〜１２５のアドレスで、ハイパバイザ１０１によって初期化される。
【００１９】
ＭＣ＃（４０７）は、ハイパバイザにより初期化され、各物理メモリが接続されるメモリコントローラの番号が与えられる。ＭＣ＃（４０７）は、詳細は後述するが、メモリレイテンシの緩和を考慮した物理メモリの割り当てを行うために用いられる。
【００２０】
ＬＰＡＲをアクティベイトすると、ＬＰＡＲ＃（４０２）と、ゲスト物理アドレス４０５と、ベースアドレス４０６とが更新される。また、ＬＰＡＲをディアクティベイトすると、初期状態に戻る。
【００２１】
ＬＰＡＲ構成管理テーブル２００、ＣＰＵ管理テーブル３００及びメモリ管理テーブル４００は、ハイパバイザが占有しているメモリブロック１２６，１２７の中に保持され、ハイパバイザによって適宜参照される。
【００２２】
図５は、アクティベイトするＬＰＡＲの論理ＣＰＵモードが占有の場合、ハイパバイザがＬＰＡＲに割当てる物理ＣＰＵと物理メモリを決定するフローチャートである。この決定では、ＣＰＵ管理テーブル３００及びメモリ管理テーブル４００を使用して、メモリレイテンシが緩和されるようにする。
【００２３】
ＬＰＡＲをアクティベイトすると、他のＬＰＡＲで未使用の物理ＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）以上あるか調べるため、ＣＰＵ管理テーブル３００の使用ＬＰＡＲ＃（３０２）の値が０であり、ＣＰＵグループ＃（３０３）が０のテーブルの数と該ＬＰＡＲの論理ＣＰＵ数（２０２）を比較する（Ｓ５００）。
【００２４】
未使用の物理ＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）より足りない場合は、物理ＣＰＵが割当てられないと判断しＬＰＡＲのアクティベイトエラー（Ｓ５０７）とする。
【００２５】
未使用の物理ＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）以上ある場合は、次に同じメモリコントローラで未使用の物理ＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）以上あるか調べる。このため、ＣＰＵ管理テーブル３００のＭＣ＃（３０４）が同じで、使用ＬＰＡＲ＃（３０２）の値が０の数と該ＬＰＡＲの論理ＣＰＵ数（２０２）を比較する（Ｓ５０１）。
【００２６】
未使用の物理ＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）以上ある場合は、未使用メモリブロックが該ＬＰＡＲの論理メモリサイズ（２０３）以上あるか調べる。このため、メモリ管理テーブル４００のＭＣ＃（４０７）がＣＰＵ管理テーブル３００のＭＣ＃（３０４）と同じで、メモリ管理テーブル４００のＬＰＡＲ＃（４０２）が０のメモリブロックサイズを求める（Ｓ５０２）。未使用メモリブロックサイズが論理メモリサイズに足りない場合は、メモリブロックが割当てられないと判断しＬＰＡＲのアクティベイトエラー（Ｓ５０７）とする。
【００２７】
未使用メモリブロックサイズが論理メモリサイズ以上である場合、ＬＰＡＲにメモリブロックが割当てられるため、ＣＰＵ管理テーブル３００とメモリ管理テーブル４００を、該ＬＰＡＲに割当てた状態に変更する。まず、該ＬＰＡＲに割り当て可能と判断した物理ＣＰＵに対応するＣＰＵ管理テーブル３００のＣＰＵモード３０１を占有モードにする（Ｓ５０４）。次に、ＣＰＵ管理テーブル３００の使用ＬＰＡＲ＃（３０２）を該ＬＰＡＲ＃にする（Ｓ５０５）。最後に、メモリ管理テーブル４００の未使用メモリブロックのＬＰＡＲ＃（４０２）を該ＬＰＡＲ＃にする（Ｓ５０６）。
【００２８】
このように、ＬＰＡＲに割当てる物理ＣＰＵ及び物理メモリが、ＣＰＵ管理テーブル３００のＭＣ＃（３０４）及びメモリ管理テーブル４００のＭＣ＃（４０７）と一致するものとなり、割り当てられた物理ＣＰＵと物理メモリが、ＣＰＵモジュール間を跨がずに同じＣＰＵモジュール内の物を使用することになる。その結果、本実施例によれば、メモリコントローラからの配線距離が近い物理ＣＰＵと物理メモリとが割り当てられるので、ＣＰＵモジュール間を跨ぐ割り当てのような物理ＣＰＵと物理メモリとの配線距離の離れが生じず、メモリレイテンシが考慮される。
【００２９】
図６は、アクティベイトするＬＰＡＲの論理ＣＰＵモードが時分割共有の場合に、ハイパバイザが、ＬＰＡＲに割当てる物理ＣＰＵと物理メモリを決定するフローチャートである。この決定においても、ＣＰＵ管理テーブル３００及びメモリ管理テーブル４００を使用して、メモリレイテンシが緩和されるようにする。
【００３０】
ＬＰＡＲをアクティベイトすると、該ＬＰＡＲのＬＰＡＲグループ＃（２０４）の値が０であるかを調べる（Ｓ６００）。該ＬＰＡＲのグループ＃が０でない場合は、該ＬＰＡＲのＬＰＡＲグループ＃（２０４）と同じグループ＃がＣＰＵ管理テーブル３００のＣＰＵグループ＃（３０３）にあるか調べる（Ｓ６０１）。同じグループ＃がある場合は、次にメモリ管理テーブル４００のＭＣ＃（４０７）が該グループ＃を持つＣＰＵ管理テーブル３００のＭＣ＃（３０４）と同じで、メモリ管理テーブル４００のＬＰＡＲ＃（４０２）が０のメモリブロックサイズを求める（Ｓ６０２）。該メモリブロックサイズが該ＬＰＡＲの論理メモリサイズ（２０３）に足りなければ（Ｓ６０３）、メモリブロックが割当てられないと判断し、ＬＰＡＲのアクティベイトエラーとする（Ｓ６０７）。
【００３１】
該メモリブロックサイズが該ＬＰＡＲの論理メモリサイズ（２０３）以上あれば（Ｓ６０３）、該ＬＰＡＲにメモリブロックが割当てられるため、ＣＰＵ管理テーブル３００とメモリ管理テーブル４００を該ＬＰＡＲに割当てた状態に変更する。まず、該ＬＰＡＲに割り当て可能と判断した物理ＣＰＵに対応する使用ＬＰＡＲ＃（３０２）に該ＬＰＡＲ＃を追加する（Ｓ６０４）。最後に、メモリ管理テーブル４００の未使用メモリブロックのＬＰＡＲ＃（４０２）を該ＬＰＡＲ＃にする（Ｓ６０５）。
【００３２】
該ＬＰＡＲのＬＰＡＲグループ＃（２０４）の値が０であるかを調べた結果（Ｓ６００）、該ＬＰＡＲのＬＰＡＲグループ＃が０の場合は、同じメモリコントローラで未使用の物理ＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）以上あるか調べる。このため、ＣＰＵ管理テーブル３００のＭＣ＃（３０４）が同じで、使用ＬＰＡＲ＃（３０２）の値が０の数と該ＬＰＡＲの論理ＣＰＵ数（２０２）を比較する（Ｓ６０６）。
【００３３】
未使用のＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）以上ある場合は、次にメモリ管理テーブル４００のＭＣ＃（４０７）が該グループ＃を持つＣＰＵ管理テーブル３００のＭＣ＃（３０４）と同じでメモリ管理テーブル４００のＬＰＡＲ＃（４０２）が０のメモリブロックサイズを求める（Ｓ６０２）。該メモリブロックサイズが該ＬＰＡＲの論理メモリサイズ（２０３）に足りなければ（Ｓ６０３）、メモリブロックが割当てられないと判断しＬＰＡＲのアクティベイトエラー（Ｓ６０７）とする。
【００３４】
該メモリブロックサイズが該ＬＰＡＲの論理メモリサイズ（２０３）以上あれば（Ｓ６０３）、該ＬＰＡＲにメモリブロックが割当てられるため、ＣＰＵ管理テーブル３００とメモリ管理テーブル４００を該ＬＰＡＲに割当てた状態に変更する。まず、該ＬＰＡＲに割り当て可能と判断した物理ＣＰＵに対応する使用ＬＰＡＲ＃（３０２）に該ＬＰＡＲ＃を追加する（Ｓ６０４）。最後に、メモリ管理テーブル４００の未使用メモリブロックのＬＰＡＲ＃（４０２）を該ＬＰＡＲ＃にする（Ｓ６０５）。
【００３５】
このように、ＬＰＡＲに割当てる物理ＣＰＵ及び物理メモリが、ＣＰＵ管理テーブル３００のＭＣ＃（３０４）及びメモリ管理テーブル４００のＭＣ＃（４０７）と一致するものとなり、割り当てられた物理ＣＰＵと物理メモリが、ＣＰＵモジュール間を跨がずに同じＣＰＵモジュール内の物を使用することになる。その結果、本実施例によれば、メモリコントローラからの配線距離が近い物理ＣＰＵと物理メモリとが割り当てられるので、ＣＰＵモジュール間を跨ぐ割り当てのような物理ＣＰＵと物理メモリとの配線距離の離れが生じず、メモリレイテンシが考慮される。
【００３６】
ＣＰＵ管理テーブル３００のＭＣ＃（３０４）が同じで使用ＬＰＡＲ＃（３０２）の値が０の数と該ＬＰＡＲの論理ＣＰＵ数（２０２）を比較した結果（Ｓ６０６）、未使用の物理ＣＰＵが該ＬＰＡＲの論理ＣＰＵ数（２０２）に足りない場合は、物理ＣＰＵが割当てられないためＬＰＡＲのアクティベイトエラー（Ｓ６０７）とする。
【００３７】
図７は、図１に示す４つのＬＰＡＲ１０３〜１０６をアクティベイトした後のＣＰＵ管理テーブル７００の例である。また、図８は、図１に示す４つのＬＰＡＲ１０３〜１０６をアクティベイトした後のメモリ管理テーブル８００の例である。一つのＬＰＡＲには０から連続したゲスト物理アドレスが割り当てられ、ゲスト物理アドレスにベースアドレスを加算したものがホスト物理アドレスとなる。一つのＬＰＡＲに割り当てられた物理ＣＰＵ及び物理メモリは同じＭＣ＃を有することが見て取れる。
【産業上の利用可能性】
【００３８】
本発明では、仮想計算機システムの各ＬＰＡＲの物理ＣＰＵのメモリレイテンシを考慮した割り当てが可能となり、性能を要求される仮想計算機システムの構築においてメモリレイテンシによる性能低下を意識しない仮想計算機システムの構築業務に適用することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明におけるサーバモジュールの基本的な構成例を示す説明図。
【図２】図１に示すＬＰＡＲのＬＰＡＲ構成管理テーブルの図。
【図３】図１に示すＣＰＵのＣＰＵ管理テーブルの図（ＬＰＡＲアクティベイト前）。
【図４】図１に示す物理メモリのメモリ管理テーブルの図（ＬＰＡＲアクティベイト前）。
【図５】ＬＰＡＲの論理ＣＰＵモードが占有の場合のＣＰＵ割当ての実施手順を示す図。
【図６】ＬＰＡＲの論理ＣＰＵモードが時分割共有の場合のＣＰＵ割当ての実施手順を示す図。
【図７】図１に示すＣＰＵのＣＰＵ管理テーブルの図（ＬＰＡＲアクティベイト後）。
【図８】図１に示す物理メモリのメモリ管理テーブルの図（ＬＰＡＲアクティベイト後）。
【符号の説明】
【００４０】
１００  サーバモジュール
１０１  ハイパバイザ
１０２  ＬＰＡＲグループ
１０３〜１０６  ＬＰＡＲ
１０７，１０８  ＣＰＵモジュール
１０９  ＣＰＵグループ
１１０〜１１７  物理ＣＰＵ
１１８，１１９  メモリコントローラ
１２０〜１２５  ＤＩＭＭ
１２６，１２７  ハイパバイザメモリ領域
１２８  ＬＰＡＲ１のメモリ領域
１２９，１３０  ＬＰＡＲ２のメモリ領域
１３１  ＬＰＡＲ３のメモリ領域
１３２  ＬＰＡＲ４のメモリ領域
【図１】
2010122805.tif 000003
【図２】
2010122805.tif 000004
【図３】
2010122805.tif 000005
【図４】
2010122805.tif 000006
【図５】
2010122805.tif 000007
【図６】
2010122805.tif 000008
【図７】
2010122805.tif 000009
【図８】
2010122805.tif 000010