NIC teaming on Hyper-V Host
-
https://docs.microsoft.com/en-us/windows-server/networking/technologies/nic-teaming/nic-teaming
I am seeking a sanity check to make sure I'm reading this correctly. If I configure a team and keep the team in the default switch-independent mode, all traffic, regardless of how many NICs are in the team, will arrive on a single NIC. If this is true, then it seems like the advantage gained by teaming with this mode is failover, since only one NIC will be receiving traffic to hand off to the virtual switch to hand off to the VMs.
In contract, switch-dependent mode has the switch deciding how to balance the traffic between the members of the team, so you would have both the protection of not losing connectivity if one of the team members fails, and the potential for more bandwidth.
-
No, it is not failover, it is still load balancing. Your server will have loads of traffic. It will be split up to the different NICs. Just a single action can't be split up, it has to be on a single NIC. But as you do many things at once, this affects you very little. Failover means you only use one NIC at a time, very different than using them all at once like here.
-
This article is about Linux modes, but other than the name of the modes being specific to the OS, the modes themselves are universal.
https://mangolassi.it/topic/7203/linux-bonding-modes
LAG / LACP is Mode 4.
Mode 6 is what you are discussing here. -
@Reid-Cooper is correct. In switch independent mode, you are unable to get a single connection better than the max of a single link. But each connection to/from the server could use a different link.
Any software that is multi-threaded for data tranfers willl thus be able to get faster the a single link.
Veeam backs up north of 2gbs for me with 4 NICS in a team on both the server and on the Synology NAS.
-
An example of switch-indy teaming would be if you had four NICs teamed in this way, and wanted to do file transfers, liked to mapped drives or something.
If you were doing a single file transfer, you'd expect to get 1 Gb/s max bandwidth, because that is all one NIC can handle (assuming GigE NICs.) You can't get faster by teaming in this manner.
But you could have four file transfers going on at once, each getting 1Gb/s at the same time, for a total of nearly 4Gb/s. But if you had fewer than four at once, you'd only get 1Gb/s per activity.
-
@jaredbusch said in NIC teaming on Hyper-V Host:
@Reid-Cooper is correct. In switch independent mode, you are unable to get a single connection better than the max of a single link. But each connection to/from the server could use a different link.
Any software that is multi-threaded for data tranfers willl thus be able to get faster the a single link.
Veeam backs up north of 2gbs for me with 4 NICS in a team on both the server and on the Synology NAS.
Ah, yes, I see. I misunderstood this then.
When the switch independent team is in Hyper-V Port mode or Dynamic mode the inbound traffic for a Hyper-V switch port (VM) will always arrive on the same team member. The host can predict/control which member will receive the traffic for a particular VM so NIC Teaming can be more thoughtful about which VMQ Queues to allocate on a particular team member.
All four NICs are active, and Hyper-V chooses which ever NIC to use for a VM's traffic at a given time (or split the traffic between multiple NICs).
-
@eddiejennings said in NIC teaming on Hyper-V Host:
@jaredbusch said in NIC teaming on Hyper-V Host:
@Reid-Cooper is correct. In switch independent mode, you are unable to get a single connection better than the max of a single link. But each connection to/from the server could use a different link.
Any software that is multi-threaded for data tranfers willl thus be able to get faster the a single link.
Veeam backs up north of 2gbs for me with 4 NICS in a team on both the server and on the Synology NAS.
Ah, yes, I see. I misunderstood this then.
When the switch independent team is in Hyper-V Port mode or Dynamic mode the inbound traffic for a Hyper-V switch port (VM) will always arrive on the same team member. The host can predict/control which member will receive the traffic for a particular VM so NIC Teaming can be more thoughtful about which VMQ Queues to allocate on a particular team member.
All four NICs are active, and Hyper-V chooses which ever NIC to use for a VM's traffic at a given time (or split the traffic between multiple NICs).
not per VM, per connection.
-
@eddiejennings said in NIC teaming on Hyper-V Host:
All four NICs are active, and Hyper-V chooses which ever NIC to use for a VM's traffic at a given time (or split the traffic between multiple NICs).
Hyper-V isn't involved. The team is done by the network stack driver. Yes, that's on Hyper-V, but it is just a driver, not the Hyper-V kernel. This is important because the driver has no concept of VMs or anything like that. VMs are just "traffic" to the NICs. Hyper-V just sends the traffic to the network stack, the stack sends it over the NICs. The stack, the NICs, none of them are VM-aware.
-
@jaredbusch said in NIC teaming on Hyper-V Host:
@eddiejennings said in NIC teaming on Hyper-V Host:
@jaredbusch said in NIC teaming on Hyper-V Host:
@Reid-Cooper is correct. In switch independent mode, you are unable to get a single connection better than the max of a single link. But each connection to/from the server could use a different link.
Any software that is multi-threaded for data tranfers willl thus be able to get faster the a single link.
Veeam backs up north of 2gbs for me with 4 NICS in a team on both the server and on the Synology NAS.
Ah, yes, I see. I misunderstood this then.
When the switch independent team is in Hyper-V Port mode or Dynamic mode the inbound traffic for a Hyper-V switch port (VM) will always arrive on the same team member. The host can predict/control which member will receive the traffic for a particular VM so NIC Teaming can be more thoughtful about which VMQ Queues to allocate on a particular team member.
All four NICs are active, and Hyper-V chooses which ever NIC to use for a VM's traffic at a given time (or split the traffic between multiple NICs).
not per VM, per connection.
Remember that the bonding (teaming) modes existed decades before there was virtualization. This is just "networking" and not related to virtualization. If you did this on a normal server (inside a VM) you'd get the exact same behaviour as doing it on a hypervisor.
-
I misspoke. Yes, the NIC driver does the work.
-
@jaredbusch said in NIC teaming on Hyper-V Host:
@Reid-Cooper is correct. In switch independent mode, you are unable to get a single connection better than the max of a single link. But each connection to/from the server could use a different link.
Any software that is multi-threaded for data tranfers willl thus be able to get faster the a single link.
Veeam backs up north of 2gbs for me with 4 NICS in a team on both the server and on the Synology NAS.
Yes, these are 100% correct by Jared and Reid-Cooper.
-
Right, NIC Teaming is not a Hyper-V feature. There is almost no reason to do it that way.
Also, you don't want to use "Hyper-V" load balancing after Windows Server 2012. Starting with 2012 R2, Dynamic is the preferred algorithm. Only in super rare cases would you use any other algorithm.