(57)【特許請求の範囲】
【請求項１】
複数の仮想計算機を稼働可能な仮想計算機システムであって、
複数の物理通信ポートを備え、外部ネットワーク装置とネットワークを介して接続可能なネットワークデバイスと、
記憶デバイスと、
前記ネットワークデバイス及び前記記憶デバイスに接続された制御デバイスと、
前記複数の仮想計算機を管理するハイパバイザーと、
を有し、
前記ネットワークデバイスは、一の物理通信ポートに対して、前記仮想計算機に対して提供可能な仮想通信ポートを複数有し、
前記記憶デバイスは、
前記複数の物理通信ポートのそれぞれについて、前記ネットワークデバイスが提供可能な当該物理通信ポート上の複数の仮想通信ポートと、当該仮想通信ポートの使用状況を対応づけるネットワークデバイス管理情報と、
前記複数の仮想計算機のそれぞれについて、前記ハイパバイザーが管理する当該仮想計算機に複数のネットワーク論理ポートと、当該ネットワーク論理ポートに割り当てられたＭＡＣアドレスと対応づける仮想計算機構成情報と
を記憶し、
前記制御デバイスは、
前記複数の仮想計算機のうちの第１の仮想計算機を起動する際に、
前記ネットワークデバイス管理情報と前記仮想計算機構成情報とに基づいて、
前記ネットワークデバイスにより提供される前記複数の仮想通信ポートのうち未使用の第１の仮想通信ポートを選択し、
前記ハイパバイザーが前記第１の仮想計算機に提供する第１のネットワーク論理ポートに前記第１の仮想通信ポートを対応づけ、
前記第１のネットワーク論理ポートに割当てられたＭＡＣアドレスを、前記第１の仮想通信ポートに設定する
ことを特徴とする仮想計算機システム。
【請求項２】
前記制御デバイスは、
前記第１の仮想計算機を終了する際に、前記第１の仮想計算機に割り当てていた前記第１の仮想通信ポートのＭＡＣアドレスとして、前記外部ネットワーク装置で使用されないことが保証されるＭＡＣアドレスであるダミーＭＡＣアドレスを設定する
請求項１に記載の仮想計算機システム。
【請求項３】
前記ダミーＭＡＣアドレスは、いずれかの前記仮想計算機を起動する前までに、すべての前記仮想通信ポートに対して設定される
ことを特徴とする請求項２に記載の仮想計算機システム。
【請求項４】
全ての前記ダミーＭＡＣアドレスは、共通なアドレスである
ことを特徴とする請求項３に記載の仮想計算機システム。
【請求項５】
前記制御デバイスは、
前記ネットワークデバイスの前記仮想通信ポート中の割り当てられていない仮想通信ポートを、前記仮想計算機に割当てる
ことを特徴とする請求項１乃至４のうちのいずれか１項に記載の仮想計算機システム。
【請求項６】
複数の仮想計算機を稼働可能な計算機であって、外部ネットワーク装置とネットワークを介して接続可能であり一の物理通信ポートについて前記仮想計算機に対し提供可能な仮想通信ポートを複数有するネットワークデバイスを有する前記計算機で実行されるハイパバイザーであって、
前記複数の仮想計算機のうちの第１の仮想計算機を起動する際に、前記複数の物理通信ポートのそれぞれについて前記ネットワークデバイスが提供可能な当該物理通信ポート上の複数の仮想通信ポートと当該仮想通信ポートの使用状況を対応づけるネットワークデバイス管理情報と、前記複数の仮想計算機のそれぞれについて当該仮想計算機に複数のネットワーク論理ポートと当該ネットワーク論理ポートに割り当てられたＭＡＣアドレスと対応づける仮想計算機構成情報とに基づいて、
前記ネットワークデバイスにより提供される前記複数の仮想通信ポートのうち未使用の第１の仮想通信ポートを選択し、
前記第１の仮想計算機に提供する第１のネットワーク論理ポートに前記第１の仮想通信ポートを対応づけ、
前記第１のネットワーク論理ポートに割当てられたＭＡＣアドレスを、前記第１の仮想通信ポートに設定する
ことを前記計算機に実行させることを特徴とするハイパバイザー。
【請求項７】
前記第１の仮想計算機を終了する際に、前記第１の仮想計算機に割り当てていた前記第１の仮想通信ポートのＭＡＣアドレスとして、通信に使用される可能性のないダミーＭＡＣアドレスを設定する
ことを前記計算機に実行させることを特徴とする請求項６に記載のハイパバイザー。
【請求項８】
前記ダミーＭＡＣアドレスは、いずれかの前記仮想計算機を起動する前までに、すべての前記仮想通信ポートに対して設定される
ことを特徴とする請求項７に記載のハイパバイザー。
【請求項９】
全ての前記ダミーＭＡＣアドレスは、共通なアドレスである
ことを特徴とする請求項８に記載のハイパバイザー。
【請求項１０】
前記ネットワークデバイスの前記仮想通信ポート中の割り当てられていない仮想通信ポートを、前記仮想計算機に割当てる
ことを前記計算機に実行させることを特徴とする請求項６乃至９のうちのいずれか１項に記載のハイパバイザー。
【請求項１１】
複数の仮想計算機を稼働可能な計算機であって、外部ネットワーク装置とネットワークを介して接続可能であり一の物理通信ポートについて前記仮想計算機に対し提供可能な仮想通信ポートを複数有するネットワークデバイスを有する前記計算機で実行されるＭＡＣアドレス管理方法であって、
前記複数の仮想計算機のうちの第１の仮想計算機を起動する際に、前記複数の物理通信ポートのそれぞれについて前記ネットワークデバイスが提供可能な当該物理通信ポート上の複数の仮想通信ポートと当該仮想通信ポートの使用状況を対応づけるネットワークデバイス管理情報と、前記複数の仮想計算機のそれぞれについて当該仮想計算機に複数のネットワーク論理ポートと当該ネットワーク論理ポートに割り当てられたＭＡＣアドレスと対応づける仮想計算機構成情報とに基づいて、
前記ネットワークデバイスにより提供される前記複数の仮想通信ポートのうち未使用の第１の仮想通信ポートを選択し、
前記第１の仮想計算機に提供する第１のネットワーク論理ポートに前記第１の仮想通信ポートを対応づけ、
前記第１のネットワーク論理ポートに割当てられたＭＡＣアドレスを、前記第１の仮想通信ポートに設定する
ことを特徴とするＭＡＣアドレス管理方法。
【請求項１２】
前記第１の仮想計算機を終了する際に、前記第１の仮想計算機に割り当てていた前記第１の仮想通信ポートのＭＡＣアドレスとして、前記外部ネットワーク装置で使用されないことが保証されるＭＡＣアドレスであるダミーＭＡＣアドレスを設定する
ことを特徴とする請求項１１に記載のＭＡＣアドレス管理方法。
【請求項１３】
前記ダミーＭＡＣアドレスは、いずれかの前記仮想計算機を起動する前までに、すべての前記仮想通信ポートに対して設定される
ことを特徴とする請求項１２に記載のＭＡＣアドレス管理方法。
【請求項１４】
全ての前記ダミーＭＡＣアドレスは、共通なアドレスである
ことを特徴とする請求項１３に記載のＭＡＣアドレス管理方法。
【請求項１５】
前記ネットワークデバイスの前記仮想通信ポート中の割り当てられていない仮想通信ポートを、前記仮想計算機に割当てる
ことを特徴とする請求項１１乃至１４のうちのいずれか１項に記載のＭＡＣアドレス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理的なネットワークデバイスを複数の仮想計算機で共有する場合における論理的なネットワークデバイスのＭＡＣアドレスを管理する技術に関する。
【背景技術】
【０００２】
複数の仮想計算機を稼働させる仮想計算機システムが知られている。このような計算機システムとしては、複数の仮想計算機を管理するハイパバイザを有する仮想計算機システムが知られている（例えば、特許文献１参照）。
【０００３】
物理的なネットワークデバイスを複数の仮想計算機により共有する技術としては、仮想計算機上に、仮想的なネットワークデバイスを設けることで実現する方法が知られている（例えば、特許文献２参照）。
【０００４】
このような仮想的なネットワークデバイスを設けた共有技術においては、物理的なネットワークデバイスのＭＡＣアドレスとは別に、仮想計算機側の仮想的なネットワークデバイスのＭＡＣアドレスを仮想計算機自身が提供するのが一般的であり、物理的なネットワークデバイスが故障する等の理由で別固体に交換したとしても、ＯＳ（Operating  System）等の設定を変更することなく、仮想計算機上は全く同一のＭＡＣアドレスのまま利用を継続できる特徴がある。
【０００５】
このようにネットワークデバイスのＭＡＣアドレスを仮想計算機が管理するという機能を利用し、仮想的なネットワークデバイスのＭＡＣアドレスを含む仮想計算機の構成データをコピーすることで、物理的に異なる計算機上に仮想計算機を移動させて動作させる技術も提案され、現在利用されている（例えば、特許文献３参照）。
【０００６】
一方で、特許文献２に開示されているようなネットワークデバイスの共有技術では、物理計算機上のＣＰＵ（Central  Processing  Unit）の処理量が多く、仮想計算機のネットワークデバイスの性能が上がらないという問題が、近年の物理的なネットワークデバイスのスループット向上に伴い顕著なものとなってきた。
【０００７】
このような課題を克服するため、物理的なネットワークデバイス側に、複数の仮想計算機による仮想的なネットワークデバイスの共有を支援する技術が実装されるようになっている。その中でも、ＣＰＵにかかる負荷が非常に低い、ＳＲ−ＩＯＶ（シングル・ルート入出力仮想化）と呼ばれる仮想化技術が知られている（例えば、特許文献４参照）。
【０００８】
ＳＲ−ＩＯＶ技術を利用して、複数の仮想計算機により物理的なネットワークデバイスを共有する場合には、一般的には以下のような処理が行われる。
【０００９】
まず、ＳＲ−ＩＯＶの物理的なネットワークポート資源であるＰＦポートは、ホストＯＳ、またはハイパバイザ（仮想計算機モニタ）自身または、専用の管理用仮想計算機に割り当てられ、ベンダの提供するＰＦドライバを用いてデバイスの初期化処理等が行われる。
【００１０】
そして、仮想的なネットワークポート資源であるＶＦポートは、各仮想計算機に割り当てられ、ベンダの提供するＶＦドライバを用いて通信処理が行われる。この通信処理の際に、ＶＦドライバは、仮想計算機システムのメモリアドレスにマップされたＶＦポートの制御レジスタを読み書きする。この処理において、ハイパバイザが一切介在せず仮想計算機上のＣＰＵからこれらのレジスタを読み書きさせることが可能である。このようにハイパバイザを介在せず必要なＨ／Ｗ（ハードウェア）レジスタ資源に、ドライバ（ドライバを実行するＣＰＵ）がアクセスすることが可能であるため、ＳＲ−ＩＯＶ技術を利用したネットワークデバイスの共有は、以前の技術に比べ非常に低いＣＰＵ負荷でネットワークデバイスの共有を実現できる利点を持つ。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０００−２５９４３４号公報
【特許文献２】特開２００７−１５８８７０号公報
【特許文献３】特開２０１０−３３４０４号公報
【特許文献４】特表２０１１−５１７４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
一方で、ＳＲ−ＩＯＶ技術を用いた物理的なネットワークデバイスの共有方法では、物理的なネットワークデバイスが、そのまま、仮想計算機のゲストＯＳに認識されてしまう。例えば、各仮想計算機が使用するＶＦポートのネットワークデバイスのＭＡＣアドレスは、当該Ｈ／ＷベンダがＶＦポート用に提供するユニークなＭＡＣアドレスとなっているため、ネットワークデバイスが故障して別固体に交換するなどした場合には、各仮想計算機上に見えるＶＦポートのＭＡＣアドレスが変化してしまう。
【００１３】
また、物理的なネットワークデバイスを提供するＨ／Ｗベンダによっては、ＶＦポートのＭＡＣアドレスは、ベンダが確保したユニークな値ではなく、電源ＯＮ時に乱数により生成される値となる場合もあり、このようなＳＲ−ＩＯＶ対応のネットワークデバイスを利用すると、毎回仮想計算機上のＶＦポートのネットワークデバイスのＭＡＣアドレスが変化して見えたり、低確率ではあるが他のネットワークデバイスのＭＡＣアドレスと重複して通信ができなくなったりすることが発生する。
【００１４】
つまり、ＳＲ−ＩＯＶ機能を利用して、仮想計算機システム上でネットワークデバイスを共有する際に、物理ネットワークデバイスの提供するＶＦポートのＭＡＣアドレスを利用すると、物理的なネットワークデバイスの故障交換や、仮想計算機を別の物理計算機上に移動させる際に仮想計算機上のＶＦポートのＭＡＣアドレスが変化してしまい、物理的なネットワークデバイスの故障交換が困難となったり、仮想計算機を別の物理計算機に移動させる際の障害となってしまったりすることがある。
【００１５】
ＳＲ−ＩＯＶ機能によるネットワークデバイスの共有において、ハイパバイザ（仮想計算機モニタ）が介入しないことによる低ＣＰＵ負荷の利点を享受しつつも、ＶＦポートのＭＡＣアドレスには、ハイパバイザにより各仮想計算機用に用意されたＭＡＣアドレスが、ユーザの特別な操作なしに仮想計算機に割り当てたＶＦポート上で利用できるようにすることが要請される。
【００１６】
本発明は、上記課題に鑑みなされたものであり、その目的は、複数のＶＦポートのＭＡＣアドレスを、適切なＭＡＣアドレスに管理することのできる技術を提供することにある。
【課題を解決するための手段】
【００１７】
上記した課題の単純な解決方法としては、ハイパバイザが仮想計算機の起動時の初期化処理において、その仮想計算機が使用するＶＦポートにその仮想計算機用にハイパバイザが確保したＭＡＣアドレスを、ＰＦドライバを通じて設定するというものが考えられる。
【００１８】
しかし、この単純な解決方法を採用した場合、仮想計算機とＶＦポートの対応付けが固定されていないと稼動中のＶＦポートのＭＡＣアドレスと、非稼動のＶＦポートのＭＡＣアドレスが重複して正常に通信ができなくなる問題がある。一方、仮想計算機とＶＦポートとの対応付けが固定化されていると、仮想計算機を別の仮想計算機システムに移動した場合に、対応するＶＦポートとの対応付けができないことも起こりうる。
【００１９】
そこで、仮想計算機システムは、外部ネットワーク装置とネットワークを介して接続可能であり一の物理通信ポートについて仮想計算機に対し提供可能な仮想通信ポートを複数有するネットワークデバイスを有し、或る前記仮想計算機を起動する際に、複数の前記仮想計算機にそれぞれ対応した複数のＭＡＣアドレスであり仮想計算機に提供される仮想通信ポートに対して割り当てられる複数のＭＡＣアドレスから、上記或る仮想計算機に対応するＭＡＣアドレスを取得し、そのＭＡＣアドレスを、上記或る仮想計算機に対して割り当てる仮想通信ポートのＭＡＣアドレスとして設定する。
【発明の効果】
【００２０】
このような仮想通信ポート（ＶＦポート）のＭＡＣアドレス管理を行うと、仮想計算機の構成情報として予約されたＭＡＣアドレスが使用されるので、例えば、Ｈ／Ｗベンダが提供するＶＦポートのＭＡＣアドレスが変化することによる影響を受けない仮想計算機システムを提供できる。また、例えば、物理的なネットワークデバイスの交換の際や、仮想計算機を別の計算機システムに移動させる際において、Ｈ／Ｗベンダが提供するＶＦポートのＭＡＣアドレスが変わることによる悪影響を適切に防止することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施例に係る仮想計算機システムの概念構成図である。
【図２】図２は、実施例に係る仮想計算機リソース管理部の構成図である。
【図３】図３は、実施例に係るＳＲ−ＩＯＶ対応ネットワークデバイス管理部の構成図である。
【図４】図４は、実施例に係るハイパバイザ初期化処理のフローチャートである。
【図５】図５は、実施例に係る仮想計算機起動時処理のフローチャートである。
【図６】図６は、実施例に係る仮想計算機終了時処理のフローチャートである。
【図７】図７は、ハイパバイザ起動時におけるＳＲ−ＩＯＶ対応ネットワークデバイスの設定状態の一例を説明する図である。
【図８】図８は、仮想計算機を１つ起動した時におけるＳＲ−ＩＯＶ対応ネットワークデバイスの設定状態の一例を説明する図である。
【図９】図９は、仮想計算機を２つ起動した時におけるＳＲ−ＩＯＶ対応ネットワークデバイスの設定状態の一例を説明する図である。
【図１０】図１０は、ＭＡＣアドレス設定解除を行わない場合に発生する状況を説明する図である。
【発明を実施するための形態】
【００２２】
実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２３】
また、以下の説明では、プログラム、又はプログラムのモジュールを主語として処理を説明する場合があるが、プログラムやプログラムモジュールは、制御デバイスが有するプロセッサ（例えばＣＰＵ（Central  Processing  Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェースデバイス（例えばネットワークデバイス）を用いながら行う。このため、プログラム或いはプログラムモジュールを主語として説明された処理は、プロセッサ、そのプロセッサを有する制御デバイス或いはシステム（例えば、仮想計算機システム）が行う処理としても良い。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を制御デバイスが含んでも良い。プログラムは、プログラムソースからインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００２４】
以下、実施例を、図面を用いて説明する。
【００２５】
図１は、実施例に係る仮想計算機システムの概念構成図である。
【００２６】
仮想計算機システム１０は、物理資源（ハードウェア資源）２１を含む。物理資源２１は、例えば、プロセッサの一例としての物理ＣＰＵ３０、物理メモリ３１、物理ＩＯルートポート３２、及びＳＲ−ＩＯＶ対応ネットワークデバイス３３を含む。物理ＣＰＵ３０は、物理メモリ３１に格納されたプログラムを実行することにより各種処理を行う。物理メモリ３１は、物理ＣＰＵ３０により実行されるプログラム、データを記憶する。
【００２７】
ＳＲ−ＩＯＶ対応ネットワークデバイス３３は、物理的なネットワークポート（物理通信ポート）であるＰＦポート４０と、仮想的なネットワークポート（仮想通信ポート）であるＶＦポート４１（ＶＦポート１）、４２（ＶＦポート２）とを有する。ＰＦポート４０、ＶＦポート４１、４２は、内部ネットワークスイッチ４３を介して、外部ネットワーク装置（例えば計算機）２２へと接続可能である。ＰＦポート４０は、ＰＦポート用のＭＡＣアドレス１２０を記憶する。ＶＦポート４１，４２は、ＶＦポート用のＭＡＣアドレス１２１、１２２をそれぞれ記憶する。
【００２８】
物理資源２１上において、ハイパバイザ（仮想計算機モニタ）２０が動作する。ハイパバイザ２０は、物理ＣＰＵ３０が物理メモリ３１に格納された仮想計算機管理プログラムの一例であるハイパバイザプログラムを実行することにより構成される。ハイパバイザ２０は、仮想計算機起動処理部９４、仮想計算機終了処理部９５、ハイパバイザ初期化処理部９６、及び仮想計算機リソース管理部６０を有する。仮想計算機起動処理部９４、仮想計算機終了処理部９５、ハイパバイザ初期化処理部９６、及び仮想計算機リソース管理部６０は、物理ＣＰＵ３０が物理メモリ３１に格納されたプログラムを実行することにより構成される。仮想計算機起動処理部９４は、仮想計算機の起動時の処理を実行する。仮想計算機終了処理部９５は、仮想計算機の終了時の処理を実行する。ハイパバイザ初期化処理部９６は、ハイパバイザの起動時の処理を実行する。仮想計算機リソース管理部６０は、仮想計算機に割り当てる物理機資源を管理する。
【００２９】
ハイパバイザ２０上において、管理用仮想計算機５０、ユーザ用仮想計算機５１（ユーザ用仮想計算機１）、５２（ユーザ用仮想計算機２）等が動作する。
【００３０】
管理用仮想計算機５０は、物理ＣＰＵ３０が物理メモリ３１に格納されたプログラムを実行することにより構成される仮想的な計算機であり、論理資源７２として、論理ＣＰＵ７３、ゲストメモリ７４、及びＰＦポート用論理ＩＯ７５を備える。
【００３１】
管理用仮想計算機５０上でゲストＯＳ７１が動作する。ゲストＯＳ７１には、ＰＦポート４０等を利用するためのＰＦポート用ドライバ７６が組み込まれている。また、ゲストＯＳ７１上で管理用常駐ソフトウェア７０が動作する。
【００３２】
ユーザ用仮想計算機５１は、物理ＣＰＵ３０が物理メモリ３１に格納されたプログラムを実行することにより構成される仮想的な計算機であり、論理資源８２として論理ＣＰＵ８３、ゲストメモリ８４、及びＶＦポート用論理ＩＯ８５を備える。ユーザ用仮想計算機５１上でゲストＯＳ８０が動作する。ゲストＯＳ８０には、ＶＦポート４１、４２等を利用するためのＶＦポート用ドライバ８１が組み込まれている。他のユーザ用仮想計算機５２等も同様な構成となっている。
【００３３】
図２は、実施例に係る仮想計算機リソース管理部の構成図である。
【００３４】
仮想計算機リソース管理部６０は、ＳＲ−ＩＯＶ対応ネットワークデバイス管理部９３と、仮想計算機１構成情報９０、仮想計算機２構成情報９１、・・・、及び仮想計算機Ｎ構成情報９２の複数の仮想計算機の構成情報とを保持する。
【００３５】
仮想計算機１構成情報９０は、仮想計算機１についての、論理ＣＰＵ構成情報１０１、論理メモリ構成情報１０２、論理ネットワークデバイス構成情報１０３等を含む。論理ネットワークデバイス構成情報１０３は、対応する仮想計算機上の論理ネットワークポート（論理ＮＩＣポート）１３０と、当該論理ＮＩＣポートで使用する論理ＭＡＣアドレス１３１と、対応する論理ＮＩＣポートが使用する物理的なネットワークポートの番号（物理ポート番号：ＰＦポート番号）１３２との対応関係が保持されている。なお、各論理ＭＡＣアドレスは、仮想計算機システム１０において管理されている他の論理ＭＡＣアドレスと重複しないＭＡＣアドレスとなっている。また、他の仮想計算機の仮想計算機構成情報（仮想計算機２構成情報９１、仮想計算機Ｎ構成情報９２）も同様な構成となっている。
【００３６】
図３は、実施例に係るＳＲ−ＩＯＶ対応ネットワークデバイス管理部の構成図である。
【００３７】
ＳＲ−ＩＯＶ対応ネットワークデバイス管理部９３は、物理的に存在するＳＲ−ＩＯＶ対応ネットワークデバイス３３の各物理通信ポート（ＰＦポート）毎に、ＳＲ−ＩＯＶ物理ポート管理情報（ＳＲ−ＩＯＶ物理ポート０（ＰＦ０）管理情報１１０、ＳＲ−ＩＯＶ物理ポート１（ＰＦ１）管理情報１１１、・・・）を格納する。
【００３８】
ＳＲ−ＩＯＶ物理ポート０（ＰＦ０）管理情報１１０は、物理通信ポート０（ＰＦ０）の管理情報であり、当該物理通信ポートの各仮想通信ポート（ＶＦポート）４１、４２、・・毎に、このＶＦポートを示すＶＦポート番号１４０と、このＶＦポートを使用する仮想計算機番号１４１と、この仮想計算機上で対応付けられる論理的ＮＩＣポート番号１４２とが対応付けられて保持されている。なお、他の物理通信ポートのＳＲ−ＩＯＶ物理ポート管理情報（１１１等）も同様な構成となっている。
【００３９】
例えば、図３のＳＲ−ＩＯＶ物理ポート０（ＰＦ０）管理情報１１０によると、“ＰＦ０”のＰＦポートの“ＶＦ０”のＶＦポートは、“仮想計算機１”の“論理ＮＩＣポート０”として利用され、“ＰＦ０”のＰＦポートの“ＶＦ１”のＶＦポートは、“仮想計算機２”の“論理ＮＩＣポート０”として利用され、“ＰＦ０”のＰＦポートの“ＶＦ２”のＶＦポートは、“仮想計算機１”の“論理ＮＩＣポート１”として利用され、“ＰＦ０”のＰＦポートの“ＶＦ３”のＶＦポートは、“未使用”であることがわかる。
【００４０】
次に、仮想計算機システム１０における処理動作について説明する。
【００４１】
図４は、実施例に係るハイパバイザ起動時のハイパバイザ初期化処理のフローチャートである。
【００４２】
ハイパバイザ初期化処理は、ハイパバイザ初期化処理部９６によって実行される。ハイパバイザ２０が物理ＣＰＵ３０により起動されると、ハイパバイザ２０が、まずハイパバイザ初期化処理部９６を呼び出すこととなる。ハイパバイザ初期化処理部９６が呼び出されると（ステップ３００）、まずハイパバイザ２０内部の各種内部データの初期化処理を行う（ステップ３０１）。
【００４３】
次に、ハイパバイザ初期化処理部９６は、管理用仮想計算機５０を起動する。起動した管理用仮想計算機５０は、ゲストＯＳ７１、さらにその上で動作する管理用常駐ソフトウェア７０を自動的に起動する（ステップ３０２）。
【００４４】
ハイパバイザ初期化処理部９６は、管理用仮想計算機５０上で管理用常駐ソフトウェア７０の起動が完了するまで待ち（ステップ３０３）、管理用常駐ソフトウェア７０が起動したら、管理用常駐ソフトウェア７０に対して、ＳＲ−ＩＯＶ対応ネットワークデバイス３３のすべてのＶＦポートのＭＡＣアドレスを初期化する要求を発行する(ステップ３０４)。
【００４５】
ここで、ハイパバイザ２０から管理用常駐ソフトウェア７０へのタスクの要求方法としては、（１）管理用常駐ソフトウェア７０によるポーリング監視。すなわち、定期的にＶＭＣＡＬＬ命令等を呼び出したり、特定のメモリアドレスやＩ／Ｏポートアドレスの内容を監視したりするなどして、ハイパバイザ２０の要求の有無を調べる（２）管理用仮想計算機５０に割り当てた仮想的なデバイスの割り込みを契機に仮想デバイスドライバから管理用常駐ソフトウェア７０に要求を伝達するなどの方法がある。なお、ハイパバイザ２０の要求内容が管理用常駐ソフトウェア７０に伝達できるのであれば、いずれの方法を用いてもよい。
【００４６】
ＭＡＣアドレスの初期化要求を受けた管理用常駐ソフトウェア７０は、ＰＦドライバ７６を利用して、すべてのＶＦポート４１、４２、・・・のＭＡＣアドレス１２１、１２２に、仮想計算機システム１０で稼動中の仮想計算機５０、５１、５２、・・及び外部ネットワーク装置２２で使用されないことが保証されるＭＡＣアドレス（ダミーＭＡＣアドレス）を設定し(ステップ３０５)、処理を終了する。
【００４７】
なお、ＳＲ−ＩＯＶ対応ネットワークデバイス３３が、すべてのＶＦポートに、他と重複しないことが保証されるユニークなＭＡＣアドレスが設定されるように構成されている場合には、このＶＦポートに設定されているＭＡＣアドレスを、ダミーＭＡＣアドレスとして使用できる。したがって、この場合には、ステップ３０４、３０５に示す処理を省略することができる。
【００４８】
一方、ＳＲ−ＩＯＶ対応ネットワークデバイス３３が、電源投入時に乱数でＶＦポートのＭＡＣアドレス１２１、１２２、・・を設定するように構成されている場合には、このように設定されたＭＡＣアドレスは、他と重複することが保証されないので、ダミーＭＡＣアドレスとして使用することはできない。この場合には、他と重複することがないことが保証されるユニークなＭＡＣアドレス（例えば、一つのＭＡＣアドレスであってもよい）を用意しておき、上記ステップ３０４、３０５により、すべてのＶＦのＭＡＣアドレス１２１、１２２、・・に対して設定する。
【００４９】
図７は、ハイパバイザ起動時におけるＳＲ−ＩＯＶ対応ネットワークデバイスの設定状態の一例を説明する図である。図７は、図４に示すハイパバイザ初期化処理を終えたときの仮想計算機システム１０のＭＡＣアドレスの設定状態を示している。
【００５０】
図７に示すように、ＳＲ−ＩＯＶ対応ネットワークデバイス３３のＶＦポート４１、４２は、稼働しておらず、これらのＭＡＣアドレス１２１、１２２には、ダミーＭＡＣアドレス（例えば、00-00-00-00-00-00）が設定されている。
【００５１】
次に、ハイパバイザ初期化処理後の仮想計算機システム１０において、ハイパバイザ２０の仮想計算機起動処理部９４が主に動作することにより、ユーザ用仮想計算機を起動する仮想計算機起動時処理を説明する。
【００５２】
図５は、実施例に係る仮想計算機起動時処理のフローチャートである。
【００５３】
ハイパバイザ２０により、仮想計算機起動処理部９４がユーザ用仮想計算機の起動を指示されると(ステップ４００)、仮想計算機起動処理部９４は、まず、起動する仮想計算機に対応する仮想計算機構成情報（９０、９１、・・・、又は９２)を読み出す。次に、仮想計算機起動処理部９４は、仮想計算機構成情報中の論理ネットワークデバイス構成情報１０３を参照し、当該仮想計算機に割り当てるべき論理ＮＩＣポート１３０の中から一つを選択する(ステップ４０１)。
【００５４】
次に、仮想計算機起動処理部９４は、論理ネットワークデバイス構成情報１０３から、選択した論理ＮＩＣポート１３０が使用する物理的なＳＲ−ＩＯＶ対応ネットワークデバイス３３の物理ポート番号１３２を読み出して特定する。さらに、仮想計算機起動処理部９４は、物理ポート番号１３２に対応するＳＲ−ＩＯＶ物理ポート管理情報(１１０、１１１、・・・のいずれか)を読み出し、この物理通信ポート（ＰＦポート）に仮想計算機が利用していない未使用なＶＦポートがあるかを調べる(ステップ４０２)。
【００５５】
この結果、未使用なＶＦポートが存在しない場合（ステップ４０２でＮｏ）には、仮想計算機が要求するだけの仮想的なネットワークデバイスを提供できないので、ＶＦポートリソース不足として仮想計算機起動時処理を異常終了させる(ステップ４０３)。
【００５６】
一方、未使用なＶＦポートが存在する場合（ステップ４０２でＹｅｓ）には、未使用なＶＦポートから一つ選択し、ＳＲ−ＩＯＶ対応ネットワーク物理ポート管理情報１１０の選択したＶＦポートを使用している仮想計算機番号１４１を未使用であることを示す値から、現在起動処理を行っている仮想計算機番号の値に内容を変更する(ステップ４０４)。
【００５７】
次いで、仮想計算機起動処理部９４は、論理ネットワークデバイス構成情報１０３のすべての論理ＮＩＣポートの構成情報を取得したか否かを判定し（ステップ４０５）、すべての論理ＮＩＣポート１３０の情報を取得していない場合（ステップ４０５でＮｏ）には、ステップ４０１に処理を進めることにより、この仮想計算機に割り当てるべき論理ＮＩＣポートの数分繰り返し処理を行う。
【００５８】
一方、すべての論理ＮＩＣポート１３０の情報を取得している場合（ステップ４０５でＹｅｓ）には、すべての論理ＮＩＣポートが使用するＶＦポートが確定したということである。このため、仮想計算機起動処理部９４は、管理用仮想計算機５０上の管理用常駐ソフトウェア７０に対して、ＳＲ−ＩＯＶ対応ネットワークデバイス３３の仮想計算機が使用するＶＦポート（例えば、４１等）のＭＡＣアドレス（例えば、１２１等）を変更させる要求を発行する(ステップ４０６)。
【００５９】
ハイパバイザ２０の指示を受け取った管理用常駐ソフトウェア７０は、指示に従いＰＦドライバ７６に対して指定されたＶＦポート(例えば、４１等)のＭＡＣアドレス(例えば、１２１等)を設定するコマンドを実行する(ステップ４０７)。これにより、ＰＦドライバ７６によって、ＶＦポート(例えば、４１等)のＭＡＣアドレス(例えば、１２１等)が起動した仮想計算機で使用するＭＡＣアドレスの値(すなわち、論理ＭＡＣアドレス１３１の値)に設定される。
【００６０】
上記した仮想計算機起動時処理が実行されると、仮想計算機システム１０のＭＡＣアドレスの設定状態は、例えば、図７に示す状態から図８に示す状態となる。
【００６１】
すなわち、ユーザ用仮想計算機１が起動されると、図８に示すように、ユーザ用仮想計算機１に割り当てたＶＦポート４１に対して、ユーザ用仮想計算機１で使用するように、ハイパバイザ２０の仮想計算機リソース管理部６０で管理されているＭＡＣアドレス（同図では、11-11-11-11-11-11）が設定される。
【００６２】
ここで、上記同様な仮想計算機起動時処理により、さらに、ユーザ用仮想計算機（ここでは、ユーザ用仮想計算機２）を起動すると、仮想計算機システム１０のＭＡＣアドレスの設定状態は、図８に示す状態から図９に示す状態となる。
【００６３】
すなわち、ユーザ用仮想計算機２が起動されると、図９に示すように、ユーザ用仮想計算機２に割り当てたＶＦポート４２に対して、ユーザ用仮想計算機２で使用するように、ハイパバイザ２０の仮想計算機リソース管理部６０で管理されているＭＡＣアドレス（同図では、22-22-22-22-22-22）が設定される。
【００６４】
次に、起動したユーザ用仮想計算機を終了する際の処理を説明する。この仮想計算機システム１０でユーザ用仮想計算機を終了させるときには、ハイパバイザ２０の仮想計算機終了処理部９５は一般的な仮想計算機の終了処理に加えて、以下に示すような仮想計算機終了時処理を行う。
【００６５】
図６は、実施例に係る仮想計算機終了時処理のフローチャートである。
【００６６】
まず、仮想計算機終了処理部９５は、終了するユーザ用仮想計算機（５１又は５２）が使用していたＶＦポート（４１又は４２）にリセットを発行し、当該ユーザ用仮想計算機で使用していたデバイスの動作を完全に停止させる(ステップ５０１)。ここで、一般的には、ＳＲ−ＩＯＶ対応ネットワークデバイス３３のリセットには、ＰＣＩコンフィグレジスタのＦＬＲ(Function  Level  Reset)に”1”を書き込むことで実施することができる。
【００６７】
次に、仮想計算機終了処理部９５は、管理用仮想計算機５０上の管理用常駐ソフトウェア７０に対して、ＭＡＣアドレス設定要求を出す(ステップ５０２)。
【００６８】
この要求を受け取った管理用常駐ソフトウェア７０は、ＰＦドライバ７６を利用して、対応するユーザ用仮想計算機（５１又は５２）が使用するすべてのＶＦポート（４１、４２等）に割り当てたユーザ用仮想計算機のＭＡＣアドレスの割り当てを解除し、ダミーＭＡＣアドレスに設定する（ステップ５０３）。
【００６９】
次に、仮想計算機終了処理部９５は、ＳＲ−ＩＯＶ対応ネットワークデバイス管理部９３から、対応するユーザ用仮想計算機（５１又は５２）が使用していたＶＦポート（４１、４２等）の割り当てをすべて解放し(ステップ５０４)、処理を終了する（ステップ５０５）。
【００７０】
このような仮想計算機終了時処理により、ユーザ用仮想計算機（５１、５２）の終了時に使用していたＭＡＣアドレスをダミーＭＡＣアドレスに変更することができる。
【００７１】
例えば、図９のように、２つのユーザ用仮想計算機(５１、５２)が起動していたときに、仮想計算機終了時処理により、ユーザ用仮想計算機５２を停止すると、仮想計算機システム１０のＭＡＣアドレスの設定状態は、図８に示す状態となる。すなわち、ユーザ用仮想計算機２が使用していたＶＦポート４２（ＶＦポート２）のＭＡＣアドレス１２２は、22-22-22-22-22-22から00-00-00-00-00-00となる。
【００７２】
ここで、仮想計算機終了時処理において、終了するユーザ用仮想計算機において使用していたＶＦポートのＭＡＣアドレスをダミーＭＡＣアドレスに変更して設定することによる効果を詳細に説明する。
【００７３】
例えば、図９に示すように、２つのユーザ用仮想計算機(５１、５２)が起動していたときに、ユーザ用仮想計算機２を停止するときに、ユーザ用仮想計算機２の使用していたＶＦポート２のＭＡＣアドレスを22-22-22-22-22-22のままとしておくとする。この後において、ユーザ用仮想計算機１を終了させ、再びユーザ用仮想計算機２を起動すると、図１０に示すように、ユーザ用仮想計算機２に対して、空いているＶＦポート１が割り当てられ、ＶＦポート１のＭＡＣアドレス１２１として、22-22-22-22-22-22が設定される。この場合には、ＶＦポート１のＭＡＣアドレス１２１と、非稼働のＶＦポート２のＭＡＣアドレス１２２と重複してしまうことが起こる。
【００７４】
このように、異なるＶＦポート間で複数のＭＡＣアドレスが重複してしまうと、外部ネットワーク装置２２からＳＲ−ＩＯＶ対応ネットワークデバイス３３の稼動中のＭＡＣアドレス１２１（すなわち、22-22-22-22-22-22）に送られてきたネットワークパケットは、デバイス内部のネットワークスイッチ４３で同じＭＡＣアドレスを持つ非稼動なＶＦポート４２へルーティングされてしまう虞があり、稼動中のＶＦポート４１を使用して正常に外部ネットワーク装置２２と通信ができない事態が発生する。
【００７５】
このような事態が発生するので、非稼動なＶＦポートであっても、そのＭＡＣアドレスと、稼動中のＶＦポートのＭＡＣアドレスとは、重複することを避ける必要がある。上記した仮想計算機終了処理においては、仮想計算機の終了時に、仮想計算機終了処理部９５が、使用していたＶＦポートのＭＡＣアドレスをダミーＭＡＣアドレスに変更するので、非稼働なＶＦポートと、稼働中のＶＦポートのＭＡＣアドレスとが重複してしまうことを適切に防止することができる。
【００７６】
以上、一実施例を説明したが、本発明は、この実施例に限定されるものでなく、その趣旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７７】
例えば、上記実施例では、管理用仮想計算機５０が、ＳＲ−ＩＯＶ対応ネットワークデバイス３３のＶＦポート４１、４２、・・等のＭＡＣアドレスを設定するようにしていたが、本発明はこれに限られず、ハイパバイザ２０がＳＲ−ＩＯＶ対応ネットワークデバイス３３のＶＦポートのＭＡＣアドレスを設定するようにしてもよく、この場合には、ハイパバイザ２０にＰＦドライバ７６を組み込んでおけばよい。
【符号の説明】
【００７８】
１０：仮想計算機システム、２０：ハイパバイザ（仮想計算機モニタ）、２１：物理資源、３０：物理ＣＰＵ、３１：物理メモリ、３３：ＳＲ−ＩＯＶ対応ネットワークデバイス、４０：ＰＦポート、４１,４２：ＶＦポート、５０：管理用仮想計算機、５１,５２：ユーザ用仮想計算機
【図１】
0005667552.tif 000002
【図２】
0005667552.tif 000003
【図３】
0005667552.tif 000004
【図４】
0005667552.tif 000005
【図５】
0005667552.tif 000006
【図６】
0005667552.tif 000007
【図７】
0005667552.tif 000008
【図８】
0005667552.tif 000009
【図９】
0005667552.tif 000010
【図１０】
0005667552.tif 000011