OracleLinuxには、RHCK(レッドハット互換カーネル)とUEKカーネルが付属していて、デフォルトはUEKです。

実は、UEKには 最初から ESXi用のドライバがいくつか含まれています。

含まれているのは、準仮想化のNICとSCSIアダプタ(vmxnet3とvmw_pvscsi)、バルーニングドライバ(vmw_balloon)です。

 

 

UEKのLinuxゲストOSに vmware-toolsをインストールしても、デフォルトで入っているドライバは上書きされません。

ESXi のバージョンアップや、パッチ適用をする場合は、
ゲストOSの vmware-tools バージョンアップにあわせてドライバの入れ替えも必要になります。

とくに、vmxnet3ドライバはバージョンが最新ではなく不具合もあるので
忘れずに入れ替えしておいたほうがよいです。

 

 

 

たとえば、
古い vmxnet3ドライバだと、
UDP受信があまりイケていないそうです。

 

UDP packets are dropped from Linux systems using the VMXNET3 Network Adapter
http://kb.vmware.com/kb/2019944

 

使ってみると、まったくUDP通信できないわけではないですが

UDPパケットのドロップが多いということみたいです。

 

これは、最近のESXiのアップデートで修正されているようです。

 

VMware ESXi 5.0, Patch ESXi500-201209402-BG: Updates tools-light
http://kb.vmware.com/kb/2032587

 

このESXiのパッチには、「tools-light」(vmware-tools)のVIBが含まれています。
上記のUDP受信問題も解決しているようです。
Large number of UDP packets are dropped when you use the VMXNET3 adapter in a Linux guest OS on an ESXi 5.0 host.

 

 

こんな場合は、vmxnet3ドライバのアップデートが必要です。

Linuxゲストで、明示的にドライバ入れ替えをするには、
vmware-tools の再インストールで「--clobber-kernel-modules」オプションを指定します。

 

実行例

[root@vm1 tmp]# mount /dev/cdrom /media/

mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします

[root@vm1 tmp]# tar zxf /media/VMwareTools-8.6.5-821615.tar.gz
[root@vm1 tmp]# cd vmware-tools-distrib/
[root@vm1 vmware-tools-distrib]# ./vmware-install.pl --clobber-kernel-modules=vmw_balloon,vmw_pvscsi,vmxnet3 --default

※オプションについて
--clobber-kernel-modules
もともと入っているモジュール(ドライバ)を削除して、
新しいモジュールを入れなおします。
モジュールはカンマ区切りで指定します。

 

--default
インストール途中で聞かれる yes/no をデフォルトで進めてくれます。
--clobber-kernel-modules で指定したモジュールは、ちゃんとインストールされます。

 


ドライバがアップデートされると
modinfo で表示されるバージョンが上がります。

 

ちなみに、下記はOEL6.2 UEKのドライバです。


OEL6.2同梱の vmxnet3ドライバ

[root@vm1 ~]# modinfo vmxnet3
filename:       /lib/modules/2.6.32-300.3.1.el6uek.x86_64/kernel/drivers/net/vmxnet3/vmxnet3.ko
version:        1.1.18.0-k
license:        GPL v2
description:    VMware vmxnet3 virtual NIC driver
author:         VMware, Inc.
srcversion:     FED612E4541CA3164D04587
alias:          pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
vermagic:       2.6.32-300.3.1.el6uek.x86_64 SMP mod_unload modversions

 


OEL6.2同梱の準仮想化SCSIアダプタのドライバ

[root@vm1 ~]# modinfo vmw_pvscsi
filename: /lib/modules/2.6.32-300.3.1.el6uek.x86_64/kernel/drivers/scsi/vmw_pvscsi.ko
version: 1.0.1.0-k
license: GPL
author: VMware, Inc.
description: VMware PVSCSI driver
srcversion: 4F6ECEFF85BAB8EA656B488
alias: pci:v000015ADd000007C0sv*sd*bc*sc*i*
depends:
vermagic: 2.6.32-300.3.1.el6uek.x86_64 SMP mod_unload modversions
parm: ring_pages:Number of pages per req/cmp ring - (default=8) (int)
parm: msg_ring_pages:Number of pages for the msg ring - (default=1) (int)
parm: cmd_per_lun:Maximum commands per lun - (default=(32 * (((1UL) << 12) / sizeof(struct PVSCSIRingReqDesc)))) (int)
parm: disable_msi:Disable MSI use in driver - (default=0) (bool)
parm: disable_msix:Disable MSI-X use in driver - (default=0) (bool)
parm: use_msg:Use msg ring when available - (default=1) (bool)

 

 

OEL6.2同梱のバルーニングドライバ

[root@vm1 ~]# modinfo vmw_balloon
filename: /lib/modules/2.6.32-300.3.1.el6uek.x86_64/kernel/drivers/misc/vmw_balloon.ko
license: GPL
alias: vmware_vmmemctl
alias: dmi:*:svnVMware*:*
version: 1.2.1.0-K
description: VMware Memory Control (Balloon) Driver
author: VMware, Inc.
srcversion: 50F84EEB899D9A44232C844
depends:
vermagic: 2.6.32-300.3.1.el6uek.x86_64 SMP mod_unload modversions

 

 

最近のESXi のvmware-toolsのvmxnet3ドライバは、下記のようになっています。


ESXi 5.0 (Build:623860)付属の vmxnet3ドライバ

~ # vmware -v
VMware ESXi 5.0.0 build-623860

[root@vm1 vmware-tools-distrib]# modinfo vmxnet3
filename:       /lib/modules/2.6.32-300.3.1.el6uek.x86_64/updates/vmware/vmxnet3.ko
supported:      external
version:        1.0.47.0
license:        GPL v2
description:    VMware vmxnet3 virtual NIC driver
author:         VMware, Inc.
srcversion:     72BECA67405E3F484785180
alias:          pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
vermagic:       2.6.32-300.3.1.el6uek.x86_64 SMP mod_unload modversions
parm:           enable_shm:Shared memory enable (array of int)
parm:           shm_disclaimer:Shared memory disclaimer (charp)
parm:           shm_pool_size:Shared memory pool size (int)
parm:           share_tx_intr:Share an intr among all tx completions. Comma separated list of 1s and 0s - one for each NIC. 1 to share, 0 to not, default is 0 (array of int)
parm:           buddy_intr:Share an intr among corresponding tx and rx queues. Comma separated list of 1s and 0s - one for each NIC. 1 to share, 0 to not, default is 1 (array of int)
parm:           num_tqs:Number of transmit queues in each adapter. Comma separated list of ints. Default is 0 which makes number of queues same as number of CPUs (array of int)
parm:           rss_ind_table:RSS Indirection table. Number of entries per NIC should be 32. Each comma separated entry is a rx queue number starting with 0. Repeat the same for all NICs (array of int)
parm:           num_rqs:Number of receive queues in each adapter. Comma  separated list of ints. Default is 0 which makes number of queues same as number of CPUs (array of int)
parm:           drop_check_noise:Number of drops per interval which are ignored (uint)
parm:           drop_check_grow_threshold:uint
parm:           drop_check_shrink_threshold:Threshold for growing the ring

 


ESXi 5.0 (Build:821926)付属の vmxnet3ドライバ

~ # vmware -v
VMware ESXi 5.0.0 build-821926

[root@vm1 ~]# modinfo vmxnet3
filename:       /lib/modules/2.6.32-300.3.1.el6uek.x86_64/updates/vmware/vmxnet3.ko
supported:      external
version:        1.0.48.0
license:        GPL v2
description:    VMware vmxnet3 virtual NIC driver
author:         VMware, Inc.
srcversion:     E1E9BDA3D195AA236232F34
alias:          pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
vermagic:       2.6.32-300.3.1.el6uek.x86_64 SMP mod_unload modversions
parm:           enable_shm:Shared memory enable (array of int)
parm:           shm_disclaimer:Shared memory disclaimer (charp)
parm:           shm_pool_size:Shared memory pool size (int)
parm:           share_tx_intr:Share an intr among all tx completions. Comma separated list of 1s and 0s - one for each NIC. 1 to share, 0 to not, default is 0 (array of int)
parm:           buddy_intr:Share an intr among corresponding tx and rx queues. Comma separated list of 1s and 0s - one for each NIC. 1 to share, 0 to not, default is 1 (array of int)
parm:           num_tqs:Number of transmit queues in each adapter. Comma separated list of ints. Default is 0 which makes number of queues same as number of CPUs (array of int)
parm:           rss_ind_table:RSS Indirection table. Number of entries per NIC should be 32. Each comma separated entry is a rx queue number starting with 0. Repeat the same for all NICs (array of int)
parm:           num_rqs:Number of receive queues in each adapter. Comma  separated list of ints. Default is 0 which makes number of queues same as number of CPUs (array of int)
parm:           drop_check_noise:Number of drops per interval which are ignored (uint)
parm:           drop_check_grow_threshold:uint
parm:           drop_check_shrink_threshold:Threshold for growing the ring

 


ESXi 5.1 (Build:799733)付属の vmxnet3ドライバ

~ # vmware -v
VMware ESXi 5.1.0 build-799733

 

[root@vm1 ~]# modinfo vmxnet3
filename:       /lib/modules/2.6.32-300.3.1.el6uek.x86_64/updates/vmware/vmxnet3.ko
supported:      external
version:        1.1.32.0
license:        GPL v2
description:    VMware vmxnet3 virtual NIC driver
author:         VMware, Inc.
srcversion:     B98A9B630B45C86161AA741
alias:          pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
vermagic:       2.6.32-300.3.1.el6uek.x86_64 SMP mod_unload modversions
parm:           enable_shm:Shared memory enable (array of int)
parm:           shm_disclaimer:Shared memory disclaimer (charp)
parm:           shm_pool_size:Shared memory pool size (int)
parm:           share_tx_intr:Share an intr among all tx completions. Comma separated list of 1s and 0s - one for each NIC. 1 to share, 0 to not, default is 0 (array of int)
parm:           buddy_intr:Share an intr among corresponding tx and rx queues. Comma separated list of 1s and 0s - one for each NIC. 1 to share, 0 to not, default is 1 (array of int)
parm:           num_tqs:Number of transmit queues in each adapter. Comma separated list of ints. Default is 0 which makes number of queues same as number of CPUs (array of int)
parm:           rss_ind_table:RSS Indirection table. Number of entries per NIC should be 32. Each comma separated entry is a rx queue number starting with 0. Repeat the same for all NICs (array of int)
parm:           num_rqs:Number of receive queues in each adapter. Comma  separated list of ints. Default is 0 which makes number of queues same as number of CPUs (array of int)
parm:           drop_check_noise:Number of drops per interval which are ignored (uint)
parm:           drop_check_grow_threshold:uint
parm:           drop_check_shrink_threshold:Threshold for growing the ring


上記の KB#2019944 の問題はバージョン 1.0.48.0 からは修正されているようですが、

vmxnet3 はまだ問題発生することが多いようなので

ネットワーク周りでトラブルがあった場合は、ドライバが最新か確認してみるとよいと思います。

 

バルーニング、準仮想化SCSIのドライバは、安定しているのかあまりバージョンアップされていないようです。