<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Hypervisor.fr &#187; Noël</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=noel" rel="self" type="application/rss+xml" />
	<link>http://www.hypervisor.fr</link>
	<description>French Bare-Metal weblog</description>
	<lastBuildDate>Wed, 26 Jun 2024 22:42:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>#QuickDasAutoSlotSize Failover Capacity (Planning)</title>
		<link>http://www.hypervisor.fr/?p=5004</link>
		<comments>http://www.hypervisor.fr/?p=5004#comments</comments>
		<pubDate>Tue, 24 Dec 2013 17:16:10 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[capacity planning]]></category>
		<category><![CDATA[DRS]]></category>
		<category><![CDATA[FDM]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[Noël]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=5004</guid>
		<description><![CDATA[Depuis plusieurs mois maintenant, nous utilisons notre script HA AutoSlotSize sur un environnement composé de plusieurs gros cluster comme celui-ci :

Premier constat, le temps de compute des valeurs moyennes de cpu et ram est très important et c&#8217;est évidement proportionnel au nombre de nœuds. Pour optimiser ce script, nous nous somme rabattu sur les quickstats [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Depuis plusieurs mois maintenant, nous utilisons notre <a href="http://www.hypervisor.fr/?p=4283" target="_blank">script HA AutoSlotSize</a> sur un environnement composé de plusieurs gros cluster comme celui-ci :</p>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/AutoSlotSize/ha_quick_general.png" alt="" width="381" height="325" /></p>
<p style="text-align: justify;">Premier constat, le temps de compute des valeurs moyennes de cpu et ram est très important et c&#8217;est évidement proportionnel au nombre de nœuds. <strong>Pour optimiser ce script, nous nous somme rabattu sur <a href="http://pubs.vmware.com/vsphere-55/topic/com.vmware.wssdk.apiref.doc/vim.ResourcePool.Summary.QuickStats.html" target="_blank">les quickstats du resource pool</a> &#8220;racine&#8221; du cluster</strong> (<a href="http://www.hypervisor.fr/?p=4841" target="_blank">aka &#8220;resources&#8221;</a>). Ces valeurs étant basé sur les 5 dernières minutes d&#8217;activité (et non sur les 24 dernières heures comme le script original),<strong> il faut l&#8217;exécuter au moment de la journée où l&#8217;activité du cluster est la plus importante </strong>pour avoir des valeurs vraiment représentatives du workload. Le gros avantage de ces valeurs est qu&#8217;il n&#8217;est pas nécessaire de faire une requête dans les statistiques, elles sont <em>pré-computées</em> et disponibles sous forme de propriétés, on passe donc d&#8217;une exécution pouvant aller jusqu&#8217;à plusieurs minutes à 2 secondes par cluster. Comme dirait <a href="http://www.dailymotion.com/video/xxkxw_007-tu-peux-pas-test_fun" target="_blank">Mozinor</a>, &#8220;tu peux pas test&#8221;.</p>
<p style="text-align: justify;">Deuxième constat, le <a href="http://pubs.vmware.com/vsphere-55/topic/com.vmware.wssdk.apiref.doc/vim.cluster.DasConfigInfo.html#admissionControlPolicy" target="_blank">mode &#8220;slot size&#8221; d&#8217;admition control</a> ne tiens pas compte de l&#8217;overcommit. <a href="http://www.amazon.fr/VMware-vSphere-5-1-Clustering-Deepdive/dp/1478183411/ref=sr_1_1" target="_blank">Duncan et Frank l&#8217;explique en détail dans leur bouquin</a> mais voici un exemple encore plus parlant :</p>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/AutoSlotSize/ha_quick_slot_policy.png" alt="" width="412" height="202" /></p>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/AutoSlotSize/ha_quick_percent_policy.png" alt="" width="410" height="218" /></p>
<p style="text-align: justify;">3 hosts sur 12 (25%) en mode &#8220;slot size&#8221; contre 67% en mode &#8220;resources&#8221;. Dans ce dernier mode, HA tiens compte de la <strong>consommation réelle</strong> du cluster pour déterminer ce qu&#8217;il reste.</p>
<blockquote>
<p style="text-align: justify;">With the resources failover policy in place, vSphere HA uses the following calculations to control virtual machine migration in the cluster<br />
1. Calculate the total resource requirements for all powered-on virtual machines in the cluster.<br />
[...]</p>
</blockquote>
<p>Il est donc clair que sur des gros cluster avec de l&#8217;overcommit, le mode &#8220;slot size&#8221; est totalement inutilisable.</p>
<p>En attendant de déguster la dinde farcie aux marrons de tante Yolande, voici le oneliner powershell à deguster en amuse-bouche :</p>
<pre class="brush: powershell; title: ; notranslate">foreach ($cluster in (Get-View -ViewType ClusterComputeResource|?{$_.ConfigurationEx.DasConfig.Enabled})) {,($cluster|?{$_.host}|select @{n=&quot;mem&quot;;e={(($_|%{(Get-View $cluster.ResourcePool|?{$_.Parent -eq $cluster.Moref}).Summary.QuickStats.HostMemoryUsage/(Get-View -ViewType virtualmachine -SearchRoot $cluster.moref -Property Runtime.PowerState|?{$_.Runtime.PowerState -eq &quot;poweredOn&quot;}).count}))}}, @{n=&quot;cpu&quot;;e={(($_|%{((Get-View $cluster.ResourcePool|?{$_.Parent -eq $cluster.Moref}).Summary.QuickStats.OverallCpuUsage)/(Get-View -ViewType virtualmachine -SearchRoot $cluster.moref -Property Runtime.PowerState|?{$_.Runtime.PowerState -eq &quot;poweredOn&quot;}).count}))}}, @{n=&quot;vcpu&quot;;e={(Get-View -ViewType virtualmachine -SearchRoot $cluster.moref -Property Runtime.PowerState,Config.Hardware.NumCpu|?{$_.Runtime.PowerState -eq &quot;poweredOn&quot;}|Select @{n=&quot;vcpu&quot;;e={$_.Config.Hardware.NumCPU}}|Measure-Object -Average -Property vcpu).average}}|measure -average -property mem,cpu,vcpu|%{[math]::round($_.average,0)})|%{if (($_|measure -Sum).sum -ne ($cluster.ConfigurationEx.DasConfig.Option|?{$_.key -match &quot;das.slotCpuInMhz|das.slotMemInMB&quot;}|measure -Sum -Property value).sum -and ($_|measure -Sum).sum -gt &quot;64&quot;) {$cluster.ReconfigureComputeResource((New-Object VMware.Vim.ClusterConfigSpecEx -property @{dasConfig=(New-Object VMware.Vim.ClusterDasConfigInfo -property @{option=@((New-Object VMware.Vim.OptionValue -property @{key=&quot;das.vmMemoryMinMB&quot;;value=$_[0].tostring()});(New-Object VMware.Vim.OptionValue -property @{key=&quot;das.vmCpuMinMHz&quot;;value=$_[1].tostring()});(New-Object VMware.Vim.OptionValue -property @{key=&quot;das.slotMemInMB&quot;;value=$_[0].tostring()});(New-Object VMware.Vim.OptionValue -property @{key=&quot;das.slotCpuInMhz&quot;;value=$_[1].tostring()}))})}),$true)}}}</pre>
<p>Joyeux Noël à tous !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=5004</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
