仮想化でプリセールスしてるSEの一日

VMware から Azure まで、インフラや仮想化の最新情報をベンダー色をできるだけ抑えて綴っていきます

Software-Defind xx と対応ハードウェア - VXLAN オーバーヘッド (2)

f:id:ogawad:20190203195708p:plain:right

「仮想スイッチの負荷」編: (1)
「VXLAN オーバーヘッド」編: (1) (2)


前回、サーバー上での VXLAN の利用は CPU にそれなりの負荷が掛かることをご紹介しました。今回は後半ということでこの課題の解決策を探っていきたいと思います。

VXLAN のオーバーヘッドの軽減方法

VXLAN によるサーバー過負荷の対策方法をいくつかまとめてみましょう。

  • RSS (Receive Side Scaling)
    データ転送処理を単一のプロセッサコアに集中させないように
    複数のコアに分散させるマルチスレッド的技術
  • LSO/TSO (TCP Segmenation Offload)
    MTU サイズに収めるためのパケット分割を CPU で処理するのはなく
    NIC に任せるハードウェアオフロード技術
  • VXLAN Task Offload
    VXLAN を仮想スイッチで終端させる場合に CPU で処理するのはなく
    NIC に任せるハードウェアオフロード技術


RSS はロスを抑えるというより負荷分散なので、ちょっと違うかもしれません。

次のグラフは NIC/HBA のメーカーである Emulex の資料から引用したものです。
16 コアのサーバー機に仮想マシンを 8 台収容し、vSphere 5.5 で VXLAN を利用した場合に、オーバーヘッドがどれくらいかについて言及されています。




VXLAN on Emulex OCe14000 Network Adapters Support VMware NSX


利用している CPU は E5-2690 ですので、かなり良いものです。
RSS だけだと CPU 使用率が 50% を超えますが、VXLAN Offload を利用できると半分くらいに抑えられるとのこと。
VXLAN の終端を仮想スイッチに置く場合に CPU パワーが奪われると、業務性能や統合率に大きく影響しますので VXLAN Task Offload はとても重要です。


VMware 環境での VXLAN Packet Offload の設定方法

もちろんベンダー依存ではありますが、VMware 環境でどのように設定するかについては下記のドキュメントがお勧めです。スクリーンショット付きで詳しく書かれていますのでイメージしやすくなっています。

対応製品は?

VXLAN Task Offload の対応状況ですが、各社の最新モデルで利用可能です。
上記 Emulex の資料では Intel NIC を槍玉に挙げられていますが、その Intel も 20G/40Gbps 対応の最新シリーズ XL710 でようやく対応するそうです。

  • Emulex: OCe14000 シリーズ
  • Qlogic: 3400/8400 シリーズ
  • Intel: XL710 シリーズ
  • Mellanox: ConnectX-3 Pro シリーズ

※上記は代表的なものです


NIC 選びの際、端子形状と速度、あとはメーカーくらいしか気にしないのがほとんどですが、同じメーカーでも色々と機能差があります。今回の VXLAN のようにパフォーマンスを大きく左右することも。。。
とは言っても、NIC の最新状況まで把握してられないと思いますので、販売する OEM メーカーに確認するのが安全かもしれません。




正直なところ、オフロード系は効果・安定稼働ともにデバイスドライバの出来や OS との相性に大きく左右されます。下記にもありますが、相性問題が広く知られているのは何と言っても「VMQ」です。

マイクロソフト Network & AD サポートチーム公式ブログ
仮想マシンの通信速度遅延 - VMQ 無効化手順
http://blogs.technet.com/b/jpntsblog/archive/2013/04/12/vmq.aspx


こう書いてしまうと「どの NIC ベンダーが安全なの?」と聞かれそうですが、この場で書くとさすがに怒られてしまいます。気になる方はどこかで私を見つけた際にこそっと聞いてください(笑)