Does MPIO aggregate bandwidth for a single connection

iscsimpiostorage-area-networkwindows-server-2008-r2

Consider the following setup:

Windows 2008 R2, MPIO feature installed. Two iSCSI NICs (not bonded), 1Gb each.
Storage: Compellent, 2x 1Gb iSCSI ports, single controller.

In my tests I have confirmed that using Round Robin MPIO, both iSCSI NICs on the host are active during a single-worker IOMETER test. Both iSCSI NICs on the storage are also active during this test. I am seeing about 50% to 60% utilization on each host NIC, and I would expect more. I am using a crappy D-Link switch at the moment and this certainly is not helping, so I'm not super concerned about this yet.

My question is this: instead of "how can I make this particular setup perform", I would like to know, more generally, if round robin (active/active) MPIO allows me to get greater than 1Gb bandwidth from the host to the storage, using a single I/O stream (like copying a file, or running a single worker IOMETER test).

If yes, why? If no, why not?

Best Answer

MPIO has various policies available to it. As the Coding Gorilla points out, most of those policies allow for load balancing across multiple connections to aggregate bandwidth. Both your initiator and target have to have multiple connections for it to actually be faster than single link speed however. Round Robin is a poor choice of policy; you should be using either Weighted Distribution or Least Queue Depth.

The iSCSI SAN and Server I have here have 4 ports each and I can actually get ~3.2Gbps under fairly ideal circumstances. If you need something faster than that, you'd be looking at FC or IB.

Also, do not use Trunking/Link Aggregation/etc on iSCSI links. When one links fails the connection will fail. You must use MPIO to accomplish link redundancy.