-
HINTERGRUND
-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf Dateisysteme, auf die über Computernetze
zugegriffen werden kann. Insbesondere bezieht sich die vorliegende
Erfindung auf ein Verfahren und auf eine Vorrichtung zum Verringern
des Netzverkehrs während
entfernter Dateisystemoperationen unter Verwendung eines lokalen
Wegs zwischen einem Client und einer Speichervorrichtung zum Umgehen
von Übertragungen über einen
Server.
-
Stand der
Technik
-
Während zunehmend
Computernetze verwendet werden, um Computersysteme miteinander zu
verbinden, werden verteilte Betriebssysteme entwickelt, um die Wechselwirkungen
zwischen Computersystemen über
ein Computernetz zu steuern. Einige verteilte Betriebssysteme ermöglichen,
dass Client-Computersysteme auf Betriebsmittel auf Server-Computersystemen
zugreifen. Zum Beispiel kann ein Client-Computersystem über ein
Netz auf eine Datei auf einem Server-Computersystem zugreifen können. Solche
verteilten Dateisysteme erleichtern es, Dateien zu manipulieren,
die sich auf einem entfernten Server befinden. Allerdings können solche
verteilten Dateisysteme, wenn sie nicht sorgfältig entworfen worden sind,
leicht unnötige
Kommunikation über
das Netz erzeugen, die die Gesamtsystemleistung verschlechtern kann.
-
Einige
verteilte Betriebssysteme sind so entworfen worden, dass sie eine
hohe Verfügbarkeit
ermöglichen.
Ein hoch verfügbares
System schafft Redundanz, so dass dann, wenn ein primärer Knoten
in dem hoch verfügbaren
System ausfällt,
ein sekundärer
Sicherungsknoten seinen Platz einnehmen kann. Dies ermöglicht,
dass das System ohne Unterbrechung weiter funktioniert. Hoch verfügbare Computersysteme
stellen häufig
mehrere Server bereit, um auf eine Speichervorrichtung zuzugreifen.
Jeder dieser Server besitzt seinen eigenen lokalen Datenweg zu der
Speichervorrichtung, so dass dann, wenn ein Server ausfällt, ein
anderer seinen Platz einnehmen kann.
-
Auf
den ersten Blick scheint es vorteilhaft zu sein, die mehreren Wege
zu der Speichervorrichtung zu verwenden, um einen parallelen Zugriff
auf die Speichervorrichtung bereitzustellen, um die Gesamtleistung
des Computersystems zu erhöhen.
Allerdings kann das Zulassen paralleler Zugriffe auf die Speichervorrichtung
Konkurrenz- und Sperrungsprobleme verursachen, die den Entwurf eines
verteilten Betriebssystems stark verkomplizieren können. Aus diesen
Gründen
ist es leichter, die Steuerung über Dateisystemzugriffe
in einem einzelnen Server zu zentralisieren.
-
Allerdings
kann das Leiten der Kommunikation über einen einzelnen Server
die Systemleistung behindern. Ein großer Engpass wird durch die
Kommunikation zwischen dem Server und einem Client über ein
Netz verursacht. Jeder von einer Speichervorrichtung wiedergewonnene
Datenblock muss in zahlreiche kleinere Pakete geteilt werden, die über ein
Netz zwischen dem Client und dem Server übertragen werden. Zum Beispiel
wird ein 64-k-Datenblock, der von einer Plattenvorrichtung wiedergewonnen
wird, typisch in Dutzende von Paketen geteilt, die einzeln zwischen
dem Client und dem Server über das
Computernetz gesendet werden. Da jedes der Pakete eine Unterbrechung
in dem Server und eine Unterbrechung in dem Client erzeugen kann,
kann dieser Prozess die Systemleistung stark verschlechtern. Da
während
jeder Unterbrechung der Prozesszustand gesichert und wiederhergestellt
wird, verbrauchen diese Unterbrechungen sehr viel Rechenzeit.
-
US-A-5.859.971
beschreibt ein Verfahren zum Verringern der Daten, die von einer
ersten Anwendung, die in einem ersten Computer resident ist, zu
einer zweiten Anwendung, die in einem zweiten Computer resident
ist, über
eine externe Kommunikationsverbindung übertragen werden. Dies enthält das Speichern
eines Datenstroms von der ersten Anwendung, der in Reaktion auf
eine Anforderung von der zweiten Anwendung zu der zweiten Anwendung zu
liefern ist, in einem Cache, der in dem ersten Computer resident
ist, um einen Server-Basis-Cache-Eintrag
zu erzeugen, und das Erzeugen eines Client-Basis-Cache-Eintrags
in einem Cache, der in dem zweiten Computer resident ist. Die Anforderungen
von der zweiten Anwendung werden abgefragt, um festzustellen, ob
ein der abgefragten Anforderung entsprechender Client-Basis-Cache-Eintrag
vorhanden ist, und um festzustellen, ob der der abgefragten Anforderung
entsprechende Server-Basis-Cache-Eintrag vorhanden ist. Der Antwortdatenstrom
wird vor der Übertragung
der Antwort auf der externen Kommunikationsverbindung abgefangen
und mit dem Server-Basis-Cache-Eintrag verglichen, um Differenzdaten
zu liefern, die der Differenz zwischen der abgefangenen Antwort
und dem Server-Basis-Cache-Eintrag
entsprechen. Die Differenzdaten werden über die externe Kommunikationsverbindung
gesendet und durch den zweiten Computer erfasst, der den Antwortdatenstrom
durch Kombinieren des Client-Basis-Cache-Eintrags mit den Differenzdaten
rekonstruiert, um einen Antwortdatenstrom zu erzeugen, der zu der
zweiten Anwendung geliefert wird.
-
Ein
weiteres Differenzverfahren, das einen lokalen Proxy auf der Client-Seite
und einen entfernten Proxy auf einer Web-Server-Seite enthält, ist
in EP-A-0.836.145 beschrieben. Wenn bei dem Server eine neue Version
einer Web-Seite wiedergewonnen wird, wird sie auf Differenzen mit
einer zuvor gecachden Version verglichen, wobei sie die Differenzen, sofern
die Größe der Differenzen
die der neuen Seite nicht übersteigt,
an den lokalen Proxy sendet, der aus den Differenzen und aus der
verbrauchten gecachden Version die neue Seite rekonstruiert, bevor die
Seite an den Web-Browser auf der Client-Seite geliefert wird.
-
Es
wird angemerkt, dass diese Datenübertragungen über das
Computernetz zum größten Teil verschwendet
werden, falls das Client-Computersystem seinen eigenen lokalen Weg
zu der Speichervorrichtung besitzt. Es werden ein Verfahren und
eine Vorrichtung benötigt,
die den Netzverkehr während entfernter
Dateisystemoperationen unter Verwendung eines lokalen Wegs zwischen
einem Client und einer Speichervorrichtung wann immer möglich verringern,
um Übertragungen über einen
Server zu umgehen.
-
ZUSAMMENFASSUNG
-
Die
vorliegende Erfindung schafft ein Verfahren und ein System, die
den Netzverkehr während entfernter
Dateisystemoperationen unter Verwendung eines lokalen Wegs zwischen
einem Client und einer Speichervorrichtung verringern, um Übertragungen über einen
Server zu umgehen, in Übereinstimmung
mit den folgenden Ansprüchen.
Das System operiert dadurch, dass es eine Anforderung bei dem Server
für einen
Zugriff auf eine in der Speichervorrichtung befindliche Datei empfängt; diese
Anforderung wird durch eine Anwendung in einem Client über ein
Netz empfangen. Nachfolgend bestimmt das System, ob zwischen dem
Client und der die Datei enthaltenden Speichervorrichtung ein lokaler
Weg vorhanden ist. Es wird angemerkt, dass ein lokaler Weg von einem
ersten Weg zwischen dem Server und der Speichervorrichtung unabhängig ist.
Falls der lokale Weg vorhanden ist, sendet das System eine Umgehungsanforderung
an den Client. Diese Umgehungsanforderung befiehlt dem Client, die
Anforderung durch Übertragen
von Daten zwischen dem Client und der Speichervorrichtung über den
lokalen Weg zu erfüllen.
-
In
einer Abwandlung der obigen Ausführungsform
empfängt
das System zusätzlich
einen Abschlussindikator von dem Client. Dieser Abschlussindikator
informiert den Server darüber,
dass der Client die Anforderung über
den lokalen Weg erfolgreich abgeschlossen hat. In Reaktion auf den
Abschlussindikator aktualisiert das System die Datenstrukturen in dem
Server, um anzuzeigen, dass die Anforderung abgeschlossen worden
ist, und leitet den Abschlussindikator daraufhin zu der Anwendung
in dem Client weiter.
-
Falls
in einer Abwandlung der obigen Ausführungsform der lokale Weg nicht
vorhanden ist, schließt
das System die Anforderung auf einem normalen Weg durch Übertragen
der Daten zwischen dem Client und dem Server über das Netz und zwischen dem
Server und der Speichervorrichtung über den ersten Weg ab. Danach
aktualisiert das System die Datenstrukturen in dem Server, um anzuzeigen, dass
die Anforderung abgeschlossen worden ist, und sendet einen Abschlussindikator
zu der Anwendung in dem Client.
-
In
einer Ausführungsform
der vorliegenden Erfindung kann die Anforderung eine Leseanforderung
zum Lesen der Daten von der Datei oder eine Schreibanforderung zum
Schreiben der Daten in die Datei sein.
-
In
einer Ausführungsform
der vorliegenden Erfindung enthält
die Umgehungsanforderung an den Client einen Zeiger auf einen Puffer
in dem Client, eine Kennung für
die Speichervorrichtung, einen Blockversatz in der Speichenrorrichtung
und eine Länge
der Anforderung. In dieser Ausführungsform hält der Puffer
in dem Client dann, wenn die Anforderung eine Leseanforderung ist,
die von der Speichervorrichtung gelesenen Daten. Wenn die Anforderung eine
Schreibanforderung ist, hält
der Puffer in dem Client die in die Speichervorrichtung zu schreibenden Daten.
-
Eine
Ausführung
der vorliegenden Erfindung schafft ein System, das Netzverkehr während entfernter
Dateisystemoperationen unter Verwendung eines lokalen Wegs zwischen
einem Client und einer Speichervorrichtung verringert, um Über tragungen über einen
Server zu umgehen. Das System operiert durch Empfangen einer Anforderung
bei dem Client, auf eine in der Speichervorrichtung vorhandene Datei
zuzugreifen. Diese Anforderung wird durch eine Anwendung empfangen,
die in dem Client läuft. Nachfolgend
sendet das System die Anforderung zu dem Server. Das System wartet
auf einen Anforderungsabschlussindikator, der von dem Server zu empfangen
ist. Falls eine Umgehungsanforderung von dem Server empfangen wird, überträgt das System
Daten zwischen dem Client und der Speichervorrichtung über einen
lokalen Weg, der unabhängig
von einem ersten Weg zwischen dem Server und der Speichervorrichtung
ist. Nachfolgend sendet das System einen Abschlussindikator für den lokalen Weg
zu dem Server. Dieser Abschlussindikator für den lokalen Weg informiert
den Server darüber,
dass die Daten über
den lokalen Weg übertragen
worden sind. Falls ein Anforderungsabschlussindikator von dem Server
empfangen wird, leitet das System den Anforderungsabschlussindikator
zu der Anwendung weiter. Dieser Anforderungsabschlussindikator bestimmt,
dass die Anforderung durch Übertragen
der Daten entweder über
den ersten Weg oder über
den lokalen Weg abgeschlossen worden ist.
-
KURZBESCHREIBUNG
DER FIGUREN
-
1 veranschaulicht
ein verteiltes Computersystem in Übereinstimmung mit einer Ausführungsform
der vorliegenden Erfindung.
-
2 veranschaulicht
eine Schichtarchitektur für
ein verteiltes Dateisystem in Übereinstimmung mit
einer Ausführungsform
der vorliegenden Erfindung.
-
3 ist
ein Ablaufplan, der den Prozess der Verwendung eines lokalen Wegs
zwischen einem Client und einer Speichervorrichtung zum Umgehen von Übertragungen über einen
Server in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung veranschaulicht.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Die
vorliegende Beschreibung wird dargestellt, um zu ermöglichen,
dass der Fachmann auf dem Gebiet die Erfindung herstellt und verwendet, wobei
sie im Kontext einer besonderen Anwendung und ihrer Anforderungen
gegeben wird. Für
den Fachmann auf dem Gebiet sind verschiedene Abwandlungen an den
offen barten Ausführungsformen leicht
sichtbar, wobei die hier definierten allgemeinen Prinzipien auf
andere Ausführungsformen
und Anwendungen angewendet werden können. Somit soll die vorliegende
Erfindung nicht auf die gezeigten Ausführungsformen beschränkt sein,
sondern dem weitesten Umfang entsprechen, der mit den hier offenbarten
Prinzipien und Merkmalen konsistent ist.
-
Die
Datenstrukturen und der Code, die in dieser ausführlichen Beschreibung beschrieben
sind, sind typisch in einem computerlesbaren Speichermedium gespeichert,
das irgendeine Vorrichtung oder irgendein Medium sein kann, das
Code und/oder Daten zur Verwendung durch ein Computersystem speichern
kann. Dies enthält,
ist aber nicht beschränkt auf,
magnetische und optische Speichervorrichtungen wie etwa Plattenlaufwerke,
Magnetband, CDs (Compact Discs) und DVDs (Digital Video Discs) und Computeranweisungssignale,
die in einem Übertragungsmedium
(mit oder ohne eine Trägerwelle,
auf der die Signale moduliert sind) verkörpert sind. Das Übertragungsmedium
kann z. B. ein Kommunikationsnetz wie etwa das Internet enthalten.
-
Verteiltes
Computersystem
-
1 veranschaulicht
ein verteiltes Computersystem 100 in Übereinstimmung mit einer Ausführungsform
der vorliegenden Erfindung. Das verteilte Computersystem 100 enthält einen
Client 102, der mit einem Server 122 gekoppelt
ist. Der Client 102 kann irgendeinen Knoten in einem Netz
enthalten, der Rechenfähigkeit
und einen Mechanismus für
die Kommunikation über
das Netz enthält.
Der Server 122 kann irgendeinen Knoten in einem Netz enthalten,
der Rechenfähigkeit
und Datenspeicherfähigkeit sowie
einen Mechanismus zum Bedienen von Anforderungen vom Client 102 für Rechen-
und Datenspeicherbetriebsmittel enthält.
-
Der
Netzknoten 150 realisiert ein Netz, das den Client 102 und
den Server 122 miteinander koppelt. Der Client 102 und
der Server 122 verwenden den Netzknoten 150, um
miteinander zu kommunizieren. Der Netzknoten 150 ist ein
Spezialfall eines allgemeinen Netzes, das mit der vorliegenden Erfindung
verwendet werden kann. Dieses allgemeine Netz kann irgendeinen Typ
einer Drahtverbindung oder drahtlosen Verbindung zwischen Computern einschließlich, aber
nicht beschränkt
auf, eines lokalen Netzes, eines Weitverkehrsnetzes oder einer Kombination
von Netzen enthalten.
-
Es
wird angemerkt, dass der Client 102 über einen Netzschnittstellen-Controller
(NIC) 106 mit dem Netzknoten 150 gekoppelt ist. Ähnlich ist
der Server 122 über
einen Netzschnittstellen-Controller 126 mit dem Netzknoten 150 gekoppelt.
Die Netzschnittstellen-Controller 106 und 126 können irgendeinen
Schnittstellentyp zum Koppeln des Clients 102 und des Servers 122 mit
dem Netzknoten 150 enthalten.
-
Außerdem enthält 1 eine
Speichereinrichtung 130, die mit dem Client 102 und
mit dem Server 122 gekoppelt ist. Die Speichervorrichtung 130 enthält einen
nichtflüchtigen
Speicher für
Code und/oder Daten und operiert gemäß der Steuerung des Clients 102 und/oder
des Servers 122. In einer Ausführungsform der vorliegenden
Erfindung enthält die
Speichervorrichtung 130 ein Plattenlaufwerk.
-
Die
Speichervorrichtung 130 ist über einen Weg 129 mit
einem Platten-Controller 128 im Server 122 gekoppelt.
Außerdem
ist die Speichervorrichtung 130 über einen lokalen Weg 109 mit
einem Platten-Controller 108 im Client 102 gekoppelt.
Die Platten-Controller 108 und 128 enthalten Schaltungsanordnung
und Software zum Steuern einer Anzahl von Plattenspindeln. Es wird
angemerkt, dass der lokale Weg 109 unabhängig vom
Weg 129 ist.
-
Der
Client 102 enthält
eine Zentraleinheit (CPU) 104. Ähnlich enthält der Server 122 eine
CPU 124. Die Zentraleinheiten 104 und 124 können irgendeinen
Typ von Verarbeitungsmaschinen, die in einem Computersystem verwendet
werden können, einschließlich, aber
nicht beschränkt
auf, Mikroprozessoren, Großrechnerprozessoren,
Vorrichtungs-Controllern und Verarbeitungsschaltungsanordnungen
in Geräten
enthalten.
-
Die
CPU 104 ist mit einem Arbeitsspeicher 105 gekoppelt,
der Code zur Realisierung einer E/A des lokalen Wegs in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung enthält.
Die CPU 124 ist mit einem Arbeitsspeicher 125 gekoppelt,
der ähnlich
Code zur Realisierung einer E/A des lokalen Wegs enthält. Die
Arbeitsspeicher 105 und 125 enthalten irgendeinen
Typ eines Schreib-Lese-Arbeitsspeichers,
der Code und/oder Daten für die
CPUs 104 bzw. 124 enthält.
-
In
der in 1 veranschaulichten Ausführungsform der vorliegenden
Erfindung kann der Client 102 als ein Sicherungsserver
für Fehlertoleranzzwecke
dienen.
-
Zum
Beispiel wird angenommen, dass der Server 122 der primäre Server
ist und der Client 102 als ein sekundärer Server für die Speichervorrichtung 130 funktioniert.
Falls der primäre
Server 122 während
einer Dateisystemoperation ausfällt, übernimmt der
Client 102 seinen Platz. Allerdings wird angemerkt, dass
die vorliegende Erfindung auf irgendeinen Typ eines verteilten Dateisystems
angewendet werden kann und nicht auf fehlertolerante Dateisysteme
beschränkt
ist.
-
In
einer Ausführungsform
der vorliegenden Erfindung operiert das in 1 veranschaulichte System
gemäß der Steuerung
des MC-Betriebssystems SOLARISTM, das ein
Produkt von Sun Microsystems, Inc., aus Palo Alto, Kalifornien,
ist. Das MC-Betriebssystem Solaris ist ein UNIX-basiertes Betriebssystem.
Somit werden bei der Beschreibung der vorliegenden Technologie häufig UNIX-Terminologie und
-Konzepte verwendet. Allerdings dient diese Verwendung nur zur Veranschaulichung
und soll nicht als Beschränkung
der Erfindung auf dieses besondere Betriebssystem verstanden werden.
-
Sun,
das Sun-Logo, Sun Microsystems und Solaris sind Warenzeichen oder
eingetragene Warenzeichen der Sun Microsystems, Inc., in den Vereinigten
Staaten und in anderen Ländern.
-
Schichtarchitektur
-
2 veranschaulicht
eine Schichtarchitektur für
ein verteiltes Dateisystem in Übereinstimmung mit
einer Ausführungsform
der vorliegenden Erfindung. Die linke Seite von 2 veranschaulicht
die Schichten, die auf einer Client-Seite des verteilten Dateisystems
vorhanden sind. Die rechte Seite von 2 veranschaulicht
Schichten, die auf einer Server-Seite des verteilten Dateisystems
vorhanden sind.
-
Die
Client-Seite des verteilten Dateisystems enthält eine Anwendung 203,
die Dateisystemanforderungen vornimmt. Die Anwendung 203 operiert
im Anwenderraum 202 und nimmt Dateisystemaufrufe zum Proxy-Dateisystem-Client 205 im
Kernel-Raum 204 vor. Der Proxy-Dateisystem-Client 205 ist
der Client-seitige Abschnitt eines verteilten Dateisystems. Der
Proxy-Dateisystem-Client 205 kommuniziert mit dem Proxy-Dateisystem-Server 206 im
Server 122. Es wird angemerkt, dass diese Kommunikation über ein
Netz über
den Netzknoten 150 stattfindet.
-
Der
Proxy-Dateisystem-Server 206 ist der Server-seitige Abschnitt
des verteilten Dateisystems. Der Proxy-Dateisystem-Server 206 kommuniziert
mit dem zu Grunde liegenden Dateisystem 208 im Server 122.
-
Das
zu Grunde liegende Dateisystem 208 kommuniziert mit dem
Vorrichtungstreiber 210, der Code für die Kommunikation mit dem
Platten-Controller 128 im Server 122 enthält. Schließlich steuert der
Platten-Controller 128 über
den Weg 129 den Betrieb der Speichervorrichtung 130.
In einer Ausführungsform
der vorliegenden Erfindung enthält
die Speichervorrichtung 130 ein Plattenlaufwerk.
-
In
einer in 1 veranschaulichten Ausführungsform
der vorliegenden Erfindung enthält
der Client 102 einen parallelen lokalen Weg 109 zur
Speichervorrichtung 130. Der Proxy-Dateisystem-Client 205 kann
außerdem
als ein Proxy-Dateisystem-Server wirken. Zu diesem Zweck kommuniziert
der Proxy-Dateisystem-Client 205 mit dem zu Grunde liegenden
Dateisystem 207 im Client 102. Das zu Grunde liegende
Dateisystem 207 kommuniziert mit dem Vorrichtungstreiber 209,
der Code für
die Kommunikation mit dem Platten-Controller 108 enthält. Schließlich kommuniziert
der Platten-Controller 128 über den lokalen Weg 109 mit
der Speichervorrichtung 130.
-
Es
wird angemerkt, dass der Prozess des Umgehens von Dateisystemoperationen
zum lokalen Weg 109 durch Kommunikation zwischen dem Vorrichtungstreiber 210 im
Server 122 und dem Vorrichtungstreiber 209 im
Client 102 ausgeführt
wird. Dieser Umgehungsprozess ist für das zu Grunde liegende Dateisystem 208 im
Server 122 transparent. Außerdem wird angemerkt, dass
der Umgehungsprozess alternativ zwischen dem Proxy-Dateisystem-Server 206 und
dem Proxy-Dateisystem-Client 205 oder zwischen dem zu Grunde
liegenden Dateisystem 207 und dem zu Grunde liegenden Dateisystem 208 realisiert
werden kann.
-
Prozess des
Umgehens unter Verwendung eines lokalen Wegs
-
3 ist
ein Ablaufplan, der den Prozess der Verwendung des lokalen Wegs 109 zwischen
dem Client 102 und der Speichervorrichtung 130 zum
Umgehen von Übertragungen über den
Server 122 in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung veranschaulicht. Das System startet durch
Empfangen einer Anforderung zum Ausführen einer Dateisystemoperation
beim Proxy-Dateisystem-Client 205 im
Client 102 (Schritt 302). Diese Anforderung geht
von der Anwendung 203 aus, die im Client 102 ausgeführt wird.
Der Proxy-Dateisystem-Client 205 sendet die Anforderung zu
dem Proxy-Dateisystem-Server 206 ab (Schritt 304).
Der Proxy-Dateisystem-Server 206 empfängt die Anforderung (Schritt 306)
und sendet die Anforderung an das zu Grunde liegende Dateisystem 208 ab
(Schritt 308). Das zu Grunde liegende Dateisystem 208 bestimmt
die Blockadresse der Anforderung (Schritt 310) und sendet
die Anforderung zum Vorrichtungstreiber 210 ab (Schritt 312).
-
Der
Vorrichtungstreiber 210 bestimmt, welcher Client die Anforderung
gestellt hat, und bestimmt daraufhin, ob der Client einen Zugang über einen
lokalen Weg zur Speichervorrichtung 130 besitzt (Schritt 314).
Es wird angemerkt, dass ein Client einen Zugang über einen lokalen Weg zur Speichervorrichtung 130 besitzt,
wenn er ohne Verwendung des Wegs 129 zwischen der Speichervorrichtung 130 und dem
Server 122 auf die Speichervorrichtung 130 zugreifen
kann.
-
Falls
der Client 102 Zugang über
einen lokalen Weg zur Speichervorrichtung 130 hat, sendet
der Vorrichtungstreiber 210 im Server 122 die
Anforderung zum Vorrichtungstreiber 209 im Client 102 (Schritt 318).
Diese Anforderung enthält
einen Zeiger auf einem Puffer im Client 102 zum Speichern
von Dateioperationsdaten. Dieser Puffer speichert während einer
Schreiboperation Daten, die in die Speichervorrichtung 130 zu
schreiben sind. Während
einer Leseoperation speichert dieser Puffer Daten, die während der
Dateioperation wiedergewonnen werden. Außerdem enthält die Anforderung eine Kennung
für die
Speichervorrichtung 130 sowie einen Blockversatz in die
Speichervorrichtung 130 und eine Länge für die E/A-Operation.
-
Der
Vorrichtungstreiber 209 im Client 102 empfängt die
Anforderung (Schritt 320) und sendet die Anforderung daraufhin über den
Platten-Controller 108 und über den lokalen Weg 109 zur
Speichervorrichtung 130 (Schritt 322). Wenn die
Speichervorrichtung 130 die Anforderung abschließt, sendet
sie einen Abschlussindikator zum Vorrichtungstreiber 209 im
Client 102. Der Vorrichtungstreiber 209 empfängt den
Abschlussindikator (Schritt 324) und leitet den Abschlussindikator
zu dem Vorrichtungstreiber 210 im Server 122 weiter
(Schritt 326). Der Vorrichtungstreiber 210 leitet
den Abschlussindikator zu dem zu Grunde liegende Dateisystem 208 weiter (Schritt 328),
das den Abschlussindikator zu dem Proxy-Dateisystem-Server 206 weiterleitet
(Schritt 330). Der Proxy-Dateisystem-Server 206 leitet
den Abschlussindikator zu dem Proxy-Dateisystem-Client 205 weiter
(Schritt 332). Schließlich
leitet der Proxy-Dateisystem-Client 205 den Abschlussindikator zu
der Anwendung 203 weiter, um die Dateizugriffsoperation
abzuschließen
(Schritt 334).
-
Falls
der Vorrichtungstreiber 210 im Server 122 in Schritt 316 bestimmt,
dass es keinen lokalen Weg gibt, der zum Umgehen der Dateiübertragungsoperation
verwendet werden kann, sendet der Vorrichtungstreiber 210 die
Anforderung über
einen normalen Weg über
den Platten-Controller 128 zur Speichervorrichtung 130 ab
(Schritt 336). Der Vorrichtungstreiber 210 leitet
die Abschlussanforderung beim Empfang eines Abschlussindikators
von der Speichervorrichtung 130 (Schritt 338)
zu dem zu Grunde liegenden Dateisystem 208 weiter (Schritt 328).
Das zu Grunde liegende Dateisystem 208 leitet den Abschlussindikator
zu dem Proxy-Dateisystem-Server 206 weiter (Schritt 330).
Der Proxy-Dateisystem-Server 206 leitet den Abschlussindikator
zu dem Proxy-Dateisystem-Client 205 im Client 102 weiter
(Schritt 332). Schließlich
leitet der Proxy-Dateisystem-Client 205 den Abschlussindikator
zu der Anwendung 203 weiter, um die Dateizugriffsoperation abzuschließen (Schritt 334).
-
Die
vorstehenden Beschreibungen von Ausführungsformen der Erfindung
sind lediglich zur Veranschaulichung und Beschreibung dargestellt
worden. Sie sollen nicht erschöpfend
sein oder die Erfindung auf die offenbarten Formen einschränken. Dementsprechend
sind für
den erfahrenen Praktiker auf dem Gebiet viele Änderungen und Abwandlungen
offensichtlich. Außerdem
soll die obige Offenbarung die Erfindung nicht einschränken. Der
Umfang der Erfindung ist durch die beigefügten Ansprüche definiert.