(57)【特許請求の範囲】
【請求項１】
物理計算機の制御プログラム上で構築された複数の仮想計算機と、前記制御プログラムにより提供される前記複数の仮想計算機間のネットワーク通信を行うための仮想ネットワーク・インターフェイス・カード（以下、「仮想ＮＩＣ」と呼ぶ。）と、を備えた仮想計算機システムにおいて、
前記物理計算機は、前記制御プログラムから前記仮想ＮＩＣにＶＬＡＮ  ＩＤを設定する手段と、前記仮想ＮＩＣがパケットを送信する際に送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定を確認する仮想ＮＩＣ制御部と、前記仮想ＮＩＣ及び前記仮想ＮＩＣに対するＶＬＡＮ  ＩＤの設定を管理する仮想ＮＩＣ構成管理テーブルとを有し、
前記仮想ＮＩＣ制御部は、前記仮想ＮＩＣ構成管理テーブルを参照して前記送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定を確認し、
前記送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されている場合、該パケットを送信する仮想ＮＩＣに設定されたＶＬＡＮ  ＩＤを読み出し、
前記送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されていない場合、前記仮想ＮＩＣを使用する仮想計算機上のＯＳが前記パケットに設定した前記パケット内のＶＬＡＮ  ＩＤを読み出し、
前記仮想ＮＩＣ制御部は、前記仮想ＮＩＣ構成管理テーブルを参照して前記パケットを受信する受信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定を確認し、
前記パケットを受信する仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されている場合、前記パケットを受信する仮想ＮＩＣに設定されたＶＬＡＮ  ＩＤを読み出し、
前記送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定確認により読み出した送信元ＶＬＡＮ  ＩＤと、前記受信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定確認により読み出した受信元ＶＬＡＮ  ＩＤとを比較し、
前記送信元ＶＬＡＮ  ＩＤと前記受信元ＶＬＡＮ  ＩＤとが一致している場合、前記送信元仮想ＮＩＣと前記受信元仮想ＮＩＣとの通信処理を行い、
前記送信元ＶＬＡＮ  ＩＤと前記受信元ＶＬＡＮ  ＩＤとが一致していない場合、前記送信元仮想ＮＩＣと前記受信元仮想ＮＩＣとの通信処理を行わないことを特徴とする仮想計算機システム。
【請求項２】
前記パケットは、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、及びＶＬＡＮ  ＩＤフィールドを有し、
前記仮想ＮＩＣ構成管理テーブルは、更に、前記仮想ＮＩＣに割り当てられたＭＡＣアドレスを管理し、
前記送信元仮想ＮＩＣ制御部は、
前記ＯＳから読み込んだ前記パケットから、前記宛先ＭＡＣアドレスを取得し、
取得した前記宛先ＭＡＣアドレスが、前記仮想ＮＩＣ構成管理テーブルに存在するかを確認し、
取得した前記宛先ＭＡＣアドレスが前記仮想ＮＩＣ構成管理テーブルに存在する場合、前記送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定確認を行うことを特徴とする請求項１記載の仮想計算機システム。
【請求項３】
前記物理計算機の物理ネットワーク・インターフェイス・カード（以下、「物理ＮＩＣ」と呼ぶ。）にアクセスする手段と、前記仮想ＮＩＣから送信されるパケットの宛先が前記仮想計算機システム外部のネットワーク宛である場合には前記物理ＮＩＣから前記送信パケットを送信する手段と、前記仮想計算機システム外部のネットワークから前記物理ＮＩＣが前記仮想ＮＩＣ宛のパケットを受信した場合には当該仮想ＮＩＣに前記受信パケットを受信させる手段とを備え、
前記仮想ＮＩＣはＶＬＡＮを構成しつつ、前記物理計算機の物理ＮＩＣにより前記仮想計算機システム外部のネットワークと通信を行なうことが可能な請求項１記載の仮想計算機システム。
【請求項４】
物理計算機の制御プログラム上で構築された複数の仮想計算機と、前記制御プログラムにより提供される前記複数の仮想計算機間のネットワーク通信を行うための仮想ネットワーク・インターフェイス・カード（以下、「仮想ＮＩＣ」と呼ぶ。）とを備えた仮想計算機システムのネットワーク通信方法であって、
前記物理計算機は、前記制御プログラムから前記仮想ＮＩＣにＶＬＡＮ  ＩＤを設定する手段と、前記仮想ＮＩＣがパケットを送信する際に送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定を確認する仮想ＮＩＣ制御部と、前記仮想ＮＩＣ及び前記仮想ＮＩＣに対するＶＬＡＮ  ＩＤの設定を管理する仮想ＮＩＣ構成管理テーブルとを有し、
前記仮想ＮＩＣ制御部は、
前記仮想ＮＩＣ構成管理テーブルを参照して前記送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定を確認するステップ、
前記送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されている場合、該パケットを送信する仮想ＮＩＣに設定されたＶＬＡＮ  ＩＤを読み出すステップ、
前記送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されていない場合、前記仮想ＮＩＣを使用する仮想計算機上のＯＳが前記パケットに設定した前記パケット内のＶＬＡＮ  ＩＤを読み出すステップ、
前記仮想ＮＩＣ構成管理テーブルを参照して前記パケットを受信する受信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定を確認するステップ、
前記パケットを受信する仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されている場合、前記パケットを受信する仮想ＮＩＣに設定されたＶＬＡＮ  ＩＤを読み出すステップ、
前記送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定確認により読み出した送信元ＶＬＡＮ  ＩＤと、前記受信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定確認により読み出した受信元ＶＬＡＮ  ＩＤとを比較するステップ、
前記送信元ＶＬＡＮ  ＩＤと前記受信元ＶＬＡＮ  ＩＤとが一致している場合、前記送信元仮想ＮＩＣと前記受信元仮想ＮＩＣとの通信処理を行うステップ、
前記送信元ＶＬＡＮ  ＩＤと前記受信元ＶＬＡＮ  ＩＤとが一致していない場合、前記送信元仮想ＮＩＣと前記受信元仮想ＮＩＣとの通信処理を行わないステップ、
を含む仮想計算機システムのネットワーク通信方法。
【請求項５】
前記パケットは、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、及びＶＬＡＮ  ＩＤフィールドを有し、
前記仮想ＮＩＣ構成管理テーブルは、更に、前記仮想ＮＩＣに割り当てられたＭＡＣアドレスを管理し、
前記送信元仮想ＮＩＣ制御部は、
前記ＯＳから読み込んだ前記パケットから、前記宛先ＭＡＣアドレスを取得するステップ、
取得した前記宛先ＭＡＣアドレスが、前記仮想ＮＩＣ構成管理テーブルに存在するかを確認するステップ、
取得した前記宛先ＭＡＣアドレスが前記仮想ＮＩＣ構成管理テーブルに存在する場合、前記送信元仮想ＮＩＣにおけるＶＬＡＮ  ＩＤの設定を確認するステップを行うことを特徴とする請求項４記載の仮想計算機システムのネットワーク通信方法。
【請求項６】
前記仮想計算機システムの前記物理計算機は外部ネットワークとのインターフェイスを司る物理ネットワーク・インターフェイス・カード（以下、「物理ＮＩＣ」と呼ぶ。）を備え、
前記仮想ＮＩＣから送信されるパケットの宛先が前記仮想計算機システム外部のネットワーク宛である場合には前記物理ＮＩＣから前記送信パケットを送信するステップと、前記仮想計算機システム外部のネットワークから前記物理ＮＩＣが前記仮想ＮＩＣ宛のパケットを受信した場合には当該仮想ＮＩＣに前記受信パケットを受信させるステップと、を含む請求項４記載の仮想計算機システムのネットワーク通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ネットワーク・インターフェイス・カードにより仮想計算機間のネットワーク通信を行う仮想計算機システムに係り、特に、仮想計算機間のネットワーク通信にＶＬＡＮを用いる仮想計算機システムに関するものである。
【背景技術】
【０００２】
一つの計算機システムで利用可能なプロセッサの数は、一つのプロセッサパッケージ内に複数のプロセッサコアを実装するマルチコアプロセッサが登場したことにより飛躍的に増加させることが可能となってきた。
【０００３】
このようなプロセッサを多数搭載した計算機システムを単独のＯＳで利用すると、システムがアイドルの場合には多くのプロセッサ資源が無駄になってしまうという問題がある。プロセッサ資源の利用率を向上するための方法としては、制御プログラムにより計算機システム上に複数の仮想計算機を構築し、計算機システムの持つプロセッサ資源をそれぞれの仮想計算機に割当て、一つの計算機システム上で複数の仮想計算機システムを同時に稼動させるという方法がある。
【０００４】
一方、計算機システム上のＩ／Ｏデバイスに関して、Ｉ／Ｏデバイスの数はプロセッサの数に比べ増加の程度が緩やかなため、前述のマルチコアプロセッサを搭載した計算機システムでは1プロセッサ当たりのＩ／Ｏデバイス数が減少するという状況が生じている。
【０００５】
そのため、計算機システム上で多くの仮想計算機を稼動させるためには、Ｉ／Ｏデバイスをいかに効率よく利用するかが課題となる。
【０００６】
Ｉ／Ｏデバイスを効率よく利用するための一方法として、Ｉ／Ｏデバイスの一種であるネットワーク・インターフェイス・カードを制御プログラムにより仮想化し、計算機システム上に物理的に搭載されているネットワーク・インターフェイス・カードを利用することなく仮想計算機間のネットワーク通信を行う方法や、仮想ネットワーク・インターフェイス・カードと仮想計算機システム外部のネットワークとの通信を行う際に、制御プログラムにより計算機システム上に搭載されている物理ネットワーク・インターフェイス・カードを複数の仮想ネットワーク・インターフェイス・カード間で共有する方法などがある。
【０００７】
ここで、複数の計算機システム間でネットワーク通信を行う際は、ＶＬＡＮと呼ばれる物理的な接続形態に依存せず、仮想的にグループを形成して一つのＬＡＮとみなす方法を用い、複数の計算機システムで共通のネットワークスイッチを通じてトラフィックを伝送する一方で、経理システムや人事システム、営業システムといった業務内容ごとにトラフィックを分離するということが一般的に行なわれている。
【０００８】
ＶＬＡＮには同一ＶＬＡＮに属するメンバ間は相互に通信できるが、異なるＶＬＡＮのメンバからはその通信が見えないという特徴があり、その種類としてネットワークスイッチの物理ポート単位でＶＬＡＮを形成するポートベースＶＬＡＮと、通信パケットにタグと呼ばれる情報を付加してＶＬＡＮ制御を行なうタグＶＬＡＮとがある。
【０００９】
ＶＬＡＮを利用し、複数の計算機システムで実現していた業務システムを、仮想計算機を用いて一つの計算機システム上で構築するためには、仮想計算機間のネットワーク通信においてもＶＬＡＮを扱えるようにする必要がある。これを実現した従来技術としてvmware社のＶｍｗａｒｅ  ＥＳＸ Serverという製品で用いられている方法がある。
【００１０】
vmware社著「VMware ESX Server 802.1Q  VLAN Solutions」によると本製品には仮想計算機上のゲストOSが持つVLAN機能を利用してVLANを構成する方法と、ゲストOSが持つVLAN機能は使わずに本製品が提供する仮想ネットワークスイッチによりVLANを構成する方法とがある。これら二つの方法は排他的に利用可能なため、本製品ではいずれか一方の方法のみでＶＬＡＮを構築することになる。
【００１１】
多数のプロセッサを搭載する計算機システムにおいて、そのプロセッサを効率よく使うために大量の仮想計算機をその計算機システム上で稼動させるケースでは、異なる方法で構成されたＶＬＡＮを利用している別々の計算機システム同士を、仮想計算機を用いて一つの計算機システム上に統合する場合がある。
【００１２】
しかしながら、前述の従来方法では、一つのＶＬＡＮ構成方法のみが利用可能であるため、利用可能でない方法で構成されたＶＬＡＮを用いた計算機システムがある場合には、元の計算機システムのＶＬＡＮ構成を利用可能なＶＬＡＮ構成方法により再構成しなければならず、計算機システムを仮想計算機システム上に統合するための工数が増大するという問題がある。
【００１３】
また、必ずしも元の計算機システムのＶＬＡＮ構成を利用可能なＶＬＡＮ構成方法により再構成できるわけではなく、再構成が困難な場合にはＶＬＡＮ構成ごとに計算機システムを分けで仮想計算機システムを構築しなければならなくなる。
【００１４】
【非特許文献１】wmware社著、「VMware ESX Server 802.1Q  VLAN Solutions」、 wmware社 White paper、  http://www.vmware.com/support/resources/esx_resources.html、    ２００４年
【発明の開示】
【発明が解決しようとする課題】
【００１５】
解決しようとする問題点は、異なる方法で構成されたＶＬＡＮを利用している複数の計算機システムを、仮想計算機を用いて一つの計算機システム上に統合できないという点である。
【課題を解決するための手段】
【００１６】
本発明は、仮想ネットワーク・インターフェイス・カードに対し、ＶＬＡＮ  ＩＤを設定するか否かにより、ＶＬＡＮ通信方法を切り替え可能にすることを最も主要な特徴とする。
【発明の効果】
【００１７】
本発明の計算機システムは、異なる方法で構成されたＶＬＡＮを利用している複数の計算機システムを、仮想計算機により一つの計算機システム上に同時に構築できるようにしたため、複数の計算機システムを仮想計算機により統合する際、より柔軟に対応できるという利点がある。
【発明を実施するための最良の形態】
【００１８】
異なる方法で構成されたＶＬＡＮを利用している複数の計算機システムを、仮想計算機を用いて一つの計算機システム上に同時に構築するという目的を、仮想ネットワーク・インターフェイス・カードに対し、ＶＬＡＮ  ＩＤを設定するか否かにより、仮想ネットワーク・インターフェイス・カードに設定されたＶＬＡＮ  ＩＤに応じたＶＬＡＮ通信を行うか、仮想ネットワーク・インターフェイス・カードを使用する仮想計算機上のＯＳが設定したＶＬＡＮ  ＩＤに応じたＶＬＡＮ通信を行うかを切り替え可能にすることで実現した。
【００１９】
以下、本発明の一実施例を添付図面に基づいて説明する。
【００２０】
図１は、本発明の一実施例を適用する仮想計算機システムの動作を示すための概念的な構成図である。
【００２１】
計算機１００では、計算機のハードウェア１１２上で仮想ネットワーク・インターフェイス・カード（以下、仮想ＮＩＣとする）を利用可能な複数の仮想計算機（以下、ＬＰＡＲとする）を構築するための制御プログラム１０７が動作している。制御プログラム１０７が仮想計算機１０１（ＬＰＡＲ０）と仮想計算機１０２（ＬＰＡＲ１）を構築し、各仮想計算機では仮想ＮＩＣ１０６−１、１０６−２が利用可能となっている。ただし、本発明を適用できる計算機システム上で制御プログラムにより構築される仮想計算機および仮想ＮＩＣの数は、図１に示される数に限定されない。仮想計算機上ではゲストＯＳ１０４−１、１０４−２が動作している。更に、各ゲストＯＳ上で、ネットワーク通信を行うアプリケーション１０３−１、１０３−２が稼動し、ゲストＯＳのデバイスドライバ１０５−１、１０５−２を介して（１１６）仮想ＮＩＣ１０６−１、１０６−２と通信を行っている（１１７）。
【００２２】
各仮想ＮＩＣの構成情報はコンソール１１５より入力され、制御プログラム１０７上の仮想ＮＩＣ構成管理表１０８を用いて管理される。
【００２３】
図２に仮想ＮＩＣ構成管理表１０８の例を示す。図２の仮想ＮＩＣ構成管理表では、各仮想ＮＩＣの管理番号（仮想ＮＩＣ＃）、ＭＡＣアドレス、ＶＬＡＮ  ＩＤ、外部ネットワークと通信する際に使用する物理ＮＩＣ番号（物理ＮＩＣ＃）、仮想ＮＩＣが割り当てられている仮想計算機番号（ＬＰＡＲ＃）が管理されている。また、図２には仮想ＮＩＣ＃がそれぞれ０、１、２、３の仮想ＮＩＣに対する前記構成情報が記述されている。本実施例では各仮想ＮＩＣに対し、仮想ＮＩＣを一意に特定できるようなＭＡＣアドレスを割り当てておき、このアドレスを用いて送信元及び受信先の仮想ＮＩＣを決定することが出来るようにしている。
【００２４】
図３にＶＬＡＮ  Ｔａｇを含む通信パケットの例３０１を示す。本実施例ではＩＥＥＥ      ８０２．１Ｑによって標準化されているタグＶＬＡＮを用いてＶＬＡＮを実現する。ＩＥＥＥ   ８０２．１Ｑで規定される通信パケット３０１はＶＬＡＮ  Ｔａｇを含まない通信パケット３００に対しＶＬＡＮタグフィールド３０２が追加されている。ＶＬＡＮタグフィールド３０２はタグタイプ３０３とタグ制御情報３０４とから構成され、タグ制御情報３０４のうちの１２ビットがＶＬＡＮ  ＩＤ用に割り当てられている（３０５）。本実施例では図２の仮想ＮＩＣ構成管理表１０８にてＶＬＡＮ  ＩＤを管理しており、図２の仮想ＮＩＣ＃０及び１に示すように、各仮想ＮＩＣに対しこのＩＥＥＥ  ８０２．１Ｑで定義されるＶＬＡＮ  ＩＤを割り当てることが可能である。また、図２の仮想ＮＩＣ＃２及び３に示すように各仮想ＮＩＣに対しＶＬＡＮ  ＩＤを割り当てないことも可能である。この場合は、各仮想ＮＩＣを利用する仮想計算機上のＯＳが設定するＶＬＡＮ  ＩＤが用いられる。
【００２５】
次に、本発明を適用した仮想計算機システムが仮想ＮＩＣ間でＶＬＡＮを用いた通信を行う過程を図４、図５及び図６により説明する。
【００２６】
この実施形態では説明のため送信元の仮想計算機がＬＰＡＲ０、受信先の仮想計算機がＬＰＡＲ１と仮定する。
【００２７】
まず、図４のステップ４００で送信側ゲストＯＳ１０４−１がデバイスドライバ１０５−１を通じてパケットの送信要求を仮想ＮＩＣ１０６−１に通知する。これを契機に、仮想ＮＩＣ１０６−１が仮想ＮＩＣ制御部１０９−１を起動する。
【００２８】
ステップ４０１では起動された仮想ＮＩＣ制御部１０９−１がゲストＯＳ１０４−１から送信パケットを一つ読み込む。次にステップ４０２にて前記読み込んだ送信パケットから宛先ＭＡＣアドレスを取得する。その後ステップ４０３にて前記宛先ＭＡＣアドレスが仮想ＮＩＣ構成管理表１０８内に存在するか調べ、存在しない場合は宛先が外部ネットワークにあると判断してステップ４０４の物理ＮＩＣを介したパケット送信処理（後述）に進み、存在する場合は宛先が同一計算機システム内の別の仮想ＮＩＣであると判断してステップ４０５のＶＬＡＮ  Ｔａｇ処理に進む。
【００２９】
次に図５を用いて仮想ＮＩＣ間通信におけるＶＬＡＮ  Ｔａｇ処理４０５を説明する。まず、ステップ５００にて仮想ＮＩＣ構成管理表１０８を参照し、送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されているか判定する。送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されている場合はステップ５０１にて前記送信元仮想ＮＩＣのＶＬＡＮ  ＩＤを仮想ＮＩＣ構成管理表１０８から読み込む。送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されていない場合は、ステップ５０２にて送信パケット内のＶＬＡＮ  ＩＤを読み込む。
【００３０】
続いてステップ５０３にて仮想ＮＩＣ構成管理表１０８を参照し、受信先仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されているか判定する。受信先仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されている場合はステップ５０４にて前記受信先仮想ＮＩＣのＶＬＡＮ  ＩＤを仮想ＮＩＣ構成管理表１０８から読み込み、引き続きステップ５０５にて、ステップ５０１ないしステップ５０２にて読み込んだ送信元のＶＬＡＮ  ＩＤが受信先のＶＬＡＮ  ＩＤと一致するか判断する。
ＶＬＡＮ  ＩＤが一致した場合は同一ＶＬＡＮに属すると判断し、仮想ＮＩＣ間通信処理を継続する（ステップ５０６）。ＶＬＡＮ  ＩＤが一致しなかった場合は異なるＶＬＡＮ  ＩＤに属すると判断し、ステップ５０７にて送信不可であると送信側のゲストＯＳに送信終了を通知して仮想ＮＩＣ間通信処理を終了する。
【００３１】
ステップ５０３にて受信先仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されていなかった場合、ステップ５０８にて、ステップ５０１ないしステップ５０２にて読み込んだ送信元のＶＬＡＮ  ＩＤが受信先仮想ＮＩＣにて受信可能なＶＬＡＮ  ＩＤかどうか判断し、受信可能な場合は同一ＶＬＡＮに属すると判断し、仮想ＮＩＣ間通信処理を継続する（ステップ５０６）。受信不可能な場合は異なるＶＬＡＮ  ＩＤに属すると判断し、ステップ５０７にて送信不可であると送信側のゲストＯＳに送信終了を通知して仮想ＮＩＣ間通信処理を終了する。
【００３２】
本実施例では、ステップ５０８における送信元のＶＬＡＮ  ＩＤが受信先仮想ＮＩＣで受信可能なＶＬＡＮ  ＩＤかどうかの判断を、ＶＬＡＮ  ＩＤ管理部１１０にて行なう。ＶＬＡＮ  ＩＤ管理部１１０では受信先仮想ＮＩＣが割り当てられている仮想計算機上のゲストＯＳが属するＶＬＡＮ  ＩＤを、図６に示すＶＬＡＮ  ＩＤマトリックス６００により管理している。ＶＬＡＮ  ＩＤマトリックス６００は、ＶＬＡＮ  ＩＤの数字から、ＶＬＡＮ  ＩＤの上位の数字で定まるＶＬＡＮ  ＩＤ＃上位インデックス６０１と、ＶＬＡＮ  ＩＤの下位の数字で定まるＶＬＡＮ  ＩＤ＃下位インデックス６０２とを求め、ＶＬＡＮ  ＩＤの数字によりマトリックスの行及び列の位置が一意に定まるようにしている。ＶＬＡＮ  ＩＤ管理部１１０では与えられたＶＬＡＮ  ＩＤが受信可能なＶＬＡＮ  ＩＤかどうかを、与えられたＶＬＡＮ  ＩＤよりＶＬＡＮマトリックスの行及び列の位置を求め、その位置の値によって判断する。
【００３３】
図５のＶＬＡＮ  Ｔａｇ処理が終了し、送信元仮想ＮＩＣ１０６−１と受信先仮想ＮＩＣ１０６−２とが通信可能であった場合、受信先仮想ＮＩＣ１０６−２の仮想ＮＩＣ制御部１０９−２を起動し、図４のステップ４０６にて本処理中に他の仮想ＮＩＣからのアクセスがないことを保証するため、Ｌｏｃｋの取得を行なう。Ｌｏｃｋの取得が出来なかった場合は、Ｌｏｃｋが取得出来るまでＬｏｃｋの取得を繰り返し試みる（４０７）。Ｌｏｃｋが取得できた場合は仮想ＮＩＣ制御部１０９−２が仮想ＮＩＣ１０６−２およびデバイスドライバ１０５−２を介して受信先のゲストＯＳ１０４−２に通知し、ステップ４０８にて受信先のゲストＯＳ１０４−２が送信元のゲストＯＳ１０４−１にある送信パケットを受信パケットとして読み込む。
【００３４】
引き続き、ステップ４０９にて、ステップ４０６で取得した受信先仮想ＮＩＣ制御部１０９−２のＬｏｃｋを開放し、送信元仮想ＮＩＣ制御部１０９−１に通知した後、ステップ４１０にて送信元ゲストＯＳ１０４−１に未送信パケットが残っているかどうか判断し、残っている場合は未送信パケットがなくなるまでステップ４０１からステップ４０９までを繰り返す。ステップ４１０にて未送信パケットなくなり、送信が完了したと判断された場合は、ステップ４１１にて受信先仮想ＮＩＣへの送信終了通知を行い、それを受けステップ４１２にて仮想ＮＩＣ制御部１０９−２が仮想ＮＩＣ１０６−２およびデバイスドライバ１０５−２を介して受信先のゲストＯＳ１０４−２に終了を通知し、受信先ゲストＯＳの処理を終える（４１３）。送信元ゲストＯＳに対してはステップ４１４にて仮想ＮＩＣ制御部１０９−１が仮想ＮＩＣ１０６−１およびデバイスドライバ１０５−１を介して送信元のゲストＯＳ１０４−１に終了を通知し、送信元ゲストＯＳの処理を終える（４１５）。
【００３５】
次に、本発明を適用した仮想計算機システムにおいて、仮想ＮＩＣと外部のネットワークとが物理ＮＩＣを介し、ＶＬＡＮを用いた通信を行う過程を図７、図８、図９及び図１０により説明する。
【００３６】
この実施形態では説明のため送信元の仮想計算機がＬＰＡＲ０、計算機１００がハードウェア１１２上の物理ＮＩＣ１１３を介して外部のネットワーク１１４に接続されていると仮定する。
【００３７】
まず、図７及び図８を用い、物理ＮＩＣを介した仮想ＮＩＣから外部のネットワークへの送信手順を説明した後、図９及び図１０を用い、仮想ＮＩＣの物理ＮＩＣを介した外部のネットワークからの受信手順を説明する。
【００３８】
物理ＮＩＣを介した仮想ＮＩＣから外部のネットワークへの送信手順の最初の部分は図４で説明した仮想ＮＩＣ間の通信手順と同様である。まず図７のステップ７００で送信側ゲストＯＳ１０４−１がデバイスドライバ１０５−１を通じてパケットの送信要求を仮想ＮＩＣ１０６−１に通知する。これを契機に、仮想ＮＩＣ１０６−１が仮想ＮＩＣ制御部１０９−１を起動する。
【００３９】
ステップ７０１では起動された仮想ＮＩＣ制御部１０９−１がゲストＯＳ１０４−１から送信パケットを一つ読み込む。次にステップ７０２にて前記読み込んだ送信パケットから宛先ＭＡＣアドレスを取得する。その後ステップ７０３にて前記宛先ＭＡＣアドレスが仮想ＮＩＣ構成管理表１０８内に存在するか調べ、存在する場合は宛先が同一計算機システム内の別の仮想ＮＩＣであると判断して図４で説明した仮想ＮＩＣ間の通信手順を実行する。存在しない場合は宛先が外部ネットワークにあると判断し、ステップ７０５のＶＬＡＮ  Ｔａｇ処理に進む。
【００４０】
次に、図８を用いて物理ＮＩＣを介した仮想ＮＩＣから外部のネットワークへの送信時におけるＶＬＡＮ  Ｔａｇ処理を説明する。まず、ステップ８００にて仮想ＮＩＣ構成管理表１０８を参照し、送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されているか判定する。送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されていない場合は、送信パケットをそのまま外部のネットワークに送信すれば良いため、何もせずに次の送信処理を継続する（ステップ８０３）。送信元仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されている場合はステップ８０１にて前記送信元仮想ＮＩＣのＶＬＡＮ  ＩＤを仮想ＮＩＣ構成管理表１０８から読み込み、ステップ８０２にて前記送信元仮想ＮＩＣのＶＬＡＮ  ＩＤを値に持つＶＬＡＮタグフィールド３０２を生成し、送信パケットに付加した後、次の送信処理を継続する（ステップ８０３）。
【００４１】
図８で説明したＶＬＡＮ  Ｔａｇ処理の終了後、物理ＮＩＣ制御部１１１を起動し、図７のステップ７０６にて本処理中に他の仮想ＮＩＣからのアクセスがないことを保証するため、Ｌｏｃｋの取得を行なう。Ｌｏｃｋの取得が出来なかった場合は、Ｌｏｃｋが取得出来るまでＬｏｃｋの取得を繰り返し試みる（ステップ７０７）。Ｌｏｃｋを取得できた場合は、ステップ７０８にて送信するパケットの登録を行なう。本実施例では送信パケットを逐一物理ＮＩＣに送るのではなく、一旦ステップ７０８でパケットを登録しておき、後でまとめて物理ＮＩＣに送るようにしている。続いてステップ７０９にてＬｏｃｋの開放を行い、送信元の仮想ＮＩＣ制御部１０９−１にてステップ７１０の未送信パケット有無判定を行ない、未送信パケットがある間ステップ７０１からステップ７０９までを繰り替えし実行する。
【００４２】
ステップ７１０にて未送信パケットが無くなったと判定された場合は、ステップ７１１にて物理ＮＩＣ制御部１１１が物理ＮＩＣ１１３にアクセスを開始すると共に、送信元の仮想ＮＩＣ制御部１０９−１に対しても物理ＮＩＣ１１３にアクセスしたことを通知する。その後、物理ＮＩＣ１１３はステップ７１２にて物理ＮＩＣ制御部１１１がステップ７０８で登録した送信パケットの送信動作を行ない、送信動作の完了により物理ＮＩＣの処理は終了する（ステップ７１３）。一方、物理ＮＩＣ１１３へのアクセス通知を受けた送信元の仮想ＮＩＣ制御部１０９−１はステップ７１４にて仮想ＮＩＣ１０６−１及びデバイスドライバ１０５−１を介してゲストＯＳ１０４−１に送信完了を通知し、それを受けてゲストＯＳ１０４−１は送信動作を終了する（ステップ７１５）。
【００４３】
次に、外部のネットワークからの通信パケットを仮想ＮＩＣが物理ＮＩＣを介して受信する手順を図９及び図１０を用いて説明する。
【００４４】
まず、ステップ９００にて物理ＮＩＣ１１３が外部のネットワーク１１４からパケットを受信したこと物理ＮＩＣ制御部１１１に通知する。通知を受けた物理ＮＩＣ制御部１１１はステップ９０１にて物理ＮＩＣ１１３より到着した受信パケットを一つ読み込んだ後、さらにステップ９０２にて読み込んだ受信パケットから宛先のＭＡＣアドレスを読み込む。続いてステップ９０３にて仮想ＮＩＣ構成管理表１０８を参照し、前記宛先ＭＡＣアドレスが仮想ＮＩＣ構成管理表１０８内に存在するか判定する。前記ＭＡＣアドレスが仮想ＮＩＣ構成管理表１０８内に存在する場合は、当該パケットを受信するものとしてステップ９０４のＶＬＡＮ  Ｔａｇ処理に移る。前記ＭＡＣアドレスが仮想ＮＩＣ構成管理表１０８内に存在しない場合は当該パケットを受信する必要がないので何も処理せずステップ９０５に移る。
【００４５】
次に、図１０を用いて物理ＮＩＣを介した外部のネットワークから仮想ＮＩＣへの受信時におけるＶＬＡＮ  Ｔａｇ処理を説明する。まず、ステップ１０００にて受信パケットからＶＬＡＮ  ＩＤを読み出す。続いてステップ１００１にて仮想ＮＩＣ構成管理表１０８を参照し、受信パケットの宛先ＭＡＣアドレスにより定まる受信先仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されているか否かを判定する。前記受信先仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されていた場合は、ステップ１００２にて仮想ＮＩＣ構成管理表１０８より前記受信先仮想ＮＩＣのＶＬＡＮ  ＩＤを読み出す。続いてステップ１００３にてステップ１０００にて読み出した受信パケットのＶＬＡＮ  ＩＤとステップ１００２にて読み出した前記受信先仮想ＮＩＣに設定されているＶＬＡＮ  ＩＤとが一致するか判定する。
【００４６】
ＶＬＡＮ  ＩＤが一致した場合は、当該パケットは前記受信先仮想ＮＩＣにて受信可能であると判断し、ステップ１００４にて前記受信先仮想ＮＩＣを外部のネットワークから受信したパケットの宛先仮想ＮＩＣとして登録した後、次の受信処理を継続する（ステップ１００６）。ＶＬＡＮ  ＩＤが一致しなかった場合には当該パケットは前記受信先仮想ＮＩＣにて受信不可能であると判断し、宛先ＮＩＣの登録はせずに次の受信処理を継続する（ステップ１００６）。
【００４７】
ステップ１００１の判定において、前記受信先仮想ＮＩＣにＶＬＡＮ  ＩＤが設定されていなかった場合は、ステップ１００５にて、ＶＬＡＮ  ＩＤ管理部１１０を呼び出し前記受信先仮想ＮＩＣのＶＬＡＮ  ＩＤマトリックス６００を参照し、前記受信パケットのＶＬＡＮ  ＩＤが前記受信先仮想ＮＩＣにて受信可能なＶＬＡＮ  ＩＤか否かを判定する。前記受信パケットのＶＬＡＮ  ＩＤが前記受信先仮想ＮＩＣで受信可能なＶＬＡＮ  ＩＤであった場合には、ステップ１００４にて前記受信先仮想ＮＩＣを外部のネットワークから受信したパケットの宛先仮想ＮＩＣとして登録した後、次の受信処理を継続する（ステップ１００６）。前記受信パケットのＶＬＡＮ  ＩＤが前記受信先仮想ＮＩＣで受信不可能なＶＬＡＮ  ＩＤであった場合には宛先ＮＩＣの登録はせずに次の受信処理を継続する（ステップ１００６）。
【００４８】
図１０で説明したＶＬＡＮ  Ｔａｇ処理の終了後、物理ＮＩＣ制御部１１１は図９のステップ９０５にて未処理の受信パケットが物理ＮＩＣ１１３に存在するか確認し、存在する場合は、物理ＮＩＣに未処理の受信パケットがなくなるまでステップ９０１からステップ９０４までを繰り返し実行する。
【００４９】
ステップ９０５にて物理ＮＩＣ１１３に未処理の受信パケットがなくなった場合はステップ９０６にて物理ＮＩＣ制御部１１１が受信パケットの宛先となっている仮想ＮＩＣの仮想ＮＩＣ制御部を起動する。起動された仮想ＮＩＣ制御部では物理ＮＩＣより当該仮想ＮＩＣ宛の受信パケットを一つ読み込んだ後、ステップ９０８にて未処理の受信パケットが存在するか判定し、未処理の受信パケットがなくなるまでステップ９０７を繰り返し実行する。ステップ９０８にて未処理の受信パケットが存在しなくなった場合、仮想ＮＩＣ制御部はステップ９０９にて仮想ＮＩＣ及びデバイスドライバを介してゲストＯＳに受信完了の通知を行う。ゲストＯＳは前記の通知を受け、受信処理を完了する（９１０）。
【産業上の利用可能性】
【００５０】
仮想ネットワーク・インターフェイス・カードにＶＬＡＮ  ＩＤを設定するか否で、仮想ネットワーク・インターフェイス・カードのＶＬＡＮ通信方法を切り替えることにより、一つの計算機システム上で稼働する仮想計算機システム内に複数のＶＬＡＮ構成方法を同時に構築可能となり、異なるＶＬＡＮ構成方法を用いて構築されている複数の計算機システムを、仮想計算機により一つの計算機システム上に統合する用途にも適用できる。
【図面の簡単な説明】
【００５１】
【図１】本発明の仮想計算機システムの一実施形態を示すブロック図である。
【図２】仮想ＮＩＣに割り当てた構成情報を管理するための仮想ＮＩＣ構成管理表である。
【図３】ＶＬＡＮ  Ｔａｇを含む通信パケット及びＶＬＡＮ  Ｔａｇの形式を示す図である。
【図４】ＶＬＡＮを用いた仮想ＮＩＣ間通信処理のフローチャートである。
【図５】仮想ＮＩＣ間通信におけるＶＬＡＮ  Ｔａｇ処理のフローチャートである。
【図６】送信元のＶＬＡＮ  ＩＤが受信先仮想ＮＩＣで受信可能かどうか判定するために用いるＶＬＡＮマトリックスを示す図である。
【図７】物理ＮＩＣを介した、仮想ＮＩＣと外部のネットワークとのＶＬＡＮを用いた送信処理のフローチャートである。
【図８】物理ＮＩＣを介した送信時のＶＬＡＮ  Ｔａｇ処理のフローチャートである。
【図９】物理ＮＩＣを介した外部のネットワークと仮想ＮＩＣとのＶＬＡＮを用いた受信処理のフローチャートである。
【図１０】物理ＮＩＣを介した受信時のＶＬＡＮ  Ｔａｇ処理のフローチャートである。
【符号の説明】
【００５２】
１００  物理計算機
１０１  ＬＰＡＲ０
１０２  ＬＰＡＲ１
１０４  ゲストＯＳ
１０５  デバイスドライバ
１０６  仮想ＮＩＣ
１０７  制御プログラム
１０８  仮想ＮＩＣ構成管理表
１０９  仮想ＮＩＣ制御部
１１０  ＶＬＡＮ  ＩＤ管理部
１１１  物理ＮＩＣ制御部
１１３  物理ＮＩＣ
１１４  外部ネットワーク
１１５  コンソール
【図１】
0004622835.tif 000002
【図２】
0004622835.tif 000003
【図３】
0004622835.tif 000004
【図４】
0004622835.tif 000005
【図５】
0004622835.tif 000006
【図６】
0004622835.tif 000007
【図７】
0004622835.tif 000008
【図８】
0004622835.tif 000009
【図９】
0004622835.tif 000010
【図１０】
0004622835.tif 000011