(57)【要約】【課題】パススルーＩ／Ｏ方式を採用するＬＰＡＲにおいて動的なマイグレーションを実施する。【解決手段】  物理マシンのハードウェアリソースを論理的に分割することにより、パススルーＩ／Ｏ方式を採用する複数の論理パーティションを生成し、当該論理パーティションをマイグレーションするシステムにおける動的マイグレーション装置が、マイグレーションを行った際に、マイグレーション元の論理パーティションが用いていたＩ／Ｏデバイスと同一のＩ／Ｏデバイスを、マイグレーション先の論理パーティションが引き続き用いるように設定する。【選択図】図１
2010237737.tif 000002
【特許請求の範囲】
【請求項１】
物理マシンのハードウェアリソースを論理的に分割することにより、パススルーＩ／Ｏ方式を採用する複数の論理パーティションを生成し、当該論理パーティションをマイグレーションするシステムにおける動的マイグレーション装置において、
マイグレーションを行った際に、マイグレーション元の論理パーティションが用いていたＩ／Ｏデバイスと同一のＩ／Ｏデバイスを、マイグレーション先の論理パーティションが引き続き用いるように設定することを特徴とする動的マイグレーション装置。
【請求項２】
請求項１に記載の動的マイグレーション装置において、
マイグレーション先となるハードウェアリソースを前記物理マシン上で仮想マシンが確
保した後に、マイグレーションの実行指示を受け付ける管理コンソール制御手段と、
前記実行指示の受付を契機としてマイグレーション支援手段にマイグレーションの開始を指示するコンフィグ制御手段と、
前記コンフィグ制御手段の前記指示に基づきマイグレーション元の主記憶装置のデータをマイグレーション先の主記憶装置に移送し、前記マイグレーション元の主記憶装置のデータの全てについて移送が完了した後に、前記マイグレーション元での演算処理を中止させると共に配下のＩ／ＯデバイスからのＤＭＡ（Direct Memory Access）をマスクし、前記コンフィグ制御手段が有する論理パーティションと前記Ｉ／Ｏデバイスの対応に関する情報を更新し、当該更新の後に前記マスクを解除し、前記マイグレーション先にて前記演算処理を再開させるマイグレーション支援手段と、
を有することを特徴とする動的マイグレーション装置。
【請求項３】
請求項１又は２に記載の動的マイグレーション装置において、
前記マイグレーション元と、前記マイグレーション先が異なる物理マシン上に存在することを特徴とする動的マイグレーション装置。
【請求項４】
請求項１乃至３の何れか１項に記載の動的マイグレーション装置において、
前記マイグレーションの対象となる１つの前記論理パーティションに対して複数のＩ／Ｏデバイスを用意し、Ｉ／Ｏデバイスを冗長化することを特徴とする動的マイグレーション装置。
【請求項５】
物理マシンと、当該物理マシンと接続されている請求項１乃至４の何れか１項に記載の動的マイグレーション装置と、を備えるコンピュータシステムにおいて、
前記動的マイグレーション装置を用いて、前記マイグレーションを行うことを特徴とするコンピュータシステム。
【請求項６】
物理マシンのハードウェアリソースを論理的に分割することにより、パススルーＩ／Ｏ方式を採用する複数の論理パーティションを生成し、当該論理パーティションをマイグレーションするシステムにおける動的マイグレーション方法において、
マイグレーションを行った際に、マイグレーション元の論理パーティションが用いていたＩ／Ｏデバイスと同一のＩ／Ｏデバイスを、マイグレーション先の論理パーティションが引き続き用いるように設定することを特徴とする動的マイグレーション方法。
【請求項７】
請求項６に記載の動的マイグレーション方法において、
マイグレーション先となるハードウェアリソースを前記物理マシン上で仮想マシンが確
保した後に、マイグレーションの実行指示を受け付ける管理コンソール制御ステップと、
前記実行指示の受付を契機としてマイグレーション支援ステップによるマイグレーションの開始を指示するコンフィグ制御手段を用意するステップと、
前記コンフィグ制御手段の前記指示に基づきマイグレーション元の主記憶方法のデータをマイグレーション先の主記憶方法に移送し、前記マイグレーション元の主記憶方法のデータの全てについて移送が完了した後に、前記マイグレーション元での演算処理を中止させると共に配下のＩ／ＯデバイスからのＤＭＡをマスクし、前記コンフィグ制御手段が有する論理パーティションと前記Ｉ／Ｏデバイスの対応に関する情報を更新し、当該更新の後に前記マスクを解除し、前記マイグレーション先にて前記演算処理を再開させるマイグレーション支援ステップと、
を有することを特徴とする動的マイグレーション方法。
【請求項８】
請求項６又は７に記載の動的マイグレーション方法において、
前記マイグレーション元と、前記マイグレーション先が異なる物理マシン上に存在することを特徴とする動的マイグレーション方法。
【請求項９】
請求項６乃至８の何れか１項に記載の動的マイグレーション方法において、
前記マイグレーションの対象となる１つの前記論理パーティションに対して複数のＩ／Ｏデバイスを用意し、Ｉ／Ｏデバイスを冗長化することを特徴とする動的マイグレーション方法。
【請求項１０】
物理マシンのハードウェアリソースを論理的に分割することにより、パススルーＩ／Ｏ方式を採用する複数の論理パーティションを生成し、当該論理パーティションをマイグレーションするシステムにおける動的マイグレーションプログラムにおいて、
マイグレーションを行った際に、マイグレーション元の論理パーティションが用いていたＩ／Ｏデバイスと同一のＩ／Ｏデバイスを、マイグレーション先の論理パーティションが引き続き用いるように設定する動的マイグレーション装置としてコンピュータを機能させることを特徴とする動的マイグレーションプログラム。
【請求項１１】
請求項１０に記載の動的マイグレーションプログラムにおいて、前記動的マイグレーション装置が、
マイグレーション先となるハードウェアリソースを前記物理マシン上で仮想マシンが確
保した後に、マイグレーションの実行指示を受け付ける管理コンソール制御手段と、
前記実行指示の受付を契機としてマイグレーション支援手段にマイグレーションの開始を指示するコンフィグ制御手段と、
前記コンフィグ制御手段の前記指示に基づきマイグレーション元の主記憶装置のデータをマイグレーション先の主記憶装置に移送し、前記マイグレーション元の主記憶装置のデータの全てについて移送が完了した後に、前記マイグレーション元での演算処理を中止させると共に配下のＩ／ＯデバイスからのＤＭＡをマスクし、前記コンフィグ制御手段が有する論理パーティションと前記Ｉ／Ｏデバイスの対応に関する情報を更新し、当該更新の後に前記マスクを解除し、前記マイグレーション先にて前記演算処理を再開させるマイグレーション支援手段と、
を有することを特徴とする動的マイグレーションプログラム。
【請求項１２】
請求項１０又は１１に記載の動的マイグレーションプログラムにおいて、
前記マイグレーション元と、前記マイグレーション先が異なる物理マシン上に存在することを特徴とする動的マイグレーションプログラム。
【請求項１３】
請求項１０乃至１２の何れか１項に記載の動的マイグレーションプログラムにおいて、
前記マイグレーションの対象となる１つの前記論理パーティションに対して複数のＩ／Ｏデバイスを用意し、Ｉ／Ｏデバイスを冗長化することを特徴とする動的マイグレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのハードウェアリソースを論理的に分割して複数の論理パーティション（以下、適宜「ＬＰＡＲ」と表記する。）を構成し、運用中の諸条件（ハードウェアリソースの使用率、電力消費量、その他）に応じて、構成する前記ＬＰＡＲをマイグレーションすることに関する。
【背景技術】
【０００２】
コンピュータシステムにおける論理パーティショニング（或いは仮想化）技術においては、ハイパーバイザ又は仮想マシンモニタ（ＶＭＭ：Virtual Machine Monitor）と呼ばれる特権モードで動作する制御ソフトウェアがコンピュータシステムの物理ハードウェアを制御する。
【０００３】
ハイパーバイザは、物理マシンのＣＰＵ・メモリ・Ｉ／Ｏデバイスなどのハードウェア資源（以下、適宜「ハードウェアリソース」と表記する。）を論理的に分割し、コンピュータシステム上に複数の論理パーティションを構成するように制御する。コンピュータシステム上の各論理パーティションでは、それぞれ分配されたハードウェア資源を利用して仮想マシン（オペレーティングシステムを含む。）が稼動することができる。
【０００４】
ここで、論理パーティショニング技術におけるＩ／Ｏデバイスの制御は、ハイパーバイザ内の特権デバイスドライバが集中制御することにより行われる。そのため、各オペレーティングシステムに含まれるデバイスドライバは、Ｉ／Ｏデバイスの制御をする際に特権デバイスドライバを介してＩ／Ｏデバイスにアクセスする必要がある。そして、この特権デバイスドライバを介するという処理が存在することにより、大きなオーバヘッドが発生し、論理パーティショニング（或いは仮想化）環境において十分な性能が得られないことがあった。
【０００５】
この点を鑑みて、ハイパーバイザがＩ／Ｏデバイスの資源割り当て管理のみを実施し、Ｉ／Ｏデバイスの制御は各仮想マシン上のオペレーティングシステムに含まれるデバイスドライバが直接行う方式（パススルーＩ／Ｏ方式）が採用されるようになっている。このパススルーＩ／Ｏ方式を用いることにより、上述のＩ／Ｏデバイスの制御をする際に特権デバイスドライバを介してＩ／Ｏデバイスにアクセスする必要があるという問題が解消できる。
【０００６】
他方、複数の物理マシンを用意し、仮想マシンを同一物理サーバ内、及び、異なる物理サーバ間で動的にマイグレーション（移動）するという技術も存在する。そして、例えば、高負荷状態になっている物理マシンから、低負荷状態の物理マシンに仮想マシンのマイグレーションを行うことにより各物理マシンの負荷状態の平準化を図ることが可能となる（例えば、特許文献１の段落［００１７］、特許文献２の段落［００１９］、［００２０］等参照。）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−３２７２７９号公報
【特許文献２】特開２００８−２１７３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したようなパススルー方式のＩ／Ｏデバイス制御においてマイグレーションを行う場合には、次のような課題がある。
【０００９】
第一の課題は、パススルーＩ／Ｏ方式では仮想マシン内のＩ／Ｏアクセスに伴うメモリ更新を、仮想マシンのＩ／Ｏデバイスが直接更新してしまうため、ハイパーバイザは仮想マシン内のＩ／Ｏアクセスに伴うメモリ更新を管理することができなくなる。そして、その結果として、仮想マシンを同一物理サーバ内、及び、異なる物理サーバ間で動的にマイグレーションする際に、ハイパーバイザが仮想マシンのマイグレーションの前・後でメモリの一致性を保障することが困難となるということである。すなわち、動的なマイグレーションを行う場合には、マイグレーションを行う仮想マシン上のパススルーＩ／Ｏデバイスを仮想マシン上で一旦切り離し、その状態で仮想マシンのマイグレーションを実施し、更にマイグレーション実行後に切り離したパススルーＩ／Ｏデバイスを仮想マシン上で再度組み込むといった制御を行う必要が生じている。そしてこれにより、動的なマイグレーションの実施において運用上の制約が発生している、更に、システムストレージデバイスがパススルー方式を採用したＩ／Ｏデバイスであった場合、切り離すこともとできないため、動的なマイグレーションを実行すること自体ができないという制約も生じている。
【００１０】
第二の課題は、プロセッサのマルチコア（Ｍａｎｙ  ＣＯＲＥ）化が進むにつれ、仮想マシンの大規模化（構成規模、及び、仮想マシン数の増大）が進んでいる。この点、大規模な仮想マシンにおいては、仮想マシン毎に多数のパススルーＩ／Ｏデバイスが接続されるケースが多く、仮想マシンのマイグレーションを想定して、各仮想マシン対応に専用のパススルー方式のＩ／Ｏデバイスを割り当てるにはシステム構築コストが高価（必要Ｉ／Ｏスロット数の増大をカバーする巨大なシステムが必要）になってしまうということである。
【００１１】
そこで、本発明はパススルーＩ／Ｏ方式を採用するＬＰＡＲにおいて動的なマイグレーションを実施することが可能な、パススルーＩ／Ｏデバイスを伴うＬＰＡＲの動的マイグレーション装置、その方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の観点によれば、物理マシンのハードウェアリソースを論理的に分割することにより、パススルーＩ／Ｏ方式を採用する複数の論理パーティションを生成し、当該論理パーティションをマイグレーションするシステムにおける動的マイグレーション装置において、マイグレーションを行った際に、マイグレーション元の論理パーティションが用いていたＩ／Ｏデバイスと同一のＩ／Ｏデバイスを、マイグレーション先の論理パーティションが引き続き用いるように設定することを特徴とする動的マイグレーション装置が提供される。
【００１３】
本発明の第２の観点によれば、物理マシンのハードウェアリソースを論理的に分割することにより、パススルーＩ／Ｏ方式を採用する複数の論理パーティションを生成し、当該論理パーティションをマイグレーションするシステムにおける動的マイグレーション方法において、マイグレーションを行った際に、マイグレーション元の論理パーティションが用いていたＩ／Ｏデバイスと同一のＩ／Ｏデバイスを、マイグレーション先の論理パーティションが引き続き用いるように設定することを特徴とする動的マイグレーション方法が提供される。
【００１４】
本発明の第３の観点によれば、物理マシンのハードウェアリソースを論理的に分割することにより、パススルーＩ／Ｏ方式を採用する複数の論理パーティションを生成し、当該論理パーティションをマイグレーションするシステムにおける動的マイグレーションプログラムにおいて、マイグレーションを行った際に、マイグレーション元の論理パーティションが用いていたＩ／Ｏデバイスと同一のＩ／Ｏデバイスを、マイグレーション先の論理パーティションが引き続き用いるように設定する動的マイグレーション装置としてコンピュータを機能させることを特徴とする動的マイグレーションプログラムが提供される。
【発明の効果】
【００１５】
本発明によれば、コンピュータシステムのＩ／Ｏコントローラに上記動作を持つマイグレーション支援部を実装し、ハイパーバイザと連携できることから、パススルーＩ／Ｏ方式を採用するＬＰＡＲにおいて動的なマイグレーションを実施することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態の基本的構成を表すブロック図である。
【図２】本発明の実施形態のＩ／Ｏコントローラの基本的構成を表すブロック図である。
【図３】本発明の実施形態のコンフィグ制御部９８の基本的構成を表す図である。
【図４】本発明の実施形態のコンフィグ制御部９８が有する各テーブルについて説明する図である。
【図５】本発明の実施形態のＬＰＡＲについての資源割り当てについて表す図である。
【図６】本発明の実施形態のＬＰＡＲのマイグレーションについて表す図である。
【図７】本発明の実施形態の基本的動作を表すフローチャート（１／２）である。
【図８】本発明の実施形態の基本的動作を表すフローチャート（２／２）である。
【発明を実施するための形態】
【００１７】
次に、本発明の実施形態について図面を用いて詳細に説明する。
【００１８】
図１に示すのは、本発明が想定するコンピュータシステムの一例で、ハードウェアリソースをハイパーバイザによって論理的に分割して複数のＬＰＡＲを構成したコンピュータシステムである。
【００１９】
第１の物理マシン４０は、主記憶装置（ＭＭＵ：Main Memory Unit）４１、プロセッサ（ＣＰＵ：Central Processing Unit）４２、Ｉ／Ｏハブ（ＩＯＨ：Input Output Hub）４３、管理コントローラ（BMC：Baseboard Management Controller）４４及びＩ／Ｏスロット群（Ｉ／Ｏスロット４５〜４８）を有している。
【００２０】
同様に、第２の物理マシン５０は、主記憶装置５１、プロセッサ５２、Ｉ／Ｏハブ５３、管理コントローラ５４及びＩ／Ｏスロット群（Ｉ／Ｏスロット５５〜５８）を有している。
また、同様に、第３の物理マシン６０は、主記憶装置６１、プロセッサ６２、Ｉ／Ｏハブ６３、管理コントローラ６４及びＩ／Ｏスロット群（Ｉ／Ｏスロット６６〜６８）を有している。
第１のＩ／Ｏ装置７０は、Ｉ／Ｏコントローラ（ＩＯＣ：Input Output control）７１とＩ／Ｏスロット群（Ｉ／Ｏスロット７１〜７８）を有している。
【００２１】
同様に、第２のＩ／Ｏ装置８０は、Ｉ／Ｏコントローラ８１とＩ／Ｏスロット群（Ｉ／Ｏスロット８１〜８８）を有している。
【００２２】
第１の物理マシン４０、第２の物理マシン５０、第３の物理マシン６０は、それぞれＩ／Ｏスロット４５、５５、６５に搭載されたＩ／Ｏアダプタを介して第１のＩ／Ｏ装置７０に接続される。加えて、第１の物理マシン４０、第２の物理マシン５０、第３の物理マシン６０は、Ｉ／Ｏスロット４６、５６、６６に搭載されたＩ／Ｏアダプタを介して第２のＩ／Ｏ装置８０にも接続される。
【００２３】
今回の説明では、説明の便宜上、第１の物理マシン４０、第２の物理マシン５０、第３の物理マシン６０の主記憶装置４１、５１、６１は、それぞれ２つの記憶の領域（第１の領域４１−１と第２の領域４１−２、第１の領域５１−１と第２の領域５１−２、第１の領域６１−１と第２の領域６１−２）を有しているものと想定する。
【００２４】
また、第１の物理マシン４０、第２の物理マシン５０、第３の物理マシン６０のプロセッサ４２、５２、６２は、それぞれ２つの演算コア（第１のコア４２−１と第２のコア４２−２、第１のコア５２−１と第２のコア５２−２、第１のコア６２−１と第２のコア６２−２）を有する。なお、今回は説明の便宜上演算コアの個数を２つと想定したが、これは本実施形態が適用可能な演算コアの数を限定するものではない。本実施形態は任意のコア数のプロセッサを用いることが出来る。例えば、Intel CorporationのIntel Core i7の4コア製品は最大で同時8スレッドまで処理が可能であるが、このようなＣＰＵを採用することも可能である。
【００２５】
更に、物理マシンの台数や、Ｉ／Ｏ装置の台数、Ｉ／Ｏスロットの個数等も、限定されるものではなく、任意の数を選択することが出来る。
【００２６】
また、第１の物理マシン４０、第２の物理マシン５０、第３の物理マシン６０上には、それぞれ第１のハイパーバイザ１０、第２のハイパーバイザ２０、第３のハイパーバイザ３０と呼ばれる制御ソフトウェアが動作し、それぞれの物理マシンのハードウェア資源を論理的に分割し、複数のＬＰＡＲを生成する。
【００２７】
図１においては、第１のハイパーバイザ１０、第２のハイパーバイザ２０、第３のハイパーバイザ３０は、それぞれ、第１のＬＰＡＲ１と第２のＬＰＡＲ２、第３のＬＰＡＲ３と予備ＬＰＡＲ６、第４のＬＰＡＲ４と予備ＬＰＡＲ７を生成し、各ＬＰＡＲ内で個別に独立したオペレーティングシステムが稼動し、仮想マシンが生成される。
【００２８】
図２は、図１におけるＩ／Ｏコントローラ７１の詳細な構成を説明する図である。なお、Ｉ／Ｏコントローラ８１も同様の構成を有しているためＩ／Ｏコントローラ８１については説明を省略する。まず、本実施形態のＩ／Ｏコントローラの概略について説明する。
【００２９】
本実施形態のＩ／Ｏコントローラは、システム上で構成される個々のＬＰＡＲからアクセスできる構造であり、Ｉ／Ｏコントローラ内の各Ｉ／ＯスロットがどのＬＰＡＲに構成されているかの諸情報を示す構成管理テーブルと、各ＬＰＡＲが使用するメモリ空間を示すメモリベーステーブルと、マイグレーション時のデータ移送状態等をメモリページ単位に管理・保持するマイグレーション管理テーブルと、マイグレーション元となるＬＰＡＲのメモリをマイグレーション先となるＬＰＡＲのメモリにデータを移送するマイグレーション支援部とを備える。尚、ＬＰＡＲにおけるＩ／Ｏデバイスの冗長性を考慮し、異なるＩ／Ｏコントローラ配下にＩ／Ｏデバイスを多重化するという構成（正・副の２重化構成等）をとってもよい。
【００３０】
また、３台の物理マシンの管理コントローラと２台のＩ／Ｏコントローラの管理コンソール制御部は、管理コンソールに接続されている（図示を省略する。）。管理コンソールは、システム管理者が個々のＬＰＡＲへの資源の分配、起動を含む様々な機能を行うことのできる個別の処理システムである。
【００３１】
次に、図２を参照して詳細を説明する。
【００３２】
Ｉ／Ｏコントローラ７１は、Ｉ／ＯハブＩ／Ｆ制御部９０、マイグレーション支援部９０−５、アウトバウンドバッファ制御部９４、インバウンドリードバッファ制御部９３、インバウンドバッファ制御部９２、アウトバウンド制御部９６、管理コンソール制御部９７、インバウンド制御部９５、コンフィグ制御部９８、及び、スロット制御部９９を有する。
【００３３】
Ｉ／ＯハブＩ／Ｆ制御部９０は、各Ｉ／Ｏハブからのトランザクションを受信し、トランザクションの種別に応じてＩ／Ｏコントローラ内の適切な格納先にルーティングする制御機能を有する。更にＩ／ＯハブＩ／Ｆ制御部９０は、後述するインバウンドバッファ（Inbound Buffer）制御部９２とのＩ／Ｆを有し、インバウンドバッファ制御部９２からのトランザクションを各Ｉ／Ｏハブ（Ｉ／Ｏハブ４３、５３、６３）へ送出する制御機能を有する。加えて、Ｉ／ＯハブＩ／Ｆ制御部９０は、マイグレーション支援部９０−５を有し、後述するコンフィグ制御部９８の持つ各種テーブルの情報を参照し、マイグレーション元ＬＰＡＲの使用するメモリデータをマイグレーション先ＬＰＡＲのメモリ領域にデータ移送する機能を持つ。
【００３４】
アウトバウンドバッファ（Outbound Buffer）制御部９４は、Ｉ／ＯハブＩ／Ｆ制御部９０とのＩ／Ｆを有し、Ｉ／ＯハブＩ／Ｆ制御部９０からのＯｕｔｂｏｕｎｄリクエストトランザクションを受信する。そして、アウトバウンドバッファ制御部９４は、受信したトランザクションを自らが有するバッファ９４−１（図示は省略する）に格納する。
【００３５】
加えてアウトバウンドバッファ制御部９４は、後述するアウトバウンド（Outbound）制御部９６とのＩ／Ｆを有する。アウトバウンドバッファ制御部９４は、トランザクションをバッファリングし、バッファ９４−１に格納されているトランザクションをアウトバウンド制御部９６に送信する制御機能を有する。
【００３６】
インバウンドバッファ制御部９２は、後述するインバウンド（Inbound）制御部９５とのＩ／Ｆを有し、Ｏｕｔｂｏｕｎｄリプライトランザクションと、Ｉｎｂｏｕｎｄライトリクエストトランザクションを受信する。
【００３７】
また、インバウンドバッファ制御部９２は、後述するインバウンドリードバッファ（Inbound Read Buffer）制御部９３とのＩ／Ｆを有し、インバウンドリードバッファ制御部９３からのＩｎｂｏｕｎｄリードリクエストトランザクションを受信する。インバウンドバッファ制御部９２は、受信した各トランザクションを格納するバッファ９２−１（図示は省略する）を有す。またインバウンドバッファ制御部９２は、Ｉ／ＯハブＩ／Ｆ制御部９０とのＩ／Ｆを有し、受信したトランザクションをＩ／ＯハブＩ／Ｆ制御部９０に送信する制御機能を有する。
【００３８】
インバウンドリードバッファ制御部９３は、Ｉ／ＯハブＩ／Ｆ制御部９０とのＩ／Ｆを有し、Ｉ／ＯハブＩ／Ｆ制御部９０からＩｎｂｏｕｎｄリードリプライトランザクション（主記憶装置からのリードデータ）を受信し、受信したトランザクションを格納するバッファ９３−１（図示は省略する）を有す。
【００３９】
また、インバウンドリードバッファ制御部９３は、Ｉｎｂｏｕｎｄリードリクエストトランザクションで要求されたデータがバッファ９３−１に揃ったかチェックする機能を有し、データが揃っていたならば該当データをバッファ９３−１から読み出しアウトバウンド制御部９６に送信する制御機能を有する。
【００４０】
スロット制御部９９は、後述するアウトバウンド制御部９６とインバウンド制御部９５、Ｉ／Ｏデバイス群とのＩ／Ｆを有し、Ｉ／Ｏデバイスとのプロトコルに従って接続されたＩ／ＯデバイスとのＩ／Ｆ制御機能を有する。
【００４１】
アウトバウンド制御部９６は、アウトバウンドバッファ制御部９４とインバウンドリードバッファ制御部９３とスロット制御部９９、後述するインバウンド制御部９５とコンフィグ制御部９８とのＩ／Ｆを有している。加えて、アウトバウンド制御部９６は、アウトバウンドバッファ制御部９４もしくはインバウンドリードバッファ制御部９３から受信するトランザクションを、スロット制御部９９、インバウンド制御部９５、コンフィグ制御部９８にルーティングする機能を有す。
【００４２】
なお、ルーティング先はトランザクション種別により決定する。具体的には、アウトバウンドバッファ制御部９４から受信するＩ／Ｏコントローラ自身宛のコンフィグレーションリクエストトランザクションはコンフィグ制御部９８に送信する。また、インバウンドリードバッファ制御部９３から受信するＩｎｂｏｕｎｄリードリプライトランザクションはスロット制御部９９に送信する。アウトバウンドバッファ制御部９４から受信するＯｕｔｂｏｕｎｄリクエストトランザクションは、スロット制御部９９に送信する。
【００４３】
インバウンド制御部９５は、インバウンドバッファ制御部９２、インバウンドリードバッファ制御部９３、スロット制御部９９、アウトバウンド制御部９６、後述するコンフィグ制御部９８とのＩ／Ｆを有している。加えて、インバウンド制御部９５は、スロット制御部９９、アウトバウンド制御部９６、コンフィグ制御部９８から受信するトランザクションを、インバウンドバッファ制御部９２もしくはインバウンドリードバッファ制御部９３にルーティングする機能を有す。
【００４４】
ルーティング先はトランザクション種別により決定する。具体的には、コンフィグ制御部９８からから受信するコンフィグレーションリプライトランザクション、およびスロット制御部９９とアウトバウンド制御部９６から受信するＯｕｔｂｏｕｎｄリプライトランザクション、およびスロット制御部９９から受信するＩｎｂｏｕｎｄライトリクエストトランザクションはインバウンドバッファ制御部９２に送信する。スロット制御部９９から受信するＩｎｂｏｕｎｄリードリクエストトランザクションはインバウンドリードバッファ制御部９３に送信する。
【００４５】
次に、図３を参照してコンフィグ制御部９８について説明する。コンフィグ制御部９８は、各種コンフィグレーションレジスタを有し、その一部として構成管理テーブル９８−１、マイグレーション情報テーブル９８−２、マイグレーション管理テーブル９８−３及びメモリベーステーブル９８−４を有する。
【００４６】
また、コンフィグ制御部９８は、アウトバウンド制御部９６とインバウンド制御部９５とのＩ／Ｆを有し、アウトバウンド制御部９６から受信するリクエストトランザクションの指示に従いコンフィグレーションレジスタを更新し、必要に応じてリプライトランザクションをインバウンド制御部９５に送信する。構成管理テーブル９８−１、マイグレーション情報テーブル９８−２、マイグレーション管理テーブル９８−３、メモリベーステーブル９８−４の情報は、Ｉ／ＯハブＩ／Ｆ制御部９０、及び、スロット制御部９９に分配される。
【００４７】
管理コンソール制御部９７は、外部に接続された管理コンソールとのＩ／Ｆとコンフィグ制御部９８とのＩ／Ｆを有し、外部接続された管理コンソールからの指示に従い、コンフィグ制御部９８内の各種レジスタ群の更新・参照制御を中継する機能を持つ。
【００４８】
図４は、図３に示したコンフィグ制御部９８の構成管理テーブル９８−１、マイグレーション情報テーブル９８−２、マイグレーション管理テーブル９８−３、メモリベーステーブル９８−４の構成を説明する図である。
【００４９】
図４を参照すると、構成管理テーブル９８−１は、Ｉ／ＯコントローラのＩ／Ｏスロットの構成情報を示すテーブルである。本構成管理テーブル９８−１は、ＬＰＡＲ＃、ＰＯＲＴ＃、Ｏｕｔｂｏｕｎｄ  Ｒａｎｇｅ情報を有している。ＬＰＡＲ＃、ＰＯＲＴ＃は、Ｉ／Ｏコントローラが保有する各Ｉ／Ｏ  ＳＬＯＴがどのＬＰＡＲ番号に属し、Ｉ／ＯハブＩ／Ｆ制御部９０のどのＩ／ＯハブＩ／Ｆ  ＰＯＲＴを介して接続されているかを示す。Ｏｕｔｂｏｕｎｄ  Ｒａｎｇｅ情報は、該当Ｉ／Ｏ  ＳＬＯＴにアサインされたＯｕｔｂｏｕｎｄトランザクションのレンジ情報である。Ｏｕｔｂｏｕｎｄ  Ｒａｎｇｅ情報は、上位装置であるＩ／Ｏハブから受信したＯｕｔｂｏｕｎｄ  トランザクションを対応するＳＬＯＴへ振り分けるために使用される。
【００５０】
マイグレーション情報テーブル９８−２は、Ｍビット（マイグレーション実行中ビット）、マイグレーション先ＬＰＡＲ＃、マイグレーション先ＰＯＲＴ＃を有している。マイグレーション先ＬＰＡＲ＃は、該当する論理パーティションがどのＬＰＡＲ番号にマイグレーションすべきかを示す。また、マイグレーション先ＰＯＲＴ＃は、Ｉ／ＯハブＩ／Ｆ制御部９０のどのＩ／ＯハブＩ／Ｆポートにマイグレーション先の物理マシンが接続されているかを示す。
【００５１】
マイグレーション管理テーブル９８−３は、ＬＰＡＲのマイグレーション時の該当ＬＰＡＲが保有するメモリデータのデータ移送状態等をメモリページ単位毎（エントリ）に管理・保持するテーブルである。本マイグレーション管理テーブル９８−３は、Ｖビット（エントリ有効ビット）、ＭＣビット（マイグレーション完了ビット）、制御情報（該当ページのＲ／Ｗ可能属性）とで構成される。
【００５２】
メモリベーステーブル９８−４は、各ＬＰＡＲが使用する上位装置側におけるメモリ空間のメモリ情報を示すテーブルである。メモリベーステーブル９８−４は、メモリベースアドレス、メモリページ数とで構成される。メモリベースアドレス、及び、メモリページ数は、Ｉ／Ｏデバイスからのメモリアクセス、及び、マイグレーション支援部９０−５によるデータ移送処理時に使用される。
【００５３】
実施形態の動作の説明
本発明の一実施形態における動作を、図を参照して説明する。
【００５４】
今回の説明では、まず図１に示す各物理マシン上にて特権モードで動作する制御ソフトウェア（ハイパーバイザ）の制御の下で、４つのＬＰＡＲを構成している。
【００５５】
具体的には、図５に示すように、第１のＬＰＡＲ１には、第１の物理マシン４０上の第１のコア４２−１と主記憶装置４１−１と第１のＩ／Ｏ装置７０のＩ／Ｏスロット７２、７３及び第２のＩ／Ｏ装置８０のＩ／Ｏスロット８２、８３が占有資源として割り当てられている。
【００５６】
同じく、第２のＬＰＡＲ２には、第１の物理マシン４０上の第１のコア４２−２と主記憶装置４１−２と第１のＩ／Ｏ装置７０のＩ／Ｏスロット７４、７５及び第２のＩ／Ｏ装置８０のＩ／Ｏスロット８４、８５が占有資源として割り当てられている。
【００５７】
同じく、第３のＬＰＡＲ３には、第２の物理マシン５０上の第１のコア５２−１と主記憶装置５１−１と第１のＩ／Ｏ装置７０のＩ／Ｏスロット７６、７７及び第２のＩ／Ｏ装置８０のＩ／Ｏスロット８６、８７が占有資源として割り当てられている。
【００５８】
同じく、第４のＬＰＡＲ４には、第３の物理マシン６０上の第１のコア６１−１と主記憶装置６１−１と第１のＩ／Ｏ装置７０のＩ／Ｏスロット７８、７９及び第２のＩ／Ｏ装置８０のＩ／Ｏスロット８８、８９が占有資源として割り当てられている。
【００５９】
なお、今回は上述したようにＬＰＡＲにおけるＩ／Ｏデバイスの冗長性を考慮し、異なるＩ／Ｏコントローラ配下にＩ／Ｏデバイスを多重化した状態である。すなわち、各ＬＰＡＲは、第１のＩ／Ｏ装置７０に接続されているデバイスを（正）として、また第２のＩ／Ｏ装置８０に接続されているデバイスを（副）として用いることにより多重化を実現している。
【００６０】
このような状況下でハイパーバイザの制御により、ＬＰＡＲに占有資源として割り当てられたハードウェアリソースを用いて、それぞれのＬＰＡＲ上でオペレーティングシステムが動作する。このとき、オペレーティングシステム及びオペレーティングシステム上で動作するアプリケーション及びデバイスドライバからは、自ＬＰＡＲに割り当てられたハードウェアリソースだけしかアクセスすることができない。
【００６１】
各論理パーティションには、それぞれ占有のＩ／Ｏスロットが割り当てられており、オペレーティングシステム及びデバイスドライバから該Ｉ／Ｏスロット上に実装されたＩ／Ｏデバイスを直接制御する方式（パススルーＩ／Ｏ方式）を用いている。パススルーＩ／Ｏ方式では、各論理パーティション内で動作するオペレーティングシステム及びデバイスドライバによって直接制御する（ハイパーバイザはＩ／Ｏスロットの資源分割にのみ関与し、Ｉ／Ｏデバイスの制御においてはエミュレーションを行う等の関与を行わない）ため、Ｉ／Ｏデバイスを高速に制御できる。また、３台の物理マシンと２台のＩ／Ｏコントローラは、管理コンソールに接続されている。管理コンソールは、システム管理者が個々のＬＰＡＲへの資源の分配、起動を含む様々な機能を行うことのできる個別の処理システムである。
【００６２】
運用中の諸条件（ハードウェアリソースの使用率、電力消費量、その他）に応じて、構成する前記ＬＰＡＲをマイグレーションするための動作を説明する。
【００６３】
まず本実施形態の動作の前提として、システム管理者が、管理コンソールにて現在の論理パーティションの稼動状態を確認する。具体的には、各物理マシンのプロセッサの使用率や消費電力を確認し、論理パーティションのマイグレーションが必要か否かを判断する。
【００６４】
例えば、第１の物理マシン４０において稼動する第１のＬＰＡＲ１と第２のＬＰＡＲ２のプロセッサ使用率が軒並み高く、第１の物理マシン４０のプロセッサ能力を著しく利用している状態（高負荷状態）が確認できたとする。この場合に、第１のＬＰＡＲ１を負荷が低い状態である第２の物理マシン５０の予備ハードウェアリソースへマイグレーションすることを判断したと仮定する。図６がそのマイグレーションイメージである。
【００６５】
システム管理者は、管理コンソールを介して、マイグレーション先の論理パーティションとして必要なハードウェアリソース（プロセッサ、主記憶装置、Ｉ／Ｏスロット）の確保要求をマイグレーション先のハイパーバイザに対して指示する。
【００６６】
図５において、第１のコア５２−１と主記憶装置５１−１がマイグレーション先のハードウェアリソースとしてアサインされる。一方、Ｉ／Ｏのスロットに関しては、マイグレーション元の第１のＬＰＡＲ１のＩ／Ｏスロット（当該スロットに接続されているデバイス）をそのまま利用することとなる。なお、各図において第１のＬＰＡＲ１のマイグレーション後のＬＰＡＲ第２の仮想マシン５０上では「第５のＬＰＡＲ５」と表記する。第１のＩ／Ｏ装置７０及びまた第２のＩ／Ｏ装置８０上では、「第１のＬＰＡＲ１」とそのまま表記する。
【００６７】
システム管理者は、マイグレーションに必要なハードウェアリソースの確保が完了した後、管理コンソールを介して、マイグレーション元第１のＬＰＡＲ１からマイグレーション先の第５のＬＰＡＲ５への動的なマイグレーションの実行を第１のハイパーバイザ１０、第２のハイパーバイザ２０に対して指示する。
【００６８】
次に、図７及び図８のフローチャートを用いて、本実施形態の動作について説明する。
【００６９】
第１のハイパーバイザ１０、第２のハイパーバイザ２０は、管理コンソールからのマイグレーション実行指示に従い、Ｉ／Ｏコントローラの構成管理テーブル９８−１、マイグレーション情報テーブル９８−２、マイグレーション管理テーブル９８−３、メモリベーステーブル９８−４の各種情報を設定する。そして、マイグレーション支援部９０−５に論理パーティションのマイグレーション開始を指示する（ステップＳ１０１）。
【００７０】
この指示を受け付けたマイグレーション支援部９０−５は、構成管理テーブル９８−１、マイグレーション情報テーブル９８−２、マイグレーション管理テーブル９８−３及びメモリベーステーブル９８−４の情報を参照し、マイグレーション元第１のＬＰＡＲ１の主記憶装置４１−１のメモリデータをマイグレーション先第５のＬＰＡＲ５の主記憶装置５１−２に対してページ単位でデータ移送処理を実施する。
【００７１】
まず、マイグレーション支援部９０−５は、マイグレーション情報テーブル９８−２のＭビットがＭ＝１のエントリを保有するエントリ番号をマイグレーション元論理パーティション番号と判断する（ステップＳ１０２）。
【００７２】
マイグレーション支援部９０−５は、マイグレーション元論理パーティション番号で示されるマイグレーション管理テーブル９８−３の各エントリをサーチし、ＶビットとＭＣビットがそれぞれＶ＝１、ＭＣ＝０のエントリのページのデータ移送処理を実施する（ステップＳ１０３）。本ステップにおけるデータ移送処理で使用するデータ移送アドレスは、マイグレーション元論理パーティション番号とマイグレーション先論理パーティション番号に対応したメモリベーステーブル９８−４にページオフセットを加算したアドレスを用いる。今回の場合は、マイグレーション元第１のＬＰＡＲ１で示されるメモリベースアドレスにページオフセットを加算したアドレスをデータ移送元アドレスとする。また、マイグレーション先第５のＬＰＡＲ５で示されるメモリベースアドレスにページオフセットを加算したアドレスをデータ移送先アドレスとする。
【００７３】
更に、マイグレーション支援部９０−５によるページ単位のデータ移送処理の完了毎に、マイグレーション管理テーブル９８−３の該当ページに関するＭＣビットの更新（ＭＣ＝１）を行う（ステップＳ１０４）。
【００７４】
第１のハイパーバイザ１０は、マイグレーション処理中にマイグレーション元第１のＬＰＡＲ１内でのメモリ更新が発生した場合には、マイグレーション支援部９０−５に対して再度データ移送処理を実施させるために、マイグレーション管理テーブル９８−３の該当ページに関するＭＣビットの更新（ＭＣ＝０）を行う（ステップＳ１０５）。
【００７５】
Ｉ／ＯコントローラのＩ／ＯハブＩ／Ｆ制御部９０は、マイグレーション処理中にＩ／Ｏデバイスからメモリ更新があった場合には、マイグレーション管理テーブル９８−３のＭＣビットを参照し、データ移送が既に完了している場合（ＭＣ＝１）（ステップＳ１０６においてＹｅｓ）には、マイグレーション元・マイグレーション先の両第１のＬＰＡＲ１、第５のＬＰＡＲ５に対してメモリ更新を行う（ステップＳ１０７）。
【００７６】
一方、データ移送が完了していない場合（ＭＣ＝０）（ステップＳ１０６においてＮｏ）には、マイグレーション元第１のＬＰＡＲ１に対してのみメモリ更新を行う（ステップＳ１０８）。
【００７７】
第１のハイパーバイザ１０は、マイグレーション支援部９０−５によるデータ移送状態を監視し、全てのメモリ情報がマイグレーション元第１のＬＰＡＲ１からマイグレーション先第５のＬＰＡＲ５に移送完了したか否かを確認する（ステップＳ１０９）。
【００７８】
そして、移送完了したことを確認した（ステップＳ１０９においてＹｅｓ）後に、マイグレーション元第１のＬＰＡＲ１での各種演算処理を保留すると共に配下のＩ／ＯデバイスからのＤＭＡ（Direct Memory Access）もマスクし、一時的にマイグレーション元第１のＬＰＡＲ１におけるメモリ更新を完全に抑止する（ステップＳ１１０）。
【００７９】
そして、第１のハイパーバイザ１０は、マイグレーション後の状態に合わせて構成管理テーブル９８−１、マイグレーション情報テーブル９８−２、マイグレーション管理テーブル９８−３、メモリベーステーブル９８−４の情報を更新する（ステップＳ１１１）。
【００８０】
その後、マイグレーション元第１のＬＰＡＲ１からマイグレーション先第５のＬＰＡＲ５に対して該ＬＰＡＲのＣＰＵコンテキスト情報等をＩ／Ｏコントローラ経由で転送し、マイグレーション先第５のＬＰＡＲ５にて該ＣＰＵコンテキスト情報等を用いた演算処理の再開とＩ／ＯデバイスのＤＭＡのマスクを解除することでマイグレーション処理を完了する（ステップＳ１１２）。
【００８１】
以上説明した本発明の実施形態は、以下に記載するような効果を奏する。
【００８２】
第一の効果は、コンピュータシステムのＩ／Ｏコントローラに上記動作を持つマイグレーション支援部を実装し、ハイパーバイザと連携することで、パススルーＩ／Ｏ方式を採用するＬＰＡＲにおいて動的なマイグレーションを実施することを可能とすることにある。
【００８３】
第二の効果は、ＬＰＡＲのマイグレーション時に、マイグレーション前で使用していたＩ／Ｏデバイスをマイグレーション後も継続使用できるので、Ｉ／Ｏデバイスに関する過剰なハードウェアリソース投資を抑えることができることにある。
【００８４】
なお、本発明の実施形態である各物理マシン、Ｉ／Ｏ装置は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【００８５】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【符号の説明】
【００８６】
１  第１のＬＰＡＲ
２  第２のＬＰＡＲ
３  第３のＬＰＡＲ
４  第４のＬＰＡＲ
５  第５のＬＰＡＲ
６、７  予備ＬＰＡＲ
１０  第１のハイパーバイザ
２０  第２のハイパーバイザ
３０  第３のハイパーバイザ
４０  第１の物理マシン
４１、５１、６１  主記憶装置
４１−１、５１−１、６１−１  第１の領域
４１−２、５１−２、６１−２  第２の領域
４２  プロセッサ
４２−１、５２−１、６２−１  第１のコア
４２−２、５２−２、６２−２  第２のコア
４３、５３、６３  Ｉ／Ｏハブ
４４、５４、６４  管理コントローラ
４５〜４８、５５〜５８、６５〜６８、７２〜７９、８２〜８９  Ｉ／Ｏスロット
５０  第２の物理マシン
６０  第３の物理マシン
７０  第１のＩ／Ｏ装置
７１、８１  Ｉ／Ｏコントローラ
８０  第１のＩ／Ｏ装置
９０  Ｉ／ＯハブＩ／Ｆ制御部
９０−１〜９０−４  ポート
９０−５  マイグレーション支援部
９２  インバウンドバッファ制御部
９３  インバウンドリードバッファ制御部
９４  アウトバウンドバッファ制御部
９５  インバウンド制御部
９６  アウトバウンド制御部
９７  管理コンソール制御部
９８  コンフィグ制御部
９８−１  構成管理テーブル
９８−２  イグレーション情報テーブル
９８−３  マイグレーション管理テーブル
９８−４  メモリベーステーブル
９９  スロット制御部
９９−１〜９９−８  スロット
【図１】
2010237737.tif 000003
【図２】
2010237737.tif 000004
【図３】
2010237737.tif 000005
【図４】
2010237737.tif 000006
【図５】
2010237737.tif 000007
【図６】
2010237737.tif 000008
【図７】
2010237737.tif 000009
【図８】
2010237737.tif 000010