免責事項: これは英文の記事「Receive packet drops (rx_no_bufs) on Cisco VIC Ethernet NIC (nenic) in VMware ESXi」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
この記事では、Cisco UCS サーバで実行されている VMware ESXi において、vmnic アダプタで受信 (RX) パケットのドロップが発生する問題について説明します。このドロップにより、多くの場合、Windows フェールオーバークラスタでハートビートの失敗やサービスの中断が発生します。
esxcli network nic stats get -n vmnicX コマンドを実行すると、受信パケットのドロップ数 (Receive packets dropped) が高い値を示します。(hostd.log) に次のような警告が記録される。Wa(164) Hostd[2099472]: --> droppedRx: #######rx_no_bufs の増加が示される。vsish -e get /net/pNics/vmnicX/stats | grep rx_no_bufs rx_no_bufsVMware ESXi
Cisco UCS サーバ
Cisco VIC Ethernet NIC (nenic ドライバ)
物理ネットワークインターフェース (vmnic) が利用可能な受信リングバッファを使い果たすと、rx_no_bufs の統計値は増加します。一時的に大量のパケットが到着し、ESXi カーネルやネットワークドライバの処理速度を超えた場合に事象が発生します。その結果、入力層でパケットドロップが観測されます。Windows フェールオーバークラスタはハートビートに UDP を使用します。UDP には再試行メカニズムがないため、パケットドロップが発生すると即座にクラスタのフェールオーバーが実行されます。
Cisco の設定変更をESXI ホストに反映するために、ESXi ホストの再起動が必要です。Cisco UCS Manager で RX キューを増やした後、次のコマンドを実行して、その値が ESXi ホストに反映されているか検証できます。