Overview of Upgrading NIC drivers in vSphere
With our ever growing technology infrastructure we get to play the update and upgrade games so everything can talk to everything else. Even virtualization does not free us from the fun exercise of upgrading drivers and firmware levels. If, for whatever reason, you find yourself asking "how do I upgrade the NIC drivers on a vSphere host?" The steps below should provide enough information to get you through the process.
Please note that these steps were performed on a Windows 2008 R2 Enterprise server and were ran against a VMware ESX 4.1.0 build 260247 vSphere host using the VMware vSphere CLI 4.1.0 build 254719 tool on December 8th, 2010. These steps should work for any version of vSphere 4.x and vCLI 4.x but read the documentation on the 'vihostupdate' command from VMware's website first to verify the process has not changed. If you are running the vSphere CLI from a *nix host please read the documentation to verify the steps outlined will work for you before attempting them.
The documentation is located here: http://www.vmware.com/support/developer/vcli/
A reboot of the VMware vSphere ESX / ESXi host is required before the changes will take effect. The reboot will not occur automatically and should be performed at step 13.
These instructions are not meant to be exhaustive and may not be appropriate for your environment. Always check with your vendors for the appropriate steps to manage your infrastructure.
Steps to Update NIC drivers in vSphere 4
- Install the vSphere Command Line Interface (vSphere CLI) on a machine that has SSH access to your vSphere ESX/ESXi host's service console.
The Installer is located here: http://www.vmware.com/download/download.do?downloadGroup=VCLI41
VMware recommends installing the vSphere CLI on your vSphere vCenter Server as it typically has access to your vSphere hosts but, it does not have to be on a vCenter Server.
- Verify your version of ESX and/or ESXi.
For an ESX host, SSH to the service console and perform the following:
[root@MYHOST1 ~]# vmware -v
VMware ESX 4.1.0 build-260247
For an ESXi host, connect to the console with a KVM, lights out manager, or other management tool and view the home screen:
- Verify the NIC type you are running and the driver name.
From a vCenter client, change your view to Hosts and Clusters.
Expand the cluster the host is in and select the vSphere Host you want to upgrade. Click on the configuration tab, then networking, and click properties next to a NIC (in Virtual Switch or Distributed Switch view). The name of your network adapter is located in the Network Adapters tab and the Adapter Details pane. The name of the driver is in the driver field. From this example the name of the NIC is Broadcom NetXtreme II 57711E and the driver is bnx2x.
Place your host in maintenance mode through the vSphere Client and wait for all virtual machines to be migrated off the host before continuing.
- Verify the current running version of your drivers.
For an ESX host, SSH to the service console and perform the below command. Replace "bnx2x" with your driver name from step 3 (above). The current version is the driver with the text "installed" in the second field. From this example the "bnx2x_400.1.54.1" driver is the current version.
[root@MYHOST1 ~]# esxupdate query --vib-view | grep bnx2x
- Download the appropriate driver for your host's NIC and vSphere ESX / ESXi version from http://downloads.vmware.com/d/info/datacenter_downloads/vmware_vsphere_4/4#drivers_tools. You may have to expand the "Driver CDs" menu to view all downloads.
- Copy the data from the CD/offline-bundle/ folder to the machine that you installed the vSphere CLI on.
Depending on your network adapter and the types of drivers available, you may have 1 to many zip files in the offline-bundle folder. Your drivers may be a different name and version than what is shown below.
- Run the vSphere CLI and change to the directory that you saved the offline-bundle zip files to using the "cd" command.
- Verify the offline-bundle package you downloaded is valid for your system. Make sure to change the file specified after "--bundle" to the zip file that corresponds to the driver you discovered from step 3 (above). (Time saving tip: you should be able to tab complete the driver name.)
C:\drivers\offline-bundle>vihostupdate.pl --server 172.16.1.2 --scan --bundle BCM-bnx2x-1.60.50.v41.2-offline_bundle-325733.zip
The bulletins which apply to but are not yet installed on this ESX host are listed.
BCM-bnx2x-1.60.50.v41.2 bnx2x: net driver for VMware ESX
If you receive a message stating there are no bulletins which apply to your system then you have either grabbed the wrong driver cd or your system is already up to date.
- Install the offline-bundles which apply to your system. It is possible to define the username and password on the command line or through a configuration file. Read the vSphere Command-line reference document's section titled vSphere CLI Connection Options for more information.
C:\drivers\offline-bundle>vihostupdate.pl --server 172.16.1.2 --install --bundle BCM-bnx2x-1.60.50.v41.2-offline_bundle-325733.zip
Please wait patch installation is in progress ...
The update completed successfully, but the system needs to be rebooted for the changes to be effective.
The driver install typically takes about a minute but could be faster or slower depending on your system configuration.
- Repeat steps 9 and 10 as necessary for any remaining network drivers.
- Verify the drivers installed correctly.
For an ESX host, SSH to the service console and perform the below command. Be sure to replace "bnx2x" with your driver name from step 3 (above). You should see a driver (or drivers) with a status of "pending,installed". In this example the "bnx2x_400.1.60.50" driver was installed over the old "bnx2x_400.1.54.1" driver.
[root@MYHOST1 ~]# esxupdate query --vib-view | grep bnx2x
If the new driver version does not appear it is possible the driver install failed from step 10 or the wrong driver was chosen for installation.
- Reboot the newly upgraded host through the vSphere Client.
- When the host is online, verify the new drivers are installed and running.
For an ESX host, SSH to the service console and perform the below command. Be sure to replace "bnx2x" with your driver name from step 3 (above). You should see a driver (or drivers) with a status of "installed". In this example the "bnx2x_400.1.60.50" driver was installed successfully and is running after the reboot.
[root@USSLTCHER0049 ~]# esxupdate query --vib-view | grep bnx2x
Following the above process you should be able to successfully upgrade the NIC drivers for your vSphere 4 ESX / ESXi hosts. Always be sure to read the release details of your drivers before download and installing them. If you have any problems updating your drivers you should search VMware KB articles related to your setup or contact VMware for assistance. These instructions could also be used to upgrade other drivers such as HBA's, graphics accelerators, etc.
Written by Eric Wamsley
Posted: December 9th, 2010 6:45pm