Friday, 16 December 2016

Windows Server 2012: Creating a NIC TEAM for Load Balancing and Failover

https://blogs.technet.microsoft.com/kevinholman/2012/06/02/windows-server-2012-creating-a-nic-team-for-load-balancing-and-failover/

One of the new features in Windows Server 2012 is Microsoft NIC Teaming.  In the past, NIC teaming was handled by the NIC vendor’s driver and management software.  This was often problematic as many issues with advanced applications and roles were caused by NIC driver and teaming issues.  Microsoft did not support NIC teaming for Hyper-V networks in the past because of this.  No longer the case, NIC teaming is now part of the Operating System.

Here I have three network adapters in my Windows 2012 RC server:  One for server management, and two for Hyper-V:

image

To enable NIC Teaming – click the “Disabled” link next to NIC Teaming in Server Manager:

image

The NIC Teaming UI pops up. 

image

CTRL + Click each NIC that you want in a team, then from then right click (or select Tasks) and choose “Add to New Team”:

image

This allows you to name the team.  I called mine “Hyper-V Team”

image

You can also select the “Additional Properties” is you want to configure some advanced settings.  The TechNet section on teaming is here:

The defaults are “Switch Independent” (no advanced configuration necessary on the switch), “Address Hash” (will enable load balancing and bandwidth aggregation), and Standby Adapter (if configured, will enable on one NIC and the other will be used for failover only).  Even though I am using these with Hyper-V, I will use the defaults.  If this were a production deployment with a high density server, I’d give much deeper consideration to these settings based on my requirements.
Click OK, and our team config is complete!

image

If you look at the Network Connections, you will see a new (virtual) NIC:

image

You will see your Physical NIC’s only have a single binding to the Microsoft Network Adapter Multiplexor Protocol driver:

image

And the Virtual Team NIC has the normal bindings:

image

You can also config NIC Teaming via PowerShell, and even configure NIC teaming on remote servers via Server Manager!

image