<?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>Thu, 22 Jul 2010 12:59:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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>DRS-FT integration</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/ueurJXVc-kQ/</link>
		<comments>http://frankdenneman.nl/2010/07/drs-ft-integration/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 12:59:57 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[DRS]]></category>
		<category><![CDATA[FT]]></category>
		<category><![CDATA[integration]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1058</guid>
		<description><![CDATA[Another new feature of vSphere 4.1 is the DRS-Fault Tolerance integration. vSphere 4.1 allows DRS not only to perform initial placement of the Fault Tolerance (FT) virtual machines, but also migrate the primary and secondary virtual machine during DRS load balancing operations. In vSphere 4.0 DRS is disabled on the FT primary and secondary virtual [...]]]></description>
			<content:encoded><![CDATA[<p>Another new feature of vSphere 4.1 is the DRS-Fault Tolerance integration. vSphere 4.1 allows DRS not only to perform initial placement of the Fault Tolerance (FT) virtual machines, but also migrate the primary and secondary virtual machine during DRS load balancing operations. In vSphere 4.0 DRS is disabled on the FT primary and secondary virtual machines. When FT is enabled on a virtual machine in 4.0, the existing virtual machine becomes the primary virtual machine and is powered-on onto its registered host, the newly spawned virtual machine, called the secondary virtual machine is automatically placed on another host. DRS will refrain from generating load balancing recommendations for both virtual machines.</p>
<p>The new DRS integration removes both the initial placement- and the load-balancing limitation. DRS is able to select the best suitable host for initial placement and generate migration recommendations for the FT virtual machines based on the current workload inside the cluster. This will result in a more load-balanced cluster which likely has positive effect on the performance of the FT virtual machines.  In vSphere 4.0 an anti-affinity rule prohibited both the FT primary- and secondary virtual machine to run on the same ESX hosts based on an anti-affinity rule, vSphere 4.1 offers the possibility to create a VM-host affinity rule ensuring  that the FT primary and secondary virtual machine do not run on ESX hosts in the same blade chassis if the design requires this. For more information about VM-Host affinity rules please visit <a href="http://frankdenneman.nl/2010/07/vm-to-hosts-affinity-rule/">this</a> article.</p>
<p>Not only has the DRS-FT integration a positive impact on the performance of the FT enabled virtual machines and arguably all other VMs in the cluster but it will also reduce the impact of FT-enabled virtual machines on the virtual infrastructure. For example, DPM is now able to move the FT virtual machine to other hosts if DPM decides to place the current ESX host in standby mode, in vSphere 4.0, DPM needs to be disabled on at least two ESX host because of the DRS disable limitation which I mentioned in <a href="http://frankdenneman.nl/2010/06/vmware-fault-tolerance-and-dpm/">this</a> article. </p>
<p>Because DRS is able to migrate the FT-enabled virtual machines, DRS can evacuate all the virtual machines automatically if the ESX host is placed into maintenance mode. The administrator does not need to manually select an appropriate ESX host and migrate the virtual machines to it, DRS will automatically select a suitable host to run the FT-enabled virtual machines. This reduces the need of both manual operations and creating very &#8220;exiting&#8221; operational procedures on how to deal with FT-enabled virtual machines during the maintenance window.</p>
<p>DRS FT integration requires having EVC enabled on the cluster. Many companies do not enable EVC on their ESX clusters based on either FUD on performance loss or arguements that they do not intend to expand their clusters with new types of hardware and creating homogenous clusters. The advantages and improvement DRS-FT integration offers on both performance and reduction of complexity in cluster design and operational procedures shed some new light on the discussion to enable EVC in a homogeneous cluster.  If EVC is not enabled, vCenter will revert back to vSphere 4.0 behavior and enables the DRS disable setting on the FT virtual machines. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=ueurJXVc-kQ:BZB4RexEvY8: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=ueurJXVc-kQ:BZB4RexEvY8: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/ueurJXVc-kQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/07/drs-ft-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/07/drs-ft-integration/</feedburner:origLink></item>
		<item>
		<title>Disable DRS and VM-Host rules</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/WeaK_pB0ElM/</link>
		<comments>http://frankdenneman.nl/2010/07/disable-drs-and-vm-host-rules/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 04:48:54 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[Disable DRS]]></category>
		<category><![CDATA[VM-Host affinity rule]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1070</guid>
		<description><![CDATA[vSphere 4.1 introduces DRS VM-Host Affinity rules and offer two types of rules, mandatory (must run on /must not run on) and preferential (should run on /should nor run on). When creating mandatory rules, all ESX hosts not contained in the specified ESX Host DRS Group are marked as “incompatible” hosts and DRS\VMotion tasks will [...]]]></description>
			<content:encoded><![CDATA[<p>vSphere 4.1 introduces <a href="http://frankdenneman.nl/2010/07/vm-to-hosts-affinity-rule/">DRS VM-Host Affinity rules </a>and offer two types of rules, mandatory (must run on /must not run on) and preferential (should run on /should nor run on). When creating mandatory rules, all ESX hosts not contained in the specified ESX Host DRS Group are marked as “incompatible” hosts and DRS\VMotion tasks will be rejected if an incompatible ESX Host is selected. </p>
<p>A colleague of mine ran into the problem that mandatory VM-Host affinity rules remain active after disabling DRS; the product team explained the reason why:</p>
<p>By design, mandatory rules are considered very important and it’s believed that the intended user case which is licensing compliance is so important, that VMware decided to apply these restrictions to non-DRS operations in the cluster as well.</p>
<p>If DRS is disabled while mandatory VM-Host rules still exist, mandatory rules are still in effect and the cluster continues to track, report and alert mandatory rules. If a VMotion would violate the mandatory VM-Host affinity rule even after DRS is disabled, the cluster still rejects the VMotion.</p>
<p>Mandatory rules can only be disabled if the administrator explicitly does so. If it the administrator intent to disable DRS, remove mandatory rules first before disabling DRS.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=WeaK_pB0ElM:G-QzH0hjslY: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=WeaK_pB0ElM:G-QzH0hjslY: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/WeaK_pB0ElM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/07/disable-drs-and-vm-host-rules/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/07/disable-drs-and-vm-host-rules/</feedburner:origLink></item>
		<item>
		<title>Load Based Teaming</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/2hlZkhQM6SU/</link>
		<comments>http://frankdenneman.nl/2010/07/load-based-teaming/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:47:56 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[LBT]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1055</guid>
		<description><![CDATA[In vSphere 4.1 a new network Load Based Teaming (LBT) algorithm is available on the distributed virtual switch dvPort groups. The option “Route based on physical NIC load” takes the virtual machine network I/O load into account and tries to avoid congestion by dynamically reassigning and balancing the virtual switch port to physical NIC mappings.
The [...]]]></description>
			<content:encoded><![CDATA[<p>In vSphere 4.1 a new network Load Based Teaming (LBT) algorithm is available on the distributed virtual switch dvPort groups. The option “<em>Route based on physical NIC load</em>” takes the virtual machine network I/O load into account and tries to avoid congestion by dynamically reassigning and balancing the virtual switch port to physical NIC mappings.</p>
<p>The three existing load-balancing policies, Port-ID, Mac-Based and IP-hash use a static mapping between virtual switch ports and the connected uplinks. The VMkernel assigns a virtual switch port during the power-on of a virtual machine, this virtual switch port gets assigned to a physical NIC based on either a round-robin- or hashing algorithm, but all algorithms do not take overall utilization of the pNIC into account. This can lead to a scenario where several virtual machines mapped to the same physical adapter saturate the physical NIC and fight for bandwidth while the other adapters are underutilized. LBT solves this by remapping the virtual switch ports to a physical NIC when congestion is detected.</p>
<p>After the initial virtual switch port to physical port assignment is completed, Load Based teaming checks the load on the dvUplinks at a 30 second interval and dynamically reassigns port bindings based on the current network load and the level of saturation of the dvUplinks.  The VMkernel indicates the network I/O load as congested if transmit (Tx) or receive (Rx) network traffic is exceeding a 75% mean over a 30 second period. (The mean is the sum of the observations divided by the number of observations).</p>
<p>An interval period of 30 seconds is used to avoid MAC address flapping issues with the physical switches. Although an interval of 30 seconds is used, it is recommended to enable port fast (trunk fast) on the physical switches, all switches must be a part of the same layer 2 domain.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=2hlZkhQM6SU:nYUCHNrhba0: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=2hlZkhQM6SU:nYUCHNrhba0: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/2hlZkhQM6SU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/07/load-based-teaming/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/07/load-based-teaming/</feedburner:origLink></item>
		<item>
		<title>DPM scheduled tasks</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/7NTBJCbNY04/</link>
		<comments>http://frankdenneman.nl/2010/07/dpm-scheduled-task/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 12:00:10 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[Scheduled task]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1041</guid>
		<description><![CDATA[vSphere 4.1 introduces a lot of new features and enhancements of the existing features, one of the hidden gems I believe is the DPM enable and disable scheduled tasks. The DPM “Change cluster power settings” schedule task allows the administrator to enable or disable DPM via an automated task. If the admin selects the option [...]]]></description>
			<content:encoded><![CDATA[<p>vSphere 4.1 introduces a lot of new features and enhancements of the existing features, one of the hidden gems I believe is the DPM enable and disable scheduled tasks. The DPM “Change cluster power settings” schedule task allows the administrator to enable or disable DPM via an automated task. If the admin selects the option DPM off, vCenter will disable all DPM features on the selected cluster and all hosts in standby mode will be powered on automatically when the scheduled task runs.  </p>
<p>This option removes one of the biggest obstacles of implementing DPM. One of the main concerns administrators have, is the incurred (periodic) latency when enabling DPM. If DPM place an ESX host in standby mode, it can take up to five minutes before DPM decides to power up the ESX host again. During this (short) period of time, the environment experiences latency or performance loss, usually this latency occurs in the morning. </p>
<p>It’s common for DPM to place ESX hosts in standby mode during the night due to the decreased workloads, when the employees arrive in the morning the workload increases and DPM needs to power on additional ESX hosts. The period between 7:30 and 10:00 is recognized as one of the busiest periods of the day and during that period the IT department wants their computing power lock, stock and ready to go. </p>
<p>This scheduled task will give the administrators the ability to disable DPM before the workforce arrive. Because the ESX hosts remain powered-on until the administrator or a DPM scheduled task enables DPM again, another schedule can be created to enable DPM after the periods of high workload demand ends. To create a scheduled task to disable DPM, open vCenter, go to Home>Management>Scheduled Tasks (CTRL-Shift-T) and select the task “Change cluster power settings”. </p>
<p><img src="http://frankdenneman.nl/wp-content/uploads/2010/07/scheduled-task-300x107.png" alt="" title="scheduled task" width="300" height="107" class="aligncenter size-medium wp-image-1042" /></p>
<p>Select the default power management for the cluster , <em>On</em> or <em>Off</em> and configure the task.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2010/07/schedule.png"><img src="http://frankdenneman.nl/wp-content/uploads/2010/07/schedule-300x270.png" alt="" title="schedule" width="300" height="270" class="aligncenter size-medium wp-image-1048" /></a></p>
<p>For example, by scheduling a DPM disable task on every weekday at 7:00, the administrator is ensured that all ESX hosts are powered on before 8 o’clock every weekday in advance of the morning peak, rather than have to wait for DPM to react to the workload increase.  </p>
<p>By scheduling the DPM disable task more than one hour in advance of the morning peak, DRS will have the time to rebalance the virtual machine across all active hosts inside the cluster and Transparent Page Sharing process can collapse the memory pages shared by the virtual machines on the ESX hosts. By powering up all ESX hosts early, the ESX cluster will be ready to accommodate load increases.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=7NTBJCbNY04:zbEHkWvf5Dk: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=7NTBJCbNY04:zbEHkWvf5Dk: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/7NTBJCbNY04" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/07/dpm-scheduled-task/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/07/dpm-scheduled-task/</feedburner:origLink></item>
		<item>
		<title>VM to Hosts affinity rule</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/280g3ZKsP-U/</link>
		<comments>http://frankdenneman.nl/2010/07/vm-to-hosts-affinity-rule/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 07:58:19 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1028</guid>
		<description><![CDATA[VMware vSphere 4.1 introduces a new affinity rule, called &#8220;Virtual Machines to Hosts&#8221; (VM-Host). This new rule is available in vSphere 4.1 DRS clusters in addition to the existing (anti) affinity rule, which is now called VM-VM affinity rule.  The new VM-Host affinity rule provides the ability of placing a group of virtual machines [...]]]></description>
			<content:encoded><![CDATA[<p>VMware vSphere 4.1 introduces a new affinity rule, called &#8220;Virtual Machines to Hosts&#8221; (VM-Host). This new rule is available in vSphere 4.1 DRS clusters in addition to the existing (anti) affinity rule, which is now called VM-VM affinity rule.  The new VM-Host affinity rule provides the ability of placing a group of virtual machines on a subset of hosts inside the cluster. The new rule can very useful in blade system environments and for honoring ISV license requirements. Rules can be created to ensure that virtual machines run on ESX hosts in different blade chassis for availability reasons, or the complete opposite and limit the virtual machines to ESX hosts inside a blade chassis to optimize network speeds by keeping network traffic inside the blade chassis. VM-host are also very useful to fulfill the requirements of special ISV license models as well, for example restricting Oracle database virtual machines to run only on ESX hosts which are licensed by Oracle.</p>
<p><strong>Difference between VM-Host affinity rules and VM-VM rules</strong><br />
The VM-host affinity rule differ from the VM-VM rule, A VM-Host (anti) affinity rule specify the (anti) affinity between a group of virtual machines and a group of ESX hosts inside the cluster, whether a VM-VM (anti) affinity rule only specify the (anti) affinity between individual virtual machines.<br />
Components.</p>
<p>A virtual machine to host affinity rule exists out of three components:</p>
<p>•	Virtual machine DRS group<br />
•	ESX host DRS group<br />
•	Designation – “Must” affinity\anti-affinity or “Should” affinity\anti-affinity</p>
<p>Virtual machine DRS groups and ESX host DRS Group are quite self-explanatory so let’s dive into the designations component straight away.</p>
<p><strong>Designations</strong><br />
Two different types of VM-Host rules are available, a VM-Host affinity rule can either be a “must” rule or a “should” rule. The must-rule is a mandatory rule for HA, DRS and DPM, it confines or prevent the virtual machines to run on the ESX hosts specified in the ESX host DRS Group.<br />
The “should” rule is a preferential rule for DRS and DPM and expresses a preference. DRS and DPM use their best effort to try to confine or prevent the virtual machines from running on the ESX host they are affined to, but DRS and DPM can violate “should” rules if it compromises certain key operations, HA is not aware of preferential rules because DRS will not communicate these rules to HA.<br />
HA, DRS and DPM must take the mandatory rules into account when generating or executing operations. HA, DRS and DPM will never take any action that result in the violation of mandatory affinity rules. Because of this, mandatory rules place more constraints on VM mobility, making it more difficult for DRS to balance load and enforce resource allocation policies, HA and DPM operations are constrained as well, for example, mandatory rules will;</p>
<p>•	Limit DRS in selecting hosts to load-balance the cluster<br />
•	Limit HA in selecting hosts to power up the virtual machines<br />
•	Limit DPM in selecting hosts to power down </p>
<p>Due its limiting behavior, it is recommended to use mandatory rules sparingly and only for specific cases, such as licensing requirements.  Preferential rules can be used to meet availability requirements such as separating virtual machines between blade centers.  </p>
<p><strong>DRS and mandatory rules</strong><br />
DRS takes mandatory rules into account when generating load-balance recommendations. If a rule is created and the current virtual machine placement is in violation with the rule, DRS will create a priority one recommendation (five stars) and executes the recommendation if DRS is set to fully automatic. DRS will not generate recommendation that will violate the rule, it will not migrate virtual machines to or from an ESX server, even if places the source ESX host into maintenance mode. VMotion will reject the operation as well if it detects that the operation is in violation of the mandatory rule</p>
<p>If a reservation is set on the virtual machine, DRS takes both reservation and mandatory affinity rule into account. Both requirements must be satisfied during placement or power on. If DRS is unable to honor either one of the requirements the virtual machine is not powered on or migrated to the proposed destination host. For example if a new rule is created and the current virtual machine placement is in violation of the rule, it can only migrate to a new host if the virtual machine memory reservation can be satisfied on the new host, if this is not possible, DRS will not generate the recommendation.</p>
<p>If a rule is created that conflict with another active, the older rule overrules the newer rule and DRS will disable the new rule.</p>
<p>As you can imagine that mandatory affinity rules can complicate troubleshooting in certain scenarios for example, why a virtual machine is not migrated from a highly utilized host to an alternative lightly utilized host in the cluster.</p>
<p><strong>DPM</strong><br />
DPM does not place an ESX host into standby mode if it will violate the mandatory rule and will power-on ESX hosts if these are needed to meet the requirements of the mandatory riles.</p>
<p><strong>High Availability</strong><br />
Due to the DRS-HA integration in vSphere 4.1, HA respects mandatory (must) rules. During an ESX host failure event, HA ask DRS to supply the list of hosts and places the virtual machines only on the compatible host, i.e. the host that are allowed by the mandatory rules. HA is unaware of the preferential (should) rules, so HA might unknowingly violate the rule during placement of virtual machines after an ESX failure, but the violation will be corrected by the next DRS invocation.<br />
Let’s take a look at a configuration which I think is going to be widely implemented soon, the Oracle Must affinity rule.</p>
<p>1.	Place all Oracle virtual machines in a Cluster VM DRS group. (vm01, vm03, vm11, vm20)<br />
2.	Place all Oracle licensed ESX host in a Cluster Host DRS Group (ESX07, ESX08, ESX15, ESX16)<br />
3.	Select “Must run on Host in Group” </p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2010/07/vm-host1.png"><img src="http://frankdenneman.nl/wp-content/uploads/2010/07/vm-host1-300x215.png" alt="" title="vm-host" width="300" height="215" class="aligncenter size-medium wp-image-1034" /></a></p>
<p>In this scenario, DRS never places, migrates, or recommend placement of a host-affined virtual machine on a host to which is not listed in the Cluster Host DRS Group (ESX01 &#8211; ESX06 &#038; ESX09-ESX14). This means that DRS will never ever place the virtual machine on an unlicensed host, not for maintenance mode, not for DPM power saving and not after an ESX host failure event.</p>
<p>This virtual machine to host affinity rule make it possible to run oracle inside big clusters without having to license all the ESX host. I have been involved in a few projects where Oracle license was a constraint. Normally separate smaller clusters were deployed for Oracle database virtual machines, increasing both OPEX and CAPEX of the environment. These rules allows the Oracle virtual machines to run inside the cluster with other virtual machines without having to license all the ESX host inside the cluster. Hereby making the lives easier of both the architect and the administrator. vSphere 4.1, you gotta love it!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=280g3ZKsP-U:T50nn_E7NpE: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=280g3ZKsP-U:T50nn_E7NpE: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/280g3ZKsP-U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/07/vm-to-hosts-affinity-rule/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/07/vm-to-hosts-affinity-rule/</feedburner:origLink></item>
		<item>
		<title>VMware Fault Tolerance and DPM</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/TYo-jAKfDSM/</link>
		<comments>http://frankdenneman.nl/2010/06/vmware-fault-tolerance-and-dpm/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 13:45:25 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[Fault Tolerance]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/2010/06/vmware-fault-tolerance-and-dpm/</guid>
		<description><![CDATA[Some requirements of the design I am working on is to be as “green” as possible and to offer the highest level of redundancy for business continuity. Enter VMware Fault Tolerance (FT) and Distributed Power Management (DPM)! When mixing multiple features, the requirements of one feature can have impact on- or even worse becomes a [...]]]></description>
			<content:encoded><![CDATA[<p>Some requirements of the design I am working on is to be as “green” as possible and to offer the highest level of redundancy for business continuity. Enter VMware Fault Tolerance (FT) and Distributed Power Management (DPM)! When mixing multiple features, the requirements of one feature can have impact on- or even worse becomes a constraint of the other feature.  </p>
<p>DPM works together with DRS to VMotion virtual machines onto fewer ESX host servers when the resource demand drops below a specific threshold. In the current release of vSphere, DRS does not consider the FT-enabled virtual machines during load balancing operations and DRS will not migrate FT-enabled virtual machine automatically, because of this DPM cannot power down these hosts until the administrator will manually VMotion the primary or secondary virtual machines to another ESX host server.</p>
<p>Fortunately when enabling DPM on the cluster, you can disable DPM at ESX host level. Due to the current limitations of DRS with VMware Fault Tolerance, it is recommended to disable DPM on at least two ESX server host to act as host for FT-enabled virtual machines. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=TYo-jAKfDSM:Yb0GEIcsQU8: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=TYo-jAKfDSM:Yb0GEIcsQU8: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/TYo-jAKfDSM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/06/vmware-fault-tolerance-and-dpm/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/06/vmware-fault-tolerance-and-dpm/</feedburner:origLink></item>
		<item>
		<title>Memory reclaimation, when and how?</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/6A57tsPMhKw/</link>
		<comments>http://frankdenneman.nl/2010/06/memory-reclaimation-when-and-how/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 09:14:55 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[ballooning]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1011</guid>
		<description><![CDATA[After discussing with Duncan the performance problem presented by @heiner_hardt , we discussed the exact moment the VMkernel decides which reclamation technique it will use and specific behaviors of the reclamation techniques. This article supplements Duncan&#8217;s article on Yellow-bricks.com. 
Now let&#8217;s begin with when the kernel decides to reclaim memory and see how the kernel [...]]]></description>
			<content:encoded><![CDATA[<p>After discussing with Duncan the performance problem presented by @heiner_hardt , we discussed the exact moment the VMkernel decides which reclamation technique it will use and specific behaviors of the reclamation techniques. This article supplements Duncan&#8217;s <a href="http://www.yellow-bricks.com/2010/06/10/is-this-vm-actively-swapping-helping-heiner_hardt/">article</a> on Yellow-bricks.com. </p>
<p>Now let&#8217;s begin with when the kernel decides to reclaim memory and see how the kernel reclaims memory. So host physical memory is reclaimed based on four &#8220;free memory states&#8221;, each with a corresponding threshold. Based on the Threshold, the VMkernel chooses which reclamation technique it will use to reclaim memory from virtual machines.</p>
<table id="hor-zebra">
<tr class="odd">
<td><strong>Free Memory state</strong></td>
<td><strong>Threshold</strong></td>
<td><strong>Reclamation technique</strong></td>
</tr>
<tr>
<td>High</td>
<td>6%</td>
<td>None</td>
</tr>
<tr class="odd">
<td>Soft</td>
<td>4%</td>
<td>Ballooning</td>
</tr>
<tr>
<td>Hard</td>
<td>2%</td>
<td>Ballooning and Swapping</td>
</tr>
<tr class="odd">
<td>Low</td>
<td>1%</td>
<td>Swapping</td>
</tr>
</table>
<p>The high memory state has a threshold hold of 6%, that means that 6% of the ESX host physical memory minus the service console memory must be free. When the virtual machines use less than 94% of the host physical memory, the VMkernel will not reclaim memory because there is no need to, but when the memory usage starts to fall towards the free memory threshold the VMkernel will try to balloon memory. The VMkernel selects the virtual machines with the largest amounts of idle memory (detected by the idle memory tax process) and will ask the virtual machine to select it&#8217;s idle memory pages. Now to do this the guest os needs to swap those pages, so if the guest is not configured with sufficient swap space, ballooning can become problematic. Linux behaves pretty worse in this situation, invoking OOM (out-of memory) killer when its swap space is full and starts to randomly kill processes.</p>
<p>Back to the VMkernel, in the High and Soft state, ballooning if favored over swapping. If it ESX server cannot reclaim memory by ballooning in time before it reaches the Hard state, the ESX turns to swapping. Swapping has proven to be a sure thing within a limited amount of time. Opposite of the balloon driver, which tries to understand the needs of the virtual machine let the guest decides whether and what to swap, the swap mechanism just brutally picks pages at random from the virtual machine, this impacts the performance of the virtual machine but will help the VMkernel to survive.</p>
<p>Now the fun thing is, before the VMkernel detects the free memory is reaching the soft threshold, it will start to request pages through the balloon driver (vmmemctl), this is because it takes time for the Guest OS to respond to the vmmemctl driver with suitable pages. By starting prematurely, the VMkernel tries to avoid the situation that it will reach the Soft state or worse. So you can see ballooning occurring sometimes before the Soft state is reached. (between 6 and 4% free memory)</p>
<p>One exception is the virtual machine memory limit, if a limit is set on the virtual machine, the VMkernel always tries to balloon or swap pages of the virtual machine after reaching its limit, even if the ESX host has enough free memory available.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=6A57tsPMhKw:s8Sl22pd6Hg: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=6A57tsPMhKw:s8Sl22pd6Hg: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/6A57tsPMhKw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/06/memory-reclaimation-when-and-how/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/06/memory-reclaimation-when-and-how/</feedburner:origLink></item>
		<item>
		<title>Reservations and CPU scheduling</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/8eMNC9DZ-Q4/</link>
		<comments>http://frankdenneman.nl/2010/06/reservations-and-cpu-scheduling/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 13:55:17 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Resource Management]]></category>
		<category><![CDATA[CPU scheduling]]></category>
		<category><![CDATA[MHzperShare]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=990</guid>
		<description><![CDATA[Most of my resource management articles focus more on the behavior of memory management than on CPU management. Mainly because the Memory scheduler within ESX is such an interesting complex system which comprises of memory allocation, swapping and reclamation with algorithms such as Idle Memory Tax and mechanisms like ballooning and swapping. But lately it [...]]]></description>
			<content:encoded><![CDATA[<p>Most of my resource management articles focus more on the behavior of memory management than on CPU management. Mainly because the Memory scheduler within ESX is such an interesting complex system which comprises of memory allocation, swapping and reclamation with algorithms such as Idle Memory Tax and mechanisms like ballooning and swapping. But lately it seems that CPU scheduling seems to attract more and more my attention. The discussion Duncan and I had prior to posting his <a href="http://www.yellow-bricks.com/2010/05/18/limiting-your-vcpu/">article</a> about how CPU limits actually sparked the interest how CPU scheduling works when setting reservations, so additional to Duncan excellent article, I want to take a closer look how the ESX CPU scheduler handles CPU reservations and shares and show why CPU scheduling is more fair that memory management.</p>
<p>Similar to memory, the resource allocation settings, reservations, shares and limits can be set on CPU level. Limits and shares have similar behavior on CPU as well as Memory. Reservation act differently, let&#8217;s take a quick look at the resource allocation settings:</p>
<p style="padding-left: 30px;"><strong>Shares:</strong>Shares indicate the proportional value of the entity on the same hierarchical level. If everything else is equal, reservations, limits and active utilization, the virtual machine that is allocated twice as many shares as another virtual machine is entitled to consume twice as many CPU cycles.</p>
<p style="padding-left: 30px;"><strong>Limit:</strong> A limit is a mechanism to restrict physical resource usage of the virtual machine. A limit ensures that the VM will never receive more CPU cycles than specified, even if extra cycles are available on the host.</p>
<p style="padding-left: 30px;"><strong>Reservation:</strong> A reservation is a guarantee of the specified amount of physical resources regardless of the total number of shares in his environment.</p>
<p>Now reservations act differently when setting it on a CPU than setting it on memory. When the virtual machine does not use its CPU cycles, these CPU cycles are redistributed to other active virtual machines, so unused reservations are not wasted. Contrary to memory management, when the memory will not be reclaimed by the scheduler once the virtual machine touched the pages.</p>
<p>By redistributing available CPU cycles and not letting the virtual machine hoard CPU resources, the VMkernel tries to properly divide the resources and achieve better fairness among virtual machines and improve utilization of the resources. To achieve both goals and divide the CPU resources among virtual machines the CPU scheduler calculates a <code>MHzPerShare</code> metric. This metric tries to identify which virtual machines are &#8220;ahead&#8221; of their entitlement and which virtual machines are &#8220;behind&#8221; and do not fully utilize their entitlement.</p>
<p style="text-align: center;"><code>MHzPerShare = MHzUsed / Shares</code></p>
<p><code>MHzUsed</code> is the current utilization of the virtual machine measured in Megahertz.<br />
Shares is the current configured amount of shares of the virtual machine.</p>
<p>For example, the virtual machine is using 2500 MHZ and has 1000 shares, this means that the MHzPershare value is 2.5.The VMkernel will calculate the MHzPerShare number of each active virtual machine and the virtual machine with the lowest MHzPerShare value will have the highest priority of running on the CPU. If the virtual machine with the lowest MHzPerShare value decides not to use it right to allocate the cycles, the cycles can be used by the virtual machine with the next lower MHzPerShare value.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2010/06/claimdistribution.png"><img class="aligncenter size-medium wp-image-995" title="claimdistribution" src="http://frankdenneman.nl/wp-content/uploads/2010/06/claimdistribution-300x203.png" alt="MHzPerShare distribution" width="300" height="203" /></a></p>
<p>Although not shown, reservations play a important part in this calculation. As mentioned before, reservations overrule shares and guarantee the amount of physical resources regardless of the amount of shares. This means that the virtual machine always can use the CPU cycles specified in its reservation, even if the virtual machine has a greater MHzPerShare value. So how exactly do reservations and shares interact with each other when it comes to calculating the MHzPerShare value?</p>
<p>For example:</p>
<p>In a 6 GHz system, 1 virtual machine is running and 2 are powered on, VM1 is running a memory intensive app and doesn&#8217;t really care much about CPU cycles, the virtual machine is configured with 1000 CPU shares and no reservation. The 2 other virtual machines run CPU intensive apps and are currently competing for resources. VM2 has a reservation of 2250 MHz and has a default share setting of 1000 shares, the other CPU intensive virtual machine, VM3 is equipped with 2vcpu&#8217;s and therefore receives 2000 shares, but the administrator didn&#8217;t set any reservation.</p>
<p>Now VM1 is running at 500 MHz, with its 1000 shares, the MHzPerShare value equals 0.5. Because VM2 is in need of CPU cycles, it immediately utilizes its reservations and &#8220;occupies&#8221; all 2250 MHz, its<br />
MHzPerShare value equals 2.25 (2250/1000).<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2010/06/stage2.png"><img class="aligncenter size-medium wp-image-996" title="stage2" src="http://frankdenneman.nl/wp-content/uploads/2010/06/stage2-284x300.png" alt="" width="284" height="300" /></a></p>
<p>Now because VM3 doesn&#8217;t have any reservation and is in need of CPU cycles, the VMkernel looks at its MHzPerShare value to decide how many CPU cycles it can use before distributing excess CPU cycles to other virtual machines. The kernel will distribute cycles to VM3 until it reaches the same MHzPerShare value of VM2, which is 2.25. In theory this means that the VMkernel will allocate 2000 x 2.25 = 4500 MHz before looking at another VM. Due to the fact that CPU scheduler already allocated 500 MHz to VM1 and 2250 MHz to VM2 of the available 6GHz, it can allocate VM3 3250 Mhz.<br />
<a href="http://frankdenneman.nl/wp-content/uploads/2010/06/stage3.png"><img class="aligncenter size-medium wp-image-997" title="stage3" src="http://frankdenneman.nl/wp-content/uploads/2010/06/stage3-300x291.png" alt="" width="300" height="291" /></a></p>
<p>Because VM2 has a reservation it can allocate up to its reservation even when initially VM3 has a lower MHzPerShare value (0) and the CPU cycle requirements of VM1 are met at 500MHz. However due to the fairness principle VM2&#8217;s own MHzPerShare value influences the VMkernel&#8217;s decision how much cycles to allocate to VM3 before considering allocating additional cycles to vm2 again.</p>
<p>Now for some reason the application in VM3 is leveling out at 2000 MHz, VM1 is still using 500 MHz and VM2 is in desperate need of extra CPU cycles. No settings are changed so VM1 and VM2 has a 1000 shares each and VM2 has a reservation of 2250MHz, VM3 has 2000 shares and no reservation is set.</p>
<p>The VMkernel will satisfy the request of VM1, resulting in a MHzPerShare value of 0.5. VM2 claims its reservation and utilizes 2250 MHz resulting in a MHzPerShare value of 2.25, VM3 can allocate up to 4500 before reaching the MHzPerShare value of VM3, but stops consuming above 2000Mhz, ending up with a MHzPerShare value of 2000/2000 = 1, this means that inside the 6GHz host 1250 cycles are available.</p>
<p>The CPU scheduler will shop around with these available cycles and see which VM is interested. Now the VMkernel will offer the cycles to the virtual machines in the increasing order of MHzPerShare, so first it will ask VM1 (0.5), because its CPU request is satisfied, it will forfeit its claim, VM2 also forfeits this claim, so VM3 will happily accepts the remaining cycles and its resource usage will increase to 3500 MHz.</p>
<p>So here you have it, both shares and reservation interact or even battle with each other to allocate CPU cycles for the virtual machines. Shares are by many perceived as an inferior resource allocation setting, hopefully this demonstrates the power of shares, it can in combination with utilization become a very important factor in ESX resource management.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=8eMNC9DZ-Q4:iBLLmM2MQ7w: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=8eMNC9DZ-Q4:iBLLmM2MQ7w: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/8eMNC9DZ-Q4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/06/reservations-and-cpu-scheduling/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/06/reservations-and-cpu-scheduling/</feedburner:origLink></item>
		<item>
		<title>Virtual Machine memory overhead</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/Jm1ohuDzGbk/</link>
		<comments>http://frankdenneman.nl/2010/05/virtual-machine-memory-overhead/#comments</comments>
		<pubDate>Mon, 31 May 2010 15:49:22 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Resource Management]]></category>
		<category><![CDATA[memory overhead]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=981</guid>
		<description><![CDATA[Every virtual machine running on an ESX host consumes some memory overhead additional to the current usage of its configured memory. This extra space is needed by ESX for the internal VMkernel datastructures like virtual machine frame buffer  and mapping table for memory translation (mapping physical virtual machine memory to machine memory). Two kinds [...]]]></description>
			<content:encoded><![CDATA[<p>Every virtual machine running on an ESX host consumes some memory overhead additional to the current usage of its configured memory. This extra space is needed by ESX for the internal VMkernel datastructures like virtual machine frame buffer  and mapping table for memory translation (mapping physical virtual machine memory to machine memory). Two kinds of virtual machine overhead exists:</p>
<p><strong>Static overhead</strong><br />
Static overhead is the minimum overhead that is required for the virtual machine startup. DRS and the VMkernel uses this metric for admission control and VMotion calculations. The destination host must be able to back the virtual machine reservation and the static overhead otherwise the VMotion will fail.</p>
<p><strong>Dynamic overhead</strong><br />
Once the virtual machine has started up, the virtual machine monitor (VMM) can request additional memory space. The VMM will request the space, but the VMkernel is not required to supply it. If the VMM does not obtain the extra memory space, the virtual machine will continue to function but this can lead to performance degradation. The VMkernel treats virtual machine overhead reservation the same as <a href="http://frankdenneman.nl/2009/12/impact-of-memory-reservation/">VM-level memory reservation</a> and it will not reclaim this memory once it used. </p>
<p><strong>Overhead memory used in admission control</strong><br />
As mentioned before, DRS and the VMkernel will not allow the virtual machine to be powered up if reservations cannot be guaranteed, this means that the effective memory reservation for a virtual machine is the user configured memory reservation (VM-level reservation) plus the overhead reservation.</p>
<p><strong>Resource pool memory reservations</strong><br />
This means that during the design phase of a resource pool, the memory overhead of a virtual machine must be included in the calculation of the memory reservation specified on the resource pool. The behavior of dynamic overhead must also be taken into account.<br />
Table 3.2 of the vSphere resource management guide list the overhead memory on virtual machines. <a href="http://pubs.vmware.com/vsp40_i/wwhelp/wwhimpl/common/html/wwhelp.htm#href=resmgmt/r_overhead_memory_on_virtual_machines.html#1_7_9_9_10_1&#038;single=true">VMware vSphere Online Library &#8211; Table 3.2 overhead memory</a></p>
<p>Please be aware of the fact that memory overheads are growing with each new release of ESX, so keep this in mind when upgrading to a new version. Verify the documentation of the virtual machine memory overhead and check the specified memory reservation on the resource pool.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=Jm1ohuDzGbk:cznYunNoZdI: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=Jm1ohuDzGbk:cznYunNoZdI: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/Jm1ohuDzGbk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/05/virtual-machine-memory-overhead/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/05/virtual-machine-memory-overhead/</feedburner:origLink></item>
		<item>
		<title>Re: Swapping</title>
		<link>http://feedproxy.google.com/~r/frankdenneman/ZjZC/~3/4qDXMJf5mBQ/</link>
		<comments>http://frankdenneman.nl/2010/05/re-swapping/#comments</comments>
		<pubDate>Wed, 26 May 2010 12:00:58 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[Memory Swapping]]></category>
		<category><![CDATA[SWCUR]]></category>
		<category><![CDATA[SWTGT]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=968</guid>
		<description><![CDATA[Recently we had a discussion about swapping, as Duncan mentioned in his article &#8220;Swapping&#8221; Swapped memory might not have impact on the performance of the virtual machine. 
There are scenarios when pages can be swapped out without experiencing performance problems. One common scenario is a bootstorm, i.e startup of many virtual machines at once. Bootstorms [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we had a discussion about swapping, as Duncan mentioned in his article &#8220;<a href="http://www.yellow-bricks.com/2010/05/26/swapping/ ">Swapping</a>&#8221; Swapped memory might not have impact on the performance of the virtual machine. </p>
<p>There are scenarios when pages can be swapped out without experiencing performance problems. One common scenario is a bootstorm, i.e startup of many virtual machines at once. Bootstorms can happen when a host failure occurs and High Availability powers on the virtual machines on other host, but are also frequently encountered in windows shops after Patch Tuesday, when the operations team need to obey a limited maintenance window timeslot.</p>
<p>When a virtual machine guest OS starts, there will be a period of time before the VMware tools is loaded and the vmmemctl (balloon driver) is operational. During this timeslot the operating system can access a large portion of its configured memory. Windows systems are notorious for this as they tend to touch every page until it reaches the end of their configured memory. Unfortunately page sharing due to Transparent Page Sharing (TPS) is also at a minimum. Redundant memory pages are not collapsed immediately when a virtual machine is started. TPS is a VMkernel background process and uses a cycle of 60 minutes (Mem.ShareScanTime) to scan a virtual machine for page sharing opportunities.</p>
<p>During these bootstorms many virtual machines are powered on at the same time, all claiming lots of memory or even their maximum configured memory (windows). This behavior leads to a spike in memory usage and without the help of the balloon driver and TPS, the ESX host needs to resort to swapping out memory.<br />
When referring to windows startup, windows will touch every page and this forces ESX to back all in machine memory (physical memory). These pages are filled with useless information and chances are that this might never be accessed by the virtual machine again. Now ESX will not proactively swap memory back in to physical memory when the memory pressure disappears. These pages will remain swapped until it is accessed by the virtual machine, at that point ESX will swap it into memory.</p>
<p>Swapping during the bootstorm will delay the boot process, but these swapped out pages will not cause any performance problems during normal operation.</p>
<p>As mentioned in Duncan&#8217;s &#8220;<a href="http://www.yellow-bricks.com/2010/05/26/swapping/ ">Swapping article</a>&#8220;, there are a few metrics that indicates that a virtual machine is swapping or has swapped before. When encountering swapped memory, check the metrics SWCUR (Swap current) and SWTGT (Swap target). If a bootstorm occurred it is likely to have a higher value at SWCUR than at the SWTGT. </p>
<p>The SWTGT indicates the desired amount of memory to be swapped out, this is determined by ESX by the resource entitlement calculation of the virtual machine. If there is no memory pressure, the swaptarget will be equal to 0, but because pages remain in the swap file until accessed, the SWCUR will indicate the remaining swapped out pages.</p>
<p>If memory contention does occur, ESX will attempt to make the SWCUR equal to the SWTGT (swap target).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/frankdenneman/ZjZC?a=4qDXMJf5mBQ:n9gkoqSpY2k: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=4qDXMJf5mBQ:n9gkoqSpY2k: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/4qDXMJf5mBQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/05/re-swapping/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://frankdenneman.nl/2010/05/re-swapping/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.409 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-07-29 05:36:19 -->
