Version 2.2 des SMB-Protokolls

Seite 4: Viele Wege kombinieren

Inhaltsverzeichnis

SMB 2.2 respektive 3.0 verwendet per Multi-Channel-Erweiterung mehr als eine TCP-Verbindung für das Laufwerks-Mapping. Dabei kann der Client den Server nach der Liste seiner Netz-Devices fragen. Diese umfasst nicht nur die IP-Adressen der Interfaces, sondern auch die Bandbreite und weitere Fähigkeiten wie RDMA. Der Client gleicht die Liste des Servers mit seinen eigenen Ports ab und erstellt daraus eine Liste potenzieller Kanäle zum Server, die sich im Wesentlichen durch Client- und Server-IP-Adresse unterscheiden. Existieren mehrere solcher Kanäle zum Server, versucht ein SMB-2.2-Client, mehr als einen zu öffnen und zu nutzen.

Das gleichzeitige Verwenden mehrerer Kanäle addiert die nutzbare Bandbreite. Auch die Zuverlässigkeit einer SMB-Verbindung erhöht sich drastisch: Bricht eine Netzverbindung weg, muss der Client nicht erst aufwendig eine weitere Verbindung aufbauen. Er kann einfach einen der anderen Kanäle weiter nutzen. Einzig die Bandbreite reduziert sich um den Anteil des ausgefallenen Kanals.

Im Unterschied zu NFSv2 oder NFSv3 sind SMB1 und SMB 2.x zustandsbehaftete Protokolle. Dies drückt sich dadurch aus, dass Clients Dateien über das Netz öffnen und Handles die offenen Dateien repräsentieren. An den Handles hängen weitere Zustandsinformationen wie Sperren für bestimmte Dateibereiche.

Bricht eine SMB-Verbindung weg, muss ein Client sie neu aufbauen. Da offene Dateien nach dem Verbindungsabbruch geschlossen sind, kann dies dazu führen, dass der Server während der Unterbrechung Sperren an andere Clients vergibt. Das heißt, das Client-Betriebssystem kann seinen Anwendungen nicht garantieren, dass sie offene Dateien nach einem Verbindungsabbruch im gleichen Zustand wieder öffnen können.

Mit SMB 2.0 hat Microsoft die sogenannten Durable File Handles implementiert. Ein Client fordert beim Öffnen einer Datei ein Durable Handle an. Der Server gewährt dieses, sofern er gleichzeitig ein sogenanntes „Batch Oplock“ gewährt, wenn also kein anderer Client die Datei geöffnet hat. Hat der Server das Durable Handle gewährt, überlebt dieses Handle einen Verbindungsabbruch und mit ihm alle Dateisperren. Hat der Client die Verbindung erfolgreich neu aufgebaut, kann er vom Server ein Wiederöffnen desselben Handle anfordern. Dies gelingt, solange kein anderer Client inzwischen die Datei geöffnet hat, das Batch Oplock also in Abwesenheit des ersten Clients gebrochen hat.

Durable File Handles sind ein Schritt hin zum transparenten Wiederaufbau von Verbindungen. Das Ziel ist, kurzfristige Netzstörungen zu überwinden. Mit Durable Handles garantiert der Server dem Client aber nicht, dass ein Wiederöffnen auch klappt.