JP2016058942A - 通信制御装置、通信制御方法および通信制御プログラム - Google Patents

通信制御装置、通信制御方法および通信制御プログラム Download PDF

Info

Publication number
JP2016058942A
JP2016058942A JP2014185040A JP2014185040A JP2016058942A JP 2016058942 A JP2016058942 A JP 2016058942A JP 2014185040 A JP2014185040 A JP 2014185040A JP 2014185040 A JP2014185040 A JP 2014185040A JP 2016058942 A JP2016058942 A JP 2016058942A
Authority
JP
Japan
Prior art keywords
virtual
communication
bandwidth
interface
guest
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
JP2014185040A
Other languages
English (en)
Inventor
哲三 横山
Tetsuzo Yokoyama
哲三 横山
秀一 狩野
Shuichi Kano
秀一 狩野
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 JP2014185040A priority Critical patent/JP2016058942A/ja
Publication of JP2016058942A publication Critical patent/JP2016058942A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 本願発明によれば、コストを増加させることなく、ソフトウェア処理負荷の増加に起因する通信性能の低下を防ぐことにより、要求される通信性能を実現することができる通信制御装置等を提供する。【解決手段】 通信制御装置は、通信品質に関してグループ化された仮想マシンのそれぞれからの通信路を、当該グループ毎にそれぞれ収容する複数の仮想スイッチと、仮想スイッチにそれぞれ接続され、自インタフェースが許容する帯域内で動作する複数の仮想インタフェースを含むネットワークインタフェースと、仮想スイッチにおける、少なくとも仮想マシンとの接続インタフェースおよび仮想インタフェースとの接続インタフェースのいずれかに対して、グループ毎に通信品質が満たされるように設定を行う管理手段とを備える。【選択図】 図1

Description

本発明は、複数の仮想マシンが動作するサーバにおける帯域制御(QoS(Quality of Service)制御)に関する。
サーバの仮想化技術が広く利用されるようになってきている。サーバの仮想化技術は、仮想化技術によって実現された論理的なコンピュータ(仮想マシン)を用いて、物理的なサーバ機器(物理サーバ)に仮想マシンで実現されたサーバを導入する技術である。
近年、IP(Internet Protocol)電話やテレビ会議システム、基幹業務システムのようなリアルタイム性が要求されるアプリケーションが利用される機会が増え、また、それに伴いネットワークを介して送受信されるトラフィックが増大している。このようなリアルタイム性が要求されるアプリケーションが正しく動作するためには、パケット遅延やパケットロスを最小限に抑える必要がある。したがって、このようなパケット遅延やパケットロスを最小限に抑えるために必要な帯域を確保する帯域制御(QoS制御)技術が重要になってきている。
図13は、仮想化技術によって実現された仮想マシンが導入された物理サーバ1000の構成を示すブロック図である。物理サーバ1000では、仮想マシンの帯域制御を行う。
図13に示すように、物理サーバ1000の動作を管理するホストOS(Operating System)1100において、ゲストOS110ないし110、およびゲストOS110ないし110からの通信路を収容する仮想スイッチ1200が動作する。ここで、物理サーバの動作を管理するOSを「ホストOS」、物理サーバで動作する仮想マシンの動作を管理するOSを「ゲストOS」と、それぞれ称する。
仮想スイッチ1200は、ゲストOS110ないし110からのパケットを、それぞれの伝送路から取得し、到着順にNIC(Network Interface Card)1300に送出する。NIC1300は、取得したパケットを外部装置(外部スイッチ等)に送信する。
一般に、仮想スイッチ1200は、ゲストOS110ないし110からの入力インタフェース(入力ポート)において、ゲストOS110ないし110からのパケットに関するQoS制御(帯域制御)を実施する。QoS制御とは、サービス品質を保証するために通信に使用される帯域を制御する技術である。仮想スイッチ1200が入力インタフェースにおいてQoS制御を実施することにより、ゲストOS110ないし110は、指定された帯域までパケットの送出が可能となる。したがって、ゲストOS110ないし110は、最大スループットを実現できる。
ここで、NIC1300は、物理インタフェースの帯域として許容できる最大スループットを超えない範囲で、仮想スイッチ1200から受け取ったパケットを、外部スイッチに送信する。
すなわち、仮想スイッチ1200は、NIC1300への出力インタフェース(出力ポート)において、全ゲストOS110ないし110からのスループットの合計値に対して、NIC1300の物理インタフェースが許容できる最大スループットを超えない範囲で(ベストエフォートで)、パケットをNIC1300に送出するように制限する。
このような入力インタフェースおよび出力インタフェースの制御により、仮想スイッチ1200は、NIC1300の物理インタフェースの帯域として許容される最大スループットを超えない範囲にて、ゲストOS毎の最大スループットの保証や、NIC1300に出力するパケットのスループットの制限が出来る。
上述のように、仮想スイッチ1200の入力インタフェースでベストエフォートで制御されるトラフィックは、仮想スイッチ1200の出力インタフェースで帯域が制限される。ここで、仮想スイッチ1200は、ソフトウェア制御で動作するので、各ゲストOSから入力されるベストエフォートのトラフィックが増えた場合、増大したトラフィックをソフトウェアにより制御しきれなくなる虞がある。
すなわち、帯域指定されたトラフィックに関しては、仮想スイッチ1200への入力インタフェース側にてゲストOS毎に帯域制御されるので、帯域指定されたトラフィックが増えた場合でも最大スループットを保証する制御への影響は比較的少ない。しかしながら、上述した通り、ベストエフォートで制御されるトラフィックは、仮想スイッチ1200における同一プロセス上のソフトウェアにて処理されるので、そのトラフィックが増えた場合、ソフトウェア負荷が増大する。そして、仮想スイッチ1200は、ソフトウェア負荷の影響により、指定された帯域までのスループットを実現できない虞がある。
そこで、図14に示すように、1つの仮想スイッチが収容するゲストOSの数を削減した物理サーバ1001がある。ゲストOS110とゲストOS1102、ゲストOS110とゲストOS110は、それぞれグループ化され、各通信路は仮想スイッチ1200、仮想スイッチ1200に収容される。
ここで、複数の品質のサービスを提供する環境では、複数の仮想スイッチは、互いに独立したQoS制御(例えばベストエフォートと帯域指定)をゲストOSのグループ毎に行うことが望まれる。例えば、複数のゲストOSが同一業務に利用される環境において、複数のゲストOSがグループ化されて、1つの仮想スイッチにより独立して(他のグループのQoS制御の影響を受けることなく)QoS制御されることが望まれる。
図14に示す物理サーバ1001では、複数の仮想スイッチ1200、1200とその通信を束ねる仮想ブリッジ1400と、仮想スイッチ1200、1200と仮想ブリッジ1400とを接続する仮想伝送路1500、1500を備える。なお、仮想ブリッジ1400は、入力されたパケットをMACアドレステーブル(不図示)に従って転送する機能を有するものであり、QoS制御機能は有していない。仮想伝送路1500、1500は、Linux(登録商標)では、VETH(Virtual Ethernet(登録商標) Device)がそれに相当し、仮想ブリッジ1400と、仮想スイッチ1200、1200と間の接続に使用される。
図14に示すような構成を有する物理サーバ1001では、以下のようにQoS制御が実施される。なお、以下の説明において、説明の便宜上、仮想スイッチ1200、1200、およびゲストOS110ないし110の符号を省略する場合がある。
仮想スイッチは、ゲストOSから送られたパケットに関し、入力インタフェース(入力ポート)において、ゲストOS毎にスループットの制御を行う。また、仮想スイッチは、仮想スイッチからNIC1300への出力インタフェース(出力ポート)においてスループットの制御を行う。これにより、仮想スイッチは、接続されるゲストOSのグループの合計値に対して、スループットの制御を行う。
物理サーバ1001全体では、NIC1300の物理インタフェースの帯域として許容される最大スループットまでの範囲にて、ゲストOS毎やゲストOSのグループ毎のQoS制御が行われる。
例えば、それぞれの通信路が仮想スイッチに収容されるゲストOSのグループ毎に、ベストエフォートにて制御されるグループと、指定された帯域にて制御されるグループとが設定される。なお、複数の仮想スイッチからの通信路をNIC1300に収容するには、仮想伝送路1500、1500を経由して仮想ブリッジ1400にて通信路を集約する必要がある。
また別の構成として、図15に示す物理サーバ1002がある。図15に示す物理サーバ1002は、NICを複数枚(NIC1300、1300)実装し、仮想スイッチ1200、1200からの通信路は、それぞれNIC1300、1300に収容される。この場合、図14の構成と同様に、ゲストOSのグループ毎に通信路を仮想スイッチに収容することで、それぞれの仮想スイッチにおいて独立したQoS制御が実施される。
さらに別の構成として、図16に示す物理サーバ1003がある。図16に示すNIC1310は、SR−IOV(Single Root I/O Virtualization)機能を有する。SR−IOV機能を有するNIC1310が使用される場合、図16に示すように、それぞれのゲストOS110ないし110に対して、VF1311ないし1314が1対1で接続される。
ここで、SR−IOVとは、ハードウェアによるI/O(Input/Output)デバイス仮想化支援機構として、PCI(Peripheral Component Interconnect)規格の策定等を行う業界団体により標準化された、PCIデバイス側で仮想化をサポートする機能である。SR−IOVでは、PCIExpressデバイスが複数の仮想I/Oデバイス(VF:Virtual Function)を提供しており、ゲストOSにVFを占有で割り当てることによってPCIデバイスをゲストOS間で共有することができる。
また、SR−IOV機能を有したNICのデファクトスタンダードとして、あるゲストOSが帯域を独占して利用することを防ぐために、ゲストOS毎に帯域の上限を設定する機能が提供されている。
また、別の例として、特許文献1に、物理計算機のCPU(Central Processing Unit)リソースを浪費せず、広帯域を実現し、仮想計算機又は仮想計算機グループに対する帯域制御を実現する計算機が開示される。この計算機は、ゲストOSやゲストOSのグループ単位で最大帯域と保障帯域を設定し、定期的に帯域測定を行う。そして、この計算機は、実測された帯域が保障帯域を下回った際に、その差分を他のゲストOSやゲストOSのグループに融通する。
特開2013−196604号公報
http://www.pcisig.com/specifications/iov/single_root/[平成26年8月20日検索]
上述のように、一つの物理サーバで動作する複数のゲストOSまたはゲストOSのグループに対して、独立したQoS制御を行う構成において、以下の課題がある。
すなわち、図14に示す構成では、複数の仮想スイッチ1200、1200からの各通信路を一つのNIC1300に収容するために使用される仮想伝送路1500、1500と、仮想ブリッジ1400は、要求される通信性能を実現できない虞がある。
その理由は、仮想伝送路1500、1500と仮想ブリッジ1400は、ともにソフトウェア制御により動作するので、通信トラフィックの増加に伴い、CPUの処理負荷が増大してしまうからである。
また、図15に示す構成では、全体のQoS制御を実現するためにコストがかかるという課題がある。
その理由は、複数枚のNICが必要となり、また、接続される外部スイッチとして収容ポート数が多いスイッチが必要であるためである。また、外部スイッチにおいて、個々のNICに収容されるゲストOSのグループ毎に、指定されるQoS制御を行う必要があるので、高機能なスイッチが必要となるためである。
また、図16に示す構成では、ゲストOSのグループ毎のQoS制御が困難であるという課題がある。
SR−IOV対応のNICでは、VF毎に帯域の指定が可能となるので、広帯域の実現が可能である。しかしながら、図16に示す構成では、SR−IOV対応のNICにおいて、複数のゲストOSに対してそれぞれ所定のQoS制御(帯域指定、ベストエフォート等)を行うグループに分け、そのグループ毎の帯域制御を行いつつ、各グループの帯域の合計値がNICの物理インタフェースが許容する最大スループットの範囲に収まるQoS制御を実施する必要がある。このようなQoS制御を実施可能なNICは、構造が複雑で高価である。したがって、市販のNICでは、このようなQoS制御をNICで実施することは困難である。
また、特許文献1においては、利用帯域を常に測定し、その測定結果に基づいてQoS制御の変更を行うので、やはりホストOS(CPU)の処理負荷が増大し、それに伴い通信性能が低下するという課題がある。
本願発明は、上記課題を鑑みてなされたものであり、コストを増加させることなく、ソフトウェア処理負荷の増加に起因する通信性能の低下を防ぐことにより、グループ毎に要求される通信性能を実現する通信制御装置等を提供することを主要な目的とする。
本発明の第1の通信制御装置は、通信品質に関してグループ化された仮想マシンのそれぞれからの通信路を、当該グループ毎にそれぞれ収容する複数の仮想スイッチと、前記仮想スイッチにそれぞれ接続され、自インタフェースが許容する帯域内で動作する複数の仮想インタフェースを含むネットワークインタフェースと、前記仮想スイッチにおける、少なくとも前記仮想マシンとの接続インタフェースおよび前記仮想インタフェースとの接続インタフェースのいずれかに対して、前記グループ毎に前記通信品質が満たされるように設定を行う管理手段とを備える。
本発明の第1の通信制御方法は、通信品質に関してグループ化された仮想マシンのそれぞれからの通信路を、当該グループ毎にそれぞれ収容する複数の仮想スイッチと、前記仮想スイッチにそれぞれ接続され、自インタフェースが許容する帯域内で動作する複数の仮想インタフェースを含むネットワークインタフェースとを備えた通信制御装置に、管理手段により、前記仮想スイッチにおける、少なくとも前記仮想マシンとの接続インタフェースおよび前記仮想インタフェースとの接続インタフェースのいずれかに対して、前記グループ毎に前記通信品質が満たされるように設定を行う。
なお同目的は、上記の各構成を有する通信制御方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本願発明によれば、コストを増加させることなく、ソフトウェア処理負荷の増加に起因する通信性能の低下を防ぐことにより、グループ毎に要求される通信性能を実現することができるという効果が得られる。
本発明の第1の実施形態に係る通信制御装置の構成を示す機能ブロック図である。 本発明の第1の実施形態に係る通信制御装置が備えるゲストOS帯域テーブルの一例を示す図である。 本発明の第1の実施形態に係る通信制御装置が備えるゲストOSグループテーブルの一例を示す図である。 本発明の第1の実施形態に係る通信制御装置によるQoS制御の動作を示すフローチャートである。 本発明の第1の実施形態に係る通信制御装置が備えるフィルタテーブルの一例を示す図である。 本発明の第2の実施形態に係る通信制御装置によるQoS制御の内容を変更する動作を示すフローチャートである。 本発明の第2の実施形態に係る通信制御装置が備えるゲストOS帯域テーブルの一例を示す図である。 本発明の第3の実施形態に係る通信制御装置の構成を示す機能ブロック図である。 本発明の第3の実施形態に係る通信制御装置が備えるゲストOS帯域テーブルの一例を示す図である。 本発明の第3の実施形態に係る通信制御装置が備えるゲストOSグループテーブルの一例を示す図である。 本発明の第4の実施形態に係る通信制御装置の構成を示す機能ブロック図である。 本発明の各実施形態に係る通信制御装置を実現するハードウエア構成を例示する図である。 仮想化技術によって実現された仮想マシンが導入された物理サーバの構成を示すブロック図である。 仮想伝送路を経由して仮想ブリッジ通信路を集約する物理サーバの構成を示すブロック図である。 NICを複数枚実装する物理サーバの構成を示すブロック図である。 ゲストOSに対してVFが1対1で接続された物理サーバの構成を示すブロック図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。各実施形態において参照する図面において、同一要素には同一符号を付し、重複する説明を省略する場合がある。
第1の実施形態
本発明の第1の実施形態について図面を参照して説明する。
図1は、本発明の第1の実施形態に係る通信制御装置100の構成を示す図である。図1に示すように、本実施形態に係る通信制御装置100は、オペレーティングシステムとしてのホストOS11とネットワーク通信カードとしてのNIC12とを備える。
ホストOS11は、汎用或いは専用のオペレーションシステムで、かつ仮想化技術により仮想マシン(ゲストOS)を動作させる機能を持つ。
仮想化技術については、ホストOS11がLinux(登録商標)の場合はKVM(Kernel−based Virtual Machine)が、ホストOS11がWindows(登録商標)の場合はHyper−Vが、代表的に用いられる。あるいは、VMware(登録商標)やXenServer(登録商標)などの他の仮想化プラットフォームが用いられてもよい。
ホストOS11は、NIC12を介して外部システム(外部装置)との通信を行う機能を持つ。
本実施形態では、図1に示すように、ホストOS11は、ゲストOS111aないし111dと、ゲストOS111a、111bからの各通信路を収容する仮想スイッチ112aとゲストOS111c、111dからの各通信路を収容する仮想スイッチ112bとを備える。以下の説明では、ゲストOS111は、ゲストOS111aないし111d、および図示しない他のゲストOSの総称、または、それらのうちいずれかを示すとする。
仮想スイッチ112aは、ゲストOS111a、111bからのパケットをそれぞれ受け付ける入力ポート113a、113bと、VF121aにパケットを送出する出力ポート114aとを備える。同様に、仮想スイッチ112bは、ゲストOS111c、111dからのパケットをそれぞれ受け付ける入力ポート113c、113dと、VF121bにパケットを送出する出力ポート114bとを備える。以下の説明では、仮想スイッチ112は、仮想スイッチ112aおよび112b、および図示しない他の仮想スイッチの総称、または、それらのうちいずれかを示すとする。
すなわち、ホストOS11は、1または複数のゲストOS111と、1または複数の仮想スイッチ112と、帯域管理部130とを備える。
ゲストOS111は、ホストOS11で動作する仮想マシンのオペレーションシステムであり、ホストOS11が管理する資源(ディスクやメモリ等)が許す限り、ホストOS11に複数存在することが可能である。またゲストOS111が複数存在する場合、それぞれのゲストOS111の種類(LinuxやWindows等)は同一である必要はないし、また全て同一であっても構わない。ゲストOS111は、通信路を介して仮想スイッチ112と接続しており、仮想スイッチ112を通じて外部機器や別のゲストOSと通信する機能を持つ。
仮想スイッチ112は、ホストOS11でソフトウェアにより動作する仮想的なスイッチであり、機能的には通常のハードウェアスイッチと同等である。本実施形態では、仮想スイッチは、複数のゲストOS111とVF121(詳細は後述する)とを接続するスイッチの機能を持つ。また、仮想スイッチは、通常のスイッチと同様に、キューイングや帯域制限などの機能を備える。本実施形態では、ホストOS11で動作するソフトウェアとしての仮想スイッチ112は複数存在しうる。
帯域管理部130は、帯域設定部131、ゲストOS帯域テーブル132、ゲストOSグループテーブル133を備える。
NIC12は、SR−IOV技術の一機能であるVFを2つ以上(図1ではVF121a、121b)備えるネットワークインタフェースカードである。NIC12は、さらにフィルタテーブル122とNICコントローラ123とを備える。NIC12は、外部機器(外部スイッチ)と接続する。
VF121a、121bは、仮想的なネットワークインタフェースカードとして動作し、通信制御装置100では、それぞれ仮想スイッチ112a、112bと接続して外部システムと通信する機能を持つ。そのため、VF121a、121bは、仮想スイッチ112a、112bからは、直接接続するネットワークインタフェースカードとして見えている。通信制御装置100では、VFは、仮想スイッチと1対1で接続するので、仮想スイッチと同数以上存在する。但し、VFの最大数はNIC12の諸元に依存しているので、使用できるVFの数は無限ではなく限界値を有する。VFは、NIC12が許容する帯域内で動作する。
また、NIC12は、NICコントローラ123において、複数のVF121a、121bからのパケットを、到着順に外部システムへ出力する。また、NICコントローラ123は、また、外部システムからのパケットを、フィルタテーブル122に含まれるMAC(Media Access Control)アドレスを参照して各VF121a、121bへ振り分ける機能を持つ。
次に、通信制御装置100の具体的な構成について説明する。
本実施形態に係る通信制御装置100は、通信品質に関してグループ化されたゲストOSのQoS制御を実施する。すなわち、通信制御装置100は、帯域指定でQoS制御するゲストOS(ゲストOS111a、111b)とベストエフォートでQoS制御するゲストOS(ゲストOS111c、111d)を組み合わせてQoS制御を行う。帯域指定でのQoS制御とは、指定された帯域での通信品質を保証する制御である。ベストエフォートでのQoS制御とは、使用可能な帯域を可能な範囲で使用する制御である。通信制御装置100は、帯域指定にてQoS制御されるゲストOSの帯域に影響を及ぼさず、残った帯域をベストエフォートとして有効活用する形態である。
仮想スイッチ112aを、帯域指定にてQoS制御を行う仮想スイッチとし、仮想スイッチ112bを、ベストエフォートにてQoS制御を行う仮想スイッチとする。
仮想スイッチ112aは、ゲストOS111aからの通信路を入力ポート113aにて収容する。帯域管理部130の帯域設定部131は、ゲストOS帯域テーブル132とゲストOSグループテーブル133を参照し、ゲストOS111a向けに指定された値で(通信品質が満たされるように)、仮想スイッチ112aの入力ポート113aに設定を行う。
図2は、ゲストOS帯域テーブル132の一例を示す図である。図2に示すように、ゲストOS帯域テールブル132は、ゲストOSの識別情報、ゲストOSが所属するQoSグループの番号および帯域を示す情報を含む。図2に示す例では、ゲストOS111aとゲストOS111bは、保証すべき通信品質が指定され、ゲストOS111cとゲストOS111dは、保証すべき通信品質は指定されず、使用可能な帯域が指定されることを示す。
図2に示すように、ゲストOS111aとゲストOS111bは、QoSグループ番号「1」を有し、それぞれ200Mbps、300Mbpsの帯域が指定される。ゲストOS111cとゲストOS111dは、QoSグループ番号「2」を有し、それぞれ最大500Mbpsでの通信が可能である。ここで、ゲストOS111a、111bに対して指定される帯域の値の合計値は、NIC12の物理インタフェースの帯域として許容される値以下とする。
図3は、ゲストOSグループテーブル133の一例を示す図である。図3に示すように、ゲストOSグループテーブル133は、QoSグループの番号と、そのグループのQoS制御の種別(QoS種別)を示す情報を含む。QoS種別とは、帯域指定でのQoS制御、ベストエフォートでのQoS制御等を示す情報である。図3に示す例では、QoSグループ番号として「1」を有するグループに含まれるゲストOSを、帯域指定にてQoS制御し、QoSグループ番号として「2」を有するグループに含まれるゲストOSを、ベストエフォートにてQoS制御することを示す。
[動作の説明]
次に、通信制御装置100によるQoS制御の動作について、図4を参照して説明する。
まず、通信制御装置100においてホストOSが起動する(S101)。ホストOSが起動すると、帯域管理部130の帯域設定部131は、ゲストOSの帯域に関する情報を参照する。すなわち、帯域設定部131は、ゲストOS帯域テーブル132とゲストOSグループテーブル133を参照する(S102)。ゲストOSの帯域に関する情報がある場合(S103においてYes)、帯域設定部131は、仮想スイッチ112a、112bに対してゲストOS毎の帯域の設定を行う(S104)。帯域設定部131は、ソフトウェアである仮想スイッチ112a、112bに対して、ポートあるいは設定したキュー単位で、コマンドを与えることにより、帯域の設定を行う。
具体的には、帯域設定部131は、以下のように帯域の設定を行う。すなわち、帯域設定部131は、ゲストOS帯域テーブル132とゲストOSグループテーブル133を参照し、ゲストOS111a向けに指定された値(ここでは200Mbps)で、シェーピング等の設定を仮想スイッチ112aの入力ポート113aに行う。仮想スイッチ112aは、その設定に基づいて帯域制限を行う。ここでは、帯域制限方法の例としてシェーピングを挙げたが、通信制御装置100は、その実装方式には依存しないので、詳細な説明は省略する。
また、帯域設定部131は、ゲストOS111b向けに指定された値(ここでは300Mbps)で、シェーピング等の設定を仮想スイッチ112aの入力ポート113bに行う。仮想スイッチ112aは、その設定に基づいて帯域制限を行う。
また、帯域設定部131は、ベストエフォートにてQoS制御するゲストOS111c、111d向けの設定を、仮想スイッチ112bの出力ポート114bに行う。すなわち、帯域設定部131は、VF121bへ出力する出力ポート114bに、NIC12の物理インタフェースの帯域として許容される値から、ゲストOS111aの帯域指定値とゲストOS111bの帯域指定値との合計値を引いた値で、ポリシング等の設定を行う。ここでは、帯域制限方法の例としてポリシングを挙げたが、通信制御装置100は、その実装方式には依存しないので、詳細な説明は省略する。
具体的には、NIC12の物理インタフェースの帯域として許容される値が1Gbpsであるとする。この場合、帯域管理部130の帯域設定部131は、仮想スイッチ112bの出力ポート114bに、1Gbpsから200Mbpsと300Mbpsを引いた残りである500Mbpsを、使用可能な帯域として設定する。仮想スイッチ112bは、その設定に基づいて帯域制限を行う。この設定により、ゲストOS111cとゲストOS111dは、帯域の空き状況によっては最大500Mbpsでの通信が可能となる。すなわち、ゲストOS111cとゲストOS111dは、ゲストOS111aとゲストOS111bのスループットに影響を与えることなく、互いに500Mbpsを分け合うことができる。
続いて、ホストOS11は、ゲストOS111aないしゲストOS111dを起動する(S105)。このとき、帯域設定部131は、ゲストOS111aないしゲストOS111dのMACアドレスを取得する。そして、帯域設定部131は、外部システムからのパケットをVF121a、121bのいずれかに振り分けるために、起動したゲストOSのMACアドレスを、NIC12が備えるフィルタテーブル122に書き込むことによりフィルタテーブル122を更新する(S106)。図5は、フィルタテーブル122の一例を示す図である。図5に示すように、フィルタテーブル122は、ゲストOSのMACアドレス(宛先MACアドレス)と、宛先MACアドレスに関連付けられたVFの識別情報とを含む。VFの識別情報は、関連付けられた宛先MACアドレスを有するゲストOS宛てのパケットを振り分けるVFの識別情報である。
図5に示す例では、宛先がゲストOS111a、111bであるパケットをVF121aに振り分け、宛先がゲストOS111c、111dであるパケットをVF121bに振り分けることを示す。
なお、S103においてゲストOSの帯域に関する情報がない場合、ホストOS11は、処理を終了する。
以上のように、本第1の実施形態によれば、通信制御装置100に、ネットワーク通信カードとして、SR−IOV対応のNIC12を搭載する。通信制御装置100のホストOS11にて動作するゲストOSは、QoS制御のグループ毎に異なる仮想スイッチ112a、112bに収容され、仮想スイッチ112a、112bは、NIC12に設けられた複数のVF121a、121bと1対1で接続される。
ホストOS11が備える帯域管理部130は、仮想スイッチ112aの入力ポートに対して、帯域を指定されたゲストOSに対するQoS制御の設定を行う。また、帯域管理部130は、仮想スイッチ112bの出力ポートに対して、ベストエフォートにて通信するゲストOSに対するQoS制御の設定を行う。
上記構成を採用することにより、本第1の実施形態によれば、通信制御装置100は、通信品質に関するゲストOSのグループ毎に独立したQoS制御を実施でき、グループ毎に要求される通信性能を実現することができるという効果が得られる。
上記QoS制御にあたり、通信制御装置100には、ソフトウェア制御にて動作する仮想伝送路と仮想ブリッジを搭載しないので、本実施形態によれば、CPU負荷の増大を防ぐことができ、それにより通信性能の低下を招くことなく、要求される通信性能を実現できるという効果が得られる。
また、通信制御装置100に搭載するNICは1枚でよく、またこれにより、収容ポート数が多く高機能な外部スイッチが不要となるので、本実施形態によれば、コストを増加させることなく、上記効果を奏することができる。
また、通信制御装置100は、SR−IOV対応のNICと、仮想スイッチとを組み合わせて使用することで、ゲストOSのグループ毎の帯域制御を行いつつ、各グループの帯域の合計値がNICの物理インタフェースが許容する最大スループットの範囲に収まるといった柔軟なQoS制御を、簡易な構造のNICで実現できるという効果が得られる。
第2の実施の形態
[構成の説明]
次に、上述した第1の実施形態を基礎とする第2の実施形態について説明する。以下の説明では、第1の実施形態と同様の構成については同じ参照番号を付与することにより、重複する説明は省略する。
第2の実施形態では、通信制御装置100においてQoS制御の内容を変更する動作について説明する。
通信制御装置100は、ゲストOSの機能に応じてサービスを提供する場合、サービス内容の変更を行うために、QoS制御の内容の変更が望まれる場合がある。また、サービス加入者の追加あるいは削除のために、ゲストOSの追加あるいは削除が望まれる場合がある。これらの場合、サービス提供者は、帯域管理部130に変更指示を行うことにより、帯域管理部130がその指示に応じて、QoS制御の内容の変更を行う。このようなQoS制御の内容を変更する動作について、図6を参照して説明する。
サービス提供者から変更指示を受けると、帯域管理部130の帯域設定部131は、既存のゲストOSの帯域に関する情報を、ゲストOS帯域テーブル132とゲストOSグループテーブル133を参照して取得する(S201)。帯域設定部131は、サービス提供者の変更指示に基づいて、ゲストOS帯域テーブル132とゲストOSグループテーブル133を更新する(S202)。
例えば、図2に示すゲストOS帯域テーブル132に基づいてQoS制御を実施している際に、帯域設定部131は、サービス提供者から、100MbpsにてQoS制御を行うゲストOS111eを追加する指示を受けたとする。この場合、帯域設定部131は、この指示に応じて、図7に示すようにゲストOS帯域テーブル132を更新する。
帯域設定部131は、上記更新したゲストOS帯域テーブル132に基づいて、仮想スイッチの帯域に関する設定を変更する(S203)。例えば図7のようにゲストOS帯域テーブル132が変更された場合、帯域設定部131は、仮想スイッチ112aの未使用の入力ポートに、100Mbpsを設定する。また、帯域設定部131は、仮想スイッチ112bの出力ポート114bに、1Gbpsから、200Mbps、300Mbps、100Mbpsを引いた残りである400Mbpsを、使用可能な帯域として設定する。
サービス提供者からの変更指示が、ゲストOSを追加する指示である場合(S204においてYes)、ホストOS11は、新たなゲストOSの起動処理を行う(S205)。帯域設定部131は、起動されたゲストOSのMACアドレスを、NIC12のフィルタテーブル122に書き込むことによりフィルタテーブル122を更新する(S206)。すなわち、帯域設定部131は、起動されたゲストOSのMACアドレスを、VF121aと関連付けてフィルタテーブル122に書き込む。
一方、サービス提供者からの変更指示が、ゲストOSを削除する指示である場合(S207においてYes)、ホストOS11は、削除を指示されたゲストOSのシャットダウン処理を実施する(S208)。そして、帯域設定部131は、シャットダウンされたゲストOSのMACアドレスとそれに関連付られたVFの識別情報を、フィルタテーブル122から削除する(S209)。
以上のように、本第2の実施形態によれば、サービス提供者からのQoS制御の内容の変更指示に応じて、帯域設定部131は、仮想スイッチの入力ポートおよび出力ポートの設定を変更する。この構成を採用することにより、本第2の実施形態によれば、QoS制御の内容を変更する際に、ゲストOSの利用帯域の測定等は不要であるので、CPUの処理負荷増大に起因した通信性能の低下を招くことなく、要求される通信性能を実現できるという効果が得られる。
第3の実施形態
次に、上述した第1の実施形態を基礎とする第3の実施形態について説明する。以下の説明では、第1の実施形態と同様の構成については同じ参照番号を付与することにより、重複する説明は省略する。
図8は、本発明の第3の実施形態に係る通信制御装置300の構成を示す図である。通信制御装置300は、第1の実施形態にて説明した通信制御装置100と同様の構成を有する。通信制御装置300では、ゲストOS111eとゲストOS111fを仮想スイッチ112cによりベストエフォートにてQoS制御すると共に、ゲストOS111gとゲストOS111hを仮想スイッチ112dによりベストエフォートにてQoS制御することを説明する。
仮想スイッチ112cと仮想スイッチ112dは、いずれもベストエフォートでQoS制御する仮想スイッチである。仮想スイッチ112cと仮想スイッチ112dは、それぞれVF121c、VF121dへの出力ポート114c、出力ポート114dにおいて、異なる帯域を指定する。これにより、仮想スイッチ112c、112dに収容されるゲストOS毎に、使用可能な帯域の最大値を別の値にすることが可能となる。
図9は、本第2の実施形態に係る通信制御装置300が備えるゲストOS帯域テールブル132の一例を示す図である。図9は、本第2の実施形態に係る通信制御装置300が備えるゲストOSグループテーブル133の一例を示す図である。
NIC12の物理インタフェースの帯域として許容される値は、1Gbpsとする。図9に示すゲストOS帯域テーブル132に示すに従って、帯域設定部131は、仮想スイッチ112cからVF121cへの出力ポート121cに、帯域制限値400Mbpsを設定し、仮想スイッチ112dからVF121dへの出力ポート121dに、帯域制限値600Mbpsを設定する。この場合、ゲストOS111eとゲストOS111fは、帯域の空き状況に応じて、最大400Mbpsの通信が可能となる。また、ゲストOS111gとゲストOS111hは、帯域の空き状況に応じて、最大600Mbpsでの通信が可能となる。
以上の構成により、仮想スイッチ112cに接続するゲストOS111e、111fと、仮想スイッチ112dに接続するゲストOS111g、111hは、互いの帯域に影響を及ぼすことなく、それぞれベストエフォートでの通信が可能となる。
なお、本実施形態において、通信制御装置300は、各仮想スイッチ112の出力ポートにおける帯域制限値の合計が、NIC12の物理インタフェースの帯域として許容される値を超えない限り、仮想スイッチを3つ以上備えてもよい。この場合、各仮想スイッチの出力ポートにおける帯域制限値を同じ値としてもよいし、異なる値としてもよい。
第4の実施形態
図11は、本発明の第4の実施形態に係る通信制御装置400の構成を示す図である。図11に示すように、本実施形態に係る通信制御装置400は、複数の仮想スイッチ411と、ネットワークインタフェース420と、管理部430とを備える。
仮想スイッチ411は、通信品質に関してグループ化された仮想マシン412のそれぞれからの通信路を、グループ毎にそれぞれ収容する。ネットワークインタフェース420は、仮想スイッチ411にそれぞれ接続され、自インタフェースが許容する帯域内で動作する複数の仮想IF(仮想インタフェース)421を含む。
管理部430は、仮想スイッチ411における、少なくとも仮想マシン412との接続インタフェース(入力ポート)および仮想インタフェース421との接続インタフェース(出力ポート)のいずれかに対して、グループ毎に通信品質が満たされるように設定を行う。
なお、ネットワークインタフェース420、管理部430は、それぞれ、第1の実施形態におけるNIC12、帯域管理部130に相当する。また、仮想インタフェース421は、第1の実施形態におけるVFに相当する。
上記構成を採用することにより、本第4の実施形態によれば、コストを増加させることなく、ソフトウェア処理負荷の増加に起因する通信性能の低下を防ぐことにより、要求される通信性能を実現できるという効果が得られる。
なお、図1等に示した通信制御装置の各部は、図12に例示するハードウエア資源において実現される。すなわち、図12に示す構成は、CPU20、RAM(Random Access Memory)21、ROM(Read Only Memory)22、外部接続インタフェース23および記憶媒体24を備える。CPU20は、ROM22または記憶媒体24に記憶された各種ソフトウエア・プログラム(コンピュータ・プログラム)を、RAM21に読み出して実行することにより、通信制御装置の全体的な動作を司る。すなわち、上記各実施形態において、CPU20は、ROM22または記憶媒体24を適宜参照しながら、通信制御装置が備える各機能(各部)を実行するソフトウエア・プログラムを実行する。
また、各実施形態を例に説明した本発明は、通信制御装置に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、CPU20がRAM21に読み出して実行することによって達成される。
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ(一時記憶媒体)またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
本発明は、例えば、仮想マシンが動作する仮想化環境と、仮想マシンと外部装置との通信を制御するネットワークインタフェースとを備えた通信制御装置に適用できる。
11 ホストOS
12 NIC
20 CPU
21 RAM
22 ROM
23 外部接続インタフェース
24 記憶媒体
100 通信制御装置
111aないし111h ゲストOS
112aないし112d 仮想スイッチ
113aないし113h 入力ポート
114aないし114d 出力ポート
121aないし121d VF
122フィルタテーブル
123 NICコントローラ
130 帯域管理部
131 帯域設定部
132 ゲストOS帯域テーブル
133 ゲストOSグループテーブル

Claims (10)

  1. 通信品質に関してグループ化された仮想マシンのそれぞれからの通信路を、当該グループ毎にそれぞれ収容する複数の仮想スイッチと、
    前記仮想スイッチにそれぞれ接続され、自インタフェースが許容する帯域内で動作する複数の仮想インタフェースを含むネットワークインタフェースと、
    前記仮想スイッチにおける、少なくとも前記仮想マシンとの接続インタフェースおよび前記仮想インタフェースとの接続インタフェースのいずれかに対して、前記グループ毎に前記通信品質が満たされるように設定を行う管理手段と
    を備えた通信制御装置。
  2. 前記管理手段は、保証すべき前記通信品質が指定された前記グループに含まれる前記仮想マシンからの通信路を収容する前記仮想スイッチにおける、当該仮想マシンとの接続インタフェースに、前記通信品質を満たす帯域を設定する
    請求項1記載の通信制御装置。
  3. 前記管理手段は、保証すべき前記通信品質が指定されない前記グループに含まれる前記仮想マシンからの通信路を収容する前記仮想スイッチにおける、前記仮想インタフェースとの接続インタフェースに、前記ネットワークインタフェースが許容する帯域を超えない範囲で、使用可能な帯域を設定する
    請求項1または請求項2記載の通信制御装置。
  4. 前記管理手段は、保証すべき前記通信品質が指定された前記グループに含まれる前記仮想マシンにそれぞれ指定された前記帯域の合計値を、前記ネットワークインタフェースが許容する帯域の値から引いた値を、保証すべき前記通信品質が指定されない前記グループに含まれる前記仮想スイッチにおける、前記仮想インタフェースとの接続インタフェースに、前記使用可能な帯域として設定する
    請求項3記載の通信制御装置。
  5. 前記管理手段は、前記仮想マシンに指定された前記通信品質に関する情報を含む帯域テーブルを備え、
    前記設定の変更指示を受けると、当該変更に基づいて前記帯域テーブルを更新すると共に、更新した当該帯域テーブルに基づいて、前記通信品質が満たされるように設定を行う
    請求項1ないし請求項4のいずれか1項記載の通信制御装置。
  6. 通信品質に関してグループ化された仮想マシンのそれぞれからの通信路を、当該グループ毎にそれぞれ収容する複数の仮想スイッチと、前記仮想スイッチにそれぞれ接続され、自インタフェースが許容する帯域内で動作する複数の仮想インタフェースを含むネットワークインタフェースとを備えた通信制御装置に、
    管理手段により、前記仮想スイッチにおける、少なくとも前記仮想マシンとの接続インタフェースおよび前記仮想インタフェースとの接続インタフェースのいずれかに対して、前記グループ毎に前記通信品質が満たされるように設定を行う
    通信制御方法。
  7. 前記管理手段は、保証すべき前記通信品質が指定された前記グループに含まれる前記仮想マシンからの通信路を収容する前記仮想スイッチにおける、当該仮想マシンとの接続インタフェースに、前記通信品質を満たす帯域を設定する
    請求項6記載の通信制御方法。
  8. 前記管理手段は、保証すべき前記通信品質が指定されない前記グループに含まれる前記仮想マシンからの通信路を収容する前記仮想スイッチにおける、前記仮想インタフェースとの接続インタフェースに、前記ネットワークインタフェースが許容する帯域を超えない範囲で、使用可能な帯域を設定する
    請求項6または請求項7記載の通信制御方法。
  9. 前記管理手段は、保証すべき前記通信品質が指定された前記グループに含まれる前記仮想マシンにそれぞれ指定された前記帯域の合計値を、前記ネットワークインタフェースが許容する帯域の値から引いた値を、保証すべき前記通信品質が指定されない前記グループに含まれる前記仮想スイッチにおける、前記仮想インタフェースとの接続インタフェースに、前記使用可能な帯域として設定する
    請求項8記載の通信制御方法。
  10. 通信品質に関してグループ化された仮想マシンのそれぞれからの通信路を、当該グループ毎にそれぞれ収容する複数の仮想スイッチと、前記仮想スイッチにそれぞれ接続され、自インタフェースが許容する帯域内で動作する複数の仮想インタフェースを含むネットワークインタフェースとを備えた通信制御装置に、
    前記仮想スイッチにおける、少なくとも前記仮想マシンとの接続インタフェースおよび前記仮想インタフェースとの接続インタフェースのいずれかに対して、前記グループ毎に前記通信品質が満たされるように設定を行う処理を実行する
    通信制御プログラム。
JP2014185040A 2014-09-11 2014-09-11 通信制御装置、通信制御方法および通信制御プログラム Pending JP2016058942A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014185040A JP2016058942A (ja) 2014-09-11 2014-09-11 通信制御装置、通信制御方法および通信制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014185040A JP2016058942A (ja) 2014-09-11 2014-09-11 通信制御装置、通信制御方法および通信制御プログラム

Publications (1)

Publication Number Publication Date
JP2016058942A true JP2016058942A (ja) 2016-04-21

Family

ID=55759052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014185040A Pending JP2016058942A (ja) 2014-09-11 2014-09-11 通信制御装置、通信制御方法および通信制御プログラム

Country Status (1)

Country Link
JP (1) JP2016058942A (ja)

Similar Documents

Publication Publication Date Title
US7782869B1 (en) Network traffic control for virtual device interfaces
US11095571B2 (en) Flexible and scalable enhanced transmission selection method for network fabrics
US20190140984A1 (en) Traffic and load aware dynamic queue management
US7788411B2 (en) Method and system for automatically reflecting hardware resource allocation modifications
RU2584449C2 (ru) Система управления связью, коммутационный узел и способ управления связью
US9727386B2 (en) Method and apparatus for network resource virtual partitioning
US9548890B2 (en) Flexible remote direct memory access resource configuration in a network environment
KR102516167B1 (ko) 동적 VSoC를 위한 방법 및 장치
JP6579916B2 (ja) 仮想計算機間の通信経路制御方法および計算機システム
EP2843891B1 (en) Traffic and load aware dynamic queue management
US11838206B2 (en) Edge node with datapath split between pods
US20230028837A1 (en) Scaling for split-networking datapath
US9344376B2 (en) Quality of service in multi-tenant network
US11875839B2 (en) Flow based rate limit
Rathore et al. Performance evaluation of open virtual routers
JP2014086884A (ja) ネットワーク機器、方法、及びプログラム
US11509573B2 (en) Control device and control method
US20220413910A1 (en) Execution job compute unit composition in computing clusters
WO2014178826A1 (en) Governing bare metal guests
JP2016058942A (ja) 通信制御装置、通信制御方法および通信制御プログラム
US20220283866A1 (en) Job target aliasing in disaggregated computing systems
JP2016146077A (ja) 計算機、通信制御方法および通信制御プログラム
KR20170057770A (ko) 가상 스위치의 패킷 전송 제어 방법
KR101833714B1 (ko) 가상 머신의 패킷을 처리하는 방법, 장치 및 컴퓨터 프로그램