Updating the IBM VAAI driver in ESXi

VMware vSphere 4.1 brings in a brilliant new function to offload storage related workload. This function is called VAAI (vStorage APIs for Array Integration) and requires that your SAN storage supports VAAI and that your ESX or ESXi server has a driver installed to utilize it.

IBM first supported VAAI with the IBM XIV using an IBM supplied VAAI driver.   IBM then added support to the Storwize V7000 and SVC, so IBM has now released a new VAAI driver to support all three products at once.  You can find the driver, installation guide and release notes at this URL.

I discovered some quirks in  the process to update the IBM VAAI driver from version to version on VMware ESXi.  The benefit in moving to version is that the updated driver supports both the IBM XIV as well as the Storwize V7000 and IBM SVC.

I downloaded the new driver from here and which uses the following naming convention:

Version  is named IBM-ibm_vaaip_module-268846-offline_bundle-395553.zip
Version is named IBM-ibm_vaaip_module-268846-offline_bundle-406056.zip
Version is named  IBM-ibm_vaaip_module-268846-offline_bundle-613937.zip

The last 6 digits in the file name is what differentiates them.  However when I ran the –query command against an ESXi box, I got confused:

vihostupdate.pl --server --username root --password passw0rd -query
---------Bulletin ID--------- -----Installed----- ----------------Summary-----------------
ESXi410-201104402-BG          2011-07-01T12:36:32 Updates VMware Tools
ESXi410-201104401-SG          2011-07-04T04:59:19 Updates Firmware
ESXi410-Update01              2011-07-04T04:59:19 VMware ESXi 4.1 Complete Update 1
IBM-ibm_vaaip_module-268846   2011-07-14T11:59:15 vmware-esx-ibm-vaaip-module: ESX release

Both the uplevel and downlevel VAAI driver files start with:
So which one is installed?  The version or the version?  I ran the following command to confirm if the updated bulletin applies (the one ending in 613937).  This confirmed my ESXi server was using version and needed an upgrade to version

vihostupdate.pl --server --username root --password passw0rd --scan --bundle IBM-ibm_vaaip_module-268846-offline_bundle-613937.zip
The bulletins which apply to but are not yet installed on this ESX host are listed.

---------Bulletin ID---------   ----------------Summary-----------------
IBM-ibm_vaaip_module-268846     vmware-esx-ibm-vaaip-module: ESX release

To perform the upgrade I first used vMotion to move all guests off the server I was upgrading.   I then placed the server in maintenance mode and installed the new driver:

vicfg-hostops.pl --server --username root --password passw0rd --operation enter
vihostupdate.pl --server --username root --password passw0rd --install -bundle IBM-ibm_vaaip_module-268846-offline_bundle-613937.zip

I got the following messages:

Please wait patch installation is in progress ...
The update completed successfully, but the system needs to be rebooted for the changes to be effective.

I then rebooted the server and then finally took it out of maintenance mode:

vicfg-hostops.pl --server --username root --password passw0rd --operation reboot
vicfg-hostops.pl --server --username root --password passw0rd --operation exit

There are no commands needed to activate VAAI or claim VAAI capable devices in ESXi.   You simply need to confirm that the both boxes shown in the example below have the number 1 in them (for hardware accelerated move and for fast init):

To test VAAI I normally do a storage migration (storage vMotion) moving a VMDK between datastores on the same storage device.  What you should see is very little VMware to Storage I/O, as I depicted in this blog post and this blog post.

My colleague Alexandre Chabrol from Montpellier Benchmarking Center also helped me out with the ESXCLI commands to control VAAI.   We can confirm the state of each of the three VAAI functions and switch them off and on.
We use the -g switch to display them, the -s 0 switch to turn them off and the -s 1 switch to turn them on.
In this example I first confirm that VAAI is active for hardware accelerated moves, hardware accelerated inititialization (write zeros) and then hardware assisted locking.  I then disable and enable hardware accelerated moves.

esxcfg-advcfg.pl --server --username root --password password -g /DataMover/HardwareAcceleratedMove
Value of HardwareAcceleratedMove is 1

esxcfg-advcfg.pl --server --username root --password password -g /DataMover/HardwareAcceleratedInit
Value of HardwareAcceleratedInit is 1

esxcfg-advcfg.pl --server --username root --password password -g /VMFS3/HardwareAcceleratedLocking
Value of HardwareAcceleratedLocking is 1

esxcfg-advcfg.pl --server --username root --password password -s 0 /DataMover/HardwareAcceleratedMove
Value of HardwareAcceleratedMove is 0

esxcfg-advcfg.pl --server --username root --password password -s 1 /DataMover/HardwareAcceleratedMove
Value of HardwareAcceleratedMove is 1

Final thought:  Most if not all of these commands can be done via the vSphere Client GUI, you do not need to use CLI.   But I am surprised how many people like to use the CLI and want to see example syntax.      Got a preference yourself?  Love to hear about your experiences.

*** Update February 20, 2012 ***

The IBM Storage Device Driver for VMware VAAI  was updated to version in February 2012.   This new version fixes a rare case where XIV, Storwize V7000, or SVC LUNs are not claimed by the IBM Storage device driver.    If you are using version without issue, there is no need to upgrade.   I have updated this post to reflect the new version.


About Anthony Vandewerdt

I am an IT Professional who lives and works in Melbourne Australia. This blog is totally my own work. It does not represent the views of any corporation. Constructive and useful comments are very very welcome.
This entry was posted in IBM XIV, Storwize V7000, SVC, VAAI and tagged . Bookmark the permalink.

9 Responses to Updating the IBM VAAI driver in ESXi

  1. Brett says:

    Great article. Reading the install document makes it look very straight forward. Have you every tried installing it using the offline bundle and adding it to Update Manager? I have 35 hosts I’d like to deploy this to in the near future.

  2. Michael says:

    Do you have any information regarding vaai drivers for ESXi 5.0?
    Many thanks!

    • avandewerdt says:

      You don’t need any drivers with ESXI 5.0
      It works without them… how sweet is that!
      I have tested it and confirmed it works, the Hardware Acceleration status of the LUN changes to Supported without any drivers being present when ESXi 5.0 detect an XIV volume.

  3. Michael says:

    This is what our IBM partner told us aswell… And indeed, after the upgrade, Hardware Acceleration status shows “Supported”. However, a test SvMotion prove the opposite… :( no VAAI used for SVMotion… DataMover.HardwareAcceleratedInit and Move is enabled in Advanced setings..
    Compared to 4.1 with VAAI drivers, SVmotion is very very slow.. what could be wrong? Did you also test an SVMotion?

  4. Michael says:

    Hi, this solved our issue! :) XIV uses T10 SCSI and we use Thin Provisioning! Now VAAI is working as it should… will do some more test…. thanks!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s