<?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; alarm</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=alarm" 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>Happy Events</title>
		<link>http://www.hypervisor.fr/?p=5229</link>
		<comments>http://www.hypervisor.fr/?p=5229#comments</comments>
		<pubDate>Tue, 08 Jul 2014 07:16:00 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[esx.problem]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[syslog]]></category>
		<category><![CDATA[VMkernel Observations]]></category>
		<category><![CDATA[vob]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=5229</guid>
		<description><![CDATA[MAJ 08/01/2019 :  Pour les events vCenter, il faut prefixer avec &#8220;Vim.Event.&#8221; quand on joue avec l&#8217;EventManager.
Que ce soit pour créer de nouvelles alarmes dans le vCenter ou parce que certains messages d&#8217;alerte ne sont visible que dans les logs d&#8217;ESXi, nous avions autrefois recours à la page vCenter Events de Veeam pour trouver l&#8217;inspiration. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 08/01/2019</span> :  Pour les events vCenter, il faut prefixer avec &#8220;<strong>Vim.Event.</strong>&#8221; quand on joue avec l&#8217;EventManager.</em></p>
<p style="text-align: justify;">Que ce soit pour <a href="http://www.hypervisor.fr/?p=4048" target="_blank">créer de nouvelles alarmes dans le vCenter</a> ou parce que certains messages d&#8217;alerte ne sont visible que dans les logs d&#8217;ESXi, nous avions autrefois recours à <a href="http://www.veeam.com/support/vcEvents.html">la page vCenter Events de Veeam</a> pour trouver l&#8217;inspiration. Cette page n&#8217;étant plus mise à jour depuis fin 2011, nous avons chercher à produire un page similaire pour nos propres besoins et l&#8217;avons, depuis quelques temps, mise à dispo <a href="http://www.hypervisor.fr/?page_id=382" target="_blank">dans la rubrique &#8220;Links&#8221;</a>. Voici la commande PowerCLI qui vous permettra de générer la votre depuis votre vCenter (et plugins) :</p>
<pre class="brush: powershell; title: ; notranslate">(Get-View EventManager).Description.EventInfo|select @{n=&quot;event&quot;;e={if ($_.key -match &quot;^EventEx$|^ExtendedEvent$&quot;) {$_.FullFormat.split(&quot;|&quot;)[0]} else {$_.key}}},category,description,FullFormat|Out-GridView</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/vcEvents_GridView.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/vcEvents_GridView.png" alt="" width="523" height="401" /></a></p>
<p style="text-align: justify;">Nous nous sommes très largement inspiré <a href="http://www.lucd.info/2009/11/18/events-dear-boy-events-part-2/" target="_blank">d&#8217;un post de Luc pour ce oneliner</a> <img src='http://www.hypervisor.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Récemment, <a href="http://www.virtuallyghetto.com/2014/04/other-handy-vsphere-vobs-for-creating-vcenter-alarms.html" target="_blank">William à posté une liste similaire issue d&#8217;un fichier disponible en clair dans les librairies d&#8217;ESXi</a> mais nous avons remarqué qu&#8217;il ne contenait pas les événements vob.* que nous pouvions trouver dans les logs. Après quelques recherches, nous avons fini par faire un coup de <a href="http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx" target="_blank">strings</a> sur le binaire <strong>/usr/lib/vmware/vob/bin/vobd</strong> (issue d&#8217;un ESXi 5.5 1331820) pour en extraire les précieux messages. Nous avons ensuite &#8220;dédoublonné&#8221; la liste obtenue (vob.vmfs.heartbeat.timedout == esx.problem.vmfs.heartbeat.timedout par exemple) pour ne garder que le différentiel :</p>
<blockquote><p>vob.net.fence.port.fail<br />
vob.net.pg.uplink.transition.down<br />
vob.net.pg.uplink.transition.up<br />
vob.net.dvport.uplink.transition.down<br />
vob.net.dvport.uplink.transition.up<br />
vob.net.uplink.watchdog.timeout<br />
vob.net.migrate.bindtovmk.failed<br />
vob.net.portset.port.connect.fail<br />
vob.net.lacp.uplink.peer.noresponse<br />
vob.scsi.scsipath.add<br />
vob.scsi.scsipath.remove<br />
vob.scsi.scsipath.por<br />
vob.scsi.scsipath.badpath.unsafepe<br />
vob.scsi.scsipath.badpath.unreachpe<br />
vob.scsi.scsipath.pathstate.dead<br />
vob.scsi.scsipath.pathstate.off<br />
vob.scsi.scsipath.pathstate.on<br />
vob.scsi.scsipath.pathstate.standby<br />
vob.iscsi.connection.started<br />
vob.iscsi.connection.stopped<br />
vob.iscsi.connection.error<br />
vob.iscsi.target.async.event<br />
vob.iscsi.session.recovery.timeout<br />
vob.iscsi.target.permanently.removed<br />
vob.iscsi.isns.discovery.error<br />
vob.vmfs.lock.corruptondisk.v2<br />
vob.user.dcui.factory.network.restored<br />
vob.user.dcui.restarting.hostagents<br />
vob.user.dcui.restore.factory.defaults<br />
vob.user.dhclient.lease.offered.noexpiry<br />
vob.user.coredump.unconfigured2<br />
vob.user.coredump.capacity.insufficient<br />
vob.user.scratch.partition.size.small<br />
vob.user.scratch.partition.unconfigured<br />
vob.user.dcui.reboot.host<br />
vob.user.dcui.shutdown.host<br />
vob.user.esxcli.host.reboot<br />
vob.user.coredump.configured2<br />
vob.cpu.mce.log<br />
vob.cpu.nmi.ipi.vmkcs<br />
vob.cpu.nmi.ipi.unknowncs<br />
vob.cpu.nmi.ipi.halt<br />
vob.cpu.nmi.ipi.savebt<br />
vob.uw.core.dumped<br />
vob.external.warning<br />
vob.external.error<br />
vob.external.info<br />
vob.user.external.warning<br />
vob.user.external.error<br />
vob.user.external.info<br />
vob.visorfs.tardisk.readonlyfile<br />
vob.vsan.pdl.offline<br />
vob.vsan.pdl.online<br />
vob.vsan.net.gotip<br />
vob.vsan.net.noip<br />
vob.vsan.rdt.noip<br />
vob.vsan.net.no.connectivity<br />
vob.vsan.net.created<br />
vob.vsan.net.reconfigured<br />
vob.vsan.cmmds.disabled<br />
vob.vsan.cmmds.unloaded<br />
vob.vsan.cmmds.enabled<br />
vob.vsan.lsom.diskerror</p></blockquote>
<p>Pour les curieux, <a href="http://files.hypervisor.fr/doc/vobd.txt" target="_blank">voici la liste originale</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=5229</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vSphere 5.1 sans le webclient : DVS Rollback &#8211; MAJ</title>
		<link>http://www.hypervisor.fr/?p=4240</link>
		<comments>http://www.hypervisor.fr/?p=4240#comments</comments>
		<pubDate>Sun, 30 Sep 2012 23:44:57 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Kb]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[DVS]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[vSwitch]]></category>
		<category><![CDATA[webclient]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4240</guid>
		<description><![CDATA[MAJ 27.02.2013 : PowerCLI 5.1 R2 contient 2 nouvelles cmdlet permettant l&#8217;export des des distributed switch/portgroup dans un fichier.
Depuis leur apparition dans vSphere 4.0 en 2009 et jusqu&#8217;à aujourd&#8217;hui (malgré les nouvelles features exclusives), nous avons considéré les distributed switch comme des SPOF. L&#8217;idée de départ est très bonne mais la dépendance au vcenter nous paraissait trop [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 27.02.2013</span> : <a href="http://blogs.vmware.com/vipowershell/2013/02/powercli-5-1-release-2-now-available.html" target="_blank">PowerCLI 5.1 R2 contient 2 nouvelles cmdlet permettant l&#8217;export des des distributed switch/portgroup dans un fichier</a>.</em></p>
<p style="text-align: justify;">Depuis leur apparition dans vSphere 4.0 en 2009 et jusqu&#8217;à aujourd&#8217;hui (malgré les nouvelles features exclusives), nous avons considéré les distributed switch comme des <a href="http://en.wikipedia.org/wiki/Single_point_of_failure" target="_blank">SPOF</a>. L&#8217;idée de départ est très bonne mais la dépendance au vcenter nous paraissait trop importante, il était possible de lancer des actions irréversibles (sur le management network en particulier), de nombreuses kb vmware ont fait état de bugs assez gênant (<a href="http://kb.vmware.com/kb/1017558" target="_blank">surtout pour la v4.x</a>) et nous avons toujours été inquiet de ne pouvoir presque rien faire en direct sur un ESXi en cas de problème réseau. VMware admet même le pire scénario (<a href="http://www.hypervizor.com/diags/HyperViZor-Diags-vSphere-on-IBM-BCH-v2-0.pdf" target="_blank">qui poussait les plus prudents d&#8217;entre nous à mixer standard/distributed</a> lorsque le nombre de nic le permettait) dans  le &#8220;<a href="http://www.vmware.com/files/pdf/techpaper/Whats-New-VMware-vSphere-51-Network-Technical-Whitepaper.pdf" target="_blank">What’s New in vSphere 5.1 – Networking</a>&#8221; :</p>
<blockquote>
<p style="text-align: justify;">However, in the VDS environment, where multiple hosts are connected to a distributed switch, any network failure or misconfiguration of the management port group can potentially disconnect all hosts from the vCenter Server system.<br />
[...]<br />
In vSphere 5.0, the only way for the user to recover from this situation is by <strong>going to individual hosts and building a VSS with a proper management network configuration</strong>.</p>
</blockquote>
<p style="text-align: justify;"><span style="text-align: justify;"><strong><strong>vSphere 5.1 apporte, en plus d&#8217;une certaine maturité, toutes les fonctionnalités qui manquaient à DVS</strong></strong>. L&#8217;une d&#8217;entre elles, nommé </span><a style="text-align: justify;" href="http://pubs.vmware.com/vsphere-51/topic/com.vmware.vsphere.networking.doc/GUID-88B9F893-9739-47DF-9F1B-BAF139E554D6.html" target="_blank"><strong>Host Networking Rollback</strong></a><span style="text-align: justify;">, fera certainement changer d&#8217;avis les plus réticents (y compris nous-même). Pour faire court, cette feature </span><strong><strong>&#8220;déjoue&#8221; automatiquement la dernière reconfiguration du stack réseau (standard ou distributed) qui aboutie à une déconnexion du vCenter :</strong></strong></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/rollback/host_rollback.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/rollback/host_rollback.png" alt="" width="466" height="58" /></a></p>
<p style="text-align: justify;">Tout à fait logiquement, lorsque les ESXi recontactent le vCenter, le distributed switch annonce un &#8220;out of sync&#8221; du au rollback :</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://files.hypervisor.fr/img/rollback/dvswitch_out_of_sync.png" alt="" width="341" height="99" /></p>
<p style="text-align: justify;">C&#8217;est là qu&#8217;une autre nouvelle feature (le <strong>Distributed Switch Rollback</strong>) rentre en scène et permet de restaurer la précédente configuration d&#8217;un distributed switch ou distributed portgroup. Attention, <a href="http://pubs.vmware.com/vsphere-51/topic/com.vmware.wssdk.apiref.doc/vim.dvs.DistributedVirtualPortgroup.html" target="_blank">en cas de restart du vCenter, la dernière configuration est perdue</a>.</p>
<blockquote>
<p style="text-align: justify;">When you use a VMware distributed virtual switch, each time you reconfigure the switch, the Server saves the switch configuration before applying the updates. <strong>If the vCenter Server is restarted, the saved configuration is not preserved</strong> and the method does not return a configuration specification.</p>
</blockquote>
<p style="text-align: justify;">Cette fonctionnalité n&#8217;étant accessible qu&#8217;avec le webclient, voici comment procéder en PowerCLI :</p>
<pre class="brush: powershell; title: ; notranslate">(Get-VirtualPortGroup -Name TargetdvPortGroup|get-view).ReconfigureDVPortgroup($(Get-VirtualPortGroup -Name TargetdvPortGroup|get-view).DVPortgroupRollback($()))</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/rollback/dvportgroup_rollback.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/rollback/dvportgroup_rollback.png" alt="" width="500" height="29" /></a></p>
<pre class="brush: powershell; title: ; notranslate">(Get-VirtualSwitch -name TargetDistributedVirtualSwitch|get-view).ReconfigureDvs((Get-VirtualSwitch -name TargetDistributedVirtualSwitch|get-view).DVSRollback($()))</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/rollback/dvswitch_rollback.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/rollback/dvswitch_rollback.png" alt="" width="500" height="30" /></a></p>
<p style="text-align: justify;">Cette dernière action n&#8217;est d&#8217;ailleurs même pas possible en GUI, à moins d&#8217;avoir exporté la configuration du DVS dans un fichier.</p>
<p style="text-align: justify;">Bonus : nous vous avons concocté un petit onliner pour créer <strong>une alarme afin d’être averti en cas rollback automatique sur les ESXi</strong> attachés à un distributed switch :</p>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/rollback/dvswitch_rollback_alarm.png" alt="" width="340" height="43" /></p>
<pre class="brush: powershell; title: ; notranslate">(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;vSphere Distributed Switch Rollback Event&quot;;Description = &quot;Custom alarm to monitor vim.event.RollbackEvent Event&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.EventAlarmExpression -Property @{eventType = &quot;EventEx&quot;;EventTypeId = &quot;vim.event.RollbackEvent&quot;;objectType = &quot;HostSystem&quot;;status = &quot;yellow&quot;});)});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmare.local&quot;;Subject = &quot;[vAlarm] {targetName} NetworkRollback Event - {newStatus}&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;green&quot;;FinalState = &quot;yellow&quot;;Repeats = $false}))})});ActionFrequency = &quot;1800&quot;}))</pre>
<p style="text-align: justify;"><span style="text-decoration: line-through;">Nous n&#8217;avons pas encore trouvé une solution correcte pour exporter la configuration des distributed switch/portgroup dans un fichier (le web client renvois un zip <a href="http://blogs.vmware.com/vsphere/2011/09/whats-in-a-vib.html" target="_blank">ressemblant à un vib</a>), n’hésitez pas à nous remonter vos idées et/ou réactions sur le sujet.</span></p>
<p style="text-align: justify;">Pour finir, il est maintenant possible de reconfigurer &#8220;automatiquement&#8221; la partie management network (standard ou distributed) via la DCUI :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/rollback/host_net_reset.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/rollback/host_net_reset.png" alt="" width="492" height="74" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/rollback/host_net_reset_dvs.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/rollback/host_net_reset_dvs.png" alt="" width="493" height="100" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4240</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alarme vCenter pour les snapshots mal consolidés</title>
		<link>http://www.hypervisor.fr/?p=4089</link>
		<comments>http://www.hypervisor.fr/?p=4089#comments</comments>
		<pubDate>Thu, 30 Aug 2012 22:11:53 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[snapshot]]></category>
		<category><![CDATA[vmdk]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4089</guid>
		<description><![CDATA[A la sortie de vSphere 5, la fonctionnalité bien sympathique &#8221;consolidate&#8221; faisait son apparition dans le menu snapshot. Destinée à être utilisé lorsque une consolidation de snapshot (delete/delete all) s&#8217;est mal passée, elle est accompagnée d&#8217;un petit message d&#8217;avertissement au niveau de la VM :

Malheureusement il faut être sur la vm pour voir ce message, d&#8217;où l&#8217;idée d&#8217;un ami champion de badminton de faire [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">A la sortie de vSphere 5, <a href="http://blogs.vmware.com/vsphere/2011/08/consolidate-snapshots.html" target="_blank">la fonctionnalité bien sympathique &#8221;consolidate&#8221; faisait son apparition dans le menu snapshot</a>. Destinée à être utilisé lorsque une consolidation de snapshot (delete/delete all) s&#8217;est mal passée, elle est accompagnée d&#8217;un petit message d&#8217;avertissement au niveau de la VM :</p>
<p style="text-align: justify;"><img class="aligncenter" src="http://files.hypervisor.fr/img/vmdk_consolidation_issue.png" alt="" width="387" height="155" /></p>
<p style="text-align: justify;">Malheureusement il faut être sur la vm pour voir ce message, d&#8217;où l&#8217;idée d&#8217;un ami champion de badminton de faire une alarme pour remonter cet event !</p>
<p style="text-align: justify;">Ni une, ni deux, un petit oneliner qui va créer la précieuse alarme :</p>
<pre class="brush: powershell; title: ; notranslate">if (!((Get-View AlarmManager).GetAlarm((Get-Folder -NoRecursion |Get-View).MoRef)|?{(get-view $_).info.name -match &quot;VM disks consolidation is needed&quot;})){(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;VM disks consolidation is needed&quot;;Description = &quot;Custom alarm to monitor com.vmware.vc.VmDiskConsolidationNeeded event&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.EventAlarmExpression -Property @{eventType = &quot;EventEx&quot;;EventTypeId = &quot;com.vmware.vc.VmDiskConsolidationNeeded&quot;;objectType = &quot;VirtualMachine&quot;;status = &quot;red&quot;});(New-Object VMware.Vim.EventAlarmExpression -Property @{eventType = &quot;EventEx&quot;;EventTypeId = &quot;com.vmware.vc.VmDiskConsolidatedEvent&quot;;objectType = &quot;VirtualMachine&quot;;status = &quot;green&quot;}))});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmware.local&quot;;Subject = &quot;[vAlarm] {targetName} VM disks consolidation is needed - {newStatus}&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;yellow&quot;;FinalState = &quot;red&quot;;Repeats = $false}))})});ActionFrequency = &quot;1800&quot;}))}</pre>
<p>Comme d&#8217;hab, il faut remplacer &#8220;admin@vmare.local&#8221; par le mail qui vous convient et rajouter (ou remplacer) un envoi de trap snmp si besoin. Cette alarme s&#8217;auto-acquittera lorsque la consolidation sera réussie :</p>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/vmdk_consolidation.png" alt="" width="411" height="187" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4089</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alarme vCenter pour les datastore NFS</title>
		<link>http://www.hypervisor.fr/?p=4048</link>
		<comments>http://www.hypervisor.fr/?p=4048#comments</comments>
		<pubDate>Fri, 10 Aug 2012 14:17:34 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[NFS]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4048</guid>
		<description><![CDATA[Les datastores NFS sont un peu des laissés pour comptes quand il est question des alarmes de vCenter. En version 4.x il n&#8217;y a pas d&#8217;alarme par défaut et vmware précise dans une kb que l&#8217;event &#8220;vprob.vmfs.nfs.server.disconnect&#8221; n&#8217;est pas utilisable et en version 5.0 une autre kb fait état d&#8217;un bug de l&#8217;alarme &#8220;Storage connectivity&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Les datastores NFS sont un peu des laissés pour comptes quand il est question des alarmes de vCenter. En version 4.x il n&#8217;y a pas d&#8217;alarme par défaut et <a href="http://kb.vmware.com/kb/1032055" target="_blank">vmware précise dans une kb que l&#8217;event &#8220;vprob.vmfs.nfs.server.disconnect&#8221; n&#8217;est pas utilisable</a> et en version 5.0 <a href="http://kb.vmware.com/kb/2004159" target="_blank">une autre kb fait état d&#8217;un bug de l&#8217;alarme &#8220;Storage connectivity&#8221;</a> toujours pas résolu mais surtout sans workaround&#8230;</p>
<p style="text-align: justify;">En exclusivité mondiale (si, si), nous vous livrons aujourd&#8217;hui les méthodes, longtemps gardées secrètes, <strong>pour créer cette précieuse alarme qui vous avertira lorsqu&#8217;un datastore NFS n&#8217;est plus accessible sur un ESX</strong>. Tout cela grâce à l&#8217;event &#8220;<strong>esx.problem.vmfs.nfs.server.disconnect</strong>&#8221; que nous avons trouvé dans <a href="http://www.veeam.com/support/vcEvents.html" target="_blank">la fameuse liste de veeam qui couvre vim 2.5 à 5.0</a></p>
<p>A la &#8220;mano&#8221; :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/alarm_nfs_general.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/alarm_nfs_general.png" alt="" width="354" height="226" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/alarm_nfs_trigger.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/alarm_nfs_trigger.png" alt="" width="354" height="226" /></a></p>
<p><span style="text-align: left;">Avec un oneliner PowerCLI :</span></p>
<pre class="brush: powershell; title: ; notranslate">if (!((Get-View AlarmManager).GetAlarm((Get-Folder -NoRecursion |Get-View).MoRef)|?{(get-view $_).info.name -match &quot;Lost connection to NFS server&quot;})){(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;Lost connection to NFS server&quot;;Description = &quot;Custom alarm to monitor esx.problem.vmfs.nfs.server.disconnect event&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.EventAlarmExpression -Property @{eventType = &quot;EventEx&quot;;EventTypeId = &quot;esx.problem.vmfs.nfs.server.disconnect&quot;;objectType = &quot;HostSystem&quot;;status = &quot;red&quot;}))});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmware.local&quot;;Subject = &quot;[vAlarm] {targetName} nfs.server.disconnect - {newStatus}&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;yellow&quot;;FinalState = &quot;red&quot;;Repeats = $false}))})});ActionFrequency = &quot;1800&quot;}))}</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/alarm_nfs_event.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/alarm_nfs_event.png" alt="" width="379" height="230" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/alarm_nfs_triggered.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/alarm_nfs_triggered.png" alt="" width="353" height="114" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4048</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alarmes vCenter pour les network packets dropped &#8211; MAJ</title>
		<link>http://www.hypervisor.fr/?p=3877</link>
		<comments>http://www.hypervisor.fr/?p=3877#comments</comments>
		<pubDate>Thu, 31 May 2012 10:47:26 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[droppedRX]]></category>
		<category><![CDATA[droppedTX]]></category>
		<category><![CDATA[e1000]]></category>
		<category><![CDATA[packets dropped]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[vmxnet3]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=3877</guid>
		<description><![CDATA[MAJ 06/06/2012 : Nous avions oublié de préciser que pour des tests de pourrissage de réseau nous avions utilisé WANem (Wide Area Network Emulator) qui permet toutes sortent de simulation visant à détériorer ou ralentir le trafic réseau (liveCD et Open Source).
MAJ 31/05/2012 : Les stats de dropped packets n&#8217;étant pas dispo pour les VM sur vCenter 4.x, nous [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 06/06/2012</span> : Nous avions oublié de préciser que pour des tests de pourrissage de réseau nous avions utilisé WANem (Wide Area Network Emulator) qui permet toutes sortent de simulation visant à détériorer ou ralentir le trafic réseau (liveCD et Open Source).</em></p>
<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 31/05/2012</span> : Les stats de dropped packets n&#8217;étant pas dispo pour les VM sur vCenter 4.x, nous avons ajouté un script pour créer des alarmes sur les vmnic, pour les vswitch des ESX donc. <a href="http://www.hypervisor.fr/?p=3877#comment-2320" target="_blank">Merci à puchy pour son feedback</a>.</em></p>
<p style="text-align: justify;">Si, comme nous, vous vous êtes rendu compte un peu tard que de <strong>nombreux packets réseau étaient droppés sur des VM Windows 2008 R2 avec l&#8217;adapteur e1000</strong>, vous serez intéressé par notre petit oneliner (what else ?) qui vous permettra de créer des alarmes dans votre vCenter pour vous en avertir. Mieux vaut un mail de votre vcenter (5.0+) que d&#8217;un user en colère, non ?</p>
<p style="text-align: justify;">Voici une illustration de notre cas :</p>
<p style="text-align: justify;"><a href="http://files.hypervisor.fr/img/DroppedRX/e1000_vs_VMXNET3.png" title="e1000_vs_VMXNET3" rel="lightbox[3877]"><img class="aligncenter size-medium wp-image-3878" title="e1000_vs_VMXNET3" src="http://www.hypervisor.fr/wp-content/uploads/2012/05/e1000_vs_VMXNET3-300x245.png" alt="" width="300" height="245" /></a></p>
<p style="text-align: justify;">Et voici le oneliner qui va créer une alarme pour <a href="http://www.lucd.info/2012/04/21/vnic-transmit-and-receive-rates/" target="_blank">chaque &#8220;instance&#8221; de carte réseau</a> existante de votre vCenter (yellow &gt;1 ; red &gt; 5 ; mailto:admin@vmware.local) :</p>
<pre class="brush: powershell; title: ; notranslate">foreach ($vnic in (Get-View -ViewType VirtualMachine|%{$_.Config.Hardware.Device|?{$_.DeviceInfo.label -match &quot;Network adapter&quot;}}|select Key -Unique|%{$_.Key})){if (!((Get-View AlarmManager).GetAlarm((Get-Folder -NoRecursion |Get-View).MoRef)|?{(get-view $_).info.name -like &quot;Virtual Machine dropped network packets (instance $vnic)&quot;})){(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;Virtual Machine dropped network packets (instance $vnic)&quot;;Description = &quot;Custom alarm to monitor dropped network packets (instance $vnic)&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.MetricAlarmExpression -Property @{Metric = (New-Object VMware.Vim.PerfMetricId -Property @{CounterId = ((Get-View (Get-View ServiceINstance).Content.PerfManager).PerfCounter|?{$_.groupinfo.key -match &quot;net&quot;}|?{$_.RollupType -match &quot;summation&quot;}|?{$_.NameInfo.key -match &quot;droppedTx&quot;}).key;Instance = $vnic});Operator = &quot;isAbove&quot;;Yellow = &quot;1&quot;;YellowInterval = &quot;300&quot;;Red = &quot;5&quot;;RedInterval = &quot;180&quot;;Type = &quot;VirtualMachine&quot;});(New-Object VMware.Vim.MetricAlarmExpression -Property @{Metric = (New-Object VMware.Vim.PerfMetricId -Property @{CounterId = ((Get-View (Get-View ServiceINstance).Content.PerfManager).PerfCounter|?{$_.groupinfo.key -match &quot;net&quot;}|?{$_.RollupType -match &quot;summation&quot;}|?{$_.NameInfo.key -match &quot;droppedRx&quot;}).key;Instance = $vnic});Operator = &quot;isAbove&quot;;Yellow = &quot;1&quot;;YellowInterval = &quot;300&quot;;Red = &quot;5&quot;;RedInterval = &quot;180&quot;;Type = &quot;VirtualMachine&quot;}))});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmware.local&quot;;Subject = &quot;[vAlarm] {targetName} has dropped network packets ({newStatus} state)&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;green&quot;;FinalState = &quot;yellow&quot;;Repeats = $false});(New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;yellow&quot;;FinalState = &quot;red&quot;;Repeats = $false}))})});ActionFrequency = &quot;1800&quot;}))}}</pre>
<p style="text-align: justify;">Vous devez réexecuter ce script si vous créez une nouvelle vm dans votre vCenter (5.0+) qui possède plus de cartes réseau virtuelles que celle qui en possédait le plus lors de la précédente exécution. Chaque alarme sera identifiée par l&#8217;instance qui lui est affectée :</p>
<p><a href="http://files.hypervisor.fr/img/DroppedRX/vc_alarms.png" title="vc_alarms" rel="lightbox[3877]"><img class="aligncenter size-medium wp-image-3880" title="vc_alarms" src="http://www.hypervisor.fr/wp-content/uploads/2012/05/vc_alarms-300x92.png" alt="" width="300" height="92" /></a></p>
<p>Pour vCenter 4.x+, voici le même script pour les vmnics des ESX :</p>
<pre class="brush: powershell; title: ; notranslate">foreach ($vmnic in (Get-View -ViewType HostSystem|%{$_.Config.Network.Pnic|%{$_.Device}}|Select-Object -Unique)){if (!((Get-View AlarmManager).GetAlarm((Get-Folder -NoRecursion |Get-View).MoRef)|?{(get-view $_).info.name -like &quot;Host dropped network packets (instance $vmnic)&quot;})){(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;Host dropped network packets (instance $vmnic)&quot;;Description = &quot;Custom alarm to monitor Host dropped network packets (instance $vmnic)&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.MetricAlarmExpression -Property @{Metric = (New-Object VMware.Vim.PerfMetricId -Property @{CounterId = ((Get-View (Get-View ServiceINstance).Content.PerfManager).PerfCounter|?{$_.groupinfo.key -match &quot;net&quot;}|?{$_.RollupType -match &quot;summation&quot;}|?{$_.NameInfo.key -match &quot;droppedTx&quot;}).key;Instance = $vmnic});Operator = &quot;isAbove&quot;;Yellow = &quot;1&quot;;YellowInterval = &quot;300&quot;;Red = &quot;5&quot;;RedInterval = &quot;180&quot;;Type = &quot;HostSystem&quot;});(New-Object VMware.Vim.MetricAlarmExpression -Property @{Metric = (New-Object VMware.Vim.PerfMetricId -Property @{CounterId = ((Get-View (Get-View ServiceINstance).Content.PerfManager).PerfCounter|?{$_.groupinfo.key -match &quot;net&quot;}|?{$_.RollupType -match &quot;summation&quot;}|?{$_.NameInfo.key -match &quot;droppedRx&quot;}).key;Instance = $vmnic});Operator = &quot;isAbove&quot;;Yellow = &quot;1&quot;;YellowInterval = &quot;300&quot;;Red = &quot;5&quot;;RedInterval = &quot;180&quot;;Type = &quot;HostSystem&quot;}))});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmware.local&quot;;Subject = &quot;[vAlarm] {targetName} has dropped network packets ({newStatus} state)&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;green&quot;;FinalState = &quot;yellow&quot;;Repeats = $false});(New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;yellow&quot;;FinalState = &quot;red&quot;;Repeats = $false}))})});ActionFrequency = &quot;1800&quot;}))}}</pre>
<p><a href="http://files.hypervisor.fr/img/DroppedRX/vmnic_alarms.png" title="vmnic_alarms" rel="lightbox[3877]"><img class="aligncenter size-medium wp-image-3885" title="vmnic_alarms" src="http://www.hypervisor.fr/wp-content/uploads/2012/05/vmnic_alarms-300x102.png" alt="" width="300" height="102" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=3877</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[PSH] state memory counter : créez une vraie alarme d&#8217;overcommit pour ESX</title>
		<link>http://www.hypervisor.fr/?p=3845</link>
		<comments>http://www.hypervisor.fr/?p=3845#comments</comments>
		<pubDate>Fri, 20 Apr 2012 07:39:46 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[memory overcommit]]></category>
		<category><![CDATA[memory state]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=3845</guid>
		<description><![CDATA[L&#8217;un des compteurs les plus connus en matière d&#8217;overcommit sur ESX est le memory state. Pour ceux qui ne le connaissent pas, sachez qu&#8217;il permet de savoir rapidement dans quel état d&#8217;overcommitment (de 0 à 4, high&#62;soft&#62;hard&#62;low) se trouve votre ESX. A 0 tout va bien, au dessus ca commence à devenir short donc le [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">L&#8217;un des compteurs les plus connus en matière d&#8217;overcommit sur ESX est le <a href="http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.wssdk.apiref.doc_50/memory_counters.html" target="_blank"><strong>memory state</strong></a>. Pour ceux qui ne le connaissent pas, sachez qu&#8217;il permet de savoir rapidement dans quel état d&#8217;overcommitment (de 0 à 4, high&gt;soft&gt;hard&gt;low) se trouve votre ESX. A 0 tout va bien, au dessus ca commence à devenir short donc le vmkernel va chercher à récupérer de la ram avec les différents moyens qu&#8217;il à dispo (un petit tour sur <a href="http://kb.vmware.com/kb/2017642" target="_blank">le diagramme Memory Management and Monitoring diagram d&#8217;Hany Michael</a> tout juste mis à jour pour se rafraichir la mémoire -haha).</p>
<p style="text-align: justify;">Sachez aussi qu&#8217;historiquement statiques, <a href="http://frankdenneman.nl/2011/07/mem-minfreepct-sliding-scale-function/" target="_blank">les pourcentages équivalent aux différents states sont &#8220;dynamique&#8221; depuis ESX 5</a> et <a href="http://kb.vmware.com/kb/1033687" target="_blank">VMware recommande de tuner le paramètre minFreePct sur ESX 4.1 au dessus de 64Go de ram</a> (nous, on vous recommande 3% à partir de 32Go).</p>
<p style="text-align: justify;">Le compteur n&#8217;est pas accessible pour faire une alarme dans le vcenter donc nous avons fait chauffer le PowerCLI pour vous en faire une belle qui brille dans la nuit et qui vous alerte dès que le compteur passe à 1 (=1 : warning, &gt;1 : alert) :</p>
<pre class="brush: powershell; title: ; notranslate">(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;Host memory state&quot;;Description = &quot;Custom alarm to monitor Host memory state high-soft-hard-low&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.MetricAlarmExpression -Property @{Metric = (New-Object VMware.Vim.PerfMetricId -Property @{CounterId = ((Get-View (Get-View ServiceINstance).Content.PerfManager).PerfCounter|?{$_.groupinfo.key -match &quot;mem&quot;}|?{$_.nameinfo.key -match &quot;state&quot;}|?{$_.RollupType -match &quot;latest&quot;}).key;Instance = &quot;&quot;});Operator = &quot;isAbove&quot;;Yellow = &quot;1&quot;;YellowInterval = &quot;20&quot;;Red = &quot;2&quot;;RedInterval = &quot;20&quot;;Type = &quot;HostSystem&quot;}))});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmware.local&quot;;Subject = &quot;[vAlarm] {targetName} memory state is {newStatus}&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;green&quot;;FinalState = &quot;yellow&quot;;Repeats = $false});(New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;yellow&quot;;FinalState = &quot;red&quot;;Repeats = $true}))})});ActionFrequency = &quot;1800&quot;}))</pre>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/vAlarm_memory_state.png" alt="" width="387" height="64" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=3845</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[ACPI] cpu usage vs core utilization &#8211; MAJ</title>
		<link>http://www.hypervisor.fr/?p=3806</link>
		<comments>http://www.hypervisor.fr/?p=3806#comments</comments>
		<pubDate>Fri, 30 Mar 2012 08:04:18 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[esxtop]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=3806</guid>
		<description><![CDATA[MAJ 13/07/2012 : VMware vient de nous confirmer que sur des processeurs avec l&#8217;Hyper-Threading activé, la valeur remonté est la somme des % d&#8217;utilisation de chaque core logique divisée par le nombre de core physique ce qui peut conduire (injustement selon nous) à des valeurs supérieures à 100%. Pour faire simple, avec l&#8217;HT d&#8217;activé ce compteur est complètement faussé [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><em><span style="color: #ff0000;"><strong>MAJ 13/07/2012</strong></span> : VMware vient de nous confirmer que sur des processeurs avec l&#8217;<strong>Hyper-Threading</strong> activé, la valeur remonté est la somme des % d&#8217;utilisation de chaque core <strong>logique </strong>divisée par le nombre de core <strong>physique </strong>ce qui peut conduire (injustement selon nous) à des valeurs supérieures à 100%. Pour faire simple, avec l&#8217;HT d&#8217;activé ce compteur est complètement faussé et donc l&#8217;alarme inutile.</em></p>
<p style="text-align: justify;"><a href="http://files.hypervisor.fr/img/cpu_core_usage/core_usage_HT.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/cpu_core_usage/core_usage_HT_s.png" alt="" width="401" height="278" /></a></p>
<p style="text-align: justify;"><em><span style="color: #ff0000;"><strong>MAJ 19/04/2012</strong></span> : Modification du script pour afficher nom du server et le status dans l&#8217;objet du mail</em></p>
<p style="text-align: justify;">Le coup du PCPU Used vs PCPU Util c&#8217;est un classique de Krishna Raj (grand maître d&#8217;esxtop) aux <a href="http://mylearn.vmware.com/courseware/83922/TA6720%20_FORMATTED.pdf" target="_blank">VMworld pendant la session &#8220;esxtop for advanced users&#8221;</a>. Il s&#8217;agit d&#8217;<strong>une situation où la consommation cpu &#8220;théorique&#8221; (basé sur la fréquence de base du cpu) est différente de la consommation &#8221;réelle&#8221; (basée sur la fréquence courante du cpu)</strong>. Les exemples de troubleshooting des sessions de Krishna sont lié à l&#8217;Hyperthreading et aux mécanismes qui permettent aux cpu de baisser leur fréquence pour économiser de l’énergie.</p>
<p style="text-align: justify;">En fervents adeptes d&#8217;esxtop, nous avons tout de suite remarqué l&#8217;anomalie décrite par Krishna lors d&#8217;une séance de troubleshooting :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/cpu_core_usage/core_cpu_esxtop.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/cpu_core_usage/core_cpu_esxtop.png" alt="" width="480" height="163" /></a></p>
<p style="text-align: justify;">Le problème c&#8217;est que nous n&#8217;étions pas dans esxtop pour ça et, pire, aucune alarme ne nous était parvenue. Et pour cause, c&#8217;est le compteur &#8220;usage&#8221; qui est utilisé par vCenter et non pas &#8220;coreUtilization&#8221; :</p>
<p style="text-align: left;"><img class="aligncenter" src="http://files.hypervisor.fr/img/cpu_core_usage/core_cpu_fake_bargraph.png" alt="" width="355" height="122" /></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/cpu_core_usage/core_cpu_graph.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/cpu_core_usage/core_cpu_graph.png" alt="" width="494" height="279" /></a></p>
<p style="text-align: justify;">Après investigation, il s&#8217;agissait d&#8217;une mauvaise configuration ACPI/C-State dans le BIOS et comme nous ne sommes pas infaillibles, nous nous avons pondu un petit oneliner PowerCLI pour créer une alarme qui se base sur le compteur <strong>coreUtilization</strong> :</p>
<pre class="brush: powershell; title: ; notranslate">(Get-View AlarmManager).CreateAlarm((Get-Folder -NoRecursion |Get-View).MoRef,(New-Object VMware.Vim.AlarmSpec -Property @{Name = &quot;Host core usage&quot;;Description = &quot;Custom alarm to monitor core Utilization&quot;;Enabled = $true;expression = (New-Object VMware.Vim.OrAlarmExpression -Property @{expression = @((New-Object VMware.Vim.MetricAlarmExpression -Property @{Metric = (New-Object VMware.Vim.PerfMetricId -Property @{CounterId = ((Get-View (Get-View ServiceINstance).Content.PerfManager).PerfCounter|?{$_.groupinfo.key -match &quot;cpu&quot;}|?{$_.nameinfo.key -match &quot;coreUtilization&quot;}|?{$_.RollupType -match &quot;average&quot;}).key;Instance = &quot;&quot;});Operator = &quot;isAbove&quot;;Yellow = &quot;7500&quot;;YellowInterval = &quot;300&quot;;Red = &quot;9000&quot;;RedInterval = &quot;180&quot;;Type = &quot;HostSystem&quot;}))});Action=(New-Object VMware.Vim.GroupAlarmAction -Property @{Action= (New-Object VMware.Vim.AlarmTriggeringAction -Property @{Action = (New-Object VMware.Vim.SendEmailAction -Property @{ToList = &quot;admin@vmware.local&quot;;Subject = &quot;[vAlarm] {targetName} core usage is {newStatus}&quot;;CcList = &quot;&quot;;Body = &quot;&quot;});TransitionSpecs = @((New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;green&quot;;FinalState = &quot;yellow&quot;;Repeats = $false});(New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec -Property @{StartState = &quot;yellow&quot;;FinalState = &quot;red&quot;;Repeats = $true}))})});ActionFrequency = &quot;1800&quot;}))</pre>
<p style="text-align: justify;">Les seuils sont les mêmes que pour l&#8217;alarme &#8220;Host CPU Usage&#8221;, à savoir 75/90, mais nous avons réduit le temps pour l&#8217;alerte (red) à 3min au lieu de 5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=3806</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Créez une vraie alarme &#8220;disk latency&#8221; sur votre vCenter 4.x &#8211; MAJ</title>
		<link>http://www.hypervisor.fr/?p=2468</link>
		<comments>http://www.hypervisor.fr/?p=2468#comments</comments>
		<pubDate>Mon, 29 Nov 2010 02:02:43 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[esxtop]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=2468</guid>
		<description><![CDATA[MAJ 20/02/2011 : La version 4.1 U1 apporte un workaround, &#8220;The new trigger now available is VM Max Total Disk latency (ms)&#8221;
Pour une raison obscure mais bien réelle, l&#8217;alarme &#8220;Virtual machine total disk latency&#8221; n&#8217;est pas fonctionnelle :

The default Virtual Center Alarm for Virtual Machine Total Disk Latency  is currently not functioning on VMware [...]]]></description>
			<content:encoded><![CDATA[<p><em><span style="color: #ff0000;">MAJ 20/02/2011</span> : La version 4.1 U1 apporte <a href="http://www.vmware.com/support/vsphere4/doc/vsp_vc41_u1_rel_notes.html#resolvedissues" target="_blank">un workaround</a>, &#8220;The new trigger now available is VM Max Total Disk latency (ms)&#8221;</em></p>
<p>Pour une raison obscure mais bien réelle, <strong><a href="http://kb.vmware.com/kb/1025176" target="_blank">l&#8217;alarme &#8220;Virtual machine total disk latency&#8221; n&#8217;est pas fonctionnelle</a></strong> :</p>
<blockquote>
<p style="text-align: justify;">The default Virtual Center Alarm for Virtual Machine Total Disk Latency  is currently not functioning on VMware vCenter Server 4.0 and VMware  vCenter Server 4.1.</p>
<p><strong>There is no workaround at this time.</strong></p></blockquote>
<p>Grâce au PowerCLI (<a href="http://www.lucd.info/tag/alarm/" target="_blank">et aux nombreux posts de Luc</a>), il existe une alternative : le compteur <a href="http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/disk_counters.html" target="_blank">disk.maxTotalLatency.latest</a></p>
<blockquote>
<p style="text-align: justify;">Highest latency value across all disks used by the host. Latency measures the time taken to process a SCSI command issued by the guest OS to the virtual machine. The kernel latency is the time VMkernel takes to process an IO request. The device latency is the time it takes the hardware to handle the request.</p>
</blockquote>
<p style="text-align: justify;">Nous avons créé un petit script pour l&#8217;occasion <strong>qui créer une alarme &#8220;custom&#8221; afin de détecter une latence trop élevé sur l&#8217;un des datastore</strong> (en mode block uniquement, par pour le NFS donc) d&#8217;un ESX :</p>
<p><a href="http://hypervisor.free.fr/latency/MaxLatencyAlarmTriggered.png" title="MaxLatencyAlarmTriggered" rel="lightbox[2468]"><img class="aligncenter size-full wp-image-2472" title="MaxLatencyAlarmTriggered" src="http://www.hypervisor.fr/wp-content/uploads/2010/11/MaxLatencyAlarmTriggered.png" alt="" width="437" height="86" /></a></p>
<p>Ce script s&#8217;utilise comme suit :</p>

<div class="wp_syntax"><div class="code"><pre class="powershell" style="font-family:monospace;">.\Set<span style="color: pink;">-</span>MaxTotalLatencyAlarm.ps1 <span style="color: pink;">-</span>YellowTresh <span style="color: #804000;">20</span> <span style="color: pink;">-</span>RedTresh <span style="color: #804000;">40</span></pre></div></div>

<p style="text-align: center;"><a href="http://hypervisor.free.fr/latency/MaxLatencyAlarmCLI.png" title="MaxLatencyAlarmCLI" rel="lightbox[2468]"><img class="aligncenter size-full wp-image-2491" title="MaxLatencyAlarmCLI" src="http://www.hypervisor.fr/wp-content/uploads/2010/11/MaxLatencyAlarmCLI.png" alt="" width="534" height="97" /></a></p>
<p><em>YellowTresh</em> et <em>RedTresh</em> représentent les seuils Warning/Alert de l&#8217;alarme (30/50 par défaut si non renseignés à la création de l&#8217;alarme).</p>
<p style="text-align: center;"><a href="http://hypervisor.free.fr/latency/MaxLatencyAlarmAPI.png" title="MaxLatencyAlarmAPI" rel="lightbox[2468]"><img class="aligncenter size-full wp-image-2471" title="MaxLatencyAlarmAPI" src="http://www.hypervisor.fr/wp-content/uploads/2010/11/MaxLatencyAlarmAPI.png" alt="" width="534" height="60" /></a><strong>Il sera nécessaire de supprimer/recréer l&#8217;alarme pour changer ces valeurs</strong></p>
<p style="text-align: left;">
<p style="text-align: center;"><a href="http://hypervisor.free.fr/latency/MaxLatencyAlarmMs.png" title="MaxLatencyAlarmMs" rel="lightbox[2468]"><img class="aligncenter size-full wp-image-2479" title="MaxLatencyAlarmMs" src="http://www.hypervisor.fr/wp-content/uploads/2010/11/MaxLatencyAlarmMs.png" alt="" width="485" height="286" /></a></p>
<p style="text-align: left;">Après c&#8217;est à vous de jouer pour trouver le datastore qui pose problème&#8230;</p>
<div class="wp-caption aligncenter" style="width: 85px"><a href="http://hypervisor.free.fr/Set-MaxTotalLatencyAlarm.ps1"><img class=" " title="Set-MaxTotalLatencyAlarm.ps1" src="http://hypervisor.free.fr/img/download_icon_300.png" alt="" width="75" height="64" /></a><p class="wp-caption-text">download</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=2468</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>
