JP4740897B2 - 仮想ネットワーク構成方法及びネットワークシステム - Google Patents

仮想ネットワーク構成方法及びネットワークシステム Download PDF

Info

Publication number
JP4740897B2
JP4740897B2 JP2007137754A JP2007137754A JP4740897B2 JP 4740897 B2 JP4740897 B2 JP 4740897B2 JP 2007137754 A JP2007137754 A JP 2007137754A JP 2007137754 A JP2007137754 A JP 2007137754A JP 4740897 B2 JP4740897 B2 JP 4740897B2
Authority
JP
Japan
Prior art keywords
virtual
channel
physical
computer
network interface
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
JP2007137754A
Other languages
English (en)
Other versions
JP2008294717A (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 JP2007137754A priority Critical patent/JP4740897B2/ja
Priority to US12/124,495 priority patent/US8279878B2/en
Publication of JP2008294717A publication Critical patent/JP2008294717A/ja
Application granted granted Critical
Publication of JP4740897B2 publication Critical patent/JP4740897B2/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、計算機間に構成される仮想ネットワークを構成して管理する仮想ネットワーク構成方法及びネットワークシステムに関する。
近年、計算機システムにおいて、ネットワーク接続の高速化が重要な課題となっている。特に、サーバ間のデータのバックアップ処理では、サーバ間の広帯域なデータ転送が必要となる。
従来から、計算機のネットワークの広帯域化技術として、複数のネットワークインターフェースカード(以下、NICと呼ぶ)を束ねて、仮想的に一つのインターフェースに見せかける技術が存在する。
例えば、Linuxオペレーティングシステムにおいては、Bonding技術が用いられている。Bondingは、複数の異なるネットワークアドレスを持つNICから通信があった場合に、それぞれの通信を別のNICに割り当てることによって、ネットワークの帯域を広げることができる(例えば、非特許文献1参照。)。
また、IEEEで策定されている802.3ad規格であるリンクアグリゲーション技術が知られている。リンクアグリゲーションは、複数のNICを一つの仮想的なポート(トランク)として見せることによって、複数のNICに対して一つのMACアドレスを設定する。このトランクに設定されたMACアドレスに対するアクセスは、トランクに属する複数のNICに振り分けられて転送される(例えば、非特許文献2参照。)。
また、PMライブラリという技術も公開されている。PMライブラリは、アプリケーションプログラムは仮想的なインターフェース(チャネル)に対してパケットを送信する。インターフェースに対して送信されたパケットは、仮想的なインターフェースのテーブルに記述された宛先の計算機のNICのアドレス及び宛先の計算機のNICのアドレスを指定されて送信される。このとき、送信元の計算機及び宛先の計算機に複数のNICが備わる場合に、宛先、送信元のNICの中から一つの組を選択してパケトを送信する。複数のパケット送信を非同期に行う場合、物理的なインターフェースに並列にパケットが送信され、同時に複数のNICの帯域を使用することができる。このような構成によって、帯域が増加する。また、明示的に送信元、宛先のアドレスを指定するため、二つの計算機間の通信においても並列にデータが転送され、複数のNICの帯域を使用することができる(例えば、非特許文献3参照。)。
Thomas Davis他、「イーサネット結合ドライバ」、[online]、2000年10月3日、インターネット<URL:http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.4/networking/bonding.txt> 「802.3ad-2000 Local and Metropolitan Area Networks - Part 3」、IEEE、2000年 手塚宏史、堀敦史、石川裕、「ワークステーションクラスタ用通信ライブラリPMの設計と実装」、並列処理シンポジウムJSPP‘96、情報処理学会、1996年、p.41−48
前述の非特許文献1に記載された技術では、二つの計算機間のデータ転送において、同一のネットワークアドレスからのパケットの受信には、常に同一のNICで処理される。そのため、二つの計算機間では、常に同じ一つのNICでパケットを受信するため、二つの計算機間で広帯域な通信をするために、データを複数のNICに振り分けることができない。
また、前述の非特許文献2に記載された技術では、すべてのNICが同一のネットワークスイッチに接続されている必要がある。そのため、ネットワーク構成に制限がある。また、トランクに属するNICはすべて同一のネットワークスイッチに接続されている必要があり、中継するすべての機器がリンクアグリゲーションに対応している必要がある。
また、非特許文献3に記載された技術は、仮想的なチャネルをMACアドレスで示される物理的なデバイスに明示的にマッピングする。このようにすることによって複数のNICにパケットを分散させて並列にパケットを送受信できる。従って、二つの計算機間のデータ転送においても、帯域を増加させることが可能となる。
しかしながら、非特許文献3に記載のPMライブラリは、専用のライブラリによって構成されたプログラムである。そのため、上位のアプリケーションがPMライブラリの「チャネル」に必要な処理を認識した上でネットワーク処理を実行させる必要がある。これは、既存のアプリケーションプログラムを改変なく動作させることが難しいことを意味する。
特に、仮想チャネルを物理的なNICにマッピングするためのスケジューリングの方法が課題となる。
非特許文献3に記載のPMライブラリでは、アプリケーションプログラムが仮想チャネルを物理的なNICに明示的にマッピングする。このマッピングが完了した後、仮想的なチャネルに送信されたパケットは、送信側、受信側のアドレスともマッピングされた物理インターフェースのアドレスに書き換えられる。複数のNICがマッピングされているときには、順にその中から一つのNICを選ぶことによって、複数のNICで並列にデータを送信することができる。各アプリケーションはアプリケーションの特性に従ってスケジューリングすることが可能である。
これに対して、一般的なEthernet(登録商標、以下同じ)では、仮想的なチャネルを物理的なNICにマッピングするという概念はないため、仮想ネットワークの処理を実行する制御システムによるスケジューリングが必要となる。
本発明は、上記問題点を鑑みて、仮想的なNIC間の通信を仮想的なチャネル、及び、物理的なインターフェースに割り当てることによって、アプリケーションプログラムの改変を必要とすることなく、複数のNICを仮想的に一つのNICとして見せかけるネットワークシステムを提供することを目的とする。
本発明の一実施態様によると、一つ又は複数の物理ネットワークインターフェースを備えた第1の計算機及び第2の計算機と、前記第1の計算機と前記第2の計算機とを前記物理ネットワークインターフェースを介して通信可能に接続するネットワークと、によって構成されたネットワークシステムにおいて、前記第1の計算機と前記第2の計算機との間の仮想的なネットワークを構成する仮想ネットワーク構成方法であって、前記第1の計算機は、前記第1の計算機上で稼動するアプリケーションによるデータ送受信に使用される仮想ネットワークインターフェースを設定し、前記設定された仮想ネットワークインターフェースと前記第2の計算機に設定された仮想ネットワークインターフェースとの間に仮想チャネルを設定して、前記設定された仮想チャネルと前記仮想ネットワークインターフェースとの対応関係を仮想チャネル情報として記憶し、前記第1の計算機の物理ネットワークインターフェースと前記第2の計算機の物理ネットワークインターフェースとの間に物理チャネルを設定して、前記設定された物理チャネルと前記物理ネットワークインターフェースとの対応関係を物理チャネル情報として記憶し、前記仮想チャネルを使用して送受信されるデータのトラフィックを集計し、前記集計結果を前記仮想チャネル情報に記憶し、前記仮想ネットワークインターフェースに対するデータ送信命令を検知した場合に、予め設定された前記仮想チャネルの優先度と前記記憶された統計情報とに基づいて、前記仮想ネットワークインターフェースに設定された仮想チャネルと一つ又は複数の前記物理チャネルとの対応関係を設定して、前記設定された仮想チャネルと物理チャネルとの対応関係を前記物理チャネル情報に記憶し、前記設定された仮想チャネルと物理チャネルとの対応関係を、前記データ送信命令の宛先となる仮想ネットワークインターフェースを備える前記第2の計算機に送信し、前記第2の計算機は、前記仮想チャネルと物理チャネルとの対応関係を受信した場合に、前記受信した仮想チャネルと物理チャネルとの対応関係を前記物理チャネル情報に記憶し、前記第1の計算機は、前記記憶された対応関係に基づいて、前記データ送信命令に係るデータを、前記仮想チャネルに対応付けられた一つ又は複数の前記物理チャネルを用いて送信することを特徴とする。
なお、優先度の指標として、事前に定められた並列接続の数、仮想ネットワーク毎の重み付けの数値等の優先制御情報を用いる。また、統計情報として、仮想チャネルの使用頻度の使用状況を用いる。
本発明によると、既存のアプリケーションプログラムを改変することなく、複数のNICを仮想的に一つのNICとして見せることができる。また、計算機の制御システムが、物理NICの仮想NIへの割り当てを、アプリケーションプログラムに通知することなく実行できるとともに、アプリケーションプログラムに通知することなく、仮想NICの使用状況に応じて割り当てを再構成することができ、例えば使用率が低くなった仮想NICを、より優先度の高い仮想NICに割り当て、ネットワークの使用効率を高めることができる。
以下に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明の実施の形態の仮想ネットワークシステムの構成ブロック図である。
図1に示す仮想ネットワークシステムは、一つ以上の計算機11(11−1、11−2)と、計算機を接続するネットワーク19とを備える。計算機11−1と計算機11−2とはネットワーク19を介して接続されている。
各計算機11は、N個の物理ネットワークインターフェースカード(物理NIC)15(15−1、15−2、…、15−N)を備える。
計算機11は、一つ以上のアプリケーションプログラム12(12−1、12−2、…、12−N)、一つ以上の仮想ネットワーク機構13、物理NIC制御部14、及び、記憶部18を備える。記憶部18には、仮想チャネルテーブル16と物理チャネルテーブル17とが格納されている。
仮想ネットワーク機構13は、仮想NIC処理部131、アドレス書き換え部132及び管理パケット処理部133を備える。また、仮想ネットワーク機構13は、仮想チャネルテーブル16と物理チャネルテーブル17とを参照及び更新する。
仮想ネットワーク機構13は、計算機11のネットワーク処理を制御する。
仮想ネットワーク機構13は、例えばCPU201(図2参照)によって動作するプログラムとして実装される。また、仮想ネットワーク機構13は、オペレーティングシステム(OS)、計算機を仮想化する仮想マシンモニタ(VMM)、又は、ハイパバイザなどの基本プログラムの一部として動作する。また、仮想NIC処理部131、アドレス書き換え部132及び管理パケット処理部133は、仮想ネットワーク機構13を動作させるプログラムの一部として実装される。
仮想ネットワーク機構13は、CPU201によるプログラムの実行によって、計算機11で動作するアプリケーションプログラム12に対する仮想的なネットワークインターフェースを提供する。
本実施の形態では、仮想ネットワーク機構13が、アプリケーションプログラム12に対して、物理NIC15と同等のネットワークインターフェースを提供する。なお、仮想ネットワーク機構13がアプリケーションプログラム12に提供する仮想的なネットワークインターフェースを「仮想NIC」と呼ぶ。仮想NICは、仮想ネットワーク内で一意の識別子であるネットワークアドレスが割り当てられている。また、計算機11の管理者は、仮想ネットワーク機構13を一つの計算機上で複数定義することができる。
なお、仮想NICのネットワークアドレスを特定する識別子は、一般的には、OSIモデルの第2レイヤのアドレスを用いる。本発明の実施の形態では、仮想NICのネットワークアドレスにMACアドレスを用いる。
アプリケーションプログラム12は、自計算機11の仮想NICと他の計算機11の仮想NICとの組によって構成される仮想ネットワーク上に設定された仮想チャネルによって、他の計算機11と通信する。
仮想チャネルテーブル16は、仮想NICと仮想チャネルとの対応関係を格納する。物理チャネルテーブル17は、ネットワーク19における物理NIC15間に設定された物理チャネルと仮想チャネルとの対応関係を格納する。
仮想NIC処理部131は、計算機11で稼動するアプリケーションプログラム12から仮想NICを介して発行されるデータ転送命令を解釈して、仮想NICと実際のハードウェアである物理NICとを制御する。
より具体的には、仮想NIC処理部131は、アプリケーションプログラム12から仮想NICに対するデータ転送命令があった場合は、仮想チャネルテーブル16を参照して当該仮想NICに対応する仮想チャネルを特定する。そして、物理チャネルテーブル17を参照して、特定された仮想チャネルに対応する物理チャネルを特定する。
また、仮想NIC処理部131は、受信したパケットが管理用パケットであるかデータ用パケットであるかを判定する。管理用パケットの識別子には、管理用であること及びその内容を示す識別子が付加される。
なお、管理パケットか否かを判定するために、VLAN(Virtual LAN)のIDを使用してもよい。仮想NIC処理部131は、パケットに特定のVLAN IDを含むVLANタグを付加してデータ用パケットを管理用パケットとして送信する。逆に、特定のVLAN IDが付加されているデータ用パケットは管理用パケットであるとして処理する。
なお、VLANタグではなく、パケットヘッダ中の未使用の1ビットを、管理パケットであるか否かを示す識別子として設定してもよい。
アドレス書き換え部132は、仮想チャネルテーブル16と物理チャネルテーブル17とを参照して、受信したパケットの仮想NICのネットワークアドレスと物理NIC15のネットワークアドレスとを書き換える処理を実行する。
管理パケット処理部133は、受信したパケットが管理パケットである場合は、その管理パケットの内容に基づいて、仮想チャネルテーブル16と物理チャネルテーブル17とを更新すると共に、必要であれば他の計算機11に対して管理パケットを送信する。
以上のように、仮想ネットワークシステムの計算機11に構成された各要素が実行する処理によって、仮想ネットワーク機構を備える計算機11同士がパケットを転送するときに、計算機11が備える複数の物理NIC15をどのように利用するかを決定することができる。
例えば、一つの仮想チャネルを複数の物理チャネルを割り当てることによって、ネットワーク処理を複数の物理NIC15に分散し、パケットを並列に送受信することが可能となる。このように、分散してパケットを送受信することによって、計算機11間での高帯域の通信が可能となる。
図2は、本発明の実施の形態の計算機11の構成ブロック図である。
計算機11は、一つ以上のCPU210(210−1…210−N)、ノースブリッジ203、メモリ204、IOブリッジ205及びIOバス206を備える。
各CPU210とノースブリッジ203とは、フロントサイドバス202を介して接続されている。また、ノースブリッジ203は、フロントサイドバス202、メモリ204及びIOブリッジ205と接続されている。また、IOブリッジ205は、IOバス206と接続されている。IOバス206は二つ以上備えてもよい。
ノースブリッジ203は、CPU210とメモリ203との間のデータの転送、及び、メモリ204とIOブリッジ205との間のデータの転送を制御する。
メモリ204は、前述の記憶部18を構成する。また、メモリ204は、CPU210によって実行されるプログラムや各種データ、キャッシュメモリ等を格納する。さらに、メモリ204は、計算機11が備える各構成によってメモリ空間として使用され、特定のメモリ空間は特定の構成に特定の制御命令を実行させるためのターゲットアドレスとして使用される。
IOブリッジ205は、IOバス206に接続されたIOデバイスとノースブリッジ203との間のデータの転送を制御する。IOバス206は、例えばPCIバスによって構成される。
図2において、IOデバイスは、SCSI又はFC等で構成されるディスクIF207、NIC208及び入出力装置209が例示されている。ディスクIF207は、ハードディスク等を備える外部記憶装置210を接続する。NIC208は、物理NIC15を構成し、ネットワーク19を接続する。入出力装置209は、キーボード、ディスプレイ等の外部入出力装置を接続する。
CPU210は、ノースブリッジ203を介してメモリ204に配置されているプログラムを読み込んで実行する。CPU210は、プログラムの内容に従って、必要に応じてノースブリッジ203、IOブリッジ205を介して、ディスクIF207、NIC208等にデータ転送命令を発行することによって、データの転送を制御する。
メモリ204及びIOデバイス(ディスクIF207、NIC208及び入出力装置209)は、それぞれ計算機11上の一意なアドレス空間を持つ。CPU210は、データ転送のアドレスを指定してデータ転送命令を発行する。メモリ204及びIOデバイスは、それぞれアドレスに対応したデータの転送を実行する。
仮想ネットワークシステム中の各計算機11は、前述のように二つ以上(N個)の物理NIC15を備えており、これらの物理NIC15とネットワーク19とが接続されている。なお、物理NIC15とネットワーク19とは物理的に直結されている必要はなく、計算機11間の物理NIC15による通信に、一つ以上のネットワークスイッチが存在してもよい。ただし、本発明は、ネットワーク中にネットワークルータが存在することにより計算機11間のセグメントが分けられていないことを前提とする。
なお、仮想ネットワーク機構13及び仮想NIC処理部131は、例として次のような実装方法がある。
仮想ネットワーク機構13をOSの一部として動作させる場合は、仮想NIC処理部131はOSのデバイスドライバとして実装される。仮想NIC処理部131は、OSで定められたインターフェースによってアプリケーションプログラム12から仮想NICを介する通信命令を受信し、受信した命令をデバイス固有の制御命令に変換することによって、通信命令に対応するデータを転送する。
また、仮想ネットワーク機構13をハイパバイザの一部として動作させる場合は、仮想NIC処理部131は、ハイパバイザの仮想NIC処理を行うプログラムとして実装される。仮想NIC処理部131は、物理NIC15に対応するソフトウェアインターフェースをエミュレートする。仮想NIC処理部131は、ハイパバイザ上の仮想計算機から発行されるNIC制御命令を受信すると、受信した命令を解釈して、当該命令に対応する動作を実行する。
なお、仮想ネットワーク機構13をハイパバイザの一部として動作させる場合は、アプリケーションプログラム12は、仮想計算機上で稼動するOS(ゲストOS)に相当する。一般的に、ハイパバイザは、仮想計算機のIOポートやMMIO(Memory Mapped IO)等のインターフェースによって仮想計算機上のOSから命令を受けた場合は、その命令を解釈して物理NIC15の制御命令に変換することによってデータの転が実行される。本実施の形態では、このIOポートやMMIOを、仮想NIC処理部131がエミュレートする。なお、IOポートやMMIOのエミュレート処理の実装は、ハードウェアのエミュレータで一般的に実装されている方法を用い、本発明ではその詳細は省略する。
図3は、本発明の実施の形態の仮想チャネルテーブル16の一例の説明図である。
仮想チャネルテーブル16は、仮想ネットワークシステムに存在する任意の計算機11の仮想ネットワーク機構13のネットワークアドレスと、自計算機の仮想ネットワーク機構13のネットワークアドレスとを対応付けて管理するデータ列である。
計算機11は、仮想チャネルテーブル16を、例えば、リレーショナルデータベース形式のテーブルとして保持する。
仮想チャネルテーブル16は、自計算機仮想ネットワークアドレス301、他計算機仮想ネットワークアドレス302、仮想チャネルID303、仮想チャネル優先制御情報304、及び、仮想チャネル使用頻度305を組とした一以上のレコードを含む。
自計算機仮想ネットワークアドレス301は、自計算機の仮想ネットワーク機構13のネットワークアドレスである。
他計算機仮想ネットワークアドレス302は、仮想ネットワークシステムに存在する他の計算機11の仮想ネットワーク機構13のネットワークアドレスである。
なお、これら自計算機仮想ネットワークアドレス301と他計算機仮想ネットワークアドレス302との組によって特定される仮想ネットワークが「仮想チャネル」である。すなわち、仮想チャネルテーブル16は、この仮想チャネルの情報を情報を記憶する。
仮想チャネルID303は、ネットワークパケットを送受信する二つの計算機間でネットワークパケットが属する仮想チャネルを一意に識別する識別子である。なお、仮想チャネルIDは、二つの計算機間では一意である必要がある。仮想チャネルIDは、例えば整数値を用いる。
前述のように、仮想ネットワーク機構13のネットワークアドレスにMACアドレスを使用する場合は、テーブルの各レコードは、仮想ネットワーク機構13によって、自計算機仮想ネットワークアドレス301(MACアドレス)から他計算機仮想ネットワークアドレス302(MACアドレス)へのデータ転送のため、及びその逆方向のデータ転送のためのネットワークパケットを、仮想チャネルID303によって示される仮想チャネルを特定するために使用される。
仮想チャネル優先制御情報304は、仮想チャネルに割り当てられるべき性能の指標を表す情報である。性能の指標には、例えば、ネットワーク帯域や優先度を表す指標等である。本実施形態では、ネットワーク帯域の指標に、同時並列物理チャネル数を、優先度の指標として、チャネル重み付け数値を用いる。
仮想チャネル使用頻度305は、所定期間内に、仮想チャネルでパケットが送受信された頻度を示す情報である。
仮想NIC処理部131は、メモリ204にカウンタと平均値情報とを格納するメモリ領域を構成する。仮想チャネル間でパケットの送信及び受信が処理される毎に、仮想NIC処理部131は、カウンタの格納領域に格納されている数値を1だけ加算する。カウンタは所定期間毎にクリアする。クリア直前の値を平均値情報を格納する領域にコピーする。また、所定期間毎にこの平均値情報によって仮想チャネルテーブル16の仮想チャネル使用頻度305を更新する。このようにすることで、所定期間内の仮想チャネル間の通信の頻度を格納する。なお、所定期間は例えば1秒に設定される。
なお、仮想チャネルIDで示される二つの仮想ネットワークアドレス間のデータ転送が可能であるときに、その仮想チャネルが「通信可能である」とする。
図4は、本発明の実施の形態の物理チャネルテーブル17の一例の説明図である。
物理チャネルテーブル17は、仮想チャネルIDに関連付けられたネットワークパケットの宛先ネットワークアドレス及び送信元ネットワークアドレスを書き換える規則を表すデータ列である。
計算機11は、物理チャネルテーブル17を、例えば、リレーショナルデータベース形式のテーブルとして保持する。
物理チャネルテーブル17は、自計算機物理ネットワークアドレス401、他計算機物理ネットワークアドレス402、割り当て可能仮想チャネルIDリスト403、及び、割り当て済み仮想チャネルID404を組とした一以上のレコードを含む。
自計算機物理ネットワークアドレス401は、自計算機11が備える計算機の物理NIC15のMACアドレスである。
他計算機物理ネットワークアドレス402は、仮想ネットワークシステム中の任意の計算機11の物理NIC15のMACアドレスである。
なお、これら自計算機物理ネットワークアドレスと他計算機物理ネットワークアドレスとの二つのMACアドレスの組によって特定される物理ネットワークが物理チャネルである。すなわち、物理チャネルテーブル17は、この物理チャネルに関する情報を情報を記憶する。
割り当て可能仮想チャネルIDリストテーブル403は、二つの物理MACアドレスの組で示される物理チャネルが割り当て可能である仮想チャネルIDのリストである。
割り当て済み仮想チャネルID404は、現在物理チャネルに実際に割り当てられている仮想チャネルの仮想チャネルIDである。
なお、ある物理チャネルで示される二つの物理NIC15間のデータの転送が可能であり、その物理NICを備える計算機の仮想NIC処理部131及びアドレス書き換え部132の動作によって仮想チャネルが通信可能であるときに、当該物理チャネルは当該仮想チャネルを「割り当て可能である」とする。
また、仮想チャネル中の仮想ネットワークインターフェース間の通信を仮NIC処理部131が処理するときに、アドレス書き換え部132によって、仮想ネットワークアドレスを物理チャネルのネットワークアドレスに書き換え、物理チャネルに含まれる二つの物理NIC15間のデータ転送を行い、仮想チャネルのデータ転送を処理するように設定されているときに、前記仮想チャネルは前記物理チャネルに「割り当て済み」とする。
割り当て済み仮想チャネルID404に仮想チャネルIDが登録されているときは、その仮想チャネルがそのレコードの物理チャネルに割り当て済みであることが示される。
一つの仮想チャネルは一つ以上の物理チャネルに割り当てることができる。一つの仮想チャネルが二つ以上の物理チャネルに割り当てられた場合は、この仮想チャネルの通信パケットは、仮想NIC処理部131によって複数の物理チャネルに振り分けられて送信される。これにより、一つの仮想チャネル間のデータ通信であっても複数の物理NIC15の帯域を使用することができ、広帯域の通信を実現できる。
次に、仮想ネットワーク機構13が実行する処理を説明する。
図5は、本発明の実施の形態の仮想ネットワーク機構13の仮想NIC処理部131、アドレス書き換え部132及び管理パケット処理部133が実行する、仮想チャネル中の二つのネットワークインターフェース間のデータ転送の処理のフローチャートである。
まず、送信側の計算機11における処理を説明する。
送信側の計算機11において、仮想ネットワークインターフェースを使用するアプリケーションプログラム12が仮想NICに対してデータ転送命令を発行した場合は、仮想NIC処理部131が、このデータ転送命令の発行を検知する(ステップS501)。
アプリケーションプログラム12によるデータ転送命令の発行は、例えば、アプリケーションプログラム12によってメモリ204の所定の領域に転送データを格納し、計算機11におけるメモリ空間の所定領域にアクセスすることによって、仮想NIC処理部131が仮想NICへの命令が発行されたことを検知する。このように、仮想ネットワークインターフェースによって予め定められた方法によってデータ転送命令が発行される。
なお、データ転送命令は、送信命令識別子と送信パケットデータとの組で構成される。送信パケットデータは、送信元仮想ネットワークアドレス、宛先仮想ネットワークアドレス及び送信データを含んで構成される。
次に、計算機11の仮想NIC処理部131は、仮想チャネルテーブル16を参照して、データ転送命令によって送信されるパケットに対応する仮想チャネルを検索する(ステップS502)。
具体的には、仮想NIC制御部131は、仮想チャネルテーブル16を参照して、自計算機仮想ネットワークアドレス301と他計算機仮想ネットワークアドレス302との組が、ステップS501においてデータ転送命令を検知した仮想NICに割り当てられている仮想ネットワークアドレスとデータ転送命令の宛先仮想ネットワークアドレスとの組と一致するレコードを検索する。検索されたレコードの仮想チャネルID303から仮想チャネルIDを選択して、仮想チャネルが検索される。
次に、仮想NIC制御部131は、ステップS502において、一致条件を満たす仮想チャネルが検索された場合は、ステップS504〜S517の処理を実行する。一致条件を満たす仮想チャネルが検索されなかった場合は、ステップS523の処理を実行する(ステップS503)。
ステップS523では、仮想チャネルが設定されていないとしてデータ転送処理を失敗終了する。仮想NIC制御部131は、ネットワークインターフェースに予め定められている失敗処理を実行して、本フローチャートの処理を終了する。
ステップS504では、仮想NIC処理部131は、物理チャネルテーブル17を参照して、ステップS502で検索された仮想チャネルに割り当て済みの物理チャネルの一覧を検索する。
ステップS504において、仮想チャネルに割り当てられた物理チャネルが検索された場合は、仮想NIC処理部131及びアドレス書き換え部132は、ステップS506〜S517の処理を実行する。仮想チャネルに割り当てられた物理チャネルが検索されなかった場合は、ステップS525の処理を実行する(ステップS505)。
ステップS525では、データ転送要求に対応する仮想チャネルを、物理チャネルに新たに割り当てる物理チャネル割り当て処理を実行する。この処理は、図10及び図11において後述する。この処理の結果、新たに割り当てられた物理チャネルを使用して、ステップS506〜S517の処理を実行する。
ステップS506では、仮想NIC処理部131は、ステップS505において検索された物理チャネルの中から一つの物理チャネルを選択する。
この物理チャネルの選択の方法は、例えば、(1)ラウンドロビン(2)送信パケット数による重み付けラウンドロビン(3)送信パケット数最小チャネルの選択、等によって、物理チャネルを一つ選択する。なお、それぞれの方式に応じて、前回割り当て済みの物理チャネルを識別する情報等の物理チャネルの内部状態に関する領域を、適宜物理チャネルテーブル17のテーブルのレコードの列として追加する。
また、物理NIC15のハードウェアの特性によっては、ある程度まとまった数のパケットを連続して転送することでデータ転送が高速にできる場合もある。このような特性を持った物理NIC15を使用する場合は、前記(1)のラウンドロビン方式のバリエーションとして、転送パケット数が一定数に達したとき、又は、一定期間毎に、データ転送のための物理チャネルを決定して、次回の決定タイミングまでは同一の物理チャネルを使用する方法を用いることもできる。
次に、アドレス書き換え部132は、データ転送要求に対応するパケットに含まれる宛先仮想ネットワークアドレスと送信元仮想ネットワークアドレスを、それぞれ、ステップS506で選択された物理チャネルの他計算機ネットワークアドレス402と自計算機ネットワークアドレス401とに書き換える(ステップS507)。これによって、パケットの送信元仮想ネットワークアドレスが自計算機11の物理NIC15のネットワークアドレスに、宛先仮想ネットワークアドレスが宛先の計算機11の物理NIC15のネットワークアドレスに、それぞれ変更される。
次に、仮想NIC処理部131は、ネットワークアドレスを書き換えたパケットを、物理チャネルの送信元物理ネットワークアドレスに対応する物理NIC15に発行する。これによって、物理NIC制御部14によって、当該パケットが当該物理NIC15を経由してネットワーク19に送信される(ステップS508)。
ここで、仮想NIC処理部131は、ステップS501〜S508の処理の実行の後に、ステップS502において選択された仮想チャネルに対応するレコードを仮想チャネルテーブル16から取得し、当該レコードの仮想チャネル使用頻度のカウンタ値を1だけ加算してカウンタ値を更新する(ステップS517)。
なお、物理NIC15の制御方式は一般的なデバイスドライバと同様であり、詳細は省略する。
また、図11において後述するように、データ転送要求に係るパケットのVLANタグに、VLAN IDとして仮想チャネルIDを付加してもよい。なお、VLANタグの付加は、物理NIC15に含まれる、処理に特化したハードウェアのデバイス回路が実行する方式が一般的であり、VLANタグの付加は高速に実行できる。このようにすることによって、仮想NIC処理部131は、VLAN IDを参照して、当該パケットの仮想チャネルを識別することができる。
以上の処理によって、仮想チャネルを用いて送信されたパケットが、物理チャネルによって受信側計算機11へと送信される。
次に、受信側の計算機11における処理を説明する。
受信側計算機11において、仮想NIC処理部131は、物理NIC15がパケットを受信したことを検知する。仮想NIC制御部131は、物理NIC15からCPU202に対する割り込みを検出することによって、パケットを受信したことを検知する(ステップS509)。
なお、受信されるパケットは、送信元物理ネットワークアドレス、宛先物理ネットワークアドレス及び受信データ列を含んで構成される。
受信側計算機11の仮想NIC処理部131は、ステップS509において受信したパケットが管理用パケットであるかデータ用パケットであるか否かを判断する(ステップS510)。
例えば、前述のように、特定のVLAN IDを持つパケットが管理用パケットであると識別するように設定した場合は、受信パケットのVLANタグをチェックして、管理用パケットであることを示すVLAN IDが付加されているパケットである場合は、管理用パケットであると判断する。
また、図11で後述するように、データ転送要求に係るパケットのVLAN IDタグに仮想チャネルIDを付加するように構成した場合は、パケットのVLAN IDタグが管理用パケットを示すものではないと判定したときに、仮想NIC処理部131は、仮想チャネル割り当て通知パケットを生成する。
ステップS510において、VLAN IDが管理用パケットを示すものであると判断された場合は、仮想NIC処理部131は、管理パケット処理部133に受信パケットを転送して、図6に示す管理パケット処理を実行する(ステップS530)。
なお、仮想NIC処理部131から管理パケット処理部133へのパケットの転送は、管理パケット処理部133が管理するメモリ領域にパケットデータ又はパケットデータのメモリアドレス(ポインタ)を書き込んだ後に、仮想NIC処理部131が管理パケット処理部133を呼び出す。
ステップS510において、受信パケットが管理用パケットではなく、データ用パケットであると判断された場合は、以降のステップS511〜S517を実行する。
まず、仮想NIC処理部131は、物理チャネルテーブル17を参照して、受信パケットの送信元物理ネットワークアドレスと宛先物理ネットワークアドレスとに対応するレコードを検索し、物理チャネルを選択する(ステップS511)。
ステップS511において物理チャネルが選択された場合は、ステップS513〜S517の処理を実行する。物理チャネルが検索されなかった場合、受信パケットを管理用パケットであると判定して、受信パケットを管理パケット処理部133に転送して、図6に示す管理パケット処理(ステップS530)を実行する(ステップS512)。
ステップS513では、受信側計算機11の仮想NIC処理部131は、仮想チャネルテーブル16を参照して、前記物理チャネルに対応付けられた割り当て済みの仮想チャネルIDと一致する仮想チャネルIDを含むレコードを検索して、仮想チャネルIDを取得する(ステップS513)。
ステップS513において、物理チャネルに対応する仮想チャネルのレコードが検索された場合は、受信側計算機11の仮想NIC処理部131は、ステップS515〜S517の処理を実行する。物理チャネルに対応する仮想チャネルのレコードが検索されなかった場合は、仮想NIC処理部131は、受信パケットを管理用パケットであると判定して、受信パケットを管理パケット処理部133に転送して図6に示す管理パケット処理(ステップS530)を実行する(ステップS514)。
ステップS515では、受信側アドレス書き換え部132は、受信パケットの送信元物理ネットワークアドレス及び宛先物理ネットワークアドレスを、それぞれ、ステップS511で取得された仮想チャネルテーブル16の、他計算機仮想ネットワークアドレス及び自計算機仮想ネットワークアドレスに書き換える。これによって、受信パケットの送信元物理ネットワークアドレスが当該仮想チャネルの他計算機仮想ネットワークアドレスに、宛先物理ネットワークアドレスが自計算機仮想ネットワークアドレスに、それぞれ変更される。
次に、受信側計算機11のアドレス書き換え部132は、仮想チャネルの自計算機仮想ネットワークアドレスに対応付けられている仮想NICに対して、パケットの受信を通知する(ステップS516)。
具体的には、アドレス書き換え部132は、受信パケットを仮想NICの受信バッファ領域にコピーして、CPUに割り込みを発生することによって、パケットの受信を通知する
次に、受信側計算機11の仮想NIC処理部131は、ステップS509〜S516の処理の実行の後に、ステップS511において取得された仮想チャネルに対応するレコードを仮想チャネルテーブル16から取得し、当該レコードの仮想チャネル使用頻度のカウンタ値を1だけ加算してカウンタ値を更新する(ステップS517)。
以上の処理によって、物理チャネルを用いて受信されたパケットが、仮想チャネルによって、当該仮想チャネルに対応する仮想NICを用いるアプリケーションプログラム12に送信される。
図6は、本発明の実施の形態の受信側計算機11の管理パケット処理部133における管理パケット処理(図5のステップS530)のフローチャートである。
まず、管理パケット処理部133は、受信パケットのパケット識別子の値を取得する(ステップS1101)。
管理パケット処理部133は、事前にメモリ204中に、パケット識別子とプログラムのアドレスとの対応を定義したテーブル(パケット識別子テーブル)を保持している。この定義は管理パケット処理部を実行させるプログラム中に埋め込まれている。
管理パケット処理部は、ステップS1101で取得されたパケット識別子に対応するプログラムをパケット識別子テーブルから検索し、検索されたプログラムを実行させるためのメモリ空間上のアドレスに処理を渡す。この結果、パケット識別子によって識別されたパケット毎に、対応するプログラムの処理が実行される(ステップS1102)。
本実施の形態では、このパケット識別子テーブルの例として以下のような処理を実行するプログラムが、パケットの識別子に対応して定義されている。
管理用パケットの識別子が仮想ネットワークインターフェース追加通知パケットを示す場合は、図7のステップS603で示す物理チャネル更新処理を実行するプログラムのアドレスが、パケット識別子テーブルに定義されている。
また、管理用パケットの識別子が仮想チャネルIDリスト通知パケットを示す場合は、図7ステップS608で示す物理チャネル更新処理のプログラムを実行するアドレスが、パケット識別子テーブルに定義されている。
また、管理用パケットの識別子が仮想チャネルID通知パケットを示す場合は、図7のステップS615の仮想チャネルID更新処理を実行するプログラムのアドレスが、パケット識別子テーブルに定義されている。
また、管理用パケットの識別子が仮想ネットワークインターフェース削除通知パケットを示す場合は、図8のステップS703の仮想チャネル削除処理を実行するプログラムのアドレスが、パケット識別子テーブルに定義されている。
また、管理用パケットの識別子が仮想チャネル割り当て通知パケットを示す場合は、図11のステップS1004の割り当て済みチャネルID更新処理を実行するプログラムのアドレスが、パケット識別子テーブルに定義されている。
また、管理用パケットの識別子が仮想チャネルID割り当て応答パケットを示す場合は、図11のステップS1006の仮想チャネルID割り当て応答受信処理を実行するプログラムのアドレスが、パケット識別子テーブルに定義されている。
次に、仮想ネットワーク中の各計算機11が、物理チャネル、仮想チャネル等を更新する処理を説明する。この処理では、各計算機11は、仮想チャネルテーブル16及び物理チャネルテーブル17を更新する。なお、テーブルの更新とは、各テーブルへのレコードの追加及び削除である。
図7は、本発明の実施の形態の仮想NIC追加処理のシーケンス図である。
この図7のシーケンス図では、二つの計算機11A及び計算機11Bを備える仮想ネットワークにおいて、計算機11Aと計算機11Bとで、仮想NIC、物理チャネル及び仮想チャネルを更新する。
まず、計算機11Aが、新たに仮想NIC(仮想NIC A)を追加する。仮想NICの追加は、例えば計算機11Aに接続されているキーボード、ディスプレイ209等を用いて、管理者によって要求される。又は、上位のオペレーティングシステム又は管理プログラムからの要求等によって仮想NICを追加してもよい。
計算機11Aにおいて、仮想NICの追加があったときは、管理パケット処理部133は、仮想ネットワークインターフェース追加通知パケットを、計算機11Aが備えるそれぞれの物理NIC15からブロードキャストによってネットワーク19に送信する(ステップS601)。この仮想ネットワークインターフェース追加通知パケットは、管理パケットであることを示す識別子(例えば、VLAN ID)が付加されている。
仮想ネットワークインターフェース追加通知パケット801(図9(A)参照)は、送信元物理ネットワークアドレス、宛先物理ネットワークアドレス、パケット識別子及び送信元仮想ネットワークアドレスを含む。また、パケット識別子には「追加通知」であることを示す識別子が格納されている。この識別子によって、受信側の仮想NIC処理部131が、当該パケットは仮想ネットワークインターフェース追加通知パケットであることを識別できる。
計算機11Bにおいて、仮想NIC処理部131がブロードキャストによって送信された仮想ネットワークインターフェース追加通知パケットを受信する(ステップS602)。この受信パケットは、管理用パケットであると判定され、管理パケット処理部133が以降の処理を実行する。
計算機11Bの管理パケット処理部133は、自計算機11Bの記憶部18に格納されている物理チャネルテーブル17を参照して、仮想ネットワークインターフェース追加通知パケットに含まれる送信元物理ネットワークアドレスと、パケットを受信した物理NIC15の物理ネットワークアドレスとが、それぞれ、他計算機物理ネットワークアドレス及び自計算機物理ネットワークアドレスに一致する物理チャネルのレコードを選択する。
ここで、物理チャネルテーブル17に一致する物理チャネルが存在しない場合は、計算機11Bの管理パケット処理部133は、仮想ネットワークインターフェース追加通知パケットの送信元物理ネットワークアドレス、及び、パケットを受信した物理NIC15の物理ネットワークアドレスを、それぞれ、物理チャネルテーブル17の他計算機物理ネットワークアドレス402、及び、自計算機物理ネットワークアドレス401に格納することによって、新たな物理チャネルのレコードを物理チャネルテーブル17に登録して、物理チャネルテーブル17を更新する(ステップS603)。
次に、管理パケット処理部133は、自計算機11Bの記憶部18に格納されている仮想チャネルテーブル16を参照して、自計算機11Bに設定されている仮想NIC(仮想NIC B)に関して、仮想ネットワークインターフェース追加通知パケットに含まれる送信元仮想ネットワークアドレスと仮想NIC Bの仮想ネットワークアドレスとの組が、それぞれ、他計算機仮想ネットワークアドレス及び自計算機仮想ネットワークアドレスに一致する仮想チャネルのレコードを選択する。
ここで、仮想チャネルテーブル16に一致する仮想チャネルのレコードが存在しない場合は、計算機11Bの管理パケット処理部133は、仮想ネットワークインターフェース追加通知パケットに含まれる送信元仮想ネットワークアドレス及び仮想NIC Bの仮想ネットワークアドレスを、それぞれ、仮想チャネルテーブルの他計算機仮想ネットワークアドレス302及び自計算機仮想ネットワークアドレス301に格納することによって新たな仮想チャネルのレコードを仮想チャネルテーブル16に登録して仮想チャネルテーブル16を更新する(ステップS604)。
なお、この処理では、新たに登録された仮想チャネルの仮想チャネルIDは未決定であり、後続する処理において決定する。
次に、計算機11Bの管理パケット処理部133は、自計算機11Bの仮想チャネルテーブル16を検索して、自計算機11Bで使用されているすべての仮想チャネルIDを取得して、取得された仮想チャネルIDのリストを作成する(ステップS605)。
次に、計算機11Bの管理パケット処理部133は、仮想ネットワークインターフェース追加通知パケットに含まれる送信元物理ネットワークアドレス宛に、ステップS604において選択及び作成された仮想チャネルのそれぞれについて、仮想チャネルIDリスト通知パケットを作成する。作成された仮想チャネルIDリスト通知パケットは、管理用パケット802として送信する(ステップS606)。
仮想チャネルIDリスト通知パケット802(図9(B)参照)は、仮想チャネルリスト通知パケットは、送信元物理ネットワークアドレス、宛先物理ネットワークアドレス、宛先物理ネットワークアドレス、パケット識別子、宛先仮想ネットワークアドレス、送信元仮想ネットワークアドレス、及び、ステップS605において作成された仮想チャネルIDリストを含んで構成される。
また、仮想チャネルIDリスト通知パケットは、パケット識別子には「リスト通知」を示す識別子が格納されている。この識別子によって、受信側の仮想NIC処理部131が、当該パケットは仮想チャネルIDリスト通知パケットであることを識別できる。
計算機11Aにおいて、仮想NIC処理部131がブロードキャストによって送信された仮想チャネルIDリスト通知パケットを受信する(ステップS607)。この受信パケットは管理用パケットであると判定され、管理パケット処理部133が以降の処理を実行する。
計算機11Aの管理パケット処理部133は、計算機11BにおけるステップS603〜ステップS605と同様の処理を実行して、計算機11Aの物理チャネルテーブル17、仮想チャネルテーブル16を更新する。
すなわち、計算機11Aの管理パケット処理部133は、物理チャネルテーブル17を参照して、仮想チャネルIDリスト通知パケットに含まれる送信元物理ネットワークアドレスと、パケットを受信した物理NIC15の物理ネットワークアドレスとが、それぞれ、他計算機物理ネットワークアドレス及び自計算機物理ネットワークアドレスに一致する物理チャネルのレコードを選択する。
物理チャネルテーブル17に一致する物理チャネルが存在しない場合は、計算機11Aの管理パケット処理部133は、仮想チャネルIDリスト通知パケットの送信元物理ネットワークアドレス、及び、パケットを受信した物理NIC15の物理ネットワークアドレスを、それぞれ、物理チャネルテーブル17の他計算機物理ネットワークアドレス402、及び、自計算機物理ネットワークアドレス401に格納することによって、新たな物理チャネルのレコードを物理チャネルテーブル17に登録して、物理チャネルテーブル17を更新する(ステップS608)。
次に、管理パケット処理部133は、仮想チャネルテーブル16を参照して、自計算機11Aに設定されている仮想NIC(仮想NIC A’)に関して、仮想チャネルIDリスト通知パケットに含まれる送信元仮想ネットワークアドレスと仮想NIC A’の仮想ネットワークアドレスとの組が、それぞれ、他計算機仮想ネットワークアドレス及び自計算機仮想ネットワークアドレスに一致する仮想チャネルのレコードを選択する。
仮想チャネルテーブル16に一致する仮想チャネルのレコードが存在しない場合は、計算機11Aの管理パケット処理部133は、仮想チャネルIDリスト通知パケットに含まれる送信元仮想ネットワークアドレス及び仮想NIC A’の仮想ネットワークアドレスを、それぞれ、仮想チャネルテーブルの他計算機仮想ネットワークアドレス302及び自計算機仮想ネットワークアドレス301に格納することによって新たな仮想チャネルのレコードを仮想チャネルテーブル16に登録して仮想チャネルテーブル16を更新する(ステップS609)。
次に、計算機11Aの管理パケット処理部133は、自計算機11Aの仮想チャネルテーブル16を検索して、自計算機11Aで使用されているすべての仮想チャネルIDを取得して、取得された仮想チャネルIDのリストを作成する(ステップS610)。
次に、計算機11Aの管理パケット処理部133は、ステップS610において作成された仮想チャネルIDのリスト(リストA)と、ステップS607において受信された仮想チャネルIDリスト通知パケットに含まれている仮想チャネルIDリスト(リストB)を参照して、いずれのリストにも含まれてない仮想チャネルIDを一つ選択する(ステップS611)。
このとき、仮想チャネルIDは整数値として格納されているので、リストA及びリストBのいずれにも含まれていない整数値のうち最小のものを選択する。
次に、計算機11Aの管理パケット処理部133は、前記ステップS608において登録された物理チャネルテーブル17の物理チャネルのレコードの、割り当て可能仮想チャネルIDリスト403に、ステップS611において決定した仮想チャネルIDを登録する(ステップS612)これによって、新たに仮想チャネルが物理チャネルに割り当て可能となる。
次に、計算機11Aの管理パケット処理部133は、ステップS607において受信した仮想チャネルIDリスト通知パケットの送信元物理ネットワークアドレスを宛先として、仮想チャネルID通知パケットを作成する。作成された仮想チャネルID通知パケットは、管理用パケットとして送信する(ステップS613)。
仮想チャネルID通知パケット(図9(C)参照)は、送信元物理ネットワークアドレス、宛先物理ネットワークアドレス、パケット識別子、送信元仮想ネットワークアドレス、宛先仮想ネットワークアドレス、及び、ステップS609において作成された仮想チャネルIDのデータを含んで構成される。
また、仮想チャネルID通知パケットは、パケット識別子には「ID通知」を示す識別子が格納されている。この識別子によって、受信側の仮想NIC処理部131が、当該パケットは仮想チャネルID通知パケットであることを識別できる。
計算機11Bにおいて、仮想NIC処理部131が、送信された仮想チャネルID通知パケットを受信する(ステップS614)。この受信パケットは、管理用パケットであると判定され、管理パケット処理部133が以降の処理を実行する。
計算機11Bの管理パケット処理部133は、受信した仮想チャネルID通知パケットに含まれる仮想チャネルIDを、ステップS604において新たに作成された仮想チャネルテーブル16の仮想チャネルのレコードの、仮想チャネルID303に格納して、仮想チャネルIDを割り当てる。
また、管理パケット処理部133は、ステップS603において作成された物理チャネルテーブル17の物理チャネルのレコードの、割り当て可能仮想チャネルIDリスト403に、ステップS613において受信した仮想チャネルID通知パケットに含まれている仮想チャネルIDを追加して、物理チャネルテーブル17を更新する(ステップS615)。
以上の処理によって、仮想チャネルが割り当て可能に設定される。
ここで、送信側、受信側の仮想NIC処理部131は、前記の仮想チャネルIDによって定められた仮想チャネルが作成されたときに、上位のオペレーティングシステム又は管理プログラムに対して、仮想チャネルが作成されてこと通知する。この上位のオペレーティングシステム又は管理プログラムは、作成された仮想チャネルに関して、同時並列物理チャネル数、及び、ネットワーク重み付け数値からなる優先制御情報を決定する。
管理プログラムは、計算機の使用者又は管理者によって入力された同時並列物理チャネル数及びネットワークの重み付けの値を、優先制御情報として決定する。
より具体的には、管理プログラムは、計算機の管理者に対して、仮想チャネルの自計算機仮想ネットワークアドレス及び他計算機仮想ネットワークアドレスを表示し、その仮想チャネルに対する同時並列物理チャネル数及びネットワーク重み付け数値の入力を求める。
また、別の方法として、事前にシステムによって定められた規定値を用いて優先制御情報を決定してもよい。また、この方法では、後に、任意のタイミングで、計算機の管理者が、仮想チャネルID、同時並列物理チャネル数、ネットワーク重み付け数値の値をパラメータとして含む管理コマンド等を用いることによって、管理者が仮想チャネルテーブル17の優先制御情報を変更できるように構成してもよい。
このように決定された同時並列物理チャネル数及びネットワーク重み付けの数値は、管理パケット処理部133が、仮想チャネルテーブル16の仮想チャネル優先制御情報304の該当領域に格納する(ステップS616)。
なお、ステップS601〜S616はトランザクショナルに管理される。すなわち、一定期間内にステップS601〜S616の処理が完了しない場合、管理パケット処理部133は、作成された物理チャネルのレコード及び仮想チャネルのレコードを削除する。
このように、図7のステップS601〜S606の処理によって、計算機11Bは、仮想ネットワークシステム内の計算機11Aからブロードキャストによって仮想ネットワークインターフェース追加通知パケットを受け取り、通信可能な物理NIC15の組を物理チャネルとして登録する。また、仮想ネットワークインターフェース追加通知パケットに含まれる情報から物理チャネルに割り当て可能な仮想チャネルのリストを取得して、仮想チャネルテーブル16を更新する。
また、ステップS606の処理によって、計算機11Bは、ブロードキャストパケットを受け取ったそれぞれの物理NIC15について、その物理NIC15上で通信可能なすべての仮想NIC毎に、仮想チャネルIDリスト通知パケットを送信する。
また、ステップS607〜S610の処理によって、計算機11Aは計算機11Bと同様に、物理チャネル及び仮想チャネルを作成する。
そして、ステップS611〜S615の処理によって、仮想チャネルを二つの計算機間で一意に特定するための仮想チャネルIDを生成して、計算機11A及び計算機11Bが、共にテーブルを更新する。
以上のような処理によって、計算機11A及び計算機11B間で通信可能な物理NIC15の組(物理チャネル)、この物理NIC15の組で構成される物理チャネルに割り当て可能な仮想NICの組(仮想チャネル)、及び、仮想チャネルを一意に識別する仮想チャネルIDを、自動的に生成できる。
このように、図7の処理によって、自動的に二つの計算期11間で物理チャネル及び仮想チャネルが設定され、二つの計算機11間で物理チャネル及び仮想チャネルの情報が同期されて共有される。
次に、仮想NICを削除する処理を説明する。
図8は、本発明の実施の形態の仮想NIC削除処理のシーケンス図である。
この図8のシーケンス図では、二つの計算機11A及び計算機11Bを備える仮想ネットワークにおいて、計算機11Aと計算機11Bとで既に登録されている仮想NIC削除する。
まず、計算機11Aの管理パケット処理部133は、仮想ネットワークインターフェース削除通知パケットを、管理用パケットとしてブロードキャストで送信する(ステップS01)
仮想NICの削除は、前述のように、例えば、管理者や、上位のオペレーティングシステム、管理プログラム等からの要求等によって仮想NICの削除が要求される。
仮想ネットワークインターフェース削除通知パケット804(図9(D)参照)は、送信元物理ネットワークアドレス、宛先物理ネットワークアドレス、パケット識別子、及び、送信元仮想ネットワークアドレスを含んで構成される。
なお、送信元仮想ネットワークアドレスは、削除される仮想NICのネットワークアドレスを示す。また、パケット識別子には「削除通知」を示す識別子が格納されている。この識別子によって、受信側の仮想NIC処理部131が、当該パケットは仮想ネットワークインターフェース削除通知パケットであることを識別できる。
計算機11Bにおいて、仮想NIC処理部131がブロードキャストによって送信された仮想ネットワークインターフェース追加通知パケットを受信する(ステップS702)。この受信パケットは、管理用パケットであると判定され、管理パケット処理部133が以降の処理を実行する。
計算機11Bにおいて、管理パケット処理部133は、自計算機の記憶部18に格納されている仮想チャネルテーブル16を参照して、受信した仮想ネットワークインターフェース追加通知パケットに含まれる送信元仮想ネットワークアドレスと、自計算機の仮想ネットワークアドレスと、の組を持つ仮想チャネル(以下、仮想チャネルxと呼ぶ)のレコードを選択する。選択されたレコードは仮想チャネルテーブルから削除する(ステップS703)。
次に、管理パケット処理部133は、自計算機の記憶部18に格納されている物理チャネルテーブル17を参照して、割り当て可能仮想チャネルIDリスト403及び割り当て済み仮想チャネルID404から、仮想チャネルIDを取得する。そして、取得された仮想チャネルIDのうち、仮想チャネルxの仮想チャネルIDと一致する仮想チャネルを、からすべて削除する(ステップS704)。
次に、計算機11Bの管理パケット処理部133は、物理チャネルテーブル17を参照して、割り当て済み仮想チャネルIDリスト403に値が一つもない物理チャネル、すなわち、一つの仮想チャネルも割り当てられていない物理チャネルをすべて選択する。そして、選択された物理チャネルを、物理チャネルテーブル17から削除する(ステップS705)。
このように、図8の処理によって、二つの計算期11間で仮想チャネルが削除され、削除された仮想チャネルのみが割り当てられていた物理チャネルも削除される。
次に、図7のステップS525の仮想チャネルを物理チャネルに割り当てる物理チャネル割り当て処理を説明する。
図10は、本発明の実施の形態の物理チャネル割り当て処理のフローチャートである。
この図10に示すフローチャートは、仮想NIC処理部131が、仮想チャネルに属する仮想NICにパケットを送信する処理(図5)のときに、仮想チャネルに割り当てられた物理チャネルが存在しない場合に(図5のステップS525)実行される。
なお、ここでは、処理対象の仮想チャネルを「仮想チャネルA」とする。
まず、仮想NIC処理部131は、物理チャネルテーブル17を参照して、割り当て可能仮想チャネルIDリストに仮想チャネルAの仮想チャネルIDが含まれている物理チャネルのレコードの一覧を選択する(ステップS901)。
次に、仮想NIC処理部131は、選択された物理チャネルの一覧から、割り当て済み仮想チャネルIDに値が登録されていないレコードを選択する。このとき、仮想チャネルテーブル16を参照して、仮想チャネルAに割り当て可能な仮想チャネルIDのレコードの仮想チャネル優先制御情報304から、同時並列物理チャネル数を取得する。そして、取得された同時並列物理チャネル数と同じ数だけ、物理チャネルを選択する(ステップS902)。
より具体的には、割り当て済み仮想チャネルIDの値が登録されていない物理チャネルの一覧からランダムに選択する。なお、ここでは、この処理で選択された物理チャネルのリストを、物理チャネル(I)と呼ぶ。また、仮想チャネルAを割り当て可能な物理チャネルのリストを、物理チャネル(II)と呼ぶ。
次に、仮想NIC処理部131は、ステップS902において、同時並列物理チャネル数と同じ数だけ物理チャネルを選択することができるか否かを判定する(ステップS903)。
物理チャネルを選択することができた場合は、それぞれの物理チャネルに対して、図11で後述する処理を実行する。一方、同時並列物理チャネル数に満たない物理チャネル数しか選択されなかった場合は、ステップS904〜S909を実行する。
ステップS904では、仮想NIC処理部131は、ステップS901で選択された物理チャネルのレコードから、それぞれの割り当て済みチャネルIDに登録されている仮想チャネルBi(i=1…n)を選択する。
次に、仮想NIC処理部131は、ステップS904で選択された仮想チャネルBのそれぞれに対して、仮想チャネルテーブル16を参照して、ネットワーク重み付け数値(Bi)を取得する。また、仮想チャネルAのネットワーク重み付け数値(A)を取得する。
ここで、物理チャネル(II)の個数の総和をN、仮想チャネルAに割り当てる仮想チャネル数をNA、仮想チャネルBiに割り当てる仮想チャネル数をNBi、仮想チャネルBiについての「同時並列物理チャネル数(Bi)×ネットワーク重み付け(Bi)×仮想チャネル使用頻度305(Bi)」の値をXBi、すべての仮想チャネルのXBiの値の総和をΣXBi、すべての仮想チャネルBiについての「仮想チャネル使用頻度305(Bi)」の値の平均値をUBiとすると、以下の式によって、NA及びNBiが算出される(ステップS905)。
NA = N×ネットワーク重み付け数値(A)×UBi÷(ネットワーク重み付け(A)+ΣXBi)
NBi = N×XBi÷(ネットワーク重み付け(A)+ΣXBi)
(ただし、小数点以下は四捨五入し、計算値が1未満の場合は1に切り上げる)
次に、仮想NIC処理部131は、仮想チャネルB、仮想チャネルAに対して、割り当て済みの物理チャネル数を、ステップS905で求めたNA、NBiとなるように、以降のステップS906〜S908の処理によって、仮想チャネルに対する物理チャネルの割り当てを再配分する。
まず、仮想NIC処理部131は、仮想チャネルx(x=A、B1…Bn)のそれぞれに対して、現在割り当て済みの物理チャネル数Mxと、ステップS905で算出されたNxとの差分を比較する。そして、Mx>Nxである場合は、仮想チャネルxに割り当て済みの物理チャネルの中から、ランダムに選択して、(Mx−Nx)個の物理チャネルを選択する。選択された物理チャネルの割り当て済みチャネルIDのデータは削除する。そして、選択された物理チャネルを、ステップS902において、選択された物理チャネル(I)に追加する(ステップS906)。
なお、このとき、物理チャネル(I)のリスト中のそれぞれの物理チャネルは、割り当て済み仮想チャネルIDには値が登録されておらず、仮想チャネルxの仮想チャネルIDは、割り当て可能仮想チャネルIDリストに含まれている状態となっている。
ここで、仮想NIC処理部131は、仮想チャネルx(x=A、B1…Bn)のそれぞれに対して、現在割り当て済みの物理チャネル数Mxと、ステップS905で求めたNxとの差分を比較し、Nx>Mxである場合に、物理チャネル(I)から(Nx−Mx)個の物理チャネルを選択する。
仮想NIC処理部131は、仮想チャネルxに割り当て済みの物理チャネルの自計算機物理ネットワークアドレス、及び、他計算機物理ネットワークアドレスのリストを作成する。そして、自計算機物理ネットワークアドレス401、及び、他計算機物理ネットワーク402の値が、いずれのリストにも含まれない物理チャネルのレコードを検索する。検索の結果、該当する物理チャネルが検索された場合は、当該物理チャネルを優先的に選択する。
なお、選択候補が複数ある場合は、仮想NIC処理部131は、ランダムに物理チャネルを選択するか、又は、検索された順番が早い物理チャネルを優先して選択する。例えば、ランダムに選択した場合は、ある仮想チャネルに含まれる物理チャネルは、それぞれ異なる物理NIC15同士でデータ通信が実行される。
物理チャネルが選択されると、仮想NIC処理部131は、物理チャネルのレコードに含まれる割り当て済みチャネルIDを、仮想チャネルxの仮想チャネルIDに変更する。これによって、仮想チャネルに物理チャネルが割り当てられる(ステップS907)。
次に、仮想NIC制御部131は、ステップS906及びS907の処理において、仮想チャネルの物理チャネルへの割り当て処理が成功したか否かを判定する(ステップS908)。
仮想チャネルAに対する割り当て済みの物理チャネルが一つも存在しなかった場合は、仮想NIC処理部131は、仮想チャネルの物理チャネルへの割り当て処理は失敗したとみなして、エラー通知等の失敗処理を行い、本フローチャートによる処理を終了する。
一方、仮想チャネルの物理チャネルへの割り当て処理が成功し、仮想チャネルAに対して物理チャネルaが割り当てられた場合は、本フローチャートの処理を終了し、図5のフローチャートに戻る。
また、このとき、管理パケット処理部133は、パケット送信側の計算機、及び、パケット受信側の計算機の物理チャネルテーブル17の、物理チャネルaに関連付けられた割り当て済みチャネルID情報を更新するための割り当て済みチャネルID更新処理(図11)を実行する。
以上説明した処理によって、物理チャネルaに仮想チャネルAが割り当てられる。この結果、物理チャネルaに属する物理NIC15が受信したパケットは、仮想チャネルAに属する仮想NICに振り分けられるように制御される。
図11は、本発明の実施の形態の割り当て済みチャネルID更新処理のシーケンス図である。
前述の図10のステップS908において、仮想チャネルの物理チャネルへの割り当て処理が成功しときは、管理パケット処理部133は、物理チャネルテーブル17の、物理チャネルに対応する割り当て済み仮想チャネルIDを、仮想チャネルAの仮想チャネルIDの値に更新する(ステップS1001)。
次に、管理パケット処理部133は、割り当て済みの物理チャネルの他計算機物理ネットワークアドレス宛に、仮想チャネル割り当て通知パケットを管理パケット805として送信する。(ステップS1002)
仮想チャネル割り当て通知パケット805(図9(E)参照)は、送信元物理ネットワークアドレス、宛先物理ネットワークアドレス、パケット識別子、及び、物理チャネルに割り当てた仮想チャネルIDを含んで構成される。
また、パケット識別子には「ID更新」を示す識別子が格納されている。この識別子によって、受信側の仮想NIC処理部131が、当該パケットは仮想チャネル割り当て通知パケットであることを識別できる。
計算機11Bにおいて、仮想NIC処理部131が、送信された仮想チャネル割り当て通知パケットを受信する(ステップS1003)。この受信パケットは、管理用パケットであると判定され、管理パケット処理部133が以降の処理を実行する。
受信側の管理パケット処理部133は、物理チャネルテーブル17を参照して、受信した仮想チャネル割り当て通知パケットに含まれる送信元物理ネットワークアドレス、及び、宛先物理ネットワークアドレスが一致する物理チャネルを選択する。そして、選択された物理チャネルに対応するレコードの割り当て済みチャネルIDを、受信した仮想チャネル割り当て通知パケットに含まれる仮想チャネルIDに更新する(ステップS1004)。
次に、受信側の管理パケット処理部133は、仮想チャネル割り当て通知パケットに含まれている送信元物理ネットワークアドレスを宛先として、チャネル割り当て応答パケットを生成し、生成されたパケットを送信する(ステップS1005)。
送信側の仮想NIC処理部131が、送信された仮想チャネル割り当て応答パケットを受信する(ステップS1006)。この受信パケットは、管理用パケットであると判定され、管理パケット処理部133及び仮想NIC処理部131が、処理を実行する。すなわち、チャネル割り当て応答パケットを受信したことによって、仮想チャネルの割り当てが完了し、物理チャネルテーブル17か更新されたことを確認する。
受信側の物理チャネルテーブル17が更新されたことを確認する前に、送信側の計算機11がデータ用パケットを送信すると、パケットの追い越しがあった場合に誤った物理チャネルテーブル17を参照してデータ用パケットのアドレスが書き換えられてしまう可能性がある。
そのため、送信側仮想NIC処理部131は、ステップS1004において、受信側の管理パケット処理部133によって送信された仮想チャネル割り当て応答パケットを受信するまで、データ用パケットの送信処理を中断して待つ。
なお、仮想チャネル割り当てパケットは、管理パケットとして個別に送信するのではなく、仮想NIC処理部131によって送信されるデータ用パケットの一部に含めてもよい。
例えば、仮想NIC処理部131が、仮想チャネルIDの情報をVLAN IDタグに付与することによって、当該VLAN IDを含むデータ用パケットは仮想チャネルIDを示すデータとして用いることもできる。
この方法を用いる場合は、受信側の仮想NIC処理部131が、図7のステップS510において、パケットにVLAN IDが付与されたVLANタグが含まれていることを検出すると、受信側の仮想NIC処理部131が、当該データ用パケットの内容に基づいて、仮想チャネル割り当て通知パケットを内部的に生成する。生成されたパケットを管理パケット処理部133に転送する。
より具体的には、仮想NIC制御部131は、仮想チャネルIDの値をVLAN IDの値として、送信元物理ネットワークアドレス、宛先物理ネットワークアドレス、パケット識別子、及び、仮想チャネルIDを含んだ仮想チャネル割り当て通知パケットを生成する。
特に、VLANタグを含むデータ用パケットを、メッセージの一部として他の通常のデータ用パケットと共に送信することによって、物理チャネルテーブル17のデータを更新する前にデータ用パケットが追い越して受信されることがない。そのため、管理パケット送信することで図11の処理を実行することと比較すると、ステップS1005及びS1006の処理を実行する必要がなくなり、受信側計算機11の応答を待ってからデータ用パケットを送信する必要がなくなる。
ただし、VLANタグを使用する場合は、物理チャネル間で割り当て可能な仮想チャネルIDのそれぞれについて、対応するVLAN IDを用いた制御が可能であるようにシステムを構成しておく必要がある。
以上のように、本発明は、仮想ネットワークを構築する場合、はじめに各計算機11において、計算機の管理者が仮想NICを定義する。
仮想NIC処理部131は前記の定義がなされたときに、仮想ネットワークインターフェース追加通知パケットを送信して、仮想ネットワーク中の計算機で物理チャネルテーブル17、仮想チャネルテーブル16を更新する。
次に、アプリケーションプログラム12が、仮想チャネルで識別される仮想NIC間でパケットを送信しようとした場合に、図5に示す送受信処理が開始される。その中のステップS505において、仮想チャネルに対して物理チャネルが割り当て済みになっていない場合は、図10及び図11に示す処理に従って、仮想チャネルに対して物理チャネルを割り当てる。
その後、図5における処理が継続され、パケットは仮想チャネルに割り当てられた一つ以上の物理チャネルに対応付けられた物理NIC15を通して、他の計算機の物理NICに転送される。
このように、アプリケーションプログラム12からは、透過的にチャネルの定義、チャネルの物理的なインターフェースが実行され、複数の物理NICを並列に使用してデータが転送されることで、広帯域のデータ転送を実現できる。
このように、本発明によるネットワークシステムは、二つ以上の計算機間が任意のネットワーク構成を通して複数のNICで接続されている環境において、二つの計算機が複数のNICを使用して並列にデータ転送を行って一つのNICでの転送よりも広帯域なデータ転送を実現するネットワークシステムである。さらに、本発明のネットワークシステムは、計算機上のアプリケーションプログラムでは、複数のNICを使用することを意識することなく、単一のNICを使用しているように見せかけるネットワークシステムである。
また、本発明によるネットワークシステムは、既存のアプリケーションプログラムからNICに発行されたパケット転送処理を仲介し、複数のNICに並列に分散させて転送する下位層の制御プログラムを対象とする。このような制御プログラムには、オペレーティングシステムのデバイスドライバ又は計算機を複数の仮想計算機に分割する仮想計算機システムにおいて、仮想計算機上のNICに対するアクセスをエミュレートする仮想NIC制御プログラムなどが適用される。
本発明の実施の形態の仮想ネットワークシステムの構成ブロック図である。 本発明の実施の形態の計算機の構成ブロック図である。 本発明の実施の形態の仮想チャネルテーブルの一例の説明図である。 本発明の実施の形態の物理チャネルテーブルの一例の説明図である。 本発明の実施の形態のデータ転送の処理のフローチャートである。 本発明の実施の形態の管理用パケット処理のフローチャートである。 本発明の実施の形態の仮想NIC追加処理のシーケンス図である。 本発明の実施の形態の仮想NIC削除処理のシーケンス図である。 本発明の実施の形態の管理用パケットの構成の一例の説明図である。 本発明の実施の形態の物理チャネル割り当て処理のフローチャートである。 本発明の実施の形態の割り当て済みチャネルID更新処理のシーケンス図である。
符号の説明
11 計算機
12 アプリケーションプログラム
13 仮想NIC
131 仮想NIC処理部
132 アドレス書き換え部
133 管理パケット処理部
14 物理NIC制御部
15 物理NIC
201 CPU
202 FSB
203 ノースブリッジ
204 メモリ
205 IOブリッジ
206 IOバス
207 SCSI/FC
208 NIC
209 入出力装置
301 送信元仮想ネットワークアドレス
302 宛先仮想ネットワークアドレス
303 仮想チャネルID
304 仮想チャネル優先制御情報304
305 仮想チャネル使用頻度
401 自計算機物理ネットワークアドレス
402 他計算機物理ネットワークアドレス
403 割り当て可能仮想チャネルリスト
404 割り当て済み仮想チャネルID

Claims (6)

  1. 一つ又は複数の物理ネットワークインターフェースを備えた第1の計算機及び第2の計算機と、前記第1の計算機と前記第2の計算機とを前記物理ネットワークインターフェースを介して通信可能に接続するネットワークと、によって構成されたネットワークシステムにおいて、前記第1の計算機と前記第2の計算機との間の仮想的なネットワークを構成する仮想ネットワーク構成方法であって、
    前記第1の計算機は、
    前記第1の計算機上で稼動するアプリケーションによるデータ送受信に使用される仮想ネットワークインターフェースを設定し、
    前記設定された仮想ネットワークインターフェースと前記第2の計算機に設定された仮想ネットワークインターフェースとの間に仮想チャネルを設定して、前記設定された仮想チャネルと前記仮想ネットワークインターフェースとの対応関係を仮想チャネル情報として記憶し、
    前記第1の計算機の物理ネットワークインターフェースと前記第2の計算機の物理ネットワークインターフェースとの間に物理チャネルを設定して、前記設定された物理チャネルと前記物理ネットワークインターフェースとの対応関係を物理チャネル情報として記憶し、
    前記仮想チャネルを使用して送受信されるデータのトラフィックを集計し、前記集計結果を前記仮想チャネル情報に記憶し、
    前記仮想ネットワークインターフェースに対するデータ送信命令を検知した場合に、予め設定された前記仮想チャネルの優先度と前記記憶された統計情報とに基づいて、前記仮想ネットワークインターフェースに設定された仮想チャネルと一つ又は複数の前記物理チャネルとの対応関係を設定して、前記設定された仮想チャネルと物理チャネルとの対応関係を前記物理チャネル情報に記憶し、
    前記設定された仮想チャネルと物理チャネルとの対応関係を、前記データ送信命令の宛先となる仮想ネットワークインターフェースを備える前記第2の計算機に送信し、
    前記第2の計算機は、
    前記仮想チャネルと物理チャネルとの対応関係を受信した場合に、前記受信した仮想チャネルと物理チャネルとの対応関係を前記物理チャネル情報に記憶し、
    前記第1の計算機は、前記記憶された対応関係に基づいて、前記データ送信命令に係るデータを、前記仮想チャネルに対応付けられた一つ又は複数の前記物理チャネルを用いて送信することを特徴とする仮想ネットワーク構成方法。
  2. 前記第1の計算機は、前記仮想ネットワークインターフェースを設定する場合に、前記仮想ネットワークインターフェースの追加情報をブロードキャストによって通知し、
    前記第2の計算機は、前記仮想ネットワークインターフェースの追加情報の通知を受信した場合に、予め設定された前記仮想チャネルの優先度と前記記憶された統計情報とに基づいて、前記仮想チャネルと一つ又は複数の前記物理チャネルとの対応関係を設定して、前記設定された仮想チャネルと物理チャネルとの対応関係を前記物理チャネル情報に記憶することを特徴とする請求項1に記載の仮想ネットワーク構成方法。
  3. 前記第1の計算機は、前記設定された仮想チャネルと物理チャネルとの対応関係を前記データ送信命令の宛先となる仮想ネットワークインターフェースを有する計算機に送信する場合に、前記データ送信命令に基づいて送信されるパケットに前記対応関係を示す識別子を付加して、前記データ送信命令の宛先となる仮想ネットワークインターフェースを備える計算機に送信することを特徴とする請求項1に記載の仮想ネットワーク構成方法。
  4. 一つ又は複数の物理ネットワークインターフェースを備えた第1の計算機及び第2の計算機と、前記第1の計算機と前記第2の計算機とを前記物理ネットワークインターフェースを介して通信可能に接続するネットワークにおいて、
    前記第1及び第2の計算機のそれぞれは、
    前記第1の計算機と前記第2の計算機との間の仮想ネットワークを管理する仮想ネットワーク機構と、
    前記仮想ネットワークインターフェースに関する情報を記憶する記憶部と、
    を備え、
    前記第1の計算機の仮想ネットワーク機構は、
    前記第1の計算機上で稼動するアプリケーションによるデータ送受信に使用される仮想ネットワークインターフェースを設定し、
    前記設定された仮想ネットワークインターフェースと前記第2の計算機に設定された仮想ネットワークインターフェースとの間に仮想チャネルを設定して、前記設定された仮想チャネルと前記仮想ネットワークインターフェースとの対応関係を仮想チャネル情報として前記記憶部に記憶し、
    前記第1の計算機の物理ネットワークインターフェースと前記第2の計算機の物理ネットワークインターフェースとの間に物理チャネルを設定して、前記設定された物理チャネルと前記物理ネットワークインターフェースとの対応関係を物理チャネル情報として前記記憶部に記憶し、
    前記仮想チャネルを使用して送受信されるデータのトラフィックを集計し、前記集計結果を前記記憶部に記憶されている仮想チャネル情報に記憶し、
    前記仮想ネットワークインターフェースに対するデータ送信命令を検知した場合に、予め設定された前記仮想チャネルの優先度と前記記憶部に記憶された統計情報とに基づいて、前記仮想ネットワークインターフェースに設定された仮想チャネルと一つ又は複数の前記物理チャネルとの対応関係を設定して、前記設定された対応関係を前記記憶部の前記物理チャネル情報に記憶し、
    前記設定された仮想チャネルと物理チャネルとの対応関係を、前記データ送信命令の宛先となる仮想ネットワークインターフェースを有する前記第2の計算機に送信し、
    前記第2の計算機の仮想ネットワーク機構は、
    前記仮想チャネルと物理チャネルとの対応関係を受信した場合に、前記受信した仮想チャネルと物理チャネルとの対応関係を、前記記憶部の前記前記物理チャネル情報に記憶し、
    前記第1の計算機の仮想ネットワーク機構は、前記記憶部に記憶された対応関係に基づいて、前記データ送信命令に係るデータの送受信を、前記仮想チャネルに対応付けられた一つ又は複数の前記物理チャネルを用いて送信することを特徴とするネットワークシステム。
  5. 前記第1の計算機の仮想ネットワーク機構は、前記仮想ネットワークインターフェースを設定する場合に、前記仮想ネットワークインターフェースの追加情報をブロードキャストによって通知し、
    前記第2の計算機の仮想ネットワーク機構は、前記仮想ネットワークインターフェースの追加情報の通知を受信した場合に、予め設定された前記仮想チャネルの優先度と前記集計された統計情報とに基づいて、前記仮想チャネルと一つ又は複数の前記物理チャネルとの対応関係を設定して、前記設定された仮想チャネルと物理チャネルとの対応関係を、前記記憶部の前記物理チャネル情報に記憶することを特徴とする請求項4に記載のネットワークシステム。
  6. 前記第1の計算機の仮想ネットワーク機構は、前記設定された仮想チャネルと物理チャネルとの対応関係を前記データ送信命令の宛先となる仮想ネットワークインターフェースを有する計算機に送信する場合に、前記データの送信命令に係るパケットに前記対応関係を示す識別子を付加して、前記データ送信命令の宛先となる仮想ネットワークインターフェースを有する計算機に送信することを特徴とする請求項4に記載のネットワークシステム。
JP2007137754A 2007-05-24 2007-05-24 仮想ネットワーク構成方法及びネットワークシステム Expired - Fee Related JP4740897B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007137754A JP4740897B2 (ja) 2007-05-24 2007-05-24 仮想ネットワーク構成方法及びネットワークシステム
US12/124,495 US8279878B2 (en) 2007-05-24 2008-05-21 Method for configuring virtual network and network system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007137754A JP4740897B2 (ja) 2007-05-24 2007-05-24 仮想ネットワーク構成方法及びネットワークシステム

Publications (2)

Publication Number Publication Date
JP2008294717A JP2008294717A (ja) 2008-12-04
JP4740897B2 true JP4740897B2 (ja) 2011-08-03

Family

ID=40088061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007137754A Expired - Fee Related JP4740897B2 (ja) 2007-05-24 2007-05-24 仮想ネットワーク構成方法及びネットワークシステム

Country Status (2)

Country Link
US (1) US8279878B2 (ja)
JP (1) JP4740897B2 (ja)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060875B1 (en) * 2006-05-26 2011-11-15 Vmware, Inc. System and method for multiple virtual teams
US20090292654A1 (en) * 2008-05-23 2009-11-26 Vmware, Inc. Systems and methods for calculating use charges in a virtualized infrastructure
US9100297B2 (en) 2008-08-20 2015-08-04 Red Hat, Inc. Registering new machines in a software provisioning environment
US8667187B2 (en) * 2008-09-15 2014-03-04 Vmware, Inc. System and method for reducing communication overhead between network interface controllers and virtual machines
US8612968B2 (en) * 2008-09-26 2013-12-17 Red Hat, Inc. Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US9558195B2 (en) 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US8472443B2 (en) * 2009-05-15 2013-06-25 Cisco Technology Port grouping for association with virtual interfaces
US9134987B2 (en) 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
US8713139B1 (en) * 2009-10-29 2014-04-29 Hewlett-Packard Development Company, L.P. Automatic fixup of network configuration on system image move
US20110173285A1 (en) * 2010-01-14 2011-07-14 Cripe Daniel N Channel status message for virtual nic
JP5504952B2 (ja) * 2010-02-17 2014-05-28 ソニー株式会社 通信装置及び通信方法、並びにコンピューター・プログラム
US8442064B2 (en) * 2010-03-19 2013-05-14 Juniper Networks, Inc. Virtual link aggregation of network traffic in an aggregation switch
JP2011211618A (ja) 2010-03-30 2011-10-20 Sony Corp 送信装置、送信方法およびプログラム
US8953621B2 (en) 2010-09-10 2015-02-10 Futurewei Technologies, Inc. Specifying priority on a virtual station interface discovery and configuration protocol response
WO2012044700A1 (en) * 2010-10-01 2012-04-05 Huawei Technologies Co., Ltd. System and method for controlling the input/output of a virtualized network
US9787608B2 (en) * 2010-10-19 2017-10-10 International Business Machines Corporation Unified fabric port
JP5870192B2 (ja) 2011-08-17 2016-02-24 ニシラ, インコーポレイテッド 論理l3ルーティング
WO2013095502A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Methods, systems, and computer program products for processing a packet
JP5862336B2 (ja) * 2012-02-03 2016-02-16 沖電気工業株式会社 通信制御装置、通信制御方法、及び通信制御プログラム
TWI594186B (zh) * 2012-05-16 2017-08-01 緯創資通股份有限公司 虛擬頻道之管理方法、擷取數位內容之方法及具有虛擬頻道之網路多媒體重現系統
US9450859B2 (en) * 2012-06-15 2016-09-20 Citrix Systems, Inc. Systems and methods for deriving unique MAC address for a cluster
US20140351446A1 (en) 2013-05-21 2014-11-27 Samsung Electronics Co., Ltd. Electronic device using logical channels for communication
US9706002B2 (en) 2013-07-18 2017-07-11 International Business Machines Corporation Push notification via file sharing service synchronization
US9699625B2 (en) * 2013-07-18 2017-07-04 International Business Machines Corporation Push notification middleware
US9780994B2 (en) 2013-07-18 2017-10-03 International Business Machines Corporation Notification normalization
US9384611B2 (en) * 2013-07-26 2016-07-05 Tyco Integrated Security, LLC Method and system for self-discovery and management of wireless security devices
US10033693B2 (en) 2013-10-01 2018-07-24 Nicira, Inc. Distributed identity-based firewalls
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9634938B2 (en) * 2013-11-05 2017-04-25 International Business Machines Corporation Adaptive scheduling of data flows in data center networks for efficient resource utilization
US20150195189A1 (en) * 2014-01-07 2015-07-09 Alcatel Lucent Usa, Inc. Multiple tree routed selective randomized load balancing
US9215213B2 (en) 2014-02-20 2015-12-15 Nicira, Inc. Method and apparatus for distributing firewall rules
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9338091B2 (en) 2014-03-27 2016-05-10 Nicira, Inc. Procedures for efficient cloud service access in a system with multiple tenant logical networks
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
JP6182097B2 (ja) * 2014-03-27 2017-08-16 株式会社日立製作所 伝送システムおよび伝送装置
US9825854B2 (en) 2014-03-27 2017-11-21 Nicira, Inc. Host architecture for efficient cloud service access
US9794186B2 (en) 2014-03-27 2017-10-17 Nicira, Inc. Distributed network address translation for efficient cloud service access
US9215210B2 (en) 2014-03-31 2015-12-15 Nicira, Inc. Migrating firewall connection state for a firewall service virtual machine
US9906494B2 (en) 2014-03-31 2018-02-27 Nicira, Inc. Configuring interactions with a firewall service virtual machine
US9503427B2 (en) * 2014-03-31 2016-11-22 Nicira, Inc. Method and apparatus for integrating a service virtual machine
US9729512B2 (en) 2014-06-04 2017-08-08 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9825913B2 (en) 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US9692727B2 (en) 2014-12-02 2017-06-27 Nicira, Inc. Context-aware distributed firewall
US10606626B2 (en) 2014-12-29 2020-03-31 Nicira, Inc. Introspection method and apparatus for network access filtering
US10243848B2 (en) 2015-06-27 2019-03-26 Nicira, Inc. Provisioning logical entities in a multi-datacenter environment
US10361952B2 (en) 2015-06-30 2019-07-23 Nicira, Inc. Intermediate logical interfaces in a virtual distributed router environment
US9680706B2 (en) 2015-06-30 2017-06-13 Nicira, Inc. Federated firewall management for moving workload across data centers
US10324746B2 (en) 2015-11-03 2019-06-18 Nicira, Inc. Extended context delivery for context-based authorization
US10135727B2 (en) 2016-04-29 2018-11-20 Nicira, Inc. Address grouping for distributed service rules
US10348685B2 (en) 2016-04-29 2019-07-09 Nicira, Inc. Priority allocation for distributed service rules
US11425095B2 (en) 2016-05-01 2022-08-23 Nicira, Inc. Fast ordering of firewall sections and rules
US11171920B2 (en) 2016-05-01 2021-11-09 Nicira, Inc. Publication of firewall configuration
US11088990B2 (en) 2016-06-29 2021-08-10 Nicira, Inc. Translation cache for firewall configuration
US11258761B2 (en) 2016-06-29 2022-02-22 Nicira, Inc. Self-service firewall configuration
US9762619B1 (en) 2016-08-30 2017-09-12 Nicira, Inc. Multi-layer policy definition and enforcement framework for network virtualization
US10938837B2 (en) 2016-08-30 2021-03-02 Nicira, Inc. Isolated network stack to manage security for virtual machines
US10193862B2 (en) 2016-11-29 2019-01-29 Vmware, Inc. Security policy analysis based on detecting new network port connections
US10715607B2 (en) 2016-12-06 2020-07-14 Nicira, Inc. Performing context-rich attribute-based services on a host
US11032246B2 (en) 2016-12-22 2021-06-08 Nicira, Inc. Context based firewall services for data message flows for multiple concurrent users on one machine
US10812451B2 (en) 2016-12-22 2020-10-20 Nicira, Inc. Performing appID based firewall services on a host
US10802858B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Collecting and processing contextual attributes on a host
US10581960B2 (en) 2016-12-22 2020-03-03 Nicira, Inc. Performing context-rich attribute-based load balancing on a host
US10805332B2 (en) 2017-07-25 2020-10-13 Nicira, Inc. Context engine model
US10803173B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Performing context-rich attribute-based process control services on a host
US9912739B1 (en) 2017-01-12 2018-03-06 Red Hat Israel, Ltd. Open virtualized multitenant network scheme servicing virtual machine and container based connectivity
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10778651B2 (en) 2017-11-15 2020-09-15 Nicira, Inc. Performing context-rich attribute-based encryption on a host
US10862773B2 (en) 2018-01-26 2020-12-08 Nicira, Inc. Performing services on data messages associated with endpoint machines
US10802893B2 (en) 2018-01-26 2020-10-13 Nicira, Inc. Performing process control services on endpoint machines
US11182187B2 (en) * 2018-04-17 2021-11-23 Red Hat Israel, Ltd. Dynamic network connectivity verification in distributed virtual environments
US10795718B2 (en) * 2019-02-08 2020-10-06 Microsoft Technology Licensing, Llc Updating hardware with reduced virtual machine downtime
US11310202B2 (en) 2019-03-13 2022-04-19 Vmware, Inc. Sharing of firewall rules among multiple workloads in a hypervisor
US11539718B2 (en) 2020-01-10 2022-12-27 Vmware, Inc. Efficiently performing intrusion detection
US11381456B2 (en) 2020-04-06 2022-07-05 Vmware, Inc. Replication of logical network data between global managers
US11108728B1 (en) 2020-07-24 2021-08-31 Vmware, Inc. Fast distribution of port identifiers for rule processing
CN114201432A (zh) * 2020-09-02 2022-03-18 华为技术有限公司 用于usb传输的方法和电子设备
US11875172B2 (en) 2020-09-28 2024-01-16 VMware LLC Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC
US11853231B2 (en) * 2021-06-24 2023-12-26 Ati Technologies Ulc Transmission of address translation type packets
US11995024B2 (en) 2021-12-22 2024-05-28 VMware LLC State sharing between smart NICs
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
CN117439960B (zh) * 2023-12-21 2024-04-12 井芯微电子技术(天津)有限公司 支持接口复用和兼容虚拟网络互联的接口管理方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665733B1 (en) * 1996-12-30 2003-12-16 Hewlett-Packard Development Company, L.P. Network communication device including bonded ports for increased bandwidth
US7152232B2 (en) * 2001-07-16 2006-12-19 Sun Microsystems, Inc. Hardware message buffer for supporting inter-processor communication
JP4409991B2 (ja) 2004-03-01 2010-02-03 富士通株式会社 リンクアグリゲーションを用いた伝送制御システム
JP2006014151A (ja) * 2004-06-29 2006-01-12 Nippon Telegr & Teleph Corp <Ntt> ネットワーク管理装置およびネットワーク管理プログラム
US7591011B1 (en) * 2005-04-22 2009-09-15 Sun Microsystems, Inc. Assigning higher priority to transactions based on subscription level
JP2007088949A (ja) * 2005-09-22 2007-04-05 Fujitsu Ltd 情報処理装置、通信負荷分散方法および通信負荷分散プログラム
JP4542514B2 (ja) * 2006-02-13 2010-09-15 株式会社日立製作所 計算機の制御方法、プログラム及び仮想計算機システム
JP4367427B2 (ja) * 2006-03-28 2009-11-18 日本電気株式会社 計算機システム、並列計算機システムにおける通信方法、およびプログラム

Also Published As

Publication number Publication date
US20080298274A1 (en) 2008-12-04
US8279878B2 (en) 2012-10-02
JP2008294717A (ja) 2008-12-04

Similar Documents

Publication Publication Date Title
JP4740897B2 (ja) 仮想ネットワーク構成方法及びネットワークシステム
JP5976230B2 (ja) リソース管理システムおよびリソース管理方法
US8495255B2 (en) Discovery and configuration of device configurations
JP4331746B2 (ja) ストレージ装置構成管理方法、管理計算機及び計算機システム
US20140372611A1 (en) Assigning method, apparatus, and system
US11936731B2 (en) Traffic priority based creation of a storage volume within a cluster of storage nodes
CN111095225B (zh) 使用rdma读取非易失性高速缓存中存储的数据的方法
US20200241982A1 (en) System, and control method and program for input/output requests for storage systems
CN103346981A (zh) 虚拟交换方法、相关装置和计算机系统
CN103827803A (zh) 用于在存储网络中进行性能优化的计算机系统及管理系统
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN103455363B (zh) 一种虚拟机的指令处理方法、装置及物理主机
CN110830574B (zh) 一种基于docker容器实现内网负载均衡的方法
US20100064301A1 (en) Information processing device having load sharing function
JP2016116184A (ja) 網監視装置および仮想ネットワーク管理方法
CN104731635A (zh) 一种虚拟机访问控制方法,及虚拟机访问控制系统
US20110246600A1 (en) Memory sharing apparatus
US8762485B2 (en) Information system having computer and storage apparatus coupled to network
CN114650223A (zh) 一种Kubernetes集群的网络配置方法、装置及电子设备
JP5439435B2 (ja) 計算機システムおよびその計算機システムにおけるディスク共有方法
CN111247508A (zh) 网络存储架构
JP2011141635A (ja) ホスト間通信を使用した仮想サーバのデータの通信方法
JP6244496B2 (ja) サーバストレージシステムの管理システム及び管理方法
KR102064466B1 (ko) 가상화 시스템에서의 가상 데스크톱을 할당하는 방법 및 그 가상화 시스템
US11016694B1 (en) Storage drivers for remote replication management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110216

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees