Ottimizzazione delle prestazioni del gateway di Virtualizzazione rete Hyper-V in reti software-defined

Questo argomento include specifiche hardware e consigli di configurazione per i server che eseguono Hyper-V e ospitano macchine virtuali di Windows Server Gateway, oltre a parametri di configurazione per le VM di Windows Server Gateway. Per ottenere prestazioni ottimali dalle VM di Windows Server Gateway, è previsto che vengano seguite queste linee guida. Nelle sezioni seguenti sono elencati i requisiti di configurazione e hardware quando si distribuisce Windows Server Gateway.

  1. Consigli relativi all'hardware Hyper-V
  2. Configurazione host di Hyper-V
  3. Configurazione delle macchine virtuali di Windows Server Gateway

Consigli relativi all'hardware Hyper-V

Di seguito è illustrata la configurazione hardware minima consigliata per ogni server che esegue Windows Server 2016 e Hyper-V.

Componente server Specifica
CPU Nodi NUMA (Non-Uniform Memory Architecture): 2
Se nell'host sono presenti più VM di Windows Server Gateway, per ottenere prestazioni ottimali, ogni macchina virtuale gateway deve avere accesso completo a un nodo NUMA. Deve trattarsi di un nodo diverso dal nodo NUMA usato dalla scheda fisica dell'host.
Core per nodo NUMA 2
Hyper-threading Disabled. Hyper-Threading non migliora le prestazioni di Windows Server Gateway.
Memoria ad accesso casuale (RAM) 48 GB
Schede interfaccia di rete (NIC) Due schede di interfaccia di rete da 10 GB, le prestazioni del gateway dipendono dalla velocità della linea. Se la velocità della linea è inferiore a 10 Gbps, anche la velocità effettiva del tunnel del gateway scenderà di pari passo.

Assicurarsi che il numero di processori virtuali assegnati a una macchina virtuale di Windows Server Gateway non superi il numero di processori presenti nel nodo NUMA. Ad esempio, se in un nodo NUMA sono presenti 8 core, il numero di processori virtuali deve essere inferiore o uguale a 8. Per ottenere prestazioni ottimali, dovrebbe essere 8. Per verificare il numero di nodi NUMA e il numero di core per ogni nodo NUMA, eseguire lo script di Windows PowerShell seguente in ogni host Hyper-V:

$nodes = [object[]] $(gwmi –Namespace root\virtualization\v2 -Class MSVM_NumaNode)
$cores = ($nodes | Measure-Object NumberOfProcessorCores -sum).Sum
$lps = ($nodes | Measure-Object NumberOfLogicalProcessors -sum).Sum


Write-Host "Number of NUMA Nodes: ", $nodes.count
Write-Host ("Total Number of Cores: ", $cores)
Write-Host ("Total Number of Logical Processors: ", $lps)

Importante

L'allocazione di processori virtuali tra i nodi NUMA potrebbe influire negativamente sulle prestazioni di Windows Server Gateway. L'esecuzione di più macchine virtuali, ciascuna delle quali dispone di processori virtuali di un nodo NUMA, consente di ottenere prestazioni aggregate migliori di quelle di una singola macchina virtuale a cui sono assegnati tutti i processori virtuali.

Una macchina virtuale gateway con otto processori virtuali e almeno 8 GB di RAM è la scelta consigliata quando si seleziona il numero di macchine virtuali del gateway da installare in ogni host Hyper-V e ogni nodo NUMA ha otto core. In questo caso, un nodo NUMA è dedicato al computer host.

Configurazione host di Hyper-V

Di seguito è illustrata la configurazione consigliata per ogni server che esegue Windows Server 2016 e Hyper-V e il cui carico di lavoro consiste nell'eseguire macchine virtuali di Windows Server Gateway. Queste istruzioni di configurazione includono l'utilizzo di esempi di comandi di Windows PowerShell. Tali esempi contengono segnaposto per i valori effettivi che è necessario fornire quando si eseguono i comandi nel proprio ambiente. Ad esempio, i segnaposto per i nomi delle schede di rete sono "NIC1" e "NIC2". Quando si eseguono i comandi che utilizzano questi segnaposto, sostituirli con i nomi effettivi delle schede di rete dei server in uso. In caso contrario, i comandi non verranno eseguiti correttamente.

Nota

Per eseguire i comandi di Windows PowerShell seguenti, è necessario appartenere al gruppo Administrators.

Elemento di configurazione Configurazione di Windows PowerShell
Switch Embedded Teaming (SET) Quando si crea un commutatore virtuale (vswitch) con più schede di rete, viene abilitato automaticamente Switch Embedded Teaming per tali schede.
New-VMSwitch -Name TeamedvSwitch -NetAdapterName "NIC 1","NIC 2"
Il raggruppamento tradizionale tramite LBFO non è supportato con SDN in Windows Server 2016. Switch Embedded Teaming consente di usare lo stesso set di schede di rete per il traffico virtuale e il traffico RDMA. Con Gruppo NIC basato su LBFO questo non era supportato.
Regolazione di interrupt nelle schede NIC fisiche Utilizzare le impostazioni predefinite. Per verificare la configurazione si può usare il comando di Windows PowerShell seguente: Get-NetAdapterAdvancedProperty
Dimensioni buffer di ricezione nelle schede NIC fisiche È possibile verificare se le schede NIC fisiche supportano la configurazione di questo parametro eseguendo il comando Get-NetAdapterAdvancedProperty. Nel caso non supportino il parametro, l'output del comando non includerà la proprietà "Receive Buffers". Se le schede NIC supportano il parametro, è possibile utilizzare il comando di Windows PowerShell seguente per impostare le dimensioni del buffer di ricezione:
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Receive Buffers" –DisplayValue 3000
Dimensione buffer invio nelle schede NIC fisiche È possibile verificare se le schede NIC fisiche supportano la configurazione di questo parametro eseguendo il comando Get-NetAdapterAdvancedProperty. Nel caso non supportino il parametro, l'output del comando non includerà la proprietà "Send Buffers". Se le schede NIC supportano il parametro, è possibile utilizzare il comando di Windows PowerShell seguente per impostare le dimensioni del buffer di invio:
Set-NetAdapterAdvancedProperty "NIC1" –DisplayName "Transmit Buffers" –DisplayValue 3000
Receive Side Scaling (RSS) nelle schede NIC fisiche È possibile verificare se nelle schede NIC fisiche è abilitato RSS eseguendo il comando di Windows PowerShell Get-NetAdapterRss. I comandi di Windows PowerShell seguenti consentono di abilitare e configurare RSS nelle schede di rete:
Enable-NetAdapterRss "NIC1","NIC2"
Set-NetAdapterRss "NIC1","NIC2" –NumberOfReceiveQueues 16 -MaxProcessors
NOTA: se VMMQ o VMQ è abilitato, RSS non deve essere abilitato nelle schede di rete fisiche. È possibile abilitarlo nelle schede di rete virtuali dell'host
VMMQ Per abilitare VMMQ per una macchina virtuale, eseguire il comando seguente:
Set-VmNetworkAdapter -VMName <gateway vm name>,-VrssEnabled $true -VmmqEnabled $true
NOTA: non tutte le schede di rete supportano VMMQ. Attualmente è supportato nella serie Chelsio T5 e T6, Mellanox CX-3 e CX-4 e QLogic 45xxx
Coda macchine virtuali (VMQ) nel gruppo NIC È possibile abilitare VMQ nel gruppo SET mediante il comando di Windows PowerShell seguente:
Enable-NetAdapterVmq
NOTA: questa opzione deve essere abilitata solo se l'hardware non supporta VMMQ. Se supportato, VMMQ deve essere abilitato per ottenere prestazioni migliori.

Nota

VMQ e vRSS entrano in gioco solo quando il carico nella macchina virtuale è elevato e la CPU viene utilizzata al massimo. Solo allora almeno un core del processore sarà al livello massimo. VMQ e vRSS saranno quindi utili per distribuire il carico di elaborazione tra più core. Questo non è applicabile al traffico IPsec, perché il traffico IPsec è confinato a un singolo core.

Configurazione delle macchine virtuali di Windows Server Gateway

In entrambi gli host Hyper-V è possibile configurare più macchine virtuali come gateway con Windows Server Gateway. È possibile utilizzare Gestione commutatori virtuali per creare un commutatore virtuale Hyper-V associato al gruppo NIC nell'host Hyper-V. Si noti che, per ottenere prestazioni ottimali, è consigliabile distribuire una singola macchina virtuale gateway in un host Hyper-V. Di seguito è illustrata la configurazione consigliata per ogni macchina virtuale di Windows Server Gateway.

Elemento di configurazione Configurazione di Windows PowerShell
Memoria 8 GB
Numero di schede di rete virtuali 3 schede NIC con gli utilizzi specifici seguenti: 1 per la gestione eseguita dal sistema operativo di gestione, 1 esterna che fornisca l'accesso alle reti esterne, 1 interna che fornisca l'accesso solo alle reti interne.
RSS (Receive-Side Scaling) È possibile mantenere le impostazioni predefinite di RSS per la scheda NIC di gestione. La configurazione dell'esempio seguente è applicata a una macchina virtuale con 8 processori virtuali. Per la schede NIC interna ed esterna è possibile abilitare RSS con BaseProcNumber impostato su 0 e MaxRssProcessors impostato su 8 mediante il comando di Windows PowerShell seguente:
Set-NetAdapterRss "Internal","External" –BaseProcNumber 0 –MaxProcessorNumber 8
Send Side Buffer È possibile mantenere le impostazioni predefinite di Send Side Buffer per la scheda NIC di gestione. Per le schede NIC interna ed esterna è possibile configurare Send Side Buffer con 32 MB di RAM mediante il comando di Windows PowerShell seguente:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Send Buffer Size" –DisplayValue "32MB"
Receive Side Buffer È possibile mantenere le impostazioni predefinite di Receive Side Buffer per la scheda NIC di gestione. Per le schede NIC interna ed esterna è possibile configurare Receive Side Buffer con 16 MB di RAM mediante il comando di Windows PowerShell seguente:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Receive Buffer Size" –DisplayValue "16MB"
Forward Optimization È possibile mantenere le impostazioni predefinite di Forward Optimization per la scheda NIC di gestione. Per le schede NIC interna ed esterna è possibile configurare Forward Optimization mediante il comando di Windows PowerShell seguente:
Set-NetAdapterAdvancedProperty "Internal","External" –DisplayName "Forward Optimization" –DisplayValue "1"