JP4622835B2 - 仮想計算機システム及びそのネットワーク通信方法 - Google Patents

仮想計算機システム及びそのネットワーク通信方法 Download PDF

Info

Publication number
JP4622835B2
JP4622835B2 JP2005352847A JP2005352847A JP4622835B2 JP 4622835 B2 JP4622835 B2 JP 4622835B2 JP 2005352847 A JP2005352847 A JP 2005352847A JP 2005352847 A JP2005352847 A JP 2005352847A JP 4622835 B2 JP4622835 B2 JP 4622835B2
Authority
JP
Japan
Prior art keywords
vlan
virtual
virtual nic
nic
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005352847A
Other languages
English (en)
Other versions
JP2007158870A (ja
Inventor
浩幸 三留
雄次 ▲對▼馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005352847A priority Critical patent/JP4622835B2/ja
Priority to US11/635,912 priority patent/US7769031B2/en
Publication of JP2007158870A publication Critical patent/JP2007158870A/ja
Application granted granted Critical
Publication of JP4622835B2 publication Critical patent/JP4622835B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Description

本発明は、仮想ネットワーク・インターフェイス・カードにより仮想計算機間のネットワーク通信を行う仮想計算機システムに係り、特に、仮想計算機間のネットワーク通信にVLANを用いる仮想計算機システムに関するものである。
一つの計算機システムで利用可能なプロセッサの数は、一つのプロセッサパッケージ内に複数のプロセッサコアを実装するマルチコアプロセッサが登場したことにより飛躍的に増加させることが可能となってきた。
このようなプロセッサを多数搭載した計算機システムを単独のOSで利用すると、システムがアイドルの場合には多くのプロセッサ資源が無駄になってしまうという問題がある。プロセッサ資源の利用率を向上するための方法としては、制御プログラムにより計算機システム上に複数の仮想計算機を構築し、計算機システムの持つプロセッサ資源をそれぞれの仮想計算機に割当て、一つの計算機システム上で複数の仮想計算機システムを同時に稼動させるという方法がある。
一方、計算機システム上のI/Oデバイスに関して、I/Oデバイスの数はプロセッサの数に比べ増加の程度が緩やかなため、前述のマルチコアプロセッサを搭載した計算機システムでは1プロセッサ当たりのI/Oデバイス数が減少するという状況が生じている。
そのため、計算機システム上で多くの仮想計算機を稼動させるためには、I/Oデバイスをいかに効率よく利用するかが課題となる。
I/Oデバイスを効率よく利用するための一方法として、I/Oデバイスの一種であるネットワーク・インターフェイス・カードを制御プログラムにより仮想化し、計算機システム上に物理的に搭載されているネットワーク・インターフェイス・カードを利用することなく仮想計算機間のネットワーク通信を行う方法や、仮想ネットワーク・インターフェイス・カードと仮想計算機システム外部のネットワークとの通信を行う際に、制御プログラムにより計算機システム上に搭載されている物理ネットワーク・インターフェイス・カードを複数の仮想ネットワーク・インターフェイス・カード間で共有する方法などがある。
ここで、複数の計算機システム間でネットワーク通信を行う際は、VLANと呼ばれる物理的な接続形態に依存せず、仮想的にグループを形成して一つのLANとみなす方法を用い、複数の計算機システムで共通のネットワークスイッチを通じてトラフィックを伝送する一方で、経理システムや人事システム、営業システムといった業務内容ごとにトラフィックを分離するということが一般的に行なわれている。
VLANには同一VLANに属するメンバ間は相互に通信できるが、異なるVLANのメンバからはその通信が見えないという特徴があり、その種類としてネットワークスイッチの物理ポート単位でVLANを形成するポートベースVLANと、通信パケットにタグと呼ばれる情報を付加してVLAN制御を行なうタグVLANとがある。
VLANを利用し、複数の計算機システムで実現していた業務システムを、仮想計算機を用いて一つの計算機システム上で構築するためには、仮想計算機間のネットワーク通信においてもVLANを扱えるようにする必要がある。これを実現した従来技術としてvmware社のVmware ESX Serverという製品で用いられている方法がある。
vmware社著「VMware ESX Server 802.1Q VLAN Solutions」によると本製品には仮想計算機上のゲストOSが持つVLAN機能を利用してVLANを構成する方法と、ゲストOSが持つVLAN機能は使わずに本製品が提供する仮想ネットワークスイッチによりVLANを構成する方法とがある。これら二つの方法は排他的に利用可能なため、本製品ではいずれか一方の方法のみでVLANを構築することになる。
多数のプロセッサを搭載する計算機システムにおいて、そのプロセッサを効率よく使うために大量の仮想計算機をその計算機システム上で稼動させるケースでは、異なる方法で構成されたVLANを利用している別々の計算機システム同士を、仮想計算機を用いて一つの計算機システム上に統合する場合がある。
しかしながら、前述の従来方法では、一つのVLAN構成方法のみが利用可能であるため、利用可能でない方法で構成されたVLANを用いた計算機システムがある場合には、元の計算機システムのVLAN構成を利用可能なVLAN構成方法により再構成しなければならず、計算機システムを仮想計算機システム上に統合するための工数が増大するという問題がある。
また、必ずしも元の計算機システムのVLAN構成を利用可能なVLAN構成方法により再構成できるわけではなく、再構成が困難な場合にはVLAN構成ごとに計算機システムを分けで仮想計算機システムを構築しなければならなくなる。
wmware社著、「VMware ESX Server 802.1Q VLAN Solutions」、 wmware社 White paper、 http://www.vmware.com/support/resources/esx_resources.html、 2004年
解決しようとする問題点は、異なる方法で構成されたVLANを利用している複数の計算機システムを、仮想計算機を用いて一つの計算機システム上に統合できないという点である。
本発明は、仮想ネットワーク・インターフェイス・カードに対し、VLAN IDを設定するか否かにより、VLAN通信方法を切り替え可能にすることを最も主要な特徴とする。
本発明の計算機システムは、異なる方法で構成されたVLANを利用している複数の計算機システムを、仮想計算機により一つの計算機システム上に同時に構築できるようにしたため、複数の計算機システムを仮想計算機により統合する際、より柔軟に対応できるという利点がある。
異なる方法で構成されたVLANを利用している複数の計算機システムを、仮想計算機を用いて一つの計算機システム上に同時に構築するという目的を、仮想ネットワーク・インターフェイス・カードに対し、VLAN IDを設定するか否かにより、仮想ネットワーク・インターフェイス・カードに設定されたVLAN IDに応じたVLAN通信を行うか、仮想ネットワーク・インターフェイス・カードを使用する仮想計算機上のOSが設定したVLAN IDに応じたVLAN通信を行うかを切り替え可能にすることで実現した。
以下、本発明の一実施例を添付図面に基づいて説明する。
図1は、本発明の一実施例を適用する仮想計算機システムの動作を示すための概念的な構成図である。
計算機100では、計算機のハードウェア112上で仮想ネットワーク・インターフェイス・カード(以下、仮想NICとする)を利用可能な複数の仮想計算機(以下、LPARとする)を構築するための制御プログラム107が動作している。制御プログラム107が仮想計算機101(LPAR0)と仮想計算機102(LPAR1)を構築し、各仮想計算機では仮想NIC106−1、106−2が利用可能となっている。ただし、本発明を適用できる計算機システム上で制御プログラムにより構築される仮想計算機および仮想NICの数は、図1に示される数に限定されない。仮想計算機上ではゲストOS104−1、104−2が動作している。更に、各ゲストOS上で、ネットワーク通信を行うアプリケーション103−1、103−2が稼動し、ゲストOSのデバイスドライバ105−1、105−2を介して(116)仮想NIC106−1、106−2と通信を行っている(117)。
各仮想NICの構成情報はコンソール115より入力され、制御プログラム107上の仮想NIC構成管理表108を用いて管理される。
図2に仮想NIC構成管理表108の例を示す。図2の仮想NIC構成管理表では、各仮想NICの管理番号(仮想NIC#)、MACアドレス、VLAN ID、外部ネットワークと通信する際に使用する物理NIC番号(物理NIC#)、仮想NICが割り当てられている仮想計算機番号(LPAR#)が管理されている。また、図2には仮想NIC#がそれぞれ0、1、2、3の仮想NICに対する前記構成情報が記述されている。本実施例では各仮想NICに対し、仮想NICを一意に特定できるようなMACアドレスを割り当てておき、このアドレスを用いて送信元及び受信先の仮想NICを決定することが出来るようにしている。
図3にVLAN Tagを含む通信パケットの例301を示す。本実施例ではIEEE 802.1Qによって標準化されているタグVLANを用いてVLANを実現する。IEEE 802.1Qで規定される通信パケット301はVLAN Tagを含まない通信パケット300に対しVLANタグフィールド302が追加されている。VLANタグフィールド302はタグタイプ303とタグ制御情報304とから構成され、タグ制御情報304のうちの12ビットがVLAN ID用に割り当てられている(305)。本実施例では図2の仮想NIC構成管理表108にてVLAN IDを管理しており、図2の仮想NIC#0及び1に示すように、各仮想NICに対しこのIEEE 802.1Qで定義されるVLAN IDを割り当てることが可能である。また、図2の仮想NIC#2及び3に示すように各仮想NICに対しVLAN IDを割り当てないことも可能である。この場合は、各仮想NICを利用する仮想計算機上のOSが設定するVLAN IDが用いられる。
次に、本発明を適用した仮想計算機システムが仮想NIC間でVLANを用いた通信を行う過程を図4、図5及び図6により説明する。
この実施形態では説明のため送信元の仮想計算機がLPAR0、受信先の仮想計算機がLPAR1と仮定する。
まず、図4のステップ400で送信側ゲストOS104−1がデバイスドライバ105−1を通じてパケットの送信要求を仮想NIC106−1に通知する。これを契機に、仮想NIC106−1が仮想NIC制御部109−1を起動する。
ステップ401では起動された仮想NIC制御部109−1がゲストOS104−1から送信パケットを一つ読み込む。次にステップ402にて前記読み込んだ送信パケットから宛先MACアドレスを取得する。その後ステップ403にて前記宛先MACアドレスが仮想NIC構成管理表108内に存在するか調べ、存在しない場合は宛先が外部ネットワークにあると判断してステップ404の物理NICを介したパケット送信処理(後述)に進み、存在する場合は宛先が同一計算機システム内の別の仮想NICであると判断してステップ405のVLAN Tag処理に進む。
次に図5を用いて仮想NIC間通信におけるVLAN Tag処理405を説明する。まず、ステップ500にて仮想NIC構成管理表108を参照し、送信元仮想NICにVLAN IDが設定されているか判定する。送信元仮想NICにVLAN IDが設定されている場合はステップ501にて前記送信元仮想NICのVLAN IDを仮想NIC構成管理表108から読み込む。送信元仮想NICにVLAN IDが設定されていない場合は、ステップ502にて送信パケット内のVLAN IDを読み込む。
続いてステップ503にて仮想NIC構成管理表108を参照し、受信先仮想NICにVLAN IDが設定されているか判定する。受信先仮想NICにVLAN IDが設定されている場合はステップ504にて前記受信先仮想NICのVLAN IDを仮想NIC構成管理表108から読み込み、引き続きステップ505にて、ステップ501ないしステップ502にて読み込んだ送信元のVLAN IDが受信先のVLAN IDと一致するか判断する。
VLAN IDが一致した場合は同一VLANに属すると判断し、仮想NIC間通信処理を継続する(ステップ506)。VLAN IDが一致しなかった場合は異なるVLAN IDに属すると判断し、ステップ507にて送信不可であると送信側のゲストOSに送信終了を通知して仮想NIC間通信処理を終了する。
ステップ503にて受信先仮想NICにVLAN IDが設定されていなかった場合、ステップ508にて、ステップ501ないしステップ502にて読み込んだ送信元のVLAN IDが受信先仮想NICにて受信可能なVLAN IDかどうか判断し、受信可能な場合は同一VLANに属すると判断し、仮想NIC間通信処理を継続する(ステップ506)。受信不可能な場合は異なるVLAN IDに属すると判断し、ステップ507にて送信不可であると送信側のゲストOSに送信終了を通知して仮想NIC間通信処理を終了する。
本実施例では、ステップ508における送信元のVLAN IDが受信先仮想NICで受信可能なVLAN IDかどうかの判断を、VLAN ID管理部110にて行なう。VLAN ID管理部110では受信先仮想NICが割り当てられている仮想計算機上のゲストOSが属するVLAN IDを、図6に示すVLAN IDマトリックス600により管理している。VLAN IDマトリックス600は、VLAN IDの数字から、VLAN IDの上位の数字で定まるVLAN ID#上位インデックス601と、VLAN IDの下位の数字で定まるVLAN ID#下位インデックス602とを求め、VLAN IDの数字によりマトリックスの行及び列の位置が一意に定まるようにしている。VLAN ID管理部110では与えられたVLAN IDが受信可能なVLAN IDかどうかを、与えられたVLAN IDよりVLANマトリックスの行及び列の位置を求め、その位置の値によって判断する。
図5のVLAN Tag処理が終了し、送信元仮想NIC106−1と受信先仮想NIC106−2とが通信可能であった場合、受信先仮想NIC106−2の仮想NIC制御部109−2を起動し、図4のステップ406にて本処理中に他の仮想NICからのアクセスがないことを保証するため、Lockの取得を行なう。Lockの取得が出来なかった場合は、Lockが取得出来るまでLockの取得を繰り返し試みる(407)。Lockが取得できた場合は仮想NIC制御部109−2が仮想NIC106−2およびデバイスドライバ105−2を介して受信先のゲストOS104−2に通知し、ステップ408にて受信先のゲストOS104−2が送信元のゲストOS104−1にある送信パケットを受信パケットとして読み込む。
引き続き、ステップ409にて、ステップ406で取得した受信先仮想NIC制御部109−2のLockを開放し、送信元仮想NIC制御部109−1に通知した後、ステップ410にて送信元ゲストOS104−1に未送信パケットが残っているかどうか判断し、残っている場合は未送信パケットがなくなるまでステップ401からステップ409までを繰り返す。ステップ410にて未送信パケットなくなり、送信が完了したと判断された場合は、ステップ411にて受信先仮想NICへの送信終了通知を行い、それを受けステップ412にて仮想NIC制御部109−2が仮想NIC106−2およびデバイスドライバ105−2を介して受信先のゲストOS104−2に終了を通知し、受信先ゲストOSの処理を終える(413)。送信元ゲストOSに対してはステップ414にて仮想NIC制御部109−1が仮想NIC106−1およびデバイスドライバ105−1を介して送信元のゲストOS104−1に終了を通知し、送信元ゲストOSの処理を終える(415)。
次に、本発明を適用した仮想計算機システムにおいて、仮想NICと外部のネットワークとが物理NICを介し、VLANを用いた通信を行う過程を図7、図8、図9及び図10により説明する。
この実施形態では説明のため送信元の仮想計算機がLPAR0、計算機100がハードウェア112上の物理NIC113を介して外部のネットワーク114に接続されていると仮定する。
まず、図7及び図8を用い、物理NICを介した仮想NICから外部のネットワークへの送信手順を説明した後、図9及び図10を用い、仮想NICの物理NICを介した外部のネットワークからの受信手順を説明する。
物理NICを介した仮想NICから外部のネットワークへの送信手順の最初の部分は図4で説明した仮想NIC間の通信手順と同様である。まず図7のステップ700で送信側ゲストOS104−1がデバイスドライバ105−1を通じてパケットの送信要求を仮想NIC106−1に通知する。これを契機に、仮想NIC106−1が仮想NIC制御部109−1を起動する。
ステップ701では起動された仮想NIC制御部109−1がゲストOS104−1から送信パケットを一つ読み込む。次にステップ702にて前記読み込んだ送信パケットから宛先MACアドレスを取得する。その後ステップ703にて前記宛先MACアドレスが仮想NIC構成管理表108内に存在するか調べ、存在する場合は宛先が同一計算機システム内の別の仮想NICであると判断して図4で説明した仮想NIC間の通信手順を実行する。存在しない場合は宛先が外部ネットワークにあると判断し、ステップ705のVLAN Tag処理に進む。
次に、図8を用いて物理NICを介した仮想NICから外部のネットワークへの送信時におけるVLAN Tag処理を説明する。まず、ステップ800にて仮想NIC構成管理表108を参照し、送信元仮想NICにVLAN IDが設定されているか判定する。送信元仮想NICにVLAN IDが設定されていない場合は、送信パケットをそのまま外部のネットワークに送信すれば良いため、何もせずに次の送信処理を継続する(ステップ803)。送信元仮想NICにVLAN IDが設定されている場合はステップ801にて前記送信元仮想NICのVLAN IDを仮想NIC構成管理表108から読み込み、ステップ802にて前記送信元仮想NICのVLAN IDを値に持つVLANタグフィールド302を生成し、送信パケットに付加した後、次の送信処理を継続する(ステップ803)。
図8で説明したVLAN Tag処理の終了後、物理NIC制御部111を起動し、図7のステップ706にて本処理中に他の仮想NICからのアクセスがないことを保証するため、Lockの取得を行なう。Lockの取得が出来なかった場合は、Lockが取得出来るまでLockの取得を繰り返し試みる(ステップ707)。Lockを取得できた場合は、ステップ708にて送信するパケットの登録を行なう。本実施例では送信パケットを逐一物理NICに送るのではなく、一旦ステップ708でパケットを登録しておき、後でまとめて物理NICに送るようにしている。続いてステップ709にてLockの開放を行い、送信元の仮想NIC制御部109−1にてステップ710の未送信パケット有無判定を行ない、未送信パケットがある間ステップ701からステップ709までを繰り替えし実行する。
ステップ710にて未送信パケットが無くなったと判定された場合は、ステップ711にて物理NIC制御部111が物理NIC113にアクセスを開始すると共に、送信元の仮想NIC制御部109−1に対しても物理NIC113にアクセスしたことを通知する。その後、物理NIC113はステップ712にて物理NIC制御部111がステップ708で登録した送信パケットの送信動作を行ない、送信動作の完了により物理NICの処理は終了する(ステップ713)。一方、物理NIC113へのアクセス通知を受けた送信元の仮想NIC制御部109−1はステップ714にて仮想NIC106−1及びデバイスドライバ105−1を介してゲストOS104−1に送信完了を通知し、それを受けてゲストOS104−1は送信動作を終了する(ステップ715)。
次に、外部のネットワークからの通信パケットを仮想NICが物理NICを介して受信する手順を図9及び図10を用いて説明する。
まず、ステップ900にて物理NIC113が外部のネットワーク114からパケットを受信したこと物理NIC制御部111に通知する。通知を受けた物理NIC制御部111はステップ901にて物理NIC113より到着した受信パケットを一つ読み込んだ後、さらにステップ902にて読み込んだ受信パケットから宛先のMACアドレスを読み込む。続いてステップ903にて仮想NIC構成管理表108を参照し、前記宛先MACアドレスが仮想NIC構成管理表108内に存在するか判定する。前記MACアドレスが仮想NIC構成管理表108内に存在する場合は、当該パケットを受信するものとしてステップ904のVLAN Tag処理に移る。前記MACアドレスが仮想NIC構成管理表108内に存在しない場合は当該パケットを受信する必要がないので何も処理せずステップ905に移る。
次に、図10を用いて物理NICを介した外部のネットワークから仮想NICへの受信時におけるVLAN Tag処理を説明する。まず、ステップ1000にて受信パケットからVLAN IDを読み出す。続いてステップ1001にて仮想NIC構成管理表108を参照し、受信パケットの宛先MACアドレスにより定まる受信先仮想NICにVLAN IDが設定されているか否かを判定する。前記受信先仮想NICにVLAN IDが設定されていた場合は、ステップ1002にて仮想NIC構成管理表108より前記受信先仮想NICのVLAN IDを読み出す。続いてステップ1003にてステップ1000にて読み出した受信パケットのVLAN IDとステップ1002にて読み出した前記受信先仮想NICに設定されているVLAN IDとが一致するか判定する。
VLAN IDが一致した場合は、当該パケットは前記受信先仮想NICにて受信可能であると判断し、ステップ1004にて前記受信先仮想NICを外部のネットワークから受信したパケットの宛先仮想NICとして登録した後、次の受信処理を継続する(ステップ1006)。VLAN IDが一致しなかった場合には当該パケットは前記受信先仮想NICにて受信不可能であると判断し、宛先NICの登録はせずに次の受信処理を継続する(ステップ1006)。
ステップ1001の判定において、前記受信先仮想NICにVLAN IDが設定されていなかった場合は、ステップ1005にて、VLAN ID管理部110を呼び出し前記受信先仮想NICのVLAN IDマトリックス600を参照し、前記受信パケットのVLAN IDが前記受信先仮想NICにて受信可能なVLAN IDか否かを判定する。前記受信パケットのVLAN IDが前記受信先仮想NICで受信可能なVLAN IDであった場合には、ステップ1004にて前記受信先仮想NICを外部のネットワークから受信したパケットの宛先仮想NICとして登録した後、次の受信処理を継続する(ステップ1006)。前記受信パケットのVLAN IDが前記受信先仮想NICで受信不可能なVLAN IDであった場合には宛先NICの登録はせずに次の受信処理を継続する(ステップ1006)。
図10で説明したVLAN Tag処理の終了後、物理NIC制御部111は図9のステップ905にて未処理の受信パケットが物理NIC113に存在するか確認し、存在する場合は、物理NICに未処理の受信パケットがなくなるまでステップ901からステップ904までを繰り返し実行する。
ステップ905にて物理NIC113に未処理の受信パケットがなくなった場合はステップ906にて物理NIC制御部111が受信パケットの宛先となっている仮想NICの仮想NIC制御部を起動する。起動された仮想NIC制御部では物理NICより当該仮想NIC宛の受信パケットを一つ読み込んだ後、ステップ908にて未処理の受信パケットが存在するか判定し、未処理の受信パケットがなくなるまでステップ907を繰り返し実行する。ステップ908にて未処理の受信パケットが存在しなくなった場合、仮想NIC制御部はステップ909にて仮想NIC及びデバイスドライバを介してゲストOSに受信完了の通知を行う。ゲストOSは前記の通知を受け、受信処理を完了する(910)。
仮想ネットワーク・インターフェイス・カードにVLAN IDを設定するか否で、仮想ネットワーク・インターフェイス・カードのVLAN通信方法を切り替えることにより、一つの計算機システム上で稼働する仮想計算機システム内に複数のVLAN構成方法を同時に構築可能となり、異なるVLAN構成方法を用いて構築されている複数の計算機システムを、仮想計算機により一つの計算機システム上に統合する用途にも適用できる。
本発明の仮想計算機システムの一実施形態を示すブロック図である。 仮想NICに割り当てた構成情報を管理するための仮想NIC構成管理表である。 VLAN Tagを含む通信パケット及びVLAN Tagの形式を示す図である。 VLANを用いた仮想NIC間通信処理のフローチャートである。 仮想NIC間通信におけるVLAN Tag処理のフローチャートである。 送信元のVLAN IDが受信先仮想NICで受信可能かどうか判定するために用いるVLANマトリックスを示す図である。 物理NICを介した、仮想NICと外部のネットワークとのVLANを用いた送信処理のフローチャートである。 物理NICを介した送信時のVLAN Tag処理のフローチャートである。 物理NICを介した外部のネットワークと仮想NICとのVLANを用いた受信処理のフローチャートである。 物理NICを介した受信時のVLAN Tag処理のフローチャートである。
符号の説明
100 物理計算機
101 LPAR0
102 LPAR1
104 ゲストOS
105 デバイスドライバ
106 仮想NIC
107 制御プログラム
108 仮想NIC構成管理表
109 仮想NIC制御部
110 VLAN ID管理部
111 物理NIC制御部
113 物理NIC
114 外部ネットワーク
115 コンソール

Claims (6)

  1. 物理計算機の制御プログラム上で構築された複数の仮想計算機と、前記制御プログラムにより提供される前記複数の仮想計算機間のネットワーク通信を行うための仮想ネットワーク・インターフェイス・カード(以下、「仮想NIC」と呼ぶ。)と、を備えた仮想計算機システムにおいて、
    前記物理計算機は、前記制御プログラムから前記仮想NICにVLAN IDを設定する手段と、前記仮想NICがパケットを送信する際に送信元仮想NICにおけるVLAN IDの設定を確認する仮想NIC制御部と、前記仮想NIC及び前記仮想NICに対するVLAN IDの設定を管理する仮想NIC構成管理テーブルとを有し、
    前記仮想NIC制御部は、前記仮想NIC構成管理テーブルを参照して前記送信元仮想NICにおけるVLAN IDの設定を確認し、
    前記送信元仮想NICにVLAN IDが設定されている場合、該パケットを送信する仮想NICに設定されたVLAN IDを読み出し、
    前記送信元仮想NICにVLAN IDが設定されていない場合、前記仮想NICを使用する仮想計算機上のOSが前記パケットに設定した前記パケット内のVLAN IDを読み出し、
    前記仮想NIC制御部は、前記仮想NIC構成管理テーブルを参照して前記パケットを受信する受信元仮想NICにおけるVLAN IDの設定を確認し、
    前記パケットを受信する仮想NICにVLAN IDが設定されている場合、前記パケットを受信する仮想NICに設定されたVLAN IDを読み出し、
    前記送信元仮想NICにおけるVLAN IDの設定確認により読み出した送信元VLAN IDと、前記受信元仮想NICにおけるVLAN IDの設定確認により読み出した受信元VLAN IDとを比較し、
    前記送信元VLAN IDと前記受信元VLAN IDとが一致している場合、前記送信元仮想NICと前記受信元仮想NICとの通信処理を行い、
    前記送信元VLAN IDと前記受信元VLAN IDとが一致していない場合、前記送信元仮想NICと前記受信元仮想NICとの通信処理を行わないことを特徴とする仮想計算機システム。
  2. 前記パケットは、宛先MACアドレス、送信元MACアドレス、及びVLAN IDフィールドを有し、
    前記仮想NIC構成管理テーブルは、更に、前記仮想NICに割り当てられたMACアドレスを管理し、
    前記送信元仮想NIC制御部は、
    前記OSから読み込んだ前記パケットから、前記宛先MACアドレスを取得し、
    取得した前記宛先MACアドレスが、前記仮想NIC構成管理テーブルに存在するかを確認し、
    取得した前記宛先MACアドレスが前記仮想NIC構成管理テーブルに存在する場合、前記送信元仮想NICにおけるVLAN IDの設定確認を行うことを特徴とする請求項1記載の仮想計算機システム。
  3. 前記物理計算機の物理ネットワーク・インターフェイス・カード(以下、「物理NIC」と呼ぶ。)にアクセスする手段と、前記仮想NICから送信されるパケットの宛先が前記仮想計算機システム外部のネットワーク宛である場合には前記物理NICから前記送信パケットを送信する手段と、前記仮想計算機システム外部のネットワークから前記物理NICが前記仮想NIC宛のパケットを受信した場合には当該仮想NICに前記受信パケットを受信させる手段とを備え、
    前記仮想NICはVLANを構成しつつ、前記物理計算機の物理NICにより前記仮想計算機システム外部のネットワークと通信を行なうことが可能な請求項1記載の仮想計算機システム。
  4. 物理計算機の制御プログラム上で構築された複数の仮想計算機と、前記制御プログラムにより提供される前記複数の仮想計算機間のネットワーク通信を行うための仮想ネットワーク・インターフェイス・カード(以下、「仮想NIC」と呼ぶ。)とを備えた仮想計算機システムのネットワーク通信方法であって、
    前記物理計算機は、前記制御プログラムから前記仮想NICにVLAN IDを設定する手段と、前記仮想NICがパケットを送信する際に送信元仮想NICにおけるVLAN IDの設定を確認する仮想NIC制御部と、前記仮想NIC及び前記仮想NICに対するVLAN IDの設定を管理する仮想NIC構成管理テーブルとを有し、
    前記仮想NIC制御部は、
    前記仮想NIC構成管理テーブルを参照して前記送信元仮想NICにおけるVLAN IDの設定を確認するステップ、
    前記送信元仮想NICにVLAN IDが設定されている場合、該パケットを送信する仮想NICに設定されたVLAN IDを読み出すステップ、
    前記送信元仮想NICにVLAN IDが設定されていない場合、前記仮想NICを使用する仮想計算機上のOSが前記パケットに設定した前記パケット内のVLAN IDを読み出すステップ、
    前記仮想NIC構成管理テーブルを参照して前記パケットを受信する受信元仮想NICにおけるVLAN IDの設定を確認するステップ、
    前記パケットを受信する仮想NICにVLAN IDが設定されている場合、前記パケットを受信する仮想NICに設定されたVLAN IDを読み出すステップ、
    前記送信元仮想NICにおけるVLAN IDの設定確認により読み出した送信元VLAN IDと、前記受信元仮想NICにおけるVLAN IDの設定確認により読み出した受信元VLAN IDとを比較するステップ、
    前記送信元VLAN IDと前記受信元VLAN IDとが一致している場合、前記送信元仮想NICと前記受信元仮想NICとの通信処理を行うステップ、
    前記送信元VLAN IDと前記受信元VLAN IDとが一致していない場合、前記送信元仮想NICと前記受信元仮想NICとの通信処理を行わないステップ、
    を含む仮想計算機システムのネットワーク通信方法。
  5. 前記パケットは、宛先MACアドレス、送信元MACアドレス、及びVLAN IDフィールドを有し、
    前記仮想NIC構成管理テーブルは、更に、前記仮想NICに割り当てられたMACアドレスを管理し、
    前記送信元仮想NIC制御部は、
    前記OSから読み込んだ前記パケットから、前記宛先MACアドレスを取得するステップ、
    取得した前記宛先MACアドレスが、前記仮想NIC構成管理テーブルに存在するかを確認するステップ、
    取得した前記宛先MACアドレスが前記仮想NIC構成管理テーブルに存在する場合、前記送信元仮想NICにおけるVLAN IDの設定を確認するステップを行うことを特徴とする請求項4記載の仮想計算機システムのネットワーク通信方法。
  6. 前記仮想計算機システムの前記物理計算機は外部ネットワークとのインターフェイスを司る物理ネットワーク・インターフェイス・カード(以下、「物理NIC」と呼ぶ。)を備え、
    前記仮想NICから送信されるパケットの宛先が前記仮想計算機システム外部のネットワーク宛である場合には前記物理NICから前記送信パケットを送信するステップと、前記仮想計算機システム外部のネットワークから前記物理NICが前記仮想NIC宛のパケットを受信した場合には当該仮想NICに前記受信パケットを受信させるステップと、を含む請求項記載の仮想計算機システムのネットワーク通信方法。
JP2005352847A 2005-12-07 2005-12-07 仮想計算機システム及びそのネットワーク通信方法 Expired - Fee Related JP4622835B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005352847A JP4622835B2 (ja) 2005-12-07 2005-12-07 仮想計算機システム及びそのネットワーク通信方法
US11/635,912 US7769031B2 (en) 2005-12-07 2006-12-07 Virtual machine system and method of network communication between virtual machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005352847A JP4622835B2 (ja) 2005-12-07 2005-12-07 仮想計算機システム及びそのネットワーク通信方法

Publications (2)

Publication Number Publication Date
JP2007158870A JP2007158870A (ja) 2007-06-21
JP4622835B2 true JP4622835B2 (ja) 2011-02-02

Family

ID=38173389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005352847A Expired - Fee Related JP4622835B2 (ja) 2005-12-07 2005-12-07 仮想計算機システム及びそのネットワーク通信方法

Country Status (2)

Country Link
US (1) US7769031B2 (ja)
JP (1) JP4622835B2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
WO2009079850A1 (en) * 2007-12-21 2009-07-02 Intel Corporation Peer-to-peer streaming and api services for plural applications
JP5262145B2 (ja) * 2008-02-04 2013-08-14 日本電気株式会社 クラスタシステムおよび情報処理方法
WO2009110616A1 (ja) 2008-03-07 2009-09-11 日本電気株式会社 仮想マシンパッケージ生成システム、仮想マシンパッケージ生成方法および仮想マシンパッケージ生成プログラム
JP2009278261A (ja) * 2008-05-13 2009-11-26 Toshiba Corp 情報処理装置および通信制御方法
JP5272709B2 (ja) 2008-12-19 2013-08-28 富士通株式会社 アドレス割当方法、コンピュータ、物理マシン、プログラム、及びシステム
EP2482496B1 (en) 2009-09-24 2018-11-28 Nec Corporation Identification system for inter-virtual-server communication and identification method for inter-virtual-server communication
US8369333B2 (en) 2009-10-21 2013-02-05 Alcatel Lucent Method and apparatus for transparent cloud computing with a virtualized network infrastructure
JP5524606B2 (ja) 2009-12-28 2014-06-18 キヤノン株式会社 仮想化環境におけるモジュール間の通信方法、情報処理装置およびその制御方法、クライアント装置、情報処理システム、プログラム
JP5392137B2 (ja) * 2010-02-17 2014-01-22 富士通株式会社 通信処理のためのプログラム、コンピュータ及び方法
JP5477047B2 (ja) * 2010-02-25 2014-04-23 富士通株式会社 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体
US8739177B2 (en) 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US8953621B2 (en) 2010-09-10 2015-02-10 Futurewei Technologies, Inc. Specifying priority on a virtual station interface discovery and configuration protocol response
US8891406B1 (en) * 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
JP5715476B2 (ja) * 2011-04-25 2015-05-07 Kddi株式会社 マッピングサーバの制御方法及びマッピングサーバ
US8806250B2 (en) 2011-09-09 2014-08-12 Microsoft Corporation Operating system management of network interface devices
US8892710B2 (en) 2011-09-09 2014-11-18 Microsoft Corporation Keep alive management
US9049660B2 (en) 2011-09-09 2015-06-02 Microsoft Technology Licensing, Llc Wake pattern management
JP5667552B2 (ja) 2011-12-08 2015-02-12 株式会社日立製作所 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法
JP2013207784A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd 通信インターフェース装置、該プログラム、及び仮想ネットワーク構築方法
US9325562B2 (en) * 2012-05-15 2016-04-26 International Business Machines Corporation Overlay tunnel information exchange protocol
US9019967B2 (en) 2012-07-30 2015-04-28 Dell Products L.P. VLAN advertisement and automated configuration
US9912517B1 (en) 2012-08-23 2018-03-06 Amazon Technologies, Inc. Optimized deployment and execution of programs in a distributed computing environment
US9588788B1 (en) * 2012-08-23 2017-03-07 Amazon Technologies, Inc. Optimized communication between program components executing in virtual machines
US9529612B2 (en) * 2013-03-18 2016-12-27 International Business Machines Corporation Scalable policy assignment in an edge virtual bridging (EVB) environment
US9535728B2 (en) * 2013-03-18 2017-01-03 International Business Machines Corporation Scalable policy management in an edge virtual bridging (EVB) environment
JP6011401B2 (ja) * 2013-03-18 2016-10-19 富士通株式会社 接続情報を生成するための情報処理装置及び方法
CN103621026B (zh) * 2013-04-01 2017-06-13 华为技术有限公司 虚拟机的数据交换方法、装置和系统
US9065854B2 (en) * 2013-10-28 2015-06-23 Citrix Systems, Inc. Systems and methods for managing a guest virtual machine executing within a virtualized environment
US10120729B2 (en) 2014-02-14 2018-11-06 Vmware, Inc. Virtual machine load balancing
CN103873374B (zh) * 2014-03-27 2017-08-11 新华三技术有限公司 虚拟化系统中的报文处理方法及装置
US10261814B2 (en) * 2014-06-23 2019-04-16 Intel Corporation Local service chaining with virtual machines and virtualized containers in software defined networking
US9971624B2 (en) 2015-05-17 2018-05-15 Nicira, Inc. Logical processing for containers
US10243914B2 (en) 2015-07-15 2019-03-26 Nicira, Inc. Managing link aggregation traffic in edge nodes
US9992153B2 (en) * 2015-07-15 2018-06-05 Nicira, Inc. Managing link aggregation traffic in edge nodes
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
US9998371B2 (en) * 2015-12-16 2018-06-12 Nicira, Inc. Packet communication between container data compute nodes and a managed forwarding element
US11086686B2 (en) * 2018-09-28 2021-08-10 International Business Machines Corporation Dynamic logical partition provisioning
JP7338481B2 (ja) * 2020-01-14 2023-09-05 富士通株式会社 設定変更方法および設定変更プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178442A (ja) * 1996-12-17 1998-06-30 Kawasaki Steel Corp ネットワーク中継器
JP2002084302A (ja) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> ネットワークによる通信方法及び装置
US20040267866A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Virtual machine connection to a tangible network
JP2005101722A (ja) * 2003-09-22 2005-04-14 Sharp Corp 集線装置、中継制御方法、中継制御プログラム、中継制御プログラムを記録した記録媒体、情報処理装置、dhcpサーバ、dhcp処理方法、dhcp処理プログラム、dhcp処理プログラムを記録した記録媒体、および情報処理システム
WO2005083946A1 (en) * 2004-02-13 2005-09-09 Intel Corporation Apparatus and method for a dynamically extensible virtual switch
US20060045089A1 (en) * 2004-08-27 2006-03-02 International Business Machines Corporation Method and apparatus for providing network virtualization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047314B2 (en) * 2000-12-28 2006-05-16 Oki Electric Industry Co., Ltd. Duplicate private address translating system and duplicate address network system
US7093280B2 (en) * 2001-03-30 2006-08-15 Juniper Networks, Inc. Internet security system
US7366784B2 (en) * 2001-11-27 2008-04-29 Hitachi, Ltd. System and method for providing and using a VLAN-aware storage device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10178442A (ja) * 1996-12-17 1998-06-30 Kawasaki Steel Corp ネットワーク中継器
JP2002084302A (ja) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> ネットワークによる通信方法及び装置
US20040267866A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Virtual machine connection to a tangible network
JP2005101722A (ja) * 2003-09-22 2005-04-14 Sharp Corp 集線装置、中継制御方法、中継制御プログラム、中継制御プログラムを記録した記録媒体、情報処理装置、dhcpサーバ、dhcp処理方法、dhcp処理プログラム、dhcp処理プログラムを記録した記録媒体、および情報処理システム
WO2005083946A1 (en) * 2004-02-13 2005-09-09 Intel Corporation Apparatus and method for a dynamically extensible virtual switch
US20060045089A1 (en) * 2004-08-27 2006-03-02 International Business Machines Corporation Method and apparatus for providing network virtualization

Also Published As

Publication number Publication date
US7769031B2 (en) 2010-08-03
JP2007158870A (ja) 2007-06-21
US20070140263A1 (en) 2007-06-21

Similar Documents

Publication Publication Date Title
JP4622835B2 (ja) 仮想計算機システム及びそのネットワーク通信方法
EP3906471B1 (en) Network configuration updates for virtual machine
US11372802B2 (en) Virtual RDMA switching for containerized applications
TWI458307B (zh) 管理網路資訊處理的系統和方法
US10630583B2 (en) System and method for supporting multiple lids for dual-port virtual routers in a high performance computing environment
CN102932174B (zh) 一种物理网卡管理方法、装置及物理主机
US11487690B2 (en) Universal host and non-volatile memory express storage domain discovery for non-volatile memory express over fabrics
EP3424191B1 (en) System and method for supporting dual-port virtual router in a high performance computing environment
US9031081B2 (en) Method and system for switching in a virtualized platform
US7529860B2 (en) System and method for configuring an endpoint based on specified valid combinations of functions
US9019978B2 (en) Port mirroring at a network interface device
CN109302466B (zh) 数据处理方法、相关设备及计算机存储介质
US9559898B2 (en) Automatically configuring data center networks with neighbor discovery protocol support
US20170214580A1 (en) System and method for providing an infiniband network device having a vendor-specific attribute that contains a signature of the vendor in a high-performance computing environment
US20120294192A1 (en) Method and apparatus of connectivity discovery between network switch and server based on vlan identifiers
TW201435646A (zh) 用於PCIe(快速週邊組件互連)架構上主機間訊息收發安全及隔離的方法與裝置
CN104579695A (zh) 一种数据转发装置和方法
JP2009500702A (ja) ネットワークに付属する物理的なポートの仮想インスタンスを管理するための方法およびシステム
CN102790777A (zh) 网络接口适配器注册方法及驱动设备、服务器
CN110301125B (zh) 虚拟机的逻辑端口认证
CN104580011A (zh) 一种数据转发装置和方法
WO2012168872A1 (en) Virtual network configuration and management
US10708198B1 (en) Methods and apparatus to reduce packet flooding and duplicate packets in a multi-fabric virtual network
EP3949273A1 (en) Highly-scalable, software-defined, in-network multicasting of load statistics data
US9135451B2 (en) Data isolation in shared resource environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101005

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101018

R151 Written notification of patent or utility model registration

Ref document number: 4622835

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees