{"id":5706,"date":"2016-04-25T14:19:25","date_gmt":"2016-04-25T06:19:25","guid":{"rendered":"http:\/\/rmohan.com\/?p=5706"},"modified":"2016-04-25T14:38:55","modified_gmt":"2016-04-25T06:38:55","slug":"vmware-thin-and-thick-client-provisioning-a-brief-overview","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=5706","title":{"rendered":"VMware Thin and Thick Client Provisioning: A Brief Overview"},"content":{"rendered":"<p>Thick and thin client provisioning is not as different as you might first assume, both operate by running a client application on the desktop \u2013 which then sends and receives data over the network to the server. By going through the differences with you here, we will hopefully help you see how one might benefit your company\u2019s environment over the other.<\/p>\n<p>Thin Clients<\/p>\n<p>A thin client is a network computer without a hard disk drive. Thin provisioning is based around the concept of saving disk space on your data stores. This allows you to over allocate disk space on your virtual machines because thin clients don\u2019t reserve space on the file system (VMFS).<\/p>\n<p>Thin Provisioning Pros<\/p>\n<p>Virtual machine disk usage is minimal.<br \/>\nCuts down on storage costs.<br \/>\nAllows an organization to maximize the use of space in a storage array.<br \/>\nReduces the threat of data loss.<\/p>\n<p>Thin Provisioning Cons<\/p>\n<p>The possibility that you can run out of space on an over-allocated data store.<br \/>\nRequires closer storage oversight.<br \/>\nEliminates the possibility of using some of vSphere\u2019s advanced features \u2013 such as Fault Tolerance.<br \/>\nMay carry a performance penalty. As new space is made available for thinly provisioned storage expansion, vSphere must reserve the space and zero it out. If you are in an environment where top performance reigns paramount, don\u2019t use thin provisioning.<\/p>\n<p>Thick Clients<\/p>\n<p>A thick client performs most client\/server applications. Thick provisioning is based on the concept of allocating the virtual machine disk, reserving all necessary space on the data store at the time of creation.<\/p>\n<p>Thick Provisioning Pros<\/p>\n<p>Prevents over provisioning your data stores, ensuring you don\u2019t have any down time.<br \/>\nYou\u2019ll receive the best performance since all of the blocks will be pre-zeroed, cutting out the need during normal operations.<\/p>\n<p>Thick Provisioning Cons<\/p>\n<p>Thick provisioning will decrease your storage space much faster.<br \/>\nThere\u2019s the very real possibility of wasting disk space on empty blocks of data.<\/p>\n<p>Thick Options<\/p>\n<p>Lazy Zeroed Thick is a provisioning format in which the virtual machine reserves the space on the VMFS. The disk blocks are only used on the back-end data store when they get written to the virtual machine.<\/p>\n<p>Eager Zeroed Thick is a provisioning format in which the virtual machine reserves all the space on the VMFS and zeros out the disk blocks at the time of creation. Creating a virtual machine with this type of provisioning may take a little longer, but it\u2019s performance is optimal from deployment because there\u2019s no overhead in zeroing out disk blocks on-demand. This means no additional work to the data store for the zeroing operation.<\/p>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/Thick-thin.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5707\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/Thick-thin.png\" alt=\"Thick thin\" width=\"806\" height=\"386\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/Thick-thin.png 806w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/Thick-thin-300x144.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/Thick-thin-768x368.png 768w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/Thick-thin-150x72.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/Thick-thin-400x192.png 400w\" sizes=\"(max-width: 806px) 100vw, 806px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5709\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-1.png\" alt=\"eager-vs-lazy-1\" width=\"470\" height=\"267\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-1.png 470w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-1-300x170.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-1-150x85.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-1-400x227.png 400w\" sizes=\"(max-width: 470px) 100vw, 470px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>The VMware Thick Eager Zeroed Disk vs the Lazy Zeroed Thick disk in write performance.<\/strong><\/p>\n<p>What is the potential write performance difference between the VMware virtual disks: Thick Lazy Zeroed, Thick Eager Zeroed and Thin provisioned types? This has been discussed for many years and there are many opinions regarding this, both in terms of test vs real life write behavior as well as test methods. There is also important factors as storage effiency, migration times and similar to this, however I will in this article try to make the potential \u201cfirst write\u201d impact more easy to evaluate.<\/p>\n<p>Before the virtual machine guest operating system can actually use a virtual disk some preparations has to be accomplished by the ESXi host. The main tasks that has to be done for each writable part of a virtual disk is that the space has to be <em>allocated <\/em>on the datastore and the specific disk sectors on the storage array has to be safely <em>cleared <\/em> (\u201czeroed\u201d) from any previous content.<\/p>\n<p>In short, this is done in the following way:<\/p>\n<p><strong>Thin<\/strong>: Allocate and zero on first write<br \/>\n<strong>Thick Lazy<\/strong>: Allocate in advance and zero on first write<br \/>\n<strong>Thick Eager<\/strong>: Allocate and zero in advance<\/p>\n<p>There are some published performance tests between these three disk types often using the standard tool IOmeter. There is however a potential flaw to these tests, caused by the fact that <em>before<\/em> IOmeter starts the actual test it will create a file (iobw.tst) and write data to each part of that file \u2013 which at the same time causes ESXi to zero out these blocks on the storage array. This means that it is impossible to use IOmeter output data to spot any write performance differences between the three VMware virtual disk types, since the potential difference in write performance will already be nullified when the IOmeter test actually begins.<\/p>\n<p>When the difference will only be in the very first write from the Virtual Machine across the virtual disk sectors a way to simulate this is to force a massive amount of writes over the whole disk area and note the time differences. This is of course not how most applications work in the sense that it is uncommon to do all writes in one continuous stream and instead the \u201cfirst-writes\u201d with ESXi zeroing is likely to be spread over a longer period of time, but sooner of later each sector that is used by the guest operating system has to be zeroed.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5710\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-2.png\" alt=\"eager-vs-lazy-2\" width=\"520\" height=\"412\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-2.png 520w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-2-300x238.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-2-150x119.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-2-400x317.png 400w\" sizes=\"(max-width: 520px) 100vw, 520px\" \/><\/a><\/p>\n<p>A way to simulate large amounts of writes could be done from using the standard Windows format tool which, despite some popular belief, actually erases the whole disk area if selecting a \u201cfull\u201d \/ non-quick format. In real life there is not much specific interest how fast a partition format is done in itself, however in this test the format tool is used just to create a massive amount of \u201cfirst-writes\u201d.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5712\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-3.png\" alt=\"eager-vs-lazy-3\" width=\"558\" height=\"108\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-3.png 558w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-3-300x58.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-3-150x29.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-3-400x77.png 400w\" sizes=\"(max-width: 558px) 100vw, 558px\" \/><\/a><\/p>\n<p>This test case uses a VM with Windows 2012 R2 which was given three new virtual hard disks of 40 GB each, where there was one Eager, one Lazy and one Thin. Each disk was then formatted with NTFS, default allocation unit, no compression, but with the <strong>non-quick<\/strong> option.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5713\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-4.png\" alt=\"eager-vs-lazy-4\" width=\"516\" height=\"356\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-4.png 516w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-4-300x207.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-4-150x103.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-4-400x276.png 400w\" sizes=\"(max-width: 516px) 100vw, 516px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>One first observation was in <strong>ESXTOP<\/strong> while looking at the ratio between the writes that the virtual machine actually commits compared to how many writes are being sent from ESXi to the LUN.<\/p>\n<p>Above we can see <strong>ESXTOP<\/strong> while doing a full format of an <strong>Eager Zeroed Thick<\/strong> disk. The important point here is that the numbers are very close. The writes being done at the LUN are only the writes the VM wants to make, i.e. there is no ESXi introduced extra writes since the \u201czeroing\u201d was done already in advance.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5714\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-5.png\" alt=\"eager-vs-lazy-5\" width=\"452\" height=\"416\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-5.png 452w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-5-300x276.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-5-150x138.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2016\/04\/eager-vs-lazy-5-400x368.png 400w\" sizes=\"(max-width: 452px) 100vw, 452px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Above a <strong>Lazy Zeroed Thick Disk<\/strong> is being full formated from inside the VM.<\/p>\n<p>What could be noticed is the amount of write IOs being sent from ESXi to the LUN is much higher than the number of write IOs coming from the virtual machines. This is the actual zeroing taking place \u201cin real time\u201d and will make the VM write performance lower than the Eager version while accessing <strong>new areas<\/strong> of the virtual disk for the first time.<\/p>\n<p>&nbsp;<\/p>\n<p>The actual time results for doing a full format of a 40 GB virtual disk was:<\/p>\n<p><strong>Eager Zeroed Thick Disk<\/strong>: 537 seconds<br \/>\n<strong>Lazy Zeroed Thick Disk<\/strong>: 667 seconds<br \/>\n<strong>Thin Disk<\/strong>: 784 seconds<\/p>\n<p>The Eager Zeroed Thick Disk was almost <strong>25 % faster<\/strong> in first-write performance compared to the Lazy Zeroed.<\/p>\n<p>The Eager Zeroed Thick Disk was almost <strong>45 % faster<\/strong> in first-write performance compared to the Thin Disk.<\/p>\n<p>This is obvious in doing a full format which forces the VM to write at all sectors. In a real environment the \u201cfirst-writes\u201d will naturally be spread over a longer period of time, but sooner or later the Zeroing hit will take place for each part of the disk and might or might not be noticeable to the user. For a typical virtual machine that does the majority of \u201cfirst-writes\u201d at OS installation this is likely to be of lesser interest, but for VMs with databases, logfiles or other write intensive applications it is possible to result in a higher impact.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thick and thin client provisioning is not as different as you might first assume, both operate by running a client application on the desktop \u2013 which then sends and receives data over the network to the server. By going through the differences with you here, we will hopefully help you see how one might benefit [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/5706"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5706"}],"version-history":[{"count":3,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/5706\/revisions"}],"predecessor-version":[{"id":5715,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/5706\/revisions\/5715"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}