Performante Storage-Anbindung: SMB3, SMB Direct, RDMA und SMB Multichannel

    Dateitransfer über RSMA-fähige NICsSMB3 kommt mittler­weile bei vielen Storage-Szenarien zum Einsatz. Der Zugriff erfolgt dabei datei- und nicht block­basiert 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?

    Das Diagramm zeigt den Lauf der Daten über den kompletten TCP/IP Stack oder über RDMA (SMB Direct)

    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.

    Detaillierte Übersicht über die SMB-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 Konfigurations­wegen
    • 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.

    Bei iWARP müssen die Firewall-Ports 5445 (SMB Direct)  und 445 (SMB) eingehend am Server konfiguriert werden.

    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.

    Keine Kommentare