(57)【要約】【課題】  論理区画式計算機システムの稼動中に論理区画間で計算機資源の割り当て変更を動的に行う際に、資源を切り離される側の論理区画上のゲストＯＳが資源を未使用状態にするまで資源を割り当て変更できない。【解決手段】  ユーザが同時使用可能な資源の総量と、ユーザが直接使用できない一時使用可能な資源の総量を管理する資源一時割り当て管理テーブルを設け、資源切り離しの処理に先立って切り離し対象とする資源の量をユーザから同時使用可能な資源の量から除外して他の論理区画ですぐに使用可能とする、資源一時切り離し制御部、資源一時切り離し制御部で一時使用可能として解放された資源を他の論理区画に接続可能とする資源接続制御部、及び資源の切り離し処理が完全に終わった時に一時使用していた資源を完全に解放する資源切り離し制御部を設けた。【選択図】  図１
2005148875.tif 000002
【特許請求の範囲】
【請求項１】
一つの物理計算機中に、計算機資源であるＣＰＵ、主記憶、入出力装置といった資源を分割して割り当てて構成した一つ以上の論理区画を設け、論理区画のそれぞれでオペレーティングシステムを稼動させる論理区画式計算機システムにおいて、システム稼動中に論理区画間で計算機資源の割り当て変更を行う動的割り当て変更方法であって、
複数の論理区画での計算機資源の同時割り当て量の上限値である同時割り当て上限総量と、前記同時割り当て上限総量分の計算機資源とは別に保持する計算機資源の量である一時割り当て上限総量と、複数の論理区画で割り当て中の計算機資源の量である割り当て中総量と、論理区画から計算機資源を切り離す際の切り離し処理中の計算機資源の量である切り離し対象総量とを格納した資源割り当て情報を記憶し、
論理区画から計算機資源を切り離す際に、当該論理区画上で稼動するオペレーティングシステムにおいて、切り離し対象とする計算機資源を未使用状態にする処理の開始前に、切り離し対象とする計算機資源の量を、前記資源割り当て情報記憶保持手段の前記切り離し対象総量に加算する資源一時切り離しステップと、
論理区画への計算機資源の割り当て、すなわち接続に際し、前記資源割り当て情報に保持された情報を参照し、当該論理区画に接続する計算機資源の量と前記割り当て中総量の和が、前記同時割り当て上限総量と前記一時割り当て上限総量の和を超えず、かつ、前記割り当て中総量と前記接続する計算機資源の量の和から前記切り離し対象総量を減算した値が前記同時割り当て上限総量を超えない場合に計算機資源を論理区画に接続し、更に、接続終了後に、接続した計算機資源の量を前記資源割り当て情報の前記割り当て中総量に加算する資源接続ステップと、
論理区画から計算機資源を切り離すとともに、切り離しが終了したときに、切り離した計算機資源の量を前記資源割り当て情報の前記割り当て中総量から減算するとともに、切り離した計算機資源の量を前記資源割り当て情報の前記切り離し対象総量から減算する資源切り離しステップとを有することを特徴とする計算機資源の論理区画間動的割り当て変更方法。
【請求項２】
請求項１記載の計算機資源の論理区画間割り当て変更方法において、論理区画から計算機資源を切り離す際に、切り離し対象とする計算機資源の量を前記資源一時切り離しステップによって前記資源割り当て情報の前記切り離し対象総量に加算した後に、当該論理区画上で稼動するオペレーティングシステムにおいて切り離し対象とする計算機資源を分割し、分割した計算機資源ごとに、逐次、未使用状態とし、未使用状態とした計算機資源を、逐次、前記資源切り離しステップにより切り離すことを特徴とする計算機資源の論理区画間動的割り当て変更方法。
【請求項３】
請求項１記載の計算機資源の論理区画間割り当て変更方法において、論理区画への計算機資源接続要求を契機に、他の一つまたは複数の論理区画からの計算機資源の切り離しを開始し、計算機資源切り離しの過程で前記資源一時切り離しステップの処理が計算機資源切り離し対象とした全ての論理区画において終了した後に計算機資源の接続要求のあった論理区画へ前記資源接続ステップで計算機資源を接続することを特徴とする計算機資源の論理区画間動的割り当て変更方法。
【請求項４】
一つの物理計算機中に、計算機資源であるＣＰＵ、主記憶、入出力装置といった資源を分割して割り当てて構成した一つ以上の論理区画を設け、論理区画のそれぞれでオペレーティングシステムを稼動させる論理区画式計算機システムにおいて、システム稼動中に論理区画間で計算機資源の割り当て変更を行う動的割り当て変更方法であって、
複数の論理区画での計算機資源の割り当てに関する資源割り当て情報を記憶し、
論理区画から計算機資源を切り離すために、移動すべき資源を一時的に切り離し、
前記資源割り当て情報に保持された資源の上限値に基づいて、移動すべき資源量をチェックして資源を接続し、
論理区画から計算機資源を切り離すとともに、前記資源割り当て情報の資源量を更新することを特徴とする計算機資源の論理区画間動的割り当て変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一つの物理計算機を分割して論理区画を設け、それぞれの論理区画でオペレーティングシステムを同時稼動させる論理区画式計算機システムに係わり、特にオペレーティングシステム稼動中に論理区画間で計算機資源の割り当て変更を行う動的割り当て変更方法に関する。
【背景技術】
【０００２】
一つの物理計算機の計算機資源であるＣＰＵ（プロセッサ）、主記憶、入出力装置、入出力装置へ至るパス、といった計算機資源を論理的な単位で分割して論理区画を構成し、それぞれの論理区画でゲストとなるオペレーティングシステム（以下ゲストＯＳと呼ぶ）を稼動させる論理区画式計算機システムが知られている。論理区画式計算機システムの構成と実現方法は、米国特許第４８４３５４１号公報に示されている（特許文献１参照）。論理区画式計算機システムでは、それぞれの論理区画では、論理区画を使用しない場合（以下基本モードと呼ぶ）と同等の計算機環境が提供される。
【０００３】
論理区画式計算機システムは、論理区画を管理するハイパバイザおよび支援ハードウェア機構により実現される。ハイパバイザは、計算機資源を分割して論理区画環境を生成する。計算機資源の分割とは、あらかじめ定義された構成、例えば論理区画１番は、ＣＰＵ２個、主記憶１Ｇバイトというように定義されたプロファイルに従い、物理計算機資源の割り当て管理をすることで実現される。主な計算機資源として、ＣＰＵ、主記憶、入出力装置、入出力装置へ至るパスがあるが、割り当て管理の基本的な考え方は対象資源が異なっても同じである。
【０００４】
次に、主記憶の論理区画化方法について説明する。主記憶の論理区画化では、ゲストＯＳに対しては基本モードと同じ計算機環境、すなわち、０番地から始まり連続した絶対アドレス空間と、その空間に対応する主記憶をそれぞれの論理区画に対して提供する必要がある。通常、基本モードにおいては、ＯＳ上で動作するアプリケーションプログラムは仮想アドレスのもとで動作するが、実主記憶装置へアクセスするために絶対アドレスへの変換がなされる。仮想アドレスから絶対アドレスへの変換の過程は論理区画式計算機システムでもほぼ同様である。
【０００５】
論理区画式計算機システムにおいて異なる点は、仮想アドレスから求められた絶対アドレスは、それぞれの論理区画上での絶対アドレスとなる点である。この絶対アドレスをゲスト絶対アドレスという。なお、通常、仮想アドレスに対して実アドレスという用語が用いられるが、実アドレスとは、ＣＰＵから見えるアドレス空間である。複数のＣＰＵで主記憶を共有する形態のマルチプロセッサ構成においては、例えば０番地からの１ページをＣＰＵごとに別々な主記憶領域に配置してそれぞれのＣＰＵで別々な主記憶領域を確保することを可能としているが、これはプリフィックス変換というアドレス変換により実現される。従って、実アドレスから更にプリフィックス変換を施すことで絶対アドレスが求められる。論理区画式計算機システムにおいて、各論理区画上のゲストＯＳから実主記憶装置へのアクセスを実現するためには、ゲスト絶対アドレスを更に物理計算機上の絶対アドレスに変換する必要がある。この物理計算機上の絶対アドレスをホスト絶対アドレスという。
【０００６】
以下、ゲスト絶対アドレスからホスト絶対アドレスの変換について図２を用いて説明する。論理区画式計算機システムでは、それぞれの論理区画ごとにホスト絶対アドレス空間２１上に当該論理区画のゲスト絶対アドレス空間２２を配置する領域を決定する。領域の決定とは、ホスト絶対アドレス空間２１上で占める当該論理区画の開始位置と空間サイズを決定することである。ハイパバイザは、論理区画を生成する際に、ホスト絶対アドレス空間２１上でどの論理区画にも割り当てられていない空間に生成対象の論理区画の空間を確保する。図２の例では、ホスト絶対アドレス空間上のアドレス’００００００００’（アドレスはいずれも１６進数）から’４ＦＦＦＦＦＦＦ’まで論理区画１のアドレス空間を確保し、アドレス’５０００００００’から’８ＦＦＦＦＦＦＦ’まで論理区画２のアドレス空間を確保し、それぞれ割り当てた状態を示す。論理区画式計算機システムでは、論理区画ごとにホスト絶対アドレス空間上の論理区画開始アドレスを格納するレジスタを備える。ゲスト絶対アドレスは、このレジスタに格納された値を加算することでホスト絶対アドレスに変換され実主記憶装置にアクセスすることが可能になる。例えば、図２の例では、論理区画２のゲスト絶対アドレス’００００８０２０’番地は、論理区画２のホスト絶対アドレス空間開始アドレス’５０００００００’を加算し、’５０００８０２０’番地として求められる。
【０００７】
以上述べた過程でアドレス空間は割り当てられるが、論理区画への主記憶の割り当ての過程では、更に主記憶の実体である、記憶モジュールを接続する必要がある。図３を用いて記憶モジュールの接続過程について説明する。論理区画式計算機システムでは、主記憶は、浮動アドレスレジスタ３２および記憶モジュール３５から構成される。浮動アドレスレジスタ３２はホスト絶対アドレス空間のある単位、例えば２５６Ｍバイト単位に設けられ、あるホスト絶対アドレス空間範囲に対応する記憶モジュール３５を指し示す働きをする。浮動アドレスレジスタ３２には、どの記憶モジュールとも接続されていないという情報も保持され、有効フラグ３３を’１’に設定した場合は記憶モジュール３５が接続されている状態、有効フラグ３３を’０’に設定した場合は記憶モジュール３５が接続されていない状態として管理される。記憶モジュール３５が接続されていない絶対アドレス空間へのアクセスに対しては、アドレス指定例外が報告される。一方、有効フラグ３３が’１’に設定されている状態では、浮動アドレスレジスタに記憶モジュール番号３４が格納され、その空間に対応した記憶モジュールへのアクセスが可能となる。以上述べた浮動アドレスレジスタと記憶モジュールの関係については、特開平８−８７４５２号公報に詳しく述べられている（特許文献２参照）。
【０００８】
次に、論理区画間での主記憶の動的割り当て変更について説明する。論理区画間での主記憶の動的割り当て変更とは、ゲストＯＳが稼動中に、ある論理区画から主記憶を切り離し、切り離した主記憶を別な論理区画に接続することである。ここで言う主記憶とは、主記憶の実体である記憶モジュールのことである。主記憶が切り離された論理区画では、切り離されたアドレス空間は使用不可となる。一方、主記憶が接続される側の論理区画では、あらかじめ主記憶を接続するアドレス空間を確保しておく必要がある。
【０００９】
一連の流れを図４を用いて説明する。主記憶の動的割り当て変更では、まず、主記憶を切り離す側の論理区画上のゲストＯＳで、主記憶切り離しのためオペレータがコマンド投入４０１の操作をする。主記憶の切り離しのコマンド指示内容は、切り離し対象絶対アドレス空間の開始位置、サイズである。ゲストＯＳはコマンドを受けて、まず切り離し対象となる主記憶の領域を未使用状態にする。通常、主記憶は、アプリケーションプログラムを実行するためのプログラムまたはデータ格納領域や、補助記憶にあるファイルをアクセスする際のキャッシュ領域として使用されるが、主記憶領域を未使用状態にするため、ＯＳは主記憶内容を補助記憶に待避、すなわち、ページアウト処理４０２をする。
【００１０】
待避が完了したら、ゲストＯＳは、ハイパバイザに主記憶切り離し要求４０３を発行する。ハイパバイザは、主記憶切り離し要求４０３を受けて、浮動アドレスレジスタ更新４０４を実行する。これは、浮動アドレスレジスタ有効フラグを’０’に設定し、浮動アドレスレジスタの記憶モジュール番号を’００００’に初期化するもので、この操作によって記憶モジュールは当該論理区画から解放される。その後、ハイパバイザはゲストＯＳに主記憶切り離し完了通知４０５を発行する。ゲストＯＳは、主記憶切り離し完了通知４０５を受けて、オペレータに対してコマンド完了表示４０６をする。
【００１１】
次に、主記憶接続であるが、まず、オペレータは、論理区画１でコマンド完了表示４０６がなされたことを確認し、主記憶を接続する側の論理区画２で動作しているゲストＯＳ上でコマンド投入４０７をする。主記憶接続のコマンド指示内容は、記憶モジュール接続対象とする主記憶の絶対アドレス空間の開始位置とサイズである。ゲストＯＳはコマンドを受けて、ハイパバイザに対して主記憶接続要求４０８を発行する。ハイパバイザへの主記憶接続要求は、当該論理区画のゲスト絶対アドレス上の開始位置とサイズである。
【００１２】
ハイパバイザは主記憶接続要求４０８を受けて、ゲストＯＳから要求されたサイズから、必要となる記憶モジュール数を算出し、その数分の未接続の記憶モジュールを探し出す。また、ハイパバイザはゲストＯＳから指示された絶対アドレス開始位置とサイズより、対応する浮動アドレスレジスタを決定し、浮動アドレスレジスタ更新４０９を実行する。これは、探し出した記憶モジュールの番号を浮動アドレスレジスタに設定し、浮動アドレスレジスタ有効フラグを’１’に設定するものである。その後、ハイパバイザは主記憶接続完了通知４１０を発行し、ゲストＯＳに処理の完了を報告する。ゲストＯＳはハイパバイザからの完了報告を受けてコマンド完了表示４１１をするとともに、主記憶領域を使用開始する。
【００１３】
論理区画の利用形態として、ホットスタンバイ構成での適用がある。ホットスタンバイ構成とは、可用性向上のため計算機を２台配置し、一方を実行系、一方と待機系として、通常は実行系で業務を行い、待機系はすぐ動作できる状態でスタンバイし、実行系が障害でダウンしたときには即座に待機系で業務を引き継ぐ構成である。論理区画のホットスタンバイ構成への適用例としては、特開２００２−４１３０５号公報で示される例がある（特許文献３参照）。特開２００２−４１３０５号公報では、一つの物理計算機での構成例が示されている。待機系の論理区画は待機状態であるため、普段は計算機資源が十分に使われない状態にある。特開２００２−４１３０５号公報に示されているように、待機系の計算機資源を少なくしておき、待機系の論理区画に交代する契機で待機系の論理区画へ計算機資源を追加割り当てすれば計算機資源を有効利用できる。例えば、待機系論理区画と同じ物理計算機にある別の論理区画から、ＣＰＵ２個を切り離し、待機系論理区画へ接続したり、待機系論理区画のために別の論理区画を消滅させ、その論理区画が使用していた計算機資源を待機系論理区画に割り当てるということで目的が達成される。
【００１４】
また、特開２００２−３７３１１４号公報で示されているようにキャパシティアップグレードオンデマンド（以下ＣＵｏＤと呼ぶ）というものが知られている（特許文献４参照）。ＣＵｏＤでは、システム稼動中にＣＰＵ、主記憶といった計算機資源の増量が可能となるため、先のホットスタンバイ構成の例では、待機系に割り当てる計算機資源の量を少なくしておき、実行系から待機系へ切り替える契機でＣＵｏＤによって待機系の計算機資源を増量するという方法も考えられる。ＣＵｏＤ適用の際には、新たな課金体系が同時に導入される。
【００１５】
一般に、計算機購入時には、あらかじめ定められた量の計算機資源が使用可能であり、これに対する対価を支払うが、ＣＵｏＤによって計算機資源を増量する際には、増量分の対価を更に追加で支払うものである。このような枠組みが成立する背景として、ＣＰＵ素子や主記憶を構成するメモリー素子が安価になるとともに、計算機を提供するベンダー側としては、製品の設計・製造・組み立て・検査のためのコストを下げるため、出来るだけ製品構成を固定し構成パターンを少なくするということがある。つまり、実際に計算機に搭載されているＣＰＵ数や主記憶容量は固定であるが、ユーザが使用可能なＣＰＵ数や主記憶量としては搭載量を全て使用可能とせず色々なバリエーションを設ける。ユーザは、その製品の使用可能な計算機資源の量に応じた対価を支払うこととするのである。ここで、実際に搭載される量と使用可能量の差分の部分、すなわち、余剰な計算機資源が発生するが、この部分をＣＵｏＤで使用可能とすることができる。
【００１６】
【特許文献１】米国特許第４８４３５４１号公報
【００１７】
【特許文献２】特開平８−８７４５２号公報
【特許文献３】特開２００２−４１３０５号公報
【特許文献４】特開２００２−３７３１１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
先に１台の物理計算機による論理区画のホットスタンバイ構成適用例について述べたが、システムの可用性を高めるためには、実行系と待機系は別々の物理計算機に配置する必要がある。これは、実行系と待機系を同一の物理計算機に配置した場合、複数の論理区画の共用部で障害が発生すると、複数の論理区画の同時停止、すなわち、実行系・待機系ともに停止してしまう可能性があるためである。待機系計算機を論理区画として構成するようなシステムの場合、待機系以外の論理区画では別業務が実行されている。
【００１９】
例えば、一つ目の物理計算機ではオンライン業務を実行し、二つ目の物理計算機ではオンライン業務の待機系となる論理区画とバッチ業務の論理区画を並行稼動させるような構成である。この構成例では、オンライン業務の待機系論理区画の計算機資源をあらかじめ少なく構成しておき、実行系から待機系への切り替え時にバッチ業務の論理区画から計算機資源を切り離して待機系論理区画に接続することで計算機資源を有効利用することができるが、計算機資源を切り離す際に処理時間を要するため、迅速に割り当て変更ができないという課題がある。
【００２０】
動的割り当て変更する計算機資源が主記憶の場合には、論理区画から切り離す過程でゲストＯＳ上で当該主記憶領域を未使用状態にする必要があるが、未使用状態にするには、主記憶に格納されているデータを補助記憶に待避する必要がある。主記憶から補助記憶へのデータの待避には入出力動作が伴なうため、データの待避動作によりシステムの負荷が増大し、処理時間も切り離し対象主記憶量に応じて増加することとなる。システムの負荷が急激に増大すると実行中の業務に影響が出ることから、主記憶内容の補助記憶への待避は出来る限りゆっくり実行すべきであるが、ゆっくり実行すると逆に処理時間が長大化する。
【００２１】
このため、ホットスタンバイ契機での論理区画間の動的割り当て変更は、特に主記憶については適用が困難であった。一方、ホットスタンバイ構成で待機系計算機資源を少なく割り当てておき切り替え契機に計算機資源をＣＵｏＤを使用して増量するという方法は、追加投資が必要となるが、増量の契機および頻度が予測できないことから適用が難しく、上記の課題の解決にはつながらない。
【００２２】
本発明は、論理区画間の計算機資源の動的割り当て変更を高速に行い、動的割り当て変更の適用範囲を広げ、更にＣＵｏＤ等の手段によらず余剰の計算機資源を有効利用可能とすることでユーザの追加投資無しに迅速に論理区画への計算機資源の増量を可能とすることを目的とする。
【課題を解決するための手段】
【００２３】
本発明では、複数の論理区画での計算機資源の同時割り当て量の上限値である同時割り当て上限総量と、前記同時割り当て上限総量分の計算機資源とは別に保持する計算機資源の量である一時割り当て上限総量と、複数の論理区画で割り当て中の計算機資源の量である割り当て中総量と、論理区画から計算機資源を切り離す際の切り離し処理中の計算機資源の量である切り離し対象総量とを資源割り当て情報に記憶する。
【００２４】
また、論理区画から計算機資源を切り離す際に、当該論理区画上で稼動するオペレーティングシステムにおいて、切り離し対象とする計算機資源を未使用状態にする処理の開始前に切り離し対象とする計算機資源の量を前記資源割り当て情報の前記切り離し対象総量に加算する資源一時切り離しステップと、論理区画への計算機資源の割り当て、すなわち接続に際し、前記資源割り当て情報に記憶保持された情報を参照し、当該論理区画に接続する計算機資源の量と前記割り当て中総量の和が、前記同時割り当て上限総量と前記一時割り当て上限総量の和を超えず、かつ、前記割り当て中総量と前記接続する計算機資源の量の和から前記切り離し対象総量を減算した値が前記同時割り当て上限総量を超えない場合に計算機資源を論理区画に接続し、更に接続終了後に接続した計算機資源の量を前記資源割り当て情報の前記割り当て中総量に加算する資源接続ステップと、論理区画から計算機資源を切り離すとともに、切り離しが終了したときに、切り離した計算機資源の量を前記資源割り当て情報の前記割り当て中総量から減算するとともに、切り離した計算機資源の量を前記資源割り当て情報の前記切り離し対象総量から減算する資源切り離しステップを実行する。
【００２５】
また、論理区画から計算機資源を切り離す際に切り離し対象とする計算機資源の量を前記資源一時切り離しステップによって前記資源割り当て情報の前記切り離し対象総量に加算した後に、当該論理区画上で稼動するオペレーティングシステムにおいて切り離し対象とする計算機資源を分割し、分割した計算機資源ごとに逐次未使用状態とし、未使用状態とした計算機資源を逐次前記資源切り離しステップにより切り離す。
【００２６】
また、論理区画への計算機資源接続要求を契機に他の一つまたは複数の論理区画からの計算機資源の切り離しを開始し、計算機資源切り離しの過程で前記資源一時切り離しステップの処理が計算機資源切り離し対象とした全ての論理区画において終了した後に計算機資源の接続要求のあった論理区画へ前記資源接続ステップで計算機資源を接続する。
【発明の効果】
【００２７】
本発明によれば、論理区画間の計算機資源の動的割り当て変更を高速に行うことができ、動的割り当て変更の適用範囲を広げ、計算機資源を有効に利用することができる。
【発明を実施するための最良の形態】
【００２８】
次に、本発明の実施形態を図面を使用して説明する。
【００２９】
図１は本発明の一実施形態の全体構成を示すブロック図である。複数の論理区画１１と論理区画１１を管理するハイパバイザ１２、物理計算機資源１３からなる論理区画式計算機システムにおいて、ハイパバイザ内に資源一時切り離し制御部１４、資源切り離し制御部１５、資源接続制御部１６を設けている。資源一時切り離し制御部１４、資源切り離し制御部１５、資源接続制御部１６は、ゲストＯＳからの要求に従い、資源一時割り当て管理テーブル１７を参照・更新することで論理区画への計算機資源割り当てと物理計算機資源の接続を管理する。資源切り離し制御部１５と資源接続制御部１６は物理計算機資源１３の設定を行い実際に論理区画１１に対して物理計算機資源１３を接続・切り離しする。物理計算機資源１３は、全実装量のうち、ユーザに明示的に使用可能とする量と、ハイパバイザの制御の下に一時的に使用可能とする量をあらかじめ定める。以降の実施例の説明では、動的割り当て変更を行う計算機資源として主記憶を例にして記載する。
【００３０】
資源一時割り当て管理テーブル１７は、計算機資源の割り当て情報を記憶保持する手段であり、図９に示す論理資源管理部９０、図１０に示す物理資源管理部１００、および、図１１に示す記憶モジュール接続管理部１１０の３つの管理部からなる。
【００３１】
図９は論理区画への計算機資源割り当てを管理するテーブルである論理資源管理部９０の構成を示す図である。本テーブルは、１記憶モジュールの容量に対して１エントリとし、ホスト絶対アドレス空間サイズ分のエントリを設け、ホスト絶対アドレス空間アドレスの昇順に対応して昇順にエントリを配置する。例えば、１記憶モジュールの容量が２５６Ｍバイトであった場合、１エントリで２５６Ｍバイトの主記憶領域を管理することとなる。本テーブルのエントリ数は、ホスト絶対アドレス空間サイズを１記憶モジュール容量で除算した値となる。例えば、ホスト絶対アドレス空間サイズが２５６０Ｍバイトであり１記憶モジュール容量が２５６Ｍバイトであった場合、１０エントリとなる。この場合、ホスト絶対アドレス空間上のアドレス０番地から２５６Ｍ−１番地が１番目のエントリ、ホスト絶対アドレス空間上のアドレス２５６Ｍ番地から５１２Ｍ−１番地が２番目のエントリというように対応する。
【００３２】
論理資源管理部９０は、当該ホスト絶対アドレス空間の論理区画への割り当て状況を格納する空間割り当てフラグ９１、当該ホスト絶対アドレス空間の割り当て先論理区画番号を格納する割り当て論理区画番号９２、主記憶の実体である記憶モジュールの接続状態を管理する記憶モジュール接続フラグ９３、記憶モジュールの一時接続状態を管理する記憶モジュール一時接続フラグ９４、および当該ホスト絶対アドレス空間に接続されている記憶モジュールの記憶モジュール番号を管理する接続記憶モジュール番号９５からなる。空間割り当てフラグ９１と割り当て論理区画番号９２は、論理区画生成・消滅時にそれぞれ設定・初期化される。
【００３３】
次に、各フラグの意味を説明する。空間割り当てフラグ９１には’１’の場合当該絶対アドレス空間に論理区画が割り当てられていることを示し、’０’の場合当該絶対アドレス空間に論理区画が割り当てられていないことを示す。記憶モジュール接続フラグ９３は、’１’の場合当該絶対アドレス空間に記憶モジュールが接続されていることを示し、’０’の場合当該絶対アドレス空間に記憶モジュールが接続されていないことを示す。記憶モジュール一時接続フラグ９４は、’１’の場合、記憶モジュールの接続は一時的な状態であることを示し、’０’の場合、記憶モジュール接続フラグ９３が同時に’１’であれば、一時的な接続の状態ではなく通常の接続の状態であることを示す。記憶モジュール一時接続フラグ９４は、記憶モジュール接続フラグ９３が’０’の場合は、’０’が設定される。
【００３４】
図１０は記憶モジュールの各種容量を管理するテーブルである、物理資源管理部１００の構成を示す図である。本テーブルは、物理計算機に実装されている記憶モジュールの総数を格納する実装記憶モジュール数１０１、実装記憶モジュールのうち明示的にユーザに使用可能とする記憶モジュールの総数を格納するユーザ使用可能記憶モジュール数１０２、ホスト絶対アドレス空間に接続済みの記憶モジュール数を格納する接続済み記憶モジュール数１０３、ホスト絶対アドレス空間に接続済みであるが一時的に接続している状態の記憶モジュール数を格納する一時接続済み記憶モジュール数１０４からなる。フローチャート上では、それぞれＩ、Ｕ、Ｃ、Ｔと省略して記載している。なお、実装記憶モジュール数１０１の代わりに、実装記憶モジュール数からユーザ使用可能記憶モジュール数を減算した値を一時的に使用できる記憶モジュール数の上限値として記憶保持してもよい。
【００３５】
図１１は記憶モジュールの接続を管理するテーブルである、記憶モジュール接続管理部１１０の構成を示す図である。各エントリは記憶モジュールに一対一に対応し、記憶モジュール番号１１１の記憶モジュールに対するアドレス空間への接続状態を接続状態フラグ１１２で管理する。接続状態フラグ１１２は、’１’の場合、アドレス空間へ当該記憶モジュールが接続状態であることを示し、’０’の場合、アドレス空間へ当該記憶モジュールが接続状態でないことを示す。
【００３６】
図５は本発明による論理区画間の計算機資源の動的割り当て変更方法の全体の処理シーケンスを示す図である。以下、図５の処理シーケンスに基づき処理内容を説明していく。
【００３７】
まず、主記憶を切り離す側の論理区画である論理区画１のゲストＯＳ上でオペーレータが主記憶切り離しのためコマンド投入５０１を実施する。本実施例では、オペレータがコマンド投入する例を示しているが、運用管理プログラム等でプログラム的な手段でコマンドを投入し、一連のシーケンスを自動化することも可能である。主記憶の切り離しのコマンド指示内容は、切り離し対象のゲスト絶対アドレス空間の開始位置、サイズである。ゲストＯＳはコマンドを受けて、まずハイパバイザに主記憶切り離し開始通知５０２を発行する。主記憶切り離し開始通知５０２では、切り離し対象とするゲスト絶対アドレス空間上の開始位置とサイズを通知する。
【００３８】
図６は、資源一時切り離し処理（６０）のフローチャートであり、ハイパバイザは、主記憶切り離し開始通知５０２を受けて、資源一時切り離し処理６０を実行する。資源一時切り離し処理６０は、図１のブロック図における資源一時切り離し制御部１４に該当する処理である。
【００３９】
資源一時切り離し処理６０では、ハイパバイザは、まず、ステップ６１で切り離し対象となる記憶モジュール数をゲストＯＳが通知してきたサイズより求め、物理資源管理部１００の一時接続済み記憶モジュール数１０４（Ｔ）に切り離し対象となる記憶モジュール数を加算して格納する。
【００４０】
次に、ステップ６２で切り離し対象となる領域に対応する論理資源管理部９０上のエントリをゲスト絶対アドレス空間上の開始位置とサイズより求め、該当する全てのエントリの記憶モジュール一時接続フラグ９４を’１’に設定する。論理資源管理部９０で対応するエントリを求めるためには、ゲスト絶対アドレスをホスト絶対アドレスに変換する必要があるが、これは、背景技術のところで述べた通り、論理区画ごとに絶対アドレス空間上の論理区画開始アドレスを格納したレジスタを参照し、このレジスタ値とゲスト絶対アドレスを加算することで算出できる。また、ホスト絶対アドレスを１記憶モジュールの容量で除算することで論理資源管理部の対応するエントリ数が求められる。
【００４１】
次に、ステップ６３でハイパバイザからゲストＯＳに主記憶切り離しを受け付けたことの通知、すなわち、主記憶切り離し受付通知５０３を発行して資源一時切り離し処理６０は終了する。ゲストＯＳは、ハイパバイザから主記憶切り離し受付通知５０３を受け取った後に、コマンドが受け付けられたことをコマンド受付表示５０４でオペレータに通知する。オペレータは、コマンド受付表示５０４が表示されたことで次に論理区画２で主記憶の接続が可能になるということを知ることができる。
【００４２】
次に、オペレータは、論理区画２で稼動しているゲストＯＳで主記憶接続のためコマンド投入５０５を実行する。主記憶接続のためのコマンド指示内容は、接続対象のゲスト絶対アドレス空間の開始位置、サイズである。ゲストＯＳはコマンド投入５０５を受けて、まず、ハイパバイザに主記憶接続要求５０６を発行する。主記憶接続要求５０６では、接続対象とするゲスト絶対アドレス空間上の開始位置とサイズが通知される。図７は、資源接続処理（７０）のフローチャートであり、ハイパバイザは、主記憶接続要求５０６を受けて、資源接続処理７０を実行する。資源接続処理７０は、図１のブロック図における資源接続制御部１６に該当する処理である。
【００４３】
ハイパバイザは、まず、ステップ７０１で、ゲストＯＳからの要求実行後に全論理区画への主記憶割り当ての総量がユーザ使用可能主記憶容量を超えるようなことがないかどうかをチェックする。ただし、ここで既に切り離し処理を開始している分は、割り当て量として含めない。この処理は、物理資源管理部１００の接続済み記憶モジュール数１０３（Ｃ）から一時接続済み記憶モジュール数１０４（Ｔ）を減算した値に接続要求記憶モジュール数を加えた値がユーザ使用可能記憶モジュール数１０２（Ｕ）以内であるかという判定を行うことで実現できる。
【００４４】
例えば、ユーザが使用可能な主記憶容量が全部で１５３６Ｍバイトで、このうち、論理区画１に割り当てられている主記憶容量が１０２４Ｍバイト、論理区画２に割り当てられている主記憶容量が５１２Ｍバイトで、１記憶モジュール当たりの容量が２５６Ｍバイトである場合には、当初、Ｕには’６’、Ｃには’６’、Ｔには’０’が格納されている。格納される値は、それぞれ主記憶容量を２５６Ｍバイトで除算した値である。ここで、論理区画１の主記憶５１２Ｍバイトを論理区画２に割り当て変更する場合、先に説明した資源一時切り離し処理６０により、Ｔが’０’から’２’に更新される。従って、ステップ７０１により、’６−２＋２≦６’という判定が行われる。
【００４５】
以上の処理を記憶モジュール数という観点で説明すると、当初、論理区画１には４つの記憶モジュール、論理区画２には２つの記憶モジュール、合わせて６つの記憶モジュールが割り当てられており、既にユーザ使用可能記憶モジュール６つ分を使い切っている。ここで、論理区画１より記憶モジュール２つを切り離し、論理区画２に接続するが、論理区画１は既に切り離し処理を開始しているため、論理区画１に割り当てられている記憶モジュール４つのうち２つ分は、論理区画１のユーザ割り当て数に含めず、論理区画２への接続要求実行後の状態でもユーザ使用可能記憶モジュール数以内であるということになる。ステップ７０１の条件を満たさなかった場合には、ステップ７０３でエラーを応答して終了する。ステップ７０１の条件を満たした場合には、ステップ７０２の判定を実行する。
【００４６】
ステップ７０２では、ゲストＯＳからの要求により記憶モジュールを接続した場合に、全論理区画への記憶モジュールの接続数が実装記憶モジュール数を超えていないかどうかをチェックする。これは、接続済み記憶モジュール数１０３（Ｃ）に接続要求記憶モジュール数を加えた値が実装記憶モジュール数１０１（Ｉ）を超えていないかという判定を行うことで実現できる。
【００４７】
例えば、実装記憶容量が２０４８Ｍバイトで、このうち、論理区画１に割り当てられている主記憶容量が１０２４Ｍバイト、論理区画２に割り当てられている主記憶容量が５１２Ｍバイトで、１記憶モジュール当たりの容量が２５６Ｍバイトである場合には、当初、Ｉには’８’、Ｃには’６’が格納されている。ここで、論理区画１の主記憶５１２Ｍバイトを論理区画２に割り当て変更する場合、資源一時切り離し処理６０を実行してもＣの値は変わらないため、ステップ７０２により、’６＋２≦８’という判定が行われることとなる。
【００４８】
以上の処理を記憶モジュール数という観点で説明すると、当初、論理区画１には４つの記憶モジュール、論理区画２には２つの記憶モジュール、合わせて６つの記憶モジュールが割り当てられている状態で、論理区画１より記憶モジュール２つを切り離し、論理区画２に接続するが、論理区画１は既に２つ分の記憶モジュールの切り離し処理に入っているものの、切り離し対象の記憶モジュールは使用中である。このため、全論理区画で一時的に使用する記憶モジュール数、すなわち、全論理区画で接続中の記憶モジュール数６つに、これから論理区画２に接続する記憶モジュール数２つを加算した値が実装記憶モジュール数を超えていないかということになる。本ケースでは、実装記憶モジュール数が’８’であるため、超えていないということになり、ステップ７０２の条件が成立する。ステップ７０２の条件を満たさなかった場合には、ステップ７０３でエラーを応答して終了する。ステップ７０２の条件を満たした場合には、次にステップ７０４の処理を実行する。
【００４９】
ステップ７０４では、記憶モジュール接続管理部１１０のテーブルを検索して、未接続状態の記憶モジュールを探す。未接続状態の記憶モジュールは、接続状態フラグ１１２が’０’であるため、接続状態フラグ１１２が’０’のエントリを検索することでこの検索処理が実現できる。次に、ステップ７０５で浮動アドレスレジスタにステップ７０４で検索した記憶モジュールの記憶モジュール番号を設定するとともに、浮動アドレスレジスタの有効フラグを’１’に設定する。次に、ステップ７０６で記憶モジュール接続管理部１１０の接続状態フラグの対応するエントリを’１’に設定する。次に、ステップ７０７で、物理資源管理部１００の接続済み記憶モジュール数１０３（Ｃ）に接続要求のあった記憶モジュール数を加算し、その結果を接続済み記憶モジュール数１０３（Ｃ）に格納する。先程の主記憶５１２Ｍバイトを論理区画２に割り当て変更する例では、Ｃは’６’から’８’に更新される。次に、ステップ７０８で論理資源管理部９０の接続記憶モジュール番号９５にステップ７０４で検索した記憶モジュールの記憶モジュール番号を格納するとともに、記憶モジュール接続フラグ９３を’１’に設定する。次に、ステップ７０９で論理資源管理部９０の記憶モジュール一時接続フラグを’０’に初期化する。以上の処理が終わったら、ステップ７１０でゲストＯＳに主記憶接続完了通知５０７を報告する。ゲストＯＳは、コマンドの実行完了をオペレータへ通知するためコマンド完了表示５０８を通知する。このようにして、論理区画１から完全に主記憶が切り離されていない状態で論理区画２に主記憶を接続することが可能となる。
【００５０】
以上述べた論理区画２での主記憶接続処理と並行して論理区画１のゲストＯＳは、切り離し対象とする主記憶を未使用状態にするため主記憶に格納されているデータを補助記憶装置に待避する。この待避処理は、ゲストＯＳ上で稼動している業務に影響を与えないようにゆっくり実行することができる。
【００５１】
本発明によらない場合であれば、論理区画１のゲストＯＳの主記憶切り離しが完全に終わらなければ論理区画２で主記憶を接続することはできないため、待避処理を素早く実行する必要があるが、本発明では、論理区画１に主記憶切り離し受付通知が報告された時点ですでに論理区画２へ主記憶が接続可能となっているため待避処理をゆっくり実行することができる。ゲストＯＳでの主記憶内容の待避処理をゆっくり実行するには、例えば、時間当たりの待避量を一定とし、ＣＰＵ負荷、入出力負荷がほとんど上がらないように制御し徐々に待避処理をする方法や、そのときのシステムの負荷に応じて動的に単位時間当たりの待避量を決定する方法などが考えられる。
【００５２】
以上の動作によって論理区画１のゲストＯＳは切り離し対象の主記憶領域を未使用状態にする。切り離し対象領域が未使用状態になったら、論理区画１のゲストＯＳはハイパバイザに対して主記憶切り離し要求５０９を発行する。なお、図５では、ゲストＯＳでの待避処理が全て終了してから主記憶切り離し要求を発行する例を示しているが、ある待避処理単位で主記憶切り離し要求５０９を発行してもよい。例えば、ある論理区画から合計で５１２Ｍバイト切り離す場合には、ゲストＯＳの処理として、まず２５６Ｍバイト分の主記憶の補助記憶への待避処理を行い、２５６Ｍバイト分の待避処理が終了したら、その時点で２５６Ｍバイト分の主記憶切り離し要求をハイパバイザに発行し、その後、残り２５６Ｍバイトの主記憶の補助記憶への待避処理を行い、その後残り２５６Ｍバイト分の主記憶切り離し要求をハイパバイザに発行というように２回に分割して処理することもできる。
【００５３】
図８は、資源切り離し処理（８）のフローチャートであり、ハイパバイザは、主記憶切り離し要求５０９を受けて資源切り離し処理８０を実行する。資源切り離し処理８０は、図１のブロック図における資源切り離し制御部１５に該当する処理である。
【００５４】
まず、ステップ８１で、論理資源管理部９０の、切り離し対象領域に該当するエントリの記憶モジュール一時接続フラグ９４が’１’かどうか判定し、’１’の場合は、ステップ８２およびステップ８３の処理を実行する。’０’の場合は、ステップ８２およびステップ８３の処理はスキップし、ステップ８４の処理から実行する。ステップ８２では、一時接続済み記憶モジュール数１０４（Ｔ）の値から切り離し対象の記憶モジュール数を減算し、その結果を一時接続済み記憶モジュール数１０４（Ｔ）に格納する。先程の論理区画１の主記憶５１２Ｍバイトを論理区画２に割り当て変更する例では、Ｔは’２’から’０’に更新される。ステップ８３では論理資源管理部９０の記憶モジュール一時接続フラグ９４を’０’に設定する。
【００５５】
ステップ８４では、物理資源管理部１００の接続済み記憶モジュール数１０３（Ｃ）の値から切り離し対象の記憶モジュール数を減算し、その結果を接続済み記憶モジュール数１０３（Ｃ）に格納する。先程の論理区画１の主記憶５１２Ｍバイトを論理区画２に割り当て変更する例では、Ｃは’８’から’６’に更新される。次に、ステップ８５で論理資源管理部９０の記憶モジュール接続フラグ９３を’０’に設定するとともに接続記憶モジュール番号９５の部分を’００００’に初期化する。次に、ステップ８６で記憶モジュール接続管理部１１０の接続状態フラグ１１２の対応するエントリを’０’に設定する。なお、接続状態フラグ１１２の対応するエントリは、ステップ８５で接続記憶モジュール番号９５を初期化する前に接続記憶モジュール番号９５の内容を待避しておくことで記憶モジュール番号から求められるものである。次に、ステップ８７で浮動アドレスレジスタ３２の有効フラグ３３を’０’に設定するとともに、記憶モジュール番号３４の部分を’００００’に初期化する。以上の処理が終わったら、ステップ８８でゲストＯＳに主記憶切り離し完了通知５１０を報告する。
【００５６】
ゲストＯＳは、コマンドの実行完了をオペレータへ通知するためコマンド完了表示５１１を実行する。本切り離し処理により、論理区画からの計算機資源の切り離しが完了し、物理資源が完全に解放される。先に示した、主記憶切り離し要求５０９をゲストＯＳが分割して発行する例では、上記物理資源の解放が分割して実行され、逐次、切り離され解放された計算機資源が更に別な論理区画へ割り当て可能になる。
【００５７】
以上が主記憶の動的割り当て変更の一連の流れであるが、次に論理区画消滅時の処理を説明する。論理区画を消滅させる場合、ハイパバイザは、記憶モジュールの切り離し処理とホスト絶対アドレス空間の解放処理を実行する。記憶モジュールの切り離し処理は、論理資源管理部９０の記憶モジュール接続フラグが’１’に設定されているエントリ全てについて、資源切り離し処理８０のステップ８１からステップ８７の処理を実行することで実現できる。例えば、論理区画１で稼動しているゲストＯＳが主記憶切り離し処理実行中に停止したとしても、ハイパバイザの論理区画消滅処理を実行することにより、論理資源管理９０、物理資源管理部１００、記憶モジュール接続官管理部１１０が矛盾のない状態に保たれる。
【００５８】
図１２は、１台の物理計算機に３つの論理区画を構成し、そのうちの一つの論理区画で主記憶の接続要求が発生した場合に、運用管理プログラムを使用して主記憶の動的割り当て変更を行う場合のシーケンス図である。運用管理プログラム１２０は、論理区画１、論理区画２、論理区画３の各ゲストＯＳと接続され、ゲストＯＳへのコマンド投入とコマンド実行結果を受け取ることができるものである。以下、図１２において論理区画３からの主記憶接続要求に対して運用管理プログラムを使用して論理区画１および論理区画２より主記憶を切り離し、論理区画３に接続する処理のシーケンスを説明する。
【００５９】
まず、論理区画３のゲストＯＳより、運用管理プログラムに対し、主記憶接続要求１２１が発行される。運用管理プログラム１２０は、主記憶接続要求を受け、同一物理計算機上で稼動している他の論理区画上のゲストＯＳに対してコマンド投入して主記憶の切り離しを要求する。図１２の例では、論理区画１のゲストＯＳに対して主記憶切り離しを指示するコマンド投入１２２と、論理区画２のゲストＯＳに対して主記憶切り離しを指示するコマンド投入１２４を発行する。
【００６０】
ここで、主記憶切り離しのコマンド投入対象の論理区画およびそれぞれから切り離す主記憶量の決定は、あらかじめ定めた運用パターンに従ってもよいし、それぞれのゲストＯＳの負荷状況に応じて動的に決定してもよいが、いずれにしても論理区画３からの要求を満たす量の主記憶を確保すべく切り離しの総量を決定する。あらかじめ定めておく例では、論理区画３から５１２Ｍバイトの主記憶の割り当て要求が発生した場合には、論理区画１から２５６Ｍバイト、論理区画２から２５６Ｍバイトを切り離して論理区画３に接続するという定義を定める。
【００６１】
運用管理プログラムからコマンドを受けたゲストＯＳは、それぞれハイパバイザに対して主記憶切り離し開始通知を発行し、ハイパバイザは主記憶切り離し開始通知を受けて資源一時切り離し処理を実行し、主記憶切り離し受付通知を報告する。これらハイパバイザとのやりとりの部分は先に図５を使って説明した内容と同じである。
【００６２】
論理区画１および論理区画２のゲストＯＳは、ハイパバイザから主記憶切り離し受付通知を受けて、運用管理プログラム１２０にそれぞれコマンド受付１２３、コマンド受付１２５を報告する。運用管理プログラム１２０は、論理区画１、論理区画２のゲストＯＳからコマンド受付１２３およびコマンド受付１２５を受けて、論理区画３のゲストＯＳに主記憶接続のコマンド投入１２６を発行する。論理区画１および論理区画２のゲストＯＳは引き続き主記憶内容を補助記憶に待避するなどの主記憶切り離し処理を継続する。論理区画３のゲストＯＳは、コマンド投入１２６を受けて、ハイパバイザに対して主記憶接続要求を発行する。
【００６３】
ハイパバイザは、資源接続処理を実行し、主記憶接続完了通知を報告する。ハイパバイザから主記憶接続完了を受けた論理区画３のゲストＯＳは、運用管理プログラムにコマンド完了１２７を報告する。以上の過程におけるハイパバイザ処理についても図５を使って説明した内容と同じである。
【００６４】
論理区画１および論理区画２のゲストＯＳは、主記憶を未使用状態にしたら、ハイパバイザに主記憶切り離し要求を発行し、ハイパバイザは、これを受けて資源切り離し処理を実行し、ゲストＯＳに主記憶切り離し完了通知を発行する。これらのハイパバイザ処理についても図５を使って説明した内容と同じである。論理区画１および論理区画２のゲストＯＳはそれぞれハイパバイザから主記憶切り離し完了通知を受けて、運用管理プログラム１２０にそれぞれコマンド完了１２８、コマンド１２９を報告する。
【００６５】
以上述べた通り、運用管理プログラムを設けて全体の処理を管理させることで、ある論理区画からの計算機資源の増量要求に対して、本発明による動的割り当て変更を使用して迅速に対処することができる。
【００６６】
なお、以上述べた実施例では、対象とする計算機資源として主記憶について記載したが、主記憶以外の他の計算機資源、例えば、ＣＰＵ、入出力装置、入出力装置へ至るパス、についても本発明を応用することが可能である。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態による論理区画式計算機システムの構成を示すブロック図である。
【図２】論理区画式計算機システムにおける主記憶アドレス空間の割り当て方法を示す図である。
【図３】論理区画式計算機システムにおける主記憶アドレス空間と記憶モジュールの関係および構成を示す図である。
【図４】従来技術における論理区画間の計算機資源動的割り当て変更の処理の流れを示すシーケンス図である。
【図５】本発明による実施例における論理区画間の計算機資源動的割り当て変更の処理の流れを示すシーケンス図である。
【図６】本発明による実施例における資源一時切り離し制御部の処理内容を示すフローチャートである。
【図７】本発明による実施例における資源接続制御部の処理内容を示すフローチャートである。
【図８】本発明による実施例における資源切り離し制御部の処理内容を示すフローチャートである。
【図９】本発明による実施例における資源一時割り当て管理テーブルの論理資源管理部の構成を示す図である。
【図１０】本発明による実施例における資源一時割り当て管理テーブルの物理資源管理部の構成を示す図である。
【図１１】実施例における資源一時割り当て管理テーブルの記憶モジュール接続管理部の構成を示す図である。
【図１２】本発明による実施例における運用管理プログラムを使用した論理区画間の計算機資源動的割り当て変更の処理の流れを示すシーケンス図である。
【符号の説明】
【００６８】
１１  論理区画
１２  ハイパバイザ
１３  物理計算機資源
１４  資源一時切り離し制御部
１５  資源切り離し制御部
１６  資源接続制御部
１７  資源一時割り当て管理テーブル
２１  ホスト絶対アドレス空間
２２  ゲスト絶対アドレス空間
３２  浮動アドレスレジスタ
３５  記憶モジュール
【図１】
2005148875.tif 000003
【図２】
2005148875.tif 000004
【図３】
2005148875.tif 000005
【図４】
2005148875.tif 000006
【図５】
2005148875.tif 000007
【図６】
2005148875.tif 000008
【図７】
2005148875.tif 000009
【図８】
2005148875.tif 000010
【図９】
2005148875.tif 000011
【図１０】
2005148875.tif 000012
【図１１】
2005148875.tif 000013
【図１２】
2005148875.tif 000014