JP6571355B2 - I/oデバイス仮想化装置、システムおよび帯域保証制御方法 - Google Patents

I/oデバイス仮想化装置、システムおよび帯域保証制御方法 Download PDF

Info

Publication number
JP6571355B2
JP6571355B2 JP2015049049A JP2015049049A JP6571355B2 JP 6571355 B2 JP6571355 B2 JP 6571355B2 JP 2015049049 A JP2015049049 A JP 2015049049A JP 2015049049 A JP2015049049 A JP 2015049049A JP 6571355 B2 JP6571355 B2 JP 6571355B2
Authority
JP
Japan
Prior art keywords
bandwidth
bandwidth control
hosts
host
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015049049A
Other languages
English (en)
Other versions
JP2016170558A (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.)
NEC Platforms Ltd
NEC Corp
Original Assignee
NEC Platforms Ltd
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 Platforms Ltd, NEC Corp filed Critical NEC Platforms Ltd
Priority to JP2015049049A priority Critical patent/JP6571355B2/ja
Publication of JP2016170558A publication Critical patent/JP2016170558A/ja
Application granted granted Critical
Publication of JP6571355B2 publication Critical patent/JP6571355B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、I/O(入出力)デバイス仮想化装置、システムおよび帯域保証制御方法に関し、特に、単一のI/Oデバイスを複数のホストで共有するI/Oデバイス仮想化装置、システムおよび帯域保証制御方法に関する。
I/Oデバイスを共有するシステムは、仮想化という昨今登場した新しいテクノロジーを拡張し、アドレス変換によりホストから見えるI/Oデバイスを仮想的な装置とすることで、あたかも各ホストが同時に共有しているように見せる技術である。
特に、SR-IOV(Single-Root I/O Virtualization)規格は、ホスト間でのPCIe(Peripheral Component Interconnect express)デバイスの効率的な共有を可能にする技術であり、ホストのデバイスパフォーマンスを改善する。SR-IOVはシングルルート機能を複数の別個の物理デバイスのように見せることができ、各ホストは一意のリソースにアクセスすることができる。
このようなSR-IOV対応のI/Oデバイスを用いた共有システムが特許文献1や特許文献2に開示されている。
特許文献1は、I/Oデバイスを複数のコンピュータ間で共有するためにアドレス空間の管理方法を改良し、オペレーティングシステムやデバイスドライバの変更を行なうことなくI/Oデバイスの共有を可能にするシステムを開示する。特許文献1では、複数のコンピュータとSR-IOV対応のI/Oデバイスとの間にI/O仮想化デバイスを設ける。I/O仮想化デバイスは、I/Oデバイスに独自の単一アドレス空間を形成し、個々のコンピュータのアドレス空間にこのI/Oデバイスのアドレス空間をマッピングするように構成されている。
特許文献2は、複数のコンピュータとSR-IOV対応I/Oデバイスとの間に設置するI/O仮想化ブリッジにおけるI/Oデバイスの管理を単純化する技術である。I/O仮想化ブリッジはSR-IOV対応I/Oデバイスを仮想化するための装置である。I/Oデバイスの管理としては、I/Oデバイスに必要なそれぞれ固有の設定処理がある。特許文献2では、ネットワークで接続されたシステムマネージャを設ける。そして、I/Oデバイスに共通する管理だけをI/O仮想化ブリッジで行い、個別のI/Oデバイスに依存する処理は、I/Oデバイスの製造者から提供されるソフトウェアを用いて、システムマネージャから行うように構成されている。
また、特許文献3には、通信網を構成するネットワークエレメントの輻輳予兆状態を迅速に検出可能な輻輳制御システムが開示されている。特許文献3が開示する輻輳制御システムでは、複数のネットワーク装置が自装置のトラヒック情報に基づいて輻輳予兆情報をトラヒックコントロール装置に通知する。トラヒックコントロール装置は、該輻輳予兆情報に基づいて輻輳予兆状態にあるネットワーク装置に対して通信規制命令を発動して輻輳を抑制するように動作する。
国際公開第2009/025381号 国際公開第2013/150792号 特開2004−172755号公報
仮想化のテクノロジーは、新しい技術であるがゆえに使用するうえでの課題が多い。
例えば、特許文献1や特許文献2が開示する技術では、各ホスト間の通信量の偏りや輻輳を抑制するメカニズムが考慮されていない。つまり、特許文献1や特許文献2が開示する技術は、I/Oデバイスを共有する各ホストは同時に通信経路も共有しているが、経路の通信帯域を保証する機構がない。そのため、それぞれのホストが処理に必要な帯域を確保したり、また、システム管理者が意図的にホスト処理負荷に応じた通信帯域を割り当てたりすることが出来ない。
また、インタフェース信号速度の高速化により、外部ネットワークにコンピューティングシステムの内部信号を直接送れるようになったが、外部ネットワークでコンピューティング内部信号を低遅延で帯域制御できるような仕組みがない。
ホストとSR-IOV対応I/Oデバイスとの間ではPCIe(Peripheral Component Interconnect express)パケットが使用される。PCIe規格は広範囲なコンピュータプラットフォームや通信プラットフォームを対象として定義された高性能汎用I/Oインタコネクトである。
例えば、特許文献3が開示する輻輳制御システムは、コンピューティングシステムのPCIe規格による内部信号を、ネットワークを介して送受信することが意識されていない。そのため、特許文献3が開示するような輻輳制御システムでは、ナノ秒単位での調整が求められるコンピューティング内部信号を送受信すると、再送が多発し、安定的なシステム運用ができない。
本発明は、コンピューティングシステムの内部信号を外部ネットワークにおいて低遅延で帯域制御し、複数のホスト間でI/Oデバイスを論理的に公平に共有するI/Oデバイス仮想化装置、システムおよび帯域保証制御方法を提供する。
上記の目的を実現するために、本発明の一形態であるI/Oデバイス仮想化装置は、複数のホストとネットワークを介して接続され、該複数のホストにより共有されるI/O(入出力)デバイスとの間の通信において前記I/Oデバイスを仮想化する接続仮想化手段と、設定された帯域制御パラメータに基づいて、前記複数のホストと前記I/Oデバイスとの間のネットワークを介したPCIe(Peripheral Component Interconnect express)パケット通信を監視して、前記複数のホストのそれぞれに対して設定された所定の通信帯域の割当を保証する帯域制御を実行する帯域制御手段と、を含むことを特徴とする。
また、本発明の他の形態であるI/Oデバイス共有システムは、複数のホストと、前記複数のホストにより共有されるI/O(入出力)デバイスと、上記に記載のI/Oデバイス仮想化装置と、前記I/Oデバイス仮想化装置に前記帯域制御パラメータを設定するシステム管理装置と、を含むことを特徴とする。
さらに、本発明の別の形態である帯域保証制御方法は、複数のホストと該複数のホストにより共有されるI/O(入出力)デバイスとの間の通信において前記I/Oデバイスを仮想化するI/Oデバイス仮想化装置に、前記複数のホストと前記I/Oデバイスとの間のネットワークを介したPCIe(Peripheral Component Interconnect express)パケット通信の帯域制御パラメータを設定し、前記複数のホストと前記I/Oデバイスとの間の前記PCIeパケット通信を監視して、前記I/Oデバイス仮想化装置が前記帯域制御パラメータに基づいて、前記複数のホストのそれぞれに対して設定された所定の通信帯域の割当を保証する帯域制御を実行することを特徴とする。
本発明は、コンピューティングシステムの内部信号を外部ネットワークにおいて低遅延で帯域制御し、複数のホスト間でI/Oデバイスを論理的に公平に共有することができる。
本発明のI/Oデバイス仮想化装置とそれを含んだI/Oデバイス共有システムの第1の実施形態の構成を示すブロック図である。 本発明の帯域保証制御方法の第1の実施形態の動作を示すフロー図である。 本発明のI/Oデバイス仮想化装置とそれを含んだI/Oデバイス共有システムの第2の実施形態の構成を示すブロック図である。 帯域制御部の構成を示すブロック図である。 本発明の帯域保証制御方法の第2の実施形態の動作を示すフロー図である。 PCIeにおけるDMA(Direct Memory Access)リード要求時のデータフローを示す概念図である。 TLP(Transaction Layer Packet)のサイズを規定する最大リード要求長(MRRS:Max Read Request Size)とTLPセグメントパケットの最大ペイロード長(MPS:Max Payload Size)の関係を示す概念図である。 TLPセグメントパケット間に挿入するアイドルサイクルの概要を示す概念図である。 TLPセグメントパケットの転送にかかわるクロックサイクルを示す概念図である。 帯域制御実行通知と帯域制御解除通知に基づく帯域制御の実行と解除の制御タイミングの例を示す概念図である。 I/Oデバイスがネットワーク上に複数配置された場合にI/Oデバイスを単位として共有I/Oグループを構成する利用形態を示す概念図である。
本発明を実施するための形態について図面を参照して説明する。
尚、実施の形態は例示であり、開示の装置及びシステムは、以下の実施の形態の構成には限定されない。
(第1の実施形態)
図1は、本発明のI/Oデバイス仮想化装置とそれを含んだI/Oデバイス共有システムの第1の実施形態の構成を示すブロック図である。
第1の実施形態のI/Oデバイス仮想化装置10は、接続仮想化手段101と帯域制御手段100を含む構成になっている。
接続仮想化手段101は、複数のホスト30とネットワーク40を介して接続され、該複数のホスト30により共有されるI/O(入出力)デバイス20との間の通信においてI/Oデバイスを仮想化する。
帯域制御手段100は、設定された帯域制御パラメータに基づいて、複数のホスト30とI/Oデバイス20との間のネットワーク40を介したPCIe(Peripheral Component Interconnect express)パケット通信を監視する。そして、帯域制御手段100は、複数のホスト30のそれぞれに対して設定された所定の通信帯域の割当を保証する帯域制御を実行する。
また、第1の実施形態のI/Oデバイス共有システム1は、複数のホスト30と、複数のホスト30により共有されるI/Oデバイス20と、上記に記載のI/Oデバイス仮想化装置10と、システム管理装置50とを含んで構成される。システム管理装置50は、I/Oデバイス仮想化装置10に帯域制御パラメータを設定する。
図2は、本発明の帯域保証制御方法の第1の実施形態の動作を示すフロー図である。
本発明の帯域保証制御方法の第1の実施形態は、次のように動作する。
複数のホストと該複数のホストにより共有されるI/Oデバイスとの間の通信においてI/Oデバイスを仮想化するI/Oデバイス仮想化装置に、複数のホストとI/Oデバイスとの間の通信の帯域制御パラメータを設定する(S101)。複数のホストとI/Oデバイスとの間の通信は、ネットワークを介したPCIe(Peripheral Component Interconnect express)パケット通信である。
複数のホストとI/Oデバイスとの間のPCIeパケット通信を監視して、I/Oデバイス仮想化装置が帯域制御パラメータに基づいて、複数のホストのそれぞれに対して設定された所定の通信帯域の割当を保証する帯域制御を実行する(S102)。
以上のように、本実施形態では、帯域制御手段100を配備したI/Oデバイス仮想化装置10により、各ホスト30が使用する帯域の占有率(使用割合)をリアルタイムで制御することができる。しかも、帯域制御手段100は設定された帯域制御パラメータに基づいて自律で帯域制御を実行するので、ネットワーク40を介したPCIeパケット通信の低遅延での帯域制御が可能となる。そのため、ホスト間の帯域使用割合が適正化されて、I/Oデバイスを物理的に共有するのみならず、論理的にも公平に複数のホスト間で共有することができる。
(第2の実施形態)
次に第2の実施形態を説明する。
図3は、本発明のI/Oデバイス仮想化装置とそれを含んだI/Oデバイス共有システムの第2の実施形態の構成を示すブロック図である。
第2の実施形態のI/Oデバイス仮想化装置であるI/O仮想化ブリッジ11は、接続仮想化手段として、ネットワーク接続部111、パケット転送部112、アドレス変換部113および接続仮想化部114を含む。これらの構成は、第1の実施形態の接続仮想化手段101に相当する。また、I/O仮想化ブリッジ11は、第1の実施形態の帯域制御手段100に相当する構成として、パラメータブロック120、帯域管理ブロック130および帯域監視ブロック140を含む帯域制御部110を備える。
ネットワーク接続部111、パケット転送部112、アドレス変換部113、接続仮想化部114、パラメータブロック120、帯域管理ブロック130および帯域監視ブロック140の機能については後述する。
上記の構成を備えたI/O仮想化ブリッジ11を含む本発明の第2の実施形態のI/Oデバイス共有システム2は、複数のホスト31、システムマネージャ51および該I/O仮想化ブリッジ11がネットワーク41を介して接続される。そして、I/O仮想化ブリッジ11は、SR−IOV(Single-Root I/O Virtualization)規格に準拠するSR−IOV対応I/Oデバイス21と接続される。該SR−IOV対応I/Oデバイス21は、I/O仮想化ブリッジ11により仮想化されて、複数のホスト31により共有される。
各ホスト31は、プログラムに従って動作するCPU(Central Processing Unit)と該プログラムやデータを格納するメモリ、ホストPCIeブリッジおよびルートコンプレックスを含む構成となっている。ルートコンプレックスは、CPUとホストPCIeブリッジとを接続する機能部である。そして、ホストPCIeブリッジは、ホスト31のI/OバスであるPCIeバスをネットワーク41に接続する機能部である。ホストPCIeブリッジは、PCIeパケットのネットワークパケットへのカプセル化と、ネットワークパケットにカプセル化されたPCIeパケットのデカプセル化を行う。
システムマネージャ51は、上記のホスト31の構成と同様の構成を有し、帯域管理ソフトウェアを備えて、帯域制御に必要とされる各種のパラメータをI/O仮想化ブリッジ11の帯域制御部110に設定する。
SR−IOV対応I/Oデバイス21は、PF(Physical Function:物理機能)と複数のVF(Virtual Function:仮想機能)1乃至VFN(Nは2以上の自然数)を含む構成となっている。
PFは、SR−IOV機能を管理してデバイスを制御するインタフェースである。PFは、当該デバイスの設定情報を保持するPF CFG REG(PF構成レジスタ)を有する。VFは、I/Oデバイスの機能を提供するインタフェースであり、PFやPFに関連付けられた他のVFと1つ以上の物理リソースを共有する。
接続仮想化手段として機能するネットワーク接続部111、パケット転送部112、アドレス変換部113および接続仮想化部114について説明する。
上記のシステム構成において、ホスト31では、CPUがSR−IOV対応I/Oデバイス21の中のVFにアクセス命令を発行すると、ルートコンプレックスが、VFがマッピングされるメモリアドレス宛てのPCIeパケットを作成して送信する。ホストPCIeブリッジは、PCIeパケットをネットワークパケットにカプセル化してネットワーク41に送信する。
ネットワーク41と接続されたネットワーク接続部111は、ホスト31が送信したネットワークパケットを受信し、該ネットワークパケットをデカプセル化してPCIeパケットを取り出す。そして、取り出されたPCIeパケットは帯域制御部110を経由してパケット転送部112に転送される。なお、逆方向の通信でPCIeパケットをホスト31に送信する場合には、ネットワーク接続部111は、送信すべきPCIeパケットをネットワークパケットにカプセル化してネットワーク41に送信する。
パケット転送部112は、受信したPCIeパケットをアドレス変換部113に転送する。
接続仮想化部114は、SR−IOV対応I/Oデバイス21に関する設定を行う。
接続仮想化部114は、SR−IOV対応I/Oデバイス21がホスト31から使用される前に、PFのPF CFG REG(PF構成レジスタ)にアクセスしてSR−IOV対応I/Oデバイス21の設定を行う。このとき、SR−IOV対応I/Oデバイス21のVF1乃至VFNのアドレス設定を行う。
アドレス変換部113は、各ホスト31と各VFとの間で送受信されるI/OパスのPCIeパケットに記載されたアドレスに関して、各ホスト31が設定したアドレスと、接続仮想化部114が設定したアドレスの変換を行う。
帯域制御部110のパラメータブロック120、帯域管理ブロック130および帯域監視ブロック140の機能について説明する。
パラメータブロック120は、システムマネージャ51が設定する帯域制御に関するパラメータを格納するレジスタであり、システムマネージャ51から直接制御されて書き込まれる。格納されたパラメータは帯域監視ブロック140および帯域管理ブロック130から参照される。
帯域監視ブロック140は、帯域制御部110を通過するI/Oパスの通信量をモニタして帯域の使用状況を監視する。I/Oパスの輻輳状態を検知し、しかもホスト間での帯域使用が公平になっていないことを判定した場合に、帯域監視ブロック140は、帯域管理ブロック130に帯域制御の実行を指示する。
なお、システム運用者は、ホスト間に割り当てる帯域を意図的に偏らせるように設定することもあり得る。そのため、帯域監視ブロック140は、帯域の使用状況がシステムマネージャ51から設定された状態から逸脱していると判定した場合にも、帯域管理ブロック130に帯域制御の実行を指示する構成にしてもよい。
帯域管理ブロック130は、帯域監視ブロック140からの帯域制御の実行指示をトリガーにして帯域制御を実行する。帯域制御は、パラメータブロックに格納された各種パラメータに従って、各ホストのI/Oパスに設定された帯域を保証するような通信量の制御を行う。
図3のように構成された第2の実施形態のI/Oデバイス仮想化装置とそれを含んだI/Oデバイス共有システムは、以下のように動作する。ここでは、2つのホスト31(ホスト31-1、ホスト31-2とする)がSR−IOV対応I/Oデバイス21にアクセスする場合を例にする。なお、以降の説明においては、SR−IOV対応I/Oデバイス21を単にI/Oデバイス21と称するものとする。
ホスト31-1において、CPUがI/Oデバイス21にアクセスする命令を発行すると、ルートコンプレックスは、I/Oデバイス21宛のPCIeパケットを作成して送信する。ホストPCIeブリッジは、PCIeパケットをネットワークパケットにカプセル化してネットワーク41に送信する。
I/O仮想化ブリッジ11において、ネットワーク接続部111は、ネットワーク41を介してネットワークパケットを受信すると、該ネットワークパケットをデカプセル化してPCIeパケットを取り出す。ネットワーク接続部111は、取り出したPCIeパケットを、帯域制御部110を経由してパケット転送部112に転送する。
パケット転送部112は、受信したPCIeパケットをアドレス変換部113に転送する。
アドレス変換部113は、PCIeパケットの宛先アドレスを、ホスト31-1が指定したアドレスから、接続仮想化部114が再設定したアドレスに変換する。そして、アドレス変換したPCIeパケットをI/Oデバイス21に送信する。
なお、I/Oデバイス21が送信したPCIeパケットをホスト31-1、31-2が受信する場合には、上記の処理と逆の処理が実行される。
上記の処理において、ホスト31-1、31-2宛てのPCIeパケットは、帯域制御部110にて監視が行われ、パケットの流量が測定される。つまり、パケットの流量を測定して通信経路の帯域使用率がモニタされる。具体的には、ホストからのDMA(Direct Memory Access)リード要求に対する応答データの量が監視される。
帯域制御部110はシステムマネージャ51によって設定された「輻輳と判断する閾値」と各ホストに対して設定した「最低保証帯域」に従い、通信量の調整を行う。例えば、ホスト31-1の通信がホスト31-2の通信に圧迫されていると判断すると、ホスト31-2の通信量を抑制してホスト31-1の通信量を規定された値まで回復させて、両ホスト間の通信量のバランスを制御する。
次に、本実施形態の特徴となる帯域制御部110の構成と動作について図4乃至図10を参照して詳細に説明する。
図4は、I/O仮想化ブリッジ11が備える帯域制御部110の構成を示すブロック図である。
前述のように、帯域制御部110は、帯域制御に関するパラメータを格納したパラメータブロック120、I/Oパスの通信量をモニタする帯域監視ブロック140および帯域制御を実行する帯域管理ブロック130を含む構成になっている。
帯域制御部110の動作は、パラメータブロック120に設定する情報を介してシステムマネージャ51から制御することができる。システムマネージャ51はパラメータブロック120に帯域制御に必要なパラメータ設定を行い、帯域監視ブロック140および帯域管理ブロック130は、その設定に従い動作する。
システムマネージャ51はネットワーク41を介してパラメータブロック120にアクセスすることができ、パラメータブロック120のパラメータ設定値を変更できる。なお、ネットワーク41を介することなくシステムマネージャ51が直接パラメータブロック120にアクセスすることができるように構成してもよい。
システムマネージャ51は初期のパラメータ設定通知および、変更時の設定変更通知を実行するのみで、帯域の制御そのものには直接かかわらない。つまり、帯域制御そのものは、低遅延での処理が必要となることから、帯域制御部110が自律で行ない、逐次システムマネージャ51からの指示は受けない。
システムマネージャ51によるパラメータブロック120の設定は任意のタイミングで変更が可能であり、ホスト31やI/Oデバイス21およびI/O仮想化ブリッジ11の再起動や電源の再投入を必要とせずに動作することが出来る。
帯域制御部110は、システムマネージャ51によって設定された帯域制御機能の有効化、設定された帯域制御に関連するパラメータ等をもとに、各ホスト31に対して割り当てられた帯域を保証するように帯域制御を実行する。
システムマネージャ51がパラメータブロック120に設定する各種のパラメータについて説明する。
システムマネージャ51は、図4に示す5種類のパラメータのうち、帯域制御動作設定121、輻輳判定閾値122および最低保証帯域123を設定する。
また、図4に示す残りのパラメータの共有中のホストの数124および帯域制御ステータス125は、I/O仮想化ブリッジ11内部で生成されて設定・更新される情報である。システムマネージャ51は、これらの情報を確認することができる。
Z:帯域制御動作設定121は、帯域制御部110の機能を動作させるか否かの情報が設定される。
A:輻輳判定閾値122は、帯域監視ブロック140が輻輳状態を判定するための閾値である。帯域監視ブロック140は、全ホストの総通信量を監視し、該判定閾値を超えると輻輳状態にあると判断する。閾値の単位はMbit/秒やPacket/秒である。なお、輻輳状態にあると判断され、かつ、最低保証帯域を下回るホストがいると、帯域管理ブロック130により帯域制御が実行される。帯域制御の実行に関しての詳細は後述する。
B:最低保証帯域123は、各ホストに対して割り当てられた最低を保証する通信帯域で、この保証帯域を下回らないように帯域制御が実行される。単位はMbit/秒やPacket/秒である。
C:共有中のホストの数124は、I/Oデバイス21を共有しているホストの数が表示される。
D:帯域制御ステータス125は、帯域制御実行状態か、帯域制御停止状態かを表示する。
パラメータブロック120の設定パラメータを使用した帯域制御の実行動作について図5を参照して説明する。
図5は、本発明の帯域保証制御方法の第2の実施形態の動作を示すフロー図である。
まず前段階として、システムマネージャ51は、ネットワーク41上にI/O仮想化ブリッジ11を見つけると、該I/O仮想化ブリッジ11の配下I/Oデバイス21へのアクセスが帯域制御対象であるかどうかを判断する。帯域制御対象であると判断するとシステムマネージャ51は、I/O仮想化ブリッジ11内のパラメータブロック120に上述した帯域制御動作設定121、輻輳判定閾値122および最低保証帯域123を設定する。
帯域制御動作設定121に帯域制御動作ONが設定されていると(S201、Yes)、帯域監視ブロック140は、全ホストの単位時間あたりの総通信量を監視して輻輳判定閾値122を超えているか否かの判定を行う(S202)。
監視している総通信量が輻輳判定閾値122を超えていると判定(S202、Yes)した帯域監視ブロック140は、輻輳発生を認識し、帯域制御の実行の要否を判定する。
本実施形態では、帯域制御の実行条件として、I/Oデバイス21を共有しているホストの数が複数であること、および、割り当てられた最低保証帯域以下のホストが存在することを条件とする。これは、I/Oデバイス21を共有しているホスト間での帯域使用を公平化することを目的とし、割り当てられた最低保証帯域を満足している限りにおいては帯域制御を実行する必要がないという考えに基づくものである。
帯域監視ブロック140は、パラメータブロック120の共有中のホストの数124に表示された情報を参照して、I/Oデバイス21を共有しているホストの数が複数であるか否かを判定する(S203)。
共有ホスト数が複数であると判定(S203、Yes)すると、帯域監視ブロック140は、各ホストが使用しているI/Oパスの帯域使用状況が最低保証帯域123に登録された最低保証帯域を満足しているか否かを判定する(S204)。
最低保証帯域123に登録された最低保証帯域を満足していないホストの存在を確認すると、帯域監視ブロック140は、帯域制御の実行が必要であると判定する(S204、Yes)。
なお、上述した帯域監視ブロック140の各判定動作(S201、S202、S203、S204)のいずれかにおいて「No」と判定された場合には、帯域制御の実行は不要であると判定される。
帯域制御の実行が必要であると判定した場合、帯域監視ブロック140は帯域制御実行(S205)を帯域管理ブロック130に指示する。
また、帯域制御の実行が必要でないと判定した場合、帯域監視ブロック140は帯域制御解除(S206)を帯域管理ブロック130に指示する。帯域管理ブロック130は帯域制御解除の指示を受けた場合、もともと帯域制御を実行していない場合には何もしない。また、帯域制御が実行されている場合には、その解除の処理を行う。
帯域制御が実行状態であるか解除状態であるかは、前述したパラメータブロック120の帯域制御ステータス125に表示される。
上述したステップS201乃至ステップS206の処理は繰り返し実行される。従って、帯域制御実行状態と帯域制御解除状態は動的に変化する。
なお、上述した図4および図5を参照した説明は、輻輳状態が発生してしかもホスト間での帯域使用が公平になっていないことを判定した場合に、帯域制御の実行を行うものである。しかし、帯域の使用状況が、システムマネージャ51が設定した状態から逸脱していると判定された場合に帯域制御を行うという構成にしてもよい。その場合は、最低保証帯域を目標保証帯域と読み替えて、輻輳状態の発生有無を判定することなく、モニタしている各ホストの帯域使用状況が所定の割合で目標保証帯域を逸脱していることを識別した場合に帯域制御を実行する制御を行なえばよい。
次に、帯域管理ブロック130が実行する帯域制御のメカニズムについて図6乃至図10を参照して説明する。
図6は、PCIeにおけるDMAリード要求時のデータフローを示す概念図である。
本実施形態のシステムで使用する通信データは、PCIe(Peripheral Component Interconnect express)パケットである。
PCIeは、TLP(Transaction Layer Packet)と呼ばれるデータフォーマット(構造体)を使ってホスト31とI/Oデバイス21との間において通信される。
DMAリード転送の場合、読出しを要求できるサイズには上限であるMRRS(Max Read Request Size:最大リード要求長)が定められている。また、TLPは複数のTLPセグメントパケットに分割され、各TLPセグメントパケットが運ぶデータサイズ(ペイロード)は、最大ペイロード長であるMPS(Max Payload Size)以下に制限される。そして、TLPセグメントパケット間にはアイドルサイクルが挿入される。
図7は、上述したTLPのサイズを規定するMRRS(最大リード要求長)とTLPセグメントパケットのMPS(最大ペイロード長)の関係を示す概念図である。
つまり、上述したPCIeパケットは、MRRSやMPSに従って分割された複数のTLPセグメントパケットである。例えば、MRRS=4096ByteでMPS=128Byteに設定されていると、セグメントパケット数は32=4096/128で一つの要求データが形成される。
MRRSとMPSは、ホスト起動時のコンフィギュレーションサイクルで決定され、ホスト側プログラムからI/Oデバイスのコンフィギュレーションレジスタに設定されるものである。
本実施形態では、上記のようなPCIeの特性を活用した帯域制御を行う。具体的には、PCIeのホストからのDMAリード要求に対する応答データを構成するTLPセグメントパケットの間に挿入するアイドルサイクルに付加アイドルサイクルを追加して、転送遅延時間を増やすことで帯域制御を行う。
図8は、TLPセグメントパケット間に挿入するアイドルサイクルの概要を示す概念図である。
図8に示すように、DMAリード要求に対する応答データを構成するTLPセグメントパケット間に挿入するアイドルサイクルを、帯域制御時には付加アイドルサイクルを追加する。これにより転送遅延時間が増え、単位時間当たりの通過パケット数が減少して帯域の使用率が下がる。
これは、帯域の使用率が大きいホストに対して実行する処理であり、その帯域使用率を下げることで他の最低保証帯域を満足していないホストが帯域を使用できるように救済するものである。
次に、帯域制御のために付加するアイドルサイクルの決定について説明する。
図9は、TLPセグメントパケットの転送にかかわるクロックサイクルを示す概念図である。
DMAリード要求時の転送性能BW(Bandwidth)は、TLPセグメントパケットの個数、データサイクル、ヘッダサイクルおよびアイドルサイクルを使って次のように表すことができる。
ここで、TLPセグメントパケット個数をNM(tlp)、データサイクルをCY(d)、ヘッダサイクルをCY(h)、アイドルサイクルをCY(i)で表す。また、TLPセグメントパケットを1個転送するのに必要なクロックサイクルを1セグメントサイクルと称し、CY(s)で表すものとする。
1セグメントサイクルCY(s)は、図9に示すように、ヘッダサイクルCY(h)、データサイクルCY(d)およびアイドルサイクルCY(i)の合計のクロックサイクルである。
つまり、CY(s)=CY(h)+CY(d)+CY(i)となる。
転送性能BWは、TLPセグメントパケットをNM(tlp)個を転送するのに必要なクロックサイクルなので、NM(tlp)に1セグメントサイクルCY(s)を掛ければ良い。
つまり、BW=NM(tlp)×CY(s)となる。
TLPセグメントパケット個数NM(tlp)は、1DMAリード要求時に生成されるTLPセグメントパケット数となる。
つまり、NM(tlp)=MRRS/MPSとなる。
従って、BW=(MRRS/MPS)×{CY(h)+CY(d)+CY(i)}と表せる。
ここで、現在の転送性能をBW1、抑制すべき帯域制御目標となる転送性能をBW2とすると、それぞれのアイドルサイクルCY(i)1およびCY(i)2は次のように表せる。
CY(i)1=BW1×(MRRS/MPS)−{CY(h)+CY(d)}
CY(i)2=BW2×(MRRS/MPS)−{CY(h)+CY(d)}
従って、転送性能をBW1からBW2に抑制するために、現在のアイドルサイクルに付加するアイドルサイクルCY(i)INVは、次のように決定される。
CY(i)INV=CY(i)2−CY(i)1
つまり、付加アイドルサイクルCY(i)INVは、現在のパケット流量に対応するアイドルサイクルCY(i)2と、目標とするパケット流量に対応するアイドルサイクルCY(i)1との差分のクロックサイクルとして決定する。
以上のようにして求めた付加アイドルサイクルCY(i)INVを用いた帯域制御の方法について説明する。
図10は、帯域制御実行通知と帯域制御解除通知に基づく帯域制御の実行と解除の制御タイミングの例を示す概念図である。
これは、図5を参照して説明した帯域保証制御方法の動作において、帯域制御の実行の必要有無を判定した帯域監視ブロック140の指示で帯域管理ブロック130が実行する動作である。つまり、帯域監視ブロック140が帯域制御対象となるホストやその通信量に関する情報を帯域管理ブロック130に通知することで動作が開始される。
例として、ホスト31-1とホスト31-2がI/Oデバイス21を共有しており、ホスト31-2による大量のデータ通信により、ホスト31-1のデータ通信が最低保証帯域123(B1)を下回っていたとする。
上記の場合、帯域管理ブロック130は、ホスト31-2のデータ通信において、各TLPセグメントパケット間に上述したようにして決定した付加アイドルサイクルCY(i)INVを挿入する。
このとき、帯域管理ブロック130は、ホスト31-2のデータ通信に挿入すべき付加アイドルサイクルCY(i)INVの長さを決めるための目標となる転送性能を帯域監視ブロック140から通知される。
帯域管理ブロック130は、帯域監視ブロック140から帯域制御解除通知を受けるまで付加アイドルサイクルCY(i)INVの挿入を継続する。
そして、帯域監視ブロック140から帯域制御解除通知を受けると、ホスト31-2のデータ通信に挿入していた付加アイドルサイクルCY(i)INVを除去して、帯域制御を解除する。
なお、図5を参照して説明したように、各判定ステップ(S201乃至S204)において「No」と判定された場合に帯域制御解除が通知される。これは、上述した帯域制御の効果により、判定ステップS202やS204で帯域制御の必要がないことが判明した場合が含まれる。
また、このとき、帯域管理ブロック130は、ホスト31-2のデータ通信に対する付加アイドルサイクルCY(i)INVの挿入を、予め決められた転送性能のステップに基づいて算出して実行するように構成にしてもよい。つまり、この場合、帯域監視ブロック140は前述の目標とする転送性能を帯域管理ブロック130に指示しない。
この場合、帯域監視ブロック140は、帯域管理ブロック130の帯域制御実行の結果に基づく各ホストの使用帯域を監視し、帯域制御実行の結果が満足できない場合には、再度の帯域制御実行の指示を出す。つまり、帯域制御実行にもかかわらず輻輳状態にあり、しかもホスト31-1のデータ通信が最低保証帯域123(B1)をまだ下回っていた場合には、再度の帯域制御実行の指示が出される。
帯域管理ブロック130は、帯域制御実行の指示がなくなった段階でそのときの付加アイドルサイクルCY(i)INVの長さを維持する。そして、帯域監視ブロック140から帯域制御解除通知を受けると、ホスト31-2のデータ通信に挿入していた付加アイドルサイクルCY(i)INVを除去する。
また、上述した付加アイドルサイクルCY(i)INVの挿入は、PCIe規格に準拠した基本クロックを基準とするためナノ秒単位で制御することができる。規格の一例として125MHz/250MHzクロックがあり、4ナノ/8ナノ秒単位でも制御することができる。
PCIeパケットによるデータ通信のタイムアウト時間は数マイクロ秒未満と短く、一般的なネットワーク帯域制御ではタイムアウトによるデータ再送が多発して安定的なシステム運用ができなくなる。しかし、本実施形態では、ネットワーク上において、コンピューティングの内部信号で必要とされるナノ秒オーダーでの制御が行え、コンピューティング内部バスのような高速信号もリアルタイムかつ再送を発生させずに帯域制御することができる。
また、各ホストにおいては付加アイドルサイクルの挿入による遅延加算を意識できないため、ホストに対して大幅な性能低下を意識させることなく帯域を制御することができる。
なお、図11は、I/Oデバイスがネットワーク上に複数配置された場合にI/Oデバイスを単位として共有I/Oグループを構成する利用形態を示す概念図である。
図11のように、I/Oデバイス22をネットワーク上に多数配置するとネットワーク側でも輻輳が発生するケースが考えられる。そのため、そのような場合を考慮してネットワーク42での輻輳を抑制するために、共有I/Oグループを単位にした帯域制限を実行する構成にしてもよい。この場合、システム管理装置52は、共有I/Oグループを構成する各I/Oデバイス仮想化装置12に対して、ネットワーク42での輻輳抑制を考慮したパラメータ設定を行えばよい。
このように、本実施形態ではI/Oデバイスを共有する通信において輻輳が発生してもホスト毎に適切な通信帯域を割り当てることが出来て、さらに輻輳そのものを抑制することができる。さらに、システム運用者が、ホスト間に割り当てる帯域を意図的に偏らせるように設定したような場合であっても、ホスト毎の帯域の使用状況を監視して、所定の通信量の範囲で通信させるように帯域制御することもできる。そのため、本実施形態はI/Oデバイスを共有するシステム全体のパフォーマンスを向上させることができる。
以上に説明したように、本実施形態は、コンピューティングシステムの内部信号を外部ネットワークにおいて低遅延で帯域制御し、複数のホスト間でI/Oデバイスを論理的に公平に共有することができる。
1、2 I/Oデバイス共有システム
10、12 I/Oデバイス仮想化装置
11 I/O仮想化ブリッジ
20、22 I/Oデバイス
21 SR-IOV対応I/Oデバイス
30、31、31-1、31-2 ホスト
40、41、42 ネットワーク
50、52 システム管理装置
51 システムマネージャ
100 帯域制御手段
101 接続仮想化手段
110 帯域制御部
111 ネットワーク接続部
112 パケット転送部
113 アドレス変換部
114 接続仮想部
120 パラメータブロック
121 帯域制御動作設定
122 輻輳判定閾値
123 最低保証帯域
124 共有中のホストの数
125 帯域制御ステータス
130 帯域管理ブロック
140 帯域監視ブロック

Claims (8)

  1. 複数のホストとネットワークを介して接続され、該複数のホストにより共有されるI/O(入出力)デバイスとの間の通信において前記I/Oデバイスを仮想化する接続仮想化手段と、
    設定された帯域制御パラメータに基づいて、前記複数のホストと前記I/Oデバイスとの間のネットワークを介したPCIe(Peripheral Component Interconnect express)パケット通信を監視して、前記複数のホストのそれぞれに対して設定された所定の通信帯域の割当を保証する帯域制御を実行する帯域制御手段と、
    を備え
    前記帯域制御手段は、前記ホストからDMA(Direct Memory Access)リード要求に対する前記I/Oデバイスからの応答データを構成するTLP(Transaction Layer Packet)セグメントパケットの間に挿入するアイドルサイクルに、抑制すべきパケット流量に応じた付加アイドルサイクルを加えて前記帯域制御を実行し、前記帯域制御の解除を行う際には該付加アイドルサイクルを除去する
    ことを特徴とするI/Oデバイス仮想化装置。
  2. 前記帯域制御手段は、現在のパケット流量に対応する前記アイドルサイクルと、抑制目標とするパケット流量に対応するアイドルサイクルとの差分のクロックサイクルとして前記付加アイドルサイクルを決定することを特徴とする請求項に記載のI/Oデバイス仮想化装置。
  3. 前記帯域制御手段は、
    輻輳状態を判定する基準となる通信量の輻輳判定閾値と、前記複数のホストのそれぞれに割り当てられた最低を保証する通信帯域を規定する最低保証帯域を含む前記帯域制御パラメータを格納するパラメータ登録部と、
    該帯域制御手段を通過する通信量を監視し、前記複数のホストによる総通信量が前記輻輳判定閾値を超え、かつ、前記最低保証帯域を下回る通信量のホストが存在する場合に、前記帯域制御の実行指示を出力する帯域監視部と、
    前記帯域監視部が出力する前記帯域制御の実行指示に基づいて、前記複数のホストのうち通信量が最大のホストの通信路を流れるパケット流量を減少させて前記帯域制御を実行する帯域管理部と、
    を備えることを特徴とする請求項1あるいは請求項に記載のI/Oデバイス仮想化装置。
  4. 前記帯域監視部は、前記帯域制御の実行指示の出力後、前記複数のホストによる総通信量が前記輻輳判定閾値を下回るか、前記最低保証帯域を下回る通信量のホストが存在しない場合に、前記帯域制御の解除指示を出力し、
    前記帯域管理部は、前記帯域制御の解除指示を受けると、前記帯域制御で減少させた前記通信路のパケット流量を元に戻す帯域制御解除を行う
    ことを特徴とする請求項に記載のI/Oデバイス仮想化装置。
  5. 複数のホストと、
    前記複数のホストにより共有されるI/O(入出力)デバイスと、
    前記請求項1乃至請求項の何れかの請求項に記載のI/Oデバイス仮想化装置と、
    前記I/Oデバイス仮想化装置に前記帯域制御パラメータを設定するシステム管理装置と、
    を備えることを特徴とするI/Oデバイス共有システム。
  6. 複数のホストと該複数のホストにより共有されるI/O(入出力)デバイスとの間の通信において前記I/Oデバイスを仮想化するI/Oデバイス仮想化装置に、前記複数のホストと前記I/Oデバイスとの間のネットワークを介したPCIe(Peripheral Component Interconnect express)パケット通信の帯域制御パラメータを設定し、
    前記複数のホストと前記I/Oデバイスとの間の前記PCIeパケット通信を監視して、前記I/Oデバイス仮想化装置が前記帯域制御パラメータに基づいて、前記複数のホストのそれぞれに対して設定された所定の通信帯域の割当を保証する帯域制御を実行し、
    前記ホストからDMA(Direct Memory Access)リード要求に対する前記I/Oデバイスからの応答データを構成するTLP(Transaction Layer Packet)セグメントパケットの間に挿入するアイドルサイクルに、抑制すべきパケット流量に応じた付加アイドルサイクルを加えて前記帯域制御を実行し、
    前記帯域制御の解除を行う際には該付加アイドルサイクルを除去する
    ことを特徴とする帯域保証制御方法。
  7. 現在のパケット流量に対応する前記アイドルサイクルと、抑制目標とするパケット流量に対応するアイドルサイクルとの差分のクロックサイクルとして前記付加アイドルサイクルを決定する
    ことを特徴とする請求項に記載の帯域保証制御方法。
  8. 前記帯域制御パラメータは、輻輳状態を判定する基準となる通信量の輻輳判定閾値と、前記複数のホストのそれぞれに割り当てられた最低を保証する通信帯域を規定する最低保証帯域を含み、
    前記複数のホストによる総通信量が前記輻輳判定閾値を超え、かつ、前記最低保証帯域を下回る通信量のホストが存在する場合に、前記帯域制御の実行指示を出力し、
    前記帯域制御の実行指示に基づいて、前記複数のホストのうち通信量が最大のホストの通信路を流れるパケット流量を減少させる前記帯域制御を実行し、
    前記帯域制御の実行指示の出力後、前記複数のホストによる総通信量が前記輻輳判定閾値を下回るか、前記最低保証帯域を下回る通信量のホストが存在しない場合に、前記帯域制御の解除指示を出力し、
    前記帯域制御の解除指示に基づいて、前記帯域制御で減少させた前記通信路のパケット流量を元に戻す帯域制御解除を行う
    ことを特徴とする請求項6あるいは請求項に記載の帯域保証制御方法。
JP2015049049A 2015-03-12 2015-03-12 I/oデバイス仮想化装置、システムおよび帯域保証制御方法 Active JP6571355B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015049049A JP6571355B2 (ja) 2015-03-12 2015-03-12 I/oデバイス仮想化装置、システムおよび帯域保証制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015049049A JP6571355B2 (ja) 2015-03-12 2015-03-12 I/oデバイス仮想化装置、システムおよび帯域保証制御方法

Publications (2)

Publication Number Publication Date
JP2016170558A JP2016170558A (ja) 2016-09-23
JP6571355B2 true JP6571355B2 (ja) 2019-09-04

Family

ID=56983836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015049049A Active JP6571355B2 (ja) 2015-03-12 2015-03-12 I/oデバイス仮想化装置、システムおよび帯域保証制御方法

Country Status (1)

Country Link
JP (1) JP6571355B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102634986B1 (ko) * 2019-01-08 2024-02-07 한국전자통신연구원 가상화 환경에서의 프로그램 전송 장치 및 방법 그리고 이를 포함하는 시스템
CN117319214B (zh) * 2023-11-30 2024-04-16 北京象帝先计算技术有限公司 一种pcie传输带宽处理方法、pcie终端设备及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4238415B2 (ja) * 1998-05-26 2009-03-18 株式会社日立製作所 送信端末装置およびネットワークノードおよび中継スイッチ
JP2000253056A (ja) * 1999-02-25 2000-09-14 Fuji Xerox Co Ltd 送信帯域制御装置
JP4259349B2 (ja) * 2003-02-25 2009-04-30 株式会社日立製作所 トラヒックシェーピング方法及びトラヒックシェーピング装置
JP5871233B2 (ja) * 2012-03-22 2016-03-01 株式会社日立製作所 計算機及び帯域制御方法
WO2013150792A1 (ja) * 2012-04-06 2013-10-10 日本電気株式会社 I/oデバイス共有システムおよびi/oデバイス共有方法

Also Published As

Publication number Publication date
JP2016170558A (ja) 2016-09-23

Similar Documents

Publication Publication Date Title
US10365830B2 (en) Method, device, and system for implementing hardware acceleration processing
JP7411633B2 (ja) 固定PCIe物理トランスポートネットワーク上の論理トランスポート
US8144582B2 (en) Differentiating blade destination and traffic types in a multi-root PCIe environment
US8312187B2 (en) Input/output device including a mechanism for transaction layer packet processing in multiple processor systems
CN110162378B (zh) 一种资源调度的方法、装置、设备及系统
JP7081484B2 (ja) パケット処理装置、及び、パケット処理方法
US8972611B2 (en) Multi-server consolidated input/output (IO) device
US11086703B2 (en) Distributed input/output virtualization
US11995019B2 (en) PCIe device with changeable function types and operating method thereof
KR102529761B1 (ko) PCIe 디바이스 및 그 동작 방법
US20200401751A1 (en) Systems & methods for multi pf emulation using vfs in ssd controller
US11403250B2 (en) Operation accelerator, switch, task scheduling method, and processing system
JP6571355B2 (ja) I/oデバイス仮想化装置、システムおよび帯域保証制御方法
EP2835743A1 (en) I/o device sharing system and i/o device sharing method
CN111158905A (zh) 调整资源的方法和装置
JP6760579B2 (ja) ネットワークラインカード(lc)のホストオペレーティングシステム(os)への統合
JP2008502977A (ja) バス・コントローラのための割り込み方式
US20230350824A1 (en) Peripheral component interconnect express device and operating method thereof
KR20230142095A (ko) 인터페이스 디바이스 및 그 동작 방법
JP2017111597A (ja) 帯域設定方法、帯域設定プログラム、情報処理装置及び情報処理システム
CN118175111A (zh) 一种数据传输方法、dma控制器、设备及存储介质

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170705

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190808

R150 Certificate of patent or registration of utility model

Ref document number: 6571355

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150