Windows Server 2016: La nuova modalità di creazione dei Virtual Switch in Hyper-V

Windows Server

In questo articolo approfondiremo le caratteristiche e vedremo come configurare un Virtual Switch di Hyper-V in Windows Server 2016 nella modalità Switch Embedded Teaming (SET). Si tratta di una nuova tecnologia, alternativa al NIC Teaming, che consente di avere più schede di rete dell’host fisico di virtualizzazione in join allo stesso Virtual Switch di Hyper-V.

Con Windows Server 2012 era stata introdotta la possibilità di creare in modo nativo dal sistema operativo un teaming di rete (fino a un massimo di 32 schede di rete) senza dover installare software specifici dei vendor. Sugli host di virtualizzazione era pratica comune definire dei virtual switch di Hyper-V attestandoli su questi NIC teaming. Per avere quindi alta disponibilità e bilanciare il traffico di rete delle macchine virtuali era necessario unificare questi due differenti costrutti, il Team di rete e il Virtual Switch di Hyper-V. Utilizzando questa configurazione è opportuno specificare che il teaming tradizione LBFO (Load Balancer Fail Over) non era compatibile con la tecnologia RDMA.

In Windows Server 2016 è stata introdotta una ulteriore possibilità per quanto riguarda la configurazione dei Virtual Switch di Hyper-V chiamata Switch Embedded Teaming (SET), figura 1, la quale consente di unificare più schede di rete (fino a un massimo di 8) in un unico Virtual Switch senza configurare nessun teaming. SET ingloba infatti le funzionalità di teaming di rete all’interno del Virtual Switch consentendo di ottenere elevate performance e fault tolerance a fronte di guasti hardware delle singole NIC. In questa configurazione c’è la possibilità di abilitare la tecnologia RDMA sulle singole schede di rete e di conseguenza viene a decadere la necessità di avere set di NIC separati (uno per l’utilizzo con i Virtual Switch e uno per utilizzare la tecnologia RDMA).

2016_12_16_virtualswitch-01
Figura 1 – Architettura SET

Quando si valuta l’adozione della modalità Switch Embedded Teaming (SET) è importante considerare le compatibilità con le altre tecnologie relative al networking.

SET risulta compatibile con:

  • Datacenter bridging (DCB)
  • Hyper-V Network Virtualization sia in modalità NVGRE che VxLAN
  • Receive-side Checksum offloads (IPv4, IPv6, TCP) – Se supportato dal modello hardware delle NIC
  • Remote Direct Memory Access (RDMA)
  • SDN Quality of Service (QoS)
  • Transmit-side Checksum offloads (IPv4, IPv6, TCP) – Se supportato dal modello hardware delle NIC
  • Virtual Machine Queues (VMQ)
  • Virtual Receive Side Scalaing (RSS)

SET risulta invece non compatibile con le seguenti tecnologie di rete:

  • 1X authentication
  • IPsec Task Offload (IPsecTO)
  • QoS (implementato lato host)
  • Receive side coalescing (RSC)
  • Receive side scaling (RSS)
  • Single root I/O virtualization (SR-IOV)
  • TCP Chimney Offload
  • Virtual Machine QoS (VM-QoS)

 

Differenze rispetto al NIC Teaming

Switch Embedded Teaming (SET) si differenzia dal tradizionale NIC Teaming in particolare per i seguenti aspetti:

  • Quando si fa un deployment di SET non è supportato utilizzare NIC in modalità standby, ma tutte le schede di rete devono essere attive;
  • Non è possibile assegnare un nome specifico al team, ma solamente al Virtual Switch;
  • SET supporta solamente la modalità Switch Independent, mentre il NIC teaming ha diverse modalità di funzionamento. Questo significa che gli switch di rete, dove le NIC che appartengono a SET vengono attestate, non sono a conoscenza della presenza di questa configurazione e di conseguenza non introducono nessun controllo su come distribuire il traffico di rete tra i differenti membri.

In fase di configurazione di SET è necessario solamente specificare quali schede di rete appartengono al team e il meccanismo di bilanciamento del traffico.

Un Virtual Switch in modalità SET deve essere composto da schede di rete certificate da Microsoft che hanno superato i test di compatibilità “Windows Hardware Qualification and Logo (WHQL)“ per Windows Server 2016. Un aspetto importante è che le NIC devono essere identiche in termini di marca, modello, driver e firmware.

Per quanto riguarda come viene distribuito il traffico di rete tra i differenti membri di SET sono disponibili due modalità: Hyper-V Port e Dynamic.

Hyper-V Port

In questa configurazione il traffico di rete viene suddiviso tra i diversi membri del team in base all’associazione porta del virtual switch e MAC address della macchina virtuale connessa. Questa modalità è particolarmente adatta quando si utilizza in congiunzione alla tecnologia Virtual Machine Queues (VMQs). Bisogna inoltre considerare che nel caso in cui siano presenti poche macchine virtuali sull’host di virtualizzazione si potrebbe non avere un bilanciamento omogeneo del traffico essendo un meccanismo poco granulare. In questa modalità inoltre la banda disponibile per una scheda di rete di una macchina virtuale (con il traffico proveniente quindi sempre da una singola porta dello switch) è sempre limitata alla banda disponibile sulla singola interfaccia di rete.

Dynamic

Questo meccanismo di load balancing ha le seguenti caratteristiche:

  • Il traffico in uscita viene distribuito (sulla base di un hash porte TCP e indirizzi IP) secondo il principio denominato flowlets (basato sulle interruzioni presenti nei flussi delle comunicazioni TCP). Inoltre in modalità Dynamic è presente un meccanismo di ri-bilanciamento del traffico in real time tra i vari membri di SET.
  • Il traffico in ingresso invece viene distribuito esattamente come nella modalità Hyper-V Port.

Per quanto riguarda la configurazione di SET così come per tutti i componenti appartenenti al software-defined networking (SDN) è consigliato adottare System Center Virtual Machine Manager (VMM). Nella configurazione del Logical Switch è sufficiente selezionare “Embedded” nell’Uplink Mode così come viene mostrato nella figura 2.

2016_12_16_virtualswitch-02
Figura 2 – Configurazione SET in VMM

Come alternativa per la configurazione di SET è possibile utilizzare i seguenti comandi PowerShell:

Creazione Virtual Switch in modalità SET

2016_12_16_virtualswitch-03

Il parametro EnableEmbeddedTeaming per la creazione di un team SET è opzionale nel caso siano elencate più schede di rete, ma risulta utile quando si vuole configurare un Virtual Switch in questa modalità con una singola scheda di rete per essere esteso con ulteriori NIC successivamente.

Modifica dell’algoritmo di distribuzione del traffico

2016_12_16_virtualswitch-04

Conclusioni

Grazie a questo nuovo meccanismo di creazione dei Virtual Switch introdotto in Hyper-V 2016 è possibile avere una maggiore flessibilità nella gestione del networking riducendo il numero di schede di rete e la complessità di configurazione, senza rinunciare ad elevate performance e all’alta disponibilità.