Konfigurieren von Quality of Service (QoS) für einen VM-Netzwerkadapter

Gilt für Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI (Version 21H2 und 20H2)

Sie können QoS (Quality of Service) für SDN (Software Defined Networking) für einen VM-Netzwerkadapter so konfigurieren, dass die Bandbreite in einer virtuellen Schnittstelle eingeschränkt wird, um zu verhindern, dass eine VM mit sehr viel Datenverkehr mit anderem VM-Netzwerkdatenverkehr konkurriert. Sie können SDN-QoS auch so konfigurieren, dass eine bestimmte Menge an Bandbreite für eine VM reserviert wird, um sicherzustellen, dass diese VM ihren Datenverkehr unabhängig von anderem Datenverkehr im Netzwerk senden kann. Diese Konfiguration kann sowohl auf an herkömmliche VLANs angeschlossene VMs als auch auf an SDN-Überlagerungsnetzwerke angeschlossene VMs angewendet werden.

Sie können auch eine QoS-Auslagerung konfigurieren, um QoS-Regeln im physischen Netzwerkadapter statt im virtuellen Switch zu erzwingen, was zu einer niedrigeren CPU-Auslastung und einer verbesserten Erzwingung führt. Die QoS-Auslagerung ist eine optionale Funktion in zertifizierten Windows Server 2022-Netzwerkschnittstellen, die die Premium Additional Qualification (AQ) für Windows Server Software-Defined Data Center (SDDC) erreicht haben. Weitere Informationen finden Sie unter Auswählen eines Netzwerkadapters.

SDN-QoS-Bandbreitengrenzwerte

SDN-QoS ermöglicht die Konfiguration der maximal zulässigen sende- oder empfangsseitigen Bandbreite für VMs bereit. Dies wird sowohl für mit einem herkömmlichen VLAN-Netzwerk verbundene als auch für mit einem virtuellen SDN-Netzwerk verbundene VMs unterstützt. Nach der Festlegung kann Ihre VM keinen Datenverkehr über die konfigurierten maximalen Grenzwerte hinaus senden oder empfangen. Sie können für eine VM einen sendeseitigen Grenzwert, einen empfangsseitigen Grenzwert oder beides konfigurieren.

Folgende Einstellungen können über SDN-QoS konfiguriert werden:

  • OutboundReservedValue: Wenn outboundReservedMode auf „absolut“ festgelegt ist, gibt der Wert die Bandbreite in Mbit/s an, die dem virtuellen Port für die Übertragung (ausgehend) garantiert wird. Wenn outboundReservedMode auf „Gewichtung“ festgelegt ist, gibt der Wert den gewichteten Anteil der garantierten Bandbreite an.

  • OutboundMaximumMbps: Gibt die maximal zulässige sendeseitige Bandbreite in Mbit/s für den virtuellen Port (ausgehend) an.

  • InboundMaximumMbps: Gibt die maximal zulässige empfangsseitige Bandbreite in Mbit/s für den virtuellen Port (eingehend) an.

SDN-QoS-Richtlinien

Wenn der Netzwerkcontroller für SDN eingerichtet ist, können Sie Ihre QoS-Richtlinien bereitstellen. Dazu können Sie PowerShell-Cmdlets für den Netzwerkcontroller verwenden.

Bei allen im Folgenden verwendeten Beispielskripts ist -ConnectionUri der REST-URI des Netzwerkcontrollers. Beispiel: https://nc.contoso.com

Schritt 1: Konfigurieren von globalen QoS-Einstellungen

Führen Sie den folgenden PowerShell-Befehl auf einem Netzwerkcontrollercomputer oder im Verwaltungsclient eines Netzwerkcontrollers aus. Dadurch können die globalen Einstellungen QoS-Richtlinien über den Netzwerkcontroller konfigurieren:

$vswitchConfig=[Microsoft.Windows.NetworkController.VirtualSwitchManagerProperties]::new()
$qos=[Microsoft.Windows.NetworkController.VirtualSwitchQosSettings]::new()
$qos.EnableSoftwareReservations=$true
$vswitchConfig.QosSettings =$qos
Set-NetworkControllerVirtualSwitchConfiguration -ConnectionUri $uri -Properties $vswitchConfig

Schritt 2: Konfigurieren von QoS-Richtlinien

Zunächst müssen Sie die Workload VM-Netzwerkschnittstelle identifizieren, auf die Sie die Richtlinie anwenden möchten:

$NwInterface=Get-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId Vnet-VM2_Net_Adapter_0

Als Nächstes konfigurieren Sie den maximal zulässigen eingehenden und ausgehenden Durchsatz in der Netzwerkschnittstelle:

$NwInterface.Properties.PortSettings.QosSettings= [Microsoft.Windows.NetworkController.VirtualNetworkInterfaceQosSettings]::new()
$NwInterface.Properties.PortSettings.QosSettings.InboundMaximumMbps ="1000"
New-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId $NwInterface.ResourceId -Properties $NwInterface.Properties

QoS-Auslagerung (optional)

Sie können die physische Netzwerkschnittstelle so konfigurieren, dass die QoS-Auslagerung verwendet wird. Wenn Ihr Adapter die QoS-Auslagerung unterstützt, stellen Sie mithilfe einer von zwei Methoden sicher, dass sie aktiviert ist:

  • Netzwerk-ATC (empfohlen)
  • Manuelle Aktivierung über die Adaptereigenschaften

Verwenden von Netzwerk-ATC

Die QoS-Auslagerung wird automatisch auf allen Adaptern mit dem Absichtstyp Compute aktiviert. Weitere Informationen finden Sie unter Vereinfachen von Hostnetzwerken mit Netzwerk-ATC.

Hinweis

Diese Option ist nur für Azure Stack HCI-Abonnenten verfügbar.

Verwenden der manuellen Aktivierung

Die manuelle Aktivierung erfolgt über die integrierten Cmdlets, die zum Verwalten der Eigenschaften des physischen Adapters verwendet werden.

Wichtig

Sie müssen sicherstellen, dass QosOffload in jeder physischen Netzwerkschnittstelle im Team für jeden Host aktiviert ist. Andernfalls wird die QoS-Regel über den virtuellen Switch erzwungen, was zu geringerer Effizienz führt.

Verwenden Sie die folgenden Cmdlets, um zu überprüfen, ob Ihre Adapter QosOffload unterstützen, und dann die Adaptereigenschaften zu ändern:

Get-NetAdapterAdvancedProperty -Name <physical NIC Name> -RegistryKeyword *QosOffload
Enable QosOffload for your adapters:
Set-NetAdapterAdvancedProperty -Name  <physical NIC Name> -RegistryKeyword *QosOffload -RegistryValue 1

Konfigurieren von Hardware-QoS

Sie können Hardware-QoS mithilfe von Einstellungen und Richtlinien konfigurieren.

Schritt 1: Konfigurieren von globalen QoS-Einstellungen

Führen Sie die folgenden Schritte auf einem Netzwerkcontrollercomputer oder im Verwaltungsclient eines Netzwerkcontrollers aus. Dadurch können die globalen Einstellungen QoS-Richtlinien über den Netzwerkcontroller konfigurieren:

$vswitchConfig=[Microsoft.Windows.NetworkController.VirtualSwitchManagerProperties]::new()
$qos=[Microsoft.Windows.NetworkController.VirtualSwitchQosSettings]::new()
$qos.EnableHardwareLimits=$true
$vswitchConfig.QosSettings =$qos
Set-NetworkControllerVirtualSwitchConfiguration -ConnectionUri $uri -Properties $vswitchConfig

Schritt 2: Konfigurieren von QoS-Richtlinien

Identifizieren Sie zunächst Sie die Workload VM-Netzwerkschnittstelle, auf die Sie die Richtlinie anwenden möchten:

$NwInterface=Get-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId Vnet-VM2_Net_Adapter_0

Als Nächstes konfigurieren Sie den maximal zulässigen ausgehenden Durchsatz in der Netzwerkschnittstelle. Das folgende Beispiel erstellt eine QoS-Regel, die den ausgehenden Datenverkehr von einer VM-Schnittstelle auf 1 Gbit/s beschränkt.

Wichtig

Die QoS-Auslagerung unterstützt nur OutboundMaximumMbps. Sie können weder OutboundReservedValue noch InboundMaximumMbps mit der QoS-Auslagerung verwenden.

$NwInterface.Properties.PortSettings.QosSettings= [Microsoft.Windows.NetworkController.VirtualNetworkInterfaceQosSettings]::new()
$NwInterface.Properties.PortSettings.QosSettings. EnableHardwareLimits=$true
$NwInterface.Properties.PortSettings.QosSettings.OutboundMaximumMbps ="1000"
New-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId $NwInterface.ResourceId -Properties $NwInterface.Properties

Hinweis

Während einer Livemigration kann es passieren, dass eine VM zu einem Host verschoben wird, der keine QoS-Auslagerung unterstützt. In diesem Szenario ist die Livemigration zwar erfolgreich, aber für QoS wird ein Fallback auf SDN-QoS ausgeführt.