Posey's Tips & Tricks
Introduction to Hyper-V Switch Embedded Teaming, Part 1
Switch embedded teaming is to Hyper-V what NIC teaming was to Windows Server 2012, though it never got the same level of hype. For those new to SET, Brien gives an overview of what the feature does and why it's so useful.
One of my favorite features that Microsoft introduced in Windows Server 2012 was NIC teaming. This feature allowed multiple physical network interface cards, or NICs, to be bound together into a single logical NIC. Even though NIC teaming wasn't a Hyper-V feature per se, it worked really well with Hyper-V.
Fast-forward a few years to Windows Server 2016. Microsoft gave us a somewhat similar feature specific to Hyper-V called Switch Embedded Teaming (SET).
For some reason, this feature didn't really get all that much attention when it was released. At the time, I think Microsoft was so busy talking about some of Hyper-V's new security features that SET kind of fell by the wayside. It also probably didn't help that the feature's documentation (at least, at the time) left a lot to be desired.
I wouldn't go so far as to say that SET has vanished into obscurity; certainly, there are organizations using it. At the same time, though, SET is one of those things that I don't hear mentioned very often. That being the case, I wanted to take the opportunity to talk a little bit about this feature, what it does and why it is useful.
SET is an alternative to the NIC teaming feature that Microsoft gave us way back in 2012. Windows Server 2012 required NIC teams to be created at the OS level, but you could bind a Hyper-V virtual switch to the NIC team, just as you can bind a virtual switch to any other physical network adapter. In contrast, SET lets you combine up to eight physical network adapters (the adapters have to be identical) into a Hyper-V virtual network adapter.
Switch embedded teams are switch-independent, meaning that the physical switches to which the teamed adapters are connected are unaware of the team's existence. As such, the physical switches do not play a role in the team's traffic distribution.
Traffic distribution is handled by Hyper-V. When you create a switch embedded team, you must choose between two different load balancing distribution modes. The first of these modes is Hyper-V Port Mode. When Port Mode is used, any attached virtual machines (VMs) are connected to a specific port on the Hyper-V virtual switch. This particular mode is best suited for environments with a limited number of VMs because it doesn't allow for granular load balancing.
The other load balancing distribution mode is called Dynamic Port Mode, although some of the documentation simply refers to this mode as Dynamic Mode or just Dynamic. Unlike Port Mode, Dynamic Mode performs real-time load balancing for outbound traffic (both modes handle inbound traffic in the same way).
Earlier I mentioned that SET is not exactly one of Hyper-V's most popular features. I think that one of the main reasons why it seems to be underutilized, even today, is that it is not exposed through the Hyper-V Manager. Because of this, it seems plausible that some admins might not even realize that SET exists. Unfortunately, creating and managing switch embedded teams means delving into PowerShell.
Thankfully, there is nothing overly complex about creating a switch embedded team. The first thing you will need to do before creating a switch embedded team is to get a list of your server's virtual network adapters. The command used for doing so is Get-NetAdapter. You can see the output from this command in the figure below.
The list of network adapters shown in Figure 1 is a little different from what you are likely to see in real life because I am using a virtualized Hyper-V server (using the nested VM feature). The important thing to note is that each NIC has a name. For the sake of demonstration, I will create a switch embedded team from the adapters named Ethernet 2, Ethernet 3 and Ethernet 4.
When creating a switch embedded team, you have to give the team a name. I am going to call my team SET. Here is a simple command that can be used to create the team:
New-VMSwitch -Name SET -NetAdapterName "Ethernet 2","Ethernet 3","Ethernet 4"
You can see what this looks like in Figure 2.
Now that I have shown you how to create a switch embedded team, I'll demonstrate in Part 2 here how to use it and how to configure the team's load balancing mode.
Brien Posey is a 20-time Microsoft MVP with decades of IT experience. As a freelance writer, Posey has written thousands of articles and contributed to several dozen books on a wide variety of IT topics. Prior to going freelance, Posey was a CIO for a national chain of hospitals and health care facilities. He has also served as a network administrator for some of the country's largest insurance companies and for the Department of Defense at Fort Knox. In addition to his continued work in IT, Posey has spent the last several years actively training as a commercial scientist-astronaut candidate in preparation to fly on a mission to study polar mesospheric clouds from space. You can follow his spaceflight training on his Web site.