Installing the Everpure VAAI-NAS Plugin

User Guides for VMware Solutions

Audience
Public
Content Type
User Guides
Source Type
Documentation

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.

There are other methods that can be used to installed or upgrade the NAS VAAI plugin, but the most commonly used is with esxcli (via ssh) or with PowerCLI. The only part that is a little more complex is that there isn't an easy way to stop the vaai-nas service with PowerCLI. There is a way to work around that and it is covered here in the quick start guide.

For more detailed information about the VAAI-NAS Plugin please refer to the plugin documentation found here.

Note:

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:

  1. Stop VAAI NAS service if running.

    /etc/init.d/vaai-nasd stop
  2. 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
  3. Start the VAAI nasd service.

    /etc/init.d/vaai-nasd start
  4. Validate the installation.

    esxcli software vib list | grep Purity

    Example 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

Here is the method of using PowerCLI to script out and partially automate installing the VAAI-NAS Plugin to an entire ESXi cluster or vCenter.

PowerCLI Method

  1. 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"."
  2. 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 .