{"id":1718,"date":"2011-06-23T10:50:26","date_gmt":"2011-06-23T17:50:26","guid":{"rendered":"http:\/\/greg.porter.name\/wordpress\/?p=1718"},"modified":"2011-07-28T10:48:01","modified_gmt":"2011-07-28T17:48:01","slug":"a-brief-overview-of-vmware-vstorage-api-for-array-integration-vaai-and-why-you-should-care","status":"publish","type":"post","link":"https:\/\/greg.porter.name\/wordpress\/?p=1718","title":{"rendered":"A Brief Overview of VMware vStorage API for Array Integration (VAAI) and Why You Should Care"},"content":{"rendered":"<p>VMware vSphere version 4.1 introduced various new features, <a href=\"https:\/\/www.vmware.com\/files\/pdf\/techpaper\/VMW-Whats-New-vSphere41-Storage.pdf\">including vStorage API for Array Integration (VAAI)<\/a>.\u00a0 If you are using storage that supports VAAI (and most storage vendors are implementing it over time) then you can offload some storage intensive tasks to the storage array, and the ESX hosts are freed up to do other tasks.\u00a0 What this means is that for certain kinds of tasks like making a new disk for a virtual machine (vm) that needs to be zeroed out, copying a vm, cloning a vm, etc., these operations will be much faster and the ESX hosts will be much less busy.<\/p>\n<h3><!--more-->What you get with VAAI:<\/h3>\n<p>You can offload certain storage related activities to the storage array.\u00a0 In the vSphere 4.1 release, this array offload capability supports three operations:<\/p>\n<ul>\n<li> 1. Full copy enables the storage arrays to make full copies of data  within the array without having the ESX server read and write the data.\u00a0 Without VAAI, an ESX host has to touch each and every block during the copy, something like &#8220;Hey array, give me block one.\u00a0 Hey array, write this block to the copy location.\u00a0 Hey array, give me block two&#8230;&#8221;\u00a0 With VAAI, the ESX hosts says something like &#8220;Hey array, copy this set of blocks from here to there&#8221; and then forgets about it.\u00a0 The operation goes faster (since the array handles it internally without a lot of back and forth from the ESX host), and the ESX host doesn&#8217;t have to spend a lot of resources (CPU, RAM, network) micromanaging the copy.<\/li>\n<li> 2. Block zeroing enables storage arrays to zero out a large number of blocks to speed up provisioning of virtual machines.\u00a0 Similarly, without VAAI, the ESX host has to say &#8220;Hey array, write a zero here.\u00a0 Write a zero here.\u00a0 Write a zero here&#8230;&#8221;\u00a0 With VAAI, the ESX host just asks for a range of blocks to be zeroed, the array does it quickly without a lot of supervision, and the ESX host can think about other tasks.<\/li>\n<li> 3. Hardware-assisted locking provides an alternative means to protect the metadata for VMFS cluster-file systems, thereby improving the scalability of large ESX server farms sharing a datastore.\u00a0 Without VAAI, when an ESX host to write, basically what happens is that the host has to lock the whole LUN.\u00a0 So in a busy datastore, that multiple hosts have access to, this slows writes down.\u00a0 Basically without VAAI the host has to say &#8220;I&#8217;d like to write.\u00a0 Hmm.\u00a0 Looks like someone else is writing.\u00a0 Guess I&#8217;ll have to wait.&#8221;\u00a0 With VAAI&#8217;s hardware-assisted locking, the locks are much more fine grained, and hosts don&#8217;t have to wait so much on locks.<\/li>\n<\/ul>\n<p>If your workloads involve a lot of these types of operations, then you can see a substantial performance impact with VAAI.\u00a0\u00a0 I&#8217;m using NetApp storage, and with our ESX 4.1 hosts against Data ONTAP 8.0.2, we saw something like times ten increase in speed.\u00a0 In other words, for a copy operation that took 200 seconds, with VAAI it took 20 seconds.\u00a0 If you&#8217;re doing some sort of desktop virtualization, <a href=\"https:\/\/www.vmware.com\/products\/view\/\">like VMware View<\/a>, you probably do a *LOT* of clone operations, and you may have seen &#8220;boot storms&#8221; when everyone turns on their virtual machines first thing in the morning.\u00a0 Everyone waits on clones and datastores are busy with lots of locks.\u00a0 VAAI would help a lot with this.<\/p>\n<h3>What you need to use VAAI:<\/h3>\n<ul>\n<li><strong>vSphere 4.1 or later<\/strong><\/li>\n<li><strong>Storage that supports VAAI.<\/strong> Most vendors are working on this.\u00a0 What &#8220;working on this&#8221; means is that they are including VAAI suport in their latest releases of firmware\/operating systems for their storage platforms.\u00a0 For example, NetApp added VAAI support in Data ONTAP 8.0.1 and later releases.\u00a0 What this means for you is that unless you have recently upgraded your storage firmware\/operating system, you don&#8217;t have VAAI.\u00a0 If you want VAAI, you will need to upgrade.\u00a0 For NetApp storage admins that have been running Data ONTAP 7.X series firmware for ever, you will have to make <a href=\"https:\/\/greg.porter.name\/wordpress\/?p=1400\">the scary leap to Data ONTAP 8 7-Mode<\/a>.\u00a0 (It&#8217;s not that big of a deal.\u00a0 Really.)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>VMware vSphere version 4.1 introduced various new features, including vStorage API for Array Integration (VAAI).\u00a0 If you are using storage that supports VAAI (and most storage vendors are implementing it over time) then you can offload some storage intensive tasks&hellip; <a href=\"https:\/\/greg.porter.name\/wordpress\/?p=1718\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1718","post","type-post","status-publish","format-standard","hentry","category-content"],"_links":{"self":[{"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1718"}],"version-history":[{"count":13,"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1718\/revisions"}],"predecessor-version":[{"id":1731,"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1718\/revisions\/1731"}],"wp:attachment":[{"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/greg.porter.name\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}