JP2016146077A - 計算機、通信制御方法および通信制御プログラム - Google Patents

計算機、通信制御方法および通信制御プログラム Download PDF

Info

Publication number
JP2016146077A
JP2016146077A JP2015022852A JP2015022852A JP2016146077A JP 2016146077 A JP2016146077 A JP 2016146077A JP 2015022852 A JP2015022852 A JP 2015022852A JP 2015022852 A JP2015022852 A JP 2015022852A JP 2016146077 A JP2016146077 A JP 2016146077A
Authority
JP
Japan
Prior art keywords
virtual
function
computer
physical function
distribution
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.)
Pending
Application number
JP2015022852A
Other languages
English (en)
Inventor
哲三 横山
Tetsuzo Yokoyama
哲三 横山
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 JP2015022852A priority Critical patent/JP2016146077A/ja
Publication of JP2016146077A publication Critical patent/JP2016146077A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 コストを増加させることなく、高速、かつ自由な帯域値での通信制御を実現する計算機等を提供する。【解決手段】 物理機能と、該物理機能により生成された仮想機能とを含むI/Oデバイスと、物理機能と、計算機のリソースを分割して生成された第1の仮想計算機との間で振分ルールにしたがってパケットを振り分ける振分手段と、仮想機能が計算機のリソースを分割して生成された第2の仮想計算機から受け取るパケットを物理機能に伝送するように、前記仮想機能と前記物理機能とを接続する伝送手段と、前記仮想機能に関する所定の条件が満たされると、前記伝送手段に対して前記仮想機能と前記物理機能とを接続することを指示すると共に、前記接続により前記振分手段が受け取る前記第2の仮想計算機から送出されたパケットを、前記物理機能に送出するように制御する振分制御手段とを備える。【選択図】 図3

Description

本発明は、複数の仮想マシンが動作するサーバにおける帯域制御(QoS(Quality of Service)制御)に関する。
現在、サーバの仮想化技術が広く利用されるようになっている。サーバの仮想化技術とは、CPU(Central Processing Unit)、メモリ、ストレージ等を仮想的に分割し、それぞれを利用して仮想的なコンピュータ(仮想マシン)を構成することで、サーバ機器に仮想マシンを導入する技術である。
また、I/O(Input/Output)仮想化技術も利用されている。I/O仮想化技術とは、物理I/Oカード、例えばネットワーク接続用のNIC(Network Interface Card)を、仮想的に分割することで、複数のマシン間で共有可能とする技術である。
図10は、仮想化技術によって実現された仮想マシンが導入された計算機10の構成を示すブロック図である。計算機10では、例えば、計算機10の動作を管理するホストOS(Operating System)20において、ゲストOS11aないし11dが動作すると仮定する。なお、計算機10の動作を管理するOSを「ホストOS」、計算機10で動作する仮想マシンの動作を管理するOSを「ゲストOS」と、それぞれ称する。
ホストOS35は、NIC40を介して外部システム(外部装置)との通信を行う。
NIC40は、SR−IOV(Single Root I/O Virtualization)に準拠する。SR−IOVに準拠するNIC40は、仮想I/Oデバイス(仮想機能(Virtual Function:以下、VFと称する))と、物理I/Oデバイス(物理機能(Physical Function:以下、PFと称する))とを備える。VFは、PFによって生成される。図10の例では、PF41によってVF44が生成されたと仮定する。NIC40は、さらにNICスイッチ47を備える。NICスイッチ47は、外部システムから送信されたパケットを、PF41、VF42またはVF44に振り分けたり、PF41、VF42またはVF44から受け取ったパケットを、外部システムに送信したりする。
ホストOS35で動作するゲストOS11a、11bは、ホストOS35上で動作する仮想スイッチ30にそれぞれ接続されると共に、仮想スイッチ30によりQoS制御(帯域制御)される。QoS制御とは、通信のサービス品質を保証するために通信に使用される帯域を制御することである。
仮想スイッチ30は、NIC40のPF41に接続され、ゲストOS11aおよび11bからのパケットを、それぞれ伝送路を介して取得すると、取得したパケットをPF41に送出する。
ホストOS35で動作するゲストOS11c、11dは、それぞれNIC40のVF42、44に接続される。SR−IOV機能を有するNIC40が使用される場合、それぞれのゲストOS11cおよび11dに対して、仮想I/OデバイスであるVF42および44が1対1で接続される。
ゲストOS11c、11dから送出されたパケットは、それぞれ接続されるVF42、44に送出される。
NIC40は、仮想スイッチ30またはゲストOS11c、11dから、PF41またはVF42、44において取得したパケットを、NICスイッチ47を介して外部システム(外部スイッチ等)に送信する。
ここで、SR−IOVとは、ハードウェアによるI/Oデバイス仮想化支援機構として、PCI(Peripheral Component Interconnect)規格の策定等を行なう業界団体により標準化された、PCIデバイス側で仮想化をサポートする機能である。SR−IOVでは、PCIExpressデバイスが複数の仮想I/Oデバイスを提供しており、仮想マシンにVFを占有で割り当てることによってPCIデバイスを仮想マシン間で共有することができる。
このSR−IOVを代表とするI/O仮想化技術により、ネットワーク通信を高速化することが可能となる。SR−IOVに準拠したNICが備えるVFを介して仮想マシンからのパケットを外部に送信する場合、NICの物理インタフェースが許容する最大スループットの範囲に収まるように、VFにて帯域制御を実施する必要がある。したがって、図10の構成では、VF42、44は、それぞれゲストOS11c、11dからの入力インタフェース43、45において、ゲストOS11c、11dからの通信の帯域制御を実施する。
一方、ゲストOS11a、11bからの通信は、仮想スイッチ30により帯域制御される。すなわち、仮想スイッチ30は、ゲストOS11aからの入力インタフェース(入力ポート)33およびゲストOS11bからの入力インタフェース34において、ゲストOS11aおよび11bからのパケットに関するQoS制御(帯域制御)を実施する。
また仮想スイッチ30は、NIC40への出力インタフェース(出力ポート)32において、ゲストOS11aおよび11bからのスループットの合計値に対してQoS制御(帯域制御)を実施する。
http://www.pcisig.com/specifications/iov/single_root/[平成27年1月28日検索]
上述のような複数のゲストOSそれぞれに対して帯域制御を行う計算機において、以下の課題がある。
すなわち、仮想スイッチ30により帯域制御を行う場合、仮想スイッチ30は、入出力インタフェースにおいて、柔軟に、すなわち指定される(所望の)帯域値での帯域制御が可能である。一方で、仮想スイッチ30は、トラフィックが増加した場合に高スループットを実現できない虞がある。
その理由は、仮想スイッチ30による帯域制御はソフトウェア制御であるので、ゲストOS11aおよび11bからのトラフィックが増大した場合に、ソフトウェア負荷増大、すなわちCPUの処理負荷が増大し、ソフトウェアにより制御しきれなくなる虞があるためである。
一方、VF42、44により帯域制御を行う場合、計算機10は、高いスループットを実現可能であるが、帯域制御が可能な帯域値に制約がある。
その理由は、SR−IOV対応のNIC40は、VF毎に帯域値の指定は可能であるが、一般に、VFに指定可能な帯域値は粗く、例えば、1Gbps、2Gbps・・・などの離散値となるためである。この場合、例えば、1.5Gbpsといった帯域値での帯域制御が望まれたとしても、1Gbpsという帯域値での帯域制御しかできない。制約なく(自由に)指定される帯域値での通信制御が可能なNICは、構造が複雑であるため高価である。よって、コストを抑えた市販のNICでは、このように自由に指定される帯域値での通信制御を実施することは困難である。
本願発明は、上記課題を鑑みてなされたものであり、コストを増加させることなく、高速、かつ自由な帯域値での帯域制御を実現可能な計算機等を提供することを主要な目的とする。
本発明の第1の計算機は、物理機能と、該物理機能により生成された仮想機能とを含むI/Oデバイスを備えた計算機であって、前記物理機能と、前記計算機のリソースを分割して生成された第1の仮想計算機との間で振分ルールにしたがってパケットを振り分ける振分手段と、前記仮想機能が前記計算機のリソースを分割して生成された第2の仮想計算機から受け取るパケットを前記物理機能に伝送するように、前記仮想機能と前記物理機能とを接続する伝送手段と、前記仮想機能に関する所定の条件が満たされると、前記伝送手段に対して前記仮想機能と前記物理機能とを接続することを指示すると共に、前記接続により前記振分手段が受け取る前記第2の仮想計算機から送出されたパケットを、前記物理機能に送出するように制御する振分制御手段とを備える。
本発明の第1の通信制御方法は、物理機能と、該物理機能により生成された仮想機能とを含むI/Oデバイスを含む計算機において、前記物理機能と、前記計算機のリソースを分割して生成された第1の仮想計算機との間で振分ルールにしたがって振分手段がパケットを振り分け、前記仮想機能が前記計算機のリソースを分割して生成された第2の仮想計算機から受け取るパケットを前記物理機能に伝送するように、伝送手段が前記仮想機能と前記物理機能とを接続し、前記仮想機能に関する所定の条件が満たされると、前記伝送手段に対して前記仮想機能と前記物理機能とを接続することを指示すると共に、前記接続により前記振分手段が受け取る前記第2の仮想計算機から送出されたパケットを、前記物理機能に送出するように制御する。
なお同目的は、上記の各構成を有する通信制御方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本願発明によれば、計算機において、コストを増加させることなく、高速、かつ自由な帯域値での帯域制御を実現することができるという効果が得られる。
本発明の第1の実施形態に係る計算機を実現するハードウエア構成を例示する図である。 本発明の第1の実施形態に係る計算機の具体的な構成を示す図である。 本発明の第1の実施形態に係る計算機の一部のさらなる具体的な構成を示す図である。 本発明の第1の実施形態に係る計算機の指定帯域テーブルの一例を示す図である。 本発明の第1の実施形態に係る計算機のNICの帯域情報の一例を示す図である。 本発明の第1の実施形態に係る計算機における帯域値の設定動作について説明するフローチャートである。 本発明の第1の実施形態に係る計算機の振分ルールの一例を示す図である。 本発明の第1の実施形態に係る計算機の仮想スイッチの出力インタフェースの構成(a)および(b)について説明する図である。 本発明の第2の実施形態に係る計算機の構成を示す図である。 本発明と関連する計算機の構成を示す図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。各実施形態で参照する図面において、同一要素には同一符号を付し、重複する説明を省略する場合がある。
第1の実施形態
本発明の第1の実施形態について図面を参照して説明する。
図1は、本発明の第1の実施形態に係る計算機100を実現するハードウエア構成を例示する図である。図1に示すように、計算機100は、複数のCPU13−1乃至CPU13−n、コントローラ14、メインメモリ15、I/OデバイスであるNIC12、ROM(Read Only Memory)19および記憶媒体20を備える。CPU13−1乃至CPU13−n(以降、これらを総称してCPU13と称する)は、インターコネクト16を介して、コントローラ14、メインメモリ15、ROM19、記憶媒体20に接続される。コントローラ14には、NIC12が接続される。
CPU13は、インターコネクト16を介してメインメモリ15にアクセスする。またCPU13は、コントローラ14を介してNIC12にアクセスする。またNIC12は、コントローラ14を介してメインメモリ15にアクセスする。
CPU13は、ROM19または記憶媒体20に記憶された各種コンピュータ・プログラムを、メインメモリ15に読み出して実行することにより、計算機100の全体的な動作を司る。すなわち、以下の各実施形態において、CPU13は、ROM19を適宜参照しながら、計算機100が備える各機能を実行するコンピュータ・プログラムを実行する。
CPU13は、メインメモリ15にハイパバイザ18をロードし、実行することで、計算機100の計算機資源(リソース)を複数の仮想マシン17a乃至17bに割り当てる。仮想マシン17a乃至17dでは、それぞれゲストOSが動作する。
NIC12は、SR−IOVに準拠し、複数の送受信キューを有するマルチキューのI/Oデバイスで構成される。NIC12は、SR−IOVに準拠する物理機能(PF)210と、仮想機能(VF)220、230とを備える。
図2は、図1に例示したハードウエア構成により実現される第1の実施形態に係る計算機100の具体的な構成を示す図である。計算機100において、CPU13は、コンピュータ・プログラムを実行することにより、汎用或いは専用のオペレーションシステムであるホストOS11と、ホストOS11上で動作するゲストOS111a乃至111d、振分制御部120および仮想スイッチ130が実行される。
ホストOS11は、NIC12を介して外部システムとのI/O(入出力)を行う。
ゲストOSは、ホストOS11が管理する資源(プロセッサ、ディスク、メモリ等)が許す限り、ゲストOS111a乃至111dのように、ホストOS11に複数存在することが可能である。またゲストOSが複数存在する場合、それぞれのゲストOSの種類(Linux(登録商標)やWindows(登録商標)等)は同一である必要はないし、また全て同一であっても構わない。
NIC12は、PF210と、VF220、230とを備える。PF210と、VF220、230は、それぞれNICスイッチ260に接続されることで、NIC12を共有する。NICスイッチ260は、PF210と、VF220、230、および外部システムとの間でパケットの振分および伝送を行う。
VF220、230は、仮想的なネットワークインタフェースカードとして動作し、計算機100では、それぞれゲストOS111c、111dと接続して、NICスイッチ260を介して外部システムと通信する。そのため、VF220、230は、ゲストOS111c、111dからは、直接接続するネットワークインタフェースカードとして見えている。計算機100では、VF220、230は、それぞれゲストOS111c、111dと1対1で接続するので、VFは、ゲストOSと同数以上存在する。但し、VFの最大数はNIC12の諸元に依存するので、使用できるVFの数は無限ではなく限界値を有する。VF220、230は、NIC12が許容する帯域内で通信を制御する。
ゲストOS111c、111dからの通信の帯域制御は、それぞれVF220、230の入力インタフェース225、235にて行われる。なお、本実施形態および以下の実施形態では、計算機100から外部への送信方向の帯域制御を計算機100にて行い、外部からの受信方向の帯域制御は、外部接続機器により実施されていることを前提とする。
ゲストOS111a、111bからの通信の帯域制御については、仮想スイッチ130が実施する。
ホストOS11で動作する構成要素の概要について説明する。
仮想スイッチ130は、ゲストOS111a、111bとの入出力インタフェース131、132、PF210との入出力インタフェース134、振分部136および振分ルール137を備える。入出力インタフェース131、132および入出力インタフェース134は、それぞれ受け取ったパケットを帯域制御しながら、接続される相手に送出する。振分部136は、受け取ったパケットが宛先に送出されるように、振分ルール137に基づいて、その宛先に接続される入出力インタフェースにパケットを振り分ける。振分ルール137は、パケットに付与された情報(送信元MAC(Media Access Control)アドレス等)に基づいて、パケットをいずれの入出力インタフェースを介して送出するかを規定するルールを含む。
仮想スイッチ130は、NIC12のPF210に接続される。仮想スイッチ130は、ゲストOS111a、111bから伝送されたパケットを、振分部136により振分ルール137を参照しながら、振り分けてPF210に伝送する。
振分制御部120は、VF220の入力インタフェース225へのパケットを他へ振り分ける制御を行う(詳細は後述する)。なお、以下の説明では、VF220の入力インタフェース225へのパケットの振分について説明するが、VF230の入力インタフェース235へのパケットの振分についても同様の動作で実現できる。
NIC12が備える構成要素の概要について説明する。
PF210は、入出力インタフェース215を介して仮想スイッチ130から受け取ったパケットを、入出力インタフェース217を介してNICスイッチ260に送出する。VF220、230は、それぞれゲストOS111c、111dから、入力インタフェース225、235を介して受け取ったパケットを、出力インタフェース227、237を介してNICスイッチ260に送出する。NICスイッチ260は、受け取ったパケットを外部システムに転送する。
振分回路240は、振分制御部120の指示に基づいて、VF220の入力インタフェース225とPF217の入出力インタフェース217とを接続することにより、VF220の入力インタフェース225が受け取ったパケットを、PF210の入出力インタフェース217に伝送する。
記憶領域250は、VF220、230の入力インタフェース225、235に指定可能な帯域値を含む帯域情報251を格納する。
計算機100は、SR−IOV技術の一機能であるVF220、VF230およびPF210と、仮想スイッチ130とを組み合わせることで、自由な帯域値での帯域制御を実施することができる。
以下、計算機100の構成要素の詳細について説明する。
図3は、図2に示した計算機100の構成要素における、振分制御部120、仮想スイッチ130、PF210、VF220および振分回路240の構成を詳細に説明する図である。図3において、二点鎖線矢印は、パケットが伝送される方向を示す。
各構成要素について、具体的に説明する。
振分制御部120は、振分設定部121、指定帯域取得部122および指定帯域テーブル123を備える。
指定帯域取得部122は、ユーザから、VF220、230の入力インタフェース225、235に指定したい帯域値を取得すると共に、取得した帯域値に関するエントリを指定帯域テーブル123に追加する。
図4は、指定帯域テーブル123の一例を示す図である。図4に示すように、指定帯域テーブル123は、インタフェース識別情報と、指定帯域値とを含む。図4では、NIC12が有するVF220、230の入力インタフェース225、235に対して、ユーザから指定された帯域値が格納された指定帯域テーブル123を示す。例えば、図4では、VF220の入力インタフェース225に175kbpsの帯域値が指定され、VF230の入力インタフェース235に1.5Gbpsの帯域値が指定されていることを示す。
振分設定部121は、指定帯域テーブル123とNIC12の帯域情報251とを参照しながら、VF220、230に対して、帯域値の設定を行う。
図5は、NIC12の帯域情報251の一例を示す図である。図5に示すように、帯域情報251には、NIC12にて指定可能な帯域値が、帯域値にて昇順にソートされた状態で記憶されている。NIC12にて指定可能な帯域値はNIC12の諸元に依存するため、読み出し専用データとなっており、変更されることはないと仮定する。図5に示す例では、NIC12において、最小1kbpsから最大10Gbpsまでの帯域値が指定可能であることを示す。ユーザからは、この範囲で帯域値が指定されることを前提とする。
図3に示すように、VF220は、入力インタフェース225に、キュー226と、キュー226を管理するキュー管理部228とを備える。入力インタフェース225は、ゲストOS111cから受け取ったパケットを、キュー226に格納する。キュー管理部228は、振分制御部120の振分設定部121の指示により、キュー226に帯域値を設定すると共に、その帯域値を超えないようにパケットが送出されるように制御する。なお、このような、キューおよびキューによる帯域の制御は、他の入出力インタフェースでも行われるが、本実施形態に関わる制御以外は、その説明を省略する。
振分回路240は、VF220の入力インタフェース225とPF210の入力インタフェース217bとを接続する伝送路を含む接続回路である。振分回路240は、スイッチ機能を有しており、振分制御部120の振分設定部121からの指示に応じて、VF220の入力インタフェース225とPF210の入力インタフェース217bとを接続、または接続解除する。これにより、キュー226から溢れたパケットが、PF210の入力インタフェース217bに伝送される(詳細は後述する)。
ここで、VF220の入力インタフェース225にユーザから自由な帯域値を指定されると、入力インタフェース225に指定可能な帯域値よりも、ユーザから指定された帯域値が大きい場合、VF220は、指定された帯域値での通信を実現できない。ここで、「入力インタフェース225に指定可能な帯域値」とは、ユーザから指定された帯域値を超えない最大の指定可能帯域値を意味する。このとき、ゲストOS111cから送られたパケットは、キュー226から溢れて破棄されてしまう虞がある。
そこで、本実施形態の計算機100では、上記のようにキュー226から溢れたパケットを、PF210に振り分けることにより、ユーザから指定された帯域値での帯域制御を実現する。
まず、計算機100における通常時のPF210と仮想スイッチ130の動作について説明する。
例えばゲストOS111aを宛先とするパケットが外部システムから計算機100に伝送されたと仮定する。この場合、NICスイッチ260は、例えばそのパケットの宛先MACアドレスに基づいて、ゲストOS111aが接続している仮想スイッチ130に接続されるPF210に、パケットを振り分ける。PF210は、NICスイッチ260からの入力インタフェース217bにおいてパケットを受け取り、仮想スイッチ130に接続される出力インタフェース215bからそのパケットを仮想スイッチ130に送る。
仮想スイッチ130は、受け取ったパケットを、振分部136において振分ルール137を参照しながら、ゲストOS111aに接続される入出力インタフェース131を介してゲストOS111aに送る。
一方、ゲストOS111aから外部システムにパケットを伝送する際、仮想スイッチ130は、入出力インタフェース131を介してパケットを受け取る。仮想スイッチ130の振分部136は、そのパケットの宛先MACアドレスから、外部システム宛てのパケットであることが分かると、出力インタフェース134aを介してPF210に送る。
PF210は、入力インタフェース215aを介して上記パケットを受け取ると、出力インタフェース217aからそのパケットをNICスイッチ260に送出する。NICスイッチ260は、宛先に向けてパケットを送信する。各インタフェースは、それぞれキューを備え、キューに設定された帯域値にて帯域制御を実施する。
次に、ゲストOS111cから外部システムに宛ててパケットを伝送する場合の計算機100の動作を説明する。すなわち、ゲストOS111cは、そのパケットをVF220に送る。VF220は、取得したパケットを入力インタフェース225のキュー226に格納し、キュー226に設定された帯域値にて通信を制御しながら、出力インタフェース227を介してパケットをNICスイッチ260に送る。NICスイッチ260は、パケットを外部スイッチに送る。
図6は、本実施形態に係る計算機100における帯域値の設定動作について説明するフローチャートである。図6を参照して、計算機100の動作について説明する。ユーザは、計算機100に対して、VF220の帯域値として、例えば「175kbps」を指定したと仮定する。振分制御部120は、指定帯域取得部122において、指定された帯域値を取得する(S201)と共に、図4に示すように、指定帯域テーブル123に、指定されたエントリ(インタフェース識別情報および指定帯域値)を追加する(S202)。
続いて、振分設定部121は、指定帯域取得部122が取得した帯域値を元に、その帯域値を超えない最大の指定可能帯域値を、帯域情報251から読み出す(S203)。ここでは、振分設定部121は、「175kbps」を超えない最大の指定可能帯域値として、「100kbps」を読み出す。振分設定部121は、読み出した指定可能帯域値をキュー管理部228に通知する。キュー管理部228は、通知された帯域値にて通信が制御されるように、100kbpsをキュー226に設定する。この設定により、入力インタフェース225では、100kbpsの帯域にて通信制御が行われる。このとき、振分設定部121は、キュー226から溢れたパケットが他の伝送路に伝送されるように設定する。
すなわち、振分設定部121は、上記帯域情報251から読み出した指定可能帯域値と、ユーザから指定された帯域値との差分を算出する(S204)。ここでは、175kbps−100kbps=75kbpsが算出される。差分がゼロである場合(S205においてYes)、入力インタフェース225では指定された帯域値での通信の制御が可能であるので、振分設定部121は、帯域値の設定動作を終了する。
差分がゼロでない場合(S205においてNo)、振分設定部121は、振分回路240に対して接続オンを指示する(S206)。振分回路240は、上記指示に応じて、VF220の入力インタフェース225と、PF210の入力インタフェース217bとを接続する。例えば、振分回路240は、入力インタフェース225のアドレスと入力インタフェース217bのアドレスを関連付けることにより、両者を接続してもよい。この接続により、上記のように入力インタフェース225にてキュー226から溢れたパケットが、PF210の入力インタフェース217bに伝送される。
なお、NIC12の各インタフェースに指定される帯域値の合計は、NIC12が許容する最大帯域値を超えないので、入力インタフェース217bにおいてパケットが溢れることはないことを前提とする。
そして、入力インタフェース217bに入力されたパケットは、出力インタフェース215bを介して、仮想スイッチ130に伝送される。仮想スイッチ130は、上記パケットを、入力インタフェース134bにて受け取る。
振分設定部121は、仮想スイッチ130が受け取ったパケットが適切に振り分けられるように、仮想スイッチ130に対して振分ルール137のエントリを追加する(S207)。すなわち、振分設定部121は、仮想スイッチ130の振分ルール137に、VF220から伝送されたパケットを出力インタフェース134aに振り分けるという振分ルールのエントリを追加する。
図7は、振分設定部121が振分ルール137に追加するエントリの例を示す図である。図7に示すように、振分ルール137は、例えば、入力パケット情報と出力インタフェース識別情報とを含む。入力パケット情報は、送信元MACアドレスおよび入力インタフェース識別情報を含む。
図7の例では、入力インタフェース134bが取得したパケットの送信元MACアドレスが、仮想スイッチ130に接続されないゲストOS(ここではゲストOS111c)を示すアドレスである場合、そのパケットを出力インタフェース134aに伝送する振分ルールを示す。あるいは、振分設定部121は、入力インタフェース134bが取得したパケットの宛先が外部システムを示すアドレスである場合、そのパケットを出力インタフェース134aに伝送する振分ルールを生成してもよい。
振分設定部121は、上記のように振分ルール137を追加すると共に、仮想スイッチ130の出力インタフェース134aにキューの設定を行う(S208)。図8は、出力インタフェース134aにおけるキューについて説明する図である。図8(a)は、出力インタフェース134aの通常時の構成を示す。図8(b)は、振分設定部121によりキューを設定された出力インタフェース134aの構成を示す。
通常時、出力インタフェース134aは、キュー管理部135およびキュー134a−1を備える。振分設定部121は、上記S208において、VF220から伝送されたパケットを格納するキュー134a−2を設定する。ここでは、振分設定部121は、上記S204において算出された差分(75kbps)の帯域値を超えないように通信を制御するキュー134a−2を設定する。キュー管理部135は、キュー134a−2に対して75kbpsの帯域値を超えないように制御する。これにより、VF220から振分回路240を介して振り分けられたパケットを、キュー134a−2に格納することにより、S204において算出された差分(75kbps)を上限として、出力インタフェース134aからPF210に伝送される。
PF210は、伝送されたパケットを、入力インタフェース215aにおいて受け取り、出力インタフェース217aからNICスイッチ260に伝送する。NICスイッチ260は、宛先に向けてパケットを伝送する。以上の動作により、ゲストOS111cからVF220に伝送されたパケットは、正常に、宛先に向けて伝送される。
以上のように、本第1の実施形態によれば、計算機100のNIC12は、VF220の入力インタフェース225とPF210の入力インタフェース217bとを接続する振分回路240を備える。また、振分設定部121は、仮想スイッチ130が自身に接続されないゲストOS111cからのパケットを受けると、そのパケットをPF210に伝送するように振り分ける振分ルールを生成する。
この構成を採用することにより、本第1の実施形態によれば、一般に、指定可能な帯域値が離散値であるVFに対して、ユーザから指定された帯域値が、VFに指定可能な帯域値を超えた分の通信を、他へ振り分ける。よって、ユーザから指定された自由な帯域値での帯域制御が可能になるという効果が得られる。また、上記構成により、構造が複雑で高価なNICは不要であるので、コストを抑えることができるという効果が得られる。また、NICにより帯域制御を実施するので、ソフトウエア負荷増大によるスループット低下を回避し、高速な通信を実現できるという効果が得られる。
第2の実施形態
図9は、本発明の第2の実施形態に係る計算機500の構成を示す図である。図9に示すように、計算機500は、I/Oデバイス510、振分部520、伝送部530および振分制御部540を備える。
I/Oデバイス510は、物理機能と、該物理機能により生成された仮想機能とを含む。振分部520は、物理機能と、計算機のリソースを分割して生成された第1の仮想計算機との間で振分ルールにしたがってパケットを振り分ける。
伝送部530は、仮想機能が計算機のリソースを分割して生成された第2の仮想計算機から受け取るパケットを物理機能に伝送するように、仮想機能と物理機能とを接続する。
振分制御部540は、仮想機能に関する所定の条件が満たされると、伝送部530に対して仮想機能と物理機能とを接続することを指示すると共に、接続により振分部520が受け取る第2の仮想計算機から送出されたパケットを、物理機能に送出するように制御する。
振分部520は、第1の実施形態における仮想スイッチ130に相当し、伝送部530は、同じく振分回路240に相当する。
上記構成を採用することにより、本第2の実施形態によれば、一般に、指定可能な帯域値が離散値である仮想機能に対して、ユーザから指定された帯域値が、指定可能な帯域値を超えた分の通信を、他へ振り分けることができる。よって、計算機500において自由な帯域値での帯域制御を、コストを増加させることなく実現可能であるという効果が得られる。
なお、各実施形態を例に説明した本発明は、計算機100に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、図1に示したCPU13がメインメモリ15に読み出して実行することによって達成される。
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ(一時記憶媒体)またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
本発明は、例えば、仮想マシンが動作する仮想化環境と、仮想マシンと外部装置との間のI/Oを行うI/Oデバイスとを備えた計算機に適用できる。
11 ホストOS
12 NIC
13 CPU
14 コントローラ
15 メインメモリ
16 インターコネクト
17a乃至17d 仮想マシン
18 ハイパバイザ
19 ROM
20 記憶媒体
100 計算機
111a乃至111d ゲストOS
120 振分制御部
130 仮想スイッチ
131、132、134、215、217 入出力インタフェース
135、228 キュー管理部
136 振分部
137 振分ルール
210 PF
220、230 VF
225、235、217b、134b、215a 入力インタフェース
134a−1、134a−2、226 キュー
240 振分回路
250 記憶領域
251 帯域情報
260 NICスイッチ

Claims (9)

  1. 物理機能と、該物理機能により生成された仮想機能とを含むI/Oデバイスを備えた計算機であって、
    前記物理機能と、前記計算機のリソースを分割して生成された第1の仮想計算機との間で振分ルールにしたがってパケットを振り分ける振分手段と、
    前記仮想機能が前記計算機のリソースを分割して生成された第2の仮想計算機から受け取るパケットを前記物理機能に伝送するように、前記仮想機能と前記物理機能とを接続する伝送手段と、
    前記仮想機能に関する所定の条件が満たされると、前記伝送手段に対して前記仮想機能と前記物理機能とを接続することを指示すると共に、前記接続により前記振分手段が受け取る前記第2の仮想計算機から送出されたパケットを、前記物理機能に送出するように制御する振分制御手段と
    を備えた計算機。
  2. 前記振分制御手段は、前記振分手段における、前記物理機能にパケットを送出する出力インタフェースに、前記接続により前記振分手段が受け取る前記第2の仮想計算機から送出されたパケットを格納するキューを設定する
    請求項1記載の計算機。
  3. 前記振分制御手段は、前記仮想機能における、前記第2の仮想計算機からパケットを受け取る入力インタフェースに指定された帯域値が、当該仮想機能に指定可能な帯域値を超えたとき、前記所定の条件が満たされたとして、前記伝送手段に前記仮想機能と前記物理機能とを接続することを指示する
    請求項1または請求項2記載の計算機。
  4. 前記振分制御手段は、前記振分手段が前記物理機能から受け取るパケットのうち、送信元アドレスが前記第2の仮想計算機を示すパケットを、前記振分手段における、前記物理機能にパケットを送出する出力インタフェースに振り分ける前記振分ルールを生成する
    請求項1ないし請求項3のいずれか1項記載の計算機。
  5. 物理機能と、該物理機能により生成された仮想機能とを含むI/Oデバイスを備えた計算機において、
    前記物理機能と、前記計算機のリソースを分割して生成された第1の仮想計算機との間で振分ルールにしたがって振分手段がパケットを振り分け、
    前記仮想機能が前記計算機のリソースを分割して生成された第2の仮想計算機から受け取るパケットを前記物理機能に伝送するように、伝送手段が前記仮想機能と前記物理機能とを接続し、
    前記仮想機能に関する所定の条件が満たされると、前記伝送手段に対して前記仮想機能と前記物理機能とを接続することを指示すると共に、前記接続により前記振分手段が受け取る前記第2の仮想計算機から送出されたパケットを、前記物理機能に送出するように制御する
    通信制御方法。
  6. 前記振分手段における、前記物理機能にパケットを送出する出力インタフェースに、前記接続により前記振分手段が受け取る前記第2の仮想計算機から送出されたパケットを格納するキューを設定する
    請求項5記載の通信制御方法。
  7. 前記仮想機能における、前記第2の仮想計算機からパケットを受け取る入力インタフェースに指定された帯域値が、当該仮想機能に指定可能な帯域値を超えたとき、前記所定の条件が満たされたとして、前記伝送手段に前記仮想機能と前記物理機能とを接続することを指示する
    請求項5または請求項6記載の通信制御方法。
  8. 前記振分手段が前記物理機能から受け取るパケットのうち、送信元アドレスが前記第2の仮想計算機を示すパケットを、前記振分手段における、前記物理機能にパケットを送出する出力インタフェースに振り分ける前記振分ルールを生成する
    請求項5ないし請求項7のいずれか1項記載の通信制御方法。
  9. 物理機能と、該物理機能により生成された仮想機能とを含むI/Oデバイスを備えた計算機に、
    前記物理機能と、前記計算機のリソースを分割して生成された第1の仮想計算機との間で振分ルールにしたがってパケットを振り分ける処理と、
    前記仮想機能が前記計算機のリソースを分割して生成された第2の仮想計算機から受け取るパケットを前記物理機能に伝送するように、前記仮想機能と前記物理機能とを接続する処理と、
    前記仮想機能に関する所定の条件が満たされると、前記仮想機能と前記物理機能とを接続することを指示すると共に、前記接続により、前記パケットを振り分ける処理において受け取る前記第2の仮想計算機から送出されたパケットを、前記物理機能に送出するように制御する処理と
    を実行させる通信制御プログラム。
JP2015022852A 2015-02-09 2015-02-09 計算機、通信制御方法および通信制御プログラム Pending JP2016146077A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015022852A JP2016146077A (ja) 2015-02-09 2015-02-09 計算機、通信制御方法および通信制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015022852A JP2016146077A (ja) 2015-02-09 2015-02-09 計算機、通信制御方法および通信制御プログラム

Publications (1)

Publication Number Publication Date
JP2016146077A true JP2016146077A (ja) 2016-08-12

Family

ID=56686294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015022852A Pending JP2016146077A (ja) 2015-02-09 2015-02-09 計算機、通信制御方法および通信制御プログラム

Country Status (1)

Country Link
JP (1) JP2016146077A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977251A (zh) * 2016-10-21 2018-05-01 超威半导体(上海)有限公司 对在虚拟化系统中的共享寄存器的排他访问
JP2018133758A (ja) * 2017-02-17 2018-08-23 日本電信電話株式会社 仮想マシン間通信システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977251A (zh) * 2016-10-21 2018-05-01 超威半导体(上海)有限公司 对在虚拟化系统中的共享寄存器的排他访问
CN107977251B (zh) * 2016-10-21 2023-10-27 超威半导体(上海)有限公司 对在虚拟化系统中的共享寄存器的排他访问
JP2018133758A (ja) * 2017-02-17 2018-08-23 日本電信電話株式会社 仮想マシン間通信システム

Similar Documents

Publication Publication Date Title
US10581729B2 (en) Network interface card, computing device, and data packet processing method
CN108337188B (zh) 通信量和负载感知动态队列管理
EP3340547B1 (en) Network interface card and data packet processing method
US9459904B2 (en) NUMA I/O aware network queue assignments
US9692706B2 (en) Virtual enhanced transmission selection (VETS) for lossless ethernet
US9548890B2 (en) Flexible remote direct memory access resource configuration in a network environment
EP2843891A1 (en) Traffic and load aware dynamic queue management
CN111371694A (zh) 一种分流方法、装置和系统、处理设备和存储介质
JP2016146077A (ja) 計算機、通信制御方法および通信制御プログラム
CN109714269B (zh) 一种数据处理方法及网络设备
CN112714073A (zh) 基于sr-iov网卡的报文分流方法、系统及存储介质
WO2021044593A1 (ja) エッジ装置、エッジ方法、エッジプログラム、管理装置、管理方法、管理プログラム、分散処理システム、及び、分散処理方法
JP6829156B2 (ja) ネットワーク負荷分散装置および方法
JP6965838B2 (ja) ネットワーク負荷分散装置および方法
KR20150113783A (ko) 테넌트 기반의 동적 프로세서 할당 장치 및 방법
KR101634672B1 (ko) 네트워크 인터페이스 가상화 장치, 방법 및 이를 실행하기 위한 컴퓨터 프로그램
JP2016058942A (ja) 通信制御装置、通信制御方法および通信制御プログラム
JP2020022146A (ja) 通信システム及び通信方法
KR20170044339A (ko) 무손실 부하분산 가속 카드 및 부하 분산 방법