DE60027533T2 - Verfahren und Einrichtung zur Bereitstellung eines lokalen Ein-/Ausgabe-Übertagungsweges in einem verteilten Dateisystem - Google Patents

Verfahren und Einrichtung zur Bereitstellung eines lokalen Ein-/Ausgabe-Übertagungsweges in einem verteilten Dateisystem Download PDF

Info

Publication number
DE60027533T2
DE60027533T2 DE60027533T DE60027533T DE60027533T2 DE 60027533 T2 DE60027533 T2 DE 60027533T2 DE 60027533 T DE60027533 T DE 60027533T DE 60027533 T DE60027533 T DE 60027533T DE 60027533 T2 DE60027533 T2 DE 60027533T2
Authority
DE
Germany
Prior art keywords
client
request
server
storage device
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60027533T
Other languages
English (en)
Other versions
DE60027533D1 (de
Inventor
Siamak Arcadia Nazari
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE60027533D1 publication Critical patent/DE60027533D1/de
Application granted granted Critical
Publication of DE60027533T2 publication Critical patent/DE60027533T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Description

  • 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.

Claims (16)

  1. Verfahren zum Verringern des Netzverkehrs während entfernter Dateisystemoperationen, wobei das Verfahren in einem System operiert, das einen Client (102) und einen Server (122) für die Steuerung des Zugriffs auf eine Speichervorrichtung (130) enthält, wobei das Verfahren umfasst: Empfangen einer Anforderung (306) bei dem Server (122) für einen Zugriff auf eine in der Speichervorrichtung (130) befindliche Datei, wobei die Speichervorrichtung (130) mit dem Server (122) über einen ersten Weg (129) gekoppelt ist; wobei die Anforderung, die durch eine Anwendung (203) in dem Client erzeugt worden ist, von dem Client (102) über ein Netz empfangen wird; Bestimmen bei dem Server (122), ob zwischen dem Client (102) und der die Datei enthaltenden Speichervorrichtung (130) ein lokaler Weg (109) vorhanden ist, der von dem ersten Weg zwischen dem Server (122) und der Speichervorrichtung (130) unabhängig ist; und falls der lokale Weg vorhanden ist, Senden einer Umgehungsanforderung zu dem Client, die dem Client (122) befiehlt, die Anforderung durch Übertragen von Daten zwischen dem Client (102) und der Speichervorrichtung (130) über den lokalen Weg zu erfüllen.
  2. Verfahren nach Anspruch 1, das ferner umfasst: Empfangen eines Abschlussindikators (324) von dem Client, wobei der Abschlussindikator den Server (122) informiert, dass der Client (102) die Anforderung über den lokalen Weg erfolgreich abgeschlossen hat; Aktualisieren von Datenstrukturen in dem Server (122), um anzuzeigen, dass die Anforderung abgeschlossen worden ist; und Weiterleiten des Abschlussindikators zu der Anwendung (203) in dem Client.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, wobei das Verfahren dann, wenn der lokale Weg nicht vorhanden ist, ferner umfasst: Abschließen der Anforderung auf einem normalen Weg durch Übertragen der Daten zwischen dem Client (102) und dem Server (122) über das Netz und zwischen dem Server (122) und der Speichervorrichtung (130) über den ersten Weg; Aktualisieren von Datenstrukturen in dem Server (122), um anzuzeigen, dass die Anforderung abgeschlossen worden ist; und Senden eines Abschlussindikators (206) zu der Anwendung (203) in dem Client.
  4. Verfahren nach einem vorhergehenden Anspruch, bei dem die Umgehungsanforderung zu dem Client (102) umfasst: einen Zeiger auf einen Puffer in dem Client, eine Kennung für die Speichervorrichtung (130), einen Blockversatz in der Speichervorrichtung (130) für die Anforderung und eine Länge der Anforderung; wobei der Puffer in dem Client (102) dann, wenn die Anforderung eine Leseoperation ist, die von der Speichervorrichtung (130) gelesenen Daten hält; und der Puffer in dem Client (102) dann, wenn die Anforderung eine Schreiboperation ist, die in die Speichervorrichtung (130) zu schreibenden Daten hält.
  5. Computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch einen Computer ausgeführt werden, den Computer dazu veranlassen, ein Verfahren zum Reduzieren des Netzverkehrs während entfernter Dateisystemoperationen auszuführen, wobei das Verfahren in einem System operiert, das einen Client (102) und einen Server (122) für eine Speichervorrichtung (130) enthält, wobei der Client (102) einen lokalen Weg zu der Speichervorrichtung (130) besitzt, und wie in einem der Ansprüche 1 bis 4 beschaffen ist.
  6. Verfahren zum Reduzieren des Netzverkehrs während entfernter Dateisystemoperationen, wobei das Verfahren in einem System operiert, das einen Client (102) und einen Server (122) zum Steuern des Zugriffs auf eine Speichervorrichtung (130) enthält, wobei der Client (102) einen lokalen Weg (109) zu der Speichervorrichtung (130) besitzt, wobei der Server einen ersten Weg (129) zu der Speichervorrichtung besitzt, wobei der lokale Weg von dem ersten Weg unabhängig ist und wobei das Verfahren umfasst: Empfangen einer Anforderung (302) bei dem Client, um auf eine in der Speichervorrichtung (130) vorhandene Datei zuzugreifen; wobei die Anforderung von einer Anwendung (203), die auf dem Client läuft, empfangen wird; Senden der Anforderung (304) zu dem Server; und falls eine Umgehungsanforderung von dem Server empfangen wird (320), Übertragen von Daten zwischen dem Client (102) und der Speichervorrichtung (130) über den lokalen Weg (109), wobei die Daten den Server (122) umgehen, und Senden eines Abschlussindikators (328) für den lokalen Weg zu dem Server, wobei der Abschlussindikator für den lokalen Weg den Server (122) darüber informiert, dass die Daten über den lokalen Weg (109) übertragen worden sind.
  7. Verfahren nach Anspruch 6, das ferner dann, wenn der Anforderungs-Abschlussindikator von dem Server empfangen wird, das Weiterleiten (334) des Anforderungsabschlussindikators zu der Anwendung (203) umfasst; wobei der Anforderungsabschlussindikator bestimmt, dass die Anforderung durch Übertragen der Daten entweder über den ersten Weg oder über den lokalen Weg erfolgreich abgeschlossen worden ist.
  8. Verfahren nach Anspruch 6 oder Anspruch 7, bei dem die Umgehungsanforderung zu dem Client (102) umfasst: einen Zeiger auf einen Puffer in dem Client, eine Kennung für die Speichervorrichtung (130), einen Blockversatz in der Speichervorrichtung (130) für die Anforderung und eine Länge der Anforderung; wobei der Puffer in dem Client (102) dann, wenn die Anforderung eine Leseoperation ist, die von der Speichervorrichtung (130) gelesenen Daten hält; und wobei der Puffer in dem Client (102) dann, wenn die Anforderung eine Schreiboperation ist, die in die Speichervorrichtung (130) zu schreibenden Daten hält.
  9. Computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch einen Computer ausgeführt werden, den Computer dazu veranlassen, ein Verfahren zum Reduzieren von Netzverkehr während entfernter Dateisystemoperationen auszuführen, wobei das Verfahren in einem Netz operiert, das einen Client (102) und einen Server (122) für eine Speichervorrichtung (130) enthält, wobei der Client (102) einen lokalen Weg zu der Speichervorrichtung (130) besitzt, und wie in einem der Ansprüche 6 bis 8 definiert ist.
  10. Vorrichtung, die den Netzverkehr während entfernter Dateisystemoperatio nen reduziert und umfasst: einen Empfangsmechanismus in dem Server (122), der eine Anforderung für den Zugriff auf eine in der Speichervorrichtung (130) vorhandene Datei empfängt, wobei die Speichervorrichtung (130) mit dem Server (122) über einen ersten Weg (129) gekoppelt ist; wobei die Anforderung, die durch eine Anwendung (203) in dem Client erzeugt worden ist, von dem Client (102) über ein Netz empfangen wird; einen Umgehungsmechanismus in dem Server (122), um Dateizugriffsanforderungen auf einen lokalen Weg (109) umzuleiten, wobei der lokale Weg von dem ersten Weg (129) zwischen dem Server (122) und der Speichervorrichtung (130) unabhängig ist; wobei der Umgehungsmechanismus so konfiguriert ist, dass er feststellt, ob der lokale Weg zwischen dem Client (102) und der die Datei enthaltenden Speichervorrichtung (130) vorhanden ist; und wobei der Umgehungsmechanismus so konfiguriert ist, dass er dann, wenn der lokale Weg vorhanden ist, zu dem Client eine Umgehungsanforderung sendet, die dem Client (102) befiehlt, die Anforderung durch Übertragen von Daten zwischen dem Client (102) und der Speichervorrichtung (130) über den lokalen Weg (109) zu erfüllen.
  11. Vorrichtung nach Anspruch 10, bei der der Umgehungsmechanismus ferner so konfiguriert ist, dass er: einen Abschlussindikator von dem Client empfängt, der den Server (122) darüber informiert, dass der Client (102) die Anforderung über den lokalen Weg (109) erfolgreich abgeschlossen hat; Datenstrukturen in dem Server (122) aktualisiert, um anzuzeigen, dass die Anforderung abgeschlossen worden ist; und den Abschlussindikator zu der Anwendung (203) in dem Client weiterleitet.
  12. Vorrichtung nach Anspruch 10 oder Anspruch 11, bei der der Umgehungsmechanismus so konfiguriert ist, dass er dann, wenn der lokale Weg (109) nicht vorhanden ist, die Anforderung auf einem normalen Weg durch Übertragen der Daten zwischen dem Client (102) und dem Server (122) über das Netz und zwischen dem Server (122) und der Speichervorrichtung (130) über den ersten Weg (129) abschließt; Datenstrukturen in dem Server (122) aktualisiert, um anzuzeigen, dass die Anforderung abgeschlossen worden ist; und einen Abschlussindikator zu der Anwendung (203) in dem Client sendet.
  13. Vorrichtung nach einem der Ansprüche 10 bis 12, bei der die Umgehungsanforderung zu dem Client (102) umfasst: einen Zeiger auf einen Puffer in dem Client, eine Kennung für die Speichervorrichtung (130), einen Blockversatz in der Speichervorrichtung (130) für die Anforderung und eine Länge der Anforderung; wobei der Puffer in dem Client (102) dann, wenn die Anforderung eine Leseoperation ist, die aus der Speichervorrichtung (130) gelesenen Daten hält; und wobei der Puffer in dem Client (102) dann, wenn die Anforderung eine Leseoperation ist, die in die Speichervorrichtung (130) zu schreibenden Daten hält.
  14. Vorrichtung, die Netzverkehr während entfernter Dateisystemoperationen durch Verwenden eines lokalen Weges (109) zwischen einem Client (102) und einer Speichervorrichtung (130) reduziert, wobei der Server einen ersten Weg (129) zu der Speichervorrichtung besitzt, wobei der lokale Weg von dem ersten Weg unabhängig ist, mit: einem Verarbeitungsmechanismus für eine Anwendung (203) in dem Client (102), der eine Anforderung von einer Anwendung (203) empfängt, um auf eine in der Speichervorrichtung (130) vorhandene Datei zuzugreifen; einem Dateizugriff-Verarbeitungsmechanismus, der so konfiguriert ist, dass er die Anforderung zu dem Server sendet; einem Umgehungsverarbeitungsmechanismus, der so konfiguriert ist, dass er eine Umgehungsanforderung von dem Server empfängt, Daten zwischen dem Client (102) und der Speichervorrichtung (130) über den lokalen Weg (109) überträgt, wobei die Daten den Server umgehen, und einen Abschlussindikator für den lokalen Weg zu dem Server sendet, wobei der Abschlussindikator für den lokalen Weg den Server (122) darüber informiert, dass die Anforderung über den lokalen Weg abgeschlossen worden ist.
  15. Vorrichtung nach Anspruch 14, bei der der Dateizugriff-Verarbeitungsmechanismus ferner so konfiguriert ist, dass er: einen Anforderungsabschlussindikator von dem Server (122) empfängt, wobei der Anforderungsabschlussindikator bestimmt, dass die Anforderung durch Übertragen der Daten entweder über den ersten Weg (129) oder über den lokalen Weg (109) erfolgreich abgeschlossen worden ist; und den Anforderungsabschlussindikator zu der Anwendung (203) weiterleitet.
  16. Vorrichtung nach Anspruch 14 oder Anspruch 15, bei der die Umgehungsanforderung zu dem Client (102) umfasst: einen Zeiger auf einen Puffer in dem Client, eine Kennung für die Speichervorrichtung (130), einen Blockversatz in der Speichervorrichtung (130) für die Anforderung und eine Länge der Anforderung; wobei der Puffer in dem Client (102) dann, wenn die Anforderung eine Leseoperation ist, die aus der Speichervorrichtung (130) gelesenen Daten hält; und wobei der Puffer in dem Client (102) dann, wenn die Anforderung eine Schreiboperation ist, die in die Speichervorrichtung (130) zu schreibenden Daten hält.
DE60027533T 1999-12-02 2000-11-08 Verfahren und Einrichtung zur Bereitstellung eines lokalen Ein-/Ausgabe-Übertagungsweges in einem verteilten Dateisystem Expired - Fee Related DE60027533T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US454246 1989-12-21
US09/454,246 US6374248B1 (en) 1999-12-02 1999-12-02 Method and apparatus for providing local path I/O in a distributed file system

Publications (2)

Publication Number Publication Date
DE60027533D1 DE60027533D1 (de) 2006-06-01
DE60027533T2 true DE60027533T2 (de) 2006-12-14

Family

ID=23803892

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60027533T Expired - Fee Related DE60027533T2 (de) 1999-12-02 2000-11-08 Verfahren und Einrichtung zur Bereitstellung eines lokalen Ein-/Ausgabe-Übertagungsweges in einem verteilten Dateisystem

Country Status (4)

Country Link
US (1) US6374248B1 (de)
EP (1) EP1122924B1 (de)
AT (1) ATE324735T1 (de)
DE (1) DE60027533T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229097A (ja) * 2000-02-18 2001-08-24 Fujitsu Ltd 分散処理システム及びクライアント
US6640233B1 (en) * 2000-08-18 2003-10-28 Network Appliance, Inc. Reserving file system blocks
US20030046586A1 (en) * 2001-09-05 2003-03-06 Satyam Bheemarasetti Secure remote access to data between peers
US7171396B2 (en) * 2002-04-04 2007-01-30 Hewlett-Packard Development Company, L.P. Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage
US20050234961A1 (en) * 2004-04-16 2005-10-20 Pinnacle Systems, Inc. Systems and Methods for providing a proxy for a shared file system
US7577707B2 (en) * 2004-04-21 2009-08-18 International Business Machines Corporation Method, system, and program for executing data transfer requests
US7526574B2 (en) * 2004-04-21 2009-04-28 International Business Machines Corporation Method for communicating data transfer requests between data transfer protocols
US7475153B2 (en) * 2004-07-16 2009-01-06 International Business Machines Corporation Method for enabling communication between nodes
US7779081B2 (en) * 2004-07-16 2010-08-17 International Business Machines Corporation Method, system, and program for forwarding messages between nodes
CN101316226B (zh) * 2007-06-01 2011-11-02 阿里巴巴集团控股有限公司 一种获取资源的方法、装置及系统
US8438303B2 (en) * 2008-07-15 2013-05-07 International Business Machines Corporation Audit logging and role based security using one way proxy architecture

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5809527A (en) * 1993-12-23 1998-09-15 Unisys Corporation Outboard file cache system
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
JPH09269914A (ja) * 1996-03-29 1997-10-14 Fujitsu Ltd クライアント・サーバシステムにおけるローカルファイル転送方法及びシステム
US5931904A (en) * 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed

Also Published As

Publication number Publication date
EP1122924A2 (de) 2001-08-08
DE60027533D1 (de) 2006-06-01
EP1122924B1 (de) 2006-04-26
US6374248B1 (en) 2002-04-16
ATE324735T1 (de) 2006-05-15
EP1122924A3 (de) 2004-03-03

Similar Documents

Publication Publication Date Title
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69534411T2 (de) Offenes Transaktionverwaltungszugriffsystem und Verfahren
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
DE60103088T2 (de) Verfahren zur Herstellung von Weiterleitungslisten für Netzwerkgruppe
DE60026231T2 (de) Verfahren und Vorrichtung zur Durchführung eines Schnellen Dienstnachschlagen in einem Neztwerkgruppen
US7836161B2 (en) Simultaneous data backup in a computer system
DE69922065T2 (de) Namensverwaltung eines hochkonfigurierbaren Mehrknoten-EDV-Systems
US5628005A (en) System and method for providing opportunistic file access in a network environment
DE60313567T2 (de) Zugriffsrelayvorrichtung
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
US7200726B1 (en) Method and apparatus for reducing network traffic during mass storage synchronization phase of synchronous data mirroring
DE60025129T2 (de) Verfahren und Vorrichtung zur Bereitstellung von skalierbaren Diensten unter Benutzung einer Paketverteilungstabelle
DE60027533T2 (de) Verfahren und Einrichtung zur Bereitstellung eines lokalen Ein-/Ausgabe-Übertagungsweges in einem verteilten Dateisystem
DE60100624T2 (de) Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient
US9264495B2 (en) Apparatus and methods for handling network file operations over a fibre channel network
DE60316466T2 (de) Unterstüzung von mehreren nativen netzwerkprotokollimplementiurungen in einem einzigen system
EP1959639B1 (de) Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation
JP2008165379A (ja) ストレージシステムとプログラム並びに方法
US7814210B1 (en) Non-disruptive server replacement for server-based clients
DE69824974T2 (de) Benachrichtigungssystem in einer telekommunikationssteuereinrichtung
DE10024347B4 (de) Sicherheitsservice-Schicht
DE602004011211T2 (de) Verfahren zur anpassung der dienstortplazierung auf der basis von aus dienstknoten empfangenen neueren daten und aktionen des dienstortsmanagers
JPH096655A (ja) システム管理装置
DE60121607T2 (de) Gerät zur protokollübersetzung mit hilfe eines generischen zwischenprotokolls
Dell

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee