Tags: Hardware, Storage, Performance
SMB3 kommt mittlerweile bei vielen Storage-Szenarien zum Einsatz. Der Zugriff erfolgt dabei datei- und nicht blockbasiert wie bei iSCSI. Doch was leisten Remote Direct Memory Access (RDMA) und SMB Direct, und wie arbeiten sie mit SMB Multichannel zusammen?
Wenn Daten von A nach B transferiert werden müssen, dann wünscht man sich fast immer, dass die Übertragung möglichst schnell über die Bühne geht. Das gilt für die Live Migration, wo virtuelle Maschinen von einem Host zum anderen wandern und Hosts zügig freigeräumt werden, ebenso wie bei der Storage-Replikation oder bei Storage Spaces Direct (S2D). Diese beiden Feature sind auf ein performantes Netzwerk angewiesen um zufriedenstellend ihre Dienste anzubieten.
RDMA benötigt weniger Rechenleistung
Bei Live-Migrationen ist es seit Windows Server 2012 R2 möglich, mit Performance-Schaltern zu bestimmen, ob der Datentransfer über TCP/IP laufen soll oder mit RDMA-fähigen Netzwerkadaptern ohne Umweg via SMB Direct (SMB über RDMA). Die Daten werden dabei direkt in den Speicher des entfernten Hosts gesendet, ohne eben CPU-Kerne für Berechnungen beim TPC/IP-Stack hier groß in Anspruch zu nehmen. Die dadurch eingesparte Rechenleistung kommt den darüber liegenden Applikationen wie Hyper-V dann zugute.
Latenzen spielen bei der Datenübertragung eine große Rolle, beispielsweise gilt bei Storage Replica ein Richtwert von ≤ 5 ms. Dieses Feature von Windows Server 2016 überträgt Volumes oder LUNs blockbasiert mittels SMB 3.1.1, und zwar unabhängig von der Workload.
Erfolgt dieser Vorgang synchron, ist eine Applikation wie auch hier Hyper-V auf eine schnelle Bestätigung angewiesen und reagiert sensibel auf Latenzen. Storage Replica setzt grundsätzlich keine RDMA-NICs (R-NIC) voraus, es funktioniert auch über Standard-TCP/IP. Wichtig für geringe Latenzen ist dabei, wie viele Hops die Daten passieren müssen. Wie unterscheiden sich dabei TCP/IP und RDMA?
Die Applikation (beispielsweise Hyper-V) schreibt ihren I/O über den SMB-Client und dieser wandelt die Schreib- oder Lesevorgänge in SMB-Netzwerkpakete, welche anschließend über den TCP/IP-Stack die NIC erreichen. Diese schickt SMB3-Pakete zum Ziel-Host und hier durchlaufen sie erneut den TCP/IP Netzwerk-Stack bis zum SMB-Server. Dieser entpackt die Daten und übergibt sie anschließend dem Dateisystem. Der Acknowledge legt die gleiche Strecke zur Applikation zurück.
Kommen jedoch RDMA-Adapter zum Einsatz, erkennt das Windows Server ab 2012 und verpackt die Daten am SMB-Client für SMB Direct. Der ganze Weg durch den TCP/IP Stack wird anschließend eingespart. Die Vorteile von RDMA in der Übersicht:
- OS / Stack bypass
- Niedrige Latenzen
- Hoher Durchsatz
- Zero copy Fähigkeit
SMB Multichannel und SMB Direct im Zusammenspiel
SMB Direct muss für RDMA-Netzwerkadapter nicht explizit aktiviert werden, dies passiert automatisch und in enger Verbindung mit SMB Multichannel. Letzteres öffnet mehrere Verbindungskanäle und erhöht so den Durchsatz sowie die Fehlertoleranz. Auch SMB Multichannel ist per Default aktiv, und sollte es jedoch inaktiv gesetzt sein, bleibt auch SMB Direct ungenutzt. SMB Direct funktioniert auch dann nicht, wenn RDMA-NICs im Teaming-Modus betrieben werden. (SET unter 2016 ermöglicht RDMA Funktionalitäten)
Über die Cmdlets Get-SmbClientConfiguration und Get-SmbServerConfiguration erhalten Sie mit PowerShell detailliert Auskunft über aktive und inaktive Parameter.
RDMA-Protokolle
Kurz beschrieben, gibt es drei nennenswerte Protokolltypen bei RDMA-fähigen Netzwerkadaptern:
- iWARP (internet Wide Area RDMA Protocol) gewährleistet RDMA über TCP und nutzt hier die gewöhnliche Ethernet-Infrastruktur mit kurzen Konfigurationswegen
- RoCE erlaubt, wie der Name vielleicht vermuten lässt, RDMA over Converged Ethernet. Dabei sind Switche erforderlich, welche mit Priority Flow Control (PFC) arbeiten.
- InfiniBand braucht eine dedizierte Infrastruktur, zum Beispiel spezielle Switche
Um herauszufinden, ob die NICs tatsächlich RDMA-Fähigkeiten besitzen, nutzen Sie die Cmdlets Get-NetAdapterRDMA und Get-NetAdapterHardwareInfo sowie
Get-NetOffloadGlobalSetting | select NetworkDirect
am SMB-Server sowie am SMB-Client.
Auch Get-SmbClientNetworkInterface und Get-SmbServerNetworkInterface liefern Informationen zum Offloading. Bei aktivierter Windows-Firewall müssen die Ports 5445 (SMB Direct) und 445 (SMB) eingehend am Server konfiguriert werden, wenn man etwa iWARP nutzt.
Täglich Know-how für IT-Pros mit unserem Newsletter
Marcel Küppers arbeitet seit über 25 Jahren in der IT, aktuell als Team Leader, zuvor als Consultant und Infrastructure Architect unter anderem für den japanischen Konzern JTEKT/TOYODA mit Verantwortung über die Europastandorte Krefeld und Paris.
Darüber hinaus wirkte er als Berater im EU-Projekt-Team für alle Lokationen des Konzerns mit und ist spezialisiert auf hochverfügbare virtualisierte Microsoft-Umgebungen plus Hybrid Cloud Solutions.
Zertifizierungen: MS Specialist und MCTS für Hyper-V/SCVMM, MCSE, MCITP, MCSA. Zusätzlich zertifiziert für PRINCE2 Projektmanagementmethode.
Verwandte Beiträge
- Virtuelle Maschine für Synology VMM erstellen
- VMware veröffentlicht eBook mit Performance-Tipps für vSphere 8
- Leistung von vSphere-Speicher überprüfen mit VMware Storage Performance Tester
- Virtuelle Disk-Controller für VMs auf VMware ESXi: LSI-Logic SAS oder VMware Paravirtual?
- Performance von VMware vSAN testen mit Hyper-Converged Infrastructure Benchmark (HCIBench)
Weitere Links