Nexenta VAAI-NAS Beta Released, NFS Hardware Acceleration

Skip to Update 1

Along with the release of NexentaStor 3.1.4, Nexenta Systems today officially released the (very) Beta VAAI-NAS plugin for VMware vSphere 5.x via the community NexentaStor.org forums. VAAI-NAS is still not widely supported in the NAS world, and of those that do, not all support all the primitives.  You can search the VMware Compatibility Guide for vendors that are VAAI-NAS certified.

VAAI, to catch up, is the the suite of primitives (instructions) that allow vSphere to offload certain VM operations to the array. For NAS Hardware Acceleration, these are:

  • Full File Clone – Enables virtual disks to be cloned by the NAS device (but not ‘hot’, the VM must be powered off).
  • Native Snapshot Support – Allows creation of virtual machine snapshots to be offloaded to the array.
  • Extended Statistics – Shows actual space usage on NAS datastores (great for thin provisioning).
  • Reserve Space – Enables creation of thick virtual disk files on NAS.

Everything you wanted to know about VAAI (but were afraid to ask)
http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-Storage-API-Array-Integration.pdf

At this point, all primitives are working (or supposed to, it’s beta, right?) save for the Native Snapshots.

Here’s a quick tutorial to install the agent in NexentaStor and the plugin in VMware Vsphere.

** IMPORTANT NOTE **
This is in no way supported in a production environment. Installation/configuration requires use of the command line which is NOT supported on production systems under a support contract and in fact may void your support contract. Basically, if you do put it into production and get caught, you may not reference this post. :) Also, this is beta, it may delete all the things, so don’t put into production. Also, don’t put into production.

Repeat after me: “Even if the product blows my mind and saves me 500 hours a week, I <name> will not put this in production for fear of my life and data.”

As you can see, Hardware Acceleration is currently not supported on my NFS Datastore.

Screen Shot 2013-03-05 at 3.20.55 PM

  1. Download and extract the contents of the zip file
    http://downloads.nexenta.com/cdn/beta/VAAI-NAS/nas_vaai_installer_1.0-128.zip
  2. Run the NASVAAIInstaller.exe
  3. Choose ‘Install Nexenta NAS VAAI agent and plugin
    Screen Shot 2013-03-05 at 3.24.07 PM
  4. Enter a hostname or IP of the NexentaStor host and the root credentials and click Next
    1. The operational log should tell you if the installation was successful or not
      Screen Shot 2013-03-05 at 3.25.12 PMScreen Shot 2013-03-05 at 3.25.49 PM
  5. Click Next
  6. Enter a hostname or IP address and the root credentials for the ESX host for which you want to install the plugin. This performs the following:
    1. Sets the VIB acceptance level
    2. Checks for currently installed plugin (and upgrades it if it exists)
    3. Installs the plugin and prompts for a host reboot
      Screen Shot 2013-03-05 at 3.45.18 PM Screen Shot 2013-03-05 at 3.25.49 PM
  7. ????
  8. Profit

Well, maybe not yet. While the agent is installed on the Nexenta host and the plugin installed on ESX, you still have to start the agent by hand. This would normally have to be done every time the Nexenta host boots, but we’re going to create an SMF service.

  1. SSH into your Nexenta host as root, set the ‘expert mode’ option and drop to the shell.
    nmc@ns1:/$ option expert_mode=1
    
    nmc@ns1:/$ !bash
    You are about to enter the Unix ("raw") shell and execute low-level Unix command(s). Warning: using low-level Unix commands is not recommended! Execute? Yes
    
    root@ns1:/volumes#
    
  2. copy the init script to /lib/svc/method/ to make it a little more kosher with SFM best practices.
    cp /etc/init.d/nasvaaisrv.sh /lib/svc/method/
  3. Create the xml manifest file
    touch /var/svc/manifest/application/nas_vaai.xml
    
  4. Paste the following into the manifest
    <?xml version="1.0"?>
    <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
    <!--
     Copyright 2013 Nexenta Systems, Inc. All rights reserved.
     Use is subject to license terms.
    
    $Id$
    -->
    
    <service_bundle type="manifest" name="nas_vaai">
     <service name="application/nas_vaai" type="service" version="1">
    
      <create_default_instance enabled="true"/>
      <single_instance/>
    
      <!-- If there's no NFS, then there's no point in running -->
    
      <dependency name="nfs" grouping="require_all" restart_on="restart" type="service">
        <service_fmri value="svc:/network/nfs/server:default"/>
      </dependency>
    
      <exec_method type="method" name="start" exec="/lib/svc/method/nasvaaisrv.sh %m" timeout_seconds="60"/>
    
      <exec_method type="method" name="stop" exec="/lib/svc/method/nasvaaisrv.sh %m" timeout_seconds="60"/>
    
      <stability value="Unstable"/>
    
      <template>
        <common_name>
          <loctext xml:lang="C">VAAI-NAS Agent</loctext>
        </common_name>
      </template>
     </service>
    </service_bundle>
    
  5. After creating the manifest, you can validate your xml with
    svccfg validate /var/svc/manifest/application/nas_vaai.xml
    
  6. If no errors are present, import the XML to create the service
    svccfg import /var/svc/manifest/application/nas_vaai.xml
    
  7. Enable the service to start on boot (this also starts the service)
    svcadm enable application/nas_vaai
    
  8. Confirm that the service has started
    pgrep -l nas_vaai_server
    

The VAAI-NAS agent is now installed and started and the plugin is installed on your ESX host.

Screen Shot 2013-03-05 at 4.19.51 PM

As you can see, Thick Provisioning is now available on this NFS datastore (utilizing the Reserve Space primitive)
Screen Shot 2013-03-05 at 4.43.31 PM

We’re taking feedback on the plugin in this forum:
http://nexentastor.org/boards/13/topics/9315

So please, install it, use it, break it, suggest improvements (already submitted to Engineering to allow ad hoc and multiple vSphere host installation)

*** UPDATE 1 ***

I’ve updated the startup method. I moved away from using an rc3.d method to the more proper SMF service method of service/daemon/agent starting.

10 thoughts on “Nexenta VAAI-NAS Beta Released, NFS Hardware Acceleration

  1. Pingback: Reposting an update to NexentaStor version 3.14, with credit to @MattVogt | Virtuallytiedtomydesktop's Blog

  2. Pingback: Nexenta 3.1.4 and beta Nexenta NFS VAAI Plugin released

  3. Hi Matt,

    Do you have any sense as to when the VAAI-NAS plugin will exit Beta and be ready for production?

    • Unfortunately, I don’t have a timetable from the PM team. But it’s not far off as it’s actively shipping with the NexentaVSA for View product. To help the PM team gauge its importance, if you’re a customer or partner, you can submit an RFE through the portal or from the ‘Request a feature’ link inside of NMV (at the bottom).

  4. Thanks for your instructions! I got it working, however it seems to offload the cloning of VMs pretty randomly. I’ll clone a VM and it’ll take 10 minutes and go over the network. Then right after I’ll clone the same VM and it takes less than a minute with no network activity. Seems the beta still has some work that needs to be done. By the way, do you know if this will be available for the community edition when it gets released?

  5. Hello, do you know if there will be a version that will install a working vib for esxi 5.5? I cannot install the vib on my 5.5 systems.

    • Sorry, I haven’t heard. I no longer work there, so I don’t have the insight into engineering that I used to. Best to ask on their forums.

  6. Pingback: vSphere Home Lab 向けの CentOS 7.x NFS Server | over a Radler

Leave a Reply