<?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>Technical Deep Dive &#187; FCoE Lessons</title>
	<atom:link href="http://blog.nigelpoulton.com/category/fcoe/fcoe-lessons/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nigelpoulton.com</link>
	<description>with nigel poulton</description>
	<lastBuildDate>Thu, 12 Aug 2010 08:21:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>FCoE: Framing deep dive</title>
		<link>http://blog.nigelpoulton.com/fcoe-framing-deep-dive/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nigelpoulton.com/fcoe-framing-deep-dive/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 15:57:19 +0000</pubDate>
		<dc:creator>Nigel Poulton</dc:creator>
				<category><![CDATA[FCoE]]></category>
		<category><![CDATA[FCoE Lessons]]></category>

		<guid isPermaLink="false">http://blogs.rupturedmonkey.com/?p=544</guid>
		<description><![CDATA[My current series of posts on FCoE and CEE have generated a lot of questions and feedback via the comments section and on Twitter.&#160; In this post I will attempt to address some of the questions and misunderstandings &#8211; especially around encapsulation and framing efficiency&#8230;&#8230;
	I received a comment on the site today from a confused [...]]]></description>
			<content:encoded><![CDATA[<p>My current series of posts on FCoE and CEE have generated a lot of questions and feedback via the comments section and on Twitter.&nbsp; In this post I will attempt to address some of the questions and misunderstandings &ndash; especially around encapsulation and framing efficiency&hellip;&hellip;</p>
<p>	I received a comment on the site today from a confused reader.&nbsp; The point of confusion is a common one and not something to be embarrassed about.&nbsp; Part of the comment read as follows </p>
<p>	<em>&ldquo;&hellip;..but it&rsquo;s [FCoE] problem is that it consists of 3 different protocols (IP, FC, SCSI) just enlarging it&rsquo;s frame size with unneccessery information. This is a step backwards.</em>&quot;<span id="more-544"></span></p>
<p>	The above is clearly a misunderstanding.&nbsp; It would be accurate to say that DCB/CEE is designed to transport all three of the above protocols, but FCoE does not consist of these.&nbsp; So if it doesn&rsquo;t consist of these then what is it&hellip;&hellip;.</p>
<p>	<strong><br />
	FCoE in a single sentence</p>
<p>	</strong>Put in to a single sentence <strong>&ldquo;<em>FCoE is the encapsulation of Fibre Channel frames within Ethernet frames</em>&rdquo;</strong>.</p>
<p>	&nbsp;</p>
<div align="center"><img alt="" height="275" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/SCSI encaps.png" width="359" /></div>
<p>	If you have a good quality dive suit then put it on&hellip;&hellip; we are about to perform a deep dive&hellip;&hellip;&hellip;&hellip;..</p>
<p>
	<strong>Squeezing it in</strong></p>
<p>	Some will know and some will not, but a standards based Ethernet frame with VLAN Tagging, including Tag Control Information can be 1522 bytes in length.&nbsp; On the other hand a Fibre Channel frame can be up to 2148 bytes in length.&nbsp; Clearly, this poses a problem &ndash; <em>How can an Ethernet frame be wrapped around a fibre channel frame, if the fibre channel frame is bigger?</em></p>
<p>	Two of the most viable and obvious solutions to this challenge include &ndash; <br />
	&nbsp;</p>
<ol>
<li>Fragment the FC frames so that they fit within standard Ethernet frames.</li>
<li>Make bigger Ethernet frames</li>
</ol>
<p>
	From a performance and simplicity point of view, option 1 should be avoided <strong>at all costs</strong> due to the fact that fragmentation adds complexity to the encapsulation and extraction process.&nbsp; Complexity brings overheads, which in turn would slow the protocol down &#8211; which if we remember back to my initial <a href="http://blogs.rupturedmonkey.com/?p=486">FCoE post</a>, is highly undesirable in networks transporting SCSI as a payload.&nbsp; </p>
<p>	Option 2, on the other hand, keeps the encapsulation/extraction process very simple &ndash; 1 FCoE frame for every FC frame.&nbsp; </p>
<p>	No fragmentation and reassembly overhead, no tinkering with the headers or payload, and vitally, no unnecessary protocol induced latency.&nbsp; These are big wins for networks transporting SCSI.&nbsp; This seamless handling of frames offered by option 2 keeps the encapsulation/extraction process very simple, very lightweight and ultimately, very fast!</p>
<p>	To put this in perspective, here is as good a place as any to point out that the encapsulation and extraction process occurs at every hop on the FCoE network (we won&rsquo;t talk about multi-hop FCoE here).&nbsp; In other words, every time an FCoE frame traverses and FCoE switch, it is re-encapsulated ready to be moved on to its next hop.&nbsp; <br />
	&nbsp;</p>
<blockquote><p><strong>NOTE: </strong>Due the broadcast nature of the Ethernet networks, frames need a new source and destination MAC address for each hop.&nbsp; Point being, if the encapsulation/extraction process was arduous, it would significantly impact the performance of FCoE.</p></blockquote>
<p>
	Option 2 also keeps hardware designs simpler, allowing for cheaper hardware than would be required if complicated encapsulation and extraction techniques had to be implemented.</p>
<p>	Fortunately the folks on the standards body (INCITS T11 FC-BB-5) decided on option 2.</p>
<p>
	<strong>Jumbo to the Rescue<br />
	</strong><br />
	But in order to go with option 2, we need to invent larger Ethernet frames.&nbsp; Well actually we don&rsquo;t need to invent them because they already exist and are called Jumbo Frames. Baby Jumbo frames (~2.5KB) provide enough space, plus some headroom for FCoE frames.<br />
	&nbsp;<br />
	The diagram below shows an FC frame encapsulated within an FCoE frame.<br />
	&nbsp;</p>
<div align="center"><img alt="" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE framing detail.png" style="width: 451px; height: 153px;" /></div>
<p>
	Please feel free to correct the above diagram if its incorrect or unclear&hellip;.</p>
<p>
	Although Jumbo Frames are not an officially recognised IEEE 802 standard, in fact due to technical reason they likely never will be, they are extremely widely implemented, well understood and about as standard as anything non-standard can be.&nbsp; In fact, if jumbo frames did not exist, they would have to be invented to enable FCoE networks.</p>
<p>	The same comment that came in from a reader talked about poor framing efficiency in FCoE.&nbsp; Lets take a quick look at this while we&rsquo;re here.</p>
<p>
	<strong>Data is protocol overhead<br />
	</strong><br />
	By &ldquo;framing efficiency&rdquo; we mean the number of control bytes sent versus total number of data byes sent.&nbsp; A protocol with a high percentage of control bytes would be seen as inefficient.&nbsp; Because of going with option 2 from above, FCoE actually has quite good framing efficiency, as it doesn&rsquo;t carry baggage required to reassemble an FC frame from multiple FCoE frames.<br />
	&nbsp;</p>
<blockquote><p>I&rsquo;ve heard it said that to techie people data is protocol overhead <img src='http://blog.nigelpoulton.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p></blockquote>
<p>	<strong>Keep your hands off my bandwidth<br />
	</strong><br />
	Another reader has recently asked the following question</p>
<p>	<em>&ldquo;&hellip;.how is the IP traffic and the FCoE traffic kept from consuming one another&rsquo;s bandwidth&hellip;&rdquo;.</em></p>
<p>	The answer is to do with Ethernet Priorities and I touched on them in a <a href="http://blogs.rupturedmonkey.com/?p=486">previous post and in the comments to that post</a>, but while we&rsquo;re here with the diagram above lets add a bit more meat to the answer.</p>
<p>	I&rsquo;ve written VLAN Tag in the above diagram, lets break it open a little more &ndash; <br />
	&nbsp;</p>
<div align="center"><img alt="" height="112" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE - PCP pic.png" width="268" /></div>
<p>
	The above is a representation of an 802.1Q VLAN field.&nbsp; This field also lists the Ethernet Priority (technically referred to as the Priority Code Point or PCP).&nbsp; This is leveraged by Priority based Flow Control as discussed in earlier posts and is absolutely critical in the implementation of a lossless fabric, without which FCoE would be dead in the water.&nbsp; PCP can be between 0-7 and each type of traffic will be encoded with its own PCP allowing features such as losslessness and bandwidth allocation etc to be implemented.&nbsp; FCoE would have one value, iSCSI another etc&hellip;..</p>
<p>	Hope that helps clear some things up.&nbsp; Let me know if you have any more questions.&nbsp; I&rsquo;m enjoying the discussion that this is generating, and don&rsquo;t be embarrassed about asking questions(obviously I don&rsquo;t know all the answers but Im sure somebody out there will).</p>
<p>	Nigel</p>
<p>	I am a freelance consultant and available for consulting work via the <a href="http://blog.nigelpoulton.com/contact-me/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Contact Me</a> form</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nigelpoulton.com/fcoe-framing-deep-dive/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>FCoE: Unovering the CNA &#8211; Deep Dive</title>
		<link>http://blog.nigelpoulton.com/fcoe-unovering-the-cna-deep-dive/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nigelpoulton.com/fcoe-unovering-the-cna-deep-dive/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 12:19:11 +0000</pubDate>
		<dc:creator>Nigel Poulton</dc:creator>
				<category><![CDATA[FCoE]]></category>
		<category><![CDATA[FCoE Lessons]]></category>
		<category><![CDATA[I/O Virtualisation]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://blogs.rupturedmonkey.com/?p=523</guid>
		<description><![CDATA[Continuing with my current theme of Fibre Channel over Ethernet, and at the request of several people, this post will take a close look at Converged Network Adapters (CNA). 
	Now then, there is no easy way to put this, but to do justice to a topic like this will require a lot of words.&#160; I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing with my current theme of Fibre Channel over Ethernet, and at the request of several people, this post will take a close look at Converged Network Adapters (CNA). </p>
<p>	Now then, there is no easy way to put this, but to do justice to a topic like this will require a lot of words.&nbsp; I&rsquo;ll do my best to keep it succinct, but if you are looking for a high level overview in under 1,000 words then this is probably for you, but thanks for stopping by&hellip;&hellip;&hellip;&nbsp; However, if you want a deep dive and opportunity for <u>technical discussion</u>, then this <em>might</em> be what you&rsquo;re looking for.<span id="more-523"></span></p>
<p>	Still here? Magic, let&rsquo;s go&hellip;..</p>
<p>	First things first, its best to have a <u>quick</u> look at what things look like without CNAs, in order to more fully appreciate some of the problems CNAs are resolving.</p>
<p>	&nbsp;<br />
	<strong>Before CNAs</strong></p>
<p>	In a traditional server with <u>no</u> CNA cards and <u>not</u> connected to a <em>unified fabric</em> it is not uncommon to see the following &ldquo;network&rdquo; related sprawl (sorry about the terrible diagram but I wrote most of this post while on an aeroplane) &ndash;<br />
	&nbsp;</p>
<div align="center"><img alt="" height="261" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE - back of server.png" width="315" /></div>
<p>
	<font size="1"><em>Diagram 1</em></font></p>
<p>	&nbsp;<br />
	The FC HBAs tend to run at either 2, 4 or 8Gbps with the NICs usually running at either 100Mbps or 1Gbps. </p>
<p>	The multiplicity of NICs is common to meet the demands of multiple traffic types such as; production, backup, management etc.</p>
<p>	It is also worth noting that most servers are built with two physical HBA cards installed to provide both redundancy and increased aggregate bandwidth/performance &#8211; commonly referred to as I/O multi-pathing and is a must in 99.99% of FC SANs.<strong></p>
<p>	But that was then and this is now&hellip;.. <em>or nearly now</em><br />
	</strong><br />
	Say hello to the Converged Network Adapter, or CNA for short. </p>
<p>	The Converged Network Adapter is exactly what it says it is &ndash; an HBA and a NIC converged on to a single PCIe adapter &ndash;<br />
	&nbsp;</p>
<div align="center"><img alt="" height="180" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE from ELX.png" width="502" /></div>
<p>
	<font size="1"><em>Diagram 2 &#8211; Picture courtesy of Emulex</em></font></p>
<p>	Digging into the technical detail, some CNAs have a single ASIC that performs both the HBA and the NIC functionality, whereas other have a separate ASIC for each of the distinct functions.&nbsp; This really depends on the vendor and model.&nbsp; The important point being &#8211; CNAs provide HBA and NIC functionality <u>in hardware</u>, making them fast and reducing CPU overhead.&nbsp; Implementing functionality without thieving CPU cycles is <u>a big plus-point in server virtualisation environments</u>.</p>
<p>
	<strong><br />
	Offload <u>EVERYTHING</u>!!<br />
	</strong><br />
	Considering the fact that stealing CPU cycles is undesirable at the best of times and a federal offence punishable by death in virtual server environments, providing hardware offloads is vital.&nbsp; To help out in this area, the latest raft of Generation 2 Emulex <a href="http://www.emulex.com/products/strategic-direction/oneconnect-universal-cna.html">OneConnect Universal Converged Network Adapters</a>, such as the LP2100x, provide <u>full CPU offload</u> for <u>all protocols</u> on a single chip design and are FIP compliant!&nbsp; That&rsquo;s not just FCoE offload, we&rsquo;re talking about TOE and iSCSI as well &ndash; the iSCSI one is interesting and may be a chat for another day!<br />
	&nbsp;</p>
<blockquote><p><strong>NOTE:</strong> I will point out that I had a chat recently with Emulex and was very impressed.&nbsp; They are laser focussed (pun intended) on FCoE and really understand the market and value position of FCoE.&nbsp; A real pleasure to chat with passionate like minded people, oh and they didn&#39;t hang up on me when I mentioned &quot;Broadcom&quot; <img src='http://blog.nigelpoulton.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> &nbsp; VERY unprofessional of me but I was unbelievably jetlagged when we spoke, so I thank them for overlooking my lack of tact and poor humour.</p></blockquote>
<p>
	So with the fact that CNAs provide both HBA and NIC functionality, as well as connecting to 10Gbps Enhanced Ethernet fabrics, it shouldn&rsquo;t take a rocket scientist to figure out that we could swap out our 6 PCI adapters from Diagram 1 and <u>replace them with just 2 CNAs</u> (2 for redundancy).&nbsp; If you think about it, this has the potential to reduce PCI adapter count and cable sprawl by crazy%</p>
<p>	<strong>Saving Space<br />
	</strong><br />
	Early generation CNAs are installed as PCIe adapters in servers and as PCIe mezzanine cards in blade servers.&nbsp; However, the way forward is to eventually have them embedded on the motherboard &ndash; a la&rsquo; LOM &ndash; vendors currently have this on their roadmap.&nbsp; But this is no biggy right?&nbsp; Well actually this has the potential to hugely reduce the amount of space consumed by PCI adapters inside of servers paving the way for higher density in blade servers where real-estate is at a premium! </p>
<p>	Now this brings up another interesting benefit.&nbsp; Not only is FCoE and its associated technologies resolving todays problems, it is actually enabling a better future.&nbsp; How good would it be to have 6 or more CNAs per blade server!&nbsp; That&rsquo;s 60Gbps+ of <u>flexible</u> bandwidth based on today&rsquo;s current 10Gbps Enhanced Ethernet! </p>
<p>	Now this becomes a real winner in light of the current raft virtualisation optimised CPUs on the market &#8211; think Intel Nehalem and associated&nbsp; virtualisation technologies like <a href="http://www.intel.com/technology/virtualization/technology.htm?iid=tech_vt+tech">Intel VT-x VT-c, VT-d VMDq</a> &#8211; xpect the ratio of VMs per core to rocket skyward!&nbsp; In order to keep pace with the advancements in chip technology the I/O subsystem needs to move in step.&nbsp; CNAs and Lossless Enhanced Ethernet are vital to this.</p>
<p>	This point aside, I recently had a hand in a design involving HP BladeSystem c7000 technology.&nbsp; I remember during the design wishing that the system had CNAs instead of the Flex10 and Virtual Connect technologies.&nbsp; Could have saved space and cabling as well as potentially given more flexibility.&nbsp; However, this was prior to even FCoE being ratified by INCITS.</p>
<p>	<strong>Obvious benefits summarised<br />
	</strong><br />
	So some obvious benefits that CNAs bring include &#8211; reduced number of PCI adapters, cables, space, power and cooling.&nbsp; Nice! </p>
<p>	Secondly, by supporting 10Gbps Enhanced Ethernet they provide greater bandwidth than existing adapters allowing more traffic types and volume to travel down the same stretch of cable.&nbsp; Suddenly the <strong>wire once</strong> nirvana is now a reality (actually wire twice if you want true I/O multi-pathing).<br />
	&nbsp;</p>
<blockquote><p><strong>NOTE:</strong> A quick heads up on throughput.&nbsp; While CNAs provide access to 10Gbps CEE networks, not all services, including FCoE, are supported at full bandwidth.&nbsp; For example, CNAs normally support Ethernet at 10Gbps but FCoE only runs at a max of either 4Gbps or 8Gbps.&nbsp; This is in line with 4Gbps and 8Gbps FC &ndash; there is currently no standard for 10Gbps FC N-Port to F_Port connections.</p></blockquote>
<p>	<font color="#0000ff"><em>&lt;OK so this is about the half way point, so you might want to come up for some air here before discussing the interesting stuff&gt;<br />
	</em></font></p>
<p>	<strong>Clever things with CNAs<br />
	</strong><br />
	Now to the deeper technical stuff&hellip;&hellip;&hellip;..</p>
<p>	With 10Gbps Enhanced Ethernet, FCoE, CNAs and other associated technologies being relatively new, the standards bodies (such as INCITS T11 FC-BB-5 for FCoE) as well as the vendors are able to design with virtualisation in mind.&nbsp; This is great!</p>
<p>	Let&rsquo;s mention a couple of technologies that bring a lot to the table in Hypervisor environments.</p>
<p>
	<strong>NPIV<br />
	</strong><br />
	The first technology worth mentioning is N_Port ID Virtualisation, otherwise known as NPIV.&nbsp; NPIV is a T11 INCITS and ANSI standard initially developed by IBM and Emulex, and yes I know it&rsquo;s not exactly new.</p>
<p>	Because NPIV is not a new technology I wont spend much time on it here other than to say NPIV makes it possible for a single HBA to have several N_Port IDs and WWPNs, allowing virtual machines to be uniquely addressable on the SAN and therefore able to be <u>managed on the SAN just like normal physical servers</u>.<br />
	&nbsp;</p>
<blockquote><p><em>If it would be useful I can put something up on NPIV.&nbsp; Just leave a comment at the bottom asking and if enough people ask I&rsquo;ll post on it.</em></p></blockquote>
<p>	<strong>I/O Virtualisation (SRIOV)<br />
	</strong><br />
	So while NPIV allows multiple VMs to be uniquely addressable on the SAN side of an HBA, on the other side, the side of the servers PCI tree, there is still a 1:1 mapping between physical ports and addressable PCI devices. </p>
<p>	<strong><br />
	The Middle-man</p>
<p>	</strong>Early virtual server implementations see the hypervisor act as middleman, between the I/O adapter and the Virtual Machine (VM).&nbsp; The VM never actually talks directly with the I/O adapter, always through a middle-man &#8211; the hypervisor.&nbsp; But like any middleman scenario, it has its advantages and disadvantages.&nbsp; The middleman would argue that he adds &ldquo;value&rdquo;, but is rarely so keen to point out that he also always takes a generous percentage of the spoils (in our case, I/O performance and CPU cycles).</p>
<p>	Some of the advantages and disadvantages of having the hypervisor as the middleman might include &ndash;</p>
<p>	<strong>Middle-man Advantages<br />
	</strong></p>
<ul>
<li>Hypervisors often provide snapshot capabilities</li>
<li>Hypervisors often provide thin provisioning capabilities</li>
<li>Many existing Hypervisor technologies are currently designed around this model</li>
</ul>
<p>
	<strong>Middle-man Disadvantages<br />
	</strong></p>
<ul>
<li><strong>Lower I/O performance</strong>.&nbsp; Because the hypervisor handles all I/O to and from a VM, as well as the associated interrupt handling etc, this injects server-side latency in to the I/O path as well as stealing CPU cycles form the main role of the Hypervisor.</li>
<li><strong>Security concerns</strong>.&nbsp; The fact that all I/O, to and from VMs, is seen and touched by the hypervisor may be a concern to some people :-S</li>
<li><strong>Limited feature set</strong>.&nbsp; You are restricted to the features and functions provided by the Hypervisor and not exposed to the full feature set available from the manufacturers native driver&hellip;.</li>
</ul>
<p>
	A common example where having the Hypervisor act as the middle man is not seen as desirable is a high throughput OLTP type system.&nbsp; These are rarely virtualised due to, among other things, the I/O performance impact associated with having the Hypervisor as the middle-man.</p>
<p>
	<strong>So what does SRIOV do to help?<br />
	</strong></p>
<blockquote><p><strong>NOTE:</strong> Single Root I/O Virtualisation (SRIOV) and Multi Root I/O Virtualisation (MRIOV) are extensions to PCIe brought to us courtesy of the electronics industry consortium known as the <a href="http://www.pcisig.com/specifications/iov/">PCI Special Interests Group (PCI-SIG)</a>.</p></blockquote>
<p>
	SRIOV implementations allow an I/O adapter, in co-operation with the Hypervisor, to be sliced up in to multiple <em>virtual adapters</em>.&nbsp; Each of these uniquely addressable on the servers&rsquo; PCI tree.&nbsp; Each <em>virtual adapter</em> can then be mapped directly to a virtual machine and in turn is directly addressable by that virtual machine &ndash; no more middle-man.&nbsp; SRIOV based adapters may have dedicated I/O paths in silicon and work alongside other related technologies such as <a href="http://www.intel.com/technology/virtualization/technology.htm?iid=tech_vt+tech">Intel VT-c, VT-d, VMDq</a>&hellip;. to provide a huge variety of offloads and assists aimed at reducing the load on main CPU and memory systems and thus increasing system performance.&nbsp; This mode of operation is sometimes referred to as &ldquo;hypervisor bypass&rdquo; mode (we should be thinking VMDirectPath by now) and offers close to full line rate, making virtualisation a more realistic option for transaction based and other I/O intensive systems like our example OLTP system.</p>
<p>	This also opens the door to things like VMs running drivers provided by the manufacturers making new functionality immediately available without waiting for the Hypervisor middle-man to support it.&nbsp; Obviously it all needs buy in from your Hypervisor &hellip;..</p>
<p>	Of course SRIOV is a semi-open standard (I say semi-open because several months ago when I researched it you had to pay to get access to the standards docs) and like most standards each vendor is free to implement the specifics in their own unique and value-add way as well as to add more features and requirements around it.</p>
<p>	So in a nutshell, NPIV enables a single port to have multiple discrete addresses on the SAN side, whereas SRIOV allows a single I/O adapter to have multiple discrete addresses internally on the servers PCI bus/tree.&nbsp; The diagram below from a long time ago on the Cisco website shows an I/O card that can be partitioned in to 128 (0-127) virtual interfaces.<br />
	&nbsp;</p>
<div align="center"><img alt="" height="332" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE Cisco pic.png" width="380" /></div>
<p>
	<font size="1"><em>Diagram from the Cisco website<br />
	</em></font></p>
<p>	<strong>Say goodbye to hardware rip and replace<br />
	</strong><br />
	By implementing the above mentioned technologies it becomes possible to run a single cable to a server and then use management software to configure the virtual interfaces according to current requirements.&nbsp; For example, removing a NIC function and adding an HBA function becomes just a software change &#8211; no requirement to physically swap out a PCI card or lift the floor and run new cables.&nbsp; Simply make the change in software and the new device will be presented to the servers PCI tree, job done!&nbsp; Sound good to anyone else?</p>
<p>	There is more, but I doubt anyone would read more than this in one post.&nbsp; Other topics can always be discussed in the comments section below&#8230;.</p>
<p>	So if you made it all the way to hear, thanks and I hope it was useful.&nbsp; Please feel free to join the discussion either here on the blog site via the comments section below, or by following me on <a href="www.twitter.com/nigelpoulton#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Twitter</a> @nigelpoulton.&nbsp; <u>I only talk about storage and related technologies</u>.</p>
<p>	Nigel</p>
<p>	PS.&nbsp; I am an independent consultant and available for hire via the <a href="http://blog.nigelpoulton.com/contact-me/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Contact Me</a> page</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nigelpoulton.com/fcoe-unovering-the-cna-deep-dive/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>FCoE: Cables and the likes&#8230;.</title>
		<link>http://blog.nigelpoulton.com/fcoe-cables-and-the-likes/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nigelpoulton.com/fcoe-cables-and-the-likes/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 13:19:12 +0000</pubDate>
		<dc:creator>Nigel Poulton</dc:creator>
				<category><![CDATA[FCoE]]></category>
		<category><![CDATA[FCoE Lessons]]></category>

		<guid isPermaLink="false">http://blogs.rupturedmonkey.com/?p=495</guid>
		<description><![CDATA[Ewan Leith (@ewantoo) asked if I could whip something up re cables and infrastructure required for FCoE (DCE/CEE).&#160; So here goes.&#160; 
	I think there has been a lively discussion on FCoE over the last 24-48 hours and it would be good to keep it going&#8230;&#8230; Before I start I&#8217;d be interested in any feedback, updates [...]]]></description>
			<content:encoded><![CDATA[<p>Ewan Leith (@ewantoo) asked if I could whip something up re cables and infrastructure required for FCoE (DCE/CEE).&nbsp; So here goes.&nbsp; </p>
<p>	I think there has been a lively discussion on FCoE over the last 24-48 hours and it would be good to keep it going&hellip;&hellip; Before I start I&rsquo;d be interested in any feedback, updates comments and the likes &#8211; I havent had a chance to properly research this and my schedule for the next few days makes it difficult. </p>
<p>	Anyway&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; in order to accommodate the enhancements and improvements that come as part of what I have been calling &ldquo;Enhanced Ethernet&rdquo; (DCE/CEE), as well as facilitating the goal of consolidation to a single unified fabric, there are obviously some physical infrastructure changes required.&nbsp; In the next few paragraphs we will discuss some of them.<br />
	&nbsp;</p>
<blockquote><p><strong>NOTE:</strong>&nbsp; When I say Enhanced Ethernet I&rsquo;m referring to 10GigE, lossless, low latency, ETS, congestion notification as seen in DCE and CEE&hellip;</p></blockquote>
<p>
	<font size="4"><strong>First up, cables!<br />
	</strong></font><br />
	Unfortunately our existing install base of Cat5 and Cat6 unshielded twisted pair and the likes, for the most part do not meet the demands of the unified fabric.&nbsp; They don&rsquo;t kcik it when it comes to latencies and Bit Error Rate etc.&nbsp; In order to deploy and use Enhanced Ethernet, and therefore FCoE, we need to lay shiny new cables.&nbsp; No problems though, that&rsquo;s cheap and easy, right?&nbsp; </p>
<p>	&lt;cough cough&gt;</p>
<p>	In order to keep with some of the major goals of convergence (drive down costs and power consumption), a cable and transceiver combination with low power demands and that has a good cost value is required.&nbsp; This predominant combination is a passive or active twinaxial copper cable with SFP+ transceivers &#8211; sometimes referred to as &ldquo;SFP+ Copper&rdquo;.&nbsp; </p>
<p>	Twinaxial cables, usually referred to as Twinax or twin-ax, and named as such because they have a dual core.&nbsp; The specification generally allows for cable runs of up to ~10 metres, although some kit combinations may support longer or shorter runs.&nbsp; Twinax copper cables are typically ~6mm in diameter.</p>
<p>	<img alt="" height="166" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE - cables.png" width="204" /></p>
<p>	Twinax can transmit at 10Gbps full duplex (half duplex is not specified or supported in the IEEE DCB standards for 10GigE) over distances of up to 10 metres.&nbsp; Although at first glance this is a relatively short distance, it is actually fairly well suited to Data Centre environments, which are typically short range high speed networks (remember we are not running these cables to workstations).&nbsp; Such run lengths are especially suited for routing within a single cabinet or adjacent cabinets, such as from a server to an access layer switch mounted in the top of the rack.&nbsp; </p>
<p>	If longer runs are required then fibre can be used but at a higher cost.&nbsp; </p>
<p>	Twinax copper has been rated with a bit error rate in the region of 10&minus;18 making it ideal for FCoE.&nbsp; <br />
	<strong><br />
	</strong></p>
<blockquote><p><strong>Bit error rate</strong>:&nbsp; or BER for short, is the ratio of erroneous bits received divided by the total number of bits transmitted.</p></blockquote>
<p>
	SFP+, or to give its full name Small Form-factor Pluggable Plus, is an extension of the popular SFP standard seen in Fibre Channel SANs and legacy Gigabit Ethernet.&nbsp; The design of SFP+ is relatively simple for a transceiver.&nbsp; </p>
<p>	In saying the design is simple, I refer to the fact that much of the signal processing circuitry and logic, often found in the transceiver module (such as with XFP), is removed from the transceiver and relocated to the switch and CNA (Converged Network Adapter).&nbsp; This allows SFP+ to be smaller and cheaper in comparison to the more complex XFP, allowing for higher density switches.</p>
<p>	As can be seen by the two diagrams below, SFP+ modules exist for both copper and glass and can transmit at 10Gbps.</p>
<p>
	<img align="middle" alt="" height="184" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE - transceiver.png" width="360" /></p>
<p>	SFP+ Optical transceiver</p>
<p>
	<img align="middle" alt="" height="72" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/FCoE - copper transceiver.png" width="261" /></p>
<p>	SFP+ copper transceiver with casing removed</p>
<p>
	Obviously this transferring of logic (silicon) from the transceiver to the switch and CNA may merely offset the cost from the transceiver to the switch.&nbsp; While this may be the case it is generally agreed that such logic is better placed in the switch and CNA and usually allows for overall cheaper manufacturing costs.&nbsp; </p>
<p>
	<font size="4"><strong>Backplanes</strong></font></p>
<p>	While on the topic of cables, copper and glass&hellip;..&nbsp; As well as standards for carrying 10GigE over copper and fibre cables, the IEEE has also defined standards for backplane implementations.&nbsp; One such commonly implemented standard is 10GBASE-KR.&nbsp; This is commonly seen in blade servers as well as routers and switches and utilises a single lane running at a baud rate of 10Gbps, sometimes referred to as 10Gbps Backplane Ethernet.&nbsp; It supports distances of up to 1m on copper based circuit boards which is plenty of distance for intra-chassis communications.</p>
<p>
	<font size="4"><strong>Other Infrastructure Requirements<br />
	</strong></font><br />
	At this point I suppose I should mention CNAs.&nbsp; However, I can&rsquo;t realistically talk about CNAs without talking about things like NPIV, SRIOV which is a topic and a half in and of itself.&nbsp; So, for now I&rsquo;ll skip over CNAs and say a quick word or two about FCoE capable switches.</p>
<p>
	<font size="4"><strong>FCoE capable Switches<br />
	</strong></font><br />
	A ton of new Ethernet standards as well as a new ULP, new network adapters and new cables inevitably leads to one thing&hellip;&hellip;.. new switches.</p>
<p>	Fortunately FCoE and the aforementioned enhancements are evolutionary.&nbsp; By saying that, I am implying that implementing them in your Data Centre does not have to cause huge upheaval.&nbsp; Some upheaval yes, but there is no requirement for large scale rip-and-replace.&nbsp; In fact FCoE and her attendant technologies will happily site side-by-side with the likes of native Fibre Channel and 1Gbps Ethernet and at many levels the adjacent technologies will not even bat an eyelid.</p>
<p>
	<strong>Starting at the Edge<br />
	</strong><br />
	In order to simplify and expedite the adoption of Enhanced Ethernet and especially FCoE, some switch vendors provide edge switches at the access layer that allow companies to start deploying CNAs, at the edge of the network, and have them feed in to existing FC and Ethernet backbones via edge switches.&nbsp; </p>
<p>	For example, a company may deploy a new blade farm fully equipped with FCoE capable 10GigE Converged Network Adapters.&nbsp; These CNA ports can be connected to the network via edge switches that support GigE, 10GigE, FCoE and FC.&nbsp; This allows the blades to connect via 10GigE Enhanced Ethernet and then branch out to the existing network core via the 1Gbps Ethernet ports and to the FC SAN via the native FC ports.</p>
<p>	These switches tend to be 2u pizza box style switches that are deployed within the server rack.&nbsp; For some, they are a good place to start, especially in situations where ripping out your existing core and replacing it with shiny new 10GigE Enhanced Ethernet kit is not an option (i.e. just about everywhere).</p>
<p>
	<strong>Also at the Core<br />
	</strong><br />
	Some switch vendors also offer ultra-high performance ultra-scalable 10GigE Enhanced Ethernet FCoE aware switches for the network core.&nbsp; These are typically modular blade based switches supporting multiple interface types and scaling to hundreds of ports.&nbsp; Interface types include;10GigE Enhan ced Ethernet, 1Gbps Ethernet, 4Gbps FC and 8Gbps FC.&nbsp; These switches represent the next generation of data centre switches and represent a huge move toward the virtual data centre and I/O consolidation.</p>
<p>	As always, comments and thoughts welcome.</p>
<p>	Nigel</p>
<p>	You can follow me on Twitter @nigelpoulton &#8211; I only talk about storage and virtualisation.</p>
<p>	I&#39;m a freelance consultant and can be contacted at nigel at storage-strategist dot com</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nigelpoulton.com/fcoe-cables-and-the-likes/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>FCoE Lesson #1</title>
		<link>http://blog.nigelpoulton.com/fcoe-lesson-1/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nigelpoulton.com/fcoe-lesson-1/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 16:56:51 +0000</pubDate>
		<dc:creator>Nigel Poulton</dc:creator>
				<category><![CDATA[FCoE]]></category>
		<category><![CDATA[FCoE Lessons]]></category>

		<guid isPermaLink="false">http://blogs.rupturedmonkey.com/?p=486</guid>
		<description><![CDATA[Following on from Hu Yoshidas apparent blunder over FCoE and lossy networks, I thought I&#8217;d do my bit to clear things up and shed some light.&#160; Knowing a thing or two about FCoE I&#8217;m regularly amazed at how little some people know&#8230;&#8230;.
	So the following is a mini tutorial on the flow control and lossless Ethernet [...]]]></description>
			<content:encoded><![CDATA[<p>Following on from <a href="http://blogs.hds.com/hu/2009/09/san-volume-controller-revisited.html">Hu Yoshidas apparent blunder over FCoE and lossy networks</a>, I thought I&rsquo;d do my bit to clear things up and shed some light.&nbsp; Knowing a thing or two about FCoE I&rsquo;m regularly amazed at how little some people know&hellip;&hellip;.</p>
<p>	So the following is a mini tutorial on the flow control and lossless Ethernet in FCoE networks.&nbsp; If you don&rsquo;t care about FCoE, then point your browser somewhere else and don&rsquo;t come back <img src='http://blog.nigelpoulton.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> &nbsp; On the other hand, if you are interested and want to know more, then put your feet up for 10 minutes and read on&hellip;&hellip;..</p>
<p>
	<strong>Not your grandmothers Ethernet</strong></p>
<p>	FCoE requires an Enhanced <strike>10GigE</strike> Ethernet network &ndash; it does not run over standard gigabit Ethernet.&nbsp; Depending on who you speak to, this Enhanced Ethernet usually goes by one of two names &ndash; <br />
	&nbsp;</p>
<blockquote><p>1.&nbsp;&nbsp;&nbsp; <strong>Converged Enhanced Ethernet (CEE)</strong>.&nbsp; Commonly used by IBMers and Brocadites. </p>
<p>	2.&nbsp;&nbsp;&nbsp; <strong>Data Centre Ethernet (DCE)</strong>.&nbsp; This is trademarked by Cisco and according to the Cisco website refers to the company&rsquo;s architecture for next generation Ethernet in the Data Centre and is a superset of the DCB standards with some additions including L2MP.</p></blockquote>
<p>
	As my wife often tell me that I live in my own little world, and to remain neutral, I&#39;ll refer to it as simply <strong><em>Enhanced Ethernet</em></strong>.</p>
<p>	Whatever you decide to call it, it encompasses a collection of new technologies required in order for it to be able to transport FCoE traffic (frames).&nbsp; Although FCoE is not the only driving force behind Enhanced Ethernet, it is certainly a major force.&nbsp; Some of the technology changes encompassed in Enhanced Ethernet include the following &#8211; <br />
	&nbsp;<br />
	&bull;&nbsp;&nbsp;&nbsp; <strong>Priority Based Flow Control (PFC) / Lossless behaviour</strong><br />
	&bull;&nbsp;&nbsp;&nbsp; Low latency<br />
	&bull;&nbsp;&nbsp;&nbsp; Improved aggregate bandwidth<br />
	&bull;&nbsp;&nbsp;&nbsp; New link level negotiation protocols<br />
	&bull;&nbsp;&nbsp;&nbsp; Congestion Notification<br />
	&bull;&nbsp;&nbsp;&nbsp; Enhanced Transmission Selection</p>
<p>	In this post I&rsquo;ll concentrate on how lossless behaviour is implemented and achieved.&nbsp; To do this its best to start somewhere near the beginning &#8211; </p>
<p>	<strong><br />
	Its all goes back to SCSI<br />
	</strong><br />
	As the following very simple diagram shows, in FCoE networks, SCSI is encapsulated in FC frames, and FC frames are encapsulated in FCoE frames.&nbsp; </p>
<p><img align="middle" alt="" height="275" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/SCSI encaps.png" width="359" /></p>
<p>
	So indirectly, SCSI is encapsulated in FCoE frames, meaning that FCoE and the underlying Ethernet network must keep SCSI happy.</p>
<p>	So how do we keep SCSI happy?&nbsp; If we cast our minds back, we should hopefully remember that SCSI was originally designed to be used within the confines of a physical server chassis, running uncontested over short parallel cables.&nbsp; Uncontested = zero contention.&nbsp; As a result SCSI was not designed to deal well with delays or transmission errors.&nbsp; In fact, when either occurs, SCSI deals with them poorly.</p>
<p>	In a nutshell &#8211; drop frames carrying SCSI payloads without efficient recovery capabilities (further up the stack) and you will be in a world of hurt!&nbsp; </p>
<p>	To keep SCSI happy you really need low latency and lossless behaviour.</p>
<p>
	<strong>What is a Lossless network?<br />
	</strong><br />
	Put very simply, a lossless network is a network that does not drop frames.&nbsp; </p>
<p>	The corollary being a &ldquo;lossy&rdquo; network &#8211; a network that drops frames when congestion occurs.&nbsp; Your grandmothers GigE (1Gbps full duplex) network is lossy, it drops frames under congestion.</p>
<p>
	<strong>Making Enhanced Ethernet Lossless<br />
	</strong><br />
	The Data Centre Bridging Task Group has decided to implement link layer flow control in Enhanced Ethernet via a mechanism called Priority based Flow Control (802.3Qbb), or PFC for short.&nbsp; PFC is the how losslessness is achieved on Enhanced Ethernet networks.&nbsp; I might have just invented the word &ldquo;losslessness&rdquo; :-S</p>
<p>	However, before we dig into PFC it is worth taking a side-step to briefly talk a little about Ethernet priorities.<br />
	&nbsp;</p>
<blockquote><p><strong>Ethernet Priorities:</strong>&nbsp; IEEE 802.1p defines 8 priorities for Ethernet.&nbsp; These priorities allow for the implementation of Classes of Service at the link layer by tagging certain traffic types with an encoded priority.&nbsp; Implementing Classes of Service allow available bandwidth to be divided in to logical lanes, or virtual links.&nbsp; These virtual links can then be leveraged by other protocols and services, such as Priority based Flow Control which we will talk about.</p></blockquote>
<p>
	The diagram below shows how a physical link between two switches can be divided in to 8 logical lanes/virtual links labelled CoS 0 through CoS 7 &ndash; </p>
<p>	<img align="middle" alt="" height="166" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/Ethernet Lanes.png" width="493" /></p>
<p>	PFC is IEEE 802.1p Ethernet priorities &ldquo;aware&rdquo; and applies intelligence in the form of selective enforcement of the Ethernet PAUSE condition.&nbsp; This is where the pause condition is selectively applied to particular Classes of Service.&nbsp; This makes PFC perfect for converged unified fabrics where multiple traffic types and classes of service share a common network.&nbsp; It also makes PFC superior to native FC BB_Credits which can only apply arbitrary conditions that affect all traffic on the link.</p>
<p>	Interestingly, while PFC achieves the same, albeit superior, results as FC BB_Credits &#8211; that of creating a lossless network &#8211; the technical specifics of the two implementations are vastly different.&nbsp; On the one hand FC BB_Credits require the sender to assume it cannot send frames until it explicitly knows that the receiver is ready.&nbsp; On the other hand PFC allows senders to assume that they can always send unless explicitly told not to.</p>
<p>
	<strong>Hitting the Pause Button<br />
	</strong><br />
	PFC enforces the Pause condition per Class of Service by issuing a PFC frame with 8 time fields, one for each previously mentioned CoS/Ethernet priority.&nbsp; When a switch issues PFC frames it is instructing the connected node to apply the PAUSE condition (i.e. stop sending) to frames with particular CoS values.&nbsp; The diagram below shows the PAUSE condition applied to all Classes of Service except CoS 3 &ndash; </p>
<p>	<img align="middle" alt="" height="169" src="http://blog.nigelpoulton.com/wp-content/uploads/image/FCoE Pics/Ethernet Lanes PAUSED.png" width="493" /></p>
<p>	As well as the classes to which it is applied, the duration of the pause is also specified within the PFC frame.&nbsp; This allows PFC to be selective in which class of traffic it will apply the Pause condition to, making it possible to enforce the Pause condition on a single, or a subset of all 8 classes.&nbsp; It is also possible to selectively lift the pause condition, such as when congestion has dissipated and there is no need to wait until the Pause timeout expires.&nbsp; This adds to the functionality of PFC.</p>
<p>	PFC frames are handled at the MAC layer similar to how R_RDY&rsquo;s are handled by FC-1 in native FC networks.&nbsp; The PFC frame is a standard non-tagged MAC Control frame identified by Ethertype 0&#215;8808 with Op-code 0&#215;0101.&nbsp; For best performance and efficiency all good FCoE switches handle flow control in hardware.</p>
<p>	In Enhanced Ethernet networks FCoE will be assigned to a Class of Service which in turn will be treated a high priority so that when congestion starts to occur in the network (per switch) it will be allowed to continue to operate while other Classes of Service (protocols) might be paused.</p>
<p>	<strong>Net result</strong> &ndash; lossless behaviour for FCoE frames on shared Enhanced Ethernet networks (unified fabrics).&nbsp; All implemented at the link layer by the FCoE capable switches.&nbsp; Voila!</p>
<p>	Comments and thoughts welcome. </p>
<p>	Nigel</p>
<p>	Follow me on twitter @nigelpoulton.&nbsp; I only talk about storage and virtualisation etc&hellip;.</p>
<p>	I&#39;m a freelance consultant and can be contacted at nigel at storage-strategist dot com</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nigelpoulton.com/fcoe-lesson-1/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>
