A while ago I was criticizing the network-blindness of the storage industry that decided to run 25-year old protocol (SCSI) over the most resource-intensive transport protocol (TCP) instead of fixing their stuff or choosing a more lightweight transport mechanism.
My argument (although theoretically valid) became moot a few months ago: Intel and Microsoft have demonstrated an iSCSI solution that can saturate a 10GE link and perform more than 1 million I/O operations per second. Another clear victory for the Moore’s Law.
Why is this important? iSCSI was always considered an inferior (but admittedly cheaper) solution when compared with Fiber Channel (FC). This benchmark clearly shows that iSCSI performance no longer lags behind FC. iSCSI is thus a viable alternative for network designers that want to build converged LAN/SAN networks.
How did they do it? Intel has built a large number of TCP acceleration techniques in its Gigabit Ethernet chipsets (here’s a quick summary). For example, the Intel 82599 10GE controller handles IP, TCP and UDP checksums, and TCP offload including transmit-side TCP segmentation and Receive Segment Coalescing. Going even further, Intel CPUs starting with Nehalem and Westmere microarchitectures have dedicated instructions that can compute CRC checksums extremely efficiently.
Why did Intel add TCP offload to its NICs? Definitely not just to solve the iSCSI performance problems; iSCSI is just one of the high-bandwidth TCP applications, other such applications include web hosting of static content or Netflix-style video streaming. Without TCP offload, an Intel-based server tops out at Fast Ethernet or Gigabit Ethernet speeds (with CPU running at 100% utilization). Offload functions in the Gigabit Ethernet controllers help you get the 10GE speeds at reasonable CPU loads.