For any host you plan on mounting FlashArray NFS datastores to, you should install the VAAI plugin. It can be installed after NFS datastore provisioning, but it is recommended to make this the first step. Once installed, it is does not need to be re-installed or managed with the exception of potential future updates of the VIB (bug fixes, new features) or required VMware updates.
Please note these steps are identical for upgrading the VAAI plugin. As part of the upgrade the old version is removed.
Note in order to install and enable any NFS VAAI VIB, you must either stop then start the NFS VAAI service or reboot the host post-installation.
ESXCLI Method
A common method for installing a VIB into ESXi is via ESXCLI- a command line tool offered natively in the ESXi shell. To access this you must SSH into the host with root-level credentials:
-
Stop VAAI NAS service if running.
/etc/init.d/vaai-nasd stop -
Install the VIB component either from a local folder or the web URL.
esxcli software component apply -d https://pure-vmware-plugin-repository.s3.us-west-1.amazonaws.com/vsphere/VAAI-NFS/GA/Latest/index.xml -
Start the VAAI nasd service.
/etc/init.d/vaai-nasd start -
Validate the installation.
esxcli software vib list | grep PurityExample Output:
Name Version Vendor Acceptance Level Install Date Platforms ----------------------------------- ----------------------------------- ------ ---------------- ------------ --------- PSI-ESX-PurityFANasPlugin-1.1.0 1.1.0-1 PSI VMwareAccepted 2023-12-01 host
PowerCLI Method
-
In the event that the VAAI Service is running, then by default you won't be able to leverage PowerCLI to stop the service. That can only be done by SSH'ing to the ESXi hosts. Here we have an example of connecting to a vCenter Server and leveraging putty with plink to ssh to the ESXi hosts as part of the script and stop the vaai-nas service before installing the plugin
There are a variety of ways that this can be done with either a CSV or file with information of the ESXi hosts and Clusters, but this is a simple way of connecting to vCenter servers and specifying exact clusters that you want to install or upgrade the plugin for.
$vcenter = "cert-vcsa-01.alex.purestorage.com" $vcUser = "carver@alex.purestorage.com" $vcPass = "SuperSecretPasswordOfAllPasswords!" $hostPass = "SuperSecretPasswordOfAllPasswords!" Connect-VIServer -server $vcenter -username $vcUser -password $vcPass $cluster = get-cluster -name 'NVMe-ESXi-Cluster-03' $clusterHosts = $cluster | get-vmhost foreach ($esxi in $clusterHosts) { Write-Host "Working on $esxi" ## Make sure SSH is enabled ## $sshService = Get-VMHostService -vmhost $esxi | where-object { $_.Key -eq "TSM-SSH" } if ($sshService.Running -eq $False) { Start-VMHostService -HostService $sshService -Confirm:$False } ## Getting ESXi Host's IP, I know my mgmt is on vmk0, but I could have just looked for the management service ## $hostIP = ($esxi | Get-VMHostNetworkAdapter -name 'vmk0').ip ## Using Plink (Putty cmd line stuff) to ssh and run /etc/init.d/ options. Putty will need to be installed locally in order to do this ## echo "y" | plink -ssh -2 -pw $hostPass root@$hostIP "/etc/init.d/vaai-nasd stop" ## Now that the vaai-nasd service is stopped we can upgrade the nas-vaai plugin ## $esxcli = $esxi |Get-EsxCli -v2 $installOperation = $esxcli.software.component.apply.CreateArgs() $installOperation.depot = "https://pure-vmware-plugin-repository.s3.us-west-1.amazonaws.com/vsphere/VAAI-NFS/GA/Latest/index.xml" $esxcli.software.component.apply.Invoke($installOperation) ## Next we need to start the vaai-nas service again ## echo "y" | plink -ssh -2 -pw $hostPass root@$hostIP "/etc/init.d/vaai-nasd start" Write-Host "$esxi is done." } ## Now the install or upgrade of the VAAI plugin is completed ## Write-host "Pure Storage VAAI NAS plugin has been upgraded or installed for all hosts in "$Cluster.Name"." -
The output should look like this when completed successfully:
Name Port User ---- ---- ---- cert-vcsa-01.alex.purestorage… 443 ALEX\Carver Working on nvme-esxi-11.alex.purestorage.com -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon is not running. ComponentsInstalled : {PSI-PurityFANasPlugin_1.1-1.1.1} ComponentsRemoved : ComponentsSkipped : DPUResults : Message : Operation finished successfully. RebootRequired : false -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon started. nvme-esxi-11.alex.purestorage.com is done. Working on nvme-esxi-09.alex.purestorage.com -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon is not running. ComponentsInstalled : {PSI-PurityFANasPlugin_1.1-1.1.1} ComponentsRemoved : ComponentsSkipped : DPUResults : Message : Operation finished successfully. RebootRequired : false -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon started. nvme-esxi-09.alex.purestorage.com is done. Working on nvme-esxi-12.alex.purestorage.com The host key is not cached for this server: 10.21.203.72 (port 22) You have no guarantee that the server is the computer you think it is. The server's ecdsa-sha2-nistp256 key fingerprint is: ecdsa-sha2-nistp256 256 SHA256:blah-wee-woo If you trust this host, enter "y" to add the key to Plink's cache and carry on connecting. If you want to carry on connecting just once, without adding the key to the cache, enter "n". If you do not trust this host, press Return to abandon the connection. Store key in cache? (y/n, Return cancels connection, i for more info) y -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon is not running. ComponentsInstalled : {PSI-PurityFANasPlugin_1.1-1.1.1} ComponentsRemoved : ComponentsSkipped : DPUResults : Message : Operation finished successfully. RebootRequired : false -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon started. nvme-esxi-12.alex.purestorage.com is done. Working on nvme-esxi-10.alex.purestorage.com -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon is not running. ComponentsInstalled : {PSI-PurityFANasPlugin_1.1-1.1.1} ComponentsRemoved : ComponentsSkipped : DPUResults : Message : Operation finished successfully. RebootRequired : false -- Keyboard-interactive authentication prompts from server: ------------------ -- End of keyboard-interactive prompts from server --------------------------- ESX VAAI-NAS Daemon started. nvme-esxi-10.alex.purestorage.com is done. Pure Storage VAAI NAS plugin has been upgraded or installed for all hosts in NVMe-ESXi-Cluster-03 .