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のドライバは、安定しているのかあまりバージョンアップされていないようです。
Comments