<?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; zeroing</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=zeroing" 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>PunchZero online</title>
		<link>http://www.hypervisor.fr/?p=5300</link>
		<comments>http://www.hypervisor.fr/?p=5300#comments</comments>
		<pubDate>Mon, 10 Nov 2014 11:02:37 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Kb]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[SVMotion]]></category>
		<category><![CDATA[thin provisioning]]></category>
		<category><![CDATA[vmkfstools]]></category>
		<category><![CDATA[zeroing]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=5300</guid>
		<description><![CDATA[Depuis l&#8217;apparition du thin provisioning, la question de la récupération de l&#8217;espace disque libéré après allocation refait surface régulièrement.
Historiquement, il suffisait de &#8220;zeroer&#8221; l&#8217;espace libre inGuest et faire un storage vmotion vers n&#8217;importe quel autre datastore pour récupérer l&#8217;espace &#8220;zeroé&#8221; grâce au datamover fsdm qui zappe les zéros. Malheureusement, depuis l&#8217;apparition du datamover fs3dm dans [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Depuis l&#8217;apparition du <a href="http://kb.vmware.com/kb/1005418" target="_blank">thin provisioning</a>, la question de la <strong>récupération de l&#8217;espace disque libéré après allocation</strong> refait surface régulièrement.</p>
<p style="text-align: justify;">Historiquement, il suffisait de &#8220;zeroer&#8221; l&#8217;espace libre inGuest et faire un storage vmotion vers n&#8217;importe quel autre datastore pour récupérer l&#8217;espace &#8220;zeroé&#8221; grâce au datamover fsdm qui zappe les zéros. Malheureusement, depuis l&#8217;apparition du datamover fs3dm dans vSphere 4.0 cet avantage a disparu <a href="http://www.yellow-bricks.com/2011/02/18/blocksize-impact" target="_blank">comme l&#8217;explique Duncan dans un vieux post de 2011</a>.</p>
<p><a href="http://www.yellow-bricks.com/2011/02/18/blocksize-impact"><img class="aligncenter" src="http://files.hypervisor.fr/img/PunchZero/vmware_datamover.jpg" alt="" width="193" height="240" /></a></p>
<p style="text-align: justify;">A cette époque, il était courant d&#8217;avoir des datastores configurés avec des blocksize différents ce qui permettait de contourner le problème facilement. Aujourd&#8217;hui, VMFS 5 a changé cette approche avec le blocksize unifié à 1M.</p>
<p style="text-align: justify;"><strong>Pour tricker comme avant et forcer fsdm à faire le boulot il faut une rupture technologique VMFS &lt;&gt; NFS ou jouer avec <strong>un paramètre caché de vsish</strong></strong> <a href="http://www.yellow-bricks.com/2011/02/18/blocksize-impact/#comment-22783" target="_blank">comme l&#8217;indique William Lam dans son commentaire</a> :</p>
<blockquote><p>Whether VMFS should handle data movement requests by leveraging FS3DM</p></blockquote>
<p style="text-align: justify;">Et depuis le temps que nous voulions le tester, nous sommes enfin tomber sur une VM <a href="http://www.hypervisor.fr/?p=4857" target="_blank">avec ~60Go à récupérer</a> dans un environnement VMFS5 only:</p>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/PunchZero/Zero_Thin_Diff.png" alt="" width="519" height="62" /></p>
<p style="text-align: justify;">Un coup de <a href="http://technet.microsoft.com/en-us/sysinternals/bb897443" target="_blank">sdelete -z</a> plus tard, on change le paramètre <strong>/config/VMFS3/intOpts/EnableDataMovement</strong> dans vsish et on lance un storage vmotion.</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/PunchZero/Zero_sdelete.png" title="Zero_sdelete" rel="lightbox[5300]"><img class="alignnone size-thumbnail wp-image-5303" title="Zero_sdelete" src="http://www.hypervisor.fr/wp-content/uploads/2014/11/Zero_sdelete-150x150.png" alt="" width="150" height="150" /></a> <a href="http://files.hypervisor.fr/img/PunchZero/Zero_vsish_5.png" title="Zero_vsish_5" rel="lightbox[5300]"><img class="alignnone size-thumbnail wp-image-5304" title="Zero_vsish_5" src="http://www.hypervisor.fr/wp-content/uploads/2014/11/Zero_vsish_5-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Au passage on remarque bien la phase de lecture sans écriture pendant le svmotion :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/PunchZero/Zero_svmotion_fsdm.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/PunchZero/Zero_svmotion_fsdm.png" alt="" width="503" height="304" /></a></p>
<p style="text-align: justify;">Après la migration (<a href="http://kb.vmware.com/kb/2008877" target="_blank">qui vous permettra aussi de renommer officiellement les fichiers de votre VM</a>), la VM a maigri comme il faut :</p>
<p style="text-align: left;"><img class="aligncenter" src="http://files.hypervisor.fr/img/PunchZero/Zero_Tango_Before.png" alt="" width="363" height="292" /></p>
<p style="text-align: left;"><img class="aligncenter" src="http://files.hypervisor.fr/img/PunchZero/Zero_Tango_After.png" alt="" width="365" height="309" /></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/PunchZero/Zero_Tango_Before_vmdk.png" title="Zero_Tango_Before_vmdk" rel="lightbox[5300]"><img class="alignnone size-thumbnail wp-image-5307" title="Zero_Tango_Before_vmdk" src="http://www.hypervisor.fr/wp-content/uploads/2014/11/Zero_Tango_Before_vmdk-150x150.png" alt="" width="150" height="150" /></a> <a href="http://files.hypervisor.fr/img/PunchZero/Zero_Tango_After_vmdk.png" title="Zero_Tango_After_vmdk" rel="lightbox[5300]"><img class="alignnone size-thumbnail wp-image-5308" title="Zero_Tango_After_vmdk" src="http://www.hypervisor.fr/wp-content/uploads/2014/11/Zero_Tango_After_vmdk-150x150.png" alt="" width="150" height="150" /></a></p>
<p style="text-align: left;"><a href="http://kb.vmware.com/kb/2004155" target="_blank">Pour ceux qui voudrait tout simplement le faire offline, il y a l&#8217;option <strong>&#8211;punchzero</strong> de vmkfstools.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=5300</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zero-G Storage vMotion</title>
		<link>http://www.hypervisor.fr/?p=5188</link>
		<comments>http://www.hypervisor.fr/?p=5188#comments</comments>
		<pubDate>Mon, 16 Jun 2014 10:01:54 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Kb]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[SVMotion]]></category>
		<category><![CDATA[thin provisioning]]></category>
		<category><![CDATA[VAAI]]></category>
		<category><![CDATA[zeroing]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=5188</guid>
		<description><![CDATA[Notre expérience de Storage vMotion remonte à l&#8217;arrivée d&#8217;ESX 3.0.1 (aka VI3) où DMotion permettait de migrer à chaud de VMFS 2 à VMFS 3 :
Follow the Migrate Virtual Machine Wizard to select the ESX 3.0.1 host and VMFS3 datastore destination. The Wizard validates the destination and moves the configuration files of the virtual machine [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Notre expérience de Storage vMotion remonte à l&#8217;arrivée d&#8217;ESX 3.0.1 (<a href="https://www.vmware.com/support/pubs/vi_pubs.html" target="_blank">aka VI3</a>) où <a href="http://kb.vmware.com/kb/2874895" target="_blank">DMotion permettait de migrer à chaud de VMFS 2 à VMFS 3</a> :</p>
<blockquote><p>Follow the Migrate Virtual Machine Wizard to select the ESX 3.0.1 host and VMFS3 datastore destination. The Wizard validates the destination and <strong>moves the configuration files of the virtual machine and virtual disks to the new VMFS3 datastore</strong>.</p></blockquote>
<p><a href="http://www.vmworld.com/docs/DOC-2140"><img class="aligncenter" src="http://files.hypervisor.fr/img/svmotion_vaai/dmotion_vmworld_2007.png" alt="" width="395" height="296" /></a></p>
<p style="text-align: justify;">Depuis, nous avons étudié, testé, troubleshooté, et utilisé en production (<a href="http://www.hypervisor.fr/?p=3524" target="_blank">de manière parfois intensive</a>) cette fonctionnalité (<a href="http://www.hypervisor.fr/?p=3212" target="_blank">qui a beaucoup évolué depuis 2007</a>) devenue presque banale depuis SDRS.</p>
<p style="text-align: justify;">C&#8217;est au moment où nous croyons tout savoir du mécanisme que nous prenons une grande claque d&#8217;humilité lors d&#8217;une migration de plusieurs centaines de VM et que nous nous apercevons pour la première fois <strong>qu&#8217;un svmotion d&#8217;un vmdk thin (ou Lazy Zeroed) génère 2 fois plus d&#8217;écritures que de lectures</strong> :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/svmotion_vaai/svmotion_thin_rate.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/svmotion_vaai/svmotion_thin_rate.png" alt="" width="503" height="304" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/svmotion_vaai/svmotion_thin_iops.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/svmotion_vaai/svmotion_thin_iops.png" alt="" width="503" height="304" /></a></p>
<p style="text-align: justify;">Nous n&#8217;avions jamais fait le rapprochement entre un svmotion et <a href="http://www.vmware.com/pdf/vsp_4_thinprov_perf.pdf" target="_blank">un sujet qui a longtemps fait polémique</a> :</p>
<blockquote>
<p style="text-align: left;"><strong>Because zeroing takes place at run-time for a thin disk, there can be some performance impact for write-intensive applications while writing data for the first time.</strong></p>
</blockquote>
<p style="text-align: justify;">Et le pire c&#8217;est qu&#8217;il nous a fallu un temps infini à l&#8217;échelle de Google pour tomber sur <a href="http://www.reddit.com/r/vmware/comments/1z1kt4/vmware_disk_performance_metrics_and_why_does_it/" target="_blank">un thread reddit où un VCDX explique tout d&#8217;une seule phrase</a> :</p>
<blockquote>
<p style="text-align: left;">It has to zero the block before writing the actual data.</p>
</blockquote>
<p style="text-align: justify;">Voila pourquoi <strong><strong>sans VAAI</strong> (ou au moins <a href="http://blogs.vmware.com/vsphere/2012/06/low-level-vaai-behaviour.html" target="_blank">la primitive WRITE_SAME</a>) vos svmotion (thin ou lazy zeroed) prendrons 2 fois plus de temps</strong> car 2 fois plus de données transiterons vers le stockage (<a href="http://www.yellow-bricks.com/2011/02/18/blocksize-impact/" target="_blank">entre 2 VMFS avec le même blocksize</a>).</p>
<p style="text-align: justify;">A titre de démonstration, voici un <a href="https://labs.vmware.com/flings/visualesxtop" target="_blank">visualEsxtop</a> de 2 svmotion consécutifs de <strong>la même VM </strong>entre 2 datastore, avec et sans le setting <a href="http://kb.vmware.com/kb/1021976" target="_blank">DataMover.HardwareAcceleratedInit</a> :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/svmotion_vaai/svmotion_thin_visualEsxtop.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/svmotion_vaai/svmotion_thin_visualEsxtop_small.png" alt="" width="477" height="284" /></a></p>
<p style="text-align: left;">Ce n&#8217;est pas une défaillance de votre téléviseur, <strong>avec le zeroing offloadé à la baie c&#8217;est presque 2 fois plus rapide</strong> (ou 2 fois moins long si vous préférez&#8230;).</p>
<p style="text-align: left;">Ce comportement n&#8217;a évidement aucun rapport avec <a href="http://kb.vmware.com/kb/2004155" target="_blank">la &#8220;non-récupération&#8221; des zéros lors d&#8217;un svmotion</a>&#8230; Bien qu&#8217;il semble etre possible de <a href="http://www.yellow-bricks.com/2011/02/18/blocksize-impact/#comment-22783" target="_blank">le forcer d&#8217;une manière non supportée</a> !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=5188</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
