お世話になっております。
VMware ESXi 6.7U1からU3にアップデートしたところ、DPDKを使用する仮想マシンでMTU9000のパケットが通らなくなりました。
現象としては次の通りです。
・VLAN4095のvSwitchを作成。仮想マシン上でVLAN IDを割り当てて疎通を行う構成。
vlan11@eno33557248 はvlan11で利用可能
・Linuxベース(CentOS 7.8)でMTU9000にした状態では疎通可能
$ ping -s 8000 等
・DPDKを使用する仮想マシン(仮想アプライアンス)ではMTU9000状態で疎通不可。1500では疎通可能。
最初、DPDKを使用する仮想マシン側の問題と踏んでいたのですが、メーカに確認したところ
・「ESXi6.7U2以降でホスト側のDPDKでJumbo Frameを受信していない」現象を確認した(再現した)とのこと。
・ホスト側のDPDKの最大受信パケット長を9000に設定するテストを行ったところ、ESXi 6.5では受け付けられ、ESXi6.7 U2以降はNGだっとのことです。
#結果として、ESXi6.7U1に切り戻せ~、やだ~のやり取り中です('Д')
そこでご存じでしたら下記の点情報をいただきたいです。
・DPDKが有効になっている確認手段(ホスト側・VM側)
・ホスト側でDPDKを設定する箇所・コマンド
・(同じようなバグに遭遇した人と治った場合は治し方・・)
こんにちは。
ESXi 6.7 Update 2 以降で MTU 9000 のパケットが受信できない事象について
VMware社のナレッジベースを調べてみたところ以下の事例がありました。
Packet drops observed on vmxnet3 when packet length greater than vNIC's MTU (75213)
TSO による分割や LRO による集約が行われていない生のジャンボフレームを
vNIC が受信する際、vNIC の MTU を超えていないかどうかチェックする動作が
ESXi 6.7 Update 2 から追加されているようです。
事象発生バージョンや状況は近いように見えますので、KB75213 に記載がある
ESXi 6.7 Patch 01 (build-15160138) の適用と、追加されるホストの詳細設定
(Vmxnet3NonTsoPacketGtMtuAllowed) の変更を実施してみることは切り分けに
有効かもしれません。
ご参考になれば幸いです。
以下の2点の内容が抜けていたので補足になります。
・DPDKが有効になっている確認手段(ホスト側・VM側)
・ホスト側でDPDKを設定する箇所・コマンド
VMXNET3 のネットワークアダプタ (以下 VMXNET3 NIC) は Intel DPDK でサポートされているため、
ESXi 上の仮想マシンに VMXNET3 NIC が構成され、ゲストOSに VMXNET3 の Poll Mode Driver (PMD)
がインストールされていれば DPDK から VMXNET3 NIC を操作できるかなと思います。
VMXNET3 PMD に関しては DPDK にバンドルされているため、VMXNET3 NIC に対して
DPDK を使用している仮想アプライアンスであれば、DPDK と合わせてアプライアンスに
インストールされているはずです。
私が調べられた範囲では ESXi 側で Intel DPDK を有効/無効にできそうな設定などは
確認できませんでしたが、仮想アプライアンスに固有の追加の作業が必要かどうかは
アプライアンスベンダー側に確認を取ってみる必要があるかなと考えています。
なお、ESXi でジャンボフレームを使用する際に必要になる MTU の設定は
VMware社の以下のドキュメントに手順などの記載があります。
また、VMXNET3 NIC の MTU 変更に関しては個々のゲストOS側での作業が必要になります。
VMXNET3 NIC の MTU 周りに関しては、今回は仮想アプライアンスになりますので、追加の
作業が必要かなどはアプライアンスベンダー側に確認を取ってみると良いかと考えています。
次のタスク
・ジャンボ フレーム対応の標準スイッチまたは Distributed Switch に拡張 VMXNET アダプタが接続されていることを確認します。
・ゲスト OS 内で、ジャンボ フレームを使用できるようにネットワーク アダプタを構成します。ゲスト OS のドキュメントを参照してください。
・ジャンボ フレームをサポートするように、この仮想マシンが接続するすべての物理スイッチおよび物理マシンまたは仮想マシンを構成します。