clintonskitson
3 Argentium

Checking current status of VAAI support for your environment

I had a question come through twitter the other day from @AleXgTorres around how one would check a cluster's datastores for VAAI compatability.  First of all why is this important?  Typically to check VAAI compatability one goes to the Configuration -> Storage and looks at the table of datastores which lists whether VAAI is Supported/Unsupported/Unknown.  The important part of this is that all ESX hosts decide for themselves whether a datastore is VAAI capable.  Since this is a fan-out situation, a little scripting can help to gather the data to see which hosts have identified VAAI capabilities (Supported/Unsupported) and which ones have yet to send a VAAI test command (Unknown).

<Powershell v2 and PowerCLI required>

[array]$arrVMHost = Get-VMHost

$arrVMHost | %{ 

        $VMHost = $_

        $configStorageSystem = Get-View (Get-View $VMHost.ID).ConfigManager.StorageSystem

        [array]$arrVolumeMountInfo = $configStorageSystem.FileSystemVolumeInfo.MountInfo

        $arrVolumeMountInfo | select @{n="VMHostName";e={$VMHost.name}},@{n="name";e={$_.Volume.Name}},@{n="VAAISupport";e={$_.VStorageSupport}}

} | sort name,VMHostName

That's it! The first line can be modified to first specify a cluster (get-cluster name | get-vmhost) if you want to be more granular than collecting all ESX hosts from the vCenter instance you are using through PowerCLI.

Labels (1)
Tags (4)
3 Replies
DeLF1
1 Copper

Re: Checking current status of VAAI support for your environment

Hey Clint,

Thanks for the post! I ended up gathering the info via a busybox console on one of the ESXi hosts as such:

#!/bin/sh

for i in `cat /var/tmp/esxhosts.txt`

do

    echo $i

    esxcli --server vcentre.foobar.com.au --passthroughauth --passthroughauthpackage "kerberos" --vihost $i corestorage device list | egrep ".*Display Name: DGC|VAAI Status:"

done

Thanks for the PowerCLI solution! Looks great!

  -Alex (@AleXgTorres)

0 Kudos
DeLF1
1 Copper

Re: Checking current status of VAAI support for your environment

Clint, is it possible to manually craft a "VAAI test command" ? If I could send one of these (scsi commands?) I could then be 100% sure about whether or not the arrays support VAAI (rather than them being in an 'Unknown' state).

   -Alex

0 Kudos
mattcowger1
2 Iron

Re: Checking current status of VAAI support for your environment

There isn't a 'VAAI test command', because the way the host figures it out is by just trying it and seeing if it gets an error.

Its pretty easy to be certain - run a Clone operation where it 'should' work (same array, move between datastores, etc) and watch the ESXtop counters.  If the work is progressing and the VAAI counters are increasing, then its working just fine.

0 Kudos