Opportunistische Sperren

Eine opportunistische Sperre (auch Oplock genannt) ist eine Sperre, die von einem Client für eine Datei auf einem Server festgelegt wird. In den meisten Fällen fordert ein Client eine opportunistische Sperre an, um Daten lokal zwischenspeichern zu können, wodurch sich der Netzwerkdatenverkehr verringert und die Reaktionszeit spürbar verbessert. Opportunistische Sperren werden von Netzwerkredirectors auf Clients mit Remoteservern sowie von Clientanwendungen auf lokalen Servern verwendet.

Hinweis

Die Artikel zu opportunistischen Sperren in diesem Abschnitt beziehen sich in erster Linie auf Clientanwendungen, obwohl einige Informationen für Netzwerkumleitungen bereitgestellt werden. Weitere Oplock-Informationen für Netzwerkumleitungen finden Sie in den Oplocks-Artikeln von Windows WDK.

Überblick

Opportunistische Sperren koordinieren die Zwischenspeicherung und Kohärenz von Daten zwischen Clients und Servern sowie zwischen mehreren Clients. Kohärente Daten sind Daten, die im gesamten Netzwerk identisch sind. Das heißt, kohärente Daten werden auf dem Server und allen Clients synchronisiert.

Opportunistische Sperren sind keine Befehle des Clients an den Server. Vielmehr handelt es sich dabei um Anforderungen vom Client an den Server. Aus Sicht des Clients sind sie opportunistisch. Das heißt, der Server gewährt solche Sperren immer dann, wenn sie durch andere Faktoren ermöglicht werden.

Wenn eine lokale Anwendung Zugriff auf eine Remotedatei anfordert, ist die Implementierung opportunistischer Sperren für die Anwendung transparent. Der Netzwerkredirector und der beteiligte Server öffnen und schließen die opportunistischen Sperren automatisch. Opportunistische Sperren können jedoch auch verwendet werden, wenn eine lokale Anwendung Zugriff auf eine lokale Datei anfordert und der Zugriff durch andere Anwendungen und Prozesse delegiert werden muss, um eine Beschädigung der Datei zu verhindern. In diesem Fall fordert die lokale Anwendung direkt eine opportunistische Sperre vom lokalen Dateisystem an und speichert die Datei lokal zwischen. Bei dieser Verwendung ist die opportunistische Sperre effektiv ein vom lokalen Server verwalteter Semaphor und wird hauptsächlich zum Zweck der Datenkohärenz in der Datei und zur Dateizugriffsbenachrichtigung verwendet.

Bevor Sie opportunistische Sperren in Ihrer Anwendung verwenden, sollten Sie mit den Dateizugriffs- und Freigabemodi vertraut sein, die unter Erstellen und Öffnen von Dateien beschrieben werden.

Die maximale Anzahl gleichzeitiger opportunistischer Sperren, die Sie erstellen können, wird nur durch die Menge des verfügbaren Arbeitsspeichers begrenzt.

Lokale Anwendungen sollten nicht versuchen, opportunistische Sperren von Remoteservern anzufordern. In diesem Fall wird von DeviceIoControl ein Fehler zurückgegeben.

Opportunistische Sperren sind für Anwendungen von sehr begrenztem Nutzen. Die einzige praktische Verwendung besteht darin, einen Netzwerkredirector oder einen Handler für opportunistische Sperren auf dem Server zu testen. In der Regel implementieren Dateisysteme Unterstützung für opportunistische Sperren. Anwendungen überlassen die Verwaltung opportunistischer Sperren in der Regel den Dateisystemtreibern. Beim Implementieren eines Dateisystems sollte grundsätzlich das IFS-Kit (Installable File System) verwendet werden. Wenn ein anderer Gerätetreiber als ein installierbares Dateisystem entwickelt wird, sollte das Windows Driver Kit (WDK) eingesetzt werden.

Opportunistische Sperren und die zugehörigen Vorgänge sind eine Übermenge des Teils für opportunistische Sperren im CIFS-Protokoll (Common Internet File System), einem Internetentwurf. Das CIFS-Protokoll ist eine erweiterte Version des SMB-Protokolls (Server Message Block). Weitere Informationen finden Sie unter Microsoft SMB-Protokoll und CIFS-Protokoll (Übersicht). Der CIFS-Internetentwurf weist explizit darauf hin, dass eine CIFS-Implementierung opportunistische Sperren implementieren kann, indem sie deren Gewährung verweigert.

In den folgenden Themen werden opportunistische Sperren identifiziert.

In diesem Abschnitt

Thema BESCHREIBUNG
Lokales Zwischenspeichern Die lokale Zwischenspeicherung von Daten ist eine Technik, die zum Beschleunigen des Netzwerkzugriffs auf Datendateien verwendet wird. Dazu gehört, dass Daten nach Möglichkeit auf Clients und nicht auf Servern zwischengespeichert werden.
Datenkohärenz Kohärente Daten werden auf dem Server und allen Clients synchronisiert. Ein Beispiel für einen Softwaresystemtyp, der Datenkohärenz bereitstellt, ist ein RCS (Revision Control System).
Anfordern einer opportunistischen Sperre Opportunistische Sperren werden angefordert, indem zunächst eine Datei mit Berechtigungen und Flags geöffnet wird, die für die öffnende Anwendung geeignet sind. Alle Dateien, für die opportunistische Sperren angefordert werden, müssen für überlappende (asynchrone) Vorgänge geöffnet werden.
Serverantwort auf Öffnungsanforderungen für gesperrte Dateien Sie können die Auswirkungen Ihrer Anwendung auf andere Clients und deren Auswirkungen auf Ihre Anwendung minimieren, indem Sie die gemeinsame Nutzung weitestgehend zulassen, die erforderliche Mindestzugriffsebene anfordern und die opportunistische Sperre mit den für Ihre Anwendung geringsten Auswirkungen verwenden.
Typen von opportunistischen Sperren Beschreibt opportunistische Sperren der Ebene 1, der Ebene 2 sowie der Typen „Batch“ und „Filter“.
Aufheben opportunistischer Sperren Das Aufheben einer opportunistischen Sperre ist der Prozess zum Herabstufen der Sperre eines Clients für eine Datei, sodass ein anderer Client die Datei mit oder ohne opportunistische Sperre öffnen kann.
Beispiele für opportunistische Sperren Diagramme von Netzwerkdatenverkehrsansichten für eine opportunistische Sperre der Ebene 1, eine opportunistische Batchsperre und eine opportunistische Filtersperre.
Vorgänge für opportunistische Sperren Wenn eine Anwendung opportunistische Sperren anfordert, müssen alle Dateien, für die Sperren angefordert werden, mithilfe der CreateFile-Funktion mit dem FILE_FLAG_OVERLAPPED-Flag für überlappende (asynchrone) Eingaben und Ausgaben geöffnet werden.

Weitere Informationen zu opportunistischen Sperren finden Sie im Dokument zum CIFS-Internetentwurf. Bei Abweichungen zwischen diesem Thema und dem aktuellen CIFS-Internetentwurf sollte dem CIFS-Internetentwurf der Vorzug gegeben werden.

Siehe auch

Leitfaden zur Verwaltung von NetApp-Dateizugriff und -protokollen

Oplocks (WDK)