Wednesday, January 13, 2010

Creating VMware NFS Datastores on NetApp in 3 Easy Steps

I am often asked by customers how to set up a VMware NFS datastore on NetApp storage.  The first time I received the question, I pointed them to the NetApp vSphere TR.  It turns out the information isn't currently in the document.  I spoke to Vaughn about it and this was an over site that will be corrected.  In the meantime, here is how I create NFS shares in 3 easy steps. I'm also taking screenshots from my lab for the first time, let me know what you think of the screenshot format vs. just a bullet list.

Step One - Create the volume on the NetApp system
  •  Log into FilerView, Open Volumes, Click Add -> Click Next
  • Accept the default value of Flexible Volume and Click Next
  • Create a name for the volume, set the language type, and click Next
  • Choose which aggregate to create the volume in and click Next
  • Set the size of the Volume, please notice the pull down defaults to MB NOT GB!, I typically don't set a Snap Reserve but if you don't understand the implications of this, just use the default of 20%. Click Next

  • Click Commit
  • Click Volumes -> Manage to and you will see the newly created volume

  • If your NetApp system has been configured for CIFs, you will need to make a slight change to the Q-Tree type of the volume.  Click Volumes -> QTrees -> Manage.  If the QTree type is UNIX, skip to Step Two.  If the QTree type is NTFS, proceed.

  • Click on the volume link (sim3_vmware_01 in this example) to get the following screen
  • Change the QTree type to UNIX and click Apply

Step Two - Create the NFS Export (Share the Volume)
  •  Click NFS -> Manage Exports -> Click on the Permissions for the newly created volume

  •  Make sure Read-Write Access, Root Access, and Security are all checked. Click Next

  • Click Next at the Export Path Screen but write down this path, you will need it later!
  • At the Read-Write Access Screen, uncheck the All Hosts box and enter the ip addresses of all the VMkernel ports for the vSphere server(s).  NOTE: This is not the Service Console IP address, it is the VMkernel ip address that vSphere will use to "talk" NFS to the storage
  • Repeat this process for the Root Access Screen and click Next
  • Click Next at the Security Menu accepting the defaults
  •  Click Commit. You are now finished configuring the NetApp System!
Step Three - Create the share in vCenter

  • From the vCenter Client, Click on a vSphere server and click the configuration tab. Click Storage, Click Add Storage

  • Choose Network File System and Click Next
  • Enter the IP address of the NetApp Storage, the path to the export that you wrote down from step 2, and give your datastore a name as it will appear in vCenter

  • You should now see your storage

UPDATE: I was hoping to stay away from the command line for this article.  This was really designed for users that are just beginning to get their feet wet with NFS.  But, as Mike pointed out, there is one command that should be run on each volume and this can only be achieved from the command line.  It is outlined on page 37 of the 1.0 version of the TR.  The command is: vol options (volume-name) no_atime_update on where volume name is the name of the volume (sim3_vmware_01 in my example).  Thank you for pointing that out Mike!

A few final notes.  Once all of this is complete I usually test read/write access by pulling up the datastore browser and creating a folder in the datastore and then deleting it.  Also, if the datastore will be protected by NetApp's Snap Manager for Virtual Infrastructure then I will disable snapshots.  This is all detailed in Vaughn's vSphere TR.


Andrew Miler said...

Fantastic instructions! Having said that, I almost hate to point out that there's a beautiful wizard in System Manager for this -- have you used it by any chance?

Aaron Delp said...

Hey Andrew! My big problem is I still don't use System Manager all that much.

I guess most of the time I am doing installs on-site and FilerView is already sitting there ready to go.

Plus, if I use System Manager then I have to teach a customer another tool.

I would probably use System Manager a lot more if I actually managed systems long term instead of going from set up to set up like I tend to do.

I like the product, I just don't use it very much (yet)


Mike Tellinghuisen said...

When using FilerView it doesn't set the no_atime_update on value I don't think does it? That is the only thing I know of thats in TR-3749 that isn't listed.

Chris Gebhardt said...


Nice post! But even better, how about using RCU to provision NetApp datastores! Version 2.1 will perform these functions today and 3.0 will have full support for vSphere! One tool to do all the steps you listed including the vCenter work!

Chris Gebhardt
Reference Architect

Aaron Delp said...

Mike - I'm busted! I forgot that. I updated the article to include that. Thanks!

Aaron Delp said...

Chris - I agree and I haven't explored RCU in depth yet. I was waiting on the 3.0 version before I really dig in.

The main reason for the article is because I get questions from customers all the time that want to set this up themselves so I'm trying to save myself some work.

When RCU 3.0 is released I'll post a bunch of information on that (including the provisioning aspects!). Thank you!

Andrew Miler said...

I'd really recommend looking at System Manager -- it's a breeze to install much less learn. I've been using it as the primary recommended administrative tool for customers for the last 6 months or so now -- comments have been positive across the board. Beyond the whole transition to an MMC style (which I was surprised that I liked), it has wizards that just take care of a ton of the settings in question (a single wizard for NFS volumes for VMware, wizards that do most if not all of the best practice settings for volumes with LUNs in them, etc.).

Very little time to play with/learn and almost immediate pay off...

Aaron Delp said...

Andrew - I will take a look ASAP. I was waiting on version 1.1 to really check it out. I was in an ONTAP 8 beta class the used that used the 1.1 release candidate and I really like it. It has some nice advancements over version 1.01.


Chris said...

"At the Read-Write Access Screen, uncheck the All Hosts box and enter the ip addresses of all the VMkernel ports for the vSphere server(s). NOTE: This is not the Service Console IP address, it is the VMkernel ip address that vSphere will use to "talk" NFS to the storage"

How do I find out what my VMkernel port(s) IP addresses are? This is the only thing I'm stuck on. I've been trying the IP address of my esxi server but this has not been working.

Thanks for your help!!!


Unknown said...

If you have it I would use the Virtual Storage Console (VSC) plug in. It does all of this automagically for you regarding the permissions etc. and very fast.. :)

I love it. My biggest challenge is a naming scheme :)

Aaron Delp said...

Hey Pete and thank you for the comment! I agree, this was written pre-VSC. The VSC has come a long way in making life easier.