JP2017041858A - 帯域制御システムおよび帯域制御方法 - Google Patents

帯域制御システムおよび帯域制御方法 Download PDF

Info

Publication number
JP2017041858A
JP2017041858A JP2015164200A JP2015164200A JP2017041858A JP 2017041858 A JP2017041858 A JP 2017041858A JP 2015164200 A JP2015164200 A JP 2015164200A JP 2015164200 A JP2015164200 A JP 2015164200A JP 2017041858 A JP2017041858 A JP 2017041858A
Authority
JP
Japan
Prior art keywords
bandwidth
service
virtual machine
unit
host server
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
JP2015164200A
Other languages
English (en)
Other versions
JP6352869B2 (ja
Inventor
晴元 福田
Harumoto Fukuda
晴元 福田
規昭 井上
Noriaki Inoue
規昭 井上
京士 飯塚
Kyoshi Iizuka
京士 飯塚
健治 大友
Kenji Otomo
健治 大友
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015164200A priority Critical patent/JP6352869B2/ja
Publication of JP2017041858A publication Critical patent/JP2017041858A/ja
Application granted granted Critical
Publication of JP6352869B2 publication Critical patent/JP6352869B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】仮想環境において帯域確保サービスおよび帯域分配サービスを実現する帯域制御を行う。
【解決手段】仮想マシン出力制御機能部10は、ホストサーバで利用可能な帯域から、一定の帯域を確保する帯域確保サービスを利用する仮想マシンに対して一定の帯域を優先して割り当て、利用可能な帯域から帯域確保サービスが実際に利用している帯域を除いた帯域を分配する帯域分配サービスを利用する仮想マシンに割り当てる帯域を、ホストサーバの通信による負荷状況に応じて調整する。また、サービス判定機能部20またはカプセル化機能部30は、ホストサーバ上の仮想マシンから送出されたパケットに対し、仮想マシンの利用するサービスの種別に応じた優先度を、物理ネットワーク上で認識可能な形式で付与する。
【選択図】図2

Description

本発明は、仮想環境における帯域制御システムおよび帯域制御方法に関する。
従来、帯域サービスを提供するための制御技術として、Diffserv(例えば非特許文献1を参照)等の優先転送制御の利用や、RSVP(例えば非特許文献2を参照)等が知られている。
帯域サービスとして、一定の帯域を確保する帯域確保サービス、および帯域確保サービスの残帯域を利用して帯域を公平に分配することで、利用帯域は変化するが常に通信可能な状態とする帯域分配サービスを提供することが考えられる。
複数のVM(仮想マシン)を集約してホストサーバ上で運用する仮想環境において、各帯域サービスを提供する場合、通信帯域をVMの仮想NICに設定して帯域制御を実現する方法が考えられる。しかし、2つのサービスがホストサーバおよび物理ネットワーク等の設備が提供する帯域を共有して利用するため、各サービスが相互に影響しあい、輻輳等が発生して十分に帯域が提供できないという問題がある。
上記の問題を解決するために、Diffserv等の優先転送制御を用いることが考えられる。このような優先転送技術では、パケットに優先度を示す印をつけて、その印に従ってルータ上で優先転送を行う。例えば、帯域確保サービスの通信の優先度を「高」、帯域分配サービスの優先度を「中」、その他通信の優先度を「低」とすることで、輻輳時においても帯域確保サービスの通信帯域を確保することができる。しかし、このような優先転送技術は、ルータ上での制御に限られるため、VMの仮想NICとホストの物理NICの間では制御が行われず、仮想NIC間での帯域制御サービスは実現できなかった。
また、RSVPを用いて、End−Endにおける帯域予約を行うことが考えられるが、VMが動作するホストサーバ間での利用となり、VMの仮想NICとホストの物理NICの間では帯域制御ができなかった。
以上のように、仮想環境では、ホストサーバ内の仮想NICから物理NICまでの区間での帯域制御が必要となる。仮想NICから物理NICの区間での帯域制御を実現した上で、従来技術と連携して、帯域サービスを実現することが求められる。
次に、VMが非常に多くのトラフィックを流した場合、ホストサーバにおいてソフトウエアによって通信を処理する必要があり、通信を行うVMに割り当てたCPUでの処理だけでなく、VMに割り当てていないホストサーバの残CPUでの処理が必要となる。このためホストサーバのCPU負荷やホストサーバ本体のI/O負荷の増加が発生する。この結果、帯域サービスの各ユーザは、ホストサーバ負荷の影響を受けて、通信のためのソフトウエア処理を十分行えず、与えられたネットワーク帯域を十分使えない状況となる。
上記の問題を解決するために、SR−IOVを導入して負荷を軽減させることが考えられるが、この場合全てのサーバでのOS設定変更や対応ハードの導入が必要となる。さらに、VMのホストサーバ間移行が困難になり、メンテナンス性が低下するという問題がある。このように、SR−IOV環境へ既存仮想環境の全てが移行するとは考えにくく、ソフトウエア処理によってホストサーバでのCPU負荷やI/O負荷増大へ対応する技術は今後も必要とされる。
最後に、帯域確保サービスおよび帯域分配サービスのような複数の帯域サービスを提供する場合、VMが出力する各パケットがどのサービスに属するかを識別することで、各サービス個別の制御が可能となる。例えば、あるパケットがどのサービスに属するかを示す印を、IP TOSフィールドや、VLAN PCPフィールドに刻印して区別した上で、物理ルータやスイッチの帯域制御機能を利用することが考えられる。
カプセル化を用いたオーバーレイ型の仮想ネットワーク(例えば非特許文献3〜6を参照)を導入した場合、仮想NICからの出力トラフィックのパケットにどのサービスに属するかを示す印を刻印したとしても、その後カプセル化されることで印が隠蔽される。このため、カプセル化後の物理ネットワークでの帯域制御機能を利用できないという問題がある。
本発明の帯域制御システムは、ホストサーバ上で動作する仮想マシンから送出されたパケットを、物理ネットワークを介して他の仮想マシンに転送するネットワークシステムにおける、帯域の制御を行う帯域制御システムであって、前記ホストサーバで利用可能な帯域から、一定の帯域を確保する帯域確保サービスを利用する仮想マシンに対して前記一定の帯域を優先して割り当て、前記利用可能な帯域から前記帯域確保サービスが実際に利用している帯域を除いた帯域を分配する帯域分配サービスを利用する仮想マシンに割り当てる帯域を、前記ホストサーバの通信による負荷状況に応じて調整する出力制御部と、前記パケットに対し、前記帯域確保サービスを利用する仮想マシンから送出されたパケットの優先度が前記帯域分配サービスを利用する仮想マシンから送出されたパケットの優先度より高くなるように、前記ネットワークシステム上で認識可能な形式で優先度を付与する優先度付与部と、を有することを特徴とする。
また、本発明の帯域制御方法は、ホストサーバ上で動作する仮想マシンから送出されたパケットを、物理ネットワークを介して他の仮想マシンに転送するネットワークシステムにおける帯域の制御を行う帯域制御システムで実行される帯域制御方法であって、前記ホストサーバで利用可能な帯域から、一定の帯域を確保する帯域確保サービスを利用する仮想マシンに対して前記一定の帯域を優先して割り当て、前記利用可能な帯域から前記帯域確保サービスが実際に利用している帯域を除いた帯域を分配する帯域分配サービスを利用する仮想マシンに割り当てる帯域を、前記ホストサーバの通信による負荷状況に応じて調整する出力制御工程と、前記パケットに対し、前記帯域確保サービスを利用する仮想マシンから送出されたパケットの優先度が前記帯域分配サービスを利用する仮想マシンから送出されたパケットの優先度より高くなるように、前記ネットワークシステム上で認識可能な形式で優先度を付与する優先度付与工程と、を含んだことを特徴とする。
本発明によれば、仮想環境におけるホストサーバ内の仮想NICから物理NICまでの区間での帯域制御を行うことで、物理ネットワーク上の機器と連携し、仮想マシン間における帯域サービスを提供することができる。
図1は、帯域確保サービスおよび帯域分配サービスについて説明するための図である。 図2は、第1の実施形態に係る帯域制御システムの概要を示す図である。 図3は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の構成の一例を示す図である。 図4は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の各部の配置例を示す図である。 図5は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の各部の配置例を示す図である。 図6は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の各部の配置例を示す図である。 図7は、第1の実施形態に係る帯域制御システムの帯域確保サービス用インタフェースリストの一例を示す図である。 図8は、第1の実施形態に係る帯域制御システムの帯域分配サービス用インタフェースリストの一例を示す図である。 図9は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の負荷軽減部の処理の一例を示す図である。 図10は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の制御対象判定部の処理の一例を示す図である。 図11は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部のリセット部の処理の一例を示す図である。 図12は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部のリセット部の処理の一例を示す図である。 図13は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部のリセット部の処理の一例を示す図である。 図14は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の設定帯域平準化部の処理の一例を示す図である。 図15は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の帯域圧縮部の処理の一例を示す図である。 図16は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の帯域圧縮部の処理の一例を示す図である。 図17は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の帯域延伸部の処理の一例を示す図である。 図18は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の帯域延伸部の処理の一例を示す図である。 図19は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の処理の一例を示す図である。 図20は、第1の実施形態に係る帯域制御システムのサービス判定機能部の第1の方式について説明するための図である。 図21は、第1の実施形態に係る帯域制御システムのサービス判定機能部の第2の方式について説明するための図である。 図22は、第1の実施形態に係る帯域制御システムのカプセル化機能部の第1の方式について説明するための図である。 図23は、第1の実施形態に係る帯域制御システムのカプセル化機能部の第2の方式について説明するための図である。 図24は、第2の実施形態に係る帯域制御システムの仮想マシン出力制御機能部におけるキューの構成の一例を示す図である。 図25は、第2の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の構成の一例を示す図である。 図26は、第2の実施形態に係る帯域制御システムのクラス化キューイングの処理および仮想マシン出力制御機能部の処理の一例を示す図である。 図27は、プログラムが実行されることにより、帯域制御システムが実現されるコンピュータの一例を示す図である。
以下に、本願に係る帯域制御システムおよび帯域制御方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る帯域制御システムおよび帯域制御方法が限定されるものではない。
[帯域確保サービスおよび帯域分配サービス]
まず、図1を用いて、帯域制御システムによって実現される帯域サービスである帯域確保サービスおよび帯域分配サービスについて説明する。図1は、帯域確保サービスおよび帯域分配サービスについて説明するための図である。
帯域確保サービスとは、上限として定められた契約帯域までの帯域をユーザが必要なときにいつでも利用可能とするサービスである。例えば、大量のパケットを送受信するユーザや、常に一定の帯域を必要とするユーザは帯域確保サービスを利用する。一方、帯域分配サービスとは、ユーザが利用できる帯域は状況により変動するが、通信できない状況は回避するサービスである。例えば、利用帯域は定まらないが、たとえ少ない帯域であっても常時帯域を必要とするユーザは帯域分配サービスを利用する。
図1の帯域A1は帯域確保サービスを利用する全ユーザの実利用帯域を示している。また、図1の帯域Bは帯域分配サービスを利用する全ユーザで利用可能な帯域を示している。また、帯域A2は帯域確保サービスの予約帯域を示しており、帯域A2の範囲内で複数のユーザを収容する。また、図1の帯域Cは帯域サービス全体(帯域確保サービスと帯域分配サービス)の予約帯域を示している。また、図1の帯域Dは帯域サービス対象外の帯域を示している。
帯域確保サービスでは、ユーザとの契約帯域を上限として帯域を確保し提供する。このとき、予約帯域の範囲を超えないように帯域A2に複数ユーザの契約帯域を計画収容する。一方、帯域分配サービスでは、帯域Cから帯域A1を引いて帯域Bを求め、帯域Bの範囲内で公平に帯域を分配する。このとき、帯域A1すなわち帯域確保サービスの実利用帯域の変動に応じた残帯域を分配することで、帯域確保サービスユーザが上限まで帯域を利用していない場合であっても、その残帯域を有効に活用できる。このように、帯域分配サービスでは、帯域A1の変動に応じた動的帯域制御を実施する。
帯域Dは、例えば帯域確保サービスと帯域分配サービスを実施した際に、性能限界ぎりぎりまで利用しないようにするバッファとして機能する。もしくは、帯域Dは、ベストエフォート通信サービスとして十分小さい帯域が設定された仮想NICで構成されるVMに割り当てる帯域としてもよい。
[第1の実施形態の概要]
第1の実施形態においては、VM間でのEnd−Endの帯域制御を行う帯域制御システムを実現するため、エッジ側(ホストサーバ)の機能を利用する。具体的には、ハイパーバイザを経由する等して、TCコマンド(参考文献:http://www.lartc.org/)を利用した仮想NICでの制御、ホストサーバでのクラス化キューによる帯域設定・制御で帯域制御システムを実現する。
帯域確保サービスにおいては、VM間の途中経路となる物理機器での輻輳状態によらず上限帯域まで利用可能とする必要がある。このため、物理ネットワーク上の機器はVLAN PCPやIP ToS等に優先度を含め、優先度に応じた優先転送を実施する。また、物理ネットワーク上の機器は、帯域確保サービスの優先度を「高」、帯域分配サービスの優先度を「中」、それ以外の優先度を「低」とする。
物理ネットワーク上の機器は帯域確保サービスに属するトラフィックの優先転送を実施するため、リンク帯域が占有されていないかを監視する。
図1の帯域A2による計画収容の管理と帯域Cの設定は、ホストサーバ内部および物理NICが持つ帯域に対して行われる。ただし、ホストサーバ内部および物理NICに対して行われた収容管理および帯域の設定を同じものとして扱い、例えば、物理NICに対してのみ帯域の管理を行うようにしてもよい。なお、帯域A2は、帯域確保サービスへの計画的なユーザ収容を行う機能によって別途管理されているものとする。
また、一部の通信処理によりホストサーバのCPU負荷やI/O負荷が増加すると、ホストサーバ上での全てのソフトウエア処理が負荷の影響を受けるため、帯域確保サービスの上限帯域を常時利用できない等の問題が生じる。そのため、第1の実施形態においては、例えば負荷の増減に応じて帯域Cを増減させることや、送信元への帯域制御を依頼することによって帯域の制御を実現する。
[第1の実施形態の詳細]
図2を用いて第1の実施形態に係る帯域制御システムの概要について説明する。図2は、第1の実施形態に係る帯域制御システムの概要を示す図である。帯域制御システム1は、仮想マシン出力制御機能部10、サービス判定機能部20、カプセル化機能部30、QoS機能部40および帯域監視機能部50を有する。
仮想マシン出力制御機能部10は、ホストサーバのCPU負荷とI/O負荷の状態を考慮した帯域確保サービスおよび帯域分配サービスを実現する制御を行う。また、サービス判定機能部20は、帯域サービスの種別やその他通信を判別し、パケット等に優先度を示す印を付ける。また、カプセル化機能部30は、オーバーレイ型の仮想ネットワークにおいても優先転送制御の利用が可能となるようにカプセル化を行う。また、QoS機能部40は、ホストサーバおよび物理機器からの出力時に優先転送制御を実施する。また、帯域監視機能部50は、ネットワークリンク上の帯域サービス種別ごとのリンク使用率を監視する。
帯域制御システム1は、各機能部の一部またはすべての組み合わせによって構成される。例として、図2に示すような構成とした場合の帯域制御システム1について説明する。図2の帯域制御システム1において、VMが出力したパケットは、まず、仮想マシン出力制御機能部10を通過する。仮想マシン出力制御機能部10は本機能部が動作するホストサーバ上の全てのVMからの出力を制御できるものであり、各VMの出力量を個別に制御でき、かつ全てのVMの出力総量を制御することができる。
次に、仮想マシン出力制御機能部10を通過したパケットはサービス判定機能部20を通過する。サービス判定機能部20は通過パケットが利用する帯域サービスの種別、もしくはどのサービスも利用しないかを判別して、パケットに対して優先度を付与する。そして、サービス判定機能部20を通過したパケットはカプセル化機能部30を通過する。カプセル化機能部30はパケットが仮想ネットワークを通過可能となるようにカプセル化する。また、カプセル化機能部30はカプセル化後のパケットに対して、カプセル化前の優先度と同一の優先度を付与する。
次に、カプセル化機能部30を通過したパケットはQoS機能部40を通過する。QoS機能部40はパケットに与えられた優先度に従って優先転送を行う。また、帯域監視機能部50は、ネットワーク上のスイッチやルータのインタフェースを監視する。そして、帯域監視機能部50は、帯域確保サービス、帯域分配サービス、その他といった種別ごとに、インタフェース帯域の利用率を計算する。
そして、受信側のカプセル化機能部30aは、カプセル化されたパケットをカプセル化されていない状態に戻す。このとき、優先度はカプセル化前のパケットに付与されているため、カプセル化機能部30aは改めて優先度を付与する必要はない。この後、パケットは受信側のVMによって受信される。
なお、仮想マシン出力制御機能部10およびサービス判定機能部20は、ホストサーバ上の仮想NICと物理NICとの間の区間で動作する。また、カプセル化機能部30およびQoS機能部40は、ホストサーバ上で動作するようにしてもよいし、ホストサーバ外の機器で動作するようにしてもよい。
また、前述のように、ホストサーバ内部および物理NICに対して行われた帯域A2による収容管理と帯域Cの設定を同じものとして扱う場合、帯域Cは物理NICの帯域内の値となる。このため、仮想マシン出力制御機能部10は物理NICの帯域を超えないように帯域の制御を行うため、ホストサーバ上にQoS機能部40を設けない構成としてもよい。また、カプセル化の実行は必須ではないため、カプセル化機能部30を設けない構成であってもよい。また、QoS機能部40およびカプセル化機能部30を配置する順序は、図2に示す順序から入れ替えたものであってもよい。以降、各機能部について詳細に説明する。
[仮想マシン出力制御機能部]
仮想マシン出力制御機能部10は、ホストサーバで利用可能な帯域(図1のC)から、帯域確保サービスを利用する仮想マシンの指定仮想NICに対して指定された帯域を割り当てる。ホストサーバで利用可能な帯域(図1のC)から帯域確保サービスで実利用している帯域(図1のA1)を除いた帯域(図1のB)を、帯域分配サービスを利用する仮想マシンに分配して割り当てる。
また、仮想マシン出力制御機能部10は、通信によるホストサーバでのCPU負荷とI/O負荷を示す指標値が所定の値以上である場合に、帯域分配サービスに割り当て可能な帯域(図1のB)を減少させ、減少させた値に基づいて帯域分配サービスに割り当てる。
図3を用いて仮想マシン出力制御機能部10について説明する。図3は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の構成の一例を示す図である。仮想マシン出力制御機能部10において、あらかじめ、最小制御帯域、最小リセット帯域、およびホストサーバごとに定められたホストサーバ上限帯域(図1のC)が設定されているものとする。最小リセット帯域は最小制御帯域より大きい値とする。また、各部の処理の説明として、図9〜18を適宜用いる。図9〜18は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の各部の処理の一例を示す図である。
図3に示すように、仮想マシン出力制御機能部10は、帯域確保サービス用インタフェースリスト101、帯域分配サービス用インタフェースリスト102、インタフェースリスト読込部103、帯域確保サービス設定部104、帯域利用状況測定部105、帯域利用状況把握部106、帯域計算部107、負荷軽減部108、制御対象判定部109、リセット部110、設定帯域平準化部111、帯域圧縮部112、帯域延伸部113および公平化リスト書出部114を有する。
全仮想NICの出力帯域をホストサーバ単位で制御するため、帯域確保サービス用インタフェースリスト101には、あらかじめ帯域確保サービスに属する仮想NICのリストが登録されている。また、帯域分配サービス用インタフェースリスト102には、あらかじめ帯域分配サービスに属する仮想NICのリストが登録されている。なお、各仮想NICは各リストに重複されて登録されることはない。また、いずれのリストにも登録されていない仮想NICは、例えば、ベストエフォート通信サービスに属する仮想NICである。
図4〜6を用いて、仮想マシン出力制御機能部10の構成について説明する。図4〜6は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の各部の配置例を示す図である。まず、図4に示すように、全機能群をホストサーバ内に配置する場合が考えられる。この場合、各機能の処理はホストサーバ内のエージェントとして独立して動作する。また、図5に示すように、コントローラから全てのホストサーバを集中管理するようにしてもよい。この場合、各機能がコントローラに配置される。
また、図4の配置例において、負荷軽減部108が他のホストサーバへの帯域設定指示を行う場合、負荷軽減部108は他のホストサーバのVMや仮想NICの配置を知らなければならない。このため、図6に示すように、コントローラを経由して、帯域削減依頼・指示がホストサーバ間で行われるようにしてもよい。なお、仮想マシン出力制御機能部10の各機能の配置は、これらに限定されるものではない。
図7を用いて、帯域確保サービス用インタフェースリスト101について説明する。図7は、第1の実施形態に係る帯域制御システムの帯域確保サービス用インタフェースリストの一例を示す図である。図7に示すように、帯域確保サービス用インタフェースリスト101には、帯域確保サービスに属するすべての仮想NICを示すNIC ID、VM名称(VM名)、帯域設定値、動作するホストサーバを示すホストIDが記憶されている。また、NIC IDは帯域設定を行う仮想NICのMACアドレスであってもよい。また、以降の説明において、帯域確保サービス用インタフェースリスト101を確保リストと呼ぶ場合もある。
図8を用いて、帯域分配サービス用インタフェースリスト102について説明する。図8は、第1の実施形態に係る帯域制御システムの帯域分配サービス用インタフェースリストの一例を示す図である。図8に示すように、帯域分配サービス用インタフェースリスト102には、帯域分配サービスに属するすべての仮想NICを示すNIC ID、VM名称(VM名)、帯域設定上限値となるmaxrate、フリーズフラグ、帯域設定値を示すoutbound、動作するホストサーバを示すホストIDが記憶されている。また、NIC IDは帯域設定を行う仮想NICのMACアドレスであってもよい。また、以降の説明において、帯域分配サービス用インタフェースリスト102を分配リストと呼ぶ場合もある。また、フリーズフラグは例えば0、1のような数値であり、以降0である場合はオフ、0以外の値である場合オンとして説明する。
インタフェースリスト読込部103は、確保リストおよび分配リストを読み込む。図4及び図6の形態の場合には、仮想マシン出力制御機能部を実行しているホストサーバを示すホストIDを持つデータのみを抽出して、以降の処理を行う。図5の形態の場合には、全てのデータを対象として、ホストサーバごとに以降の処理を行う。
帯域確保サービス設定部104は、インタフェースリスト読込部103が読み込んだ確保リストを基に、登録されたNIC IDで指定する仮想NICの実帯域設定値を、ホストIDで指定するホストサーバのハイパーバイザから取得する。ここで、帯域確保サービス設定部104は、取得した実帯域設定値が確保リストの帯域設定値と同じか否かを判定する。
実帯域設定値が確保リストの帯域設定値と異なる場合、帯域確保サービス設定部104は確保リストの帯域設定値を仮想NICの実帯域設定値として設定する。このとき、帯域確保サービス設定部104は、VMから見てIN/OUTの両方向に帯域を設定してもよいし、OUT方向にのみに設定してもよい。なお、前述のとおり、帯域確保サービスの予約帯域A2の範囲内での計画的なユーザ収容は別途管理されているものとする。
帯域利用状況測定部105は、制御対象となる全仮想NICの帯域利用状況を定期的に測定する。帯域利用状況測定部105は、例えばハイパーバイザからNIC IDで指定する仮想NICの通過バイト数を取得して帯域を計算する。また、帯域利用状況測定部105は、測定値を実帯域値(real)とし、さらに実帯域値の移動平均値(average)を求める。
帯域利用状況測定部105は、過去複数回測定したrealから平均を求める方法や、前回計算した移動平均(average_old)と今回算出したrealから、average=average_old*(1−n) +real*n (0<n<1)として移動平均値を計算してもよい。このとき、nの値はさまざまな値とできるが、例えば、real>averageの場合、n=1/3とし、それ以外の場合は1/8とすること等により、利用帯域が増加した時に平均値が増加しやすく、利用帯域が減少した時には平均値が減少しにくくなる。
帯域利用状況把握部106は、帯域利用状況測定部105から確保リストおよび分配リストに登録された仮想NICのそれぞれについてのrealおよびaverageを取得し、仮想NICの帯域利用状況として記憶する。
帯域計算部107は、確保リストに登録された仮想NICのaverageの合計であるbrsを算出する。brsは図1の帯域A2以下である。また、帯域計算部107は、分配リストに登録された仮想NICのaverageの合計であるbfsを算出する。また、帯域計算部107は、ホストサーバ上限帯域(図1のC)からbrsを引いたqosを算出する。帯域計算部107は、brs、bfsおよびqosを記憶しておく。
まず、負荷軽減部108は、ホストサーバの状況として、例えばシステム使用率、ユーザ使用率、アイドル率を取得する。負荷軽減部108は、ハイパーバイザからこれらの情報を取得してもよいし、OSから取得してもよい。
システム使用率は、ホストサーバでの通信に伴うCPU負荷を含む値であり、通信によるCPU負荷を示す指標値としてもよい。ユーザ使用率は、VM内部での処理に基づく値が大半となる。アイドル率はCPU負荷がかかっていない部分の割合である。負荷軽減部108は、システム使用率が一定値以上となり、アイドル率が一定値以下となった場合にqosを減少させる。なお、VM内部の処理はユーザ使用率に反映されるため、システム使用率が十分小さい場合には、アイドル率が一定値以下であっても通信処理によるホストサーバのCPU負荷が増加しているわけではないので、負荷軽減部108は処理を行わない。
例えば負荷軽減部108は、ソフトI/O処理を行うプロセスに着目して、一定期間の間に処理にかかった時間をプロセス単位に測定して、その割合を合計することでI/O負荷を示す指標値として求めてもよい。この場合、合計値が一定値以上となったら、負荷軽減部108はqosを減少させる。もしくは、過負荷となる出力元の仮想NICを求めて、コントローラ経由で出力元の仮想NICを管理するホストサーバに帯域を減じる指示を出す。
出力元仮想NICを割り出す方法として、I/O負荷の高いホストサーバ内で、受信パケット数のレートが最も高い仮想NICを洗い出し、その仮想NICを通過するパケットをキャプチャで観測して送信元を割り出す方法が考えられる。このとき、受信パケット数は、例えばハイパーバイザから仮想NICを通過したパケット数を取得することによって求められる。
コントローラから分配リストに登録された仮想NICを示すNIC IDを指定して帯域を減じる指示が来た場合、例えば図9に示す処理によって帯域設定を行う。すなわち、averageより小さい値を仮想NICの実帯域設定値として設定し、フリーズフラグをオンにする。図9の処理において、kはあらかじめ設定された値であり、0<k<1を満たす。例えば、k=0.7とすることができる。また、指示を受けた仮想NICが確保リストに登録されている場合には、コントローラへ設定不可を返信して、コントローラから保守者にアラートを送信する等の処理を行う。
制御対象判定部109は、分配リストに登録された仮想NICのうち、outboundが0である仮想NICの中より、averageが最小制御帯域より大きい仮想NICについては、帯域の利用を開始したと判断して、図10に示すように、outboundとaverageに最小リセット帯域を設定する。
リセット部110は、分配リストに登録された仮想NICのうち、帯域を利用しなくなりつつある仮想NICの帯域を絞り込む。また、全く帯域を利用しない仮想NICは、最小リセット帯域を設定して、outboundを0とすることで制御対象外とする。まず、図11に示す処理によって、帯域の利用量と設定値の乖離が小さい場合には、フリーズフラグをオフにする。
フリーズフラグは、仮想NICのoutboundに比べてaverageは小さいが、一定値以上である場合、またはrealはaverageより一定以上大きい場合にオフに設定される。図11の処理において、k2およびk3はあらかじめ設定された値であり、0<k2<1および0<k3<1が満たされる。例えば、k2=0.7、k3=0.9とすることができる。
次に、リセット部110は、図12に示す処理によって、仮想NICのoutboundとaverageの乖離が大きくなりoutboundを縮小できる仮想NICを抽出して、現在の仮想NICの実帯域設定値より小さな値を新たな実帯域設定値として設定する。かつ、outbound値を新たな帯域設定値として、フリーズフラグをセットする。ここでは、内部フラグを示すflagを用いる。flagは0で初期化されている。k4はあらかじめ設定された値であり、0<k4<1を満たす。例えば、k4=0.8とすることができる。
最後に、リセット部110は、図12の処理でほとんど通信に利用されていない仮想NIC(flag=1)に対して、図13に示す処理によってリセット処理を行う。具体的には、リセット部110は、flag=1である仮想NICの最小リセット帯域を仮想NICの実帯域設定値として設定して、outboundは0として、フリーズフラグをオフにする。
設定帯域平準化部111は、帯域分配サービスに属する仮想NICのoutboundの最大値と最小値の差に一定以上の乖離がある場合に、両者の差を縮める方向で是正する。設定帯域平準化部111は、以下の処理をホストサーバ単位で1回のみ実行してもよいし、複数回実行してもよい。
設定帯域平準化部111は、outboundが0でなく、フリーズフラグがオフである仮想NICから最大値となるoutboundを持つ仮想NICを探し出す。outboundが0でなく、フリーズフラグがオフであり、かつoutboud/maxrateがk5より小さい仮想NICから最小値となるoutboundを持つ仮想NICを探し出して処理を行う。k5はあらかじめ設定された値であり、0<k5<1を満たす。例えば、k5=0.95とすることができる。
そして、設定帯域平準化部111は、outboundが最大である仮想NICと最小である仮想NICのoutboundをそれぞれmax、minとする。最小となる仮想NICを探す際に、outbound=maxrateの仮想NICは除外して探す。また、設定帯域平準化部111は、ホストサーバ内の全ての仮想NICのoutboundの平均をaveとする。
そして、設定帯域平準化部111は、max/min>k6の場合、処理を行う。k6はあらかじめ設定された値であり、k6>1を満たす。例えば、k6=2とすることができる。そして、outboundが最大である仮想NICの再設定値をset_max、outboundが最小である仮想NICの再設定値をset_minとして、図14に示す方法で各再設定値を計算する。k7はあらかじめ設定された値であり、0<k7<1を満たす。例えば、k7=0.33とすることができる。
そして、設定帯域平準化部111は、outboundが最大である仮想NICのset_maxを仮想NICの実帯域設定値として設定して、outboundをset_maxとし、フリーズフラグをオンにする。また、average>set_maxの場合、設定帯域平準化部111は、averageにset_maxを設定する。
また、設定帯域平準化部111は、outboundが最小である仮想NICのmaxrateがset_minより小さい場合、set_min=maxrateとして、set_minを仮想NICの実帯域設定値として設定して、outboundをset_minとし、フリーズフラグをオンにする。また、average<set_minの場合、設定帯域平準化部111は、averageにset_minを設定する。
帯域圧縮部112は、bfs>qosである場合に、仮想マシン出力制御機能部10の前回処理時より、帯域確保サービスユーザの実利用帯域brsが増加したものと判断して処理を行う。帯域圧縮部112は、帯域分配サービスユーザがqosより大きく帯域を利用している場合、仮想マシン出力制御機能部10の前回処理時に設定した帯域分配サービス用の帯域全体を縮小して、qosに合わせる処理を行う。帯域圧縮部112は、qosに1より小さい値をかけて、安全な値にしてから動作判定してもよい。
帯域圧縮部112は、まず、図15に示す方法により、bfsとqosと、動作している仮想NIC数から、減少させる帯域の平均値bw_p_NICを求める。そして、帯域圧縮部112は、帯域分配サービスに属する全仮想NIC数から、所定の割合で帯域を減少させる仮想NICの処理数を求める。そして、outboundが大きいものから順に、処理数だけ仮想NICを抽出する。このとき、フリーズフラグがオンである仮想NICは除外される。
そして、帯域圧縮部112は、図16に示す方法によって、outboundと仮想NICの実帯域設定を再設定する。このとき、帯域圧縮部112は、抽出した仮想NICのoutboundからbw_p_NICを減じた値をoutboundに設定する。また、outboundからbw_p_NICを減じた値が最小制御帯域未満である場合は、最小制御帯域をoutboundに設定する。また、帯域圧縮部112は、averageからbw_p_NICを減じた値をoutboundに設定してもよい。求めたoutbound値に従って、仮想NICの実帯域設定値を再設定する。
帯域延伸部113は、bfs>qosでない場合に、帯域分配サービスユーザの帯域が、図1の帯域Bに達していないものと判断して処理を行う。帯域延伸部113は、帯域分配サービスユーザがqosより少なく帯域を利用している場合、仮想マシン出力制御機能部10の前回処理時に設定した帯域分配サービス用の帯域全体を増加して、qosに合わせる処理を行う。
帯域延伸部113は、まず、図17に示す方法により、bfsとqosと、動作している仮想NIC数から、増加させる帯域の平均値bw_r_NICを求める。そして、帯域延伸部113は、bw_r_NICが最小制御帯域より小さい場合には処理を終了する。全仮想NIC数から所定の割合で、帯域を増加させる仮想NICの処理数を求める。そして、outboundが小さいものから順に、処理数だけ、下記の条件を満たす仮想NICを抽出する。なお、k8はあらかじめ設定された値であり、0<k8<1を満たす。例えば、k8=0.7とすることができる。
(条件)
フリーズフラグがオフ
outbound>0
outbound*k8<average(帯域を利用している)
outbound<maxrate(増加の余地がある)
そして、帯域延伸部113は、図18に示す方法によって、outboundと仮想NICの実帯域設定を再設定する。このとき、帯域延伸部113は、抽出した仮想NICのoutboundにbw_r_NICを加えた値をoutboundに設定する。
また、outboundにbw_r_NICを加えた値がqos*k9より大きく、かつoutboundがqos*k9より小さい場合、qos*k9をoutboundに設定する。なお、k9はあらかじめ設定された値であり、0<k9<1を満たす。例えば、k9=0.3とすることができる。また、outboundにbw_p_NICを加えた値がmaxrateより大きい場合は、maxrateをoutboundに設定する。求めたoutbound値に従って、仮想NICの実帯域設定値を再設定する。
ここで、仮想マシン出力制御機能部10の処理について、図19を用いて説明する。図19は、第1の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の処理の一例を示す図である。図19に示すように、まず、インタフェースリスト読込部103は確保リストおよび分配リストを読み込む(ステップS103)。そして、帯域確保サービス設定部104は設定値と異なる仮想NICの帯域を再設定する(ステップS104)。
帯域利用状況測定部105は仮想NICの帯域利用状況を測定する(ステップS105)。そして、帯域利用状況把握部106は仮想NICのrealおよびaverageを取得する(ステップS106)。次に、帯域計算部107はbrs、bfs、qosを算出する(ステップS107)。ここで、負荷軽減部108は、ホストサーバのCPU負荷とI/O負荷を軽減するための制御を行う(ステップS108)。
制御対象判定部109は制御対象外の仮想NICの中で実際に帯域利用が再開された仮想NICを制御対象とする(ステップS109)。そして、リセット部110は帯域を使用しなくなりつつある仮想NICの帯域を絞り込み、または、全く帯域を利用しない仮想NICを制御対象外とする(ステップS110)。次に、設定帯域平準化部111は最大の帯域設定となる仮想NICと最小の帯域設定となる仮想NIC間の、帯域設定値の差を小さくするように、帯域を再設定する(ステップS111)。
帯域圧縮部112は、bfs>qosである場合(ステップS116、Yes)に、帯域の圧縮を行う(ステップS112)。また、帯域延伸部113は、bfs>qosでない場合(ステップS116、No)に、帯域の延伸を行う(ステップS113)。最後に、公平化リスト書出部114は新たな分配リストを出力する(ステップS114)。
[サービス判定機能部]
ここで、サービス判定機能部20について説明する。サービス判定機能部20の方式として、入力パケットに対して直接優先度を付与する第1の方式、および入力パケットの優先度を把握して優先度情報をカプセル化機能部30に送付する第2の方式が考えられる。帯域制御システム1がカプセル化機能部30を備えない構成である場合は、第1の方式を採用する必要がある。
サービス判定機能部20またはカプセル化機能部30は、ホストサーバ上の仮想マシンから送出されたパケットに対し、仮想マシンの利用するサービスの種別に応じた優先度を、物理ネットワーク上で認識可能な形式で付与する。また、サービス判定機能部20またはカプセル化機能部30は、帯域確保サービスを利用する仮想マシンから送出されたパケットに、帯域分配サービスを利用する仮想マシンから送出されたパケットより高い優先度を付与する。どちらのサービスも利用しないパケットには、帯域分配サービスより低い優先度を付与する。
[第1の方式]
図20を用いて第1の方式について説明する。図20は、第1の実施形態に係る帯域制御システムのサービス判定機能部の第1の方式について説明するための図である。図20に示すように、第1の方式において、サービス判定機能部20は、まず仮想NICが出力したパケットのイーサネット(登録商標)ヘッダ情報やIPヘッダ情報、送信元仮想NICの、各情報の組み合わせにより、帯域確保サービスに該当するか、帯域分配サービスに該当するか、もしくはいずれにも該当しないかを判定し、判定結果とパケット情報を優先度マーキング機能に送付する(ステップS211)。
サービス判定機能部20は、送信元仮想NICのMACアドレスを判定の条件として用いてもよい。その他にもサービス判定機能部20は、送信元仮想NICのMACアドレスと宛先仮想NICのMACアドレスの両方を条件としてもよいし、送信元仮想NICのMACアドレスとIPルータのMACアドレス(送信元仮想NICと同一論理LANに属するインタフェースのMACアドレス)と、送信元仮想NICのIPアドレスと宛先仮想NICのIPアドレスを判定条件としてもよい。また、サービス判定機能部20は、優先度が高い条件から判定を進める。
次に、サービス判定機能部20は、サービス判定機能での判定の結果に応じて、あらかじめ設定された優先度をパケットに付与する(ステップS212)。サービス判定機能部20は、帯域確保サービスを利用するパケットに最高の優先度を設定し、帯域分配サービスを利用するパケットに中の優先度を設定し、どのサービスにも属さないパケットには最低の優先度を設定する。サービス判定機能部20は、例えばIPパケットのToS(Type Of Service)フィールド、またはイーサネットヘッダのVLANの PCPフィールド、もしくはその両方に優先度を設定する。
[第2の方式]
図21を用いて第2の方式について説明する。図21は、第1の実施形態に係る帯域制御システムのサービス判定機能部の第2の方式について説明するための図である。図21に示すように、第2の方式において、サービス判定機能部20は、通過するパケットが帯域確保サービスや帯域分配サービスの対象となるか、もしくはいずれのサービスも利用しないかを判定して(ステップS221)、その判定結果をカプセル化機能部30へ送信する(ステップS222)。なお、サービス判定機能部20は、第2の方式においても第1の方式と同様の判定方法を用いる。
[カプセル化機能部]
カプセル化機能部30は、オーバーレイ型の仮想ネットワークを利用する場合に利用する。カプセル化機能部30は、カプセル化の実施、およびカプセルの解除を行う。カプセル化する際には、カプセル化前の優先度情報をカプセル化後の優先度情報として継承させる。また、カプセル化機能部30は、カプセル化部によってカプセル化が行われたパケットに対して優先度を付与する。
また、カプセル化機能部30は、前述したサービス判定機能部20の第1の方式および第2の方式に対応した方式によって動作する。なお、サービス判定機能部20において第2の方式が採用されている場合は、カプセル化機能部30にパケットが到達した時点では優先度設定が行われていないため、カプセル化機能部30の前にQoS機能部40を備えないように構成する必要がある。
[第1の方式]
サービス判定機能部20で第1の方式が採用されている場合、カプセル化機能部30においても第1の方式が採用される。図22を用いて第1の方式について説明する。図22は、第1の実施形態に係る帯域制御システムのカプセル化機能部の第1の方式について説明するための図である。図22に示すように、第1の方式において、カプセル化機能部30は、まず、カプセル化を行うかカプセルの解除を行うかを判定する(ステップS311)。
カプセル化機能部30は、カプセルを解除する場合(ステップS311、解除)、カプセルの解除を行い(ステップS315)処理を終了する。具体的には、カプセル化機能部30は、入力パケット(イーサフレーム全体)の中に含まれるカプセル化する前のパケット(イーサフレーム全体)を取り出し、出力する。
カプセル化機能部30は、カプセル化を行う場合(ステップS311、カプセル化)、まず、IPパケットのToSフィールド、または、イーサネットヘッダのVLAN PCPフィールドに記載された優先度を読み込み、パケットの優先度を把握する(ステップS312)。
そして、カプセル化機能部30は、入力パケット(イーサフレーム全体)に対して、新たなカプセル化後の送信元IPアドレスと宛先IPアドレスを適用し、IPパケットとしてカプセル化する(ステップS313)。カプセル化の方式としてVXLAN、GRE、NVGRE、STT等を用いることができる。
また、カプセル化機能部30は、カプセル化パケットに入力元イーサネットフレームが所属する論理NWを識別するID情報を設定してもよい。ID情報を挿入する位置は、各種のカプセル化方式で規定されたフィールドとする(VXLANの場合:VNIフィールド、GREの場合:keyフィールド、NVGREの場合:VSIDフィールド、STTの場合:context IDフィールド)。そして、カプセル化機能部30は、カプセル化前に把握した優先度を、カプセル化したパケットの対応するフィールドに対して付与する(ステップS314)。
[第2の方式]
サービス判定機能部20で第2の方式が採用されている場合、カプセル化機能部30においても第2の方式が採用される。図23を用いて第2の方式について説明する。図23は、第1の実施形態に係る帯域制御システムのカプセル化機能部の第2の方式について説明するための図である。図23に示すように、第2の方式において、カプセル化機能部30は、まず、カプセル化を行うかカプセルの解除を行うかを判定する(ステップS321)。カプセル化機能部30は、カプセルを解除する場合(ステップS321、解除)、第1の方式と同様の方法でカプセルの解除を行い(ステップS324)処理を終了する。
カプセル化機能部30は、カプセル化を行う場合(ステップS321、カプセル化)、第1の方式と同様の方法でカプセル化を行う(ステップS322)。そして、カプセル化機能部30は、サービス判定機能部20から優先度情報を受け取り、カプセル化前に把握した優先度を、カプセル化したパケットの対応するフィールドに対して付与する(ステップS323)。
[QoS機能部]
QoS機能部40は、IPヘッダのToSフィールド、またはイーサネットヘッダのVLAN PCPフィールドに記載された優先度に従って優先転送制御を行う。
[帯域監視機能部]
帯域監視機能部50は、物理ネットワークリンクの利用状況を取得して、帯域確保サービスの通信が帯域を圧迫していないかを監視する。帯域監視機能部50は、監視のために、VLAN PCPフィールドもしくはIP TOSフィールドの値別に送受信トラフィック量を把握する。帯域監視機能部50がルータやスイッチに備えられている場合、帯域監視機能部50はSNMPにより送受信トラフィック量を取得することができる。
帯域監視機能部50がルータやスイッチに備えられていない場合、帯域監視機能部50は例えばSFLOW(参考文献:"InMon Corporation's sFlow: A Method for Monitoring Traffic in Switched and Routed Networks" , RFC3176, IETF.)やフローコレクタを組合せて監視を行う。
まず、帯域監視機能部50は監視対象のネットワークリンクが接続するルータやスイッチのインタフェースの帯域と通過パケット量をSNMPにて取得する。 そして、帯域監視機能部50は、通過パケット量がインタフェース帯域の大半を占めているものについてフローコレクタで解析をする。フローコレクタは、VLAN PCPやIP TOSの値ごとに何パーセントを占めているかを測定する。SNMPの測定でインタフェース帯域をほぼ利用しており、かつフローコレクタの解析で帯域確保サービスに対応するVLAN PCPもしくはIP TOSの値を持つパケットが大半を占める場合、帯域監視機能部50は、帯域確保サービスの通信が帯域を圧迫していると判定する。
[第1の実施形態の効果]
仮想マシン出力制御機能部10は、ホストサーバで利用可能な帯域から、一定の帯域を確保する帯域確保サービスを利用する仮想マシンに対して一定の帯域を優先して割り当て、利用可能な帯域から帯域確保サービスが実際に利用している帯域を除いた帯域を分配する帯域分配サービスを利用する仮想マシンに割り当てる帯域を、ホストサーバの通信による負荷状況に応じて調整する。
具体的に、仮想マシン出力制御機能部10は、通信によるホストサーバでのCPU負荷とI/O負荷を示す指標値が所定の値以上である場合に、ホストサーバの利用可能な帯域および帯域確保サービスによる帯域の使用状況に基づいて算出される、帯域分配サービスに割り当て可能な帯域の設定値を減少させ、減少させた設定値に基づいて帯域分配サービスに割り当てる帯域を調整する。
また、サービス判定機能部20またはカプセル化機能部30は、ホストサーバ上の仮想マシンから送出されたパケットに対し、仮想マシンの利用するサービスの種別に応じた優先度を、物理ネットワーク上で認識可能な形式で付与する。
また、サービス判定機能部20またはカプセル化機能部30は、帯域確保サービスを利用する仮想マシンから送出されたパケットに、帯域分配サービスを利用する仮想マシンから送出されたパケットより高い優先度を付与する。
例えば、サービス判定機能部20またはカプセル化機能部30は、帯域確保サービスを利用する仮想マシンから送出されたパケット、帯域分配サービスを利用する仮想マシンから送出されたパケット、いずれのサービスも利用しない仮想マシンから送出されたパケットの順で高い優先度を付与する。また、カプセル化機能部30はカプセル化部によってカプセル化が行われたパケットに対して優先度を付与する。
このように、第1の実施形態の帯域制御システム1によれば、仮想環境においてホストサーバ内の仮想NICから物理NICまでの区間での帯域制御を行うことができるようになるため、仮想環境における帯域確保サービスおよび帯域分配サービスを実現することができ、さらに送信元仮想NICから宛先仮想NICまでのEnd−End帯域サービスを実現できる。
また、第1の実施形態の負荷軽減部108は、ホストサーバ内での帯域制御によってホストサーバにおける通信により発生するCPU負荷とI/O負荷状態に対応している。このため、通信に伴う負荷による通信帯域低下を避けることができる。
また、第1の実施形態のサービス判定機能部20やカプセル化機能部30は、オーバーレイ型の仮想ネットワークを用いた場合であっても、カプセル化前の印をカプセル化後のパケットに継承することができ、物理ルータや物理スイッチの帯域制御機能と連携することができる。
[第2の実施形態]
第1の実施形態において、仮想マシン出力制御機能部10は、全VMの出力帯域を制御することによって帯域制御を実現している。これに対して、第2の実施形態では、クラス化キューイングにより帯域制御を実現する。
[第2の実施形態の詳細]
第2の実施形態に係る帯域制御システム1の構成は、仮想マシン出力制御機能部10を除いて第1の実施形態に係る帯域制御システム1の構成と同様である。以降、第2の実施形態で用いるクラス化キューイングについて説明し、その後仮想マシン出力制御機能部10の構成について説明する。
[クラス化キューイング]
図24を用いてクラス化キューイングについて説明する。図24は、第2の実施形態に係る帯域制御システムの仮想マシン出力制御機能部におけるキューの構成の一例を示す図である。図24の各クラスにおいて、「1:21」等はクラス名を表している。また、rateは要求帯域を表している。また、ceilが設定されているクラスには、同一階層内で帯域が余った場合にceilで示した値までrateを設定することができる。各クラスには、rateやceilで示す帯域制御を行うためのキューが紐付いている。
クラス化キューイングは、ホストサーバの利用可能な帯域が要求帯域として割り当てられたClass1:、Class1:の下位クラスであって帯域確保サービスで使用される帯域が要求帯域として割り当てられたクラス1:11、Class1:の下位クラスであって帯域分配サービスで使用される帯域が要求帯域として割り当てられたクラス1:12、クラス1:12の下位クラスであってクラス1:12に割り当てられた帯域を分配した帯域が要求帯域として割り当てられたクラス1:21等の末端クラスによって構成される。
Class1:では図1の帯域Cに相当する帯域を定義する。Class1:のrateは10Gbpsに設定されている。そして、クラス1:11は帯域確保サービスで利用するキューを示し、図1の帯域A2と対応している。クラス1:11のrateは5Gbpsに設定されている。
クラス1:21が属する帯域分配階層に属するクラス(クラス1:22、クラス1:23等)は、帯域分配サービスで利用するクラスである。帯域分配サービスの合計帯域はクラス1:12で定義され、帯域分配サービスではこの設定値を超えて帯域を利用することはできない。ただし、クラス1:12のrateは帯域確保サービスの帯域と分け合い5Gbpsと設定されているが、帯域確保サービスユーザが帯域を利用していない場合には、ceilに設定されているように最大で10Gbpsまで利用可能である。
帯域分配サービスのクラスの数は、後述するパケット振分処理におけるマッチングルールの記載方法によって変化する。帯域分配サービスで利用するクラスは、公平化したい単位ごとに1つとする。例えば、テナント単位で公平化したい場合にはホストサーバに収容するテナントごとにひとつのクラスに紐付き、VM単位で公平化したい場合にはホストサーバに収容するVMがそれぞれ異なるクラスに紐付くことになる。
なお、各クラスで設定するrateは、同一階層のクラスに設定したrateの合計値が接続している上位階層のrateで示す帯域を超えないようにする。また、各クラスのceilは、接続している上位階層のceilを超えないようにする。仮想マシン出力制御機能部10は、クラス1:11、1:12および末端クラスの要求帯域を増減させることで帯域分配サービスを利用する仮想マシンに割り当てる帯域を調整する。また、クラスごとにパケットを転送するためのキューが用意されており、rateやceilに従って帯域制御が行われる。
図25を用いて仮想マシン出力制御機能部の構成について説明する。図25は、第2の実施形態に係る帯域制御システムの仮想マシン出力制御機能部の構成の一例を示す図である。図25に示すように、仮想マシン出力制御機能部10はパケット振分部121およびレート制御部122を有する。
パケット振分部121は、入力されたパケットのイーサネットフレームヘッダ情報、IPヘッダ情報、もしくはそれらを組み合わせた情報と判定条件を比較して、入力パケットが帯域確保サービスに属するか、帯域分配サービスに属するかを判定する。
そして、パケット振分部121は、帯域確保サービスに属するパケットをクラス1:11のキューに保存する。また、パケット振分部121は、帯域分配サービスに属するパケットを、さらに細かい判定条件に従って、帯域分配階層のいずれかのクラスのキューに保存する。例えば、パケット振分部121は帯域確保サービスを利用する仮想マシンから送出されたパケットをクラス1:11に振り分け、帯域分配サービスを利用する仮想マシンから送出されたパケットを末端クラスに振り分ける。
パケット振分部121は、送信元仮想NICのMACアドレスを判定の条件として用いてもよい。その他にもパケット振分部121は、送信元仮想NICのMACアドレスと宛先仮想NICのMACアドレスの両方を条件としてもよいし、送信元仮想NICのMACアドレスとIPルータのMACアドレス(送信元仮想NICと同一論理LANに属するインタフェースのMACアドレス)と、送信元仮想NICのIPアドレスと宛先仮想NICのIPアドレスを判定条件としてもよい。
レート制御部122は、パケット振分部121が各キューに送信したパケットを帯域設定に従って帯域制御を行い出力する。例えば、レート制御部122は、各クラスに割り当てた帯域設定に従い、パケットの転送レートを制御する。
レート制御部122は、例えばLinux(登録商標)のモジュールであるIFB(参考文献:http://www.linuxfoundation.org/collaborate/workgroups/networking/ifb)とTCコマンドによって実現される。また、ホストサーバのOS上の仮想NICとの接続インタフェースにおいてIFBへのフォワーディングルールを記載して、IFB上でレート制御部122を動作させてもよい。
ここで、図26を用いて、第2の実施形態の処理について説明する。図26は、第2の実施形態に係る帯域制御システムのクラス化キューイングの処理および仮想マシン出力制御機能部の処理の一例を示す図である。
図26に示すように、まず、仮想マシン出力制御機能部10は、各クラスのceilに基づいてrate、すなわち要求帯域の調整を行う(ステップS120)。このように、仮想マシン出力制御機能部10は、クラス1:12および末端クラスの要求帯域を増減させることで帯域分配サービスを利用する仮想マシンに割り当てる帯域を調整する。
次に、パケット振分部121は、各クラスにパケットを振り分ける(ステップS121)。このとき、パケット振分部121は帯域確保サービスを利用する仮想マシンから送出されたパケットをクラス1:11に振り分け、帯域分配サービスを利用する仮想マシンから送出されたパケットを末端クラスに振り分ける。
そして、レート制御部122は、各キューに送信したパケットを帯域設定に従ってレート制御を行う(ステップS122)。このとき、レート制御部122は、各クラスに割り当てた帯域設定に従い、パケットの転送レートを制御する。
[第2の実施形態の効果]
ホストサーバで利用可能な帯域を割り当てたClass1:、Class1:の下位クラスであって帯域確保サービスで使用される帯域を割り当てたクラス1:11、Class1:の下位クラスであって帯域分配サービスで使用される帯域を割り当てたクラス1:12、クラス1:12の下位クラスであってクラス1:12に割り当てた帯域を分配した帯域を割り当てたクラス1:21等の末端クラスによって構成されるクラス化キューイングにおいて、パケット振分部121は帯域確保サービスを利用する仮想マシンから送出されたパケットをクラス1:11に振り分け、帯域分配サービスを利用する仮想マシンから送出されたパケットを末端クラスに振り分ける。
また、レート制御部122は、各クラスに割り当てた帯域設定に従い、パケットの転送レートを制御する。仮想マシン出力制御機能部10は、クラス1:12および末端クラスの要求帯域を増減させることで帯域分配サービスを利用する仮想マシンに割り当てる帯域を調整する。
このように、第2の実施形態の帯域制御システム1によれば、第1の実施形態の帯域制御システム1と同様に、仮想環境においてホストサーバ内の仮想NICから物理NICまでの区間での帯域制御を行うことができるようになるため、仮想環境における帯域確保サービスおよび帯域分配サービスを実現することができ、さらに送信元仮想NICから宛先仮想NICまでのEnd−End帯域サービスを実現できる。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図27は、プログラムが実行されることにより、帯域制御システムが実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、帯域制御システム1の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、帯域制御システム1における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
1 帯域制御システム
10 仮想マシン出力制御機能部
20 サービス判定機能部
30 カプセル化機能部
40 QoS機能部
50 帯域監視機能部
101 帯域確保サービス用インタフェースリスト
102 帯域分配サービス用インタフェースリスト
103 インタフェースリスト読込部
104 帯域確保サービス設定部
105 帯域利用状況測定部
106 帯域利用状況把握部
107 帯域計算部
108 負荷軽減部
109 制御対象判定部
110 リセット部
111 設定帯域平準化部
112 帯域圧縮部
113 帯域延伸部
114 公平化リスト書出部
121 パケット振分部
122 レート制御部

Claims (7)

  1. ホストサーバ上で動作する仮想マシンから送出されたパケットを、物理ネットワークを介して他の仮想マシンに転送するネットワークシステムにおける帯域の制御を行う帯域制御システムであって、
    前記ホストサーバで利用可能な帯域から、一定の帯域を確保する帯域確保サービスを利用する仮想マシンに対して前記一定の帯域を優先して割り当て、前記利用可能な帯域から前記帯域確保サービスが実際に利用している帯域を除いた帯域を分配する帯域分配サービスを利用する仮想マシンに割り当てる帯域を、前記ホストサーバの通信による負荷状況に応じて調整する出力制御部と、
    前記パケットに対し、前記帯域確保サービスを利用する仮想マシンから送出されたパケットの優先度が前記帯域分配サービスを利用する仮想マシンから送出されたパケットの優先度より高くなるように、前記ネットワークシステム上で認識可能な形式で優先度を付与する優先度付与部と、
    を有することを特徴とする帯域制御システム。
  2. 前記優先度付与部は、前記帯域確保サービスを利用する仮想マシンから送出されたパケットには第1の優先度を、前記帯域分配サービスを利用する仮想マシンから送出されたパケットには前記第1の優先度より低い第2の優先度を、いずれのサービスも利用しない仮想マシンから送出されたパケットには前記第2の優先度より低い第3の優先度をそれぞれ付与することを特徴とする請求項1に記載の帯域制御システム。
  3. 前記ホストサーバにおける通信による前記ホストサーバでのCPU負荷とI/O負荷を示す指標値が所定の値以上である場合に、前記ホストサーバの利用可能な帯域および前記帯域確保サービスによる帯域の使用状況に基づいて算出される、前記帯域分配サービスに割り当て可能な帯域の設定値を減少させる負荷軽減部をさらに有し、
    前記出力制御部は、前記負荷軽減部によって減少させられた前記設定値に基づいて前記帯域分配サービスに割り当てる帯域を調整することを特徴とする請求項1または2に記載の帯域制御システム。
  4. 前記ホストサーバの利用可能な帯域が要求帯域として割り当てられたホストサーバクラス、前記ホストサーバクラスの下位クラスであって前記帯域確保サービスで使用される帯域が要求帯域として割り当てられた帯域確保サービスクラス、前記ホストサーバクラスの下位クラスであって前記帯域分配サービスで使用される帯域が要求帯域として割り当てられた帯域分配サービスクラス、前記帯域分配サービスクラスの下位クラスであって前記帯域分配サービスクラスに割り当てられた帯域を分配した帯域が要求帯域として割り当てられた1つ以上の末端クラスのいずれかに振り分けられたパケットのうち、前記帯域確保サービスクラスに振り分けられたパケットの転送レートを、前記要求帯域に従い制御するキューイング処理部と、
    前記帯域確保サービスを利用する仮想マシンから送出されたパケットを前記帯域確保サービスクラスに振り分け、前記帯域分配サービスを利用する仮想マシンから送出されたパケットを前記末端クラスに振り分ける振分部と、をさらに有し、
    前記出力制御部は、前記帯域分配サービスクラスおよび前記末端クラスの要求帯域を増減させることで前記帯域分配サービスを利用する仮想マシンに割り当てる帯域を調整することを特徴とする請求項1または2に記載の帯域制御システム。
  5. 前記ホストサーバに上の仮想マシンから送出されたパケットをカプセル化するカプセル化部をさらに有し、
    前記優先度付与部は、前記カプセル化部によってカプセル化が行われたパケットに対して優先度を付与することを特徴とする請求項1から4のいずれか1項に記載の帯域制御システム。
  6. 前記帯域確保サービスによる通信が前記物理ネットワークの帯域を圧迫しているか否かを判定する監視部をさらに有することを特徴とする請求項1から5のいずれか1項に記載の帯域制御システム。
  7. ホストサーバ上で動作する仮想マシンから送出されたパケットを、物理ネットワークを介して他の仮想マシンに転送するネットワークシステムにおける帯域の制御を行う帯域制御システムで実行される帯域制御方法であって、
    前記ホストサーバで利用可能な帯域から、一定の帯域を確保する帯域確保サービスを利用する仮想マシンに対して前記一定の帯域を優先して割り当て、前記利用可能な帯域から前記帯域確保サービスが実際に利用している帯域を除いた帯域を分配する帯域分配サービスを利用する仮想マシンに割り当てる帯域を、前記ホストサーバの通信による負荷状況に応じて調整する出力制御工程と、
    前記パケットに対し、前記帯域確保サービスを利用する仮想マシンから送出されたパケットの優先度が前記帯域分配サービスを利用する仮想マシンから送出されたパケットの優先度より高くなるように、前記ネットワークシステム上で認識可能な形式で優先度を付与する優先度付与工程と、
    を含んだことを特徴とする帯域制御方法。
JP2015164200A 2015-08-21 2015-08-21 帯域制御システムおよび帯域制御方法 Active JP6352869B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015164200A JP6352869B2 (ja) 2015-08-21 2015-08-21 帯域制御システムおよび帯域制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015164200A JP6352869B2 (ja) 2015-08-21 2015-08-21 帯域制御システムおよび帯域制御方法

Publications (2)

Publication Number Publication Date
JP2017041858A true JP2017041858A (ja) 2017-02-23
JP6352869B2 JP6352869B2 (ja) 2018-07-04

Family

ID=58203748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015164200A Active JP6352869B2 (ja) 2015-08-21 2015-08-21 帯域制御システムおよび帯域制御方法

Country Status (1)

Country Link
JP (1) JP6352869B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11018986B2 (en) 2017-09-21 2021-05-25 Kabushiki Kaisha Toshiba Communication apparatus, communication method, and computer program product

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11150565A (ja) * 1997-11-18 1999-06-02 Toshiba Corp ノード装置及びパケット転送方法
JP2007266933A (ja) * 2006-03-28 2007-10-11 Yokogawa Electric Corp 広域ネットワークシステム
JP2012015688A (ja) * 2010-06-30 2012-01-19 Sony Corp データ処理装置、及びデータ処理方法
JP2013196604A (ja) * 2012-03-22 2013-09-30 Hitachi Ltd 計算機及び帯域制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11150565A (ja) * 1997-11-18 1999-06-02 Toshiba Corp ノード装置及びパケット転送方法
JP2007266933A (ja) * 2006-03-28 2007-10-11 Yokogawa Electric Corp 広域ネットワークシステム
JP2012015688A (ja) * 2010-06-30 2012-01-19 Sony Corp データ処理装置、及びデータ処理方法
JP2013196604A (ja) * 2012-03-22 2013-09-30 Hitachi Ltd 計算機及び帯域制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ローウィ スコット SCOTT LOWE, マスタリングVMWARE VSPHERE 5.5 初版, vol. 第1版, JPN6018007063, 21 August 2014 (2014-08-21), pages 659 - 663 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11018986B2 (en) 2017-09-21 2021-05-25 Kabushiki Kaisha Toshiba Communication apparatus, communication method, and computer program product

Also Published As

Publication number Publication date
JP6352869B2 (ja) 2018-07-04

Similar Documents

Publication Publication Date Title
CA2940976C (en) Dynamic allocation of network bandwidth
US8638799B2 (en) Establishing network quality of service for a virtual machine
US9819607B2 (en) Method and system for resource coherency and analysis in a network
CN108337188B (zh) 通信量和负载感知动态队列管理
KR101583325B1 (ko) 가상 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
WO2011074516A1 (ja) ネットワークシステムとその制御方法、及びコントローラ
US9025443B2 (en) Network equipment and frame transmission control method
JP7288980B2 (ja) 仮想サービスネットワークにおけるサービス品質
KR20160041631A (ko) 서비스 품질 인지 라우팅 제어 장치 및 라우팅 제어 방법
US20150103646A1 (en) Allocating network bandwith
KR101639797B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
US20070268825A1 (en) Fine-grain fairness in a hierarchical switched system
CN104750539B (zh) 用于服务质量的虚拟化的方法和装置
EP3031184A1 (en) Performing quality-of-service on unknown bandwidths through rate estimating tcp congestion controllers
KR20170033179A (ko) 소프트웨어 정의 네트워크 기반 가상 네트워크 사용 대역폭 관리 방법 및 가상 네트워크 관리장치
Mao et al. Efficient mismatched packet buffer management with packet order-preserving for OpenFlow networks
JP6352869B2 (ja) 帯域制御システムおよび帯域制御方法
JP2013179678A (ja) ルータ装置
Muramatsu et al. VSE: Virtual switch extension for adaptive CPU core assignment in softirq
JP5328087B2 (ja) ルータ装置
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
US20170244638A1 (en) Control apparatus, control method and control system
KR20180134219A (ko) 가상머신 패킷의 처리방법과 그 장치
WO2019117509A1 (ko) 종단간 네트워크 서비스의 품질 보장을 위한 응답 시간 기반 그래프 선택 관리 방법
KR101773528B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180427

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180607

R150 Certificate of patent or registration of utility model

Ref document number: 6352869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150