Coming to you from the mind of Neil Glick (The Brain), a good old fashion, home cooked technical blog regarding storage, virtualization, and anything else that crosses my mind.
All Opinions Are My Own.
If you want to reach me on Twitter, I'm @meneilg

Monday, April 15, 2013

VAAI for Dummies - AKA VAAI for Me! - Part I

Hi There,

I've been away for awhile because I've been doing a lot of testing and document writing. I'm currently working on updating a VAAI document with all the new VMware and NetApp goodies! For those who aren't familiar with VAAI it is the vStorage APIs for Array Integration. A few years back there was a joint effort among VMware, and some storage companies to allow storage to talk to VMware through API's, SCSI and primitive commands that normally get communicated over the wire. By doing this a lot of work can be optimized because the storage would handle it. Want to use VAAI? Make sure your storage vendor supports them and that you're on a version of vSphere that does as well.

Now for some reason I really had a tough time with VAAI. Not the concept, but the actual practical usage of the different APIs. To add to the confusion in ESXi 5.1 VMware added more functionality! So what did I find difficult? Well for starters, how the heck do I tell if the thing is on and working! A lot of the abilities are just "on" and start working. I'm hoping that my confusion and deep dive into the technology will help you from going through similar difficulties and confusion!

Since VAAI is broken up into multiple capabilities, I felt a single article would not do it justice, therefore I'm going to write a series of VAAI blogs, unless they are wildly unpopular! :-) Big thanks to Cormac Hogan and Peter Learmonth who's papers were invaluable while exploring the deep and dark recesses of VAAI!! Enjoy!

Today were going to talk about Dead Space Reclamation this is one of those new primitives I was telling you about. Why start with this one? It's unique that you have to kick a command off to get it to work. Dead Space Reclamation will clean up block storage if a virtual machine is stored on a thin provisioned datastore on a LUN and the machine is either deleted or moved to another datastore. What? What? What?

Okay, say you create 100G LUN on your NetApp and turn on thin provisioning. You assign the LUN to vSphere and install a 20G machine, but the machine is only using 5 gig. At the vSphere and NetApp layer you'd only use up 5 gigs. Now, I decide I need to either delete the machine or move it to another datastore. After the delete/move vSphere reports all 5 gigs are back and ready for usage, but if you checked your storage it still thinks 5 gigs are used up because storage doesn't look into LUNs. This is where this feature is useful, you tell your ESXi server to create a file that will consume a certain amount of space and give it back to the controller once you're done!

One thing you need to be careful is how much you tell ESXi to grow this file. Remember, you'll probably have other data on this datastore, so using 90 or 100% would be a bad idea. :-) In Cormac's document he uses an example of 60% and I like that number! If you're worried about a performance impact, start with smaller numbers and slowly ramp up to larger percentages to avoid swamping your controllers.(Thanks to Jenn Schrie for this input!!) So how do you do this?