JP2009239374A - 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード - Google Patents

仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード Download PDF

Info

Publication number
JP2009239374A
JP2009239374A JP2008079458A JP2008079458A JP2009239374A JP 2009239374 A JP2009239374 A JP 2009239374A JP 2008079458 A JP2008079458 A JP 2008079458A JP 2008079458 A JP2008079458 A JP 2008079458A JP 2009239374 A JP2009239374 A JP 2009239374A
Authority
JP
Japan
Prior art keywords
transmission
upper limit
transmission packet
packet
bandwidth control
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.)
Granted
Application number
JP2008079458A
Other languages
English (en)
Other versions
JP5109748B2 (ja
Inventor
Toshio Ohira
敏男 大比良
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008079458A priority Critical patent/JP5109748B2/ja
Publication of JP2009239374A publication Critical patent/JP2009239374A/ja
Application granted granted Critical
Publication of JP5109748B2 publication Critical patent/JP5109748B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】 複数の仮想計算機におけるVNICのパケット送信遅延を少なくする。
【解決手段】 仮想計算機1〜3に対応して設けられ対応仮想計算機とネットワークとのインターフェースをなすVNIC11,21,31に共有され、これらVNICから供給されて仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群に従って各仮想計算機の送信パケットをネットワークへ送信する物理NIC5において、VNIC毎に、送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御部51と、VNIC毎に、送信パケット情報群に含まれる各データ量を基に、送信順に従って単位時間当りの送信最大量を制限する上限帯域制御部52と、上限帯域制御部の各々からの送信パケット情報群に含まれる各データ量を基に、VNIC毎に、送信順に従って単位時間当りの送信最低量を保証する下限帯域制御部53とを含む。
【選択図】 図1

Description

本発明は仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカードに関し、特に複数の仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットをネットワークへ送信するネットワークインターフェースカードのパケット送信制御方式に関するものである。
1つの計算機システムで利用可能なプロセッサ数は、マルチコアプロセッサが登場したことにより飛躍的に増加させることが可能となってきた。このようなプロセッサを多数搭載した計算機システムを単独OSで利用すると、システムアイドル状態で多くのプロセッサ資源が無駄になってしまう。そこで、プロセッサ資源の利用効率を向上させる方法として、制御プログラムにより計算機システム上に複数の仮想計算機を同時に稼動させるという方法がある。
ここで、計算機システム上のI/Oデバイスの数はプロセッサ数に比べて増加の程度が緩やかなため、マルチコアプロセッサを搭載した計算機システムでは、プロセッサに対するI/Oデバイス数が減少するという状況が生じている。従って、計算機システム上で多くの仮想計算機を稼動させるためには、I/Oデバイスをいかに効率よく利用するかが課題となる。
そのための1つの解決策として、I/Oデバイスの1つであるネットワークインタ−フェースカード(Network Interface Card:NIC)を制御プログラムにより仮想化し、この制御プログラムによって、計算機システム上に搭載している物理NICを、複数のVNICで共有するという方法がある(特許文献1参照)。この方法により、1つのI/Oデバイスを複数の仮想計算機で共有利用することが可能となる。
図21に、このようなVNICを用いた仮想計算機システムの一例を示している。図21を参照すると、複数の仮想計算機10a,10b,10c、主記憶30及び物理NIC20は、PCI(Peripheral Component Interconnect )バス50に共通接続されている。そして、物理NIC20はネットワーク40に接続されている。
仮想計算機は10aは、アプリケーション101aと、OS102aと、VNIC(仮想NIC)105aとを備えており、OS102aは、TCP(Transmission Control Protocol )/IP(Internet Protocol )機能部103aとドライバ104aとを有している。他の仮想計算機10b,10cも、仮想計算機10aと同一構成である。
物理NIC20は、PCIバスI/F(インターフェース)200と、送信キュー201と、受信キュー202と、DMA(Direct Memory Access)制御部206と、送信バッファ207と、受信バッファ208と、ネットワークI/F209とを備えている。
ここで、図21に示したVNICを使用した場合のパケット送信動作について説明する。VNIC105a,105b,105cが同時にパケットを送信する場合、1つの物理NIC20に対して3つのVNICが同時にアクセスしようとすることになるために、これらVNIC間で排他制御を行う必要がある。
ここで、VNIC105aが物理NIC20のロックを取得して物理NIC20へのアクセス権を取得したとすると、VNIC105bとVNIC105cとは物理NIC20へのアクセス権を得られないので、ロック取得待ち状態となりパケット送信はできない。
一方、ロックを取得したVNIC105は送信パケット情報を物理NIC20の送信キュー201に登録する。VNIC105aが連続してパケットを送信する場合には、当該送信パケット情報は送信キュー201に連続登録されることになる。送信パケット情報の送信キューへの登録が完了した後、VNIC105aのロックは開放となる。
ロックが解放されると、ロック取得待ち状態のVNIC105bとVNIC105cとに対してロック取得の機会が与えられる。ここで、VNIC105bがロックを取得したとすると、VNIC105cはロック取得待ち状態が継続することになる。
ロックを得したVNIC105bは送信パケット情報を物理NIC20の送信キュー201に登録する。VNIC105bが連続してパケットを送信する場合は、当該送信パケット情報は送信キュー201に連続登録される。送信パケット情報の送信キューへの登録が完了した後、VNIC105bのロッは開放となる。
ロックが解放されると、ロック取得待ち状態のVNIC105cがロックを取得する。VNIC105cは送信パケット情報を物理NIC20の送信キュー201に登録する。VNIC105cが連続してパケットを送信する場合には、当該送信パケット情報は送信キュー201に連続登録される。送信パケット情報の送信キューへの登録が完了すると、VNIC105cのロックは開放となる。
物理NIC20のDMA制御部206は、VNIC105a→VNIC105b→VNIC10cの順に送信キューに登録された送信パケット情報に従って、送信キューに登録されている順番で、計算機主記憶30に対してDMA制御を行う。すなわち、DMA制御部206は、主記憶30から、送信パケット情報に従って送信パケットデータをPCIバス50経由で取得し、送信バッファ207に格納する。送信バッファ206に格納されたパケットデータは、ネットワークI/F209を介してネットワーク40に送信される。
なお、ネットワークI/F209は、ネットワーク40からの自NIC宛のパケットデータを受信して受信バッファ208に格納する。受信バッファ208はネットワーク40からの受信パケットを格納し、格納した受信パケットを解析してDMA制御部206に対してDMA起動指示を与えるようになっている。
特開2007−158870号公報
図21に示したシステムでは、1つの物理リソースを、複数のVNICにより共有する構成のために、制御プログラムによる物理NICの排他制御が必要になり、ロック取得待ちの処理時間が発生する。このためロック取得待ち時間分のパケット送信遅延が発生する。
また、特定のVNICがデータ転送で物理NICを占有することにより、他VNICのデータ転送ができなくなって、最低限のデータ転送帯域が確保できなくなる場合がある。更に、リアルタイム性が必要なパケット(例えば、Telnet、FTP(File Transfer Protocol)制御といったパケット)が、先行する他VNICのデータ転送パケットにより処理が遅延する場合がある。
本発明の目的は、特定のVNICによる共有物理NICのパケット送信のためのロック占有をなくして、ロック取得待ち時間に起因するパケット送信遅延を少なくするようにした仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード、プロクラムを提供することである。
本発明による仮想計算機システムは、複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードを含む仮想計算機システムであって、前記物理ネットワークインターフェースカードは、前記VNICにそれぞれ対応して設けられ、対応するVNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、前記VNICにそれぞれ対応して設けられ、対応するVNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記VNIC毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含むことを特徴とする。
本発明によるパケット送信制御方法は、複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法であって、前記VNIC毎に、前記VNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御ステップと、前記VNIC毎に、前記VNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御ステップと、前記VNIC毎に、前記上限帯域制御ステップからの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御ステップとを含むことを特徴とする。
本発明によるネットワークインターフェースカードは、複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードであって、前記VNICにそれぞれ対応して設けられ、対応するVNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、前記VNICにそれぞれ対応して設けられ、対応するVNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記VNIC毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含むことを特徴とする。
本発明によるプログラムは、複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法をコンピュータに実行させるためのプログラムであって、前記VNIC毎に、前記VNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御処理と、前記VNIC毎に、前記VNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御処理と、前記VNIC毎に、前記上限帯域制御ステップからの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御処理とを含むことを特徴とする。
本発明によれば、以下の効果が得られる。複数のVNICの各々に対して、送信パケットの優先度制御、また単位時間当りの最大送信量の制限をなす上限帯域制御機能、更には、単位時間当りの最低送信量の保証する下限帯域制御機能を設けることにより、複数のVNICにより物理NICが共有利用されても、各VNICのデータ転送帯域を保証することができ、パケット送信遅延をなくすことが可能となる。
以下に、本発明の実施の形態について説明するが、それに先立ち、本発明のより良い理解のために、図1及び図2を参照して本発明の原理を説明する。
図1は本発明の原理を説明すたるめ概略機能ブロック図である。複数の仮想計算機1,2,3と物理NIC5とは共通バス4により相互接続されている。これら仮想計算機の各々は仮想ネットワークインターフェースカード(VNIC)11,21,31を有している。物理ネットワークインターフェースカード(物理NIC)5は、共通バス4に接続されてVNIC11,21,31により共有(共用)されている。
この物理NIC5は、仮想計算機1,2,3の各々の送信すべきパケット群(グループ)の各送信パケットに関する情報群を処理して、処理結果に従って、各仮想計算機の送信パケットをネットワークへ送信するものである。なお、この送信パケットに関する情報(送信パケット情報と称す)とは、送信パケットの番号、送信の優先度、データサイズ(データ量)、DMA制御のための主記憶(図21の30参照)のアドレスなどを含むものとする。
物理NIC5は、優先度制御部51と、上限帯域制御部52と、下限帯域制御部53とを備えている。優先度制御部51は、仮想計算機1〜3の各々のVNIC11,21,31からの送信パケット情報の各優先度を基に、VNIC11,21,31毎に、各送信パケットの優先度をそれぞれ判定して、その優先度に応じて送信パケットの送信順を定めるものである。
上限帯域制御部52は、VNIC11,21,31毎に、送信パケット情報のデータ量を基に、送信順に従って送信パケットデータ量を監視して単位時間当りの送信最大量を、制限するものである。下限帯域制御部53は、送信パケット情報を基に、VNIC毎に、送信順に従って送信パケットのデータ量を監視して単位時間当りの送信最低量を保証するものである。
図2を参照すると、図1に示した物理NIC5の動作の概略を示すフローである。先ず、物理NIC5の優先度制御部51において、VNIC11,21,31からの各送信パケット情報群のそれぞれの優先度が判定され、優先度に応じて送信パケットの送信順が、VNIC毎に決定される(ステップS1)。
次に、上限帯域制御部52において、VNIC11,21,31からの各送信パケット情報群のそれぞれのデータ量を、送信順に従って監視して、VNIC毎に単位時間当りの送信最大量を制限する、上限帯域制御がなされる(ステップS2)。
最後に、下限帯域制御部53において、VNIC11,21,31からの各送信パケット情報群のそれぞれのデータ量を、送信順に従って監視して、仮想計算機毎に単位時間当りの送信最低量を制限する、下限帯域制御がなされる(ステップS3)。
この様に、優先度制御と、上限帯域制御と、下限帯域制御とを、仮想計算機すなわちVNIC毎に、物理NICにおいて実行することにより、各VNICのデータ転送帯域を保証することができ、パケット送信遅延をなくすことが可能となる。
次に、本発明の実施の形態について図面を参照して詳細に説明する。図3は本発明の一実施の形態による物理NIC20の機能を示すブロック図である。物理NIC20は、PCIバスI/F200と、送信キュー201a〜201cと、受信キュー202a〜202cと、優先度制御機構203a〜203cと、上限帯域制御機構204a〜204cと、下限帯域制御機構205と、DMA制御部206と、送信バッファ207と、受信バッファ208と、ネットワークI/F209とを備えている。
PCIバスI/F200は、図1に示したPCIバス4とのインターフェースである。送信キュー201a〜201cは、図1に示した各VNIC11〜33に対応する送信パケット情報を格納するキューである。受信キュー202a〜202cは、図1に示した各VNIC11〜33に対応する受信パケット情報を格納するキューである。
優先度制御機構203a〜203cは、送信キュー201a〜201cに対応するものであって、対応する送信キューにそれぞれ登録された送信パケット情報を基に、送信キューに登録された順番を優先度の高いパケットを先に送信するように並べ替える機能を有している。
ここで、図4を参照すると、当該優先度制御機構203(203a〜203c)の構成を示している。優先度制御機構203において、データレジスタ2031は、対応する送信キュー201より送られてくる送信パケット情報を一時的に保持するものである。また、優先判定論理部2032は、このデータレジスタ203に保持されている送信パケット情報のパケットフラグを参照して、次に登録する送信キューを選択する機能を有する。
また、高優先送信キュー2033は、高優先の送信パケット情報を登録するものであり、低優先送信キュー2034は、その他低優先の送信パケット情報を登録ものである。更に、選択判定論理部2035は、高優先送信キュー2033への送信パケット登録状態を監視して次に送る送信パケット情報を選択する機能を有している。すなわち、優先的に送出する高優先送信パケット情報の数を予め所定値としておき、高優先送信パケット情報の数がこの所定値に達すると、低優先送信パケット情報の送信沈み込みを回避すべく、低優先送信パケット情報を送出するような論理制御をなす機能を、選択判定論理部は有している。この所定値を、選択判定基準と称するものとする。
図3に戻ると、上限帯域制御機構204a〜204cは、送信キュー201a〜201cに対応するものであって、対応する送信キューに登録された各送信パケット情報のパケット長を監視し、予め設定しておいた上限帯域(最大送信量)以上のパケット送信を抑止する機能を有する。
ここで、図5を参照すると、当該上限帯域制御機構204(204a〜204c)の構成を示している。上限帯域制御機構204において、データレジスタ2041は、対応する優先度制御機構2032から送られてくる送信パケット情報を一時的に保持するものである。また、カウンタ2042は、このデータレジスタ2041に保持された各送信パケット情報のデータサイズを加算して一定期間保持するものである。
更に、上限値レジスタ2043は、上限帯域値を設定しておくものであり、比較論理部2044は、カウンタ2042と上限値レジスタ2043との値を比較して、カウンタ2042の値が上限値よりも小さい場合に、データレジスタ2041に保持された送信パケット情報を送出する機能を有する。
再度図3に戻ると、下限帯域保証機構205は、各上限帯域制御機構204a〜204cから送られてくる送信パケット情報から実際の送信パケットサイズを監視して、予め設定しておいた最低(下限)送信量の保証をなす機能を有する。
ここで、図6を参照すると、当該下限帯域保証機構205の構成を示している。下限帯域保証機構205において、データレジスタ2051a〜2051cは、対応する上限帯域制御機構204a〜204cからそれぞれ送られてくる送信パケット情報を一時的に保持するものである。また、カウンタ2052a〜2052cは、各データレジスタ2051a〜2051cに保持された送信パケット情報のデータサイズを加算して一定期間保持するものである。
更に、下限値レジスタ2053は、下限帯域値を設定しておくものである。送信パケット選択論理部2054は、各カウンタ2052a〜2052cと下限値レジスタ2053との値をそれぞれ比較した結果に基づき、実際にネットワークへ送信するパケット情報を選択して、DMA制御部に対してDMA起動指示を与えるものである。
再び図3に戻ると、DMA制御部206は、下限帯域保証機構205の指示に応じて、計算機システムの主記憶(図21の30に相当)から送信パケットデータをPCIバス経由で取得し、送信バッファ207に格納する機能と、受信バッファ208の指示に応じて、受信バッファ208に格納されている受信パケットデータをPCIバス経由で主記憶に格納する機能を有する。
送信バッファ207は、送信パケットデータを格納する機能を有する。受信バッファ208は、ネットワークから受信した受信パケットを格納し、格納した受信パケットを解析し、受信対象となるVNICに対応する受信キュー202a〜202cを選択し、DMA制御部205に対してDMA起動指示を与える機能を有する。
ネットワークI/F209は、送信バッファに格納された送信パケットデータをネットワークに出力する機能と、ネットワークから自NIC20宛てのパケットデータを受信し、受信バッファに格納する機能を有する。
以下に、本発明の実施の形態の動作を、図7及び図8並びに図9を参照しつつ説明する。図7及び図8は物理NIC20の送信パケット制御態様の一例を示し、図9は物理NIC20の受信パケット制御態様の一例を示している。先ず、図7及び図8を参照して物理NIC20のパケット送信動作について詳細に説明する。
図7及び図8では、送信キュー201a〜201cにそれぞれ対応した送信パケット情報グループA〜Cについて示しており、先ず、送信パケット情報グループAについて説明する。
優先度制御機構203aは、送信キュー201aに登録された送信パケット情報1a〜8aの送信パケットフラグ情報を参照して、高優先送信パケット1a,2a,5aと低優先送信パケット3a,4a,6a,7a,8aとに分け、高優先送信パケット情報から順番(1a→2a→5a→3a→4a→6a→7a→8a)に上限帯域制御機構204aへ送る。
上限帯域制御機構204aは、優先度制御機構203aから送られてくる送信パケット情報の送信パケットデータサイズを順次加算(積算)して、この加算値が上限値レジスタ値(本例では、1000としている)未満の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報1a,2a,5a,3a,4a,6a,7a,8aの送信パケットデータサイズの合計が930(=10+10+10+100+300+200+200+100)となるため、上限値レジスタ値1000未満であることから、送信パケット情報1a〜8aの全てが下限帯域制御機構205に送られる。
次に、送信パケット情報グループBについて説明する。優先度制御機構203bは、送信キュー201bに登録された送信パケット情報1b〜8bの送信パケットフラグ情報を参照して、高優先送信パケット5bと低優先送信パケット1b,2b,3b,4b,6b,7b,8bとに分け、高優先送信パケット情報から順番(5b→1b→2b→3b→4b→6b→7b→8b)に上限帯域制御機構204bへ送る。
上限帯域制御機構204bは、優先度判定機構203bから送られてくる送信パケット情報の送信パケットデータサイズを順次加算(積算)して、この加算値が上限値レジスタ値未満の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報の5b,1b,2b,3bの送信パケットデータサイズを加算した時点で、送信パケットデータサイズの合計が910(=10+300+500+100)となる。
そして、次の送信パケット情報4bの送信パケットデータサイズを加算すると、送信パケットデータサイズの合計が1210(=910+300)となり、上限値レジスタ値以上になるために、送信パケット情報4b,6b,7b,8bは下限帯域制御機構205に送られず、送信パケット情報5b,1b,2b,3bが下限帯域制御機構205に送られる。
次に、送信パケット情報グループCについて説明する。優先度制御機構203cは、送信キュー201cに登録された送信パケット情報1c〜8cの送信パケットフラグ情報を参照して、高優先送信パケット2c,4c,5c,6c,7c,8cと低優先送信パケット1c,3cとに分ける。
ここでは、高優先送信パケット情報数が選択判定基準(本例では、選択判定基準の値は5とする)を超過することになる。この高優先送信パケット情報数の超過による低優先送信パケット情報の送信沈み込みを回避するために、高優先送信パケット情報の2c→4c→5c→6c→7cを送った後に、低優先送信パケット情報の1cを送り、再度高優先送信パケット情報の8cを送る制御を行う。この結果、送信パケット情報2c→4c→5c→6c→7c→1c→8c→3cの順番で、上限帯域制御機構204cに送られることになる。
上限帯域制御機構204cは、優先度制御機構203cから送られてくる送信パケット情報の送信パケットデータサイズを順次加算(積算)して、この加算値が上限値レジスタ値未満の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報2c,4c,5c,6c,7c,1c,8c,3cの送信パケットデータサイズの合計が660(=10+10+10+10+10+500+10+100)となるため、上限値レジスタ値1000未満となるので送信パケット情報1c〜8cが下限帯域制御機構205に送られる。
この送信キュー201a〜201cから上限帯域制御機構204a〜204cまでの処理は、物理NIC20上で同時に動作可能である。また、各上限帯域制御機構204a〜204c内のカウンタ2042は一定の時間間隔でリセットされ、リセット後は、後続の送信パケット情報に対して、上記した送信パケット制御が行われることになる。
このような送信パケット制御を繰返すことにより、各送信パケット情報グループにそれぞれ対応する送信パケットデータグループに対して上限帯域を保証することが可能になる。下限帯域制御機構205に送られなかった送信パケット情報グループBの送信パケット情報4b,6b,7b,8bは、カウンタがリセットされた後で処理される。
次に、下限帯域制御機構205は、上限帯域制御機構204a〜204cから送られてくる送信パケット情報を用いて、DMA制御部206に対してDMA起動指示を行う。先ず、下限帯域制御機構205は通信パケット情報グループAの処理を行う。すなわち、下限帯域制御機構205は、上限帯域制御機構204aから送られてくる送信パケット情報1a〜8aの送信パケットデータサイズを、カウンタ2052aにより加算して、下限値レジスタ値以上になるまでの送信パケット情報にてDMA制御部206に対してDMA起動指示を行う。
ここでは、1a→2a→5a→3aのパケットデータを取得した時点で、送信パケットデータサイズの合計が130(=10+10+10+100)となり、下限値レジスタ値(例えば、下限値レジスタ値を100とする)以上となるので、下限帯域制御機構205は、DMA制御部206に対して、次の通信パケット情報グループの送信パケットデータの取得に移るよう指示する。すなわち、送信パケット情報グループAの処理に続いて通信パケット情報グループBの処理を行うことになる。
下限帯域制御機構205は、上限帯域制御機構204bから送られてくる送信パケット情報5b,1b,2b,3bの送信パケットデータサイズを、カウンタ2052bにより加算して、下限値レジスタ値以上になるまでの送信パケット情報にてDMA制御部206に対してDMA起動指示を行う。
ここでは、5b→1bのパケットデータを取得した時点で、送信パケットデータサイズの合計が310(=10+300)となり、下限値レジスタ値の100以上となるので、下限帯域制御機構205は、DMA制御部206に対して、次の通信パケット情報グループの送信パケットデータの取得に移るよう指示する。すなわち、送信パケット情報グループBの処理に続いて通信パケット情報グループCの処理を行うことになる。
下限帯域制御機構205は、上限帯域制御機構204cから送られてくる送信パケット情報1c〜8cの送信パケットデータサイズを、カウンタ2052cにより加算して、下限値レジスタ値以上になるまでの送信パケット情報にてDMA制御部206に対してDMA起動指示を行う。
ここでは、2c→4c→5c→6c→7c→1cのパケットデータを取得した時点で、送信パケットデータサイズの合計が550(=10+10+10+10+10+500)となり、下限値レジスタ値の100以上となるので、下限帯域制御機構205は、DMA制御部206に対して、次の通信パケット情報グループの送信パケットデータの取得に移るように指示する。
このようにして、送信パケット情報を1a→2a→5a→3a→5b→1b→2c→4c→5c→6c→7c→1cの順番で処理することにより、該当する送信パケットデータを主記憶30から取得し送信バッファ207に格納する。
かかる送信パケットデータの処理により、送信パケット情報グループA〜Cに対して既に下限帯域を保証したので、残りの送信パケット情報に対する処理はラウンドロビン制御により送信パケット情報グループA→B→Cの順番で行う。
ここでは、残りの送信パケット情報を、4a→2b→8c→6a→3b→3c→7a→8aの順番で処理することにより、該当する送信パケットデータを主記憶30から取得し送信バッファ207に格納する。また、下限帯域制御機構205内のカウンタ2052a〜2052cは一定の時間間隔でリセットされる。リセット後は、ラウンドロビン制御で行っていた送信パケット制御を、下限値レジスタ値と送信パケットデータサイズの加算結果とを比較する送信パケット制御に戻る。
このような送信パケット制御を繰り返すことにより、各送信パケット情報グループにそれぞれ対応する送信パケットデータグループに対して下限帯域を保証することができる。なお、上述した処理により、送信バッファ207に格納された送信パケットデータは、ネットワークI/F209にてネットワーク40に送信される。
次に、物理NIC20のパケット受信動作について、図9を参照して詳細に説明する。物理NIC20は、ネットワーク40から受信したパケットについて受信した順番で処理を行う。ネットワーク40からネットワークI/F209が、受信パケット番号1(以下単に番号1と称す)の受信パケットデータを受信すると、受信バッファ208にこの受信パケットデータを格納する。
受信バッファ208は、格納された番号1の受信パケットデータから受信対象のIPアドレスデータを抜き出し、この受信パケットのIPアドレスに対応する受信キューを選択する。ここでは、番号1の受信パケットデータの受信パケットのIPアドレスは、“a.a.a.a”なので、“a.a.a.a”のIPアドレスに対応する受信キュー202aが選択される。DMA制御部206は、選択された受信キュー202aに対応する主記憶30のアドレスに、番号1の受信パケットデータ1をDMA転送し、受信キュー202aに受信バッファ情報を登録する。
次に、ネットワークI/F209は、番号2の受信パケットデータを受信すると、受信バッファ208に受信パケットデータ2を格納する。受信バッファ208は、格納された番号2の受信パケットデータから受信対象のIPアドレスデータを抜き出し、この受信パケットのIPアドレスに対応する受信キューを選択する。ここでは、番号2の受信パケットデータの受信パケットのIPアドレスは“b.b.b.b”なので、“b.b.b.b”のIPアドレスに対応する受信キュー202bが選択される。DMA制御部206は、選択された受信キュー202bに対応する主記憶30のアドレスに、受信パケットデータ2をDMA転送し、受信キュー202bに受信バッファ情報を登録する。
次に、ネットワークI/F209は、番号3の受信パケットデータを受信すると、受信バッファ208にこの受信パケットデータを格納する。受信バッファ208は、格納された番号3の受信パケットデータ3から受信対象のIPアドレスデータを抜き出し、受信パケットのIPアドレスに対応する受信キューを選択する。ここでは、受信パケットデータ3の受信パケットのIPアドレスは“c.c.c.c”なので、“c.c.c.c”のIPアドレスに対応する受信キュー202cが選択される。DMA制御部206は、選択された受信キュー202cの対応する主記憶30のアドレスに、受信パケットデータ2をDMA転送し、受信キュー202cに受信バッファ情報を登録する。
以下、番号4〜8の各受信パケットについても同様に、受信したパケットデータに応じて、各受信キュー202a〜202cに受信パケットデータが登録されるのである。こうして、各受信キューに受信パケット情報が登録されると、各受信キューに対応しているVNIC105,115,25が、それぞれ受信パケットデータの取り込みを行う。
このように、複数の送信キューと、優先度制御機構と、上限帯域制御機構と、下限帯域制御機構とを設けることにより、複数のVNICに共有されるNICは、各VNICのデータ転送帯域を保証することが可能となり、各仮想計算システムに対して安定したネットワークサービスを提供することが可能となる。また、各VNICが対応する受信キューを搭載することにより、受信データの振り分け処理の負荷が軽減可能である。
次に、本発明の他の実施の形態について、図10を参照して説明する。図10において、図3と同等部分には同一符号を付して示している。本実施の形態では、先の実施の形態における下限値レジスタ2053及び上限値レジスタ2043として、NICの制御ソフトウエアにより個別に設定値を変更可能とする。更に、これら上限値レジスタ及び下限値レジスタを個々の送信キュー201a,201b,201cにそれぞれ対応して実装することにより、VNIC毎のデータ転送性能に差をつけるようにしたものである。
図10を参照すると、上限値レジスタ210a〜210c、下限値レジスタ211a〜211cを、個々の送信キュー201a,201b,201c対応に実装した物理NIC20の構成を示している。これら上限値レジスタ210a〜210c及び下限値レジスタ211a〜211cは、NICの制御ソフトウエアにより個別に値を設定可能なレジスタにより構成される。
ここで、一例として、送信パケット情報グループAの上限値レジスタ210aを1000、下限値レジスタ211aを100に、それぞれ設定するものとする。また、送信パケット情報グループBの上限値レジスタ210bを2000、下限値レジスタ211bを500に、それぞれ設定するものとする。送信パケット情報グループCの上限値レジスタ210cを600、下限値レジスタ211cを50に、それぞれ設定するものとする。
図7及び図11は本実施の形態の動作を説明するための図であり、図7に示したように、各グループA〜Cの送信パケット情報は、先の実施の形態と同一とし、また優先度制御機構203a〜203cにおける動作も先の実施の形態と同一とする。それより後段の上限帯域制御機構204a〜204c及び下限帯域制御機構205、更にはDMA制御部206の動作が異なるので、以下に、図11を参照して説明する。
上限帯域制御機構204aは、優先度制御機構203aから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ210aに設定された値未満(1000未満)の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報1a,2a,5a,3a,4a,6a,7a,8aの送信パケットデータサイズの合計が930(=10+10+10+100+300+200+200+100)となるため、全ての送信パケット情報1a〜8aが、下限帯域制御機構205に送られる。
上限帯域制御機構204bは、優先度制御機構203bから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ210bに設定された値未満(2000未満)の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報5b,1b,2b,3b,4b,6b,7b,8bの送信パケットデータサイズの合計が1710(=10+300+500+100+300+200+200+100)となるため、全ての送信パケット情報1b〜8bが下限帯域制御機構205に送られる。
上限帯域制御機構204cは、優先度制御機構203cから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ210cに設定された値未満(600未満)の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報2c,4c,5c,6c,7c,1c,8cの送信パケットデータサイズを加算した時点で、送信パケットデータサイズの合計が560(=10+10+10+10+10+500+10)となる。
そして、次の送信パケット情報3cの送信パケットデータサイズを加算すると、送信パケットデータサイズの合計が660(=560+100)となり、上限値レジスタ値を越えることになる。よって、送信パケット情報3cは下限帯域制御機構205に送られず、送信パケット情報2c,4c,5c,6c,7c,1c,8cが下限帯域制御機構205に送られるのである。
下限帯域制御機構205は、上限帯域制御機構204a〜204cから送られてくる送信パケット情報を用いて、DMA制御部206に対してDMA起動指示を行う。先ず、送信パケット情報グループAの処理を行う。下限帯域制御機構205は、上限帯域制御機構204aから送られてくる送信パケット情報1a〜8aに対して、送信パケットデータサイズを加算して、下限値レジスタ211aに設定された値以上になるまでの送信パケット情報に基づいて、DMA制御部206に対してDMA起動指示を行う。
ここでは、1a→2a→5a→3aのパケットデータを取得した時点で、送信パケットデータサイズの合計が130(=10+10+10+100)となり、下限値レジスタ211aに設定した100以上となるので、次の送信パケット情報グループの送信パケットデータの取得に移る。
送信パケット情報グループAの処理に続いて、送信パケット情報グループBの処理を行う。下限帯域制御機構205は、上限帯域制御機構204bから送られてくる送信パケット情報1b〜8bに対して送信パケットデータサイズを加算して、下限値レジスタ211bに設定された値以上になるまでの送信パケット情報に基づいて、DMA制御部206に対してDMA起動指示を行う。
ここでは、5b→1b→2bのパケットデータを取得した時点で、送信パケットデータサイズの合計が810(=10+300+500)となり、下限値レジスタ211bに設定した500以上となるので、次の送信パケット情報グループの送信パケットデータの取得に移る。
送信パケット情報グループBの処理に続いて、送信パケット情報グループCの処理を行う。下限帯域制御機構205は、上限帯域制御機構204cから送られてくる送信パケット情報2c,4c,5c,6c,7c,1c,8cに対して送信パケットデータサイズを加算して、下限値レジスタ211cに設定された値以上になるまでの送信パケット情報に基づき、DMA制御部206に対してDMA起動指示を行う。
ここでは、2c→4c→5c→6c→7cのパケットデータを取得した時点で、送信パケットデータサイズの合計が50(=10+10+10+10+10)となり、下限値レジスタ211cに設定した50以上となるので、次の送信パケット情報グループの送信パケットデータの取得に移る。
上述した上記の送信パケットデータの処理をなすことにより、送信パケット情報グループA〜Cに対して下限帯域の保証が可能となったので、残りの送信パケット情報に対する処理は、ラウンドロビン制御により、送信パケット情報グループA→B→Cの順番で行うことになる。
以上の処理に基づいて、各グループにおける総送信データサイズを考えると、単位時間で比較した場合、グループAの総送信データサイズは930となり、グループBの総送信データサイズは1710となり、グループCの送信データサイズは560となって、結果として、VNIC毎のデータ転送性能に差をつけることできる。これにより、VNIC毎のネットワーク性能を制御することが可能となり、性能に応じた価格帯の設定等が可能となる。
次に、本発明の更に他の実施の形態について説明する。先の実施の形態においては、上限値レジスタを設けているので、あるグループにおいて、他グループの送信パケットがなくても、自グループ送信パケットデータサイズが上限値に達してしまった場合には、一時的にパケットの送信ができなくなってしまうという問題がある。この問題を解決するために、本実施の形態では、上限帯域制御機構204を改良したものである。
図12は、全ての上限帯域制御機構が、他の上限帯域制御機構が保持するパケット情報の有無を参照するようにした構成となっている。図13は、本実施の形態において、ある上限帯域制御機構が、他上限限帯域制御機構が保持するパケット情報を参照する場合の、送信パケット情報を送る動作手順を示している。
図12を用いて、本実施の形態が上記実施の形態と異なる部分に関してのみ説明する。他の上限帯域制御機構に対して、自上限帯域制御機構が保持する送信パケット情報の有無を出力する機能(データレジスタ2041からの出力)と、他の上限帯域制御機構が保持する送信パケット情報の有無を、比較論理部2044にて参照する機能とを、上記の実施の形態に対して追加している。
図13を参照して、比較論理部2044の制御フローについて説明する。先ず、自上限帯域制御機構のカウンタ値(2042の値)と上限値レジスタの値(2043の値)とを比較する。ここで、カウンタ値が上限値に達していない場合には、送信パケット情報を下限帯域制御機構へ送る。上限値に達している場合には、他の上限帯域制御機構が送信パケット情報を保持しているかを確認する。ここで、他の上限帯域制御機構が送信パケットを保持していない場合には、送信パケット情報を下限帯域制御機構へ送る。
次に、本実施の形態における送信パケット制御の一例を、図14を用いて説明する。図14において、優先度制御機構203a〜203cの各選択判定基準は先の実施の形態の場合と同様に5とする。また、上限帯域制御機構204a〜204cの各上限値レジスタ値は1000とする。
上限帯域制御機構204aは、優先度制御機構203aから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ210aに設定された値未満(1000未満)の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報1a,2a,3aの送信パケットデータサイズの合計が120(=10+10+100)となるため、送信パケット情報1a〜3aが下限帯域制御機構205に送られる。
上限帯域制御機構204bは、優先度制御機構203bから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ210bに設定された値未満(1000未満)の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報5b,1b,2b,3bの送信パケットデータサイズの合計が910(=10+300+500+100)となるため、送信パケット情報5b,1b,2b,3bが下限帯域制御機構205に送られる。
上限帯域制御機構204cは、優先度制御機構203cから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ210cに設定された値未満(1000未満)の場合に、下限帯域制御機構205に送信パケット情報を送る。ここでは、送信パケット情報2c,1cの送信パケットデータサイズを加算した時点で、送信パケットデータサイズの合計が510(=10+500)となるため、送信パケット情報2c,1cが下限帯域制御機構205に送られる。
この時点で、送信パケットグループBの送信パケット情報4b,6b,7b,8bが下限帯域制御機構205に送られずに残っている。ここで、上限帯域制御機構203bは、上限待機制御機構203aおよび203cに送信パケット情報がないことを確認すると、自上限帯域制御機構のカウンタ2042が上限値レジスタ210bに設定されている値(1000)に達していても、送信パケット情報4b,6b,7b,8bを下限帯域制御機構205に送る。
この結果、他グループの送信パケットがなく、自グループの送信パケットを保持している場合でも、パケット送信処理を停止することがなくなるので、更にNICを効率よく利用することが可能となる。
本発明の別の実施の形態について、図15及び図16を用いて説明する。図15は、本発明の別の実施の形態による上限帯域制御機構204aの構成を示す図であり、図16はその動作を示すフローである。なお、図15においては、上限帯域制御機構204aの構成のみを示しているが、他の上限帯域制御機構204bや204cも同一の構成である。そして、図15において、図12と同等部分は、同一符号により示されている。
先ず、図15においては、図12の構成に対して、自上限帯域制御機構の送信パケットの有無の他に、カウンタ2042のカウンタ値、送信パケット長及び上限値レジスタ2043の値を、他の上限帯域制御機構に対して出力する機能が追加されている。また、図15においては、図12の構成に対して、他の上限帯域制御機構からの送信パケットの有無、カウンタ値、送信パケット長及び上限値レジスタの値を参照して、状態テーブル20441として作成保持する機能が追加されている。
次に、図16を参照すると、ある上限帯域制御機構が、他上限帯域制御機構からの上記情報を参照して、自送信パケット情報を送信する場合の動作について説明する。先ず、自上限帯域制御機構のカウンタ値(2042の値)と上限値レジスタ値(2043の値)とを比較する。ここで、カウンタ値が上限値に達していない場合は(ステップ2044−1でNo)、送信パケット情報を下限帯域制御機構へ送る(ステップ2044−3)。
カウンタ値が上限値に達している場合は(ステップ2044−1でYes)、他上限帯域制御機構が送信パケット情報を保持しているかを、状態テーブル20441を参照し確認する(ステップ2044−4)。ここで、送信パケットを保持していない他上限帯域制御機構が複数ある場合には(ステップ2044−5)、そのなかから送信パケット余力がある上限帯域制御機構を選択する(ステップ2044−6)。このときの選択のアルゴリズムとしては、例えば、次の3つの方法が考えられる。
(1)該当する上限帯域制御機構のなかから送信可能残カウント(送信余力)が最大の上限待機制御機構を選択する。(2)該当する上限帯域制御機構のなかからラウンドロビンで上限帯域制御機構を選択する。(3)該当する上限帯域制御機構のなかからランダムに上限帯域制御機構を選択する。
こうして選択された上限待機機構のパケット送信カウンタを更新し(ステップ2044−7)、自送信パケット情報を次段の下限帯域制御機構に送信する(ステップ2044−3)。
次に、上記(1)の方法、すなわち該当する上限帯域制御機構のなかから、送信余力である送信可能残カウントが最大の上限待機制御機構を選択する場合について、図17の状態テーブル20441の詳細(状態変化)を参照して、詳細に説明する。
図17は、図14に示した送信パケット制御において、上限帯域制御機構204bが送信上限値に達した状態における各上限帯域制御機構204a〜204cの状態テーブル20441のそれぞれの内容を示している。上限帯域制御機構204a〜204cの各状態テーブルは、全ての上限帯域制御機構について、「送信パケットの有無」、「送信可能残カウント」、「カウンタ値」及び「上限のレジスタ値」を有している。
上限帯域制御機構204bが送信上限値に達した状態では、上限帯域制御機構204bは、図14に示した送信パケット番号4bのカウンタ値300の送信パケットを保持していることになる。この状態で、上限帯域制御機構204bは、送信上限値に達しているために、パケットの送信はできない状態となっている。この場合、上限帯域制御機構204bは、他の上限待機制御機構の送信余力を確認し自送信パケット情報の送信を試みることになる。
先ず、上限帯域制御機構204bは、上限帯域制御機構204aの送信可能残カウンタ値880と上限帯域制御機構204cの送信可能残カウンタ値490とを比較し、残カウントが大きい上限帯域制御機構204aを選択することになる。上限待機制御機構204bは、自送信パケット情報のカウンタ値300を上限待機制御機構204aに送信し(ステップd)、上限帯域制御機構204aのカウンタを更新する(120+300=420)(ステップe)。これに同期して、上限帯域制御機構204aの送信可能残カウンタも更新される(1000−420=580)(ステップf)。
更に、上限待機機構204b及び204cの状態テーブル内の上限待機制御機構204aのカウンタ値、送信可能残カウント情報も同期してそれぞれ更新される(ステップh,i)。その後、上限帯域制御機構204bは、自送信パケット情報を下限帯域制御機構に送るのである。
次に、上限帯域制御機構204bは、後続の送信パケット番号6bのカウント値200の送信パケットを送信しようとする。この状態における上限帯域制御機構204a〜204cの各状態テーブルの内容の変化を、図18に示している。図17で説明したと同様の論理に従って、上限帯域制御機構204bは、上限帯域制御機構204aのカウンタを更新して自送信パケット情報を次段の下限帯域制御機構に送る。
そして、上限帯域制御機構204bは、後続の送信パケット番号7bのカウント200値の送信パケットを送信しようとする。この状態における上限帯域制御機構204a〜204cの各状態テーブルの内容の変化を、図19に示している。上記と同様の論理に従って、上限帯域制御機構204bは、上限帯域制御機構204cのカウンタを更新して自送信パケット情報を次段の下限帯域制御機構に送る。
最後に、上限帯域制御機構204bは後続の送信パケット番号8bのカウント値100の送信パケットを送信しようとする。この状態における上限帯域制御機構204a〜204cの各状態テーブルの内容の変化を、図20に示している。上記と同様の論理に従って、上限帯域制御機構204bは、上限帯域制御機構204aのカウンタを更新して自送信パケット情報を次段の下限帯域制御機構に送る。
こうすることにより、他上限帯域制御機構にパケット送信余力がある場合には、この余力の範囲内で、かつ自上限帯域制御機構の上限値レジスタ値を超える送信パケットが送信可能となり、全仮想NICの合計上限帯域を超えるパケット送信を抑止しつつ、かつ効率の良いパケット送信が実現可能となる。
なお、図16におけるステップ2044−6の(2)の方法、すなわち、「該当する上限帯域機構をラウンドロビンで選択する」方法では、単に該当する上限帯域機構を順次予め定めた順序に基づいて選択するものである。また、ステップ2044−6の(3)の方法、すなわち、「該当する上限帯域機構をランダムに選択する」方法は、文字通り、アトランダムに選択するものである。
上述したように、本発明においては、送信パケット情報キューを複数の仮想計算機に対応して設け、送信パケットキュー情報から送信パケット種類を解析し、送信パケットの優先度に応じて送信順番を並び替える優先度制御機能を設けている。更に、送信パケットキュー情報から実際の送信パケットサイズを監視し、単位時間当りのパケット送信の最大送信量を制限する上限帯域制御機能と、送信パケットキュー情報から実際の送信パケットサイズを監視し、単位時間当りのパケット送信の最低送信量を保証する下限帯域制御機能とを設けている。
かかる構成により、複数のVNIC間での送信/受信時のキューロック制御によるロック取得待ち時間がなくなる。そして、送信パケットの実データ長(パケット長)に基づいて送信すべきパケットの帯域制御を行うことができるので、VNIC毎のパケット送信帯域の保証が可能となる。また、送信パケットの優先度に応じて送信パケットの順序制御を行うので、リアルタイム性が必要なパケットを優先的に送信可能となる。
そして、複数のVNICが1つの物理NICを共有して利用する場合でも、ロック取得待ちによるパケット送信遅延を回避し、VNIC毎のデータ転送帯域を確保し、遅延の最小化が必要なパケットを優先的に送信することが可能となるものである。
なお、上記の各実施の形態における仮想計算機の数や各レジスタの値は、単に具体例を示すにすぎず、これら数値に限定されることはなく、種々の変形が可能であることは明らかである。
上記の各実施の形態における制御動作は、予めその制御動作手順をプログラムとして記録媒体に格納しておき、これをコンピュータにより読取らせて実行させるように構成できることは明白である。
本発明の原理を説明するための概略ブロック図である。 本発明の原理を説明するための概略動作フローである。 本発明の一実施の形態による物理NICの機能ブロック図である。 図3の優先度制御機構203(203a〜203c)の具体例を示す図である。 図3の上限帯域制御機構204(204a〜204c)の具体例を示す図である。 図3の下限帯域制御機構205の具体例を示す図である。 本発明の一実施の形態の送信パケット制御動作を説明するための図の一部である。 本発明の一実施の形態の送信パケット制御動作を説明するための図の一部である。 本発明の一実施の形態の受信パケット制御動作を説明するための図である。 本発明の他の実施の形態による物理NICの機能ブロック図である。 本発明の他の実施の形態の送信パケット制御動作を説明するための図の一部である。 本発明の更に他の実施の形態による上限帯域制御機構204の具体例を示す図である。 図12の上限帯域制御機構204の動作を示すフローである。 本発明の更に他の実施の形態の送信パケット制御動作を説明するための図である。 本発明の別の実施の形態による上限帯域制御機構204の具体例を示す図である。 図15の上限帯域制御機構204の動作を示すフローである。 図15のステップ2044−6において、上限帯域制御機構の選択方法(1)の場合の、状態テーブルの状態変化の一例を示す図である。 図15のステップ2044−6において、上限帯域制御機構の選択方法(1)の場合の、状態テーブルの状態変化の他の例を示す図である。 図15のステップ2044−6において、上限帯域制御機構の選択方法(1)の場合の、状態テーブルの状態変化の更に他の例を示す図である。 図15のステップ2044−6において、上限帯域制御機構の選択方法(1)の場合の、状態テーブルの状態変化の別の例を示す図である。 本発明に関連する仮想計算機システムの一例の構成を示すシステム図である。
符号の説明
1〜3 仮想計算機
4 バス
5,20 物理NIC
11,21,31,105,115,125 VNIC
40 ネットワーク
51 優先度制御部
52 上限帯域制御部
53 下限帯域制御部
200 PCIバスI/F
201a〜201c 送信キュー
202a〜202c 受信キュー
203,203a〜203c 優先度制御機構
204,204a〜204c 上限帯域制御機構
205 下限帯域制御機構
206 DMA制御部
207 送信バッファ
208 受信バッファ
209 ネットワークI/F
210a〜210c,2043 上限値レジスタ
211a〜211c,2053 下限値レジスタ
2031,2041,2051a〜2051c データレジスタ
2032 優先判定部
2033 高優先送信キュー
2034 低優先送信キュー
2035 選択判定部
2042,2052a〜2052c カウンタ
2044 比較部
2054 送信パケット選択部

Claims (28)

  1. 複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードを含む仮想計算機システムであって、
    前記物理ネットワークインターフェースカードは、
    前記VNICにそれぞれ対応して設けられ、対応するVNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、
    前記VNICにそれぞれ対応して設けられ、対応するVNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、
    前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記VNIC毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含むことを特徴とするシステム。
  2. 前記送信最大量は、前記VNIC毎に変更自在であることを特徴とする請求項1記載のシステム。
  3. 前記送信最低量は、前記VNIC毎に変更自在であることを特徴とする請求項1または2記載のシステム。
  4. 前記単位時間の経過後は、前記複数の仮想計算機のパケット送信をラウンドロビン方式で行うことを特徴とする請求項1〜3いずれか記載のシステム。
  5. 前記上限帯域制御手段の各々は、前記送信パケットの存在の有無を示す情報を生成する手段と、送信すべき送信パケットのデータ量が前記送信最大量以上存在する場合に、他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報に応じて、自送信パケットの送信制御をなす手段とを有することを特徴とする請求項1〜4いずれか記載のシステム。
  6. 前記送信制御をなす手段は、前記他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報が無を示すときに、自送信パケットの送信制御をなすことを特徴とする請求項5記載のシステム。
  7. 前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が存在する場合に、この無を示す上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項5記載のシステム。
  8. 前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段のうち現在の送信余力が最大の上限帯域制御手段を選択して、前記送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項7記載のシステム。
  9. 前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段を予め指定された順番に選択しつつこの選択した上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項7記載のシステム。
  10. 複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法であって、
    前記VNIC毎に、前記VNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御ステップと、
    前記VNIC毎に、前記VNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御ステップと、
    前記VNIC毎に、前記上限帯域制御ステップからの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御ステップとを含むことを特徴とする方法。
  11. 前記送信最大量は、前記VNIC毎に変更自在であることを特徴とする請求項10記載の方法。
  12. 前記送信最低量は、前記VNIC毎に変更自在であることを特徴とする請求項10または11記載の方法。
  13. 前記単位時間の経過後は、前記複数の仮想計算機のパケット送信をラウンドロビン方式で行うステップを含むことを特徴とする請求項10〜12いずれか記載の方法。
  14. 前記VNIC毎の上限帯域制御ステップの各々は、前記送信パケットの存在の有無を示す情報を生成するステップと、送信すべき送信パケットのデータ量が前記送信最大量以上存在する場合に、他の上限帯域制御ステップからの前記送信パケットの存在の有無を示す情報に応じて、自送信パケットの送信制御をなすステップとを有することを特徴とする請求項10〜13いずれか記載の方法。
  15. 前記送信制御をなすステップは、前記他の上限帯域制御ステップからの前記送信パケットの存在の有無を示す情報が無を示すときに、自送信パケットの送信制御をなすことを特徴とする請求項14記載の方法。
  16. 前記送信制御をなすステップは、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御のための手段が存在する場合に、この無を示す上限帯域制御のための手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項14記載の方法。
  17. 前記送信制御をなすステップは、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御のための手段が複数存在する場合に、これら複数の上限帯域制御のための手段のうち現在の送信余力が最大の手段を選択して、前記送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項16記載の方法。
  18. 前記送信制御をなすステップは、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御のための手段が複数存在する場合に、これら複数の上限帯域制御のための手段を予め指定された順番に選択しつつこの選択した手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項17記載の方法。
  19. 複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードであって、
    前記VNICにそれぞれ対応して設けられ、対応するVNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、
    前記VNICにそれぞれ対応して設けられ、対応するVNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、
    前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記VNIC毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含むことを特徴とするカード。
  20. 前記送信最大量は、前記VNIC毎に変更自在であることを特徴とする請求項19記載のカード。
  21. 前記送信最低量は、前記VNIC毎に変更自在であることを特徴とする請求項19または20記載のカード。
  22. 前記単位時間の経過後は、前記複数の仮想計算機のパケット送信をラウンドロビン方式で行うことを特徴とする請求項19〜21いずれか記載のシステム。
  23. 前記上限帯域制御手段の各々は、前記送信パケットの存在の有無を示す情報を生成する手段と、送信すべき送信パケットのデータ量が前記送信最大量以上存在する場合に、他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報に応じて、自送信パケットの送信制御をなす手段とを有することを特徴とする請求項19〜22いずれか記載のカード。
  24. 前記送信制御をなす手段は、前記他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報が無を示すときに、自送信パケットの送信制御をなすことを特徴とする請求項23記載のカード。
  25. 前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が存在する場合に、この無を示す上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項23記載のカード。
  26. 前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段のうち現在の送信余力が最大の上限帯域制御手段を選択して、前記送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項25記載のカード。
  27. 前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段を予め指定された順番に選択しつつこの選択した上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項25記載のカード。
  28. 複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード(VNIC)に共有され、前記VNICの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法をコンピュータに実行させるためのプログラムであって、
    前記VNIC毎に、前記VNICの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御処理と、
    前記VNIC毎に、前記VNICの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御処理と、
    前記VNIC毎に、前記上限帯域制御ステップからの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御処理とを含むことを特徴とするプログラム。
JP2008079458A 2008-03-26 2008-03-26 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード Expired - Fee Related JP5109748B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008079458A JP5109748B2 (ja) 2008-03-26 2008-03-26 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008079458A JP5109748B2 (ja) 2008-03-26 2008-03-26 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード

Publications (2)

Publication Number Publication Date
JP2009239374A true JP2009239374A (ja) 2009-10-15
JP5109748B2 JP5109748B2 (ja) 2012-12-26

Family

ID=41252857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008079458A Expired - Fee Related JP5109748B2 (ja) 2008-03-26 2008-03-26 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード

Country Status (1)

Country Link
JP (1) JP5109748B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023183A1 (ja) 2010-08-18 2012-02-23 富士通株式会社 計算機管理装置、計算機管理システム及び計算機システム
JP2013196604A (ja) * 2012-03-22 2013-09-30 Hitachi Ltd 計算機及び帯域制御方法
WO2014020716A1 (ja) * 2012-08-01 2014-02-06 富士通株式会社 情報処理装置、制御方法、制御プログラム、及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2015233335A (ja) * 2010-03-16 2015-12-24 マイクロソフト テクノロジー ライセンシング,エルエルシー バーチャルマシン通信トラフィックを成形すること
US10169102B2 (en) 2015-01-08 2019-01-01 Fujitsu Limited Load calculation method, load calculation program, and load calculation apparatus
US11467944B2 (en) 2018-05-07 2022-10-11 Mitsubishi Electric Corporation Information processing apparatus, tuning method, and computer readable medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08180007A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd 入出力処理システム
JP2001211207A (ja) * 2000-01-26 2001-08-03 Sony Corp パケット送信方法、パケット送信装置並びに帯域保証方法
JP2001251331A (ja) * 2000-03-06 2001-09-14 Fujitsu Ltd ダイナミック帯域を割り当てる加入者終端装置
JP2005347969A (ja) * 2004-06-01 2005-12-15 Matsushita Electric Ind Co Ltd パケット転送装置およびパケット転送方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08180007A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd 入出力処理システム
JP2001211207A (ja) * 2000-01-26 2001-08-03 Sony Corp パケット送信方法、パケット送信装置並びに帯域保証方法
JP2001251331A (ja) * 2000-03-06 2001-09-14 Fujitsu Ltd ダイナミック帯域を割り当てる加入者終端装置
JP2005347969A (ja) * 2004-06-01 2005-12-15 Matsushita Electric Ind Co Ltd パケット転送装置およびパケット転送方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015233335A (ja) * 2010-03-16 2015-12-24 マイクロソフト テクノロジー ライセンシング,エルエルシー バーチャルマシン通信トラフィックを成形すること
WO2012023183A1 (ja) 2010-08-18 2012-02-23 富士通株式会社 計算機管理装置、計算機管理システム及び計算機システム
JPWO2012023183A1 (ja) * 2010-08-18 2013-10-28 富士通株式会社 計算機管理装置、計算機管理システム及び計算機システム
JP5549733B2 (ja) * 2010-08-18 2014-07-16 富士通株式会社 計算機管理装置、計算機管理システム及び計算機システム
JP2013196604A (ja) * 2012-03-22 2013-09-30 Hitachi Ltd 計算機及び帯域制御方法
WO2014020716A1 (ja) * 2012-08-01 2014-02-06 富士通株式会社 情報処理装置、制御方法、制御プログラム、及び同プログラムを記録したコンピュータ読取可能な記録媒体
JPWO2014020716A1 (ja) * 2012-08-01 2016-07-11 富士通株式会社 情報処理装置、制御方法、及び制御プログラム
US10169102B2 (en) 2015-01-08 2019-01-01 Fujitsu Limited Load calculation method, load calculation program, and load calculation apparatus
US11467944B2 (en) 2018-05-07 2022-10-11 Mitsubishi Electric Corporation Information processing apparatus, tuning method, and computer readable medium

Also Published As

Publication number Publication date
JP5109748B2 (ja) 2012-12-26

Similar Documents

Publication Publication Date Title
KR101006260B1 (ko) 네트워크 프로토콜 처리의 오프로드에서 메모리 관리를 지원하기 위한 장치 및 방법
JP5109748B2 (ja) 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード
EP2422495B1 (en) Dynamic adjustment of connection setup request parameters
EP2240852B1 (en) Scalable sockets
KR20070042152A (ko) 통신 접속 수립 방법과 시스템, 데이터 전송 방법과시스템, 및 컴퓨터 판독 가능한 기록 매체
JP2007079789A (ja) 計算機システム及びイベント処理方法
US20140317220A1 (en) Device for efficient use of packet buffering and bandwidth resources at the network edge
US20140281390A1 (en) System and method for ordering packet transfers in a data processor
CN104904169A (zh) 调整线程优先级以改进点到点(p2p)器件之间的吞吐量
JPWO2009096029A1 (ja) パケット処理装置およびパケット処理プログラム
TWI296387B (en) Scheduling method for remote object procedure call and system thereof
JP2002077200A (ja) 管理局及び機器並びにネットワークシステム
CN112737970B (zh) 一种数据传输方法及相关设备
Dumazet Busy polling: Past, present, future
US10877800B2 (en) Method, apparatus and computer-readable medium for application scheduling
US8004991B1 (en) Method and system for processing network information
US11271897B2 (en) Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table
Zeng et al. Middlenet: A high-performance, lightweight, unified nfv and middlebox framework
JP5598714B2 (ja) 通信帯域制御装置
JPH1196108A (ja) 計算機システム及びバス制御装置
JP2004094931A (ja) ネットワークシステムおよびネットワークにおける通信方法
JP2015184960A (ja) 情報処理システム及び制御方法、並びにコンピュータ・プログラム
US20240333541A1 (en) Data transmission device on server, data transmission method and program on server
JP2006338409A (ja) 圧縮データ転送方式及び圧縮データ転送システム
WO2024013830A1 (ja) サーバ内データ転送装置、データ転送システム、サーバ内データ転送方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120820

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: 20120911

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: 20120924

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

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees