JP5871233B2 - 計算機及び帯域制御方法 - Google Patents

計算機及び帯域制御方法 Download PDF

Info

Publication number
JP5871233B2
JP5871233B2 JP2012065648A JP2012065648A JP5871233B2 JP 5871233 B2 JP5871233 B2 JP 5871233B2 JP 2012065648 A JP2012065648 A JP 2012065648A JP 2012065648 A JP2012065648 A JP 2012065648A JP 5871233 B2 JP5871233 B2 JP 5871233B2
Authority
JP
Japan
Prior art keywords
bandwidth
virtual machine
virtual
machine group
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012065648A
Other languages
English (en)
Other versions
JP2013196604A (ja
Inventor
水野 和彦
和彦 水野
貴之 今田
貴之 今田
直也 服部
直也 服部
雄次 對馬
雄次 對馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012065648A priority Critical patent/JP5871233B2/ja
Priority to US13/760,717 priority patent/US20130254767A1/en
Publication of JP2013196604A publication Critical patent/JP2013196604A/ja
Application granted granted Critical
Publication of JP5871233B2 publication Critical patent/JP5871233B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、仮想計算機が稼働する計算機システムにおけるネットワークの帯域制御技術に関する。
物理サーバの計算機資源を分割して利用するサーバ仮想化技術が普及期を迎え、物理サーバによるハードウェア・アシスト機能も充実しつつある。
物理サーバは、計算機資源としてCPU及びI/Oデバイスを有しており、CPUについては、Intel社(Intelは、登録商標以下同じ)のVT-x等のハードウェア・アシスト機能が既に広く使用されている。一方、I/Oデバイスは、仮想化のオーバヘッドが問題となる。特に、NIC(Network Interface Card)は広帯域化が急激に進んでおり、NICを共有するためのオーバヘッドが肥大化している。
前述のオーバヘッドの発生によって、物理サーバ内部の計算機資源であるCPUの処理能力を浪費する問題、及びNIC本来の用途である広帯域を利用できない問題が生じている。また、特定の仮想サーバ(VM:Virtual Machine)又は複数の仮想サーバをグループ化した仮想サーバ群(VM Group)が大量のデータを送受信する場合、他のVM及びVM Groupの利用帯域を保証できない問題も生じている。
ネットワーク帯域を保証する技術としては、WRR(Weighted Round Robin)方式に、利用帯域の上限及び下限の制御を付加した機能をNICに実装させ、VM側の仮想NIC(VNIC)と物理サーバ側のNICとの間の帯域を制御することによってVMの利用帯域を保証する技術が提案されている(例えば、特許文献1参照)。ここで、WRR方式は、VMの優先順位を設定し、時分割で帯域の利用権限を有するVMを変更させる帯域の制御方式である。
また、ハードウェアによるI/Oデバイス仮想化支援機構として、PCI規格の策定等を行う業界団体であるPCI−SIG(Peripheral Component Interconnect Special Interest Group)が、PCIデバイス側で仮想化をサポートするSR−IOV(Single Root I/O Virtualization)を標準化している。SR−IOVでは、PCIデバイスが複数の仮想I/Oデバイス(VF:Virtual Function)を提供しており、VMにVFを占有で割り当てることによってPCIデバイスをVM間で共有することができる。また、SR−IOVのデファクトスタンダードとして、あるVMが帯域を独占して利用することを防ぐために、VF毎に送信帯域の上限を設定する機能が提供されている。
また、ネットワークの帯域制御をソフトウェアとして実装した技術としては、Cisco社(Ciscoは登録商標以下同じ)のNexus 1000VがVMware社(VMwareは登録商標以下同じ)のVMware vSphere(VMware vSphereは登録商標以下同じ)と連携してLANスイッチをソフトウェアとして提供している(例えば、非特許文献1参照)。
具体的には、VMware ESXカーネル、又は、VMware ESXiカーネルの一部として実装されたVEM(Virtual Ethenet Module)が、VMware Virtual Switch機能の代わりとして稼働し、物理サーバにソフトウェアとして実装されたVSM(Virtual Supervisor Module)がVEMを制御することによって、VMと物理サーバのNICとの間で利用帯域を動的に調整する。
さらに、ネットワークの帯域制御に関する外部スイッチの規格としては、拡張されたイーサネット(イーサネットは登録商標以下同じ)の規格であるCEE(Converged Enhanced Ethernet)でPFC(Priority−based Flow Control)機能とETS(Enhanced Transmission Control)機能が標準化されている。
PFC機能は、帯域の過渡な利用を防止するために、プライオリティを付加した状態でトラフィックを分割し、分割されたトラフィックが輻輳状態になった場合にPAUSEフレームを送信することによってデータ送信を一時停止させ、輻輳によるフレーム消失を解消するための機能である。ETS機能は、プライオリティ付けしたトラフィックをグループに割り当て、WRRにより各グループの帯域制御を行う機能である。このPFC機能及びETS機能によって、CEEスイッチ間で利用帯域を保証することができる。
特開2009−23937号公報
特許文献1に記載の技術のように、物理サーバのNICが帯域制御機能を実装する場合、物理サーバの計算機資源であるCPUを浪費することなく広帯域と帯域保証とを実現することができる。
しかし、特許文献1に記載の発明では、NICに所定の設定を行う必要があり、また、個々のVMの帯域保証しか行えない。したがって、複数のVMを同一業務に利用する環境においては、当該業務に対する帯域保証を行うことができない。たとえ、複数のVMの帯域保証を行うためにNICの実装を変更した場合であっても、当該業務で利用するVM数に制限があるため、限定的な計算機システムにのみ利用されることになる。
PCI−SIGのSR−IOVを利用した場合には、VF毎に送信帯域の上限を設定することができるため広帯域の実現が可能である。
しかし、複数のVMが共有して利用するPCIデバイスに対して、共有しているVM間の利用状況に合わせた帯域制御を行うことができないため、共有しているVM間の帯域保証を実現することができない。
ネットワークの帯域制御をソフトウェアとして実装した場合には、Nexus 1000Vと同等の機能をソフトウェアで実装しており、外部スイッチの提供機能が利用できるため、VMの帯域保証を実現することができる。
しかし、物理サーバのCPUを用いてエミュレーションを行うため、物理サーバの計算機資源であるCPUの浪費が大きくなり、10Gbps等の広帯域実現は困難である。
CEEのPFC機能及びETS機能を利用した外部スイッチによる帯域制御の場合、物理サーバの計算機資源であるCPUの浪費がなく、広帯域であっても帯域を保証することができる。
しかし、外部スイッチは、個々のVMの利用帯域を把握できず、VMから外部スイッチに至る経路にあるNICに対してのみ帯域を制御するため、NICにアクセスする個々のVMの帯域保証及び複数のVM間の帯域保証を行うことができない。
以上のように、ハードウェアに実装された帯域制御機能を用いた場合、CPUを浪費することなく広帯域及び帯域保証を実現できるが、VMに合わせた実装が必要となり特殊なNICが必要となる。一方、ソフトウェアに実装された帯域制御機能を用いた場合、CPUを浪費するため、広帯域の実現が難しい。
また、SR−IOV又はCEEの外部スイッチを利用した場合、NICの最大帯域を全て利用した状態においてVM間の利用状況に合わせた帯域制御ができないため、VM間の帯域保証を実現することができない課題がある。
本発明の目的は、前述した課題を鑑みて行われた発明である。すなわち、物理サーバのCPUリソースを浪費せず、広帯域を実現し、VM及びVM Groupに対して帯域保証を実現し、さらに、特定のハードウェア構成に依存しない自由度を確保することである。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、前記プロセッサに接続されるメモリ、及び他の装置と通信するための一つ以上のネットワークインタフェースを備える計算機であって、前記計算機は、前記計算機のリソースを分割して、一つ以上の仮想計算機を生成し、前記生成された仮想計算機を管理する仮想化管理部と、一つ以上の前記仮想計算機から構成される仮想計算機グループにおける利用帯域を制御する帯域制御部と、を備え、前記仮想化管理部は、前記仮想計算機に割り当てた仮想的なネットワークインタフェースの利用帯域を管理する解析部を含み、前記解析部は、前記ネットワークインタフェースの利用帯域が、当該ネットワークインタフェースの利用帯域の上限である最大帯域と同一である場合、前記仮想計算機グループにおいて確保すべき帯域である保証帯域を管理するための保証帯域情報を保持し、前記解析部は、前記各仮想計算機の利用帯域を計測し、前記計測結果に基づいて、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域と同一である第1のネットワークインタフェースを検索し、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第1のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より小さい第1の仮想計算機グループが存在するか否かを判定し、前記第1の仮想計算機グループが存在すると判定された場合、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第1のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より大きい第2の仮想計算機グループを検索し、前記帯域制御部に前記第2の仮想計算機グループの帯域の制御を命令し、前記帯域制御部は、前記検索された第2の仮想計算機グループの帯域を制御することによって、前記第1の仮想計算機グループの前記保証帯域の不足分だけ空き帯域を確保することを特徴とする。
本発明によれば、仮想計算機グループ間の利用帯域を把握し、仮想サーバグループに対する帯域保証を実現できる。また、帯域制御部が、各仮想計算機グループの帯域を制御するためプロセッサのリソースを浪費することなく広帯域を実現できる。
本発明の第1の実施形態における計算機システムの一例を示す説明図である。 本発明の第1の実施形態における物理サーバの構成の詳細を説明するブロック図である。 本発明の第1の実施形態におけるメモリの記憶領域の一例を示す説明図である。 本発明の第1の実施形態におけるアダプタ割当表の一例を示す説明図である。 本発明の第1の実施形態におけるキャッピングテーブルの一例を示す説明図である。 本発明の第1の実施形態におけるQoSグループテーブルの一例を示す説明図である。 本発明の第1の実施形態におけるキャパシティテーブルの一例を示す説明図である。 本発明の第1の実施形態におけるハイパバイザが起動時に実行する処理を説明するフローチャートである。 本発明の第1の実施形態におけるスループット解析部が実行する帯域制御処理の概要を示す説明図である。 本発明の第1の実施形態における帯域制御処理の詳細を説明するフローチャートである。 本発明の第1の実施形態における帯域制御処理の詳細を説明するフローチャートである。 本発明の第1の実施形態におけるキャッピング機能がキャッピング値の更新命令を受信した場合に実行する処理を説明するフローチャートである。 本発明の第1の実施形態における帯域制御処理の変形例を説明するフローチャートである。 本発明の第2の実施形態における物理サーバの構成の詳細を説明するブロック図である。 本発明の第2の実施形態におけるメモリの記憶領域の位置例を示す説明図である。 本発明の第2の実施形態におけるキャッピングテーブルの一例を示す説明図である。 本発明の第2の実施形態における帯域制御処理の詳細を説明するフローチャートである。 本発明の第2の実施形態における帯域制御処理の詳細を説明するフローチャートである。 本発明の第3の実施形態における物理サーバの構成の詳細を説明するブロック図である。 本発明の第3の実施形態におけるメモリの記憶領域の一例を示す説明図である。 本発明の第3の実施形態における帯域制御処理の詳細を説明するフローチャートである。 本発明の第3の実施形態における帯域制御処理の詳細を説明するフローチャートである。
以下、実施形態について図面を用いて説明する。
(第1の実施形態)
第1の実施形態では、仮想サーバのネットワークの帯域制御を行う物理サーバを例として説明する。
図1は、本発明の第1の実施形態における計算機システムの一例を示す説明図である。
計算機システムは、一つ以上の物理サーバ100から構成される。本実施形態では、説明の簡単のため一つの物理サーバ100のみを図示する。
物理サーバ100は、複数のCPU104−1〜104−nを有し、これらのCPU104−1〜104−nはQPI(QuickPath Interconnect)又はSMI(Scalable Memory Interconnect)等のインターコネクト107を介してChipSet106に接続される。以下の説明では、CPU104−1〜104−nを区別しない場合、CPU104と記載する。
ChipSet106は、PCI Express等のバス108を介してI/Oアダプタ109、Timer110、NIC117、SCSIアダプタ118、HBA(Host Bus Adapter)119、及びコンソールインタフェース(コンソールI/F)116と接続する。
ここで、NIC117は、LAN112と接続するためのインタフェースであり、HBAは、SAN(Strage Area Network)114に接続するためのインタフェースであり、また、コンソールインタフェース116は、コンソール111と接続するためのインタフェースである。
CPU104は、インターコネクト107を介してメモリ105にアクセスし、また、ChipSet106を介してNIC117等にアクセスして所定の処理を実行する。
メモリ105は、CPU104によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。具体的には、メモリ105には、ハイパバイザ101を実現するプログラムが格納される。
CPU104は、ハイパバイザ101を実現するプログラムをメモリ105上にロードし、当該プログラムを実行することによってハイパバイザ101が備える機能を実現できる。ハイパバイザ101は、一つ以上の仮想サーバ102を生成し、管理する。仮想サーバ102上ではゲストOS103が稼働する。
次に、物理サーバ100上で仮想サーバ102を実現するソフトウェア構成の主要部と、制御対象となるハードウェアについて説明する。
図2は、本発明の第1の実施形態における物理サーバ100の構成の詳細を説明するブロック図である。
物理サーバ100は、一つ以上のNIC117−1〜117−mを有する。また、各NIC117−1〜117−mは、IOV機能を有する。ここで、IOV機能は、物理的な機能(PF:Phicical Function)204、仮想的な機能(VF:Virtual Function)206、及びキャッピング機能207から構成される。
PF204は、物理サーバ100が外部ネットワークとデータを送受信する機能を提供し、IOV機能を制御するIOVレジスタ205を含む。VF206は、PF204によって生成され、IOV機能が有効な場合にのみ物理サーバ100が外部ネットワークとデータを送受信する機能を提供する。キャッピング機能207は、物理サーバ100が外部ネットワークとデータを送受信するときに利用帯域の上限を制御する機能を提供する。
なお、PF204は常時利用可能な機能だが、VF206はIOV機能が有効な場合にのみ利用できる機能である。また、物理サーバ100は、IOV機能を有さないNIC117を含んでもよい。
物理サーバ100上では、仮想サーバ102を制御するハイパバイザ101が稼動する。
ハイパバイザ101は、一つ以上の仮想サーバ102を生成し、生成された仮想サーバ102に対してChipSet106に相当する機能(仮想ChipSet213)を提供する。また、ハイパバイザ101は、任意のVF206を任意の仮想サーバ102に占有的に割り当て、当該仮想サーバ102上で稼動するゲストOS103に当該VF206の直接操作を許可する機能(パススルー機能)を有する。
また、ハイパバイザ101は、スループット解析部200、アダプタ割当表208、PFドライバ209−1〜209−m、及びエミュレーションデータ212−1〜212−nを有する。
スループット解析部200は、仮想サーバ102等の利用帯域を監視し、利用状況に応じて帯域を制御する。また、スループット解析部200は、キャッピングテーブル201、QoSグループテーブル202、及びキャパシティテーブル203を含む。
キャッピングテーブル201は、各仮想サーバ102の利用帯域及び最大利用帯域値等の情報を格納する。キャッピングテーブル201の詳細は、図5を用いて後述する。QoSグループテーブル202は、複数の仮想サーバ102から構成される仮想サーバグループ(VM Group)の保証帯域に関する情報を格納する。QoSグループテーブル202の詳細は、図6を用いて後述する。キャパシティテーブル203は、NIC117の最大帯域に関する情報を格納する。キャパシティテーブル203の詳細は、図7を用いて後述する。
なお、スループット解析部200は、キャッピングテーブル201、QoSグループテーブル202、及びキャパシティテーブル203を組み合わせて一つ又は二つのテーブルとして保持してもよい。
アダプタ割当表208は、仮想サーバ102と当該仮想サーバ102に割り当てたVF206との対応関係を格納する。アダプタ割当表208の詳細は、図4を用いて後述する。
エミュレーションデータ212−1〜212−nは、各仮想サーバ102−1〜102−nの稼動状態を保持するデータである。以下の説明では、エミュレーションデータ212−1〜212−nを区別しない場合、エミュレーションデータ212と記載する。
エミュレーションデータ212は、仮想サーバ102に提供する仮想ChipSet213の状態を保持する仮想ChipSetデータ211を含む。具体的には、仮想ChipSetデータ211は、仮想ChipSet213におけるレジスタ等の状態を保持する。
PFドライバ209は、各NIC117−1〜117−mが備えるPF204−1〜PF204−mを制御するためのドライバであり、各PF204−1〜PF204−mにおけるIOVレジスタ205を操作する機能を有する。
仮想サーバ102は、ハイパバイザ101によって提供される仮想ChipSet213などの仮想的な部品、及び占有的に割り当てられたVF206を含む。仮想サーバ102上ではゲストOS103が動作する。ゲストOS103は、VF206の種類に応じたVFドライバ210を用いてVF206を操作する。
本実施形態では、スループット解析部200が、各テーブルの情報に基づいて、ネットワークの利用状況を分析し、仮想サーバ102に割り当てる最大利用帯域値(キャッピング値)を増減させるための命令をキャッピング機能207に発行する。すなわち、スループット解析部200は、キャッピング値を変更することによって、帯域を制御する。
図3は、本発明の第1の実施形態におけるメモリ105の記憶領域の一例を示す説明図である。
ハイパバイザ101は、メモリ105の記憶領域の割り当てを管理しており、メモリ105上にハイパバイザ101自身が使用する領域と、仮想サーバ102が使用する領域とを割り当てる。
例えば、図3に示すように、ハイパバイザ101は、ハイパバイザ101自身にアドレスAD0からAD1の範囲の記憶領域を割り当て、また、仮想サーバ102―1にアドレスAD1からAD2の範囲の記憶領域を、仮想サーバ102―nにアドレスAD3からAD4の範囲の記憶領域を割り当てる。
各仮想サーバ102に割り当てられた記憶領域には、ゲストOS103及びVFドライバ210が格納される。ハイパバイザ101に割り当てられた記憶領域には、アダプタ割当表208、エミュレーションデータ212、PFドライバ209、スループット解析部200、キャッピングテーブル201、QoSグループテーブル202、及び、キャパシティテーブル203が格納される。
図4は、本発明の第1の実施形態におけるアダプタ割当表208の一例を示す説明図である。
アダプタ割当表208は、VF206と仮想サーバ102との対応関係を格納する。具体的には、アダプタ割当表208は、PF ID400、VF ID401及び仮想サーバID402を含む。
PF ID400は、VF206を生成したPF204の識別子を格納する。VF ID401は、VF206の識別子を格納する。仮想サーバID402は、VF ID401に対応するVF206を割り当てた仮想サーバ102の識別子を格納する。なお、VF206が未割り当ての場合、仮想サーバID402には「未割り当て」が格納される。
アダプタ割当表208によって、ある仮想サーバ102に対して、どのNIC117によって提供されるVF206が割り当てられているかを把握できる。
図5は、本発明の第1の実施形態におけるキャッピングテーブル201の一例を示す説明図である。
キャッピングテーブル201は、VF206に設定したキャッピング値、及び現在の利用帯域に関する情報を格納する。具体的には、キャッピングテーブル201は、取得時刻500、NIC ID501、VF ID502、Group ID503、利用帯域504、及びキャッピング値505を含む。
取得時刻500は、ハイパバイザ101が各種情報を取得した時刻を格納する。NIC ID501は、NIC117の識別子を格納する。VF ID502は、VF ID401と同一のものである。Group ID503は、複数の仮想サーバ102から構成される仮想サーバグループの識別子を格納する。
利用帯域504は、VF ID502に対応するVF206が割り当てられた仮想サーバ102が現在使用している利用帯域を格納する。キャッピング値505は、VF ID502に対応するVF206が割り当てられた仮想サーバ102に設定された最大利用帯域値(キャッピング値)を格納する。
図6は、本発明の第1の実施形態におけるQoSグループテーブル202の一例を示す説明図である。
QoSグループテーブル202は、仮想サーバグループに対して設定された保証帯域、当該仮想サーバグループに含まれる仮想サーバ102の利用帯域の合計値等の情報を格納する。具体的には、QoSグループテーブル202は、取得時刻600、Group ID601、保証帯域602、及び総利用帯域603を含む。
取得時刻600は、ハイパバイザ101が各種情報を取得した時刻を格納する。Group ID601は、Group ID503と同一のものである。保証帯域602は、Group ID601に対応する仮想サーバグループに対して設定された保証帯域を格納する。総利用帯域603は、仮想サーバグループに含まれる全ての仮想サーバ102の利用帯域の合計値を格納する。
なお、本実施形態において保証帯域とは、NIC117の利用帯域が最大帯域と同一となった場合に、当該NIC117のリソースを利用する仮想サーバグループに対して最低限保証する帯域を示す。
図7は、本発明の第1の実施形態におけるキャパシティテーブル203の一例を示す説明図である。
キャパシティテーブル203は、NIC117の最大帯域、及び各仮想サーバ102によって利用されている帯域の合計値に関する情報を格納する。具体的には、キャパシティテーブル203は、取得時刻700、NIC ID701、最大帯域702、及び総利用帯域703を含む。
取得時刻700は、ハイパバイザ101が各種情報を取得した時刻を格納する。NIC ID701は、NIC ID501と同一のものである。最大帯域702は、NIC ID701に対応するNIC117の最大帯域を格納する。総利用帯域703は、NIC ID701に対応するNIC117を利用する各仮想サーバ102の利用帯域の合計値を格納する。
ハイパバイザ101は、最大帯域702と総利用帯域703とを比較することによってネットワークの利用状況を監視することができる。
次に、ハイパバイザ101が実行する処理について説明する。
図8は、本発明の第1の実施形態におけるハイパバイザ101が起動時に実行する処理を説明するフローチャートである。
管理者等によって物理サーバ100の電源が投下されると、CPU104がハイパバイザ101をメモリ105にロードし、実行することによって処理が開始される。
ハイパバイザ101は、ハイパバイザ101自身及び物理サーバ100を初期化する(ステップS800)。このとき、ハイパバイザ101は、NIC117のIOV機能も有効化する。
ステップS800の処理では、さらに、以下のような処理が実行される。
ハイパバイザ101は、各NIC117のPF204に対してVF206の生成を指示する。さらに、ハイパバイザ101は、生成されたVF206のエントリをアダプタ割当表208に作成し、各エントリのPF ID400及びVF ID401に対応する識別子を格納し、全エントリの仮想サーバID402に「未割り当て」を格納して初期化する。
また、ハイパバイザ101は、キャッピングテーブル201、QoSグループテーブル202及びキャパシティテーブル203を未入力の状態にすることによって、各テーブルを初期化する。
ハイパバイザ101は、コンソール111からの入力、又は、前回起動時の割り当て指示に基づいて、仮想サーバ102を生成し、当該仮想サーバ102にVF206を割り当てる(ステップS801)。このとき、ハイパバイザ101は、アダプタ割当表208を参照して割り当てたVF206に対応するエントリを検索し、当該エントリの仮想サーバID402に該当する仮想サーバ102の識別子を格納する。
なお、ステップS801では、ハイパバイザ101は、仮想サーバグループを生成し、仮想サーバグループに保証帯域及び利用帯域を設定する。
ハイパバイザ101は、仮想サーバ102を生成した後、各テーブルを更新する(ステップS802)。その後、スループット解析部200が帯域制御処理を開始する。
ステップS802の処理では以下のような処理が実行される。
ハイパバイザ101は、キャッピングテーブル201に仮想サーバ102に割り当てたVF206に対応するエントリを生成し、生成された各エントリのVF ID502に対応するVF206の識別子を格納する。また、ハイパバイザ101は、生成された各エントリのNIC ID501にVF206が割り当てられたNIC117の識別子を格納し、Group ID503にVF206を割り当てた仮想サーバ102が所属する仮想サーバグループの識別子を格納する。さらに、ハイパバイザ101は、各エントリのキャッピング値505に、入力又は割当指示によって指定されたキャッピング値を格納する。
ハイパバイザ101は、生成された仮想サーバグループに対応するエントリをQoSグループテーブル202に生成し、生成された各エントリのGroup ID601に仮想サーバグループの識別子を格納する。また、ハイパバイザ101は、各エントリの保証帯域602及び総利用帯域603に、対応する仮想サーバグループに設定された保証帯域及び当該仮想サーバグループにおける総利用帯域を格納する。なお、初期設定時では、総利用帯域603は空欄のままでもよい。
さらに、ハイパバイザ101は、キャパシティテーブル203に、物理サーバ100が有するNIC117に対応するエントリを生成し、生成されたNIC117のエントリのNIC ID701に対応するNICの識別子を格納する。ハイパバイザ101は、生成されたエントリの最大帯域702及び総利用帯域703に、当該エントリに対応するNIC117の最大帯域及び仮想サーバ102によって利用される総利用帯域を格納する。なお、初期設定時では、総利用帯域703は空欄のままでもよい。
また、スループット解析部200は、キャッピングテーブル201のキャッピング値505の値に基づいて、各VF206のキャッピング値を設定するための命令を発行する。
なお、ステップS802の処理において更新された各テーブルについては、ディスク装置113等に予め格納しておき、ハイパバイザ101の起動時にディスク装置113等から読み出すことによって、前回設定された情報を流用することも可能である。
ハイパバイザ101は、生成された仮想サーバ102を稼働させ、当該仮想サーバ102上でゲストOS103及びアプリケーションを実行する(ステップS803)。
図9は、本発明の第1の実施形態におけるスループット解析部200が実行する帯域制御処理の概要を示す説明図である。
図9に示すグラフのうち、(a)が仮想サーバグループ1の利用帯域を示すグラフであり、(b)が仮想サーバグループ2の利用帯域を示すグラフである。なお、横軸は時間を示し、縦軸は利用帯域を示す。また、仮想サーバグループ1及び仮想サーバグループ2は同一のPFドライバ209(NIC117)を利用しており、NIC117の最大帯域が10Gpbsであるものとする。また、各仮想サーバグループの保証帯域は3Gbpsと設定されているものとする。
時刻t0では、仮想サーバグループ1の利用帯域は8Gbpsであり、仮想サーバグループ2の利用帯域は1Gbpsである。このとき、NIC117における総利用帯域は9Gbpsであり、空き帯域が1Gpbsである。
本実施形態では、NIC117の総利用帯域が最大帯域と同一でない場合には帯域の制御は行われない。したがって、時刻t0ではNIC117に空き帯域があるため帯域の制御は行われない。
時刻t1では、仮想サーバグループ1の利用帯域は変化していないが、仮想サーバグループ2の利用帯域が2Gbpsに上昇している。このとき、NIC117における総利用帯域は10Gbpsとなり、最大帯域まで帯域を利用している状態である。したがって、スループット解析部200は、帯域の制御が行われる。
具体的には、スループット解析部200は、仮想サーバグループ1及び仮想サーバグループ2が保証帯域以上の帯域を確保できているか否かを解析する。スループット解析部200は、当該解析の結果、仮想サーバグループ2が保証帯域を確保できてないことを検知し、保証帯域以上の帯域を確保する仮想サーバグループ1に含まれる仮想サーバ102のキャッピング値を下げる。
以上の処理によって、仮想サーバグループ2が利用可能な空き帯域を確保し、当該空き領域を割り当てることによって保証帯域を確保することができる。
図9に示す例では、スループット解析部200は、仮想サーバグループ1の総利用帯域を1Gbpsだけ下げることによって、1Gbps分の空き利用帯域を確保している。
時刻t2では、仮想サーバグループ1の利用帯域は変化していないが、仮想サーバグループ2の利用帯域が3Gbpsに上昇している。このとき、NIC117の総利用帯域が10Gbpsとなり、最大帯域まで帯域を利用している状態である。しかし、この場合、仮想サーバグループ1及び仮想サーバグループ2のいずれも保証帯域を確保しているため帯域の制御は行われない。
時刻t3では、仮想サーバグループ2の利用帯域が1Gbpsに下降した状態である。このとき、仮想サーバグループ2の利用帯域は保証帯域より小さいが、NIC117の帯域に空きがあるため帯域の制御は行われない。また、仮想サーバグループ1においては、空き帯域があり、かつ、安定した状態であるため、仮想サーバグループ1に含まれる仮想サーバ102のキャッピング値を上げる。
時刻t4では、仮想サーバグループ1の利用帯域が9Gbpsに上昇している。このとき、最大帯域まで帯域を利用している状態であり、かつ、仮想サーバグループ2の保証帯域を確保できないため、スループット解析部200は、仮想サーバグループ1のキャッピング値を再び下げる。
前述した処理によって、NIC117の最大帯域まで帯域が利用された場合であっても仮想サーバグループの保証帯域を確保することが可能となる。以下、帯域制御処理の詳細について説明する。
図10A及び図10Bは、本発明の第1の実施形態における帯域制御処理の詳細を説明するフローチャートである。
スループット解析部200は、周期的に、仮想サーバ102に割り当てたVF206の利用帯域を計測する(ステップS1000)。
スループット解析部200は、計測された利用帯域の値を用いて、各NIC117の総利用帯域及び各仮想サーバグループの総利用帯域を算出する(ステップS1001)。
このとき、スループット解析部200は、キャッピングテーブル201に計測された各VF206の利用帯域を格納し、QoSグループテーブル202に算出された各仮想サーバグループの総利用帯域を格納し、また、キャパシティテーブル203に算出された各NIC117の総利用帯域を格納する。
次に、スループット解析部200は、NIC117毎にステップS1002からステップ1008の処理を実行する。以下処理対象のNIC117を対象NIC117とも記載する。
スループット解析部200は、対象NIC117の総利用帯域が最大帯域と同一であるか否かを判定する(ステップS1002)。
具体的には、スループット解析部200は、キャパシティテーブル203の対象NIC117に対応するエントリを参照し、当該エントリの最大帯域702及び総利用帯域703を比較し、総利用帯域703の値が最大帯域702の値と同一であるか否かを判定する。以下、最大帯域まで帯域が利用されているNIC117を第1NIC117とも記載する。また、最大帯域まで帯域が利用されていないNIC117を第2NIC117とも記載する。
対象NIC117が第1NIC117でないと判定された場合、すなわち、対象NIC117が第2NIC117であると判定された場合、スループット解析部200は、第2NIC117のリソースを利用する仮想サーバグループに含まれる仮想サーバ102のうち、仮想サーバ102の利用帯域がキャッピング値と同一となっている仮想サーバ102が存在するか否かを判定する(ステップS1003)。
具体的には、スループット解析部200は、キャッピングテーブル201の第2NIC117に対応するエントリを参照し、当該エントリの利用帯域504及びキャッピング値505を比較し、利用帯域504の値がキャッピング値505の値と同一であるエントリが存在するか否かを判定する。
仮想サーバ102の利用帯域がキャッピング値と同一となっている仮想サーバ102が存在しないと判定された場合、スループット解析部200は、処理を終了する。
仮想サーバ102の利用帯域がキャッピング値と同一となっている仮想サーバ102が存在すると判定された場合、スループット解析部200は、当該仮想サーバ102のキャッピング値を上げるためにキャッピング機能207に変更命令を発行し(ステップS1004)、処理を終了する。
例えば、キャッピング値を上げる場合、前回の処理において当該仮想サーバ102のキャッピング値が下げられているときには、下げられた帯域分だけキャッピング値を上げる方法が考えられる。また、追加する帯域の値を予め設定してもよい。
なお、キャッピング値の変更命令には、少なくとも、対象となる仮想サーバ102の識別子及び追加帯域の値が含まれる。
ステップS1002において、対象NIC117が第1NIC117であると判定された場合、スループット解析部200は、第1NIC117のリソースを利用する仮想サーバグループのうち、仮想サーバグループの総利用帯域が保証帯域より小さい仮想サーバグループが存在するか否かを判定する(ステップS1005)。具体的には、以下のような処理が実行される。
スループット解析部200は、キャッピングテーブル201を参照して第1NIC117のリソースを利用する仮想サーバグループを特定する。さらに、スループット解析部200は、QoSグループテーブル202の対象仮想サーバグループのエントリを参照し、保証帯域602及び総利用帯域603を比較し、総利用帯域603の値が保証帯域602の値より小さいエントリが存在するか否かを判定する。
以下、ステップS1005の条件を満たす仮想サーバグループを第1仮想サーバグループと記載する。
第1仮想サーバグループが存在しないと判定された場合、スループット解析部200は、特に、帯域の制御を行うことなく処理を終了する。
第1仮想サーバグループが存在すると判定された場合、スループット解析部200は、第1NIC117のリソースを利用する仮想サーバグループのうち、仮想サーバグループの利用帯域が保証帯域より大きい仮想サーバグループが存在する否かを判定する(ステップS1006)。以下、ステップS1006の条件を満たす仮想サーバグループを第2仮想サーバグループと記載する。
具体的には、スループット解析部200は、QoSグループテーブル202の対象仮想サーバグループのエントリを参照し、保証帯域602及び総利用帯域603を比較し、総利用帯域603の値が保証帯域602の値より大きいエントリが存在するか否かを判定する。
第2仮想サーバグループが存在しないと判定された場合、スループット解析部200は、第1仮想サーバグループに割り当てるための空き帯域を確保できないため、エラーを通知し(ステップS1008)、処理を終了する。
第2仮想サーバグループが存在すると判定された場合、スループット解析部200は、当該第2仮想サーバグループ内の仮想サーバ102のキャッピング値を下げるためにキャッピング機能207に変更命令を発行し(ステップS1007)、処理を終了する。
例えば、キャッピング値を下げる場合、第1仮想サーバグループの保証帯域に対して不足している帯域分だけ、第2仮想サーバグループに含まれる仮想サーバ102のキャッピング値を下げる方法が考えられる。また、減少させる帯域の値を予め設定してもよい。
なお、キャッピング値の変更命令には、少なくとも、対象となる仮想サーバグループの識別子、及び減少帯域の値が含まれる。
また、第2仮想サーバグループ内の仮想サーバ102のキャッピング値を下げても、第1仮想サーバグループの保証帯域を確保するために必要な帯域が不足する場合、スループット解析部200は、エラーを通知してもよい。
図11は、本発明の第1の実施形態におけるキャッピング機能207がキャッピング値の変更命令を受信した場合に実行する処理を説明するフローチャートである。
キャッピング機能207は、仮想サーバ102のキャッピング値の変更命令を受信すると(ステップS1100)、当該変更命令がキャッピング値を上げるための命令であるか否かを判定する(ステップS1101)。
受信した変更命令がキャッピング値を上げるための命令であると判定された場合、キャッピング機能207は、受信した変更命令に基づいて、対象となる仮想サーバ102に割り当てられたVF206のキャッピング値を上げて(ステップS1102)、処理を終了する。
なお、受信した変更命令には、対象となる仮想サーバ102の識別子と、追加帯域の値とが含まれる。したがって、キャッピング機能207は、変更命令に含まれる情報に基づいて、対象となる仮想サーバ102を特定し、当該仮想サーバ102に割り当てられたVF206のキャッピング値を上げることができる。
受信した変更命令がキャッピング値を上げるための命令でない、すなわち、キャッピング値を下げるための命令であると判定された場合、キャッピング機能207は、対象となる仮想サーバグループに含まれる仮想サーバ102に割り当てられたVF206のキャッピング値を下げて(ステップS1103)、処理を終了する。
例えば、対象となる仮想サーバグループ内の所定数の仮想サーバ102に割り当てられたVF206のキャッピング値を一定値下げる方法などが考えられる。なお、本発明は、キャッピング値を下げる方法に限定されない。
ハイパバイザ101が前述した帯域制御処理を実行することによって、各仮想サーバグループの帯域を保証することができる。前述の帯域制御処理においては、仮想サーバグループの保証帯域を例に説明しているが、個々の仮想サーバ102に対しても同様の帯域制御処理を適用することによって帯域を保証できる。例えば、一つの仮想サーバ102を一つの仮想サーバグループとして扱うことによって同様の処理を適用することができる。
また、利用用途に合わせて保証帯域の設定値を調整することによって、仮想サーバグループに優先順位を設定することも可能である。前述の帯域制御処理では、第2仮想サーバグループが存在しない場合、スループット解析部200はエラーを通知していたが、前述の優先順位を利用することによって、保証帯域の不足に対する対策が可能である。
例えば、仮想サーバグループに設定された保証帯域を利用帯域の優先順位と考えると、第2仮想サーバグループが存在しない場合、スループット解析部200は、保証帯域が小さい(優先順位が低い)仮想サーバグループに含まれる仮想サーバ102のキャッピング値を下げて、保証帯域が大きい(優先順位が高い)仮想サーバグループの帯域を保証することができる。以下、図12を用いて処理の詳細について説明する。
図12は、本発明の第1の実施形態における帯域制御処理の変形例を説明するフローチャートである。なお、ステップS1000〜ステップS1007の処理は同一であるため説明を省略する。ここでは、ステップS1008における処理の変形例について説明する。
ステップS1006において、第2仮想サーバグループが存在しないと判定された場合、スループット解析部200は、QoSグループテーブル202を取得し、第1NIC117のリソースを利用する各仮想サーバグループに設定された保証帯域を抽出する(ステップS1200)。
ここでは、異なる保証帯域が各仮想サーバグループに設定され、保証帯域の大きさが優先順位に相当するものとする。これによって、スループット解析部200は、どの仮想サーバグループの帯域を優先的に確保するかを決定できる。
次に、スループット解析部200は、設定された保証帯域が、所定の閾値以下の仮想サーバグループを選択する(ステップS1201)。なお、所定の閾値は、予め設定されたものでもよいし、帯域の利用状況から利用頻度が低い仮想サーバ102を複数有する仮想サーバグループに設定された保証帯域を当該閾値として設定してもよい。
スループット解析部200は、選択された仮想サーバグループに含まれる所定数の仮想サーバ102のキャッピング値を所定値だけ下げることによって発生する空き帯域を算出する(ステップS1202)。なお、キャッピング値の下げ幅は、予め設定されたものとする。
スループット解析部200は、算出された空き帯域を用いて、優先順位の高い仮想サーバグループのうち、保証帯域を確保できる仮想サーバグループが存在する否かを判定する(ステップS1203)。以下、ステップS1203の条件を満たす仮想サーバグループを第3仮想サーバグループと記載する。
第3仮想サーバグループが存在しないと判定された場合、スループット解析部200は、処理を終了する。
第3仮想サーバグループが存在すると判定された場合、スループット解析部200は、選択された仮想サーバグループに含まれる仮想サーバ102のキャッピング値を下げるための変更命令を発行し(ステップS1204)、処理を終了する。
これによって、保証帯域が大きい(優先順位が高い)仮想サーバグループから順に帯域を保証することができる。
第1の実施形態によれば、NIC117の最大帯域を全て利用した状態であっても、仮想サーバグループ又は仮想サーバ102に設定されたキャッピング値を制御することによって帯域保証を実現することができる。
また、ハイパバイザ101が利用帯域を解析し、SR−IOV機能を有するNICが帯域制御を実行するため、物理サーバ100のCPUリソースを浪費せず、広帯域対応も可能となる。本実施形態では、既存のSR−IOV機能を有するNICの構成を変更することなく、そのまま用いることができる。
さらに、仮想サーバ102の用途に応じて、異なる値の保証帯域を各仮想サーバグループに設定することによって、仮想サーバグループ毎に優先順位を付与した帯域制御を行うことが可能となる。
(第2の実施形態)
第2の実施形態では、SR−IOVの機能を有していないNIC117を用いる点が異なる。本実施形態では、ハイパバイザ101が仮想サーバ102にNIC117を仮想化したVNICを割り当て、NIC117が当該VNIC1301の帯域を制御する。以下、第1の実施形態との差異を中心に説明する。
計算機システムの構成は、第1の実施形態と同一であるため説明を省略する。
図13は、本発明の第2の実施形態における物理サーバ100の構成の詳細を説明するブロック図である。第1の実施形態と同一の符号を付した構成は、同一の構成であるため説明を省略する。
第2の実施形態では、ハイパバイザ101は、仮想サーバ102に対して、VF206の代わりに、任意の仮想NIC(VNIC)1301を共有的、又は、占有的に割り当てる。
VNIC1301が共有的に割り当てられた場合、仮想サーバ102は仮想スイッチ1300を経由してNIC117と通信を行い、VNIC1301が占有的に割り当てられた場合、仮想サーバ102は直接NIC117と通信を行う。
第2の実施形態では、仮想サーバ102は、ハイパバイザ101によって提供される仮想ChipSet213の他に、共有的に割り当てたVNIC1301を含む。また、ゲストOS103は、VFドライバ210の代わりに、NICドライバ1302を有する。
また、NIC117は、SR−IOV機能に対応する構成が含まれない点が第1の実施形態と異なる。ハイパバイザ101は、VF206の割り当てを管理する必要がないためアダプタ割当表208を保持せず、また、VF206を操作する必要がないためPFドライバ209を保持しない。
図14は、本発明の第2の実施形態におけるメモリ105の記憶領域の位置例を示す説明図である。
各仮想サーバ102に割り当てられた記憶領域には、ゲストOS103及びVNIC1301が格納される。ハイパバイザ101に割り当てられた記憶領域には、仮想スイッチ1300、エミュレーションデータ212、スループット解析部200、キャッピングテーブル201、QoSグループテーブル202、及び、キャパシティテーブル203が格納される。
図15は、本発明の第2の実施形態におけるキャッピングテーブル201の一例を示す説明図である。
第2の実施形態のキャッピングテーブル201は、VF ID502の代わりにVNIC ID1501を含む。VNIC ID1501は、VNIC1301の識別子を格納する。したがって、第2の実施形態のキャッピングテーブル201は、仮想サーバ102に割り当てたVNIC1301の利用帯域及びキャッピング値を格納する。
また、NIC ID501、Group ID503、及びVNIC ID1501からVNIC1301の接続関係が分かる。
ハイパバイザ101が起動時の処理は、第1の実施形態とほぼ同一であるが、ステップS800では、CPU104はIOV機能を無効化し、ステップS801では、ハイパバイザ101が仮想サーバ102にVNIC1301を割り当てる点が異なる。
図16A及び図16Bは、本発明の第2の実施形態における帯域制御処理の詳細を説明するフローチャートである。
第2の実施形態における帯域制御処理では、監視対象が仮想サーバ102のVNIC1301の利用帯域となる。また、仮想サーバ102のキャッピング値の設定については、NIC117内のキャッピング機能207、又は、ハイパバイザが提供するVNICの機能を用いて制御することも可能である。
スループット解析部200は、周期的に、仮想サーバ102に割り当てたVNIC1301の利用帯域を計測する(ステップS1600)。
スループット解析部200は、計測された利用帯域の値を用いて、各NIC117の総利用帯域及び各仮想サーバグループの総利用帯域を算出する(ステップS1601)。
このとき、スループット解析部200は、キャッピングテーブル201に計測されたVNIC1301毎の利用帯域を格納し、QoSグループテーブル202に算出された仮想サーバグループ毎の総利用帯域を格納し、キャパシティテーブル203に算出されたNIC117毎の総利用帯域を格納する。
ステップ1002〜ステップ1008の処理は、帯域制御を行う対象がVNIC1301である点を除き、第1の実施形態と同一であるため説明を省略する。
第2の実施形態によれば、SR−IOV機能を有さないNIC117を用いた計算機システムにおいても仮想サーバグループ、又は、仮想サーバ102に対して帯域保証を実現することができる。また、NIC117が帯域制御を行うため、物理サーバ100のCPUリソースを浪費せず、広帯域対応も可能となる。
(第3の実施形態)
第3の実施形態では、I/O通信時の割込処理に遅延をかけることによって帯域制御を行う。以下、第1の実施形態との差異を中心に説明する。
計算機システムの構成は、第1の実施形態と同一であるため説明を省略する。
図17は、本発明の第3の実施形態における物理サーバ100の構成の詳細を説明するブロック図である。
第3の実施形態では、NIC117は、SR−IOV機能及びキャッピングの機能を保持していない。したがって、ハイパバイザ101が仮想サーバ102にNIC117を仮想化したVNICを割り当てる。
第3の実施形態のハイパバイザ101は、割込ハンドラ1700−1〜1700−m、割込伝達部1701−1〜1701−m、NICエミュレータ1702−1〜1702−m、及び仮想スイッチ1300を新たに含む。一方、第3の実施形態のハイパバイザ101は、VF206の割り当てを管理する必要がないためアダプタ割当表208を保持せず、また、VF206を操作する必要がないためPFドライバ209を保持しない。
割込ハンドラ1700−1〜1700−mは、NIC117から受信したデータを受け取るモジュールである。割込伝達部1701は、仮想サーバ102に受信したデータを送信するモジュールである。NICエミュレータ1702は、仮想サーバ102が送信したデータを受信するモジュールである。
割込ハンドラ1700は、NIC117からデータを受信した場合、仮想サーバ102上のゲストOS103のOS用割込ハンドラ1703に対して割り込みを行うようにスループット解析部200に命令を発行する。
スループット解析部200は、キャッピングテーブル201に格納されているキャッピング値に合わせて遅延を設定する。なお、遅延の設定では、物理サーバ100が有するTimer110を利用してもよい。
割込伝達部1701は、仮想サーバ102上のゲストOS103のOS用割込ハンドラ1703に割り込みを発行する。
図18は、本発明の第3の実施形態におけるメモリ105の記憶領域の一例を示す説明図である。
各仮想サーバ102に割り当てられた記憶領域には、ゲストOS103、VNIC1301、NICドライバ1302、及びOS用割込ハンドラ1703が格納される。
ハイパバイザ101に割り当てられた記憶領域には、エミュレーションデータ212、スループット解析部200、QoSグループテーブル202、キャパシティテーブル203、NICエミュレータ1702、割込ハンドラ1700、割込伝達部1701、及び仮想スイッチ1300が格納される。
図19A及び図19Bは、本発明の第3の実施形態における帯域制御処理の詳細を説明するフローチャートである。
第3の実施形態における帯域制御処理では、仮想サーバ102への割込処理に遅延を設定することによって、帯域を制御する。
例えば、キャッピング値を上げる場合、スループット解析部200が、仮想サーバ102への割込処理における遅延時間を減少させて当該仮想サーバ102の通信速度を上げ、当該仮想サーバ102の利用帯域を増やす。一方、キャッピング値を下げる場合、仮想サーバ102への割込処理にかける遅延時間を増大させて当該仮想サーバ102の通信速度を下げ、当該仮想サーバ102の利用帯域を下げる。
ステップS1600は、第2の実施形態と同一の処理であるため説明を省略する。ステップS1001〜ステップS1003は、第1の実施形態と同一の処理であるため説明を省略する。
ステップS1003において、仮想サーバ102の利用帯域がキャッピング値と同一となっている仮想サーバ102が存在すると判定された場合、スループット解析部200は、当該仮想サーバ102のキャッピング値を上げるために当該仮想サーバ102への割込処理における遅延時間を小さくするための命令を発行して(ステップS1900)、処理を終了する。なお、当該命令はTimer110に出力され、Timer110によって割込処理における遅延時間が変更される。
ステップS1006において、第2仮想サーバグループが存在すると判定された場合、スループット解析部200は、第2仮想サーバグループに含まれる仮想サーバ102のキャッピング値を下げるために、当該仮想サーバ102への割込処理における遅延時間を大きくするための命令を発行して(ステップS1901)、処理を終了する。なお、当該命令はTimer110に出力され、Timer110によって割込処理における遅延時間が変更される。
第3の実施形態によれば、仮想サーバグループ又は仮想サーバ102への割込処理における遅延時間を制御することによって、帯域保証を実現することができる。また、帯域制御には、Timer110を用いて遅延を設定するのみであり、物理サーバ100のCPUリソースを浪費せず、広帯域対応も可能となる。
また、本発明の実施形態について説明したが、本発明の技術範囲は上記実施形態に記載された範囲に限定されない。本発明者によってなされた発明を上記実施の形態に基づき具体的に説明したが、その要旨を逸脱しない範囲で種々の変更または改良を加えることが可能であることは言うまでもない。従って、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。
100 物理サーバ
101 ハイパバイザ
102 仮想サーバ
103 ゲストOS
104 CPU
105 メモリ
106 ChipSet
107 インターコネクト
108 バス
109 I/Oアダプタ
110 Timer
111 コンソール
112 LAN
113 ディスク装置
114 SAN
116 コンソールインタフェース
117 NIC
118 SCSIアダプタ
119 HBA
200 スループット解析部
201 キャッピングテーブル
202 QoSグループテーブル
203 キャパシティテーブル
204 PF
205 IOVレジスタ
206 VF
207 キャッピング機能
208 アダプタ割当表
209 PFドライバ
210 VFドライバ
211 仮想ChipSetデータ
212 エミュレーションデータ
213 仮想ChipSet
1300 仮想スイッチ
1301 VNIC
1302 NICドライバ
1700 割込ハンドラ
1701 割込伝達部
1702 NICエミュレータ
1703 OS用割込ハンドラ

Claims (12)

  1. プロセッサ、前記プロセッサに接続されるメモリ、及び他の装置と通信するための一つ以上のネットワークインタフェースを備える計算機であって、
    前記計算機は、
    前記計算機のリソースを分割して、一つ以上の仮想計算機を生成し、前記生成された仮想計算機を管理する仮想化管理部と、
    一つ以上の前記仮想計算機から構成される仮想計算機グループにおける利用帯域を制御する帯域制御部と、を備え、
    前記仮想化管理部は、前記仮想計算機に割り当てた仮想的なネットワークインタフェースの利用帯域を管理する解析部を含み、
    前記解析部は、前記ネットワークインタフェースの利用帯域が、当該ネットワークインタフェースの利用帯域の上限である最大帯域と同一である場合、前記仮想計算機グループにおいて確保すべき帯域である保証帯域を管理するための保証帯域情報を保持し、
    前記解析部は、
    前記各仮想計算機の利用帯域を計測し、
    前記計測結果に基づいて、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域と同一である第1のネットワークインタフェースを検索し、
    前記計測結果に基づいて、前記保証帯域情報を参照して、前記第1のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より小さい第1の仮想計算機グループが存在するか否かを判定し、
    前記第1の仮想計算機グループが存在すると判定された場合、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第1のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より大きい第2の仮想計算機グループを検索し、
    前記帯域制御部に前記第2の仮想計算機グループの帯域の制御を命令し、
    前記帯域制御部は、
    前記検索された第2の仮想計算機グループの帯域を制御することによって、前記第1の仮想計算機グループの前記保証帯域の不足分だけ空き帯域を確保することを特徴とする計算機。
  2. 前記仮想計算機には、当該仮想計算機の利用帯域の上限である最大利用帯域が設定され、
    前記解析部は、
    前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域より小さい第2のネットワークインタフェースを検索し、
    前記計測結果に基づいて、前記保証帯域情報を参照して、前記第2のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループに含まれる前記仮想計算機のうち、前記仮想計算機の利用帯域が前記最大利用帯域と同一である仮想計算機が存在するか否かを判定し、
    前記仮想計算機の利用帯域が前記最大利用帯域と同一である仮想計算機が存在すると判定された場合に、当該仮想計算機の帯域を制御することによって、当該仮想計算機が含まれる前記仮想計算機グループが利用可能な空き帯域を確保することを特徴とする請求項1に記載の計算機。
  3. 前記仮想計算機グループには、前記仮想計算機グループの利用帯域を確保する優先順位が設定され、
    前記第2の仮想計算機グループが存在しない場合に、前記優先順位が下位の前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御することによって、空き帯域を確保し、
    前記優先順位が上位の前記仮想計算機グループに前記確保された空き帯域を追加することを特徴とする請求項1に記載の計算機。
  4. 前記優先順位は、前記仮想計算機グループに設定された前記保証帯域の大きさに基づいて決定されることを特徴とする請求項3に記載の計算機。
  5. 前記解析部は、前記仮想計算機の利用帯域の上限である最大利用帯域を管理するキャッピング情報を保持し、
    前記帯域制御部は、前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御する場合に、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を下げることによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を上げることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項1から請求項4のいずれか一つに記載の計算機。
  6. 前記帯域制御部は、前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御する場合に、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を長く設定することによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を短くすることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項1から請求項4のいずれか一つに記載の計算機。
  7. プロセッサ、前記プロセッサに接続されるメモリ、及び他の装置と通信するための一つ以上のネットワークインタフェースを備える計算機における帯域制御方法であって、
    前記計算機は、
    前記計算機のリソースを分割して、一つ以上の仮想計算機を生成し、前記生成された仮想計算機を管理する仮想化管理部と、
    一つ以上の前記仮想計算機から構成される仮想計算機グループにおける利用帯域を制御する帯域制御部と、を備え、
    前記仮想化管理部は、前記仮想計算機に割り当てた仮想的なネットワークインタフェースの利用帯域を管理する解析部を含み、
    前記解析部は、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの利用帯域の上限である最大帯域と同一である場合、前記仮想計算機グループにおいて確保すべき帯域である保証帯域を管理するための保証帯域情報を保持し、
    前記方法は、
    前記解析部が、前記各仮想計算機の利用帯域を計測する第1のステップと、
    前記解析部が、前記計測結果に基づいて、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域と同一である第1のネットワークインタフェースを検索する第2のステップと、
    前記解析部が、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第1のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より小さい第1の仮想計算機グループが存在するか否かを判定する第3のステップと、
    前記解析部が、前記第1の仮想計算機グループが存在すると判定された場合、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第1のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より大きい第2の仮想計算機グループを検索する第4のステップと、
    前記解析部が、前記帯域制御部に前記第2の仮想計算機グループの帯域の制御を命令第5のステップと、
    前記帯域制御部が、前記検索された第2の仮想計算機グループの帯域を制御することによって、前記第1の仮想計算機グループの前記保証帯域の不足分だけ空き帯域を確保する第6のステップと、
    を含むことを特徴とする帯域制御方法。
  8. 前記仮想計算機には、当該仮想計算機の利用帯域の上限である最大利用帯域が設定され、
    前記方法は、さらに、
    前記解析部が、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域より小さい第2のネットワークインタフェースを検索するステップと、
    前記解析部が、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第2のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループに含まれる前記仮想計算機のうち、前記仮想計算機の利用帯域が前記最大帯域と同一である仮想計算機が存在するか否かを判定するステップと、
    前記解析部が、前記仮想計算機の利用帯域が前記最大帯域と同一である仮想計算機が存在すると判定された場合に、当該仮想計算機の帯域を制御することによって当該仮想計算機が含まれる前記仮想計算機グループが利用可能な空き帯域を確保するステップと、
    を含むことを特徴とする請求項7に記載の帯域制御方法。
  9. 前記仮想計算機グループには、前記仮想計算機グループの利用帯域を確保する優先順位が設定され、
    前記第4のステップは、
    前記第2の仮想計算機グループが存在しない場合に、前記優先順位が下位の前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御することによって、空き帯域を確保するステップと、
    前記優先順位が上位の前記仮想計算機グループに前記確保された空き帯域を追加するステップと、
    を含むことを特徴とする請求項7に記載の帯域制御方法。
  10. 前記優先順位は、前記仮想計算機グループに設定された前記保証帯域の大きさに基づいて決定されることを特徴とする請求項9に記載の帯域制御方法。
  11. 前記解析部は、前記仮想計算機の利用帯域の上限値である最大利用帯域を管理するキャッピング情報を保持し、
    前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御するステップでは、前記帯域制御部が、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を下げることによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を上げることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項7から請求項10のいずれか一つに記載の帯域制御方法。
  12. 前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御するステップでは、前記帯域制御部が、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を長く設定することによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を短くすることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項7から請求項10のいずれか一つに記載の帯域制御方法。
JP2012065648A 2012-03-22 2012-03-22 計算機及び帯域制御方法 Expired - Fee Related JP5871233B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012065648A JP5871233B2 (ja) 2012-03-22 2012-03-22 計算機及び帯域制御方法
US13/760,717 US20130254767A1 (en) 2012-03-22 2013-02-06 Computer and bandwidth control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012065648A JP5871233B2 (ja) 2012-03-22 2012-03-22 計算機及び帯域制御方法

Publications (2)

Publication Number Publication Date
JP2013196604A JP2013196604A (ja) 2013-09-30
JP5871233B2 true JP5871233B2 (ja) 2016-03-01

Family

ID=49213567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012065648A Expired - Fee Related JP5871233B2 (ja) 2012-03-22 2012-03-22 計算機及び帯域制御方法

Country Status (2)

Country Link
US (1) US20130254767A1 (ja)
JP (1) JP5871233B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251115B2 (en) 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US9019826B2 (en) * 2013-05-07 2015-04-28 Vmare, Inc. Hierarchical allocation of network bandwidth for quality of service
CN103473136B (zh) * 2013-09-02 2017-06-13 华为技术有限公司 一种虚拟机的资源配置方法和通信设备
US10425314B2 (en) 2013-12-05 2019-09-24 Nxp Usa, Inc. Bandwidth estimation circuit, computer system, method for estimating and predicting the bandwidth and computer readable program product
US9921867B2 (en) 2013-12-30 2018-03-20 Huawei Technologies Co., Ltd. Negotiation between virtual machine and host to determine executor of packet flow control policy with reduced address space
CN103763403B (zh) * 2013-12-30 2017-03-15 华为技术有限公司 报文流量控制方法及相关装置和计算节点
JP2015195437A (ja) * 2014-03-31 2015-11-05 富士通株式会社 管理装置,情報処理システム及び管理プログラム
US9569242B2 (en) * 2014-07-16 2017-02-14 International Business Machines Corporation Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter
US9678779B2 (en) * 2014-07-31 2017-06-13 Cavium, Inc. Method and an apparatus for co-processor data plane virtualization
US10397131B2 (en) * 2014-09-09 2019-08-27 Vmware, Inc. Method and system for determining bandwidth demand
JP6428231B2 (ja) * 2014-12-15 2018-11-28 富士通株式会社 ストレージ管理装置、性能調整方法及び性能調整プログラム
US9594592B2 (en) 2015-01-12 2017-03-14 International Business Machines Corporation Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters
JP6363965B2 (ja) * 2015-02-17 2018-07-25 日本電信電話株式会社 帯域制御装置、帯域制御方法及び帯域制御プログラム
US10223159B2 (en) 2015-02-18 2019-03-05 Red Hat Israel, Ltd. Configuring virtual machine interfaces to provide access to a requested logical network based on virtual function availability and a virtual function capability option
US9792138B2 (en) 2015-02-18 2017-10-17 Red Hat Israel, Ltd. Virtual machine migration to hyper visors with virtual function capability
US9720720B2 (en) 2015-02-25 2017-08-01 Red Hat Israel, Ltd. Dynamic management of assignment and number of virtual functions on SR-IOV capable hypervisors
JP6571355B2 (ja) * 2015-03-12 2019-09-04 日本電気株式会社 I/oデバイス仮想化装置、システムおよび帯域保証制御方法
US9588791B2 (en) 2015-04-27 2017-03-07 Altera Corporation Flexible physical function and virtual function mapping
US10387180B2 (en) * 2015-07-07 2019-08-20 International Business Machines Corporation Hypervisor controlled redundancy for I/O paths using virtualized I/O adapters
JP6352869B2 (ja) * 2015-08-21 2018-07-04 日本電信電話株式会社 帯域制御システムおよび帯域制御方法
US10019280B2 (en) * 2016-03-25 2018-07-10 Intel Corporation Technologies for dynamically managing data bus bandwidth usage of virtual machines in a network device
GB2549773B (en) * 2016-04-28 2018-05-16 Metaswitch Networks Ltd Configuring host devices
EP3662695A1 (en) * 2017-08-03 2020-06-10 Drivenets Ltd. A network aware element and a method for using same
US11140020B1 (en) * 2018-03-01 2021-10-05 Amazon Technologies, Inc. Availability-enhancing gateways for network traffic in virtualized computing environments
US10630554B1 (en) 2018-10-29 2020-04-21 International Business Machines Corporation Input/output (I/O) performance of hosts through bi-directional bandwidth feedback optimization
CN115484212B (zh) * 2022-07-26 2023-10-20 浪潮通信技术有限公司 VF的QoS调整方法、装置及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028157B2 (en) * 2003-04-24 2006-04-11 International Business Machines Corporation On-demand allocation of data structures to partitions
JP4094560B2 (ja) * 2004-01-23 2008-06-04 株式会社エヌ・ティ・ティ・データ リソース分割サーバ及びリソース分割サーバプログラム
US7792140B2 (en) * 2006-06-30 2010-09-07 Oracle America Inc. Reflecting the bandwidth assigned to a virtual network interface card through its link speed
JP2008181387A (ja) * 2007-01-25 2008-08-07 Nec Corp I/oバスシステム及びその管理方法
JP4827790B2 (ja) * 2007-04-18 2011-11-30 株式会社日立製作所 通信負荷取得装置および通信負荷取得方法
JP4636625B2 (ja) * 2008-01-25 2011-02-23 株式会社日立情報システムズ 仮想ネットワークシステムのnic接続制御方法と仮想ネットワークのnic接続制御システムおよびプログラム
JP5109748B2 (ja) * 2008-03-26 2012-12-26 日本電気株式会社 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード

Also Published As

Publication number Publication date
JP2013196604A (ja) 2013-09-30
US20130254767A1 (en) 2013-09-26

Similar Documents

Publication Publication Date Title
JP5871233B2 (ja) 計算機及び帯域制御方法
US10768862B2 (en) Extending existing storage devices in virtualized environments
US9600339B2 (en) Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters
US10554485B2 (en) Method for configuring network, network system, and device
US8392623B2 (en) Guest/hypervisor interrupt coalescing for storage adapter virtual function in guest passthrough mode
US9081612B2 (en) Virtual machine control method and virtual machine
JP5689526B2 (ja) マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ
US7913024B2 (en) Differentiating traffic types in a multi-root PCI express environment
AU2013206117B2 (en) Hierarchical allocation of network bandwidth for quality of service
US20100211946A1 (en) Method and system for network abstraction and virtualization for a single operating system (os)
US9176787B2 (en) Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
KR20160123930A (ko) Sr-iov 기반 비휘발성 메모리 컨트롤러 및 그 비휘발성 메모리 컨트롤러에 의해 큐에 리소스를 동적 할당하는 방법
WO2014199586A1 (en) Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system
US20220318057A1 (en) Resource Management for Preferred Applications
CN114860387A (zh) 一种面向虚拟化存储应用的hba控制器i/o虚拟化方法
US20140245300A1 (en) Dynamically Balanced Credit for Virtual Functions in Single Root Input/Output Virtualization
KR101495069B1 (ko) 입출력 가상화 네트워크 인터페이스 카드 기반 가상 데스크탑 서비스 방법 및 장치
Ekane et al. FlexVF: Adaptive network device services in a virtualized environment
JP2018524697A (ja) ネットワークラインカード(lc)のホストオペレーティングシステム(os)への統合
US9110731B1 (en) Hard allocation of resources partitioning
Dey et al. Vagabond: Dynamic network endpoint reconfiguration in virtualized environments
CN111158849A (zh) 支持虚拟机共享io设备的多机计算装置及其io设备共享方法
Kontodimas et al. Analysis and evaluation of I/O hypervisor scheduling
KR20160083483A (ko) 우선순위에 기반한 가상 데스크톱의 입출력 제어 방법 및 그에 따른 가상 데스크톱 제공 서버

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160105

R150 Certificate of patent or registration of utility model

Ref document number: 5871233

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees