In Windows Server 2012 R2 vi sono tre algoritmi di load balancing possibili per la configurazione del NIC Teaming: Address Hash, Hyper-V Port e Dynamic (introdotto in WS2012 R2) che possono essere utilizzati sia per nella modalità Static Teaming, Switch-Independent e LACP. Windows Server 2012 R2 supporta fino a 32 NIC per Team anche con differente velocità.
Address Hash
In questa modalità di Load Balancing il traffico in uscita è distribuito su tutte le NIC, mentre il traffico in ingresso è ricevuto da una sola NIC in quanto viene indirizzato verso un singolo MAC address per scopi di routing. Ciò implica che sia più adatto a workload che hanno traffico in uscita elevato e traffico in entrata leggero come ad esempio IIS.
Non può inoltre essere utilizzato per traffico che non sia TCP o UDP o per traffico in cui le porte TCP e UDP siano nascoste nello stack come ad esempio il traffico protetto da IPsec, in questi casi il traffico viene gestito da un singolo indirizzo IP o MAC address e quindi viene usata una sola NIC.
L’utilizzo dell’algoritmo Address Hash nella modalità Switch-Independent è suggerito per:
- Team Active/Standby con solo due membri
- Teaming eseguito in una VM
L’utilizzo dell’algoritmo Address Hash nella modalità LACP non è raccomandato.
Hyper-V Port
In questa modalità di Load Balancing il traffico viene gestito utilizzando tutte le NIC distribuendo il carico sfruttando il numero della porta di un Hyper-V Switch, inoltre questo algoritmo permette di sfruttare al meglio Virtual Machine Queues (VMQs) se utilizzato. Se l’host ha poche VM questo algoritmo non garantisce una buona distribuzione del carico.
Dal momento che viene utilizzata l’Hyper-V Port come identificatore, potrebbe accadere che una VM in certe circostanze presenti più MAC address sulla porta dello switch. L’utilizzo dell’algoritmo Hyper-V Port nella modalità Switch-Independent è suggerito per la rete utilizzata dalle VM negli host Hyper-V Windows Server 2012, nel caso di Windows Server 2012 R2 è preferibile utilizzare Dynamic.
L’algoritmo Hyper-V Port massimizza le performance quando viene utilizzato VMQs. Per verificare se vi sono NIC che supportano VMQs è possibilie usare il cmdlet PowerShell Get-NetAdapterVmq, mentre per la configurazione è possibile usare il cmdlet Set-NetAdapterVmq.
L’utilizzo dell’algoritmo Hyper-V port nella modalità LACP non è raccomandato.
Dynamic
In questa modalità di Load Balancing il traffico in uscita sfrutta tutte le NIC e viene distribuito sulla base di un hash di porte TCP e indirizzi IP, il traffico in ingresso sfrutta tutte le NIC e viene gestito come se fosse utilizzata una Hyper-V port. Anche l’algoritmo Dynamic massimizza le performance quando viene utilizzato VMQs.
L’utilizzo dell’algoritmo Dynamic nella modalità Switch-Independent è suggerito sia per reti native che dedicate a VM fatta eccezione per i seguenti casi:
- Teaming eseguito in una VM (in questo caso utilizzare Address Hash)
- Switch dependig teaming (per esempio LACP)
- Team Active/Standby con solo due membri (in questo caso utilizzare Address Hash)
L’utilizzo dell’algoritmo Dynamic nella modalità LACP è sempre raccomandato.
Conclusioni
Riassumendo nel caso di un cluster di Hyper-V in cui si decide di implementare il NIC Teaming è consigliabile scegliere Dynamic come algoritmo di load balancing sia nella modalità Switch-Independent che LACP per tutte le reti (CSV, Live Migration, VM e Management). Nel caso si voglia configurare il NIC Teaming all’interno di una VM occorre utilizzare modalità Switch-Independent e scegliere Address Hash come algoritmo di load balancing.