<?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; FDM</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=fdm" 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>
		<item>
		<title>VMware HA datastore proxy</title>
		<link>http://www.hypervisor.fr/?p=4944</link>
		<comments>http://www.hypervisor.fr/?p=4944#comments</comments>
		<pubDate>Tue, 03 Dec 2013 08:31:22 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[datastore heartbeat]]></category>
		<category><![CDATA[FDM]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[hidden feature]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4944</guid>
		<description><![CDATA[Pendant le setupage du premier super stretched cluster maison en production avec notre cher confrère vmdude.fr, ce dernier a émis une judicieuse remarque sur la possibilité que notre design rende impossible le fonctionnement de Datastore Heartbeat:

When the master host in a vSphere HA cluster can not communicate with a slave host over the management network, the master [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Pendant le <em>setupage</em> du premier <a href="http://www.hypervisor.fr/?p=4878" target="_blank">super stretched cluster maison</a> en production avec notre cher confrère <a href="http://www.vmdude.fr/" target="_blank">vmdude.fr</a>, ce dernier a émis une judicieuse remarque sur la possibilité que notre design rende impossible le fonctionnement de <a href="http://pubs.vmware.com/vsphere-50/topic/com.vmware.vsphere.avail.doc_50/GUID-0502B198-F5F7-4101-969C-C5B6F364C678.html" target="_blank">Datastore Heartbeat</a>:</p>
<blockquote>
<p style="text-align: justify;">When the master host in a vSphere HA cluster can not communicate with a slave host over the management network, <strong>the master host uses datastore heartbeating</strong> to determine whether the slave host has failed, is in a network partition, or is network isolated.</p>
</blockquote>
<p style="text-align: justify;"><strong>Mais qu&#8217;en est il lorsque le master n&#8217;a pas accès au datastore en question ? </strong>C&#8217;est après une bonne séance de tests, en isolant volontairement un ESX du réseau de management, avec décorticage de logs que nous avons trouvé la réponse:</p>
<pre class="brush: bash; title: ; notranslate">
17:31:25.502Z [...] Marking slave host-145 as unreachable
17:31:25.502Z [...] [ClusterDatastore::RemoveMountHost] No longer proxying through host-145 for /vmfs/volumes/404021e9-b4550ea3
17:31:25.502Z [...] Releasing datastore /vmfs/volumes/404021e9-b4550ea3
17:31:25.502Z [...] [InventoryManagerImpl::NotifyDatastoreUnlockedLocally] Invoked for datastore (/vmfs/volumes/404021e9-b4550ea3).
[...]
[...]
17:31:26.513Z [...] [ClusterDatastore::CheckMasterDatastore] Acquiring remote datastore /vmfs/volumes/404021e9-b4550ea3
17:31:26.513Z [...] AcquireViaSlave: Selected slave host-240
17:31:26.513Z [...] AcquireViaSlave: Acquiring from slave host-240
[...]
[...]
17:31:26.614Z [...] [ClusterManagerImpl::ProcessAcquireDatastoreReply] path /vmfs/volumes/404021e9-b4550ea3
[...]
[...]
17:31:30.549Z [...] [ClusterSlave::UnreachableCheck] Waited 5 seconds for icmp ping reply for host host-145
17:31:30.549Z [...] [ClusterSlave::UnreachableCheck] Checking for Partition
[...]
[...]
17:32:08.803Z [...] [ClusterDatastore::ProcessReadHBReply] Failure for /vmfs/volumes/404021e9-b4550ea3 from slave host-240
17:32:08.803Z [...] [ClusterDatastore::UpdateSlaveHeartbeats] (NFS) host-145 @ host-145 is ALIVE
</pre>
<p style="text-align: justify;">Notre interprétation est que l&#8217;ESX que nous avons volontairement isolé (host-145) avait été désigné &#8220;proxy&#8221; car il avait accès à des datastores que le master ne pouvait pas atteindre. Lorsqu&#8217;il n&#8217;a plus été joignable, <strong>un autre slave (host-240) à été choisi pour remonter les informations de datastore heartbeating au master</strong> pouvant ainsi déterminer si le slave (host-145) était mort ou isolé . Grace à <a href="https://twitter.com/DuncanYB" target="_blank">Duncan Epping</a>, nous en avons eu la confirmation :</p>
<blockquote>
<p style="text-align: justify;"><strong>The proxying is designed for a situation where the master cannot see a specific datastore, but slaves can</strong>. In that case the proxy service is used by the master to allow certain actions to take place.</p>
</blockquote>
<p style="text-align: left;"><a href="http://files.hypervisor.fr/img/Stretched_Cluster/datastore_proxy.gif" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/Stretched_Cluster/datastore_proxy.gif" alt="" width="507" height="372" /></a></p>
<p style="text-align: justify;">Conclusion, même dans un cluster où la moitié des ESX ne sont pas connectés aux datastores de l&#8217;autre moitié, <strong>FDM est capable d&#8217;utiliser un (ou plusieurs ?) slave en tant que proxy pour assurer les fonctions du master</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4944</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stretched Cluster for Dummies</title>
		<link>http://www.hypervisor.fr/?p=4940</link>
		<comments>http://www.hypervisor.fr/?p=4940#comments</comments>
		<pubDate>Tue, 26 Nov 2013 11:39:17 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[FDM]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[SRM]]></category>
		<category><![CDATA[Visio]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4940</guid>
		<description><![CDATA[Pour ceux qui auraient besoin d&#8217;expliquer à leur DSI le design que nous avons détaillé dans notre précédent post, voici le fichier powerpoint (avec les commentaires) qui vous sauvera.

Vous avez probablement remarqué la ressemblance frappante avec les schémas de Frank Denneman et c&#8217;est tout à fait voulu. Frank a en effet démontré depuis longtemps l’intérêt [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Pour ceux qui auraient besoin d&#8217;expliquer à leur DSI le design que nous avons détaillé dans <a href="http://www.hypervisor.fr/?p=4878" target="_blank">notre précédent post</a>, voici <a href="http://files.hypervisor.fr/doc/StretchedCluster/VMware%20HA%20Stretched%20Cluster.ppt" target="_blank">le fichier powerpoint (avec les commentaires)</a> qui vous sauvera.</p>
<p><a href="http://files.hypervisor.fr/doc/StretchedCluster/VMware%20HA%20Stretched%20Cluster.ppt"><img class="aligncenter" src="http://files.hypervisor.fr/doc/StretchedCluster/StretchedCluster_S0_small.gif" alt="" width="364" height="506" /></a></p>
<p style="text-align: justify;">Vous avez probablement remarqué la ressemblance frappante avec les schémas de <a href="https://twitter.com/FrankDenneman" target="_blank">Frank Denneman</a> et c&#8217;est tout à fait voulu. <a href="http://frankdenneman.nl/2013/02/01/10-guidelines-for-creating-good-looking-diagrams/" target="_blank">Frank a en effet démontré depuis longtemps l’intérêt de ces schémas ultra épurés</a> avec le moins de texte possible et des couleurs très soft. D&#8217;ailleurs, c&#8217;est nettement plus dur à faire qu&#8217;il n&#8217;y parait&#8230;</p>
<p>Nous avons également produit <a href="http://files.hypervisor.fr/doc/StretchedCluster/VMware%20HA%20Stretched%20Cluster.pdf" target="_blank">une version pdf sans commentaires</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4940</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Testez VMware HA avec la cmdlet Stop-VM</title>
		<link>http://www.hypervisor.fr/?p=4930</link>
		<comments>http://www.hypervisor.fr/?p=4930#comments</comments>
		<pubDate>Wed, 20 Nov 2013 16:47:39 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[FDM]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[sso]]></category>
		<category><![CDATA[Wireshark]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4930</guid>
		<description><![CDATA[Nous découvrons par hasard l&#8217;existence  du paramètre &#8220;-kill&#8221; de la cmdlet Stop-VM :

Indicates that you want to stop the specified virtual machines by terminating their processes running on the ESX. You can use this parameter to stop a virtual machine that is not responding and cannot be stopped or restarted in other ways.

Cela ressemble fortement [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Nous découvrons par hasard l&#8217;existence  du paramètre &#8220;-kill&#8221; de la cmdlet <a href="http://pubs.vmware.com/vsphere-51/topic/com.vmware.powercli.cmdletref.doc/Stop-VM.html" target="_blank">Stop-VM</a> :</p>
<blockquote>
<p style="text-align: justify;">Indicates that you want to stop the specified virtual machines by terminating their processes running on the ESX. You can use this parameter to stop a virtual machine that is not responding and cannot be stopped or restarted in other ways.</p>
</blockquote>
<p style="text-align: justify;">Cela ressemble fortement à un kill des process vmx dans un <a href="http://kb.vmware.com/kb/1014165" target="_blank">shell, via esxtop ou esxcli</a> mais nécessiterai d’être connecté à l&#8217;ESXi plutôt qu&#8217;au vcenter :</p>
<blockquote>
<p style="text-align: justify;">To use the Kill parameter, you need to have a direct connection to ESX 4.1 or later.</p>
</blockquote>
<p style="text-align: justify;">Mais une fois de plus le <a href="http://en.wikipedia.org/wiki/Monkey_test" target="_blank">monkey test</a> à payé, nous testons la commande en étant connecté au vcenter et ça marche. la vm est littéralement killée sans aucune tache apparente dans le vcenter ni sur l&#8217;ESX et HA la restart :</p>
<p style="text-align: center;"><img class="aligncenter" src="http://files.hypervisor.fr/img/stop-vm/stop-vm-kill-cli.png" alt="" width="497" height="131" /></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/stop-vm/stop-vm-kill-ha.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/stop-vm/stop-vm-kill-ha.png" alt="" width="529" height="340" /></a></p>
<p style="text-align: justify;">Nous avons également vérifié avec Wireshark qu&#8217;aucune communication n&#8217;avait lieu entre le client PowerCLI et l&#8217;ESXi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4930</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
