<?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; iometer</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=iometer" 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>Infiniband@home : votre homelab à 20Gbps</title>
		<link>http://www.hypervisor.fr/?p=4662</link>
		<comments>http://www.hypervisor.fr/?p=4662#comments</comments>
		<pubDate>Thu, 30 May 2013 06:54:52 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[ZFS]]></category>
		<category><![CDATA[10GbE]]></category>
		<category><![CDATA[FC]]></category>
		<category><![CDATA[HCA]]></category>
		<category><![CDATA[infiniband]]></category>
		<category><![CDATA[iometer]]></category>
		<category><![CDATA[vib]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=4662</guid>
		<description><![CDATA[MAJ 07/03/2014 : Le beta test du package ib-opensm-3.3.15 pour ESXi 5.5 est terminé et Andreas Peetz nous a fait l&#8217;honneur de le publier sur son vibdepot. Toutes les informations d&#8217;usage sont disponibles sur son wiki mais nous reprécisons que ce package n&#8217;est pas supporté pour VSAN à cause du timeout trop important en cas [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 07/03/2014</span> : Le beta test du package ib-opensm-3.3.15 pour ESXi 5.5 est terminé et <a href="http://vibsdepot.v-front.de/wiki/index.php/Welcome" target="_blank">Andreas Peetz nous a fait l&#8217;honneur de le publier sur son vibdepot</a>. Toutes les informations d&#8217;usage sont disponibles sur son wiki mais nous reprécisons que ce package <strong>n&#8217;est pas supporté pour VSAN</strong> à cause du timeout trop important en cas de (ré)élection du master opensm.</em></p>
<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 30/01/2014</span> : Suite à d&#8217;autres problèmes de stabilité avec ESXi 5.5, nous retirons la version x64. Une nouvelle version est actuellement en beta test, n’hésitez pas à nous contacter pour la tester.</em></p>
<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 26/11/2013</span> : Suite à des problèmes de stabilité, <a href="http://files.hypervisor.fr/zip/ib-opensm-3.3.15-64.x86_64.vib" target="_blank">nous avons compilé la version 3.3.15 en 64bit</a> et remis à disposition <a href="http://files.hypervisor.fr/zip/ib-opensm-3.3.15.x86_64.vib" target="_blank">la 3.3.15 32bit</a> en lieu et place de la version 3.3.16</em></p>
<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 22/10/2013</span> : Nouvelle vib en <a href="https://twitter.com/hypervisor_fr/status/392413281354129409">version 3.3.16-64 qui apporte le <strong>support d&#8217;ESXi 5.5</strong></a> (les binaires et librairies sont maintenant en 64bit) et rétrocompatible en 5.1 (probablement 5.0 aussi).</em></p>
<p style="text-align: justify;"><em><span style="color: #ff0000;">MAJ 02/10/2013</span> : Mise à jour du vib avec la version 3.3.16 d&#8217;opensm. <strong>Aucune version compatible avec ESXi 5.5</strong> pour le moment.</em></p>
<p style="text-align: justify;">Suite à notre <a href="http://www.hypervisor.fr/?p=4093" target="_blank">post sur l&#8217;EZ Compact 6 il y a quelques mois</a>, nous avons été victimes de &#8220;<strong>l&#8217;effet SSD</strong>&#8221; qui donne l&#8217;impression que n&#8217;importe quelle grappe de disques SAS 15K en stripping est une grosse brouette. En effet, après avoir goutté à un agrégea de SSD vous devenez immédiatement addict aux <strong>latences extrêmement faibles</strong> ainsi qu&#8217;aux débits improbables qui vous font douter de la bande passante théorique du PCIe. Mais pour en profiter au delà du serveur dans lequel se trouve vos précieux, il faut <strong>un protocole de transport plus rapide et performant que du simple GbE</strong>. Suite à quelques recherches, le choix du <a href="http://en.wikipedia.org/wiki/Fibre_Channel#Fibre_Channel_topologies" target="_blank">Fibre Channel en mode FC-P2P ou FC-AL</a> s’avérait être le plus pratique (pas besoin de switch, seulement des cartes HBA et des fibres pour les relier) et peu coûteux compte tenu de l&#8217;immense marché de l&#8217;occasion.</p>
<p style="text-align: center;"><a href="http://www.epubbud.com/read.php?g=8MVD69ZN&amp;tocp=17" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/fc_p2p_al.jpg" alt="" width="350" height="200" /></a></p>
<p style="text-align: justify;">Un petit tour sur eBay et nous voila avec notre <strong>FC@home</strong> qui nous a permis de faire des tests intéressants comme ceux pour <a href="http://www.hypervisor.fr/?p=4389" target="_blank">notre post sur le MRU ranking</a> mais aussi de profiter pleinement des performances des SSD. Le seul &#8220;inconvénient&#8221; du FC est de ne transporter que du block et donc de ne permettre qu&#8217;un accès à des LUN. Sur une petite baie de stockage ZFS c&#8217;est un réel problème car <strong>cela oblige à prendre certaines précautions concernant la taille des LUN présentées pour profiter des snapshots et de la compression</strong>. Il y a donc de fortes chances que vous soyez dans l&#8217;obligation de réserver une quantité d&#8217;espace non négligeable <strong>pour éviter de saturer le zpool</strong>.</p>
<p style="text-align: justify;">Nous partons alors en quête de cartes réseau <strong>10GbE</strong> avec lesquelles nous pourrions faire du NFS mais aussi des vmotion à des vitesses indécentes. Malheureusement ce matériel reste encore très cher pour un particulier à l&#8217;heure actuelle y compris d&#8217;occasion. Après quelques recherches, nous avons trouvé une solution très abordable (en occasion toujours) permettant de faire du block ainsi que du réseau à des débits hallucinants et avec des temps de latence extrêmement faibles : l&#8217;<strong><a href="http://devopsreactions.tumblr.com/post/49763071666/playing-with-infiniband-hardware-for-the-first-time" target="_blank">infiniband</a></strong> !</p>
<p style="text-align: center;"><a href="http://www.infinibandta.org/logo_library/library.html" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/ib_black_logo.png" alt="" width="105" height="136" /></a></p>
<p>L&#8217;infiniband est un type de <a href="https://cw.infinibandta.org/document/dl/7268" target="_blank">réseau très particulier permettant à la base de transporter des messages</a> :</p>
<blockquote><p>The basic idea behind InfiniBand is simple; <strong>it provides applications with an easy-to-use messaging service</strong>. This service can be used to communicate with other applications or processes or to access storage.</p></blockquote>
<p style="text-align: justify;">Grace à des ULP (<strong>Upper Layers Protocol</strong>) il est possible de transporter différents protocoles tels que du SCSI, de l&#8217;IP, du NFS ou du Lustre et même de faire du <strong>RDMA</strong> pour certains comme dans le cas du <a href="http://en.wikipedia.org/wiki/SCSI_RDMA_Protocol" target="_blank">SRP</a> ou du <a href="https://developer.nvidia.com/gpudirect" target="_blank">GPUDirect</a>. Au fil de nos recherches nous avons pu remarquer que malgré des débuts difficiles, l&#8217;architecture infiniband semble s&#8217;imposer petit à petit dans de nombreux domaines pour des raisons de flexibilité, de performances et de coûts.</p>
<p style="text-align: center;"><a href="http://gigaom.com/2012/09/03/infiniband-back-from-the-dead/" target="_blank"><img class="aligncenter" src="http://gigaom2.files.wordpress.com/2012/09/infiband.jpg" alt="" width="366" height="334" /></a></p>
<p style="text-align: justify;">Pour en revenir à notre homelab, nous avons soigneusement cherché un modèle de carte dual port capable de fonctionner sur ESXi 5 ainsi que Nexenta 3 et <a href="http://www.nexentastor.org/boards/1/topics/245" target="_blank">c&#8217;est sur le forum de nexenta que nous avons trouvé la bonne affaire</a> : HP 448397-B21 (chip Mellanox ConnectX). A <strong><a href="http://www.ebay.com/sch/i.html?_from=R40&amp;_sacat=0&amp;_nkw=HP+448397-B21&amp;_sop=15" target="_blank">50€ sur ebay</a></strong> nous en avons donc commandé <a href="https://twitter.com/hypervisor_fr/status/319017217842892800/photo/1" target="_blank">3 ainsi que les câbles CX4 pour les connecter</a> (infiniband supporte le back-to-back à l&#8217;instar du FC et de l&#8217;ethernet).</p>
<p style="text-align: center;">
<p style="text-align: justify;">Tout semblait &#8220;se dérouler sans accrocs&#8221; mais alors que nous relisions <a href="http://www.mellanox.com/related-docs/prod_software/Mellanox_IB_OFED_Driver_for_VMware_vSphere_User_Manual_Rev_1_8_1.pdf" target="_blank">le User Manual des drivers Mellanox</a> en attendant que les cartes nous soient livrées, un paragraphe allait radicalement changer la nature de notre aventure :</p>
<blockquote><p>The driver package requires InfiniBand Subnet Manager (SM) to run on the subnet. <strong>The driver package does not include an SM</strong>.<br />
<strong>If your fabric does not include a managed switch/gateway, an SM application should be installed on at least one non-ESXi Server machine in the subnet</strong>. You can download an InfiniBand SM such as OpenSM from www.openfabrics.org under the Downloads section.</p></blockquote>
<p style="text-align: justify;">En effet, contrairement à FC ou ethernet, les cartes infiniband (HCA) ne suffisent pas à constituer un réseau fonctionnel (et sans SM sur le subnet, les ports IPoIB sont down), il faut un <strong>Subnet Manager</strong> pour gérer la topologie du réseau infiniband et ce composant n&#8217;existe pas (publiquement) pour ESXi, pas jusqu&#8217;à maintenant en tout cas&#8230;</p>
<p style="text-align: justify;">Un SM étant nécessaire pour chaque subnet, notre design en &#8220;triangle&#8221; (2 ESXi + 1 Nexenta) nécessitait forcement un SM coté ESXi pour gérer le subnet entre les 2 ESXi (pour le vmotion) et un SM pour chacun des liens ESXi/Nexenta (pour le SCSI et le NFS). Et dans un excès d&#8217;optimisme, nous voila parti à essayer de <strong>compiler OpenSM pour ESXi</strong> et en faire un vib <img src='http://www.hypervisor.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/infiniband/HP-448397-B21.jpg" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/HP-448397-B21.jpg" alt="" width="366" height="276" /></a></p>
<p style="text-align: justify;">Nous avons commencé grâce <a href="http://www.virtuallyghetto.com/2011/02/how-to-compile-statically-linked-rsync.html" target="_blank">au post de William Lam</a> basé sur le post de <a href="http://www.zemris.fer.hr/~sgros/sysadm/esxi_hacks.shtml" target="_blank">Stjepan Groš</a> et avons réussi à <a href="https://twitter.com/hypervisor_fr/status/318015826198413312" target="_blank">compiler une version fonctionnelle</a> après avoir résolu des problèmes de dépendances (libibmad, libibumad et libwrap) et de chemins dans les sources (umad.h). Nous avons ensuite du faire face à un problème de cpu loop (osm_vendor_ibumad.c) que nous n&#8217;aurions pu résoudre sans l&#8217;aide précieuse de <strong>Hal Rosenstock</strong>, de chez Mellanox (très actif sur <a href="http://lists.openfabrics.org/" target="_blank">la mailing list d&#8217;openfabrics</a>). Finalement, après avoir mijoté un script d&#8217;init, nous avions une version capable de démarrer un SM par subnet, supportant un fichier de partition (topologie du réseau) et capable de réassigner les <a href="http://www.mellanox.com/pdf/whitepapers/InfiniBandFAQ_FQ_100.pdf" target="_blank">LIDS</a> (équivalent des adresses MAC ou des WWN) en cas de besoin. <strong>Yatta !</strong></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/infiniband/ib_vib_info.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/ib_vib_info.png" alt="" width="506" height="234" /></a></p>
<p style="text-align: justify;">Nous n&#8217;avons eu qu&#8217;à utiliser l’excellent <a href="http://www.v-front.de/2012/11/update-esxi5-community-packaging-tools.html" target="_blank">ESXi Community Packaging Tools</a> d&#8217;Andreas Peetz (autrement plus abouti que <a href="http://labs.vmware.com/flings/vib-author" target="_blank">VIB Author</a>) pour packager un joli vib à déployer avec esxcli (<a href="http://www.v-front.de/2012/11/a-daemons-vib-part-3-building-software.html" target="_blank">VUM ne supportant pas l&#8217;indispensable &#8211;no-sig-check</a>) et hotplug ! De plus, OpenSM est capable de supporter plusieurs instances sur le même subnet où une seule sera MASTER et les autres STANDBY.</p>
<p style="text-align: justify;">Voici donc <strong>le seul et unique vib qui vous permettra de faire du back-to-back entre 2 ESXi</strong> ou entre ESXi et n&#8217;importe quoi d&#8217;autre :</p>
<div class="wp-caption aligncenter" style="width: 110px"><a href="http://files.hypervisor.fr/zip/ib-opensm-x86-3.3.15-1.x86_64.vib"><img class="   " title="ib-opensm-x86-3.3.15-1.x86_64.vib" src="http://files.hypervisor.fr/img/super_mario_piranha_plant.png" alt="" width="100" height="100" /></a><p class="wp-caption-text">ib-opensm x86</p></div>
<div class="wp-caption aligncenter" style="width: 110px"><a href="http://files.hypervisor.fr/zip/ib-opensm-x64-3.3.15-6.x86_64.vib"><img class="   " title="ib-opensm-x64-3.3.15-6.x86_64.vib" src="http://files.hypervisor.fr/img/super_mario_piranha_plant.png" alt="" width="100" height="100" /></a><p class="wp-caption-text">ib-opensm x64</p></div>
<p>Un petit tour par l&#8217;onglet configuration d&#8217;ESXi :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/infiniband/vmhba_mlx4.png" title="vmhba_mlx4" rel="lightbox[4662]"><img class="alignnone size-thumbnail wp-image-4789" title="vmhba_mlx4" src="http://www.hypervisor.fr/wp-content/uploads/2013/05/vmhba_mlx4-150x150.png" alt="" width="150" height="150" /></a> <a href="http://files.hypervisor.fr/img/infiniband/vmnic_ib.png" title="vmnic_ib" rel="lightbox[4662]"><img class="alignnone size-thumbnail wp-image-4790" title="vmnic_ib" src="http://www.hypervisor.fr/wp-content/uploads/2013/05/vmnic_ib-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Et enfin, quelques infos utiles :</p>
<ul>
<li>Les logs d&#8217;openSM sons placés dans /var/log/opensm/{LID}/opensm.log</li>
<li>Les fichiers partitions.conf (qui définie la topologie du réseau) sont à placer dans /scratch/opensm/{LID}/</li>
<li>Pour fixer le MTU à 4092, suivez le <a href="http://www.mellanox.com/related-docs/prod_software/Mellanox_IB_OFED_Driver_for_VMware_vSphere_User_Manual_Rev_1_8_1.pdf#page=20" target="_blank">User Manual de Mellanox</a> et utilisez ce <a href="http://files.hypervisor.fr/zip/partitions.conf" target="_blank">partitions.conf</a></li>
<li>Pour activer ibsrp/target sur Nexenta 3, suivez le <a href="http://files.hypervisor.fr/doc/Basic_COMSTAR_Quick-Start_Guide_for_SRP.pdf" target="_blank">Basic COMSTAR Quick-Start Guide for SRP</a></li>
</ul>
<p>Passons aux gros chiffres. On commence par une vague de vmotion :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/infiniband/ipoib_vmotion.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/ipoib_vmotion.png" alt="" width="433" height="314" /></a></p>
<p style="text-align: left;">On continue avec un test d&#8217;IOPS avec <a href="http://labs.vmware.com/flings/io-analyzer" target="_blank">VMware I/O Analyzer</a> (appliance iometer) :</p>
<p style="text-align: left;"><a href="http://files.hypervisor.fr/img/infiniband/read_vmhba_mlx4_0.2.1-iops.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/read_vmhba_mlx4_0.2.1-iops.png" alt="" width="447" height="335" /></a></p>
<p style="text-align: left;"><a href="http://files.hypervisor.fr/img/infiniband/read_vmhba_mlx4_0.2.1-latency.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/read_vmhba_mlx4_0.2.1-latency.png" alt="" width="447" height="335" /></a>Et on termine par un test de throughput, toujours avec I/O Analyzer :</p>
<p style="text-align: left;"><a href="http://files.hypervisor.fr/img/infiniband/write_vmhba_mlx4_0.2.1-throughput.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/write_vmhba_mlx4_0.2.1-throughput.png" alt="" width="447" height="335" /></a></p>
<p style="text-align: left;"><a href="http://files.hypervisor.fr/img/infiniband/write_vmhba_mlx4_0.2.1-latency.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/infiniband/write_vmhba_mlx4_0.2.1-latency.png" alt="" width="447" height="335" /></a></p>
<p style="text-align: left;">Il ne vous reste plus qu&#8217;à sécher vos larmes et aller vous faire plaisir sur eBay <img src='http://www.hypervisor.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: left;">Ces tests ont été réalisés sur 1 seul port 10Gbps DDR (soit 20Gbps) alors imaginez les résultats <a href="http://www.mellanox.com/page/products_dyn?product_family=161&amp;mtag=connectx_3_pro_vpi_card" target="_blank">avec des cartes 56Gbps</a>&#8230;</p>
<p style="text-align: left;"><em>PS : Un grand merci à vmdude pour son aide et à tous les autres pour nous avoir supporté pendant notre période &#8220;infiniband cay le bien&#8221; <img src='http://www.hypervisor.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=4662</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
	</channel>
</rss>
