iWARP RDMA für Intel Ethernet
Remote Direct Memory Access oder RDMA ermöglicht einem Computer den Zugriff auf den Arbeitsspeicher eines anderen Computers, ohne dass dabei eine Interaktion mit den Datenpuffern des Betriebssystems der beiden Computer stattfindet. Dadurch werden Netzwerkgeschwindigkeit und Durchsatz erhöht. iWARP ist ein Protokoll zur Implementierung von RDMA in Internet-Protokoll-Netzwerken.
Microsoft* Windows* bietet zwei Versionen von RDMA: Network Direct Kernel (NDK) und Network Direct (ND).
iWARP RDMA für NDK-Funktionen wie SMB Direct (Server Message Block)
NDK ermöglicht die Verwendung von iWARP-Funktionen (wie SMB Direct Storage) durch Windows Komponenten.
iWARP NDK-Konfiguration
Die NDK-Funktionalität ist in den Basisnetzwerktreibern von Intel enthalten. Es müssen zu diesem Zweck keine weiteren Funktionen installiert werden.
Kontrolle der iWARP RDMA-Funktion
Kontrollieren, dass RDMA auf den Netzwerkschnittstellen aktiviert ist
Get-NetAdapterRDMA
Kontrollieren, dass die Netzwerkschnittstellen als RDMA-fähig angezeigt werden und Multichannel aktiviert ist
Get-SmbClientNetworkInterface
Network Direct ist im Betriebssystem aktiviert
Get-NetOffloadGlobalSetting | NetworkDirect auswählen
Jede RDMA-fähige Netzwerkschnittstelle sollte an Port 445 einen Listener haben (Windows Client-Betriebssysteme mit RDMA-Unterstützung posten unter Umständen keine Listener)
netstat.exe -xan | ? {$_ -match "445"}
iWARP-Routing über IP-Subnetze
Wenn Sie die NDK RDMA-Funktion in Subnetzen freischalten möchten, müssen Sie aber bei der Installation der Basistreiber im Bildschirm „iWARP Configuration Options“ (iWARP Konfigurationsoptionen) die Option „Enable iWARP routing across IP Subnets“ (iWARP-Routing in IP-Subnetzen aktivieren) wählen (siehe „Installation“ unten).
iWARP für virtualisierte Umgebungen
Um die RDMA-Unterstützung auf einem mit einem VMSwitch verbundenen virtuellen Adapter zu aktivieren, müssen die erweiterten Eigenschaften *SRIOV (Single Root IO Virtualization) und *VMQ (Virtual Machine Queues) auf jedem Porttreiber aktiviert sein. Es kann vorkommen, dass diese Einstellungen standardmäßig deaktiviert sind. Diese Optionen können in der Registerkarte „Erweitert“ der Adaptereigenschaften konfiguriert werden. Alternativ können die folgenden Powershell-Befehle verwendet werden:
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV -RegistryValue 1
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ -RegistryValue 1
Testen von iWARP NDK: Microsoft* Windows* SMB Direct with DiskSPD
In diesem Abschnitt wird eine empfohlene Methode beschrieben, um die Funktionalität und Leistung von iWARP RDMA für Intel Ethernet auf Microsoft* Windows* Betriebssystemen zu testen.
SMB Direct ist eine Speicherworkload. Daher kann es vorkommen, dass die Leistung der Benchmark auf die Geschwindigkeit des Speichergeräts anstatt der getesteten Netzwerkschnittstelle begrenzt ist. Intel empfiehlt die Verwendung des schnellstmöglichen Speichersystems, um die echte Leistungsfähigkeit der untersuchten Netzwerkgeräte zu testen.
Testanleitung
- Konfigurieren Sie mindestens zwei Microsoft* Windows* Server 2012 R2 oder Microsoft* Windows* Server 2016 Server und verbinden Sie mindestens eine Netzwerkschnittstelle für iWARP-fähiges Intel® Ethernet mit jedem Server.
- Richten Sie auf dem als SMB Server vorgesehenen Server eine SMB-Freigabe ein. Es kann vorkommen, dass die Leistung der Benchmark auf die Geschwindigkeit des Speichergeräts anstatt der getesteten Netzwerkschnittstelle begrenzt ist. Die Einrichtung des Speichersystems wird in diesem Dokument nicht behandelt.
PowerShell (PS) Befehl:
New-SmbShare -Name <SMBsharename> -Path <SMBsharefilepath> -FullAccess <domainname>\Administrator,Everyone
Beispiel:
New-SmbShare -Name RAMDISKShare -Path R:\RAMDISK -FullAccess group\Administrator,Everyone
- Die Microsoft Utility Diskspd herunterladen und installieren: https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
- Wählen Sie mit CMD oder Powershell den Ordner DiskSpd und führen Sie Tests aus. (Einzelheiten zu den Parametern finden Sie in der Dokumentation zu Diskspd)
Beispiel: Setzen Sie die Blockgröße auf 4K, lassen Sie den Test 60 Sekunden lang laufen, deaktivieren Sie sämtliches Hardware- und Software-Caching, messen und zeigen Sie Latenzstatistiken an, verwenden Sie 16 sich überlappende IOs und 16 Threads pro Target, 0% wahlfreie Lesezugriffe und 100% Schreibzugriffe und erstellen Sie eine 10-GB-Testdatei unter „\\<SMBserverX722IP>\<SMBsharename>\test.dat“:
.\diskspd.exe –b4K -d60 -h -L –o16 -t16 –r –w0 -c10G \\<SMBserverX722IP>\<SMBsharename>\test.dat
- Kontrollieren Sie, dass RDMA-Traffic mit Perfmon-Zählern wie „RDMA Activity“ und „SMB Direct Connection“ läuft. Weitere Informationen finden Sie in der Dokumentation von Microsoft.
Konfiguration von iWARP Guest Support (NDK-Modus 3)
Im NDK-Modus 3 können Windows-Komponenten im Kernelmodus auf iWARP-Funktionen in Hyper-V-Gastpartitionen zugreifen. So wird NDK-Modus 3 auf einem Intel Ethernetgerät aktiviert:
- Aktivieren Sie SR-IOV im BIOS oder UEFI Ihres Systems.
- Aktivieren Sie die erweiterte Option für SR-IOV auf dem Gerät.
- Konfigurieren Sie das Gerät mit aktiviertem SR-IOV auf dem Switch. Führen Sie diesen Schritt für alle Funktionen auf demselben Gerät durch:
New-VMSwitch -Name <Switchname> -NetAdapterName <Gerätename>
-EnableIov $true
- Konfigurieren Sie die Anzahl der virtuellen Funktionen (VF) für RDMA auf dem Gerät über die erweiterte Option "RdmaMaxVfsEnabled". Alle physischen Funktionen müssen auf den gleichen Wert gesetzt werden. Der Wert ist die maximale Anzahl von VF mit gleichzeitiger RDMA-Unterstützung für das gesamte Gerät. Wenn mehr VF aktiviert werden, stehen begrenzte RDMA-Ressourcen aus physischen Funktionen (PF) und anderen VF zur Verfügung.
Set-NetAdapterAdvancedProperty -Name <Gerätename> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <Value: 0 – 32>
- Deaktivieren Sie alle PF-Adapter auf dem Host und aktivieren Sie sie neu. Dies ist erforderlich, wenn das Registrierungs-Schlüsselwort „RdmaMaxVfsEnabled“ geändert oder ein VMSwitch erstellt oder verworfen wird.
Get-NetAdapterRdma | Disable-NetAdapter
Get-NetAdapterRdma | Enable-NetAdapter
- Erstellen Sie VM Netzwerkadapter für VM, die RDMA VF-Unterstützung erfordern.
Add-VMNetworkAdapter -VMName <VM-Name> -VMNetworkAdapterName <Gerätename> -SwitchName <Switchname>
- Falls Sie die Verwendung von Microsoft Windows 10 Creators Update (RS2) oder höher auf einer Gastpartition planen, setzen Sie das RDMA-Weight auf dem VM-Netzwerkadapter, indem Sie den folgenden Befehl auf dem Host eingeben:
Set-VMNetworkAdapterRdma -VMName <VM-Name> -VMNetworkAdapterName <Gerätename> -RdmaWeight 100
- Setzen Sie das SR-IOV-Weight auf dem VM-Netzwerkadapter (Hinweis: SR-IOV-Weight muss auf 0 gesetzt werden, bevor RdmaWeight auf 0 gesetzt wird):
Set-VMNetworkAdapter -VMName <VM-Name> -VMNetworkAdapterName <Gerätename> -IovWeight 100
- Installieren Sie den VF-Netzwerkadapter mit dem PROSET Installer in der VM.
- Aktivieren Sie RDMA auf dem VF-Treiber und Hyper-V-Netzwerkadapter über PowerShell in der VM:
Set-NetAdapterAdvancedProperty -Name <Gerätename> -RegistryKeyword RdmaVfEnabled -RegistryValue 1
Get-NetAdapterRdma | Enable-NetAdapterRdma
iWARP RDMA für ND Benutzermodusanwendungen
Über ND können Benutzermodusanwendungen die iWARP-Funktionen verwenden. Wenn Sie in eigenentwickelten Benutzermodusanwendungen die iWARP-Funktionen nutzen möchten, müssen Sie bei der Installation der Treiber die Funktion „Network Direct (ND)“ installieren.
iWARP Benutzermodusinstallation
Der Intel® Ethernet User Mode iWARP Provider wird von Microsoft* Windows Server* 2012 R2 oder höher unterstützt.
 |
HINWEISE:
|
Zur Installation der Network Direct (ND) iWARP-Funktionen für den Benutzermodus gehen Sie wie folgt vor.
- Führen Sie auf dem Installationsdatenträger die Datei „Autorun.exe“ aus, um das Installationsprogramm zu starten. Wählen Sie „Install Drivers and Software“ (Treiber und Software installieren) und akzeptieren Sie den Lizenzvertrag.
- Wählen Sie im Bildschirm „Setupoptionen“ die Option „Intel® Ethernet User Mode iWARP Provider“.
- Wählen Sie im Bildschirm „iWARP Configuration Options“ (iWARP Konfigurationsoptionen) ggf. die Option „Enable iWARP routing across IP Subnets“ (iWARP-Routing in IP-Subnetzen aktivieren). Beachten Sie, dass diese Option auch dann bei der Installation der Basistreiber angezeigt wird, wenn iWARP für den Benutzermodus nicht gewählt wurde. Der Grund ist, dass diese Option ebenfalls bei der Funktionalität Network Direct Kernel zur Verfügung steht.
- Falls Windows-Firewall installiert und aktiviert ist, wählen Sie „Create an Intel® Ethernet iWARP Port Mapping Service rule in Windows Firewall“ (Regel für Intel® Ethernet iWARP Port Mapping Service in Windows-Firewall anlegen) und dann die Netzwerke, für die die Regel gelten soll. Falls Windows-Firewall deaktiviert ist oder Sie eine Firewall eines Drittanbieters verwenden, müssen Sie diese Regel manuell hinzufügen.
- Fahren Sie mit der Treiber- und Softwareinstallation fort.
iWARP Benutzermodusinstallation auf Microsoft Windows Server 2016 Nano Server
Gehen Sie wie folgt vor, um den Intel® Ethernet User Mode iWARP Provider auf dem Microsoft Windows Server 2016 Nano Server zu installieren.
- Legen Sie ein Verzeichnis an, von dem aus die iWARP-Dateien installiert werden. Beispiel: C:\Nano\iwarp.
- Kopieren Sie die folgenden Dateien in das neue Verzeichnis:
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\i40wb.dll
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\i40wbmsg.dll
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\indv2.cat
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\indv2.inf
- \Disk\APPS\PROSETDX\Winx64\DRIVERS\indv2.sys
- Führen Sie den Befehl DISM aus, um die iWARP-Dateien in das Nano Server Image einzufügen. Verwenden Sie dabei das in Schritt 1 angelegte Verzeichnis als Parameter für den Pfad AddDriver. Beispiel: „DISM .../Add-Driver C:\Nano\iwarp“
- Legen Sie eine eingehende Firewall-Regel für UDP-Port 3935 an.
- Verwenden Sie ggf. die folgenden Windows PowerShell-Befehle, um iWARP-Routing auf IP-Subnetzen zu aktivieren.
- Set-NetOffloadGlobalSetting -NetworkDirectAcrossIPSubnets Allow
- Disable Adapter
- Enable Adapter
Kunden-Support
- Allgemeine Intel Support-Website: http://support.intel.com
- Informationen zu Netzwerkprodukten: http://www.intel.com/network
Rechtliche Hinweise und Haftungsausschlüsse
Copyright (C) 2018, Intel Corporation. Alle Rechte vorbehalten.
Intel Corporation übernimmt keine Verantwortung für Fehler oder Auslassungen in diesem Dokument. Außerdem macht Intel keinerlei Zusagen, dessen Inhalt zu aktualisieren.
Intel ist eine Marke der Intel Corporation in den USA und/oder anderen Ländern.
*Andere Marken oder Produktnamen sind Eigentum der jeweiligen Inhaber.
Diese Software wird unter Lizenz bereitgestellt und darf nur unter Beachtung der Bestimmungen dieser Lizenz genutzt oder kopiert werden. Die Informationen in diesem Dokument dienen nur der Information. Sie können ohne Vorankündigung geändert werden und sind nicht als Zusage oder verpflichtende Aussage seitens der Intel Corporation zu verstehen. Die Intel Corporation übernimmt keine Verantwortung oder Haftung für Fehler oder Ungenauigkeiten in diesem Dokument oder jeglicher Software, die in Zusammenhang mit diesem Dokument bereitgestellt wird. Sofern nicht durch eine solche Lizenz gestattet, darf kein Teil dieses Dokuments ohne ausdrückliche schriftliche Zustimmung der Intel Corporation reproduziert, in einem Datenabfragesystem gespeichert oder in beliebiger Form und auf beliebigem Weg übertragen werden.