
VMware vSphere 8 以降でData Processing Unit (DPU)により仮想ネットワークの機能のオフロードが可能になりました。本記事では、DPUを活用してNSX分散ファイアウォール機能をオフロードした場合の効果測定の結果についてご紹介します。
- ライター:新林 辰則
- 2007年にネットワンシステムズに入社
ロードバランサー製品の製品技術担当を経て、現在はSDN・仮想化の製品・技術領域を担当し製品や技術の評価検証、お客様への提案の技術支援等を行っている。
最近はプログラマブルネットワークにも注目し、情報収集活動、セミナーでの発表などを実施。
目次
はじめに
VMware vSphere® Distributed Service EngineTM(以下、DSE)は、VMware vSphere® 8以降で使用可能なData Processing Unit (DPU)を活用する機能です。DPUはNICに搭載され、VMware vSphere® Distributed SwitchTM (以下、VDS) やVMware NSX® (以下、NSX) などのネットワーキングやセキュリティ機能をオフロードします。これにより、ワークロード仮想マシンが動作しているVMware ESXiTM (以下、ESXi) ホスト自体が従来行っていた処理を外部のDPUというコンピューティングリソースで実行できるようになります。DPUを搭載したサーバは、アプリケーションを実行している仮想マシンにCPUリソースを集中させることができます。また、仮想スイッチによるネットワーク処理やNSXの分散ファイアウォール、そして SPAN や IPFIX (※1) などのフローミニタリング機能まで含めて、CPUオーバーヘッドを見越した余剰分の計算も不要になり、サーバの集約率向上にも寄与します。
(※1) DPU でバッキングされた VDS で IPFIX を構成する場合は、「ops」TCP/IP スタックに vmknic を作成する必要があります。そうしないと、フロー情報はコレクタにエクスポートされません。
参考: NSX 管理ガイド:スイッチの IPFIX プロファイルの追加
DSEの導入方法
- ネットワークオフロードを有効化し、NSXをインストールする
DSEを使用するにあたって、特別な操作手順は必要ありません。基本的な手順としてはESXi/ESXio(DPU上にインストールされるESXi)が統合されたISOイメージを用いてハイパーバイザーをインストールし、VDS作成時にネットワークオフロードを有効化するのみとなります。
VDS作成時の画面でDPUを選択
上記のネットワークオフロードを有効化したVDSを作成後、NSXのインストール時に作成したVDSを使用します。
NSXインストール時にネットワークオフロードを有効化したVDSを選択
下記画像にあるモードを選択する際に特にDSEを使用しない構成であれば「標準」を選択しますが、DSEを使用する場合は「拡張データパス」と記載されたモードのいずれかを選択する必要があります。
「拡張データパス」と書かれたいずれかのモードを選択
上記設定を行うことで、VDSのスイッチングとNSXセキュリティ機能をDPU側へオフロードすることができます。今回の試験では「拡張データパス - パフォーマンス」を選択しております。こちらの設定ではDPU上のコアをあらかじめネットワーク処理用に予約した状態にし、より高速に動作させることが可能になります。
分散ファイアウォール機能オフロード効果の測定
- 試験構成
今回はDSEを適用した分散ファイアウォールの試験ということで、トラフィックジェネレータを用意しConnection per Second(CPS)単位での負荷をかけました。NSXの分散ファイアウォールの場合、ハイパーバイザー上で動作する機能のため、一般的なアプライアンス製品と異なり仮想マシンを介してトラフィックを通す必要があります。そのため、VMware NSX® Advanced Load BalancerTM (ALB, 以下 Avi Load Balancer) のService Engineをデプロイし、トラフィックの経由地点としています。
上記構成のため、試験としてはどの程度トラフィックを捌けるか、というよりは負荷時のDPUのリソース消費と、DSEなしの場合のホスト上のCPUリソース消費を確認してみる、といった意図になります。

試験構成
分散ファイアウォール側の設定としては、通信をブロックするルールをトラフィックジェネレータが使用するIPアドレス以外を用いて4000ルール作成し、最後に通信を許可するルールを作成する構成にしております。また、対象のホストにはAvi Load BalancerのService Engine以外の仮想マシンは構成しておりません。
- 実際にオフロードさせてみた
前項までの準備の上、実際にトラフィックジェネレータから12万CPSの負荷で試験を実施しました。DPUの負荷状況はVMware vCenter® (以下、vCenter) のパフォーマンスチャートから確認することが可能です。
DPUのパフォーマンスチャート
負荷をかけたタイミングで実際にDPUの使用率が上昇していることが確認でき、問題なくオフロード処理ができていることが確認できました。実際のDPUの使用量としては全論理コア数分のMhz数が20000Mhzに対して、常時予約されているネットワーク処理用のリソース消費が約11000Mhz、負荷印加時のリソース消費量が13000Mhzでした。このことから実際に分散ファイアウォールの処理で消費したリソース量は約2000Mhz程度と思われます。チャートの値をCSVでエクスポートしたものは下記になります。
DPUのパフォーマンスチャートのCSVエクスポート値
- DSEを使用しない構成に変更
一度NSXをホストからアンインストールし、VDSをバージョン7.0.3で作成した上で再度NSXをモード「標準」でインストールし直します。こちらの構成に変更後、再度負荷をかけ、DPUのパフォーマンスチャートの動きを確認します。
DPUのパフォーマンスチャート(DSEなし)
DPU側は想定通り、DSEを使用しない場合、低負荷状態で落ち着いています。ホスト側CPUのパフォーマンスチャートをCSVエクスポートしたものは以下になります。
ホストCPUのパフォーマンスチャート
こちらはAvi Load Balancer仮想マシン自体のCPU消費も含まれた状態ですので、そこを引き算しますと約5000MHz程度のCPUリソース消費量となりました。もちろん今回の値はあくまで参考値であり、ホスト上の仮想マシンの台数やトラフィック量、分散ファイアウォールの設定などによって値は上下することが予想されます。ただし、ネットワーク処理や分散ファイアウォールの処理によるオーバーヘッドは0になることはありませんので、規模が大きくなりホスト台数が増えれば増えるほど、このDPUへのオフロード効果による処理負荷軽減とホスト台数の集約効果は大きくなると考えられます。
まとめ
今回の記事ではVMware vSphere Distributed Service Engineを使用した、NSXの分散ファイアウォール機能のオフロードについて、実際にトラフィック負荷をかけながら効果を確認してみました。ネットワークやセキュリティ関連の消費リソース軽減によるホスト台数削減や、今回の測定対象にはできておりませんが、遅延などネットワークパフォーマンスにシビアな環境に対して有効な機能となっておりますので、あてはまる要件がある環境では選択肢としてご検討いただけますと幸いです。
※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。