<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2titles.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemtitles.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>frankdenneman.nl</title>
	
	<link>http://frankdenneman.nl</link>
	<description />
	<lastBuildDate>Wed, 16 May 2012 07:22:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/frankdenneman/ZjZC" /><feedburner:info uri="frankdenneman/zjzc" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/frankdenneman/ZjZC" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Ffrankdenneman%2FZjZC" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Admission control and vCloud Allocation Pool model</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/dwpHdnBJRSs/</link>
		<comments>http://frankdenneman.nl/2012/05/admission-control-and-vcloud-allocation-pool-model/#comments</comments>
		<pubDate>Wed, 16 May 2012 07:22:45 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=2012</guid>
		<description><![CDATA[The previous article outlines the multiple admission controls active in a virtual infrastructure. One that always interested me in particular is the admission control feature that verifies resource availability. With the introduction of vCloud director another level of resource construct were introduced. Along with Provider virtual datacenter (vDC) and Organization vDCs, allocation models were introduced. [...]<p><a href="http://frankdenneman.nl/2012/05/admission-control-and-vcloud-allocation-pool-model/">Admission control and vCloud Allocation Pool model</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://frankdenneman.nl/2012/05/the-admission-control-family/" target="_blank">previous article</a> outlines the multiple admission controls active in a virtual infrastructure. One that always interested me in particular is the admission control feature that verifies resource availability. With the introduction of vCloud director another level of resource construct were introduced. Along with Provider virtual datacenter (vDC) and Organization vDCs, allocation models were introduced. An allocation model defines how resources are allocated from the provider vDC. An organization vDC must be configured with one of the following three allocation models: “Pay As You Go”, “Allocation Pool” and “Reservation Pool”. It is out of the scope to describe all three models, please visit <a href="http://www.chriscolotti.us/vmware/vsphere/vcloud-allocation-models/" target="_blank">Chris Colotti’s</a> blog or <a href=" http://www.yellow-bricks.com/2010/09/22/vcd-allocation-models/" target="_blank">Yellow Bricks</a> to read more about allocation models. </p>
<p>As mentioned before the distinction between each of the allocation models is how resources are consumed. Depending on the chosen allocation model reservations and limits will be set on resource pool, virtual machine level, or both.  One of the most interesting allocation model is the Allocation Pool model as it sets reservations on both resource pool level and virtual machine level simultaneously. During configuration of the allocation pool model, an amount of guaranteed resources can be specified. (Guaranteed is the vCloud term for vSphere reservation). The question I was given is <strong>will lowering the default value of 100% guaranteed memory result in an increase of more virtual machines inside the Organization vCD</strong>? And the answer lies within the working of vSphere admission control.</p>
<p><strong>Allocation Pool model settings</strong><br />
By default the Allocation Pool model sets a 100% memory reservation on both resource pool level and virtual machine level. By lowering the default guarantee, it allows for opportunistic memory allocation on both resource pool level and virtual machine level. Creating this burstable space (resources available for opportunistic access) usually provides an higher consolidation ratio of virtual machines, however due to the simultaneous configuration of reservation on both resource pool and virtual machine level, this is not the case. </p>
<p><strong>Virtual machine level reservation</strong><br />
During power-on operation admission control checks if the resource pool can satisfy the virtual machine level reservation. Because expandable reservation is disabled in this model, the resource pool is not able to allocate any additional resources from the provider vDC.  Therefor the virtual machine memory reservation can only be satisfied by the resource pool level reservation of the organization vDC itself. When a virtual machine is using memory protected by a virtual machine level reservation, this memory is withdrawn from the resource pool-level reservation. If the resource pool does not have enough available memory to guarantee the virtual machine reservation, the power-on operation fails. Let’s use a scenario to visualize the process a bit better.</p>
<p><strong>Scenario</strong><br />
An organization vCD is created with the Allocation Pool model and the memory allocation is set to 20GB; the memory guarantee is set to 50%. These settings result in a resource pool memory limit of 20GB and a memory reservation of 10GB. When powering up a 2GB virtual machine, 1GB of reserved resources will be allocated to that virtual machine and withdrawn from the available reserved memory pool. </p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/05/01-Admission-control-sequence-Allocation-Model-phase-1.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/01-Admission-control-sequence-Allocation-Model-phase-1.png" alt="" title="01 Admission control sequence Allocation Model phase 1" width="484" height="387" class="aligncenter size-full wp-image-2018" /></a></p>
<p>Admission control allows to power-on virtual machines until the reserved memory pool is reduced to zero. Following the previous example, virtual machine 2 is powered on. The resource pool providing resources to the organization vDC has 9 GB available in its pool of reserved memory. Admission control allows the power-on operation of the virtual machine as this pool can provide the reserved resources specified by the virtual machine level reservation.<br />
 <br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/02-Admission-control-sequence-Allocation-Model-phase-2.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/02-Admission-control-sequence-Allocation-Model-phase-2.png" alt="" title="02 Admission control sequence Allocation Model phase 2" width="495" height="451" class="aligncenter size-full wp-image-2024" /></a></p>
<p>During each power-on operation 1GB of reserved memory is withdrawn from the reserved memory pool available to the organization vDC. Resulting in admission control allowing to power on ten virtual machines. When attempting to deploy virtual machine 11, admission controls fails the power-on operation as the organization vDC has no available reserved memory to satisfy the virtual machine level reservation.<br />
 <br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/03-Admission-control-sequence-Allocation-Model-failure.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/03-Admission-control-sequence-Allocation-Model-failure.png" alt="" title="03 Admission control sequence Allocation Model failure" width="495" height="493" class="aligncenter size-full wp-image-2027" /></a></p>
<p><strong>Note:</strong> This scenario excludes the impact of memory overhead reservation of each virtual machine. Under normal circumstances, the number of virtual machines that could be powered on would be close to 8 instead of 10 as the reserved pool available to the organization vDC is used to satisfy the memory overhead reservation of each virtual machine as well.</p>
<p>Because the guarantee setting of the Allocation Pool model configures resource pool and virtual machine memory reservation settings simultaneously, the supply and demand of reserved memory resources are always equal regardless of the configured percentage setting. Therefore offering opportunistic access to resources inside the organization vDC does not allow an increase of the number of virtual machines inside the organization vDC.<br />
The next question arises, why should you lower the percentage of guaranteed resources? Providing burstable space increases the number of Organization vCDs inside the Provider vDC.</p>
<p><strong>Resource pool memory reservation</strong><br />
Upon creation resource pools claim and withdraw the configured reserved resources from their parent instantaneously. This memory cannot be provided or distributed to other organization vDCs regardless of utilization of these resources.  </p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/05/04-Allocation-Pool-Model-Consolidation-ratio-.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/04-Allocation-Pool-Model-Consolidation-ratio-.png" alt="" title="04 Allocation Pool Model Consolidation ratio" width="533" height="408" class="aligncenter size-full wp-image-2028" /></a></p>
<p>Although new resource constructs are introduced in a vCloud environment, consolidation ratios and resource management still leverage traditional vSphere resource management constructs and rules. Chris Colotti and I are currently working on a technical paper describing the allocation models in details and the way they interact with vSphere resource management. We hope to see this published soon. </p>
<p><a href="http://frankdenneman.nl/2012/05/admission-control-and-vcloud-allocation-pool-model/">Admission control and vCloud Allocation Pool model</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=2012" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=dwpHdnBJRSs:6JQmMxCG598:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=dwpHdnBJRSs:6JQmMxCG598:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/dwpHdnBJRSs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/05/admission-control-and-vcloud-allocation-pool-model/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/05/admission-control-and-vcloud-allocation-pool-model/</feedburner:origLink></item>
		<item>
		<title>The Admission Control Family</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/QcKoWsXFiqQ/</link>
		<comments>http://frankdenneman.nl/2012/05/the-admission-control-family/#comments</comments>
		<pubDate>Thu, 10 May 2012 12:05:27 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[DRS]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1980</guid>
		<description><![CDATA[It’s funny how sometimes something, in this case a vSphere feature, becomes a “trending topic” on any given day or week. Yesterday I was discussing admission control policies with Rawlinson Riviera (@punchingclouds) and he told me, no actually taught me, how to proper calculate a percentage for the percentage based admission control with keeping consolidation [...]<p><a href="http://frankdenneman.nl/2012/05/the-admission-control-family/">The Admission Control Family</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>It’s funny how sometimes something, in this case a vSphere feature, becomes a “trending topic” on any given day or week. Yesterday I was discussing admission control policies with Rawlinson Riviera (<a href="https://twitter.com/#!/PunchingClouds">@punchingclouds</a>) and he told me, no actually taught me, how to proper calculate a percentage for the percentage based admission control with keeping consolidation ratios in mind. And today Gabe published an article about his <a href="http://www.gabesvirtualworld.com/vmware-ha-admission-control-and-vm-reservations/">misconception of admission control</a>, which triggered me to write an article of my own about admission control. </p>
<p>When discussing admission control usually only HA admission control policies are mentioned. However HA isn’t the only feature using some sort of admission control. Storage DRS as well as DRS and the ESX(i) host have each their own admission control. Let’s take a closer look what admission control actually is and see how each admission control fits in the process of a virtual machine power-on operation.</p>
<p><strong>What’s the function of admission control?</strong> I like to call it our team of virtual bouncers. Admission control is there to ensure that sufficient resources are available for the virtual machine to function within it’s specified parameters / resource requirements. The last part about the parameters and requirements is the key to understand admission control. </p>
<p>During a virtual machine power-on or a move operation, admission control checks if sufficient unreserved resources are available before allowing a virtual machine to power on or moved into the cluster. If a virtual machine is configured with reservation, this could be CPU, memory or even both, admission control needs to make sure that the datastore cluster, compute cluster, resource pool and host can provide these resources. If one of these constructs cannot allocate and provide these resources, than the datastore cluster, compute cluster, resource pool or host cannot provide an environment where the virtual machine can operate within its required parameters. In other words, the moment a virtual machine is configured to have an X amount of resources guaranteed, you want the environment to actually oblige to that wish and that’s why admission control is developed. </p>
<p>As a vSphere environment can be configured in many different ways, each feature sports its own admission control, as you do not want to introduce dependencies for such a crucial component. Let’s take a closer look at each admission control feature and their checkpoints.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/05/admission-control-check4.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/admission-control-check4-454x1024.png" alt="" title="admission control check" width="454" height="1024" class="aligncenter size-large wp-image-2010" /></a></p>
<p><strong>High Availability Admission control</strong>: During a virtual machine power-on operation, HA checks if the virtual machine can be powered-on without violating the required capacity to cope with a host failure event. Depending on the HA admission control policy, HA checks if the cluster can provide enough unreserved resources to satisfy the virtual machine reservation.  The internals of each type Admission control policies is outside the scope of this article, more information can be found in the clustering deep dive books or online at <a href=" http://www.yellow-bricks.com/vmware-high-availability-deepdiv/#HA-admission">Yellow-bricks</a>.</p>
<p>After HA admission control gives the green light, it’s up to <strong>Storage DRS admission control</strong> if the virtual machine is placed in a Storage DRS datastore cluster. Storage DRS admission control checks datastore connectivity amongst the hosts in the datastore cluster and selects the hosts with the highest <strong>datastore connectivity</strong> to ensure the highest portability of a virtual machine. If there are multiple hosts with the same number of datastore connected it selects the host with the lowest compute utilization. </p>
<p>Up next is <strong>DRS admission control</strong> to review the cluster state. DRS ensures that sufficient unreserved resources are available in the cluster before allowing the virtual machine to power on. If the virtual machine is placed inside a <strong>resource pool</strong>, DRS checks if the resource pool can provide enough resources to satisfy the reservation. Depending on the setting “expandable reservation” the resource pool checks its own pool of unreserved resources or borrows resources from its parent. If a virtual machine is moved into the cluster and EVC is enabled in the DRS cluster, <strong>EVC admission control</strong> verifies if the applied EVC mode to the virtual machine does not exceed the current EVC baseline of the cluster. DRS selects a host based on configured VM-VM and VM-Host affinity rules.</p>
<p>Last step is <strong>Host admission control</strong>. In the end it’s the host that actually needs to provide the compute environment to allow the virtual machine to operate in. A cluster can have enough unreserved resources available, but it can be in a fragmented stage, where there is not enough resources available per host to satisfy the virtual machine reservation. To solve this problem a DRS invocation is triggered to recommend virtual machine migrations to re-balance the cluster and free up space on a particular host for the new virtual machine. If DRS is not enabled, the Host reject the virtual machine due to the inability to provide the required resources. Host admission control also verifies is the virtual machine configuration is compatible with the host. The VM networks and datastores must be available in order to accommodate the virtual machine. The virtual machine compatibility list also the suitable host if the virtual machine is placed inside a “must” VM-Host affinity rules, admission control checks if its listed in the compatibility list. Last check is if the host can create a VM-swap file on the designated VM swap location.</p>
<p>So there you have it, before a virtual machine is powered-on or moved into a cluster, all these admission controls will make sure the virtual machine can operate within its required parameters and no cluster feature requirement is being violated.</p>
<p>Btw Rawlinson, I expect a proper write up on your blog about how to calculate a percentage value with over provisioning in mind!</p>
<p><a href="http://frankdenneman.nl/2012/05/the-admission-control-family/">The Admission Control Family</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1980" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=QcKoWsXFiqQ:IBTK0E10UCw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=QcKoWsXFiqQ:IBTK0E10UCw:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/QcKoWsXFiqQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/05/the-admission-control-family/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/05/the-admission-control-family/</feedburner:origLink></item>
		<item>
		<title>Mixing Resource Pools and Virtual Machines on the same hierarchical level</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/3yCHUHxlopk/</link>
		<comments>http://frankdenneman.nl/2012/05/mixing-resource-pools-and-virtual-machines-on-the-same-hierarchical-level/#comments</comments>
		<pubDate>Wed, 09 May 2012 14:12:36 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[DRS]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1968</guid>
		<description><![CDATA[One of most frequent questions I receive is about mixing resource pools and virtual machines at the same hierarchical level. In almost all of the cases we recommend to commit to one type of child objects. Either use resource pools and place virtual machines within the resource pools or place only virtual machines at that [...]<p><a href="http://frankdenneman.nl/2012/05/mixing-resource-pools-and-virtual-machines-on-the-same-hierarchical-level/">Mixing Resource Pools and Virtual Machines on the same hierarchical level</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>One of most frequent questions I receive is about mixing resource pools and virtual machines at the same hierarchical level. In almost all of the cases we recommend to commit to one type of child objects. Either use resource pools and place virtual machines within the resource pools or place only virtual machines at that hierarchical level. The main reason for this is how resource shares work.</p>
<p><strong>Shares </strong>determine the relative priority of the child-objects (virtual machines and resource pools) at the same hierarchical level and decide how excess of resources (total system resources &#8211; total Reservations) made available by other virtual machines and resource pools are divided.</p>
<p>Shares are <strong>level-relative</strong>, which means that the number of shares is compared between the child-objects of the same parent. Since, they signify relative priorities; the absolute values do not matter, comparing 2:1 or 20.000 to 10.000 will have the same result. </p>
<p>Lets use an example to clarify.  In this scenario the DRS cluster (root resource pool) has two child objects, resource pool 1 and a virtual machine 1. The DRS cluster issues shares amongst its children, <strong>4000</strong> shares issued to the resource pool, <strong>2000</strong> shares issued to the virtual machine.  This results in <strong>6000</strong> shares being active on that particular hierarchical level.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/05/hierarchical-level1.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/hierarchical-level1-300x85.png" alt="" title="hierarchical-level1" width="300" height="85" class="aligncenter size-medium wp-image-1969" /></a></p>
<p>During contention the child-objects compete for resources as they are siblings and belong to the same parent. This means that the virtual machine with 2000 shares needs to compete with the resource pool that has 4000 shares. As 6000 shares are issued on that hierarchical level, the relative value of each child entity is (2000 of 6000 shares) = 33% for the virtual machine and (4000 shares of 6000=66%) for the resource pool.</p>
<p>The problem with this configuration is that the resource pool is not only a resource consumer but also a resource provider. So that it must claim resources on behalf of its children. Expanding the first scenario, two virtual machines are placed inside the resource pool.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/05/hierarchical-level2.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/hierarchical-level2-300x176.png" alt="" title="hierarchical-level2" width="300" height="176" class="aligncenter size-medium wp-image-1970" /></a></p>
<p>The Resource Pool issues shares amongst its children, <strong>1000</strong> shares issued to virtual machine 2 (VM2) and <strong>2000</strong> shares issued to virtual machine 3 (VM3). This results in <strong>3000</strong> shares being active on that particular hierarchical level.</p>
<p>During contention the child-objects compete for resources as they are siblings and belong to the same parent which is the resource pool. This means that VM2 owning 1000 shares needs to compete with VM3 that has 2000 shares. As 3000 shares are issued on that hierarchical level, the relative value of each child entity is (1000 of 3000 shares) = 33% for VM2 and (2000 shares of 3000=66%) for VM3.</p>
<p>As the resource pool needs to compete for resources with the virtual machine on the same level, the resource pool can only obtain 66% of the cluster resources. These resources are divided between VM2 and VM3. That means that VM2 can obtain up to 22% of the cluster resources (1/3 of 66% of the total cluster resources is 22%).</p>
<p>Forward to scenario 3, two additional virtual machines are created and are on the same level as Resource Pool 1 and virtual machine 1. The DRS cluster issues 1000 shares to VM4 and 1000 shares to VM5.<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/hierarchical-level3.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/hierarchical-level3-300x180.png" alt="" title="hierarchical-level3" width="300" height="180" class="aligncenter size-medium wp-image-1971" /></a></p>
<p>As the DRS cluster issued an additional 2000 shares, the total issued shares is increased to 8000 shares. Resulting in dilution of the relative share values of Resource Pool 1 and VM1. Resource pool 1 now owns 4000 shares of a total 8000 bringing the relative value down from 66% to 50%. VM1 owns 2000 shares of 8000, bringing its value down to 25%. Both VM4 and VM5 own each 12.5% of shares.</p>
<p>As resource pool 1 provides resources to its child-object VM2 and VM3, fewer resources are divided between VM2 and VM3. That means that in this scenario VM2 can obtain up to 16% of the cluster resources (1/3 of 50% of the total cluster resources is 16%). Introducing more virtual machines to the same sibling level as the Resource Pool 1, will dilute the resources available to virtual machines inside Resource Pool 1.</p>
<p>This is the reason why we recommend to commit to a single type of entity at a specific sibling level. If you create resource pools, stick with resource pools at that level and provision virtual machines inside the resource pool.</p>
<p>Another fact is that a resource pool receives shares similar to a 4-vcpu 16GB virtual machine. Resulting in a default share value of 4000 shares of CPU and 163840 shares of memory when selecting Normal share value level. When you create a monster virtual machine and place it next to the resource pool, the resource pool will be dwarfed by this monster virtual machine resulting in resource starvation.</p>
<p><strong>Note: </strong>Shares are not simply a weighting system for resources. All scenarios to demonstrate way shares work are based on a <strong>worst-case scenario situation</strong>: every virtual machine claims 100% of their resources, the system is overcommitted and contention occurs. In real life, this situation (hopefully) does not occur very often. During normal operations, not every virtual machine is active and not every active virtual machine is 100% utilized. Activity and amount of contention are two elements determining resource entitlement of active virtual machines. For ease of presentation, we tried to avoid as many variable elements as possible and used a worst-case scenario situation in each example. </p>
<p>So when can it be safe to mix and match virtual machines and resource pools at the same level? When all child-objects are configured with reservation equal to their configuration and limits, this result in an environment where shares are overruled by reservation and no opportunistic allocation of resources exist. But this designs introduces other constraints to consider.</p>
<p><a href="http://frankdenneman.nl/2012/05/mixing-resource-pools-and-virtual-machines-on-the-same-hierarchical-level/">Mixing Resource Pools and Virtual Machines on the same hierarchical level</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1968" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=3yCHUHxlopk:eeRG2OFtgyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=3yCHUHxlopk:eeRG2OFtgyU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/3yCHUHxlopk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/05/mixing-resource-pools-and-virtual-machines-on-the-same-hierarchical-level/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/05/mixing-resource-pools-and-virtual-machines-on-the-same-hierarchical-level/</feedburner:origLink></item>
		<item>
		<title>Storage DRS load balance frequency</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/7086G5670Go/</link>
		<comments>http://frankdenneman.nl/2012/05/storage-drs-load-balance-frequency/#comments</comments>
		<pubDate>Mon, 07 May 2012 13:58:48 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[SDRS]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1959</guid>
		<description><![CDATA[Storage DRS load balancing frequency differs from DRS load balance frequency, where DRS runs every 5 minutes to balance CPU and memory resources, Storage DRS uses a far more complex load balancing scheme. Let’s take a closer look at Storage DRS load balancing. Default invocation period The invocation period of Storage DRS is every 8 [...]<p><a href="http://frankdenneman.nl/2012/05/storage-drs-load-balance-frequency/">Storage DRS load balance frequency</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Storage DRS load balancing frequency differs from DRS load balance frequency, where DRS runs every 5 minutes to balance CPU and memory resources, Storage DRS uses a far more complex load balancing scheme. Let’s take a closer look at Storage DRS load balancing.</p>
<p><strong>Default invocation period</strong><br />
The invocation period of Storage DRS is every 8 hours and uses what’s called past-day statistics. Storage DRS triggers a load balancing evaluation process if a datastore exceeds the space utilization threshold. Storage DRS load balances space utilization of the datastores and if I/O metric is enabled, load balances on I/O utilization as well.</p>
<p>Space utilization and I/O load on a datastore are two different load patterns, therefore Storage DRS uses different methods to accumulate and analyze IO load patterns and space utilization of the datastores within the datastore cluster. </p>
<p><strong>Space load balancing statistic collection</strong><br />
Analyzing space utilization is rather straightforward; Storage DRS needs to understand the growth rate of each virtual machine and the utilization of each datastore. It collects information from the vCenter database to understand the disk usage and file structure of each virtual machine. Each ESXi host reports datastore utilization at a frequent interval and this is stored in the vCenter database as well. Storage DRS checks whether the datastore utilization is above the user-set threshold. When generating a load balance recommendation, Storage DRS knows where to move a virtual machine as it knows the current space growth of virtual machines on destination datastores, preventing a threshold violation direct after the placement.</p>
<p>I/O load utilization is a different beast. I/O load may grow over time, however the datastore can experience a temporary increase of load. How does Storage DRS handle these spikes? Enter past-day statistics!<br />
<strong><br />
I/O load balancing statistic collection</strong><br />
Storage DRS uses two main information sources for I/O load balancing statistic collection, vCenter and the SIOC injector. vCenter statistics is uses to understand the workload each virtual disk is generating, this is called workload modeling. SIOC injector is used to understand the device performance and this is called device modeling. See “<a href="http://frankdenneman.nl/2012/01/impact-of-load-balancing-on-datastore-cluster-configuration/">Impact of load balancing on datastore cluster configuration</a>” for more info about device and workload modeling. Data of workload and device modeling is aggregated in a performance snapshot and is used as input for generating migration recommendations.</p>
<p>Migrating virtual machine disk files takes time and most of all it impacts the infrastructure, migrating based on peak value is the last thing you want to do when you are introducing long-term high impact workloads. Therefore Storage DRS starts to recommend I/O load-related recommendations once an imbalance persists for some period of time.<br />
To avoid being caught out by peak load moments, Storage DRS does not use real-time statistics. It aggregates all the data points collected over a period of time. By using 90th percentile values, Storage DRS filters out the extreme spikes while still maintaining a good view of the busiest period of that day as this value translate to the lowest edge of the busiest period. </p>
<p>As workloads shift during the day enough information needs to be collected to make a good assessment of the workloads. Therefore Storage DRS needs at least 16 hours of data before recommendation are made. By using at least 16 hours worth of data Storage DRS has an enough data of the same timeslot so it can compare utilization of datastores for example: datastore 1 to datastore 2 on Monday morning at 11:00. As 16 hour is 2/3 of the day Storage DRS receives enough information to characterize the performance of datastore on that day. But how does this tie in with the 8 hour invocation period?</p>
<p><strong>8-hour invocation period and 16 hours worth of data</strong><br />
Storage DRS uses 16 hours of data, however this data must be captured in the current day otherwise the performance snapshot of the previous day is used. How is this combined with the 8-hour invocation periods?<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/IOlbtimeline1.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/IOlbtimeline1-300x142.png" alt="" title="IOlbtimeline" width="300" height="142" class="aligncenter size-medium wp-image-1965" /></a></p>
<p>This means that technically, the I/O load balancing is done every 16 hours. Usually after midnight, after the day date, the stats are fixed and rolled up. This is called the rollover event. The first invocation period (08:00) after the rollover event uses the 24 hours statistics of the previous day. After 16 hours are passed of the current day, Storage DRS uses the new performance snapshot and may evaluate moves.</p>
<p><a href="http://frankdenneman.nl/2012/05/storage-drs-load-balance-frequency/">Storage DRS load balance frequency</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1959" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=7086G5670Go:lUVnt31w_BY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=7086G5670Go:lUVnt31w_BY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/7086G5670Go" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/05/storage-drs-load-balance-frequency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/05/storage-drs-load-balance-frequency/</feedburner:origLink></item>
		<item>
		<title>Whiteboard desk</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/unWxZvReqys/</link>
		<comments>http://frankdenneman.nl/2012/05/whiteboard-desk/#comments</comments>
		<pubDate>Thu, 03 May 2012 14:37:19 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1936</guid>
		<description><![CDATA[As I’m an avid fan of “post your desk topics \ workspace ” forum threads, I thought it might be nice to publish a blog article about my own workspace. I always love to see how other people design their work environment and how they customize furniture to suit their needs. Hopefully you can find [...]<p><a href="http://frankdenneman.nl/2012/05/whiteboard-desk/">Whiteboard desk</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>As I’m an avid fan of “post your desk topics \ workspace ” forum threads, I thought it might be nice to publish a blog article about my own workspace. I always love to see how other people design their work environment and how they customize furniture to suit their needs. Hopefully you can find some inspiration in mine.</p>
<p>Last year I decided to refurbish my home office, to create a space that enables me to do my work in the most optimum way and of course that is pleasing to the eye.  The first thing that came to mind was a whiteboard and a really big one. So I needed to build a wall to hang the whiteboard, as the room didn’t have any wall that could hold a whiteboard big enough. After completion of the wall, a 6 x 3 feet wide whiteboard found its way to my office.<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk01.jpg"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk01-300x198.jpg" alt="" title="whiteboarddesk01" width="300" height="198" class="aligncenter size-medium wp-image-1947" /></a></p>
<p>Although its 5 to 6 feet away from my desk I realized I didn’t use it enough due to “distance”. Sitting behind the desk while on the phone or just using my computer I found myself scribbling on pieces of paper instead of getting out of my chair and walk over to the whiteboard. So I needed a small whiteboard I could grab and use at my desk, sounds like a plan however I like minimalistic designs where as much “clutter” is removed as possible. I needed to come up with something different, enter the whiteboard desk!<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk02.jpg"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk02-300x198.jpg" alt="" title="whiteboarddesk02" width="300" height="198" class="aligncenter size-medium wp-image-1948" /></a></p>
<p><strong>Whiteboard desk</strong><br />
Instead of buying a mini whiteboard that needs to be stored when not using it I decided to visit my local IKEA shop and see what’s available. Besides “show your desk” threads I hit <a href="http://www.ikeahackers.net" target="_blank">ikeahackers.net</a> on a daily basis. While looking at tables, I noticed that the IKEA kitchen department sells customized tabletops. Each dimension is possible in almost every shape. I decided to order a 7 feet by 3 feet high-gloss white tabletop with a stainless steel edge. The Ikea employee asked where to put the sink, she was surprised when I told her that the tabletop was going to function as a desk.<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk03.jpg"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk03-198x300.jpg" alt="" title="whiteboarddesk03" width="198" height="300" class="aligncenter size-medium wp-image-1949" /></a></p>
<p>I chose to order the 2 inch thick tabletop as I need to have a desktop that is sturdy enough to hold the weight of a 27” I-mac and a 30” TFT screen. The stainless steel edge fits snug around the desk and covers each side; it doesn’t stick out and is not noticeable when typing. It looks fantastic however the downside is the price, it was more expensive than the table top itself. The alternative is a laminate cover that looks like it will be worn out easily, while spending most of my time behind my desk I thought it was worth the investment of buying the real thing. </p>
<p>The high-gloss finish acts as the whiteboard surface and works like a charm with any whiteboard markers. I left notes on my desk for multiple days and could be removed without leaving a trace.<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk04-1.jpg"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk04-1-198x300.jpg" alt="" title="whiteboarddesk04-1" width="198" height="300" class="aligncenter size-medium wp-image-1952" /></a></p>
<p>The tabletop rest on two IKEA Vika Moliden stands, due to the cast of the shadow its very difficult to notice that the color of the stands do not exactly match the color as the stainless steel edge.<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk05.jpg"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk05-185x300.jpg" alt="" title="whiteboarddesk05" width="185" height="300" class="aligncenter size-medium wp-image-1953" /></a></p>
<p>The whiteboard desk is just an awesome piece of furniture, when on the phone I can take notes on my desk while immediately drawing diagrams next to it. It saves a lot of trees, saves a lot of time scrambling for a piece of paper and a pen and decreases clutter on the desk. The only thing you need to do when building a whiteboard desk is to banish all permanent markers in your office. <img src='http://frankdenneman.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk06.jpg"><img src="http://frankdenneman.nl/wp-content/uploads/2012/05/whiteboarddesk06-300x198.jpg" alt="" title="whiteboarddesk06" width="300" height="198" class="aligncenter size-medium wp-image-1954" /></a></p>
<p>It would be awesome to see what your workspace looks like, what you love about your workspace and maybe show your own customizations. I would love to see blogs articles pop up describing the workspace of bloggers. Please post a link to your blog article in the comment section.</p>
<p><a href="http://frankdenneman.nl/2012/05/whiteboard-desk/">Whiteboard desk</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1936" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=unWxZvReqys:zIu2EZE5B1w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=unWxZvReqys:zIu2EZE5B1w:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/unWxZvReqys" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/05/whiteboard-desk/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/05/whiteboard-desk/</feedburner:origLink></item>
		<item>
		<title>Aggregating datastores from multiple storage arrays into one Storage DRS datastore cluster.</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/qblH50qpshM/</link>
		<comments>http://frankdenneman.nl/2012/04/aggregating-datastores-from-multiple-storage-arrays-into-one-storage-drs-datastore-cluster/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 12:49:29 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[SDRS]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1930</guid>
		<description><![CDATA[Combining datastores located on different storage arrays into a single datastore cluster is a supported configuration, such a configuration could be used during a storage array data migration project where virtual machines must move from one array to another array, using datastore maintenance mode can help speed up and automate this project. Recently I published [...]<p><a href="http://frankdenneman.nl/2012/04/aggregating-datastores-from-multiple-storage-arrays-into-one-storage-drs-datastore-cluster/">Aggregating datastores from multiple storage arrays into one Storage DRS datastore cluster.</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Combining datastores located on different storage arrays into a single datastore cluster is a supported configuration, such a configuration could be used during a storage array data migration project where virtual machines must move from one array to another array, using datastore maintenance mode can help speed up and automate this project. Recently I published an <a href="http://blogs.vmware.com/vsphere/2012/04/using-datastore-maintenance-mode-for-migration-virtual-machines-to-datastore-clusters.html">article</a> about this method on the VMware vSphere blog. But what if multiple arrays are available to the vSphere infrastructure and you want to aggregate storage of these arrays to provide a permanent configuration? What are the considerations of such a configurations and what are the caveats?</p>
<p>Key areas to focus on are homogeneity of configurations of the arrays and datastores.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/04/Multiple-arrays-single-datastore-cluster.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/04/Multiple-arrays-single-datastore-cluster-300x128.png" alt="" title="Multiple arrays-single datastore cluster" width="300" height="128" class="aligncenter size-medium wp-image-1931" /></a> </p>
<p>When combining datastores from multiple arrays it’s highly recommended to use datastores that are hosted on <strong>similar types of arrays</strong>. Using similar type of arrays, guarantees comparable performance and redundancy features. Although RAID levels are standardized by SNIA, implementation of RAID levels by different vendors may vary from the actual RAID specifications. An implementation used by a particular vendor may affect the read and write performance and the degree of data redundancy compared to the same RAID level implementation of another vendor.</p>
<p>Would <strong>VASA</strong> (vSphere Storage APIs &#8211; Storage Awareness) and Storage profiles be any help in this configuration?  VASA enables vCenter to display the capabilities of the LUN/datastore. This information could be leveraged to create a datastore cluster by selecting the datastores that have similar Storage capabilities details, however the actual capabilities that are surfaced by VASA are being left to the individual array storage vendors. The detail and description could be similar however the performance or redundancy features of the datastores could differ. </p>
<p>Would it be harmful or will Storage DRS stop working when aggregating datastores with different performance levels? Storage DRS will still work and will load balance virtual machine across the datastores in the datastore cluster. However, Storage DRS load balancing is focused on distributing the virtual machines in such a way that the configured thresholds are not violated and getting the best overall performance out of the datastore cluster. By mixing datastores that provide different performance levels, virtual machine performance could not be consistent if it would be migrated between datastores belonging to different arrays. The article “Impact of load balancing on datastore cluster configuration” explains how storage DRS picks and selects virtual machine to distribute across the available datastores in the cluster. </p>
<p>Another caveat to consider is when virtual machines are migrated between datastores of different arrays; <strong>VAAI hardware offloading</strong> is not possible.  Storage vMotion will be managed by one of the datamovers in the vSphere stack.  As storage DRS does not identify “locality” of datastores, it does not incorporate the overhead caused by migrating virtual machines between datastores of different arrays.</p>
<p>When could datastores of multiple arrays be aggregated into a single datastore if designing an environment that provides a stable and continuous level of performance, redundancy and low overhead? Datastores and array should have the following configuration:</p>
<p>•	Identical Vendor.<br />
•	Identical firmware/code.<br />
•	Identical number of spindles backing diskgroup/aggregate.<br />
•	Identical Raid Level.<br />
•	Same Replication configuration.<br />
•	All datastores connected to all host in compute cluster.<br />
•	Equal-sized datastores.<br />
•	Equal external workload (best non at all).</p>
<p>Personally I would rather create a multiple datastore clusters and group datastores belonging to a single storage array into one datastore cluster. This will reduce complexity of the design (connectivity), no multiple storage level entities to manage (firmware levels, replication schedules) and will leverage VAAI which helps to reduce load on the storage subsystem. </p>
<p>If you feel like I missed something, I would love to hear reasons or recommendations why you should aggregate datastores from multiple storage arrays.</p>
<p>More articles in the architecting and designing datastore clusters series:<br />
Part1: <a href="http://frankdenneman.nl/2011/09/architecture-and-design-of-datastore-clusters/">Architecture and design of datastore clusters.</a><br />
Part2: <a href="http://frankdenneman.nl/2011/10/partially-connected-datastore-clusters/">Partially connected datastore clusters.</a><br />
Part3: <a href="http://frankdenneman.nl/2012/01/impact-of-load-balancing-on-datastore-cluster-configuration/">Impact of load balancing on datastore cluster configuration.</a><br />
Part4: <a href="http://frankdenneman.nl/2012/01/sdrs-and-multi-extents-datastores/">Storage DRS and Multi-extents datastores.</a><br />
Part5: <a href="http://frankdenneman.nl/2012/04/connecting-multiple-drs-clusters-to-a-single-storage-drs-datastore-cluster/">Connecting multiple DRS clusters to a single Storage DRS datastore cluster.</a></p>
<p><a href="http://frankdenneman.nl/2012/04/aggregating-datastores-from-multiple-storage-arrays-into-one-storage-drs-datastore-cluster/">Aggregating datastores from multiple storage arrays into one Storage DRS datastore cluster.</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1930" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=qblH50qpshM:pgaTXxz_1wE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=qblH50qpshM:pgaTXxz_1wE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/qblH50qpshM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/04/aggregating-datastores-from-multiple-storage-arrays-into-one-storage-drs-datastore-cluster/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/04/aggregating-datastores-from-multiple-storage-arrays-into-one-storage-drs-datastore-cluster/</feedburner:origLink></item>
		<item>
		<title>Connecting multiple DRS clusters to a single Storage DRS datastore cluster.</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/111LKA7Zm4A/</link>
		<comments>http://frankdenneman.nl/2012/04/connecting-multiple-drs-clusters-to-a-single-storage-drs-datastore-cluster/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 14:28:36 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[SDRS]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1921</guid>
		<description><![CDATA[Recently I received the question if you can connect multiple compute (HA and DRS) clusters to a single Storage DRS datastore cluster and specifically how this setup might impact Storage IO Control functionality. Let’s cover sharing a datastore cluster by multiple compute clusters first before diving into details of the SIOC mechanism. Sharing datastore clusters [...]<p><a href="http://frankdenneman.nl/2012/04/connecting-multiple-drs-clusters-to-a-single-storage-drs-datastore-cluster/">Connecting multiple DRS clusters to a single Storage DRS datastore cluster.</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Recently I received the question if you can connect multiple compute (HA and DRS) clusters to a single Storage DRS datastore cluster and specifically how this setup might impact Storage IO Control functionality. Let’s cover sharing a datastore cluster by multiple compute clusters first before diving into details of the SIOC mechanism.</p>
<p><strong>Sharing datastore clusters</strong><br />
Sharing datastore clusters across multiple compute clusters is a supported configuration. During virtual machine placement the administrator selects which compute cluster the virtual machine will run in, Storage DRS selects the host that can provide the most resources to that virtual machine. A migration recommendation generated by Storage DRS does not move the virtual machine at host level, consequently a virtual machine cannot move from one compute cluster to another compute cluster by any operation initiated by Storage DRS.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/04/multiple-compute-clusters-sharing-sdc-load-balancing-domain.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/04/multiple-compute-clusters-sharing-sdc-load-balancing-domain-300x179.png" alt="multiple compute clusters sharing sdc-load balancing domain" title="multiple compute clusters sharing sdc-load balancing domain" width="300" height="179" class="aligncenter size-medium wp-image-1923" /></a></p>
<p><strong>Maximums</strong><br />
Please remember that the maximum supported number of hosts connected to a datastore is 64. Keep this in mind when sizing the compute cluster or connecting multiple compute clusters to the datastore cluster. As the maximum number of datastores inside a datastore cluster is 32 I think that the number of host connected is the first limit you hit in such a design as the total supported number of paths is 1024 and a host can connect up to 255 LUNs. </p>
<p><strong>The VAAI-factor</strong><br />
If the datastores are formatted with the VMFS, it’s recommended to enable VAAI on the storage Array if supported. One of the important VAAI primitive is the Hardware assisted locking, also called Atomic Test and Set (ATS).</p>
<p>ATS replaces the need for hosts to place a SCSI-2 disk lock on the LUN while updating the metadata or growing a file. A SCSI-2 disk lock command locks out other host from doing I/O to the entire LUN, while ATS modifies the metadata or any other sector on the disk without the use of a SCSI-2 disk lock. This locking was the focus of many best practices around the connectivity of datastores. To reduce the amount of locking, the best practice was to reduce the number of host attached. By using newly formatted VMFS5 volumes in combination with a VAAI-enabled storage array, scsi-2 disk lock commands are a thing of the past.  Upgraded VMFS5 volumes or VMFS3 volumes will fall back to using SCSI-2 disk locks if the ATS command fails. For more information about VAAI and ATS please read the <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&#038;cmd=displayKC&#038;externalId=1021976">KB article 1021976</a>.</p>
<p><strong>Note: </strong>If your array doesn’t support VAAI, be aware that SCSI-2 disk lock commands can impact scaling of the architecture.</p>
<p><strong>Storage DRS IO Load balancing and Storage IO Control</strong><br />
When enabling the IO Metric on the datastore cluster, Storage DRS automatically enables Storage IO Control (SIOC) on all datastores in the cluster.  Storage DRS uses the IO injector from SIOC to determine the capabilities of a datastore, however by enabling SIOC it also provides a method to fairly distribute I/O resources during times of contention. </p>
<p>SIOC uses virtual disk shares in order to distribute storage resources fairly and are applied on a datastore wide level. The virtual disk shares of the virtual machine running on that datastore are relative to the virtual disk shares of other virtual machines using that same datastore. To be more specific, SIOC is a host-level module and aggregates the per-host views into a single datastore view in terms of observed latency.</p>
<p> If the observed latency exceeds the SIOC level latency threshold, each host sets its own IO queue length based on the total virtual disks shares of the virtual machines in that host using the datastore. As SIOC and its shares are datastore focused cluster membership of the host has no impact on detecting the latency threshold violation and managing the I/O stream to the datastore.</p>
<p>Previous articles in the SDRS short series Architecture and design of Datastore clusters:<br />
Part1: <a href="http://frankdenneman.nl/2011/09/architecture-and-design-of-datastore-clusters/">Architecture and design of datastore clusters.</a><br />
Part2: <a href="http://frankdenneman.nl/2011/10/partially-connected-datastore-clusters/">Partially connected datastore clusters.</a><br />
Part3: <a href="http://frankdenneman.nl/2012/01/impact-of-load-balancing-on-datastore-cluster-configuration/">Impact of load balancing on datastore cluster configuration.</a><br />
Part4: <a href="http://frankdenneman.nl/2012/01/sdrs-and-multi-extents-datastores/">Storage DRS and Multi-extents datastores.</a></p>
<p><a href="http://frankdenneman.nl/2012/04/connecting-multiple-drs-clusters-to-a-single-storage-drs-datastore-cluster/">Connecting multiple DRS clusters to a single Storage DRS datastore cluster.</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1921" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=111LKA7Zm4A:zcX7QHgpq1g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=111LKA7Zm4A:zcX7QHgpq1g:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/111LKA7Zm4A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/04/connecting-multiple-drs-clusters-to-a-single-storage-drs-datastore-cluster/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/04/connecting-multiple-drs-clusters-to-a-single-storage-drs-datastore-cluster/</feedburner:origLink></item>
		<item>
		<title>I/O Analyzer v1.1</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/TwIRLUHDWI8/</link>
		<comments>http://frankdenneman.nl/2012/03/io-analyzer-v1-1/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 17:33:24 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1918</guid>
		<description><![CDATA[I/O Analyzer v1.1 is now live on the Flings site: http://labs.vmware.com/flings/io-analyzer I/O Analyzer is a virtual appliance tool for measuring storage performance. This version of I/O Analyzer adds the ability to run trace replay – a function which allows a user to replay an I/O trace that was captured elsewhere (with vscsistats) on the target [...]<p><a href="http://frankdenneman.nl/2012/03/io-analyzer-v1-1/">I/O Analyzer v1.1</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I/O Analyzer v1.1 is now live on the Flings site:</p>
<p><a href="http://labs.vmware.com/flings/io-analyzer" title="http://labs.vmware.com/flings/io-analyzer">http://labs.vmware.com/flings/io-analyzer</a></p>
<p>I/O Analyzer is a virtual appliance tool for measuring storage performance. This version of I/O Analyzer adds the ability  to run trace replay – a function which allows a user to replay an I/O trace that was captured elsewhere (with vscsistats) on the target test system. This version also has cool data visualization charts, both for the characteristics of an imported trace, and performance results on the test system.</p>
<p>This is really cool stuff, go check it out.</p>
<p><a href="http://frankdenneman.nl/2012/03/io-analyzer-v1-1/">I/O Analyzer v1.1</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1918" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=TwIRLUHDWI8:K_vdSQjJqzw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=TwIRLUHDWI8:K_vdSQjJqzw:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/TwIRLUHDWI8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/03/io-analyzer-v1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/03/io-analyzer-v1-1/</feedburner:origLink></item>
		<item>
		<title>Impact of Intra VM affinity rules on Storage DRS</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/M8LuQzquyk8/</link>
		<comments>http://frankdenneman.nl/2012/02/impact-of-intra-vm-affinity-rules-on-storage-drs/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 14:51:17 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[SDRS]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1902</guid>
		<description><![CDATA[By default Storage DRS applies an Intra-VM affinity rule to all new virtual machines in the datastore cluster. The Intra-VM affinity rule keeps the virtual machine files, such as VMX file, log files, vSwap and VMDK files together on one datastore. Keeping all files together on one datastore allows ease of troubleshooting. However Storage DRS [...]<p><a href="http://frankdenneman.nl/2012/02/impact-of-intra-vm-affinity-rules-on-storage-drs/">Impact of Intra VM affinity rules on Storage DRS</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>By default Storage DRS applies an Intra-VM affinity rule to all new virtual machines in the datastore cluster. The Intra-VM affinity rule keeps the virtual machine files, such as VMX file, log files, vSwap and VMDK files together on one datastore. </p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/02/affinity-rule.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/02/affinity-rule-300x252.png" alt="" title="affinity rule" width="300" height="252" class="aligncenter size-medium wp-image-1903" /></a></p>
<p>Keeping all files together on one datastore allows ease of troubleshooting. However Storage DRS load balance algorithms may benefit from distributing the virtual machine across datastores.  Let’s zoom in how Storage DRS handles virtual machine with multiple disks when the Intra-VM affinity rule is removed from the virtual machine.</p>
<p><strong>DrmDisk</strong><br />
Storage DRS uses the construct “DrmDisk” as the smallest entity it can migrate. A DrmDisk represent a consumer of datastore resources. This means that Storage DRS creates a DrmDisk for each VMDK belonging to the virtual machine. The interesting part is the collection of system files and swap file belonging to virtual machines. Storage DRS creates a single Drmdisk for all the system files, if an alternate swapfile location is specified, the vSwap file is represented as a separate DrmDisk and Storage DRS will be disabled on the swap DrmDisk. More info about alternate swapfile locations can be found <a href="http://blogs.vmware.com/vsphere/2012/02/storage-drs-affinity-rules-and-alternate-swapfile-location.html">here</a>. For example a virtual machine with three VMDK’s and with no alternate swapfile locations configured, Storage DRS creates 4 DrmDisk:</p>
<p>•	A separate DrmDisk for each Virtual Machine Disk File<br />
•	A DrmDisk for system files (VMX, Swap, logs, etc)</p>
<p> <a href="http://frankdenneman.nl/wp-content/uploads/2012/02/DRMdisk.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/02/DRMdisk-300x121.png" alt="" title="DRMdisk" width="300" height="121" class="aligncenter size-medium wp-image-1904" /></a></p>
<p>Initial placement recommendation will look similar to this screenshot when the Intra-VM affinity rule is disabled. Notice the separate recommendation for the &#8220;virtual machine configuration file&#8221;? This is the DrmDisk containing the system files.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/02/affinity-rule-disabled.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/02/affinity-rule-disabled-300x187.png" alt="" title="affinity-rule disabled" width="300" height="187" class="aligncenter size-medium wp-image-1905" /></a> </p>
<p><strong>Initial placement Space load balancing</strong><br />
Initial placement and Space load balancing benefit from this increased granularity tremendously. Instead of searching a suitable datastore that can fit the virtual machine as a whole, Storage DRS is able to seek for appropriate datastores for each DrmDisk file separately. Recently I wrote an article about d<a href="http://frankdenneman.nl/2012/01/storage-drs-initial-placement-and-datastore-cluster-defragmentation/">atastore cluster fragmentation and Storage DRS ability</a> to issue prerequisite migrations. You can imagine due to the increased granularity, datastore cluster fragmentation is less likely to happen and if prerequisite migrations are required, the number of migrations is expected to be a lot less.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/02/intravmaffinityrule-off.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/02/intravmaffinityrule-off-300x153.png" alt="" title="intravmaffinityrule-off" width="300" height="153" class="aligncenter size-medium wp-image-1907" /></a></p>
<p><strong>IO load balancing</strong><br />
Similar to initial placement and load balancing, I/O load balancing benefit from the deeper level of detail. It can find a better fit for each workload generated by the VMDK files. The system file DrmDisk will not be migrated quite often as it small in size and does not generate a lot of I/O often. Storage DRS analyzes the workload and generates a workload model for each DrmDisk, it then decides which datastore it needs to place the DrmDisk to keep the load balanced within the datastore cluster while offering enough performance for each DrmDisk. You can imagine this becomes a lot harder when Storage DRS is required to keep all the VMDK files together. Usually the datastore chosen is the datastore that provides the best performance for the most demanding workload AND is able to store all the virtual machine disk files and system files. Now let’s dig into this a little deeper, for example the virtual machine used in the previous example has two DrmDisk generating heavy workloads, while the DrmDisks containing the system files and VMDK2 are “cold”. </p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/02/intravmaffinityrule-off-activity.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/02/intravmaffinityrule-off-activity-300x245.png" alt="" title="intravmaffinityrule-off activity" width="300" height="245" class="aligncenter size-medium wp-image-1908" /></a></p>
<p>If Intra-VM affinity rules are used, Space balancing is required to find a datastore that has 350+ GB free without exceeding the space utilization threshold. If I/O load balancing is enabled, this datastore also needs to provide enough performance to keep the latency below the I/O latency threshold (by default 15ms) after placing the 4 DrmDisks. You can imagine it’s a lot less complicated when space and I/O load balancing are allowed to place each DrmDisk on a datastore that suits their needs.</p>
<p>In the previous examples, each DrmDisk is placed on a different datastore, but this isn’t mandatory behavior when Intra VM affinity rules are disabled. I’ve seen scenarios where Storage DRS decides to place multiple DrmDisks of a specific virtual machine on the same datastore.</p>
<p><strong>How to change default datastore cluster behavior?</strong><br />
Mentioned before, datastore cluster defaults in applying an Intra-VM affinity rule to each new virtual machine. Recently Duncan published an article on how to change the <a href="http://www.yellow-bricks.com/2012/02/07/setting-the-default-affinity-rule-for-storage-drs/">affinity rules on active virtual machines</a>. Unfortunately there is not User-Interface option available that can disable this behavior, so I turned to my good friend and colleague <a href="https://twitter.com/#!/alanrenouf">Alan Renouf</a> and he created some nice PowerCLI code to solve this problem:<br />
As I’m not a powerCLI user at all, I’m relaying Alan’s instructions:</p>
<p><em>First you need to run the below code to put the function into memory:</em></p>
<blockquote><p>function Set-DatastoreClusterDefaultIntraVmAffinity{<br />
     param(<br />
           [CmdletBinding()]<br />
           [parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true)]<br />
           [PSObject]$DSC,<br />
           [Switch]$Enabled<br />
     )</p>
<p>     process{<br />
           $SRMan = Get-View StorageResourceManager<br />
           if($DSC.GetType().Name -eq &#8220;string&#8221;){<br />
           $DSC = Get-DatastoreCluster -Name $DSC | Get-View<br />
         }<br />
         elseif($DSC.GetType().Name -eq &#8220;DatastoreClusterImpl&#8221;){<br />
           $DSC = Get-DatastoreCluster -Name $DSC.Name | Get-View<br />
         }<br />
                $spec = New-Object VMware.Vim.StorageDrsConfigSpec<br />
                $spec.podConfigSpec = New-Object VMware.Vim.StorageDrsPodConfigSpec<br />
                $spec.podConfigSpec.DefaultIntraVmAffinity = $Enabled<br />
                $SRMan.ConfigureStorageDrsForPod($DSC.MoRef, $spec, $true)<br />
     }<br />
}
</p></blockquote>
<p>Once this has been run you can use this function….</p>
<blockquote><p>Get-DatastoreCluster &#8220;Shared Datastores&#8221; | Set-DatastoreClusterDefaultIntraVmAffinity</p></blockquote>
<p>Shared datastores is the name of the Datastore cluster, you can change that into the name of your own datastore cluster. Or in the case you have multiple datastore clusters and want to disable the rule for all datastore clusters at once, omit the name of the datastore cluster at all.</p>
<p>If ease of troubleshooting is not your first concern, than it might be beneficial to the performance of Storage DRS to disable the default Intra-VM affinity rule on the virtual machines in the datastore cluster. However I&#8217;m interested in reasons why you wouldn&#8217;t want to disable the default affinity rule besides troubleshooting effort.</p>
<p><strong>Note:</strong><br />
Unfortunately I&#8217;m unaware why VMware decided to use the Intra-VM affinity rule as default and I do not know if a future release of vSphere will provide a UI setting to change the affinity rule behavior of the datastore cluster. Please leave a comment if you would like this option included in a new version of vSphere. All I can do is relay this to the appopriate product manager.</p>
<p><a href="http://frankdenneman.nl/2012/02/impact-of-intra-vm-affinity-rules-on-storage-drs/">Impact of Intra VM affinity rules on Storage DRS</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1902" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=M8LuQzquyk8:v37S4OU2zsU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=M8LuQzquyk8:v37S4OU2zsU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/M8LuQzquyk8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/02/impact-of-intra-vm-affinity-rules-on-storage-drs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/02/impact-of-intra-vm-affinity-rules-on-storage-drs/</feedburner:origLink></item>
		<item>
		<title>Storage DRS I/O load balancing and Array-based Auto-Tiering</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/EAhCaYsbSVE/</link>
		<comments>http://frankdenneman.nl/2012/02/storage-drs-io-load-balancing-and-array-based-auto-tiering/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 14:51:51 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[SDRS]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1892</guid>
		<description><![CDATA[In its basic form Storage DRS can be used together with any array, however there are a few combinations of Storage array features and Storage DRS features that don’t mix easily. One of the most sought after question is can Storage DRS work with Array based Auto-tiering? And the answer is yes, yes you can [...]<p><a href="http://frankdenneman.nl/2012/02/storage-drs-io-load-balancing-and-array-based-auto-tiering/">Storage DRS I/O load balancing and Array-based Auto-Tiering</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>In its basic form Storage DRS can be used together with any array, however there are a few combinations of Storage array features and Storage DRS features that don’t mix easily. One of the most sought after question is can Storage DRS work with Array based Auto-tiering? And the answer is yes, yes you can use initial placement and out of space avoidance features that Storage DRS offers, however it is not recommended to enable the I/O metric feature. </p>
<p><strong>Modeling</strong><br />
The main goal of the I/O metric function, popular called I/O load balancing, is to resolve the imbalance of performance delivered from datastores in the datastore cluster. To avoid hotspots in the datastore cluster and decrease overall latency imbalance, Storage DRS I/O load balancing uses device modeling and virtual machine workload modeling. Device modeling helps Storage DRS to understand the performance characteristics of the devices backing the datastores, while virtual machine workload modeling analyzes virtual machine workload running inside the datastore cluster. Both device and workload modeling assists Storage DRS to asses the improvement of I/O latency that will be achieved after a virtual machine migration.</p>
<p><strong>Device modeling and the SIOC injector</strong><br />
To understand and learn the performance of the devices backing the datastore, Storage DRS uses the Storage IO Control (SIOC) workload injector. To characterize the datastore, SIOC injector opens and read random blocks of the datastore. As the SIOC injector does not open every block backing the datastore, we cannot ensure that the SIOC injector opens an identical number of blocks of each performance tier to characterize the disk. As multiple performance tiers of disk back the datastore there is a possibility that the SIOC injector might open blocks located on similar speed disks, either slow or fast, while the datastore is primarily backed by disk with a different performance level.  Let’s use an example to clarify this further.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/02/SIOC-injector-read-tier3.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/02/SIOC-injector-read-tier3-300x183.png" alt="" title="SIOC-injector read tier3" width="300" height="183" class="aligncenter size-medium wp-image-1893" /></a></p>
<p>In the diagram pictured above, SIOC opens random blocks and perform its tests. Unfortunately it doesn’t open blocks on other disks. While most of the blocks backing the datastore are located on faster performing disks, Storage DRS device modeling will characterize this disk with performance similar to 7.2K SATA disks. This inaccurate characterization of datastore performance might lead to an incorrect performance assessment and can lead to Storage DRS withholding a migration recommendation while there is sufficient performance available.</p>
<p><strong>Segment migration triggered by auto-tiering algorithms</strong><br />
By using SIOC injector Storage DRS evaluate the performance of the disks, however Auto-tiering solutions migrate LUN segments (chunks) to different disk types based on the use pattern. Hot segments (frequently accessed) typically move to faster disks while cold segments move to slower disks. Depending on the array type and vendor there are different kind of policies and threshold for these migrations. By default Storage DRS is invoked every 8 hours and requires performance data over more than 16 hours to generate I/O load balancing decisions. Multiple storage vendors offer auto-tiering solutions, each using different time-cycles to collect and analyze workload before moving LUN segments. Some auto-tiering solutions move chunks based on real-time workload while other arrays move chunks after collecting performance data for 24 hours. This means that auto tiering solutions alter the landscape in which the SIOC injector performs its test. Let’s turn to another scenario for clarification.</p>
<p>In this scenario, SIOC is primarily opening blocks located in the Tier-1 diskgroup belonging to the datastore. As the datastore isn’t using these segments that often (cold) the auto tiering solution decides to migrate these segments to a lower tier. In this case the segments are migrated to 15K disks instead of SSD devices.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2012/02/SIOC-injector-read-tier1.png"><img src="http://frankdenneman.nl/wp-content/uploads/2012/02/SIOC-injector-read-tier1-300x222.png" alt="" title="SIOC-injector read tier1" width="300" height="222" class="aligncenter size-medium wp-image-1894" /></a></p>
<p>Storage DRS expects that the behavior of the device remains the same for at least 16 hours; it will base its calculation on these facts. Auto tiering solutions might change the underlying structure of the datastore based on its algorithm and timescales, conflicting with Storage DRS its calculation.<br />
The misalignment of Storage DRS invocation and auto-tiering algorithms cycles makes it unpredictable when LUN segments may be moved, potentially colliding with the Storage DRS calculations and recommendations. Together with the transparency of auto tiering algorithms to Storage DRS and the non-existing communication between Storage DRS and Auto-tiering algorithms create the basis of the recommendation to disable I/O metric on datastore clusters backed by devices participating in an auto-tiering solution. Always verify these recommendations with your storage vendor.</p>
<p><strong>Additional information:</strong><br />
Duncan wrote an excellent article about the Storage IO Control workload injector, which can be found <a href="http://www.yellow-bricks.com/2011/08/05/sdrs-and-auto-tiering-solutions-the-injector/">here</a>.  More info on device modeling and load balancing can be found in the article <a href="http://frankdenneman.nl/2012/01/impact-of-load-balancing-on-datastore-cluster-configuration/">impact of load balancing on datastore cluster configuration</a>.</p>
<p><strong>Note</strong>: This article is describing Storage DRS behavior based on vSphere 5.</p>
<p><a href="http://frankdenneman.nl/2012/02/storage-drs-io-load-balancing-and-array-based-auto-tiering/">Storage DRS I/O load balancing and Array-based Auto-Tiering</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1892" width="1" height="1" style="display: none;" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=EAhCaYsbSVE:LBzA-Qw7RdU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=EAhCaYsbSVE:LBzA-Qw7RdU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/frankdenneman/ZjZC/~4/EAhCaYsbSVE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2012/02/storage-drs-io-load-balancing-and-array-based-auto-tiering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2012/02/storage-drs-io-load-balancing-and-array-based-auto-tiering/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: frankdenneman.nl @ 2012-05-21 00:53:49 -->

