NIC Partitioning (NPAR)

NIC Partitioning (NPAR)とは、その名の通りNICを論理的に分割して複数の論理ポートとして扱う技術です*1。このような技術は、HPがFlex-10 / Virtual Connectにて2008年末頃にすでに提供していましたが、実装方式は異なるものの、同じ様なことができる仕組みといえます。DELLブレードサーバM710HDに10GbE Converged Network Daughter Card "Broadcom 57712-k"を搭載することによりNPARを実装しました。本エントリーのソース資料はこちらのSetup Guide (PDF)White Paper (PDF)です。

Broadcom 57712-kによるNPARはOSに対して1つの物理デバイスを複数の論理デバイスとして「見せかける」技術ですので、NPARの構成はFirmwareレベルで行います*2DELL PowerEdgeの場合は、UEFIブート時に使用することができる管理ツール"Unified Server Configurator (USC)"で設定することができるようになっているようです。

NPARに関する設定項目としては、まずNPARによるパーティション機能の有効/無効、そして1つの物理ポートに対して構成される4つの論理ポート(=パーティション)に対する帯域ウェイト値(相対値)と最大帯域値(上限値) (いずれも相対値による構成で1-100までを入力可能。よって、合計値は最小で4、最大で400となります。)の設定*3、各パーティション個別の構成(iSCSI Offloadの有効/無効の定義など)などを設定することができます。

Broadcom 57712-k によるNPARでは最大で8ファンクション(ポートあたり4 x2ポート分)の論理Ethernetポートと、4ファンクション(ポートあたり2 x2ポート分)の論理iSCSIアダプタポートを構成することが可能です。OSからは論理的にはそれぞれが独立したインターフェイスとして認識されますので、下記のようにWindows Server 2008の場合では、8つのネットワークアダプタ、4つのストレージコントローラが認識され、対応するデバイスとしては8つのマルチファンクションデバイスとして認識されるということとなります。

最大帯域値を指定した場合は、上限値として構成されますので、設定した割合でリンクスピードが認識されることになります。たとえば、最大帯域値を以下のように設定すると、それぞれが10GbEに対する相対割合値がリンクスピードとしてOSに伝えられることとなります。

パーティション 最大帯域値 リンクスピード
パーティション1 4 400Mbps
パーティション2 17 1.7Gbps
パーティション3 33 3.3Gbps
パーティション4 46 4.6Gbps

OSからはNPARによって構成される各ファンクションが独立した管理対象として認識されるため、それぞれに対してMTUサイズやVLAN IDなどのプロパティ値を構成することが可能です。同じパーティションで構成されるネットワークアダプタiSCSIアダプタそれぞれで異なるMTUサイズを設定することも問題ありません。PXEiSCSI Bootなども使用することができます。

ただし、NPARはあくまでも物理ポートを論理ポートとして論理分割する機能となるため、物理ポートの制約を回避できるものではありません。また、物理ポートのリソースを分割して使用することとなりますので、たとえばRX/TX Queueは単一の物理ポートの場合は64/ポートとなりますが、NPARを使用すると16/パーティションと1/4になります。その他、各機能についてのNPAR使用時と未使用時における違いは下表の通りです(SFはSingle Functionの略)。NPAR使用時はTeaming構成時におけるLAGやTrunkは構成できません*4

NPARはあくまでもアダプタカードの機能となるため、使用するスイッチに関しては特に制約はありませんし、Broadcomのアダプタだけでしか使えないわけではありません(今後、他のベンダーモデルもリリースされるでしょう)。また、FlexAddress PlusによるMACアドレスのスロット割り当ても使用することができるようです。しかしNPARは現在のところ、USCからのみ構成することができる仕様のため、Activeに帯域ウェイト値を変更したりすることはできず、4パーティション以上の構成を行うことはできません。また、ブレードサーバシャーシに搭載するスイッチなどについても対応するモデルを使用する必要があるようです*5

EthernetやDCB/FCoE、iSCSIなど、10GbEの登場と相まってネットワークアダプタはストレージネットワークを含めてより統合された用途に使用されるようになってきています。また、サーバ仮想化技術の一般化により、サーバが必要とするネットワーク接続はより拡張性・柔軟性を持った構成が可能であることを求められています。NPARは今後、当たり前に用いられる技術となり、仮想化と組み合わされてますますサーバは物理的な姿と論理的な構成に隔たりが生まれることとなっていきそうです。仮想化によりすでに生じていることではありますが、今後はサーバについてもネットワークのように物理構成図、論理構成図が必要となり、さらには筐体を超えた統合的な管理が必要かつ重要になっていくことになりそうです。もちろん、そこに設計のやりがいもあることになるわけでもありますが。

*1:仮想化Hypervisorと連携して機能するSR-IOVとは別物です

*2:ただし、もちろんOSに対してデバイスドライバは必要となりますので、サポートされるOSは確認が必要です

*3:Broadcom 57712-kは10GbEの物理ポートを搭載していますので、1%=100Mbpsということとなります。帯域ウェイト値の方は相対的な割合を指定する値となりますので他のパーティションが帯域を使用していない場合は物理ポートの帯域幅全体を使用することができますが、最大帯域値の方は上限値として機能し、他のパーティションの仕様有無とは関係なくキャップが被されることとなります。

*4:論理ポートに分割する仕様上、考えてみれば当たり前ですが

*5:機能的な制約というよりも、構成的な制約