{"id":1183,"date":"2013-09-18T00:08:09","date_gmt":"2013-09-17T23:08:09","guid":{"rendered":"http:\/\/www.bussink.ch\/?p=1183"},"modified":"2018-05-23T17:57:19","modified_gmt":"2018-05-23T15:57:19","slug":"infiniband-in-the-lab","status":"publish","type":"post","link":"https:\/\/www.bussink.ch\/?p=1183","title":{"rendered":"InfiniBand in the lab&#8230;"},"content":{"rendered":"<p>Okay, the original title was going to be &#8216;InfiniBand in the lab&#8230; who can afford 10\/40 GbE&#8217;. I&#8217;ve looked in the past at 10GbE switches, and nearly pulled the trigger a few times. Even now the prices of the switches like the Netgear Prosafe or Cisco SG500X are going down, the cost of the 10GbE Adapter is still high. Having tested VSAN in the lab, I knew I wanted more speed for the replication and access to the data, than what I experienced.\u00a0 The kick in the butt in network acceleration that I have used is InfiniBand.<\/p>\n<p>If you search on ebay, you will find lots of very cheap InfiniBand host channel adapters (HCA) and cables. A Dual 20Gbps adapter will cost you between $40 and $80 dollars. The cables will vary between $15 and upto $150 depending of the type of cables. One of the interesting fact is that you can use InfiniBand in a point-to-point configuration. Each InfiniBand network needs a Subnet Manager, This is a configuration for the network, akin a Fabric Channel Zoning.<\/p>\n<p><strong>InfiniBand Data Rates<\/strong><\/p>\n<p>An InfiniBand link is a serial link operating at one of five data rates: single data rate (SDR), double data rate (DDR), quad data rate (QDR), fourteen data rate (FDR), and enhanced data rate (EDR).<\/p>\n<ol>\n<li>10 Gbps or Single Data Rate (SDR)<\/li>\n<li>20 Gbps or Dual Data Rate (DDR)<\/li>\n<li>40 Gbps or Quad Data Rate (QDR)<\/li>\n<li>56 Gbps or Fourteen data rate (FDR)<\/li>\n<li>100Gbps or Enhanced data rate (EDR)<\/li>\n<li>In 2014 will see the announcement of High data rate (HDR)<\/li>\n<li>And the roadmap continues with next data rate (NDR)<\/li>\n<\/ol>\n<p>There is a great entry <a title=\"InfiniBand\" href=\"http:\/\/en.wikipedia.org\/wiki\/InfiniBand\" target=\"_blank\">InfiniBand on wikipedia<\/a> that discuss in larger terms the different signaling of InfiniBand.<\/p>\n<p><strong>InfiniBand Host Channel Adapters<\/strong><\/p>\n<p>Two weeks ago, I found a great lead, information and that pushed me to purchased 6 InfiniBand adapters.<\/p>\n<div>\n<div>\n<div><img alt=\"Item picture\" src=\"http:\/\/thumbs4.ebaystatic.com\/d\/l180\/pict\/251332688263_1.jpg\" border=\"0\" \/>\u00a0 3x Mellanox InfiniBand MHGH28-XTC Dual Port DDR\/CX4 (PCIe Gen2) at $50.<\/div>\n<\/div>\n<\/div>\n<div>\n<div>\n<div><img alt=\"Item picture\" src=\"http:\/\/thumbs4.ebaystatic.com\/d\/l180\/pict\/261282457107_1.jpg\" border=\"0\" \/> 3x Mellanox InfiniBand MCX354A-FCBT CX354A Dual Port FDR\/QDR\u00a0 (PCIe Gen3) at $300.<\/div>\n<\/div>\n<\/div>\n<p><strong>InfiniBand Physical Interconnection<\/strong><\/p>\n<p>Early InfiniBand used copper CX4 cable for SDR and DDR rates with 4x ports \u2014 also commonly used to connect SAS (Serial Attached SCSI) HBAs to external (SAS) disk arrays. With SAS, this is known as an SFF-8470 connector, and is referred to as an &#8220;InfiniBand-style&#8221; Connector.<\/p>\n<div>\n<div>\n<div><img alt=\"Item picture\" src=\"http:\/\/thumbs3.ebaystatic.com\/d\/l180\/pict\/171033917406_1.jpg\" border=\"0\" \/> Cisco 10GB CX4 to CX4 Infiniband Cable 1.5 m<\/div>\n<\/div>\n<\/div>\n<p>The latest connectors used with up to QDR and FDR speeds 4x ports are QSFP (Quad SFP) and can be copper or fiber, depending on the length required.<\/p>\n<p><strong>InfiniBand Switch<\/strong><\/p>\n<p>While you can create a triangle configuration with 3 hosts using Dual Port cards like <a href=\"https:\/\/twitter.com\/vladan\" target=\"_blank\">Vladan Sege<\/a>t (@Vladan) writes in his very interesting article <a title=\"Homelab Storage Network Speedup\" href=\"http:\/\/www.vladan.fr\/homelab-storage-network-speedup\/\" target=\"_blank\">Homelab Storage Network Speed with InfiniBand<\/a> I wanted to see how a InfiniBand switch would work. I only invested in the following older Silverstorm 9024-CU24-ST2 that supports only 10Gbps SDR port. But it has 24x of them. <span style=\"text-decoration: underline;\">Not bad for a $400 switch that supports 24x 10Gbps ports<\/span>.<\/p>\n<div>\n<div>\n<div><img alt=\"Item picture\" src=\"http:\/\/thumbs3.ebaystatic.com\/d\/l180\/pict\/111142162198_1.jpg\" border=\"0\" \/><\/div>\n<div>SilverStorm 10Gbps 24 port InfiniBand switch 9024-CU24-ST2<\/div>\n<\/div>\n<\/div>\n<p>In my configuration each Dual Port Mellanox MHGH28-XTC (DDR Capable) will connect to my SilverStorm switch at only SDR 10Gbps speed, but I have two ports from each hosts. I can also increase the amount of hosts connected to the switch, and use a single Subnet Manager and single IPoIB (IP over InfiniBand) network addressing scheme. At the present time, I think this single IPoIB network addressing might be what is important for the implementation of VSAN in the lab.<\/p>\n<p>Below you see the IB Port Statistics with three vSphere 5.1 hosts connected (1x cable per ESXi as I&#8217;m waiting on a 2nd batch of CX4 cables).<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/silverstorm_3_sdr_links.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1187\" alt=\"Silverstorm 3x SDR Links\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/silverstorm_3_sdr_links.png\" width=\"800\" height=\"327\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/silverstorm_3_sdr_links.png 800w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/silverstorm_3_sdr_links-300x122.png 300w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>The surprise I had when connecting to the SilverStorm 9024 switch is that it did not have the Subnet Manager. But thanks to <a href=\"https:\/\/twitter.com\/hypervisor_fr\" target=\"_blank\">Raphael Schitz<\/a> (@hypervisor_fr) who has successfully with the work &amp; help of others (William Lam &amp; <a href=\"http:\/\/www.zemris.fer.hr\/%7Esgros\/sysadm\/esxi_hacks.shtml\" target=\"_blank\">Stjepan Gro\u0161<\/a>) and great tools (<a href=\"http:\/\/www.v-front.de\/2012\/11\/update-esxi5-community-packaging-tools.html\" target=\"_blank\">ESX Community Packaging Tool<\/a> by <a href=\"https:\/\/twitter.com\/VFrontDe\">Andreas Peetz<\/a> @vFrontDE), repackaged the <a href=\"https:\/\/www.openfabrics.org\/linux-sources.html\" target=\"_blank\">OpenFabrics Enterprise Distribution OpenSM<\/a> (Subnet Manager) so that it can be loaded on vSphere 5.0 and vSphere 5.1. This vSphere installable VIB can be found in his blog article\u00a0 <a title=\"InfiniBand@home votre homelab a 20Gbps\" href=\"http:\/\/www.hypervisor.fr\/?p=4662\" target=\"_blank\">InfiniBand@home votre homelab a 20Gbps<\/a> (In French).<\/p>\n<p>The Link states in the screenshot above went to active, once the <strong>ib-Opensm<\/strong> was installed on the vSphere 5.1 hosts, the <strong>MTU<\/strong> was set and the <strong>partitions.conf<\/strong> configuration file written. Without Raphael&#8217;s ib-opensm, my InfiniBand switch would have been alone and not passed the IPoIB traffic in my lab.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Installing the InfiniBand Adapters in vSphere 5.1<\/strong><\/p>\n<p>Here is the process I used to install the InfiniBand drivers after adding the Host Channel Adapters. You will need three files. The first is the InfiniBand OFED Driver for VMware vSphere 5.x from Mellanox. The 2nd is the<\/p>\n<ol>\n<li><a title=\"VMware Mellanox ConnectX driver\" href=\"https:\/\/my.vmware.com\/web\/vmware\/details\/dt_esxi50_mellanox_connectx\/dHRAYnRqdEBiZHAlZA==\" target=\"_blank\">VMware&#8217;s Mellanox 10Gb Ethernet driver supports products based on the Mellanox ConnectX Ethernet adapters<\/a><\/li>\n<li><a title=\"InfiniBand OFED Drivers\" href=\"http:\/\/www.mellanox.com\/page\/software_overview_ib\" target=\"_blank\">Mellanox InfiniBand OFED Driver for VMware vSphere 5.x<\/a><\/li>\n<li><a title=\"ib-opensm-3.3.15.x86_64.vib\" href=\"http:\/\/files.hypervisor.fr\/zip\/ib-opensm-3.3.15.x86_64.vib\" target=\"_blank\">OpenFabrics.org Enterprise Distribution&#8217;s OpenSM for VMware vSphere 5.1<\/a> packaged by <a href=\"https:\/\/twitter.com\/hypervisor_fr\" target=\"_blank\">Raphael Schitz<\/a><\/li>\n<\/ol>\n<p>You will need to transfer these three packages to each vSphere 5.x host, and install them using the esxcli command line. Before installing the VMware Mellanox ConnectX dcrive, you need to unzip the file, as it&#8217;s the offline zip file you want to supply in the &#8216;esxcli software vib&#8217; install command. I push all the files via SSH in the \/tmp folder. I recommend that the host be put in maintenance mode, as you will need to reboot after the drivers are installed.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esxcli_install_modules.png\"><img loading=\"lazy\" class=\"alignnone  wp-image-1189\" alt=\"esxcli software vib install\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esxcli_install_modules.png\" width=\"632\" height=\"320\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esxcli_install_modules.png 1054w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esxcli_install_modules-300x151.png 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esxcli_install_modules-1024x518.png 1024w\" sizes=\"(max-width: 632px) 100vw, 632px\" \/><\/a><\/p>\n<p>The commands are<\/p>\n<ul>\n<li><strong>unzip mlx4_en-mlnx-1.6.1.2-471530.zip<\/strong><\/li>\n<li><strong>esxcli software vib install -d \/tmp\/mlx4_en-mlnx-1.6.1.2-offline_bundle-471530.zip &#8211;no-sig-check<\/strong><\/li>\n<li><strong>esxcli software vib install -d \/tmp\/MLNX-OFED-ESX-1.8.1.0.zip &#8211;no-sig-check<\/strong><\/li>\n<li><strong>esxcli software vib install -v \/tmp\/ib-opensm-3.3.15.x86_64.vib &#8211;no-sig-check<\/strong><\/li>\n<\/ul>\n<p>Careful with the ib-opensm, the <strong>esxcli -d<\/strong> becomes a <strong>-v<\/strong> for the vib.<\/p>\n<p>At this point, you will reboot the host. Once the host comes backup, there are two more commands you need to do. One is the set the MTU to 4092, and configure the OpenSM per adapter with the partitions.conf file.<\/p>\n<p>The <strong>partitions.conf<\/strong> file is a simple one line file that contains the following config.<\/p>\n<p>[button] Default=0x7fff,ipoib,mtu=5:ALL=full;[\/button]<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esci_set_ib_mtu_and_copy_partitions.conf_.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1190\" alt=\"esxcli set IB mtu and copy partitions.conf\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esci_set_ib_mtu_and_copy_partitions.conf_.png\" width=\"503\" height=\"203\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esci_set_ib_mtu_and_copy_partitions.conf_.png 503w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esci_set_ib_mtu_and_copy_partitions.conf_-300x121.png 300w\" sizes=\"(max-width: 503px) 100vw, 503px\" \/><\/a><\/p>\n<p>The commands are<\/p>\n<ul>\n<li><strong>esxcli system module paramters set -m=mlx4_core -p=mtu_4k=1<\/strong><\/li>\n<li><strong>copy partitions.conf\u00a0 \/scratch\/opensm\/adapter_1_hca\/<\/strong><\/li>\n<li><strong>copy partitions.conf \/scratch\/opensm\/adapter_2_hca\/<\/strong><\/li>\n<\/ul>\n<p>At this point you will be able to configure the Mellanox Adapters in the vSphere Web Client (ConnectX for the MHGH28-XTC)<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esxi_connectx_nic.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1191\" alt=\"ESXi Network Adapter ConnectX\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esxi_connectx_nic.png\" width=\"533\" height=\"248\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esxi_connectx_nic.png 533w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esxi_connectx_nic-300x139.png 300w\" sizes=\"(max-width: 533px) 100vw, 533px\" \/><\/a><\/p>\n<p>The vSwitch view is as follow<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/vswitch1_dual_vmnic_ib.jpg\"><img loading=\"lazy\" class=\"alignnone  wp-image-1196\" alt=\"vSwitch1 Dual vmnic_ib\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/vswitch1_dual_vmnic_ib.jpg\" width=\"535\" height=\"288\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/vswitch1_dual_vmnic_ib.jpg 955w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/vswitch1_dual_vmnic_ib-300x161.jpg 300w\" sizes=\"(max-width: 535px) 100vw, 535px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Configure the Mellanox Adapter in the vSphere Clientand (ConnectX3 for the MCX354A-FCBT)<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esxi_connectx3_nic.png\"><img loading=\"lazy\" class=\"alignnone  wp-image-1193\" alt=\"ESXi Network Adapter ConnectX3\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/esxi_connectx3_nic.png\" width=\"632\" height=\"266\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esxi_connectx3_nic.png 780w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/esxi_connectx3_nic-300x126.png 300w\" sizes=\"(max-width: 632px) 100vw, 632px\" \/><\/a><\/p>\n<p>I&#8217;m still waiting on the delivery of some QSFP Cable for the ConnectX Adapters. This config will be done in a triangular design until I\u00a0find a QDR Switch of reasonable cost.<\/p>\n<p>This article wouldn&#8217;t be complete without a bench mark. Here is the screenshot I quickly took from the vCenter Server Appliance, that I bumped to 4 vCPU and 22GB that I vMotioned between two hosts with SDR (10Gbps) connectivity.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/vmotion_vcsa_22gb_memory.jpg\"><img loading=\"lazy\" class=\"alignnone  wp-image-1199\" alt=\"vCSA 22GB vMotion at SDR speed\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2013\/09\/vmotion_vcsa_22gb_memory.jpg\" width=\"576\" height=\"290\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/vmotion_vcsa_22gb_memory.jpg 935w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2013\/09\/vmotion_vcsa_22gb_memory-300x151.jpg 300w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>This is where I&#8217;m going to stop for now.\u00a0 Hope you enjoyed it.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Okay, the original title was going to be &#8216;InfiniBand in the lab&#8230; who can afford 10\/40 GbE&#8217;. I&#8217;ve looked in the past at 10GbE switches, and nearly pulled the trigger a few times. Even now the prices of the switches like the Netgear Prosafe or Cisco SG500X are going down, the cost of the 10GbE [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1210,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,9],"tags":[],"_links":{"self":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/1183"}],"collection":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1183"}],"version-history":[{"count":20,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/1183\/revisions"}],"predecessor-version":[{"id":1209,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/1183\/revisions\/1209"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/media\/1210"}],"wp:attachment":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}