-
Die
vorliegende Erfindung betrifft ein Speicherbereichnetzwerk (Storage
Area Network; SAN) und insbesondere ein Zugriffssystem, in dem jedem
von mehreren Computersystemen ein schneller Datenzugriff auf ein
einzelnes Dateisystem ermöglicht
wird, das in einem oder mehreren gemeinsam genutzten Plattenvorrichtungen
im SAN erzeugt wird.
-
In
den vergangenen Jahren sind Speicherbereichnetzwerke (SANs) zum
Bereitstellen schneller Netzwerke implementiert worden, die externe Speichervorrichtungen
miteinander und Speichervorrichtungen mit Computern verbinden. Das
SAN ist besonders effektiv, wenn ihm mehrere Server zugeordnet sind,
um eine bestimmte Funktionalität
bereitzustellen, und wenn eine einzelne gemeinsam genutzte Plattenvorrichtung
mit einer großen
Kapazität von
mehreren Servern gemeinsam genutzt wird. Die Einführung eines
SAN mit einer derartigen Topologie kann zu einer verbesserten Verarbeitungsleistung von
Servern und einer verminderten Last auf ein Netzwerk zwischen Computern
führen,
das z.B. ein lokales Netz (Local Area Network; LAN), ein Weitbereichsnetz
(Wide Area Network; WAN) und ein ähnliches Netz sein kann, um
Kommunikationen zwischen Servern und Clients zu vermitteln.
-
Herkömmlich ist
in einem System, das einen Client, einen Server, ein SAN und eine
im SAN bereitgestellte gemeinsam genutzte Plattenvorrichtung aufweist,
eine Funktionalität
des Client zum Zugreifen auf eine gemeinsam genutzte Plattenvorrichtung, d.h.
eine Client-Funktionalität,
in einem Kernel eines Betriebssystems (OS) im Client installiert.
-
In
der JP-A-11-120063 ist beispielsweise ein System beschrieben, in
dem eine Plattenvorrichtung von mehreren Computern über ein
Netzwerk gemeinsam genutzt wird. Dieses System ist dazu vorgesehen,
die Last auf einen für
ein Dateimanagement verantwortlichen Server zu vermindern und zu
verhindern, dass Dateidaten über
ein Netzwerk übertragen werden,
um eine schnellere Verarbeitung zu erreichen. In diesem System antwortet
der Server auf eine Anfrage von einem Client im Netzwerk, indem
er Managementinformation über
eine angeforderte Datei an den anfragenden Client überträgt, so dass
der anfragende Client basierend auf der ihm zugeführten Managementinformation über das
SAN direkt auf die gemeinsam genutzte Plattenvorrichtung zugreifen kann.
-
Im
vorstehend beschriebenen herkömmlichen
Zugriffsverfahren für
einen Zugriff auf die gemeinsam genutzte Plattenvorrichtung im SAN
treten jedoch die folgenden Probleme auf.
-
Zunächst ist,
weil eine SAN-Zugriffsfunktionalität im Kernel jedes Client installiert
ist, diese Funktionalität
von der Version des Kernels abhängig. Daher
muss eine Funktionalität
zum Zugreifen auf das Speicherbereichnetzwerk für jede Version des Kernels
neu installiert werden.
-
Zweitens
muss, weil in Abhängigkeit
von den Plattformen oder Betriebssystemen verschiedenartige Verfahren
zum Implementieren von Zugriffen auf das SAN existieren, der Kernel
im Client durch eine Neukompilierung, Neuverknüpfung und ähnliche Operationen zum Installieren
der Funktionalität
eines Client in einer anderen Plattform angepasst werden. Daher
sind mit dem Portieren der Client-Funktionalität ein wesentlicher Aufwand
und erhebliche Kosten verbunden.
-
Drittens
könnten,
wenn die SAN-Zugriffsfunktionalität in den Kernels enthalten
ist, in der Zugriffsfunktionalität enthaltene
Defekte, falls solche vorhanden sind, das Gesamtsystem des SAN beeinflussen.
-
In
der US-A1-2002/0078066 ist ein System beschrieben, das einen Client,
einen Metadatenserver und einen objektbasierten Speicher aufweist. Verschiedenartige
Bibliotheksroutinen können
durch auf dem Client ausführbare
Anwendungen gemeinsam genutzt werden. Die Bibliotheksroutinen können Routinen
zum Öffnen,
Lesen, Schreiben und Schließen
einer Datei sein.
-
Es
ist eine erste Aufgabe der vorliegenden Erfindung, ein System für einen
Zugriff auf eine gemeinsam genutzte Plattenvorrichtung in einem
SAN bereitzustellen, das dazu geeignet ist, eine Verarbeitung zum
Ausführen
eines schnellen Zugriffs auf ein gemeinsam genutztes Dateisystem
im SAN von einer Verarbeitung eines Kernels zu trennen.
-
Es
ist eine zweite Aufgabe der vorliegenden Erfindung, einen Client
zum Zugreifen auf eine gemeinsam genutzte Plattenvorrichtung in
einem SAN bereitzustellen, der dazu geeignet ist, eine Verarbeitung
zum Ausführen
eines schnellen Zugriffs auf ein gemeinsam genutztes Dateisystem
im SAN von einer Verarbeitung eines Kernels zu trennen.
-
Es
ist eine andere Aufgabe der vorliegenden Erfindung, ein Zugriffssystem
bereitzustellen, das dazu geeignet ist, eine Client-Funktionalität zum Zugreifen
auf ein SAN ohne Anpassung eines Kernels zu installieren und das
Portieren der Funktionalität
in verschiedene Plattformen zu ermöglichen.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, einen Client
bereitzustellen, der dazu geeignet ist, eine SAN-Zugriffsfunktionalität ohne Anpassung
eines Kernels zu installieren und das Portieren der Funktionalität in verschiedene
Plattformen zu ermöglichen.
-
Diese
Aufgaben werden durch die Merkmale der Patentansprüche gelöst.
-
In
der vorliegenden Erfindung kann die Verarbeitung zum Ausführen eines
schnellen Zugriffs auf ein gemeinsam genutztes Dateisystem im Speicherbereichnetzwerk
im Client von der Verarbeitung eines Kernels getrennt werden. Dadurch
kann die Funktionalität
für den
Zugriff auf das Speicherbereichnetzwerk im Client installiert werden,
ohne den Kernel zu ändern,
wodurch die Anzahl der für
das Portieren der Funktionalität
in eine andere Plattform erforderlichen Schritte vermindert wird.
Durch die vorliegende Erfindung wird außerdem das mühsame wiederholte
Installieren einer Client-Funktionalität für jede Version
eines Kernels für
einen Zugriff auf das Speicherbereichnetzwerk eliminiert. Weil die
Funktionalität
zum Zugreifen auf das Speicherbereichnetzwerk nicht im Kernel installiert
ist, wird verhindert, dass Defekte, falls solche vorhanden sind,
das Gesamtsystem des Speicherbereichnetzwerks beeinflussen.
-
Die
vorstehende und andere Aufgaben, Merkmale und Vorteile der vorliegenden
Erfindung werden anhand der folgenden Beschreibung unter Bezug auf
die beigefügten
Zeichnungen verdeutlicht, die Beispiele der vorliegenden Erfindung
zeigen.
-
1 zeigt
ein Blockdiagramm zum Darstellen der allgemeinen Konfiguration einer
bevorzugten Ausführungsform
eines erfindungsgemäßen Zugriffssystems
zum Bereitstellen von Zugriffen auf eine gemeinsam genutzte Plattenvorrichtung
in einem Speicherbereichnetzwerk (SAN);
-
2 zeigt
ein Blockdiagramm zum Darstellen der inneren Konfiguration eines
Servers und eines Clients im in 1 dargestellten
Zugriffssystem;
-
3 zeigt
ein Ablaufdiagramm zum Beschreiben eines Arbeitsablaufs, der ausgeführt wird, wenn
ein Benutzerpro gramm im in 1 dargestellten
Zugriffssystem eine Datei auf einer gemeinsam genutzten Plattenvorrichtung öffnet;
-
4 zeigt
ein Ablaufdiagramm zum Beschreiben eines Arbeitsablaufs, der ausgeführt wird, wenn
ein Benutzerprogramm im in 1 dargestellten
Zugriffssystem eine Datei auf einer gemeinsam genutzten Plattenvorrichtung
liest;
-
5 zeigt
ein Ablaufdiagramm zum Beschreiben eines Arbeitsablaufs, der ausgeführt wird, wenn
ein Benutzerprogramm im in 1 dargestellten
Zugriffssystem eine Datei auf eine gemeinsam genutzte Plattenvorrichtung
schreibt;
-
6 zeigt
ein Ablaufdiagramm zum Beschreiben eines Arbeitsablaufs, der ausgeführt wird, wenn
ein Benutzerprogramm im in 1 dargestellten
Zugriffssystem eine Datei auf einer gemeinsam genutzten Plattenvorrichtung
schließt;
und
-
7 zeigt
ein Blockdiagramm zum Darstellen der allgemeinen Konfiguration einer
anderen Ausführungsform
eines erfindungsgemäßen Zugriffssystems.
-
Durch
eine in 1 dargestellte bevorzugte Ausführungsform
eines erfindungsgemäßen Zugriffssystems
werden Zugriffe auf eine gemeinsam genutzte Plattenvorrichtung in
einem Speicherbereichnetzwerk(SAN) ermöglicht. Das Zugriffssystem weist
einen Server 10, einen Client 20, eine gemeinsam
genutzte Plattenvorrichtung 30, ein SAN 40 und ein
LAN (lokales Netz) 50 auf.
-
Der
Server 10 und der Client 20 sind durch ein LAN 50 netzwerkmäßig verbunden.
Außerdem sind
der Server 10, der Client 20 und die gemeinsam genutzte
Plattenvorrichtung 30 mit dem SAN 40 verbunden.
-
Die
gemeinsam genutzte Plattenvorrichtung 30 weist ein auf
dem Server 50 lokal angeordnetes gemeinsam genutztes Dateisystem 60 auf.
Der Server 10 managt das in der gemeinsam genutzten Plattenvorrichtung 30 erzeugte
gemeinsam genutzte Dateisystem 60. Das gemeinsam genutzte
Dateisystem 60 speichert Metadaten 70 und eine
Datei 80. Ein Zugriff auf die Datei 80 erfordert
die Verwendung der Metadaten 70, der durch den Server 10 gemanagt
wird. Auf die Plattenvorrichtung 30 wird gemäß einem
SCSI-(Small Computer System Interface) Protokoll unter Verwendung
einer physikalischen Adresse und einer Datengröße (I/O-Größe) als Parameter vom der Server 10 und
vom Client 20 über
das SAN 40 zugegriffen.
-
Andererseits
greift der Client 20 über
das Netzwerk unter Verwendung einer Funktionalität eines Netzwerkdateisystems
(NFS) auf das gemeinsam genutzte Dateisystem zu. Der Client 20 kann
unter Verwendung des NFS-Systems über das Vorhandensein der Datei 80 informiert
sein.
-
Wenn
der Client 20 auf das gemeinsam genutzte Dateisystem 60 zugreift, überträgt der Client 20 eine
Dateikennung, die Information zum Identifizieren der Datei 80 anzeigt,
auf die zugegriffen werden soll, einen Offset-Wert vom Kopf der
Datei 80 und eine I/O-Größe über das LAN 50 an
den Server 10. Die Dateikennung ist beispielsweise eine
Dateiidentifizierung, mit der der Server 10 eine Datei
von Interesse managt.
-
Der
Server 10 überträgt eine
physikalische Plattenadresse, d.h. eine dem Offset-Wert vom Kopf der
Datei 80 entsprechende Startadresse der gemeinsam genutzten
Plattenvorrichtung 30, die I/O-Größe und eine Offset-Adresse
vom Kopf der Datei 80 über
das LAN 50.
-
Anschließend greift
der Client 20 gemäß der zuvor
vom Server 10 übertragenen
Information über das
SAN 40 direkt auf die gemeinsam genutzte Plattenvorrichtung 30 zu,
um einen schnellen Zugriff vom Client 20 auf eine Datei
im gemeinsam genutzten Dateisystem 60 zu realisieren.
-
In
dieser Ausführungsform
kann die durch den Client 20 ausgeführte, vorstehend erwähnte Funktionalität zum Zugrei fen
auf die gemeinsam genutzte Datei 60 nur durch eine Anwendungsschnittstelle
(API) des Betriebssystems (OS) realisiert werden. Dadurch wird das
Erfordernis zum Modifizieren des Kernels des Clients 20 zum
Realisieren der Funktionalität
eliminiert und das Portieren der Funktionalität in verschiedene Plattformen
erleichtert.
-
2 zeigt
die innere Konfiguration des Servers 10 und des Clients 20 im
Detail.
-
Im
Server 10 ist ein Kernel 101 installiert, der einen
Servermechanismus 1011 für ein gemeinsam genutztes Dateisystem,
einen Dateisystemsteuerungsmechanismus 1012 und einen SCSI-Treiber 1013 aufweist.
Der SCSI-Treiber 1013 dient als Schnittstelle zum SAN 40.
Außerdem
wirkt im Server 10 ein Dateikennungsabruf-Dämon 102 als
Prozess, der in einem Benutzerraum ausgeführt wird. Hierin bezeichnet
der Ausdruck "Dämon" gemäß einer
allgemeinen Verwendung in diesem Fachgebiet einen Prozess zum Implementieren
einer Funktionalität
des Systems oder zum Ausführen
eines Hintergrunddienstes.
-
Im
Client 20 ist ein Kernel 203 installiert, der einen
Raw-I/O-Treiber 2031, einen SCSI-Treiber 2033,
einen Socket-Mechanismus 2034 und
einen Dateisystemsteuerungsmechanismus 2035 aufweist. Der
SCSI-Treiber 2033 dient als eine Schnittstelle zum SAN 40.
Der Raw-I/O-Treiber 2031 weist einen Puffer 2032 auf,
der einen Speicherbereich zum Übertragen
von Daten zu einem Benutzerraum darstellt. Im Client 20 wird
ein Benutzerprogramm 201 bereitgestellt, durch das ein
I/O-Ausgabeprozess
implementiert wird, wobei das Benutzerprogramm 201 I/O-Operationen
bezüglich
des ihm zugeordneten Speicherbereichs 2010 ausführt.
-
Außerdem werden
im Client 20 eine Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem und eine Standard-I/O-Ausgabeverarbeitungseinheit 205 bereitgestellt,
die jeweils als dynamische Verweisbibliothek oder Dynamic Link Libraries
(DLL) bereitgestellt werden. Außerdem
wird im Client 20 ein Proxy-Open-Dämon 206 ausgeführt.
-
Der
Kernel 101 und der Dateikennungsabruf-Dämon 102 des Servers 10 werden
auf einer ihm zugeordneten programmsteuerbaren Computerverarbeitungseinheit,
d.h. einer CPU des Servers 10, ausgeführt, um ihre jeweiligen Funktionen
zu implementieren. Ähnlicherweise
werden der Kernel 203, das Benutzerprogramm 201,
die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem, die Standard-I/O-Ausgabeverarbeitungseinheit 205 und
der Proxy-open-Dämon 206 des
Clients 20 auf einer programmsteuerbaren Computerverarbeitungseinheit
(d.h. CPU) des ihnen zugeordneten Clients 20 ausgeführt, um
ihre jeweiligen Funktionen zu implementieren.
-
In
der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem und in der Standard-I/O-Ausgabeverarbeitungseinheit 205,
die Dynamit-Link-Libraries sind, sind "Öffnen"-, "Lesen"-, "Schreiben"- und "Schließen"-Funktionen unter
den gleichen Symbolnamen definiert. Wenn das Benutzerprogramm 201 die "Öffnen"-, "Lesen"-, "Schreiben"- oder "Schließen"-Funktion aufruft,
führt der
Kernel 203 eine Funktion, die in der Dynamit-Link-Library
enthalten ist, als Teil eines Benutzerprogramms 201 auf,
um einen Symbolnamen zu handhaben.
-
Der
Proxy-open-Dämon 206,
der im Benutzerraum ausgeführt
wird, wird im Client 20 ausgeführt. Dieser Dämon kann
mit dem Benutzerprogramm 201 unter Verwendung des im Kernel 203 enthaltenen
Socket-Mechanismus 2034 kommunizieren.
-
Nachstehend
wird die Verarbeitung beschrieben, die im Client 20 bei
einem durch das Benutzerprogramm 201 ausgeführten Zugriff
auf eine Datei 80 in der gemeinsam genutzten Plattenvorrichtung 30 ausgeführt wird.
-
Wenn
vom Benutzerprogramm 201 im Client 20 auf eine
Datei 80 zugegriffen wird, muss eine Dateikennung für die Datei 80 auf
dem gemeinsam genutzten Dateisystem 60 zum Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem im Server 10 übertragen werden. Weil das
gemeinsam genutzte Dateisystem 60 ein lokales Dateisystem
auf dem Server 10 ist, kann der Client 20 jedoch
die Dateikennung für
die Datei 80 über
eine durch ein allgemeines Betriebssystem bereitgestellten API-Schnittstelle
nicht abrufen. Um dieses Problem zu lösen, ist der Dateikennungsabruf-Dämon in dieser
Ausführungsform
auf dem Server 10 angeordnet. Der Dateikennungsabruf-Dämon 102,
der in einem privilegierten Modus auf dem Server ausgeführt wird,
kann vom Dateisystemsteuerungsmechanismus 1012 eine Dateikennung
für eine
Datei abrufen, die auf dem gemeinsam genutzten Dateisystem 60 erzeugt
wird und einen beliebigen Dateinamen hat.
-
Die
I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam genutzte Dateisystem
des Client 20 überträgt ein "absolute password" für die Datei
an den Dateikennungsabruf-Dämon 102 und
ruft die Dateikennung für
die Datei 80 auf dem Server 10 in Antwort auf
das übertragene "absolute password" ab.
-
Nachstehend
wird ein erfindungsgemäßes Schema
zum Zugreifen auf die gemeinsam genutzte Plattenvorrichtung 30 ohne Änderung
des Benutzerprogramms 201 beschrieben.
-
Wenn
das Benutzerprogramm 201 ausgeführt wird, um auf die gemeinsam
genutzte Plattenvorrichtung 30 zuzugreifen, wird das Benutzerprogramm
dynamisch mit der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem im Client 20 verknüpft und wirkt als ein Benutzerprogramm.
In der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem sind "Öffnen"-, "Lesen"-, "Schreiben"- und "Schließen"-Funktionen instal liert,
die I/O-Verarbeitungs-API-Schnittstellen des Kernels darstellen. Diese
Funktionen werden unter Verwendung des im Kernel 203 installierten
Raw-I/O-Treibers 2031 und der API-Schnittstelle des im Kernel 203 installierten Socket-Mechanismus 2034 implementiert.
Der Raw-I/O-Treiber 2031 stellt eine API-Schnittstelle
zur Verwendung einer I/O-Verarbeitung
gemäß dem SCSI-Protokoll
vom Benutzerprogramm 201 bereit. Diese API-Schnittstelle
ist eine API-Schnittstelle einer niederschwelligen (Low-Level) Zugriffsverarbeitungsfunktionalität für einen
Zugriff auf die gemeinsam genutzte Plattenvorrichtung 30.
-
Für einen
Zugriff auf ein allgemeines Dateisystem wird das Benutzerprogramm 201 dynamisch mit
der Standard-I/O-Ausgabeverarbeitungseinheit 205 verknüpft, die
zuvor auf dem System des Client 20 bereitgestellt worden
ist, so dass Daten unter Verwendung der API-Schnittstellen der "Öffnen"-, "Lesen"-, "Schreiben"- und "Schließen"-Funktionen ein- und
ausgegeben werden können.
In dieser Ausführungsform
wird ein Suchdurchlauf der Dynamic Link Library derart modifiziert,
dass die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem im Voraus dynamisch mit dem Benutzerprogramm 201 verknüpft wird.
Dadurch wird zunächst
eine Library der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem als Verknüpfung
der Dynamik Link Library mit dem Benutzerprogramm 201 verknüpft, und dann
wird eine Library oder Bibliothek der Standard-I/O-Ausgabeverarbeitungseinheit 205 mit
dem Benutzerprogramm 201 verknüpft.
-
Durch
derartiges Verknüpfen
der Dynamik Link Libraries werden in der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem enthaltene Funktionen zunächst in "Öffnen"-, "Lesen"-, "Schreiben"- und "Schließen"-Verarbeitungen für eine Datei ausgeführt, so
dass eine Client-Verarbeitung zum Zugreifen auf das gemeinsam genutzte
Dateisystem in diese Funktionen eingefügt werden kann.
-
Nachstehend
wird das Raw-I/O-Zugriffsverfahren beschrieben.
-
Im
Allgemeinen muss im privilegierten Modus auf den Raw-I/O-Treiber 2031 zugegriffen
werden. Das Benutzerprogramm 201 arbeitet jedoch häufig in
einem nicht-privilegierten
Modus, in dem das Benutzerprogramm 201 nicht auf den Raw-I/O-Treiber 2031 zugreifen
kann. Als eine Funktionalität
des Raw-I/O-Treibers 2031 können jedoch Zugriffsrechte
für die
gemeinsam genutzte Plattenvorrichtung 30 derart gemanagt
werden, dass die "Öffnen"-Operation für die gemeinsam
genutzte Plattenvorrichtung 30 in einem privilegierten
Modus ausgeführt
wird, und die "Lesen"-, "Schreiben"- und "Schließen"-Operationen, die tatsächliche
Manipulationen bezüglich
der gemeinsam genutzten Plattenvorrichtung 30 darstellen,
nach der "Öffnen"-Operation unter
Verwendung einer Dateikennung der gemeinsam genutzten Plattenvorrichtung 30 ausgeführt werden,
die im Verlauf der "Öffnen"-Operation abgerufen
wird. Insbesondere kann, wenn das Benutzerprogramm 201 eine
Kopie der Dateikennung der gemeinsam genutzten Plattenvorrichtung 30 speichert, auf
den Raw-I/O-Treiber 2031 auch im nicht-privilegierten Modus
zugegriffen werden. Aus diesem Grunde ist der Proxy-Open-Dämon 206,
der im privilegierten Modus arbeitet, in dieser Ausführungsform im
Client 20 angeordnet.
-
Der
Proxy-Open-Dämon 206 kann
im privilegierten Modus arbeiten, um auf den Raw-I/O-Treiber 2031 zuzugreifen,
und kommuniziert über
den Socket-Mechanismus 2034 mit der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem. Die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem zwingt den Proxy-Open-Dämon 206, eine ansonsten
durch den Raw-I/O- Treiber 2031 der
gemeinsam genutzten Plattenvorrichtung 30 ausgeführte "Öffnen"-Operation auszuführen und ruft unter Verwendung
einer API-Schnittstelle des Socket-Mechanismus 2034 eine
Kopie der Dateikennung ab. Auf diese Weise kann die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem anschließend über den
Raw-I/O-Treiber 2031 im
nicht-privilegierten Modus unter Verwendung der Kopie der durch
den Proxy-Open-Dämon 206 abgerufenen
Dateikennung "Lesen"- und "Schreiben"-Operationen bezüglich der
gemeinsam genutzten Plattenvorrichtung 30 ausführen.
-
Unter
Verwendung der vorstehend beschriebenen Strategie kann gemäß dieser
Ausführungsform
eine Einrichtung zum Zugreifen auf das gemeinsam genutzte Dateisystem 60 auf
dem Server 10 vom Kernel im Client 20 getrennt
werden. Außerdem kann
im Client nur durch das Benutzerprogramm 201 auf eine Datei 80 im
gemeinsam genutzten Dateisystem 60 zugegriffen werden.
-
Nachstehend
wird die allgemeine Funktionsweise dieser Ausführungsform des Systems ausführlich beschrieben.
-
Wenn
das Benutzerprogramm 201 im Client 20 auf eine
Datei 80 im gemeinsam genutzten Dateisystem 60 zugreift,
reserviert das Benutzerprogramm 201 gemäß einer normalen Verarbeitungsprozedur zunächst einen
Speicherbereich 2010 zum Speichern von Daten. Das Benutzerprogramm 201 kann Daten
in den Speicherbereich 2010 schreiben oder im Speicherbereich
gespeicherte Daten auslesen. Nachstehend werden die "Öffnen"-, "Lesen"-, "Schreiben"- und "Schließen"-Operationen nacheinander
beschrieben.
-
In
einer Verarbeitung zum Öffnen
einer Datei, d.h. in einer Verarbeitung, die die Ausführung der "Öffnen"-Funktion beinhaltet, ruft das Benutzerprogramm 201,
wenn das Benutzerprogramm 201 auf eine Datei 80 auf
der gemeinsam genutzten Plattenvorrichtung 30 zugreifen
möchte,
zunächst
in Schritt 301 die "Öffnen"-Funktion zum Öffnen der
Datei 80 auf, wie in 3 dargestellt
ist. In diesem Fall versucht der Kernel 203 des Clients 20 die "Öffnen"-Funktion vom System dynamisch zu verknüpfen. In
diesem Fall wird, wenn ein Dynamik-Link-Suchpfad zum Durchsuchen
zunächst
der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem gesetzt worden ist, die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem zunächst für die "Öffnen"-Funktion automatisch verknüpft, und in
Schritt 302 wird ein Aufruf zur "Öffnen"-Funktion ausgeführt, die in der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem enthalten ist. Dann wird in Schritt 303 ein
Aufruf zur in der Standard-I/O-Ausgabeverarbeitungseinheit 205 enthaltenen "Öffnen"-Funktion ausgeführt.
-
Dann
wird in Schritt 304 geprüft, ob die Datei 80 sich
auf dem gemeinsam genutzten Dateisystem 60 befindet oder
nicht. Wenn die Datei 80 sich nicht auf dem gemeinsam genutzten
Dateisystem 60 befindet, wird anschließend eine Verarbeitung durch
die "Öffnen"-Funktion der Standard-I/O-Ausgabeverarbeitungseinheit 205 ausgeführt, um
diese Dateiöffnungsverarbeitung
abzuschließen.
Wenn in Schritt 304 festgestellt wird, dass die Datei 80 sich
auf dem gemeinsam genutzten Dateisystem 60 befindet, kommuniziert
das Benutzerprogramm 201 unter Verwendung des Socket-Mechanismus 2034 mit
dem Dateikennungsabruf-Dämon 102 des
Servers 10, um in Schritt 305 eine Dateikennung
für die
Datei 80 abzurufen, die durch der Server 10 gemanagt
wird. Daraufhin wird, wenn das Benutzerprogramm 201 mit dem
Servermechanismus 1011 für das gemeinsam genutzte Dateisystem
kommuniziert, die hierbei abgerufene Dateikennung zum Identifizieren
einer Datei verwendet.
-
Nachstehend
wird unter Bezug auf 4 ein Arbeitsablauf beschrieben,
der ausgeführt
wird, wenn das Benutzerprogramm 201 eine Datei 80 liest, d.h.
eine "Lesen"-Funktion ausführt.
-
Zunächst ruft
das Benutzerprogramm 201 in Schritt 401 die "Lesen"-Funktion auf. In
diesem Fall ist die in Schritt 402 aufgerufene "Lesen"-Funktion gemäß der Folge
eines Dynamil-Link-Suchdurchlaufs eine in der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem enthaltene "Lesen"-Funktion.
-
Dann
wird in Schritt 403 geprüft, ob die Datei 80 sich
auf dem gemeinsam genutzten Dateisystem 80 befindet oder
nicht. Wenn die Datei 80 sich nicht auf dem gemeinsam genutzten
Dateisystem 80 befindet, ruft das Benutzerprogramm 201 in
Schritt 404 eine in der Standard-I/O-Ausgabeverarbeitungseinheit 205 enthaltene "Lesen"-Funktion auf, woraufhin diese
Leseoperation beendet wird.
-
Wenn
dagegen in Schritt 403 entschieden wird, dass die Datei 80 sich
auf dem gemeinsam genutzten Dateisystem 60 befindet, überträgt das Benutzerprogramm 201 in
Schritt 405 eine I/O-Anforderung, die die in Schritt 305 abgerufene
Dateikennung enthält, über den
Socket-Mechanismus 2034 an den Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem im Server 10. In Antwort auf die I/O-Anforderung überträgt der Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem in Schritt 406 eine physikalische
Adresse, eine I/O-Größe und einen
Offset-Wert der Datei 80 als Raw-I/O-Anforderung an den Client 20,
und die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem des Clients 20 empfängt die
Raw-I/O-Anforderung. In diesem Fall enthält die Raw-I/O-Anforderung
den Vorrichtungsdateinamen der gemeinsam genutzten Plattenvorrichtung 30.
-
Dann
wird in Schritt 407 geprüft, ob die in der Raw-I/O-Anforderung enthaltene
gemeinsam genutzte Plattenvorrichtung 30 zuvor geöffnet worden ist
oder nicht. Wenn die gemeinsam genutzte Plattenvorrichtung 30 nicht
geöffnet
worden ist, fordert das Benutzerprogramm 201 in Schritt 408 auf
eine ähnliche
Weise wie in der vorstehend beschriebenen Dateiöffnungsverarbeitung den Proxy-Open-Dämon 206 auf,
die gemeinsam genutzte Plattenvorrichtung 30 zu öffnen. Der
Proxy-Open-Dämon 206 öffnet die gemeinsam
genutzte Plattenvorrichtung 30 im privilegierten Modus
und überträgt eine
Dateikennung über den
Socket-Mechanismus 2034 an die gemeinsam genutzte Plattenvorrichtung 30.
Im Allgemeinen beinhaltet die Übertragung
einer Dateikennung die Verwendung einer im Socket-Mechanismus 2034 enthaltenen
erweiterten Meldung (Extended Message) SCM_RIGHTS. Dadurch ruft
die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem in Schritt 408 die Dateikennung für die gemeinsam
genutzte Plattenvorrichtung 30 ab. Daraufhin kann unter
Verwendung der in Schritt 408 abgerufenen Dateikennung
auf die gemeinsam genutzte Plattenvorrichtung 30 zugegriffen
werden. Nach Schritt 408 schreitet die Steuerung zu Schritt 409 fort.
-
Wenn
in Schritt 407 festgestellt wird, dass die gemeinsam genutzte
Plattenvorrichtung 30 zuvor geöffnet worden ist, schreitet
die Steuerung unter Umgehung des Schritts 408 zu Schritt 409 fort,
weil die Dateikennung der gemeinsam genutzten Plattenvorrichtung 30 bereits
abgerufen worden ist.
-
In
Schritt 409 greift das Benutzerprogramm 201 mit
dem Raw-I/O-Treiber 2031 unter Verwendung der in Schritt 406 abgerufenen
Raw-I/O-Anforderung und der Dateikennung für die gemeinsam genutzte Plattenvorrichtung 30 auf
die gemeinsam genutzte Plattenvorrichtung 30 zu. In diesem
Fall kann das Benutzerprogramm 201 eine Prüfung für ein Zugriffsrecht
des Raw-I/O-Treibers 2031 bestehen, weil das Benutzerprogramm
die Dateikennung verwendet, die abgerufen worden ist, als die gemeinsam
genutzte Plattenvorrichtung 30 durch den Proxy-Open-Dämon 206 geöffnet wurde.
-
Der
Raw-I/O-Treiber 2031 greift über den SCSI-Treiber 2033 auf
die gemeinsam genutzte Plattenvorrichtung 30 zu, und Lesedaten
werden durch einen direkten Speicherzugriff (Direct Memory Access,
DMA) zum Puffer 2032 übertragen
und dann durch den Raw-I/O-Treiber 2031 in den für das Benutzerprogramm 201 reservierten
Speicherbereich 2010 kopiert. Anschließend überträgt die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem in Schritt 410 eine Mitteilung über das
Raw-I/O-Ende an den Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem und empfängt
in Schritt 411 die Mitteilung über das Raw-I/O-Ende vom Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem. Dann sucht das Benutzerprogramm 201 in
Schritt 412 die gleiche Größe wie diejenige, die in der
Leeoperation ausgegeben wurde, um die Dateiposition anzupassen,
woraufhin die Leseoperation beendet wird.
-
Nachstehend
wird unter Bezug auf 5 ein Arbeitsablauf von Verarbeitungen
beschrieben, die ausgeführt
werden, wenn das Benutzerprogramm 201 Daten in die Datei 80 schreibt,
d.h. eine "Schreiben"-Funktion ausführt.
-
Das
Benutzerprogramm 201 ruft zunächst in Schritt 501 die "Schreiben"-Funktion auf. In
diesem Fall ist die in Schritt 502 aufgerufene "Schreiben"-Funktion gemäß der Ordnung
eines Dynamik-Link-Suchdurchlaufs eine in der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam genutzte
Dateisystem enthaltene "Schreiben"-Funktion.
-
Dann
wird in Schritt 503 geprüft, ob die Datei 80 sich
auf dem auf dem gemeinsam genutzten Dateisystem 60 befindet
oder nicht. Wenn die Datei 80 sich nicht auf dem gemeinsam genutzten
Dateisystem 60 befindet, ruft das Benutzerprogramm 201 in
Schritt 504 eine in der Standard-I/O-Ausgabeverarbeitungseinheit 205 enthaltene "Schreiben"-Funktion auf, woraufhin
diese "Schreiben"-Funktion beendet
wird.
-
Wenn
dagegen in Schritt 503 bestimmt wird, dass sich die Datei 80 auf
dem gemeinsam genutzten Dateisystem 60 befindet, durchsucht
das Benutzerprogramm 201 zunächst in Schritt 505 einen
Cache der Datei 80 und überträgt in Schritt 506 eine
I/O-Anforderung, die die in Schritt 305 abgerufene Dateikennung
enthält, über den
Socket-Mechanismus 2034 an den Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem im Server 10. In Antwort auf diese
I/O-Anforderung überträgt der Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem in Schritt 507 eine physikalische
Adresse, eine I/O-Größe und einen
Offset-Wert der Datei 80 als Raw-I/O-Anforderung an den
Client 20, und die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem des Clients 20 empfängt die
Raw-I/O-Anforderung.
In diesem Fall enthält
sie Raw-I/O-Anforderung den Vorrichtungsdateinamen der gemeinsam
genutzten Plattenvorrichtung 30.
-
Dann
wird in Schritt 508 geprüft, ob die in der Raw-I/O-Anforderung enthaltene
gemeinam genutzte Plattenvorrichtung 30 zuvor geöffnet worden
ist. Wenn die gemeinsam genutzte Plattenvorrichtung 30 nicht
geöffnet
worden ist, fordert das Benutzerprogramm 201 in Schritt 509 den
Proxy-Open-Dämon 206 auf ähnliche
Weise wie in der vorstehend beschriebenen Dateiöffnungsverarbeitung auf, die
gemeinsam genutzte Plattenvorrichtung 30 zu öffnen. Der
Proxy-Open-Dämon 206 öffnet die
gemeinsam genutzte Plattenvorrichtung 30 im privilegierten
Modus und überträgt eine
Dateikennung über
den Socket-Mechanismus 2034 an die gemeinsam genutzte Plattenvorrichtung 30.
Im Allgemeinen beinhaltet die Übertragung einer
Dateikennung die Verwendung einer im Socket-Mechanismus 2034 enthaltenen
erweiterten Meldung (Extended Message) SCM_RIGHTS. Als Ergebnis
ruft die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam genutzte
Dateisystem in Schritt 509 die Dateikennung für die gemeinsam
genutzte Plattenvorrichtung 30 ab. Daraufhin kann in Schritt 509 unter
Verwendung der Dateikennung auf die gemeinsam genutzte Plattenvorrichtung
zugegriffen werden. Nach Schritt 509 schreitet die Steuerung
zu Schritt 510 fort.
-
Wenn
in Schritt 508 bestimmt wird, dass die gemeinsam genutzte
Plattenvorrichtung 30 zuvor geöffnet worden ist, schreitet
die Steuerung unter Umgehung von Schritt 509 zu Schritt 510 fort,
weil die Dateikennung für
die gemeinsam genutzte Plattenvorrichtung 30 bereits abgerufen
worden ist.
-
In
Schritt 510 greift das Benutzerprogramm 201 durch
den Raw-I/O-Treiber 2031 unter Verwendung der in Schritt 507 abgerufenen
Raw-I/O-Anforderung und der Dateikennung für die gemeinsam genutzte Plattenvorrichtung 30 auf
die gemeinsam genutzte Plattenvorrichtung 30 zu. Ähnlich wie
im vorstehend erwähnten
Fall kann das Benutzerprogramm 201 eine Prüfung für ein Zugriffsrecht
des Raw-I/O-Treibers 2031 bestehen, weil das Benutzerprogramm 201 die
Dateikennung verwendet, die abgerufen worden ist, als die gemeinsam
genutzte Plattenvorrichtung 30 durch den Proxy-Open-Dämon 206 geöffnet wurde.
-
Der
Raw-I/O-Treiber 2031 greift über den SCSI-Treiber 2033 auf
die gemeinsam genutzte Plattenvorrichtung 30 zu. Schreibdaten
werden vom für das
Benutzerprogramm 201 reservierten Speicherbereich 2010 zum
Puffer 2032 übertragen
und durch den Raw-I/O-Treiber über
den SCSI-Treiber 2033 durch einen DMA-Zugriff wieder zur
gemeinsam genutzten Plattenvorrichtung 30 übertragen.
Daraufhin überträgt die Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
ge nutzte Dateisystem in Schritt 511 eine Mitteilung über das
Raw-I/O-Ende an den Servermechanismus 1011 für das gemeinsam genutzte
Dateisystem und empfängt
in Schritt 512 eine Mitteilung über das Raw-I/O-Ende vom Servermechanismus 1011 für das gemeinsam
genutzte Dateisystem. Dann sucht das Benutzerprogramm 201 in
Schritt 513 die gleiche Größe wie diejenige, die in der
Schreiboperation ausgegeben wurde, um die Dateiposition anzupassen,
woraufhin die Schreiboperation beendet wird.
-
Nachstehend
wird unter Bezug auf 6 ein Arbeitsablauf von Verarbeitungen
beschrieben, die ausgeführt
werden, wenn das Benutzerprogramm 201 die Datei 80 schließt, d.h.
eine "Schließen"-Funktion ausführt.
-
Zum
Schließen
der Datei 80 ruft das Benutzerprogramm 201 zunächst in
Schritt 601 die "Schließen"-Funktion auf. Die
in diesem Fall aufgerufene "Schließen"-Funktion ist gemäß der Folge
eines Dynamik-Link-Suchdurchlaufs eine in der Client-I/O-Ausgabeverarbeitungseinheit 202 für das gemeinsam
genutzte Dateisystem enthaltene "Schließen"-Funktion.
-
Dann
wird in Schritt 603 geprüft, ob die Datei 80 sich
auf dem gemeinsam genutzten Dateisystem 60 befindet oder
nicht. Wenn die Datei 80 sich nicht auf dem gemeinsam genutzten
Dateisystem 60 befindet, wird die Schließverarbeitung
ohne eine weitere Verarbeitung beendet. Wenn die Datei 80 sich
dagegen auf dem gemeinsam genutzten Dateisystem 60 befindet,
schließt
das Benutzerprogramm 201 die gemeinsam genutzte Plattenvorrichtung 30,
die zuvor geöffnet
worden ist. Dann ruft das Benutzerprogramm 201 in Schritt 605 eine "Schließen"-Funktion der Standard-I/O-Ausgabeverarbeitungseinheit 205 auf,
um die Datei 80 zu schließen und dadurch die Schließverarbeitung
zu beenden.
-
Weil
die vorstehend beschriebene Ausführungsform
des Systems zum Zugreifen auf eine gemeinsam genutzte Platten vorrichtung
in einem SAN gemäß der vorstehenden
Beschreibung konfiguriert ist und arbeitet, ist das System insbesondere
dahingehend vorteilhaft, dass: (1) ein Datenzugriffsabschnitt als
Teil eines Benutzerprogramms unter Verwendung einer Dynamik Link
Library installiert ist; (2) eine Raw-I/O-Verarbeitung, auf die im privilegierten Modus
zugegriffen werden muss, durch Bereitstellen einer Proxy-Open-Dämons vermieden
wird; und (3) eine Dämon
zum Abrufen einer Dateikennung eines Netzwerkdateisystems in einem
Server angeordnet ist, so dass die Verarbeitung zum Ausführen eines schnellen
Zugriffs auf ein gemeinsam genutztes Dateisystem im SAN 40 getrennt
von der Verarbeitung des Kernels ausgeführt werden kann, ohne das Benutzerprogramm 201 zu ändern. Dadurch
kann im erfindungsgemäßen Zugriffssystem
eine Client-Funktionalität
für einen
Zugriff auf eine gemeinsam genutzte Plattenvorrichtung im SAN ohne Änderung
des Kernels installiert und die Anzahl von zum Portieren der Client-Funktionalität zu einer
anderen Plattform erforderlichen Arbeitsschritten vermindert werden.
-
Obwohl
die vorliegende Erfindung in Verbindung mit einer bevorzugten Ausführungsform
der Erfindung beschrieben worden ist, ist die vorliegende Erfindung
nicht auf die vorstehende Ausführungsform
und die vorstehenden Implementierungen beschränkt, sondern innerhalb des
technischen Prinzips der Erfindung können verschiedenartige Änderungen
vorgenommen werden, um die Erfindung in die Praxis umzusetzen. Beispielsweise
kann das LAN 50 im SAN 40 angeordnet sein, Außerdem können, wie
in 7 dargestellt ist, mehrere gemeinsam genutzte
Platztenvorrichtungen 30, 30A, 30B, ...
mit dem SAN 40 verbunden sein, und mehrere Dateien 80-1,
..., 80-N können
in einer gemeinsam genutzten Plattenvorrichtung 30A gespeichert
sein. Außerdem können gemäß 7 im
System mehrere Clients 20 bereitgestellt werden.