Upgrading NIC drivers for RHEL VMs when upgrading VMWare Tools
I'm in the process of upgrading new VMWare Tools for various versions of RHEL and I've noticed that a few of them aren't automatically upgrading to the newest driver of VMXNET 3. Discovered this while troubleshooting a socket issue with a RHEL server.
For a few of my test VMs, I'm deleting the NIC, creating a new NIC and then launching the GUI and editing the MAC address to show the new MAC address, which seems to work the best. I did try from the CLI to rename /etc/syconfig/network-scripts/ifcfg-eth0 to ifcfg-eth0.bkup and revise the MAC address and this seemed to cause issues, so I stuck with the GUI to make the update.
Was wondering if anyone had any recommendations on how to update these or a better way to do it.
thanks
Responses
ifcfg-eth0.bkup will still be started by the network scripts. The pattern of ignored extensions is in /etc/init.d/functions:
# Check whether file $1 is a backup or rpm-generated file and should be ignored
is_ignored_file() {
case "$1" in
*~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave)
return 0
;;
esac
return 1
}
In RHEL5, the ifcfg-ethX file needs to have HWADDR with the device's MAC address, this is how network devices are named.
In RHEL6, you don't need HWADDR because devices are named separately in /etc/udev/rules.d/70-persistent-net.rules.
Changing the MAC address of interfaces but expecting the "new" interface to take an "old" name for a nonpresent device seems to be a different issue than whether VMWare Tools installer updates the kernel driver or not. For the latter, you'd need to ask VMWare Support.
We have a fairly recent vmxnet3 driver in RHEL6 and RHEL7, and we do keep it updated, we'd hope that updating the driver is not necessary in most cases.
This command should move an existing file to something which will be ignored:
mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
I'm not sure what the Flexible does, but if you can change a device type from the e1000 to vmxnet3 without changing the MAC address (or recording the MAC, deleting the old interface, and creating a new vmxnet3 interface with the same MAC) you shouldn't have to change any interface config files, though you might have to remove eth lines from /etc/modprobe.*
The packet loss is most likely either e1000 hanging, or ring buffer packet loss. The latter solution is not just for Broadcom devices, all NICs can suffer packet loss in this way.
The e1000 driver is in all currently supported RHEL versions. vmxnet3 is not in RHEL5, so you'll need the VMWare network driver installer there.
Hi,
we use vmwxnet3 only due to performance reasons.
For RHEL 5 (and 6 as we clobber the original drivers), we have a post-inst scripts which installs VMwareTools during the installation process and an initscripts which recompiles the Tools every time the server is restarted in case the kernel was updated/booted and older one.
Let me know if you need more information...
//Zdenek
So I know this is an old thread, but Zdenek, do you happen to have the script available that you mentioned? I unfortunately have several RHEL5 systems in the environment where I am working that I need to patch to the latest version(they are currently 5.7) and don't want to have to touch each one(approx 200 servers) to recompile the tools due to the kernel upgrade.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
