<?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>frankdenneman.nl &#187; Networking</title>
	<atom:link href="http://frankdenneman.nl/category/networking/feed/" rel="self" type="application/rss+xml" />
	<link>http://frankdenneman.nl</link>
	<description></description>
	<lastBuildDate>Wed, 16 May 2012 07:22:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>IP-Hash versus LBT</title>
		<link>http://frankdenneman.nl/2011/02/ip-hash-versus-lbt/</link>
		<comments>http://frankdenneman.nl/2011/02/ip-hash-versus-lbt/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 13:22:08 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[IP-HASH]]></category>
		<category><![CDATA[LBT]]></category>
		<category><![CDATA[Physical Load]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1558</guid>
		<description><![CDATA[vSwitch configuration and load-balancing policy selection are major parts of a virtual infrastructure design. Selecting a load-balancing policy can have impact on the performance of the virtual machine and can introduce additional requirements at the physical network layer. Not only do I spend lots of time discussing the various options during design sessions, it is [...]<p><a href="http://frankdenneman.nl/2011/02/ip-hash-versus-lbt/">IP-Hash versus LBT</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>vSwitch configuration and load-balancing policy selection are major parts of a virtual infrastructure design. Selecting a load-balancing policy can have impact on the performance of the virtual machine and can introduce additional requirements at the physical network layer. Not only do I spend lots of time discussing the various options during design sessions, it is also an often discussed topic during the VCDX defense panels.</p>
<p>More and more companies seem to use IP-hash as there load balancing policy. The main argument seems to be increased bandwidth and better redundancy. Even when the distributed vSwitch is used, most organizations still choose IP-hash over the new load balancing policy “Route based on physical NIC load”.  This article compares both load-balancing policies and lists the characteristics, requirements and constraints of both load-balancing policies.</p>
<p><strong>IP-Hash</strong><br />
The main reason for selecting IP-Hash seems to be increased bandwidth as you aggregate multiple uplinks,  unfortunately adding more uplinks does not proportionally increase the available bandwidth for the virtual machines.</p>
<p><strong>How IP-Hash works</strong><br />
Based on the source and destination IP address together the VMkernel distributes the load across the available NICs in the vSwitch. The calculation of outbound NIC selection is described in <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1007371">KB article 1007371</a>.  To calculate the IP-hash yourself convert both the source and destination IP-addresses to a Hex value and compute the modulo over the number of available uplinks in the team. For example</p>
<p>Virtual Machine 1 opens two connections, one connection to a backup server and one connection server to an application server.</p>
<table id="hor-zebra">
<tbody>
<tr class="odd">
<td>Virtual Machine</td>
<td>IP-Address</td>
<td>Hex Value</td>
</tr>
<tr>
<td>VM1</td>
<td>164.18.1.84</td>
<td>A4120154</td>
</tr>
<tr class="odd">
<td>Backup Server</td>
<td>164.18.1.160</td>
<td>A41201A0</td>
</tr>
<tr>
<td>Application Server</td>
<td>164.18.1.195</td>
<td>A41201C3</td>
</tr>
</tbody>
</table>
<p>The vSwitch is configured with two uplinks.</p>
<p>Connection 1: 	<em>VM1 &gt; Backup Server 	(A4120154 Xor A41201A0 = F4) % 2 = 0</em><br />
Connection 2: 	<em>VM1 &gt; Application Server	(A4120154 Xor A41201C3 = 97) % 2 = 1</em></p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2011/02/ip-hash-1.png"><img class="aligncenter size-full wp-image-1559" title="ip-hash-1" src="http://frankdenneman.nl/wp-content/uploads/2011/02/ip-hash-1.png" alt="" width="435" height="401" /></a></p>
<p>IP-Hash treats each connection between a source and destination IP address as a unique route and the vSwitch will distributed each connection across the available uplinks in the vSwitch. However due to the pNIC to vNIC affiliation, any connection is on a per flow basis. A flow can’t overflow to another uplink; this means that a connection is still limited to the speed of a single physical NIC.  A real-world user case for IP-hash would be a backup server which requires a lot of bandwidth across multiple connections other than that; there are very few workloads that require bandwidth that can’t be satisfied by a single adapter.</p>
<p><strong>Complexity</strong> –In order for IP-hash to function correctly additional configuration at the network layer is required:</p>
<p style="padding-left: 30px;"><strong>EtherChannel</strong>: IP-hash needs to be configured on the vSwitch if EtherChannel technology is used at the physical switch layer. With EtherChannel the switch will load balance connections over multiple ports in the EtherChannel. Without IP-hash, the VMkernel only expects to receive information on a specific MAC address on a single vNIC. Resulting in some sessions go through to the virtual machine while other sessions will be dropped. When IP-hash is selected, then the VMkernel will accept inbound mac addresses on both active NICs<br />
<strong></strong></p>
<p style="padding-left: 30px;"><strong>EtherChannel configuration</strong>: As vSphere does not support dynamic link aggregation (LACP), none of the members can be set up to auto-negotiate membership and therefore physical switches have to be configured with static EtherChannel.<br />
<strong></strong></p>
<p style="padding-left: 30px;"><strong>Switch configuration</strong>: vSphere supports EtherChannel from one switch to the vSwitch. This switch can be a single switch or a stack of individual switches that act as one, but vSphere does not support EtherChannel from two separate – non stacked – switches, when the EtherChannel connect to the same vSwitch.</p>
<p><strong>Additional overhead</strong> – For each connection the VMkernel needs to select the appropriate uplink. If a virtual machine is running a front-end application and communicates 95% of its time to the backend database, the IP-Hash calculation is almost pointless.  The VMkernel needs to perform the math for every connection and 95% of the connections will use the same uplink because the Algorithm will always result in the same hash. </p>
<p><strong>Utilization-unaware</strong> &#8211; It is possible that a second virtual machine is assigned to use the same uplink as the virtual machine that is already saturating the link. Let’s use the first example and introduce a new virtual machine VM3. Due to the backup window, VM3 connects to the backup server.</p>
<table id="hor-zebra">
<tbody>
<tr class="odd">
<td>Virtual Machine</td>
<td>IP-Address</td>
<td>Hex Value</td>
</tr>
<tr>
<td>VM3</td>
<td>164.18.1.86</td>
<td>A4120156</td>
</tr>
</tbody>
</table>
<p>Connection 3: 	<em>VM3&gt; Backup Server 		(A4120156 Xor A41201A0 = F6) % 2 = 0</em></p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2011/02/ip-hash-2.png"><img class="aligncenter size-full wp-image-1560" title="ip-hash-2" src="http://frankdenneman.nl/wp-content/uploads/2011/02/ip-hash-2.png" alt="" width="580" height="401" /></a></p>
<p>Due to IP-HASH load balancing policy being unaware of utilization it will not rebalance if the uplink is saturated or if virtual machine are added or removed due to power-on or (DRS) migrations. DRS is unaware of network utilization and does not initiate a rebalance if a virtual machine cannot send or receive packets due to physical NIC saturation. In worst-case scenario DRS can migrate virtual machines to other ESX servers, leaving all the virtual machine that are saturating a NIC while the other virtual machines utilizing the other NICs are migrated. Admitted it’s a little bit of a stretch, but being aware of this behavior allows you to see the true beauty of the Load-Based Teaming team policy.</p>
<p><strong>Possible Denial of Service</strong> –Due to the pNIC-to-vNIC affiliation per connection a misbehaving virtual machine generating many connections can cause some sort of denial of service on all uplinks on the vSwitch. If this application would connect to a vSwitch with “Port-ID” or “based on physical load” only one uplink would be affected.</p>
<p><strong>Network failover detection Beacon Probing</strong> – Beacon probe does not work correctly if EtherChannel is used. ESX broadcast beacon packets out of all uplinks in a team. The physical switch is expected to forward all packets to other ports. In EtherChannel mode, the physical switch will not send the packets because it’s considered as one link. No beacon packets will be received and can interrupt network connections. Cisco switches will report flapping errors. See <a href="http://http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1012819">KB article 1012819</a>.</p>
<p><strong>Route based on physical NIC Load</strong></p>
<p>VMware vSphere 4.1 introduced a new load-balancing policy available on distributed vSwitches. Route based on physical NIC load, also known as Load Based Teaming (LBT) takes the virtual machine network I/O load into account and tries to avoid congestion by dynamically reassigning and balancing the virtual switch port to physical NIC mappings.</p>
<p><strong>How LBT works</strong><br />
Load Based Teaming maps vNICs to pNICs and remaps the vNIC-to-PNIC affiliation if the load exceeds specific thresholds on an uplink.<br />
LBT uses the same initial port assignment as the “originating port id” load balancing policy, resulting in the first vNIC being affiliated to the first pNIC, the second vNIC to the second pNIC, etc.  After initial placement, LBT examines both ingress and egress load of each uplink in the team and will adjust the vNIC to pNIC mapping if an uplink is congested. The NIC team load balancer flags a congestion condition if an uplink experiences a mean utilization of 75% or more over a 30-second period.</p>
<p><strong>Complexity</strong> – LBT requires standard Access or Trunk ports. LBT does not support EtherChannels. Because LBT is moving flows among the available uplinks of the vSwitch, it may create packets re-ordering. Even though the reshuffling process is not done often (worst case scenario every 30 seconds) it is recommended to enable PortFast or TrunkFast on the switch ports.</p>
<p><strong>Additional overhead</strong> – The VMkernel will examine the congestion condition after each time window, this calculation creates a minor overhead opposed to using the static load-balancing policy “originating port-id”.</p>
<p><strong>Utilization aware</strong> – vNIC to pNIC mappings will be adjusted if the VMkernel detects congestion on an uplink. In the previous example both VM1 and VM3 shared the same connection due to the IP-hash calculation. Both connections can share the same physical NIC as long as the utilization stays below the threshold. It is likely that both vNICs are mapped to separate physical NICs.<br />
In the next example a third virtual machine is powered up and is mapped to NIC1. Utilization of NIC1 exceeds the mean utilization of 70% over a period of more than 30 seconds. After identifying congestion LBT remaps VM2 to NIC2 to decrease the utilization of NIC1.</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2011/02/ip-hash-3.png"><img class="aligncenter size-full wp-image-1561" title="ip-hash-3" src="http://frankdenneman.nl/wp-content/uploads/2011/02/ip-hash-3.png" alt="" width="913" height="380" /></a></p>
<p>Although LBT is not integrated in DRS it can be viewed as complimentary technology next to DRS. When DRS migrates virtual machines onto a host, it is possible that congestion is introduced on a particular physical NIC. Due to vNIC to pNIC mapping based on actual load, LBT actively tries to avoid congestion at physical NIC level and attempts to reallocate virtual machines. By remapping vNiCs to pNICs it will attempt to make as much bandwidth available to the virtual machine, which ultimately benefits the overall performance of the virtual machine.</p>
<p><strong>Recommendations</strong><br />
When using distributed virtual Switches it is recommended to use Load-Based teaming instead of IP-hash. LBT has no additional requirements on the physical network layer, reduces complexity and is able to adjust to fluctuating workloads. Due to the remapping of vNICs to pNICs based on actual load, LBT attempts to allocate as much bandwidth possible where IP-hash just simply distributes connections across the available physical NICs.</p>
<p><a href="http://frankdenneman.nl/2011/02/ip-hash-versus-lbt/">IP-Hash versus LBT</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1558" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2011/02/ip-hash-versus-lbt/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>vSwitch Failback and High Availability</title>
		<link>http://frankdenneman.nl/2010/10/vswitch-failover-and-high-availability/</link>
		<comments>http://frankdenneman.nl/2010/10/vswitch-failover-and-high-availability/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 09:20:32 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Failover]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[vswitch]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1343</guid>
		<description><![CDATA[One setting most admins get caught off-guard is vSwitch Failback setting in combination with HA. If the management network vSwitch is configured with Active/Standby NICs and the HA isolation response is set to “Shutdown” VM or “Power-off” VM it is advised to set the vSwitch Failback mode to No. If left at default (Yes), all [...]<p><a href="http://frankdenneman.nl/2010/10/vswitch-failover-and-high-availability/">vSwitch Failback and High Availability</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>One setting most admins get caught off-guard is vSwitch Failback setting in combination with HA. If the management network vSwitch is configured with Active/Standby NICs and the HA isolation response is set to “Shutdown” VM or “Power-off” VM it is advised to set the vSwitch Failback mode to No. If left at default (Yes), all the ESX hosts in the cluster or entire virtual infrastructure might issue an Isolation response if one of the management network physical switches is rebooted. Here’s why:</p>
<p>Just a quick rehash:</p>
<p><strong>Active\Standby</strong><br />
One NIC (vmnic0) is assigned as active to the management\service console portgroup, the second NIC (vmnic1) is configured as standby. The vMotion portgroup is configured with the first NIC (vmnic0) in standby mode and the second NIC as Active (vmnic1).</p>
<div id="attachment_1344" class="wp-caption aligncenter" style="width: 326px"><a href="http://frankdenneman.nl/wp-content/uploads/2010/10/Active-standby-vSwitch0.png"><img class="size-full wp-image-1344" title="Active-standby-vSwitch0" src="http://frankdenneman.nl/wp-content/uploads/2010/10/Active-standby-vSwitch0.png" alt="Active Standby setup management network vSwitch0" width="316" height="217" /></a><p class="wp-caption-text">Active Standby setup management network vSwitch0</p></div>
<p><strong>Failback</strong><br />
The Failback setting determines if the VMkernel will return the uplink (NIC) to active duty after recovery of a downed link or failed NIC. If the Failback setting is set to Yes the NIC will return to active duty, when Failback is set to No the failed NIC is assigned the Standby role and the administrator must manually reconfigure the NIC to the active state.<br />
<strong><br />
Effect of Failback yes setting on environment </strong><br />
When using the default setting of Failback unexpected behavior can occur during maintenance of a physical switch. Most switches, like those from Cisco, initiate the port after boot, so called Lights on. The port is active but is still unable to receive or transmitting data.  The process from Lights-on to forwarding mode can take up to 50 seconds; unfortunately ESX is not able to distinguish between Lights-on status and forwarding mode, there for treating the link as usable and will return the NIC to active status again.</p>
<p>High Availability will proceed to transmit heartbeats and expect to receive heartbeats, after missing 13 seconds of heartbeats HA will try to ping its Isolation Address, due to the specified Isolation respond it will shut down or power-off the virtual machines two seconds later to allow other ESX hosts to power-up the virtual machines. But because it is common – recommended even – to configure each host in the cluster in an identical manner, each active NIC used by the management network of every ESX host connect to the same physical switch. Due to this design, once the switch is booted, a cluster wide Isolation response occurs resulting in a cluster wide outage.</p>
<p>To allow switch maintenance, it’s better to set the vSwitch failback mode to No. Selecting this setting introduces an increase of manual operations after failure or certain maintenance operations, but will reduce the change of “false positives” and cluster-wide isolation responses.</p>
<p><a href="http://frankdenneman.nl/2010/10/vswitch-failover-and-high-availability/">vSwitch Failback and High Availability</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1343" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/10/vswitch-failover-and-high-availability/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Load Based Teaming</title>
		<link>http://frankdenneman.nl/2010/07/load-based-teaming/</link>
		<comments>http://frankdenneman.nl/2010/07/load-based-teaming/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:47:56 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[LBT]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=1055</guid>
		<description><![CDATA[In vSphere 4.1 a new network Load Based Teaming (LBT) algorithm is available on the distributed virtual switch dvPort groups. The option “Route based on physical NIC load” takes the virtual machine network I/O load into account and tries to avoid congestion by dynamically reassigning and balancing the virtual switch port to physical NIC mappings. [...]<p><a href="http://frankdenneman.nl/2010/07/load-based-teaming/">Load Based Teaming</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>In vSphere 4.1 a new network Load Based Teaming (LBT) algorithm is available on the distributed virtual switch dvPort groups. The option “<em>Route based on physical NIC load</em>” takes the virtual machine network I/O load into account and tries to avoid congestion by dynamically reassigning and balancing the virtual switch port to physical NIC mappings.</p>
<p>The three existing load-balancing policies, Port-ID, Mac-Based and IP-hash use a static mapping between virtual switch ports and the connected uplinks. The VMkernel assigns a virtual switch port during the power-on of a virtual machine, this virtual switch port gets assigned to a physical NIC based on either a round-robin- or hashing algorithm, but all algorithms do not take overall utilization of the pNIC into account. This can lead to a scenario where several virtual machines mapped to the same physical adapter saturate the physical NIC and fight for bandwidth while the other adapters are underutilized. LBT solves this by remapping the virtual switch ports to a physical NIC when congestion is detected.</p>
<p>After the initial virtual switch port to physical port assignment is completed, Load Based teaming checks the load on the dvUplinks at a 30 second interval and dynamically reassigns port bindings based on the current network load and the level of saturation of the dvUplinks.  The VMkernel indicates the network I/O load as congested if transmit (Tx) or receive (Rx) network traffic is exceeding a 75% mean over a 30 second period. (The mean is the sum of the observations divided by the number of observations).</p>
<p>An interval period of 30 seconds is used to avoid MAC address flapping issues with the physical switches. Although an interval of 30 seconds is used, it is recommended to enable port fast (trunk fast) on the physical switches, all switches must be a part of the same layer 2 domain.</p>
<p><a href="http://frankdenneman.nl/2010/07/load-based-teaming/">Load Based Teaming</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1055" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/07/load-based-teaming/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Removing orphaned Nexus DVS</title>
		<link>http://frankdenneman.nl/2010/03/removing-orphaned-nexus-dvs/</link>
		<comments>http://frankdenneman.nl/2010/03/removing-orphaned-nexus-dvs/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 20:07:09 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[1000V]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[DVS]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[VSM]]></category>

		<guid isPermaLink="false">http://frankdenneman.nl/?p=776</guid>
		<description><![CDATA[During the test of the Cisco Nexus 1000V the customer deleted the VSM first without removing the DVS using commands from within the VSM, ending up with an orphaned DVS. One can directly delete the DVS from the DB, but there are bunch of rows in multiple tables that need to be deleted. This is [...]<p><a href="http://frankdenneman.nl/2010/03/removing-orphaned-nexus-dvs/">Removing orphaned Nexus DVS</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>During the test of the Cisco Nexus 1000V the customer deleted the VSM first without removing the DVS using commands from within the VSM, ending up with an orphaned DVS. One can directly delete the DVS from the DB, but there are bunch of rows in multiple tables that need to be deleted. This is risky and may render DB in some inconsistent state if an error is made while deleting any rows. Luckily there is a more elegant way to remove an orphaned DVS without hacking and possibly breaking the vCenter DB.</p>
<p><strong>A little background first:</strong><br />
When installing the Cisco Nexus 1000V VSM, the VSM uses an extension-key for identification. During the configuration process the VSM spawns a DVS and will configure it with the same extension-key. Due to the matching extension keys (extension session) the VSM owns the DVS essentially.<br />
And only the VSM with the same extension-key as the DVS can delete the DVS.</p>
<p>So to be able to delete a DVS, a VSM must exist registered with the same extension key.</p>
<p>If you deleted the VSM and are stuck with an orphaned DVS, the first thing to do is to install and configure a new VSM. Use a different switch name than the first (deleted) VSM. The new VSM will spawn a new DVS matching the switch name configured within the VSM.<br />
The first step is to remove the new spawned DVS and do this the proper way using commands from within the VSM virtual machine.</p>
<p><span id="more-776"></span><strong>Removing DVS with Nexus VSM virtual machine:</strong><br />
Log in VSM<br />
Ping the vCenter to make sure you have a connection.</p>
<pre>conf t</pre>
<pre>svs connection <em>connection_name</em></pre>
<p>The <em>connection_name</em> is created during the configuration of the connection between the VSM and the vCenter server. The default connection name is vCenter.</p>
<p>To query the current connection name:</p>
<pre>show svs connections</pre>
<p>If the SVS connection output does not show a datacenter name, but the minus (-) sign, you must specify the vCenter datacenter where the DVS is created, with the following command:<br />
(In my case I needed to specify the datacenter even when the datacenter name was listed in the svs connection)</p>
<pre>vmware dvs datacenter-name name (case sensitive)</pre>
<p>e.g: vCenter datacenter name = DATACenter</p>
<pre>vmware dvs datacenter-name DATACenter</pre>
<p>Use the following command to remove the DVS:</p>
<pre>no vmware dvs</pre>
<p>The following warning appears:</p>
<pre>This will remove the DVS from the vCenter Server and any associated port-groups</pre>
<pre>Do you really want to proceed (yes/no)</pre>
<p>When selecting Yes, the following output appears in the VSM command prompt:</p>
<pre>Note: Command execution in progress, please wait..</pre>
<p>Simultaneously the recent task window in vCenter shows two tasks:<br />
Delete folder<br />
Delete vNetwork Distributed Switch</p>
<p>Select Network Inventory  view to check if the DVS is deleted.</p>
<p><strong>Removing DVS after destroying the VSM virtual machine.</strong><br />
The first part was the easy part, removing a DVS after the corresponding VSM is removed is a bit trickier.<br />
First we must change the hostname of the VSM to reflect the switch name of the orphaned DVS.</p>
<p>Log in VSM</p>
<pre>conf t
hostname
exit
copy run start</pre>
<p>After setting the new hostname, the command prompt changes immediately to the &#8220;new&#8221; hostname.<br />
At this moment, the VSM is using the same switch name, but it still uses a different extension-key as the orphaned DVS.<br />
We need to change the extension key of the VSM to match the extension key of the orphaned DVS. Both old and new extension keys are listed in the vCenter database. First we need to know which extension-key the VSM is currently using. This key is going to be deleted from the vCenter DB.<br />
This is done by using the following command in the VSM:</p>
<pre>show vmware vc extension-key</pre>
<p>The command prompt returns with an extension-key e.g:</p>
<pre>Cisco_Nexus_1000V_1234101238</pre>
<p>We need to remove this extension key from the vCenter DB, to do this we are going to use the managed Object Browser or (MOB. The Managed Object Browser is a web-based tool for working with the API. This tool enables you to browse managed objects on vCenter Server.<br />
Open an Internet Explorer window to access the vCenters’ MOB.<br />
Enter https:///mob</p>
<p>See <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=568529">KB 568529</a> for more information about using the Managed Object Browser operations.<br />
Log in with user with administrator rights in vCenter.<br />
Before we are going to unregister the “new” extension-key, we need to know which extension-key the old VSM used.  (the values listed in italic are examples, the values in your environment can be different)</p>
<p>Go to:<br />
ServiceContent: 	content<br />
rootFolder: 		<em>group-d8</em><br />
childEntity: 	<em>datacenter-76</em><br />
networkFolder: 	<em>group-n15</em><br />
childEntity:		<em>group-n3456</em><br />
childEntity: 	<em>dvs-3457</em><br />
DVSConfigInfo: 	config</p>
<p>At this moment, two keys exists, one key matching the orphaned DVS and one used by the newly spawned DVS during configuration of the second VSM. Copy the old key matching the orphaned DVS to notepad file; we are using that key later on.<br />
Now copy the key matching the new DVS, this key must be removed using the ExtensionManager. For example:<br />
extensionKey: &#8220;Cisco_Nexus_1000V_1234101238”</p>
<p>Go to: https://vcenterhostname/mob/?moid=ExtensionManager or follow the following path from the MOB home screen:<br />
ServiceContent: content<br />
extensionManger: ExtensionManager<br />
void: unregisterExtension<br />
extensionKey (required) string: paste key you copied from the DVSConfigInfo<br />
for example:</p>
<p>extensionKey (required) string: Cisco_Nexus_1000V_8321457891<br />
Click on InvokeMethod<br />
This will return with the status: Method invocation result: void</p>
<p>Now return to the VSM command prompt and use the old extension id of the first VSM (saved in notepad file).</p>
<pre>vmware vc extension-key</pre>
<p>If the following error appears:</p>
<pre>Cannot change the extension key while a connection is already enabled</pre>
<p>the svs connection is still active and you must disconnect the current SVS connection by entering the following commands:</p>
<pre>svs connection vcenter
no connect</pre>
<p>Issue the vmware vc extension-key again after closing the svs connection.<br />
At this point the VSM is configured with a matching extension-key as the orphaned DVS, but the VSM must registered within vCenter with this extension-key. To do this, you must use the extension.xml of the VSM, which is available for download on the webpage of the Nexus VSM.<br />
(Before I downloaded the xml file I restarted the vCenter, don’t know if this is necessary, but I just wanted to be sure that the prior configuration settings are saved and committed to the database.)</p>
<p><strong>Register the VSM by importing the xml with the extension key of the orphaned DVS switch:</strong><br />
open internet explorer and enter the ip-address of the VSM.<br />
right click the link to save the cisco_nexus_1000v_extension.xml to your computer<br />
open vcenter<br />
Select Plug-ins<br />
Manage Plug-ins&#8230;<br />
Right click on whitespace inside Plug-in Manager and select the option New Plug-in&#8230;<br />
click the Browse button and select the saved xml file<br />
click on Ok.</p>
<p>now the Cisco_Nexus_1000v_old extension key code appears in Available Plug-ins section.</p>
<p>At this point the VSM is using the matching switch name and extension key of the orphaned DVS and is registered with the extension key in vCenter.Time to connect the VSM to vCenter.  This will spawn a new DVS, this DVS will use the same extension key and switch name as the orphaned DVS and override all the info in the vCenter database. But because a extension session will exist we can remove the newly spawned DVS from the VSM using the commands mentioned in the first part of this article.<br />
Return to the command prompt of the VSM and issue the following commands;</p>
<pre>conf t
svs connection vcenter
vmware dvs datacenter_name datacenter
</pre>
<p>The DVS is created with the same name as the orphaned dvs and overwriting the old configuration. When this is completed check the network inventory view.<br />
return to command promt and issue the command</p>
<pre>no vmware dvs</pre>
<p>to remove the new-old DVS.</p>
<p>If you will receive an error follow the steps mentioned in the <strong>Removing DVS with Nexus VSM virtual machine section</strong>.<br />
The orphaned DVS is removed.<br />
More information about the Nexus commands go visit the <a href="http://www.cisco.com/en/US/docs/switches/datacenter/nexus1000/sw/4_0/command/reference/n1000v_cmd_ref.html">online nexus command reference</a></p>
<p><a href="http://frankdenneman.nl/2010/03/removing-orphaned-nexus-dvs/">Removing orphaned Nexus DVS</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=776" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2010/03/removing-orphaned-nexus-dvs/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>NFS and IP-HASH loadbalancing</title>
		<link>http://frankdenneman.nl/2009/11/nfs-and-ip-hash-loadbalancing/</link>
		<comments>http://frankdenneman.nl/2009/11/nfs-and-ip-hash-loadbalancing/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 12:42:45 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[IP-HASH]]></category>
		<category><![CDATA[NFS]]></category>

		<guid isPermaLink="false">http://frankdenneman.wordpress.com/?p=324</guid>
		<description><![CDATA[My background is Fibre Channel and beginning 2009 I implemented a large iSCSI environment. The “other” storage protocol supported by VMware, NFS, is rather unknown to me. And to be honest I really tried to keep away from it as much as possible, thinking it was not a proper enterprise worthy solution. That changed this [...]<p><a href="http://frankdenneman.nl/2009/11/nfs-and-ip-hash-loadbalancing/">NFS and IP-HASH loadbalancing</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>My background is Fibre Channel and beginning 2009 I implemented a large iSCSI environment. The “other” storage protocol supported by VMware, NFS, is rather unknown to me. And to be honest I really tried to keep away from it as much as possible, thinking it was not a proper enterprise worthy solution. That changed this month as I was asked to perform a design review of an environment which relies completely of NFS storage. This customer decided to use IP-Hash as load-balancing policy for their NFS vSwitch, but what Impact does this have on the NFS environment?</p>
<p><span id="more-324"></span></p>
<p>First of all, unlike the the default Port-based load balancing policy, IP-Hash has got some technical requirements.</p>
<p>The physical switch must be configured with STATIC LACP (a.k.a. etherchannel, for Cisco switches) Dynamic LACP is not supported by VMware.  KB article <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1004048">1004048</a> focuses on the configuration of LACP between the ESX server and physical switches.</p>
<p>Another technical requirement is that all uplinks in the vSwitch need to be active as the physicall switch is not aware of certain status of the uplink inside the vSwitch. David Marotta (VMware) explained the theory in such a way, I cannot forget this setting after hearing the story.</p>
<blockquote><p>Because the pSwitch thinks it can send traffic to a particular VM down any of the pNICs. So all pNICs should be Active. Otherwise traffic to VM-A could be sent by the pSwitch to pNIC-2, and if the vSwitch thinks pNIC-2 is not Active for the port group used by VM-A, the vSwitch will drop it. Then VM-A will never get the packet. And it will sit in a corner, lonely and depressed, wondering why nobody calls it anymore.</p></blockquote>
<p>Etherchannels and standby uplinks can introduce “Macflaps”, Duncan Epping (@DuncanYB) has written an excellent article on this as well <a href="http://www.yellow-bricks.com/2009/10/12/active-standby-etherchannels/">Active / Standby etherchannels?</a></p>
<p>Besides the technical requirements of IP-hash, It will not do perfect load-balancing out of the box. Remembering Ken Cline&#8217;s (@clinek) <a href="http://kensvirtualreality.wordpress.com/2009/04/05/the-great-vswitch-debate%E2%80%93part-3/">the great vSwitch debate series </a>about vSwitches I knew you must dive in to the algorithm used by IP-Hash load balancing and pick specific IP-addresses to make IP-hash load-balancing work.</p>
<p>But how does this IP-Hash algorithm work? As Ken cline so eloquently stated;</p>
<blockquote><p>Take an exclusive OR of the Least Significant Byte (LSB) of the source and destination IP addresses and then compute the modulo over the number of pNICs.</p></blockquote>
<p>OK, right! So how can we calculate it so we know if if the environment is balanced? Instead of the following the algorithm stated by Ken, I&#8217;ve used the method described in KB article <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1007371">1007371</a></p>
<p>Waiver<br />
<em>The ip-addresses which are used in this example are ficticious, the ip-addresses are not based on real-life addresses, if those are in use by some company, it’s purely coincidental.</em></p>
<p><span style="color:#993300;"> </span></p>
<p><span style="color:#993300;">Step 1: Convert IP address to a HEX value</span><br />
Use a IP Hex Converter tool to convert the IP addresses to Hex. An online Hex converter tool can be found at <a href="http://www.kloth.net/services/iplocate.php">http://www.kloth.net/services/iplocate.php</a></p>
<p>In this example I use a vswitch with 2 uplinks. When using IP-hash, the first uplink has a IP binary representation of 0, the second uplink has a IP binary representation of 1.</p>
<p>The IP-Hash is calculated on source IP address, the VMkernel NFS IP address and the destination address, the NFS array IP address.</p>
<p>The VMknic has in this example the ip address of 145.10.44.10,<br />
The first IP address of the NAS is 145.10.44.80 and the second address is 145.10.44.90</p>
<p>HEX: ESX VMkernel:   145.10.44.10 = 910A2C0A<br />
HEX: NFS address 1:  145.10.44.80 = 910A2C50<br />
HEX: NFS address 2:  145.10.44.90 = 910A2C5A</p>
<p><span style="color:#993300;"> </span></p>
<p><span style="color:#993300;">Step 2 Calculate the binary representation of the HASH</span><br />
Now lets calculate the binary representation of the uplink’s IP address. I use windows for my desktop, so I use calc.exe for this example.</p>
<p>Open calc.exe and select Programmer, select the option HEX and Qword and paste the HEX value of the VMkernel NIC</p>
<p><a href="http://frankdenneman.nl/wp-content/uploads/2009/11/calc.png"><img class="aligncenter size-medium wp-image-329" title="calc" src="http://frankdenneman.nl/wp-content/uploads/2009/11/calc.png?w=300" alt="calc" width="300" height="276" /></a></p>
<p>Now press <a href="//en.wikipedia.org/wiki/Xor">Xor</a> , enter the (first) NFS IP address in HEX format (910A2C50) and click on the = button. The result is 5a, press the option Mod (modulo) and use the number of uplinks as value (2). Click on the = button to calculate the <a href="http://en.wikipedia.org/wiki/Modulo">modulo</a>.</p>
<p>The result of this calculation is the number 0 (zero). This means that IP-hash chooses the first uplink because the hash and the uplink both have an binary representation of 0.<br />
Now lets calculate the second hash. In short;<br />
<strong>HEX value “VMkernel NIC” Xor HEX value “NFS address 2”:</strong><br />
910A2C0A Xor 910A2C5A = 50    MOD 2 =           0</p>
<p>The result of this calculation is also 0 (zero), this means that the VMkernel does not balance traffic and will send traffic to across one uplink.</p>
<p>One ip-address of the NFS array needs to be changed to ensure that the VMkernel wil balance outbound traffic. For this example, IP-address 2: 145.10.44.90 is changed to 145.10.44.81, the HEX value of this address is 910A2C51.</p>
<p>Now lets calculate the binary representation.<br />
910A2C0A Xor 910A2C51 = 5B    MOD 2 =           1.</p>
<p>The result of this calculation is 1 (one) The VMkernel chooses the second uplink because it has the same binary representation of the Hash. Hereby balancing outbound NFS traffic across the two uplinks.</p>
<p>Using IP-Hash to load-balance is a excellent choice, but you do need to fulfill certain technical requirements to get it supported by VMware and plan your IP-address scheme accordingly to get the most out of this load-balancing Policy.</p>
<p>One last thing, because I knew little about NFS, I turned to my primary source of storage related VMware articles Chad Sakac (@sakacc) and he written an excellent article about the use of NFS and VMware together with Vaughn Stewart (@vstewed)  of NetApp. Please read it if you haven’t already.  <a href="http://virtualgeek.typepad.com/virtual_geek/2009/06/a-multivendor-post-to-help-our-mutual-nfs-customers-using-vmware.html">A “Multivendor Post” to help our mutual NFS customers using VMware</a>. Again it&#8217;s truely excellent!</p>
<p><a href="http://frankdenneman.nl/2009/11/nfs-and-ip-hash-loadbalancing/">NFS and IP-HASH loadbalancing</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=324" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2009/11/nfs-and-ip-hash-loadbalancing/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Flex10 update</title>
		<link>http://frankdenneman.nl/2009/07/flex10-update/</link>
		<comments>http://frankdenneman.nl/2009/07/flex10-update/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 17:19:43 +0000</pubDate>
		<dc:creator>Frank Denneman</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Flex10]]></category>
		<category><![CDATA[NC373i]]></category>
		<category><![CDATA[Virtual Connect]]></category>

		<guid isPermaLink="false">http://frankdenneman.wordpress.com/?p=203</guid>
		<description><![CDATA[In my first post I had a question about the path data travels when sent to a “standby” virtual connect module. To quote my own question : “What will happen if the VMkernel decides to use that nic to send IO? Is the Flexnic aware of the standby status of it “native” uplink? Will it [...]<p><a href="http://frankdenneman.nl/2009/07/flex10-update/">Flex10 update</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
]]></description>
			<content:encoded><![CDATA[<p>In my first post I had a question about the path data travels when sent to a “standby” virtual connect module.<br />
To quote my own question :</p>
<blockquote><p>“What will happen if the VMkernel decides to use that nic to send IO?<br />
Is the Flexnic aware of the standby status of it “native” uplink? Will it send data to the uplink of the VC module it’s connected to or will it send data to the active uplink?<br />
How is this done? Will it send the IO through the midplane or CX-4 cable to the VC module with the active uplink? And if this occurs what will be the added latency of this behavior?<br />
HP describes the standby status as blocked, what does this mean? Will virtual connect discard IO send to the standby IO, will it not accept IO and how will it indicate this?”</p>
<p><span id="more-203"></span></p></blockquote>
<p>The virtualconnect module is not standby, it’s external( X1 thru x6) ports are standby. The blade can and will send I/O to the virtualconnect module. It is the only way, because the blade NIC is hardwired to that VC module. When the virtual connect module receives data, it will transfer the data to the Virtual Connect module with the active ports over its internal X0 port.</p>
<p>The X0 port is also mentioned in the HP documentation as cross connect. HP beefed up the cross connects in theThe Flex10 module, it has 2 x 10 cross connects instead of the 1 x 10 cross connect found in the 1/10 virtual connect module</p>
<p><span style="color:#993300;">BL460c G1 NC373i 1GB Nics bandwidth upgrade</span><br />
The new BL460cG6 blade has a Flex10 LOM adapter, when using G6 blades along G1 blades in a C7000 enclosure It might be nice to swap the 1/10 virtual connect module for Flex10 virtual connect modules.</p>
<p>When a NC373i is connected to a flex10 VC module the link speed of the 1GB module will be upgraded to 2,5 GB. It does not automatically upgrade the bandwidth when installing the Flex10 module, a firmware upgrade of the NC373i nic is needed.</p>
<p>Download the network firmware update tool from the HP support site (date 7 oct 2008, version 2.1.3.1). The updated version of the boot code, 4.4.1 that enables the 2.5 Gigabit support. Windows 2003 will not show the proper uplink speed. I haven’t checked it on a windows 2008 server. But to be certain Check the Flex10 virtual connect module to see which speed the nic is linked to.</p>
<p><a href="http://frankdenneman.nl/2009/07/flex10-update/">Flex10 update</a> is a post from: <a href="http://frankdenneman.nl">frankdenneman.nl</a></p>
 <img src="http://frankdenneman.nl/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=203" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://frankdenneman.nl/2009/07/flex10-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: frankdenneman.nl @ 2012-05-17 11:01:37 -->
