Version 2.2 des SMB-Protokolls

Seite 5: Wiederherstellung garantiert

Inhaltsverzeichnis

Einen weiteren Schritt in Richtung eines garantierten Wiederaufbaus von Verbindungen hat Microsoft in SMB 2.1 mit der Einführung von Resilient File Handles getan. Die sind aber nur von begrenztem Nutzen, weil Anwendungen sie explizit anfordern müssen, nur sehr wenige dürften dies tun.

Mit den persistenten File Handles in SMB 2.2 nimmt sich Microsoft der Anforderungen an, die Serveranwendungen wie Exchange oder SQL Server an die Verfügbarkeit von Dateien haben. SAN-Architekturen lassen sich redundant auslegen, sodass sie den Ausfall einer beliebigen Komponente gegenüber der Anwendung transparent ausgleichen können. Diese Anforderungen erfüllen die persistenten Handles ebenfalls.

Sie verlangen sowohl client- als auch serverseitig viel Logik, denn sie müssen berücksichtigen, dass irgendwo auf dem Weg vom Client zum Server die Anfragen oder auf dem Rückweg die entsprechenden Antworten verloren gehen. Dabei kann es vorkommen, dass ein Server während der Bearbeitung der Anfrage den Dienst quittiert. In einem solchen Fall muss serverseitig genau definiert sein, welcher Status zwingend auf einen Failover-Server zu übertragen ist und welchen Zustand der Client wieder herstellen kann und muss. Während ein Client mit persistenten Handles gerade nicht verbunden ist, muss der Server alle anderen modifizierenden Anfragen zurückhalten, bis sich der Client wieder verbindet oder ein zuvor ausgehandelter Timeout abgelaufen ist.

Neben der Zuverlässigkeit ist die mehr Performance ein Vorteil, den ein SAN gegenüber einer NAS-Lösung vorweisen kann. Diese lässt sich einerseits durch ein separates Netz mit niedrigerer Latenz und mehreren Kanälen erreichen, andererseits sind häufig die Fibrechannel-Hostbus-Adapter (FC-HBA) mit deutlich mehr Intelligenz ausgestattet, als Netzwerkkarten. Daher ist die durch Datentransfers erzeugte CPU-Last mit FC deutlich niedriger als bei einer auf TCP basierenden iSCSI-Infrastruktur.

Windows 8 kontert mit einer Technik namens SMBDirect oder SMB over RDMA. Besteht zum Beispiel zwischen Client und Server eine RDMA-fähige InfiniBand-Verbindung, kann der Transfer der Massendaten über diese RDMA-Verbindung mit drastisch niedrigerer CPU-Belastung erfolgen. Die gesamte SMB-Logik bleibt über eine normale Verbindung erhalten, nur die eigentlichen Datentransfers lagert SMBDirect auf RDMA aus. Die Grafik verdeutlicht die Unterschiede im Vergleich zum TCP-Ansatz.

Beim Lesen über RDMA schreibt der Server die angeforderten Daten direkt in den dafür
vorgesehenen Speicher des Clients.

(Bild: David Kruse, Mathew George; SDC 2011)

Mit der Einführung von SMB 2.2 (3.0) plant Microsoft, Dateiserver als Cluster anzubieten. Dabei erlauben die persistenten Handles ein transparentes Failover in einem Aktiv-Passiv-Cluster. Allerdings wollen die Redmonder noch einen Schritt weiter gehen und werden ein Volume auch im Aktiv-Aktiv-Cluster exportieren können. Die grundsätzliche Architektur des Clusterings wird sich von dem Weg unterscheiden, den Samba mit ctdb in den letzten Jahren gegangen ist. Samba-Server verteilen im Cluster die SMB-Logik wie Oplocks und Share Modes komplett auf die beteiligten Rechner, sodass der nach außen wie ein einzelner SMB-Server mit mehreren Interfaces erscheint.

Für das Clustering kann Microsoft Modifikationen am Client vornehmen. Durch die Logik, persistente Handles wiederzuverbinden, kann Microsoft serverseitig pro Datei einen Metadatenserver definieren, der die erwähnte SMB-Logik übernimmt. Fällt dieser Server aus, übernehmen die Clients mit den persistenten Handles einen großen Teil der Wiederherstellung der verloren gegangenen Information. Samba und ctdb werden in Zukunft für SMB-2.2/3.0-fähige Clients diese Logik ebenfalls nutzen können und trotzdem die bis heute installierten Clients mit hochverfügbaren Cluster-Diensten versorgen können.

Mit SMB 2.2 (3.0) hat Microsoft zu einem großen Sprung in Richtung Rechenzentrum angesetzt. Die eigenen Serverapplikationen werden SMB-2.2/3.0-Dateiserver als Datenablage akzeptieren, und Support bekommen Anwender dafür dann ebenfalls. Die großen NAS-Hersteller wie EMC und NetApp haben Unterstützung für SMB 2.2 (3.0) zugesagt, und das Samba-Team ist ebenfalls intensiv dabei, die entsprechenden Neuerungen einzuarbeiten. (rek)