Back in January I posted a possible design for implementing iSCSI connectivity for a host and virtual machines using converged networks.
In that design (above) a pair of virtual NICs would be used for iSCSI, either in the VM or the management OS of the host. MPIO would “team” the NICs. I was talking with fellow Hyper-V MVP Hans Vredevoort (@hvredevoort) about this scenario last week but he brought up something that I should have considered.
Look at iSCSI1 and iSCSI2 in the Management OS. Both are virtual NICs, connecting to ports in the iSCSI virtual switch, just like any virtual NIC in a VM would. They pass into the virtual switch, then into the NIC team. As you should know by now, we’re going to be using a Hyper-V Port mode NIC team. That means all traffic from each virtual NIC passes in and out through a single team member (physical NIC in the team).
Here’s the problem: The allocation of virtual NIC to physical NIC for traffic flow is done by round robin. There is no way to say “Assign the virtual NIC iSCSI1 to physical NIC X”. That means that iSCSI1 and iSCSI2 could end up being on the same physical NIC in the team. That’s not a problem for network path failover, but it does not make the best use of available bandwidth.
Wouldn’t it be nice to guarantee that iSCSI NIC1 and iSCSI NIC2, both at host and VM layers, were communicating on different physical NICs? Yes it would, and here’s how I would do it:
The benefits of this design over the previous one are:
- You have total control over vNIC bindings.
- You can make much better use of available bandwidth (QoS is still used)
- You can (if required by the SAN vendor) guarantee that iSCSI1 and iSCSI2 are connecting to different physical switches
Don’t worry about the lack of a NIC team for failover of the iSCSI NICs at the physical layer. We don’t need it; we’re implementing MPIO in the guest OS of the virtual machines and in the management OS of the host.
Confused? Got questions? You can learn about all this stuff by reading the networking chapter in Windows Server 2012 Hyper-V Installation And Configuration Guide: