-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft vernetzte Dateiserver und insbesondere
die Übernahme
eines anderen in Panik geratenen oder ausgefallenen Dateiservers
in einem Cluster vernetzter Dateiserver durch einen Dateiserver.
-
Hintergrund der Erfindung
-
Das
Dokument
US 5,996,086 offenbart
eine kontextbasierte Failover-Architektur (Failover: Umschalten
bei Fehlern) für
redundante Server. Die herkömmliche
Architektur weist auf: einen Fern-Server, der mit einem ersten Speichergerät gekoppelt
ist, das spezifische Konfigurationsinformationen über den Fern-Server
speichert, die dem Fern-Server zugeordnet sind, einen lokalen Server,
der mit einem ersten Speichergerät
gekoppelt ist, das spezifische Konfigurationsinformationen über den
lokalen Server speichert, die dem lokalen Server zugeordnet sind, wobei
der lokale Server die Fähigkeit
hat, das erste Speichergerät
zu erwerben und die Konfigurationsinformationen über den Fern-Server zu lesen,
und einen lokalen Server-Prozess. Der lokale Server-Prozess weist
auf: einen Initialisierungsprozess zur Erzeugung eines lokalen Kontexts
auf Basis der Konfigurationsinformationen über den lokalen Server und eines
Fern-Kontexts auf Basis der Konfigurationsinformationen über den
Fern-Server und zur Aktivierung des lokalen Server-Kontexts und einen
Failover-Prozess zum Erwerben des ersten Speichergeräts, Lesen
der spezifischen Konfigurationsinformationen über den Fern-Server, Erzeugen
und Initialisieren eines Failover-Kontexts und Aktivieren des Failover-Kontexts,
wenn der lokale Server Failover-Dienste für den Fern-Server bereitstellen
soll. Der lokale Server-Prozess ist so eingerichtet, dass er auf
dem lokalen Server ausgeführt
wird, indem er auf aktivierten lokalen Server-Kontext und Failover-Kontext
und aktivierten lokalen Kontext und fernen Kontexts wirkt und Entscheidungen
auf Basis von diesen trifft.
-
Das
Dokument
US 6,249,879 offenbart
ein Verfahren und eine Vorrichtung für ein transparentes Failover
eines Dateisystems in einem Computer-Cluster. Das herkömmliche
Verfahren weist die Schritte auf: alle aktuell ausgeführten Anwendungsprozesse
und Operationen, die Zugriff auf das Hauptinhaltsverzeichnis-Dateisystem
benötigen,
in einen unterbrechbaren Ruhezustand versetzen; das Hauptinhaltsverzeichnis-Dateisystems
in einem Bereitschafts-Serverknoten im Computer-Cluster montieren
("mounting"); eine dem Hauptinhaltsverzeichnis-Dateisystem
zugeordnete Server-Instanz schaffen und die Server-Instanz jedem
der anderen Knoten im Computer-Cluster neu zuordnen; die in einen unterbrechbaren
Ruhezustand versetzten Anwendungsprozesse aktivieren und jedem dieser
Anwendungsprozesse das Hauptinhaltsverzeichnis-Dateisystem auf einer
Nurlesebasis verfügbar
machen; die Integrität
des Hauptinhaltsverzeichnis-Dateisystems prüfen; die durch den Ausfall
des aktiven Serverknotens unterbrochenen Anwendungsprozesse vervollständigen;
und neuen Anwendungsprozessen das Hauptinhaltsverzeichnis-Dateisystem im Computer-Cluster
auf einer Leseschreibbasis verfügbar
machen.
-
Dateiserver
-
Ein
Dateiserver ist ein Computer, der Dateidienste bezüglich der
Organisation von Informationen auf Speichergeräten wie z. B. Platten bereitstellt. Ein
Dateiserver enthält
ein Speicherbetriebssystem, das ein Dateisystem implementiert, um
die Informationen als eine hierarchische Struktur von Verzeichnissen
und Dateien auf den Platten logisch zu organisieren. Jede Plattendatei
kann als ein Satz Datenstrukturen z. B. Plattenblöcke konfiguriert
werden, um Informationen wie z. B. Text zu speichern. Andererseits kann
ein Verzeichnis als eine besonders formatierte Datei implementiert
werden, in der Informationen über
anderen Dateien und Verzeichnisse gespeichert werden.
-
Ein
Dateiserver kann so konfiguriert sein, dass er gemäß einem
Client/Server-Informationsliefermodell arbeitet, um dadurch vielen
Clients Zugriff auf Dateien zu gestatten, die auf einem Server,
d. h. einem Dateiserver, gespeichert sind. Bei diesem Modell kann
der Client eine Anwendung wie z. B. ein Dateisystemprotokoll aufweisen,
die auf einem Computer ausgeführt
wird, der über
ein Computernetzwerk wie z. B. eine Punkt-zu-Punkt-Verbindung, ein gemeinsam genutztes
lokales Netzwerk (LAN), Weitverkehrsnetz (WAN) oder ein virtuelles
Privatnetz (VPN) mit dem Dateiserver "verbindet".
-
Ein
Typ von Dateisystemen ist ein "Write-Anywhere"-Dateisystem, das
keine Daten auf Platten überschreibt.
Wird ein Datenblock auf der Platte von der Platte in den Speicher
abgerufen (gelesen) und mit neuen Daten "verunreinigt", wird der Datenblock an einer neuen
Stelle auf der Platte gespeichert (geschrieben), um dadurch die
Schreibleistung zu optimieren. Ein Write-Anywhere-Dateisystem kann anfangs
ein optimales Layout annehmen, so dass die Daten im Wesentlichen
zusammenhängend
auf Platten angeordnet werden. Das optimale Plattenlayout resultiert
in effizienten Zugriffsoperationen, insbesondere für sequentielle
Leseoperationen, die auf die Platten gerichtet sind. Ein besonderes
Beispiel für
ein Write-Anywhere-Dateisystem, das so konfiguriert ist, dass es
auf einem Dateiserver arbeiten kann, ist das bei Network Appliance,
Inc., in Sunnyvale, Kalifornien, erhältliche Dateisystem Write-Anywhere
File Layout (WAFL). Das Dateisystem WAFL ist in einem Mikrokern
als Teil des gesamten Protokollstapels des Dateiservers und zugeordneten
Plattenspeichers implementiert. Dieser Mikrokern wird als Teil des Speicherbetriebssystems
Data ONTAP von Network Appliance geliefert, das sich auf dem Dateiserver
befindet, der Dateidienstanforderungen von mit dem Netzwerk verbundenen
Clients verarbeitet.
-
Im
Rahmen der vorliegenden Beschreibung bezieht sich der Begriff "Speicherbetriebssystem" im Allgemeinen auf
den computerausführbarer
Code, der auf einem Speichersystem betriebsfähig ist, das Dateisystem-Semantik
implementiert und den Datenzugriff verwaltet. In diesem Sinne ist
die Software Data ONTAP ein Beispiel für ein solches als Mikrokern
implementiertes Speicherbetriebssystem. Das Speicherbetriebssystem
kann auch als ein Anwendungsprogramm implementiert werden, das über ein Universalbetriebssystem
wie z. B. UNIXS® oder
Windows NT® wirkt,
oder als ein Universalbetriebssystem mit konfigurierbarer Funktionalität, das für Speicheranwendungen
konfiguriert wird wie hierin beschrieben.
-
Ein
Plattenspeicher ist typischerweise als ein oder mehrere Speicher-Datenträger (volumes)
implementiert, bestehend aus einem Satz physikalischer Speicherplatten,
der eine logische Gesamtanordnung von Speicherplatz definiert, sowie
einem Satz "Hot-Spare"-Platten (aktiver Ersatzplatten), die
nach Bedarf zur Verwendung für
Dateidienste bereitstehen. Aktuell verfügbare Dateiserver-Implementierungen
können
eine große
Anzahl eigenständiger
Datenträger
bedienen. Jedem Datenträger
ist sein eigenes Dateisystem zugeordnet und für die Zwecke der vorliegenden
Beschreibung sollen Datenträger
und Dateisystem im Allgemeinen synonym verwendet werden. Die Platten
in einem Datenträger
sind typischerweise als eine oder mehrere Gruppen von Redundant
Array of Independent (oder Inexpensive) Disks (RAID) (etwa: Redundanter
Verbund unabhängiger
(oder kos tengünstiger)
Festplatten) organisiert. RAID-Implementierungen erhöhen die
Zuverlässigkeit/Integrität der Datenspeicherung
durch das redundante Schreiben von Daten-"Streifen" auf einer gegebenen
Anzahl physikalischer Platten im RAID-Verbund und die entsprechende
Speicherung von Paritätsinformationen
bezüglich
der gestreiften Daten. Eine Ersatzplatte ist eine, die vom innehabenden Dateiserver
ordnungsgemäß reserviert
ist aber aktuell nicht für
Dateidienste verwendet wird. Sie steht zur Verwendung bereit, wenn
sie zur Schaffung eines Datenträgers,
Erweiterung bestehender Datenträger, RAID-Rekonstruktion und
für andere
Wiederherstellungsoperationen im Katastrophenfall oder für wartungsbezogene
Dateidienstoperationen benötigt wird.
Im Allgemeinen ist eine Rekonstruktion eine Operation, durch die
eine Ersatzplatte zugewiesen wird, um eine aktive Dateisystemplatte
in einem bestimmten RAID-Verbund zu ersetzen, die ausgefallen ist,
bei der Paritätsberechnungen
anhand der überlebenden
Platten die Daten regenerieren, die auf der ausgefallenen Platte
gespeichert worden waren, und die regenerierten Daten an die Ersatzplatte
geschrieben werden.
-
Im
Beispiel für
ein WAFL-Dateisystem wird eine RAID 4-Implementierung vorteilhaft
eingesetzt. Diese Implementierung bringt speziell die streifenartige
Anordnung von Daten auf einem Verbund von Platten und die getrennte
Speicherung der Parität
auf einer ausgewählten
Platte des RAID-Verbundes mit sich. Fällt eine einzelne Platte in
einem RAID 4-Verbund aus, kann dieser Verbund weiterhin in einer schlechteren
Betriebsart arbeiten. Die Daten der ausgefallenen Platte können anhand
der überlebenden Platten
durch Paritätsberechnungen
rekonstruiert werden. Wie hierin beschrieben wird, weist ein RAID-Verbund
typischerweise mindestens eine Datenplatte und eine zugeordnete
Paritätsplatte
(oder möglicherweise
Daten-/Paritätspartitionen
auf einer einzigen Platte) auf, die gemäß einer RAID 4- oder einer
entsprechenden hochzuverlässigen
Implementierung angeordnet sind. Andere Konfigurationen (z. B. RAID
0, RAID 1, RAID 4, RAID 5 oder RAID DP (Diagonal Parity) sind jedoch
in die Überlegungen einbezogen.
Eine weitere Besprechung von RAID ist in der gemeinsamen U.S.-Patentanmeldung
Seriennr. 10/394,819 mit dem Titel QUERY-BASED SPARES MANAGEMENT
TECHNIQUE von Loellyn Cassell et al. zu finden.
-
Wie
weiter unten beschrieben wird, ist jede Platte in eine Reihe Zonen
aufgeteilt, die ermöglichen,
dass Schreiben von Daten und Zugriff auf Daten auf den Platte auf
eine vorhersagbare Weise erfolgen. Diese Zonen enthalten im Allgemeinen
ein Plattenetikett (label), das von der RAID-Ebene verwendet wird.
Das Etikett auf der Platte besteht im Wesentlichen aus selbstbeschreibenden
Informationen für
jede Platte, die aktiv mit dem Speichersystem verbunden wird. Die
Etiketten werden verwendet um die Platten dynamisch zu Ersatz-Pools
(Spare-Pools) und Datenträgern
zu montieren. Der Vorgang des Montierens von Platten zu Ersatz-Pools
und Datenträgern
auf Basis der Plattenetiketten wird als "Plattenetiketten-Assimilation" bezeichnet. Falls
das Etikett die Platte als einen Teil eines Datenträgers identifiziert,
wird das Etikett verwendet, um einen Arbeitsspeicher-Konfigurationsbaum
für diesen
Datenträger beginnend
bei der Plattenobjektebene bis zur Datenträgerobjektebene aufzubauen.
Ein Etikett auf einer Platte identifiziert deshalb die Beteiligung
dieser Platte an einem RAID-Verbund und ferner die Zuordnung von
Plex-, Spiegel- und schließlich
Datenträgerobjekten
in diesem Konfigurationsbaum zu diesem Verbund. Das Etikett befindet
sich an einer allgemein bekannten Stelle auf der Platte, so dass
es gemäß z. B. einem
Entdeckungsprozess während
einer Boot-Operation (Booten: Hochfahren) durch das RAID-Untersystem
abgefragt werden kann. Der Entdeckungsprozess implementiert beispielhaft
einen hierin beschriebenen Plattenereignispfad.
-
Das
Speichersystem führt
eine Assimilation auf Basis von Plattenetiketten aus und entscheidet, ob
und wo eine bestimmte Platte in die allgemeine Konfiguration des
aktiven Speichers eingefügt
werden soll. Wenn eine Platte anhand ihrer Etiketten als ein "Ersatz" (spare) und nicht
als Teil der aktiven Speicherkonfiguration betrachtet wird, wird
sie in einen Ersatz-Pool gelegt.
-
Andere
Zonen definieren das Inhaltsverzeichnis der Platte, ihren Dateisystembereich,
eine Arbeitsspeicherabzugzone, in der Arbeitsspeicherabzuginformationen
gespeichert werden, Inhaberschaftsinformationen (unten beschrieben)
und andere relevante Informationen, die auf eine logische und vorhersagbare
Weise im Speicherplatz der Platte angeordnet sind. Bestimmte Informationen
wie das Inhaltsverzeichnis befinden sich an einem bekannten Offset
(Versatz), so dass das Speichersystem immer darauf zugreifen kann,
wenn die Platte verbunden ist. Intern ist der Dateiserver ein mikroprozessorbasierter Computer,
in dem ein oder mehrere Mikroprozessoren durch einen Systembus mit
verschiedenen Systemkomponenten verbunden sind, die sich physisch auf
einer Hauptplatine befinden und enthalten können: einen Speicher, einen
Puffer-Cache zum Speichern von Daten und Befehlen, einen Netzwerkadapter
zum Kommunizieren über
das LAN oder ein anderes Netzwerk, ein Firmware-Speichergerät wie z.
B. einen löschbaren
programmierbaren Lesespeicher (EPROM, der einen Flash-Speicher aufweisen
kann, der beim Herunterfahren die Energie beibehält), der System-Firmware (einschließlich eines
Boot-Mechanismus)
enthält,
und verschiedene Speicheradapter zum Kommunizieren mit den physischen
Platten, die mit dem Dateiserver verbunden sind.
-
Platten
sind typischerweise in einer Gestellgehäuseeinheit oder einem "Gestell" eingeschlossen.
Ein Gestell ist ein physisches Gehäuse, das hauptsächlich Energie
und Anschlussfähigkeit
zu seinen Platten bereitstellt.
-
Dateiserver
können
in Gruppen oder "Clustern" organisiert werden,
in denen zwei oder mehr Dateiserver miteinander verbunden sind,
um fehlertolerantes Rechnen für
den Fall bereitzustellen, dass einer der Cluster-Partner in "Panik" gerät oder ausfällt. In
einem solchen Fall übernimmt
ein nicht ausgefallener Cluster-Partner die Handhabung der Operationen
des ausgefallenen Partners und die Steuerung seiner Platten. Dies
wird durch mehrere "Failover"-Funktionen (weiter
unten zu beschreiben) einschließlich
eines Failover-Überwachers
in jedem Dateiserver und einen Cluster Interconnect (Cluster-Verbindung)
zwischen Dateiservern, der einen Kommunikationsweg im Falle einer
Panik oder eines Ausfalls bereitstellt, erleichtert.
-
In
einer Cluster-Umgebung ist jeder Dateiserver physisch mit allen
Platten verbunden, die Teil eines bestimmten Clusters sind, und
ein bestimmter Dateiserver gilt als "Inhaber" der Platten, welche die von diesem
Dateiserver bedienten Datenträger
bilden. Diese Inhaberschaft bedeutet, dass der Dateiserver für die Wartung
der auf diesen Platten enthaltenen Daten verantwortlich ist, und
dass nur der Dateiserver, der eine bestimmte Platte "besitzt", in der Lage sein
soll, Daten nach dieser Platte zu schreiben. Diese Alleininhaberschaft
hilft die Datenintegrität
und -kohärenz
sicherzustellen. Bei einem beispielhaften Dateisystem können Informationen über die
Platteninhaberschaft an zwei Stellen gespeichert werden: einem definitiven
Inhaberschaftssektor auf jeder Platte und durch die Verwendung von
Reservierungen gemäß Small
Computer System Interface (SCSI) Level 3. Diese SCSI-3-Reservierungen
sind beschrieben in SCSI Primary Commands-3 vom Committee T10 des
National Committee for Information Technology Standards. Dieses
Verfahren für
die Inhaberschaft von Platten ist in der U.S.-Patentanmeldung US
2003/0120743 mit dem Titel SYSTEM AND METHOD OF IMPLEMENTING DISK
OWNERSHIP IN NETWORKED STORAGE detailliert beschrieben. Andere Platteninhaberschaftsmodelle werden
ausdrücklich
ins Auge gefasst und dem Fachmann auf dem Gebiet der Netzwerkspeicherung ist
klar, dass die offenbarte Erfindung nicht auf die oben beschriebenen
Inhaberschaftsverfahren beschränkt
ist. Beispielsweise kann ein typologiebasiertes Inhaberschaftssystem
verwendet werden. Dieses beinhaltet ein herkömmliches A/B-Cluster-Inhaberschaftssystem,
bei dem der mit Fibre Channel-Port A (Port = Anschluss) eines bestimmten
Plattengestells verbundene Dateiserver als Standardinhaber dieses Gestells
und aller Platten, die es enthält,
gilt, wogegen der mit Port B verbundene Dateiserver der Übernahme-Cluster-Partner
ist. Ähnlich
kann ein anderes topologiebasiertes System verwendet werden, bei dem
die Platteninhaberschaft teilweise durch den Switchport bestimmt
wird, mit dem eine Platte verbunden ist. Dieses beispielhafte System
definiert Inhaberschaft auf Basis der Switchport-Bank (z. B. einer
Gruppe voneinander getrennter Anschlüsse) in die hinein Port A einer
Platte verbunden ist. Wenn z. B. ein handelsüblicher Switch der Serie 3800
von Brocade Communications Systems, Inc., (San Jose, Kalifornien)
mit 16 Ports, die in Bank 1 (Ports 0–7) und Bank 2 (Ports 8–15) aufgeteilt
sind, verwendet wird, gilt ein mit Bank 1 verbundener Dateiserver
als Inhaber von Platten, die mit Bank 2 verbunden sind, um die Datenredundanz
weitet sicherzustellen. Dies ist in FAS900 Series Appliance Cluster
Guide (Teilnummer 210-00342), veröffentlicht von Network Appliance,
Inc., im Mai 2003 (siehe allgemein Kapitel 3) detailliert beschrieben.
-
Dateiserver-Ausfall und Übernahme
-
Im
Rahmen der vorliegenden Beschreibung gerät ein Dateiserver in einer
Cluster-Konfiguration
in "Panik" oder er "fällt aus", wenn er ein schwerwiegendes Problem
erkennt, das ihn daran hindert, die Ausführung normal fortzusetzen,
er aber dennoch in der Lage ist, mit anderen Knoten im Cluster einschließlich seines
Cluster-Partners zu kommunizieren. Der Prüfstein bei einem solchen Ausfall
ist daher die anhaltende Fähigkeit,
trotz des Verlusts einer gewissen Funktionalität oder Leistungsfähigkeit
im Cluster zu kommunizieren. Dies kann auch als "weicher Ausfall" im Unterschied zum "harten Ausfall" bezeichnet werden, der auftritt, wenn
der Dateiserver unfähig
wird, mit anderen Knoten im Cluster zu kommunizieren, z. B. nach
einem Ausfall der elektrischen Spannung. Ein Dateiserver, in dem
das Speicherbetriebssystem in Panik ist, wird daher im Allgemeinen
als ein "ausgefallener
Dateiserver" bezeichnet.
-
Wenn
ein Dateiserver in einer Cluster-Umgebung ausfällt, ergibt sich die Notwendigkeit,
die Inhaberschaft eines Datenträgers
vom ausgefallenen Dateiserver auf einen anderen Partnerdateiserver
zu übertragen,
um Clients fortdauernden Zugriff auf die Platten zu verschaffen.
Ein Verfahren zur "Übernahme" oder zum "Failover" ist in der
US 6,920,580 mit dem Titel
NEGOTIATED GRACEFUL TAKEOVER IN A NODE CLUSTER detailliert beschrieben.
-
Zur
Unterstützung
der Ermittlung der Fehlerursache (z. B. um die Fehler des ausgefallenen
Dateiservers zu beseitigen) führt
der ausgefallene Dateiserver oder das andere Speichersystem typischerweise
eine "Arbeitsspeicherabzug"-Operation durch, bei
der er bzw. es seinen aktuellen Arbeitsspeicherinhalt (ebenfalls
als "Arbeitsspeicherabzug" bezeichnet) nach
der Platte schreibt. Später
liest ein Arbeitsspeicherabzug-Wiederherstellungsprozess
mit der Bezeichnung "savecore" (Arbeitsspeicher
sicherstellen) die Arbeitsspeicherabzugdaten zurück und erzeugt eine "Arbeitsspeicherabzugdatei", die er im Hauptinhaltsverzeichnis-Dateisystem
des ausgefallenen Dateiserver speichert. Die Arbeitsspeicherabzugdatei
enthält
ein Abbild des Systemspeichers und eines etwaigen nicht flüchtigen
Speichers zur Zeit des Auftretens der Panik. Auf das Abbild kann
anschließend
zugegriffen werden und es kann zur Unterstützung der Bestimmung der Ursache
des Ausfallereignisses untersucht werden. Diese Informationen unterstützen die
Diagnose des Fehlers, da sie ein Bild des Systems zur Zeit des Auftretens
des Ausfalls sind.
-
Wie
nachstehend angegeben ist Zeit in einem Panik-Szenario von entscheidender
Bedeutung, daher verteilt die Arbeitsspeicherabzug-Operation den
Arbeitsspeicherabzug typischerweise auf besonders zugeordnete Arbeitsspeicherzonen,
die sich auf mehreren Platten befinden, um die vollständige Erstellung
des Arbeitsspeicherabzugs zu beschleunigen. Typischerweise wird
die Arbeitsspeicherabzugdatei in (beispielsweise) 3 MB großen Datenstücken nach
der bestimmten Zone in einem Satz nicht defekter/betriebsfähiger Platten
geschrieben, die der ausgefallene Dateiserver aktuell innehat. Wenn
die bestimmte Zone auf einer bestimmten Platte voll wird, wird diese
Platte aus der Liste verfügbarer
Platten genommen. Die auf Platten geschriebenen 3 MB großen Datenstücke sind
typischerweise nicht komprimiert, wenn der Platz es erlaubt, oder
sie können komprimiert
sein, wenn der Platz kritisch ist, und diese komprimierten Daten
können
sequentiell nach Platten geschrieben werden, statt über den
Plattensatz hinweg "versprüht" zu werden und möglicherweise
einige Platten vor den anderen füllen.
Die Platten werden nummeriert, so dass eine resultierende Arbeitsspeicherabzugdatei
später
anhand des Plattensatzes wieder zusammengesetzt werden kann.
-
Im
Falle einer Cluster-Umgebung, in der mehrere Dateiserver in der
Lage sein können,
die Kontrolle über
einen bestimmten Plattensatz über
Inhaberschaftsreservierungen zu übernehmen,
wird der Arbeitsspeicherabzug nur auf Platten gerichtet, die der
ausgefallene Dateiserver innehat. Da der Arbeitsspeicherabzug den
Arbeitsspeicherabzug auf mehrere Platten verteilt, sind diese Platten
für den Partnerdateiserver
sonst nicht zugänglich,
um den Übernahmeprozess
zu beginnen. Vielmehr bleiben die Platten mit den Aktionen des ausgefallenen
Dateiservers beim Schreiben des Arbeitsspeicherabzugs beschäftigt. Da
auf die Arbeitsspeicherabzugplatten typischerweise vom Partnerdateiserver
als Teil einer herkömmlichen Übernahmeoperation
zugegriffen werden muss, verzögert
der Partnerdateiserver folglich den gesamten Übernahmeprozess, bis der ausgefallene
Dateiserver seinen Arbeitsspeicherabzug fertig stellt. Tatsächlich geht
der Übernahmeprozess über zwei
aufeinander folgende Schritte vor sich: zuerst wird der Arbeitsspeicherabzug
durch den ausgefallenen Dateiserver vollendet, dann erfolgt die Übernahme
durch den Partnerdateiserver.
-
Während die
zwei Schritte (Arbeitsspeicherabzug und Übernahme) ausgeführt werden,
kann sich der Ausfall tatsächlich
von "weich" zu "hart" ändern, wobei der ausgefallene Dateiserver
vollkommen unzugänglich
wird, bevor die Übernahme
ganz vollendet ist. Während
dieser Verzögerung
sind außerdem
die durch den ausgefallenen Dateiserver gehandhabten Daten für Clients
unzugänglich
und sie werden nicht wieder verfügbar
gemacht, bis die Übernahme
abgeschlossen ist. Es ist äußerst wünschenswert,
die Nichtverfügbarkeit
der Daten von einem Cluster so weit wie möglich zu verringern, insbesondere
in einer blockbasierten (SAN-)Umgebung, in der Clients äußerst anfällig für Datenunverfügbarkeit sind.
Wenn z. B. ein Dateiserver nicht innerhalb einer festgesetzten Zeitspanne
antwortet, kann das SAN-Protokoll eine netzwerkweite Panik ausgeben, die
wiederum zu einer vollständigen
Netzwerkabschaltung führen
kann. Zur Vermeidung einer unerwünschten
(und möglicherweise)
lähmenden
Stillstandszeit sollte daher die gesamte Übernahmeoperation einschließlich des
Arbeitsspeicherabzugs so schnell wie möglich durchgeführt werden.
-
Zusammenfassung der Erfindung
-
Diese
Erfindung, die in den beigefügten
unabhängigen
Ansprüchen
1, 6 und 14 detailliert definiert ist, überwindet die Nachteile im
Stand der Technik, indem sie ein System und ein Verfahren zur Ermöglichung
einer schnelleren Übernahme
eines ausgefallenen Dateiservers durch einen geclusterten Übernahme-Partnerdateiserver
bei Vorliegen eines Arbeitsspeicherabzugverfahrens (z. B. eines
Transfers des Arbeitsspeichers des ausgefallenen Dateiservers) bereitstellt.
Um Zeit zu sparen, wird gestattet, dass der Arbeitsspeicherabzug
gleichzeitig mit der Übernahme
der regulären
aktiven Platten des ausgefallenen Dateiservers, die reguläre Dateidienstdaten
speichern, durch den Partner stattfindet, so dass für den Beginn
der Übernahme
nicht auf die Fertigstellung des Arbeitsspeicherabzugs gewartet werden
muss. Dies wird durch die folgenden kurz beschriebenen Techniken
erreicht: Der Arbeitsspeicherabzug wird nach einer einzelnen Platte
geschrieben, die nicht am regulären
Dateidienst beteiligt ist, so dass die Übernahme regulärer Dateidienste
ohne Beeinträchtigung
vom Arbeitsspeicherabzug vonstatten gehen kann. Ein zuverlässiger Mechanismus
für beide
Dateiserver in einem Cluster zur Identifizierung der Arbeitsspeicherabzugplatte
ist bereitgestellt, der die Übernahmeabhängigkeit
von unzuverlässigen Kommunikationsmechanismen
beseitigt. Ebenfalls bereitgestellt ist ein Mechanismus zur Identifizierung während der Übernahme
der Arbeitsspeicherabzugplatte und SCSI-3-Reservierungen werden verwendet, um
den Schreibzugriff auf (die Inhaberschaft von) gemeinsam genutzte(n)
Platten zu koordinieren, um zu verhindern, dass die Übernahme
den Arbeitsspeicherabzug beeinträchtigt,
während
sie gleichzeitig verhindern, dass der ausgefallene Dateiserver weiterhin
nach regulären
Dateisystemplatten schreibt, die durch seinen Partner übernommen
werden.
-
Gemäß einer
Ausführungsform
der Erfindung hat jeder Dateiserver einen Mechanismus zur Überwachung
verschiedener Aspekte seiner Operationen. Als Reaktion auf einen
detektierten Ausfall führt
der ausgefallene Dateiserver einen Arbeitsspeicherabzug auf die
ausgewählte
Arbeitsspeicherabzugplatte durch. Die Arbeitsspeicherabzugplatte kann
unter den Ersatzplatten gewählt
werden, deren Inhaber der ausgefallene Dateiserver ist, oder sie kann
eine andere Platte sein, die mit dem ausgefallenen Dateiserver und
dem Übernahme-Partnerdateiserver
kommuniziert. Während
der ausgefallene Dateiserver bei einer Ausführungsform die Arbeitsspeicherabzug-Prozedur
auf der Arbeitsspeicherabzugplatte einleitet, setzt er ein bestimmtes
Arbeitsspeicherabzugsattribut in einen bekannten Kopfbereich in
einer bekannten "Arbeitsspeicher"-Zone auf der Arbeitsspeicherabzugplatte.
Dieses Attribut zeigt dem Partnerdateiserver an, dass der ausgefallene Dateiserver
einen Arbeitsspeicherabzug auf die Ersatzplatte schreibt, und dass
der Partnerdateiserver keine Reservierung auf diese Ersatzplatte
setzen soll.
-
Der
ausgefallene Server teilt den Ausfall auch einem Partnerdateiserver
zur Übernahme
mit. Als Teil des Übernahmeprozesses
tastet der Partnerdateiserver alle Platten des ausgefallenen Dateiservers
ab, wobei er die Attributposition auf der Arbeitsspeicherzone jeder
Platte untersucht. Bei der Ausführung
der Übernahme
identifiziert der Partnerdateiserver die als die Arbeitsspeicherabzugplatte
markierte Platte und umgeht sie, wenn er die Inhaberschaft geltend
macht, indem er SCSI-Reservierungen setzt. Sobald die Reservierung
auf der Platte gesetzt ist, kann der ausgefallene Dateiserver nicht mehr
auf diese Platten schreiben.
-
Während der
Partner die Platten des ausgefallenen Servers übernimmt, schreibt der ausgefallene
Dateiserver weiterhin den Arbeitsspeicherabzug auf die Arbeitsspeicherabzugplatte,
wobei er die wesentlich größere Dateisystem-Datenzone
verwendet statt die wesentlich kleinere zugeordnete Arbeitsspeicherzone.
Sobald der Arbeitsspeicherabzug vollständig ist, wird das Attribut
der Arbeitsspeicherabzugplatte geändert, um dem Übernahme-Partnerdateiserver
anzuzeigen, dass der ausgefallene Dateiserver den Arbeitsspeicherabzug
vollendet hat. Nach dem Abtasten auf das Attribut hin ist dem Übernahme-Partnerdateiserver
nun gestattet, die Inhaberschaft der Arbeitsspeicherabzugplatte
herzustellen. Der Partner erzeugt zu einer geeigneten Zeit eine
Diagnostik-Arbeitsspeicherabzugdatei.
Die Arbeitsspeicherabzugdatei wird zur späteren Fehlerbehebung im Hauptinhaltsverzeichnis-Dateisystem
des ausgefallenen Dateiservers (in den Platten des ausgefallenen
Dateiservers, die er jetzt innehat) gespeichert. Die Arbeitsspeicherabzugdatei
wird für
nachfolgenden Zugriff durch ein geeignetes Dienstprogramm typischerweise
als eine Datei im Hauptinhaltsverzeichnis-Datenträger gespeichert.
-
Indem
dem Partnerdateiserver gestattet wird, die Übernahme einzuleiten, während der
ausgefallene Dateiserver separat und gleichzeitig seinen Arbeitsspeicherabzug
auf eine einzige Arbeitsspeicherabzugplatte durchführt, wird
die Übernahmeverzögerung verringert,
wodurch die Unterbrechung des Zugriffs des Clients auf die Platten
minimiert wird.
-
Kurzbeschreibung der Zeichnungen
-
Die
obigen und weitere Vorteile der Erfindung erschließen sich
besser unter Bezugnahme auf die folgende Beschreibung in Verbindung
mit den beiliegenden Zeichnungen, in denen identische Bezugszeichen
gleiche oder funktional ähnliche
Elemente kennzeichnen:
-
1 ist
ein Blockdiagramm zweier Dateiserver, die in einer Cluster-Konfiguration
miteinander verbunden sind, die einem Partnerdateiserver die Übernahme
eines ausgefallenen Dateiservers ermöglicht;
-
2 ist
ein Blockdiagramm eines Dateiservers, der mit der vorliegenden Erfindung
verwendet werden kann;
-
3 ist
ein schematisches Blockdiagramm eines Speicherbetriebssystems zur
Verwendung mit dem beispielhaften Dateiserver von 2 gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
4 ist
ein Diagramm der Einteilung von Zonen einer Speicherplatte, wie
sie in einer Ausführungsform
der vorliegenden Erfindung verwendet wird; und
-
5 ist
ein Flussdiagramm der Abfolge der Schritte, die eine Übernahme
eines ausgefallenen Dateiservers durch einen Cluster-Partner parallel
zu einem Arbeitsspeicherabzug aufweisen.
-
Detaillierte Beschreibung
einer beispielhaften Ausführungsform
-
Die
Lehre dieser Erfindung kann an verschiedene Speichersystem-Architekturen
wie z. B. eine netzwerkgebundene Speicherumgebung, ein speichergebundenes
Netzwerk und eine direkt an einen Client/Host-Computer angebundene
Plattenbaugruppe angepasst werden, ist aber nicht darauf beschränkt. Der
Betriff "Speichersystem" ist deshalb im weiten
Sinne als solche Anordnungen beinhaltend zu verstehen. Es versteht
sind jedoch, dass die Lehren dieser Erfindung auf beliebige Serversysteme
angewendet werden können.
Es wird ausdrücklich
ins Auge gefasst, dass die verschiedenen hierein beschriebenen Prozesse,
Architekturen und Verfahren in Hardware, Firmware oder Software,
die aus einem computerlesbaren Medium einschließlich Programmanweisungen,
die eine Reihe von Schritten ausführen, besteht, implementiert
werden kann.
-
Geclusterte Dateiserver
-
1 ist
ein Blockdiagramm zweier Dateiserver mit der Bezeichnung Dateiserver
A 150 und Dateiserver B 150, die als zwei Knoten
in einem Dateiserver-Cluster 100 verbunden sind wie dargestellt. Zum
Zwecke dieser Beschreibung sollen die Dateiserver A und B hinsichtlich
Funktionen und Aufbau als ähnlich
betrachtet werden. Sie können
jedoch hinsichtlich Funktionen und Aufbau gemäß alternativen Ausführungsformen
verschieden sein, sofern sie geclustert werden können und jeder eine Übernahme-/Failover-Fähigkeit
bezüglich
des anderen hat. Obwohl nur zwei Dateiserver und zwei zugeordnete Plattengestelle
(160) in der Cluster-Konfiguration von 1 gezeigt
sind, versteht es sich jedoch auch, dass eine größere Anzahl Dateiserver für Failover geclustert
werden können,
und dass typischerweise eine größere Anzahl
zugeordneter Plattengestelle verwendet wird. Ferner können jedem
Dateiserver mehrere Datenträger
zugeordnet sein und jeder Datenträger kann eine oder mehrere
RAID-Verbunde umfassen. In dieser Beschreibung werden die Begriffe "Dateiserver" und "Speichersystem" synonym verwendet.
-
Gemäß 1 sind
die Dateiserver A und B (150) vorzugsweise Dateiserver,
die so konfiguriert sind, dass sie durch ein Netzwerk 120 verbundenen Clients 110 jeweils
Dateidienste bezüglich
der Organisation von Informationen auf Speichergeräten wie z.
B. Festplatten D1-Dn in Plattengestellen A und B 160 bereitstellen
Ein Client 110 kann ein Universalcomputer wie z. B. ein
Personal Computer (PC) oder eine Arbeitsstation sein, der bzw. die
zur Ausführung von
Anwendungen über
ein Dateisystemprotokolle enthaltendes Betriebssystem konfiguriert
ist. Außerdem
interagiert jeder Client 110 mit einem Dateiserver 150 gemäß einem
Client-/Server-Informationsliefermodell. Das heißt, ein Client 110 fordert
die Dienste eines Dateiservers 150 z. B. zum Abrufen von
Dateien oder anderen Datenbehältern
(z. B. Blöcken) an.
Bei diesem Beispiel greifen Clients 110 über eine Netzwerkwolke 120,
einen Switch 135 und Kommunikationsverbindungen 130,
die in Ansammlungen oder Bündeln 140 angeordnet
sein können,
auf Dateiserver 150 im Cluster zu.
-
Obwohl
dies nicht dargestellt ist, kann der Cluster 100 über ein
Netzwerk (z. B. eine Fibre Channel-Schleife) mit anderen Clustern
oder einzelnen Dateiservern/Dateiservern verbunden sein, um ein vernetztes
Speichersystem (wie z. B. ein SAN) zu bilden. Zur Implementierung
einer solchen vernetzten Speicheranordnung sind jedem Dateiserver
und/oder Plattengestell geeignete Schnittstellen und Interconnects
(nicht dargestellt) bereitgestellt.
-
Clients
kommunizieren mit Dateiservern typischerweise über ein Netzwerk, wobei ein
bekanntes Dateisystemprotokoll verwendet wird, das mit dem auf den
Clients laufenden Betriebssystem im Einklang steht. Das Network
File System (NFS) ist ein Dateisystemprotokoll zum Zugriff auf Dateiservern
in einer UNIX-Umgebung. Das Common Internet File System (CIFS) ist
ein verbindungsorientiertes Protokoll eines offenen Standards, das
fernen Dateizugriff über
ein Netzwerk bietet und mit Dateiservern verwendet wird, um PCs
in einer Windows-Umgebung Dienst bereitzustellen. Dementsprechend
wird CIFS häufig
in Verbindung mit Servern wie z. B. Dateiservern eingesetzt, die
auf sie zugreifende PC-Clients haben.
-
In
den folgenden Absätzen
bezieht sich die Beschreibung oft auf den Dateiserver A oder B im Singular,
es ist jedoch zu bedenken, dass die Beschreibung auch für den anderen
Dateiserver gilt.
-
Als
Teil des Cluster-Betriebs ist jedem der Dateiserver A und B (150)
in erster Linie ein Satz Platten zugeordnet. Die Dateiserver werden
durch ein Speicherbetriebssystem gesteuert, das vorzugsweise das
bei Network Appliance, Inc., erhältliche Speicherbetriebssystem
Data ONTAP sein kann, das zur Bereitstellung von Dateiserverdiensten
optimiert ist. Beide Dateiserver A und B haben Zugriff auf beide
Plattengestelle A und B, obwohl im Beispiel Dateiserver A das Plattengestell
A und Dateiserver B das Plattengestell B "innehat". Der Dateiserver A greift über eine
Schleife A 157 auf sein Plattengestell A und über eine
Schleife B 156 auf das Plattengestell B zu. Ähnlich ist
dem Dateiserver B in erster Linie ein Plattengestell B zugeordnet,
auf das er über
seine Schleife A zugreift, und er greift über seine Schleife B auf das
Plattengestell A zu. Dieser gemeinsame Zugriff ist für einen
Partnerdateiserver zum Zugriff auf das Plattengestell eines ausgefallenen
Dateiservers erforderlich, um den Clients des ausgefallenen Dateiservers
nach einer Übernahme
weiterhin Dateidienste bereitzustellen.
-
Jeder
Dateiserver in diesem Beispiel implementiert auch einen nicht flüchtigen
Direktzugriffsspeicher (NVRAM) 151, der einen fehlertoleranten Betrieb
im Falle eines Ausfalls des Dateiservers sicherstellt. Insbesondere
speichert der NVRAM eine bestimmte Menge Daten und Informationen
bezüglich
des Arbeitsspeichers des Dateiservers und behält diese Daten und Informationen,
bis sie zu einem vorbestimmten zeitlichen "Konsistenzpunkt" dem Langzeitspeicher übergeben
werden.
-
Jeder
beispielhafte Dateiserver enthält
auch eine Failover-Überwacherfunktion.
Diese erfasst einen Ausfall, eine Panik oder ein anderes Ereignis, das
eine Übernahme
eines ausfallenden Dateiservers durch einen Cluster-Partner erforderlich
machen kann. Bei einer solchen Gelegenheit beginnt der Überwacher
die Übernahmeroutine,
wie weiter unten beschrieben wird.
-
Die Übernahme
eines Dateiservers durch einen Cluster-Partner nutzt eine Kommunikationsverbindung,
die zwischen den Dateiservern A und B (150) eingerichtet
ist und mit einer Peer-to-Peer-(Partner-zu-Partner-)Kapazität über eine
oder mehrere Kommunikationsverbindungen wie z. B. einen Cluster
Interconnect (Cluster-Verbindung) 153 arbeitet. Der Cluster-Interconnect 153 kann
jedes Kommunikationsmedium und -protokoll einschließlich eines
Fibre Channel und einer Server Net Failover-Verbindung, die beide
in der Branche allgemein bekannt sind, nutzen. <BR> <BR> <P> Es ist
zu beachten, dass "Fibre
Channel" im Rahmen
der vorliegenden Beschreibung der allgemeine Name eines integrierten
Satzes Standards ist, der für
Geräte verwendet
wird, um Daten zwischen allen Arten von Hardware in der Computer-Branche
schnell zu übertragen.
Die Dateiserver A und B haben jeweils eine herkömmliche graphische Benutzeroberfläche (Graphical
User Interface, GUI) oder Befehlszeile (Command Line Interface,
CLI) 152, die einem System-Operator (Bediener) eine manuelle Oberfläche zum
Dateiserver-Cluster 100 bereitstellen.
-
2 ist
ein Blockdiagramm 200 eines beispielhaften Dateiservers
(A oder B) 150, aufweisend einen Prozessor 202,
Cluster-Interconnect 153, NVRAM 151, einen Speicher 204,
einen Speicheradapter 206 und mindestens einen Netzwerkadapter 208, die
durch einen Systembus 210 alle miteinander verbunden sind.
Der Bus 210 kann ein herkömmlicher PCI-(Peripheral Computer
Interconnect-)Bus oder ein anderer geeigneter interner Busstandard
sein. Bei dieser Ausführungsform
ist der Speicheradapter 206 über eine Fibre Channel-Verbindung
mit den Platten 216 (D1-DN) verbunden. Der Dateiserver 150 enthält auch
das im Speicher 204 gespeicherte bevorzugte Speicherbetriebssystem 230,
das ein Dateisystem implementiert, um gespeicherte Informationen
als eine hierarchische Struktur von Verzeichnissen und Dateien logisch
zu organisieren. Platten im zugeordneten Datenträger sind typischerweise als ein
oder mehrere RAID-Verbunde (Redundant Arrays of Inexpensive Disks)
organisiert, um auf eine im Stand der Technik bekannte Weise vor
einem durch einen Plattenausfall verursachten Datenverlust zu schützen. RAID-Verbunde
können
auch die Datenverfügbarkeit
verbessern, indem sie einen Dateiserver befähigen, den Betrieb fortzusetzen,
selbst wenn Platten ausfallen. Ein RAID-Verbund kann entweder vollständig in
einem einzigen Gestell 160 (z. B. Gestell A oder B, wie
gezeigt) eingeschlossen sein oder sich über mehrere Hardware-Komponenten
einschließlich
Gestelle erstrecken.
-
Der
Speicheradapter 206 arbeitet mit dem Speicherbetriebssystem 230 zusammen,
das auf dem Prozessor 202 ausgeführt wird, um auf von einem
Client 110 angeforderte gespei cherte Informationen zuzugreifen,
wobei die Informationen auf Festplatten 216 (D1-Dn) gespeichert
sind. Der Speicheradapter 206 enthält eine Eingabe-/Ausgabe-(E/A-)Schnittstellenschaltung,
die über
eine E/A-Interconnect-Anordnung wie z. B. eine herkömmliche
serielle Fibre Channel-Hochleistungs-Verbindungstopologie (nicht
dargestellt) mit den Platten 216 koppelt. Der Speicheradapter 206 ruft
die gespeicherten Informationen ab und sie werden erforderlichenfalls
durch den Prozessor 202 (oder Speicheradapter 206 selbst)
verarbeitet, bevor sie über
den Systembus 210 zu einem Netzwerkadapter 208 weitergeleitet
werden, wo die Informationen zu Paketen formatiert und über ein
Netzwerk (nicht dargestellt) an einen Client 110 (in 2 nicht dargestell)
zurückgegeben
werden, der die Informationen anforderte.
-
Wie
weiter unten erläutert
wird, können
eine oder mehrere der Platten auf dem beispielhaften Plattengestell 160 als "Ersatz"-Platten 250 bestimmt werden.
Sie wird (werden) im System als Ersatz gekennzeichnet und steht
(stehen) zur Verwendung bereit, wenn sie benötigt wird (werden).
-
Jeder
Netzwerkadapter in 2 kann eine Netzwerk-Schnittstellenkarte
(Network Interface Card, NIC) 208 aufweisen, die über die
erforderliche mechanische, elektrische und Signalisierungsschaltung
verfügt,
um einen Dateiserver über
die in 1 gezeigten physischen Kommunikationsverbindungen 130 mit
einem Netzwerkknoten-Switch (nicht dargestellt) zu verbinden.
-
Speicherbetriebssystem
-
3 ist
ein Blockdiagramm eines beispielhaften Speicherbetriebssystems 300 zur
Verwendung gemäß einer
veranschaulichenden Ausführungsform
dieser Erfindung. Das Speicherbetriebssystem 300 implementiert
die spezialisierten Dateiserveroperationen des Speicherbetriebssystems Data
ONTAPTM auf jedem Dateiserver. Das Speicherbetriebssystem weist
eine Reihe Software-<BR> <BR> Schichte,
n einschließlich
einer Medienzugriffsschicht 302 von Netzwerktreibern (z.
B. ein Ethernet-NIC-Treiber) auf, die mit Netzwerkadaptern 208 in 2 funktionieren.
Das Speicherbetriebssystem 300 beinhaltet ferner Netzwerkprotokollschichten
wie z. B. eine IP-Schicht 304 und ihre unterstützenden
Transportmechanismen, eine Transport Control Protocol-(TCP-)Schicht 306 und
eine User Datagram Protocol-(UDP-)Schicht 308. Eine Dateisystem-Protokollschicht
beinhaltet Unterstützung
für ein Common
Interface File System-(CIFS-)Protokoll 310, ein Network
File System-(NFS-)Protokoll 312 und ein Hypertext Transfer
Protocol-(HTTP-)Protokoll 314.
-
Außerdem beinhaltet
das Speicherbetriebssystem eine RAID-(logische Datenträgermanagement-)Schicht 316,
die ein Plattenspeicherprotokoll wie z. B. das RAID-Protokoll implementiert,
und eine Plattentreiberschicht 318, die ein Plattenzugriffsprotokoll
wie z. B. ein Small Computer System Interface-(SCSI-)Protokoll implementiert.
In der Plattenspeicherschicht 316 ist eine Platteninhaberschaftschicht 320 enthalten,
die die Inhaberschaft der Platten bezüglich ihrer zugehörigen Dateiserver
verwaltet. Eine Plattenmigrationsschicht 322 ist eine Untergruppe
der Platteninhaberschaftschicht 320. Im Falle einer Übernahme
nimmt der Cluster-Partner des Dateiservers die Inhaberschaft des
Speichers logisch an. Um dies zu bewerkstelligen, setzt eine Failover-Überwacherschicht
(340, unten beschrieben) seine Reservierung auf die Platten,
die gerade übernommen
werden.
-
Das
Speicherbetriebssystem beinhaltet ebenfalls die Failover-Überwacherschicht
oder -funktion 340, die die Failover-Erkennung und Initiierung der Übernahme
durch den Cluster-Partner regelt. Eine Cluster Interconnect-Funktion 342 ist
ebenfalls als Teil des Speicherstapels gezeigt. Eine Arbeitsspeicherabzugfunktion 350 interagiert
mit der RAID-Schicht 316 und
der Plattentreiberschicht 318, um die Übertragung des Arbeitsspeicherabzugs
gemäß den Lehren
dieser Erfindung zu erleichtern wie weiter unten beschrieben.
-
Eine
Dateisystemschicht 324, die die Speicherung und den Abruf
von Dateisystemdaten steuert, überbrückt die
Platten-Softwareschichten mit den Netzwerk- und Dateisystemprotokollschichten.
Diese beinhaltet einen Countdown-Timer (Rückwärtszähler) 336 (dessen
Funktion unten detaillierter beschrieben ist), der verwendet wird,
um eine Zeitspanne zeitlich festzulegen, in der ein ausgefallener
Dateiserver seinen Arbeitsspeicherabzug schreiben muss. Um sicherzustellen,
dass der Übernahme-Partnerdateiserver
schließlich
die vollständige Kontrolle über alle
Platten hat, selbst im Falle, dass ein Arbeitsspeicherabzugversuch
auf unbestimmte Zeit einfriert, ist eine Frist (bei einer Ausführungsform ungefähr eine
bis zwei Minuten) für
den Abschluss des Arbeitsspeicherabzugs festgesetzt. Wird der Arbeitsspeicherabzug
nicht innerhalb dieser Frist abgeschlossen, versucht der Übernahmepartner,
den Arbeitsspeicherabzug abzubrechen und dann die Kontrolle über die
Arbeitsspeicherabzugplatte zu übernehmen.
-
Es
ist zu beachten, dass bei einer alternativen Ausführungsform
der Dateiserver als ein Multiprotokoll-Speichergerät implementiert
sein kann und das residente Speicherbetriebssystem als ein Virtualisierungssystem
mit Virtualisierungsmodulen implementiert sein kann, die als ein
virtuelles Platten-("vdisk"-)Modul und ein SCSI-Zielmodul
(nicht gezeigt) verkörpert
sind. Das vdisk-Modul ist als Schicht auf dem Dateisystem
324 ausgelegt,
um den Zugriff durch administrative Schnittstellen wie z. B. eine
optimierte Benutzeroberfläche
(User Interface, UI) als Reaktion auf einen Systemadministrator,
der Befeh le an das Multiprotokoll-Speichergerät ausgibt, zu ermöglichen.
Im Wesentlichen handhabt das vdisk-Modul SAN-Deployments (Bereitstellungen)
u. A. durch Implementierung eines umfassenden Satzes vdisk-(lun-)Befehle,
die von einem Systemadministrator durch die UI ausgegeben werden.
Diese vdisk-Befehle werden in primitive Dateisystemoperationen ("Primitive") umgewandelt, die
mit dem Dateisystem
324 und dem SCSI-Zielmodul interagieren, um
die vdisks zu implementieren. Im Allgemeinen implementiert die Dateisystemschicht
324 das
Dateisystem, das eine blockbasierte Plattendateiformat-Darstellung
hat. Das Dateisystem generiert Operationen zum Laden/Abrufen der
angeforderten Daten von Datenträgern,
falls sie nicht resident "im
Arbeitsspeicher",
d. h. im Speicher des Dateiservers sind. Befinden sich die Informationen
nicht im Speicher, indiziert die Dateisystemschicht mittels der
Inode-Nummer in die Inode-Datei hinein, um auf einen entsprechenden
Eintrag zuzugreifen und eine logische Blocknummer abzurufen. Die
Dateisystemschicht übergibt
dann die logische Datenträger-Blocknummer
dem Plattenspeicher/der RAID-Schicht, welcher bzw. welche die logische Nummer
auf eine Plattenblocknummer abbildet und Letztere an einen entsprechenden
Treiber einer Plattentreiberschicht sendet. Der Plattentreiber greift
auf die Plattenblocknummer von Datenträgern zu und lädt die angeforderten
Daten zur Verarbeitung durch den Dateiserver in den Speicher. Nach
Beendigung der Anforderung geben der Dateiserver und das Speicherbetriebssystem über das
Netzwerk eine Antwort, z. B. ein durch die CIFS-Spezifikation definiertes
herkömmliches
Bestätigungspaket,
an den Client zurück.
Es ist zu beachten, dass der Software-"Weg" durch
die oben beschriebenen Speicherbetriebssystemschichten, der erforderlich
ist, um den Datenspeicherzugriff für die am Dateiserver empfangene
Client-Anforderung
auszuführen,
letzten Endes in Hardware, Software oder einer Kombination von Hardware
und Software (z. B. Firmware) implementiert sein kann. Dieses Multiprotokoll-Speichergerät-Anordnung
ist in der
US 7,107,385 mit
dem Titel STORAGE VIRTUALIZATION BY LAYERING VIRTUAL DISK OBJECTS
ON A FILE SYSTEM detaillierter beschrieben.
-
Bei
einer weiteren alternativen Ausführungsform
der Erfindung können
einige durch das Speicherbetriebssystem ausgeführte Funktionen als Logikschaltung
implementiert sein, die in einem Field Programmable Gate Array (FPGA,
vom Anwender programmierbarer Logikbaustein) oder einer anwendungsspezifischen
integrierten Schaltung (ASIC) verkörpert ist. Diese Art von Hardware-Implementierungen
erhöht
die Leistung des Dateidienstes, der als Reaktion auf eine von einem
Client 110 ausgegebene Dateisystemanforderung durch einen
Dateiserver bereitgestellt wird. Außerdem können bei einer anderen alternativen
Ausführungsform
der Erfindung die Verarbeitungselemente von Netzwerk- und Speicheradaptern
so konfiguriert sein, dass sie einige oder alle der Paketverarbeitungs- bzw. Speicherzugriffsoperationen
vom Prozessor abladen, um dadurch die Leistung des durch den Dateiserver
bereitgestellten Dateidienstes zu erhöhen.
-
Plattenzonen
-
Jede
Platte enthält
eine Zone für
Kopfinformationen in einer standardisierten Sektorposition, die dem
Speicherbetriebssystem bekannt ist. Verschiedene Einträge bezüglich der
Platte werden an festen Offsets (Versätzen) innerhalb dieser bekannten
Zone bereitgestellt. Wie in 4 dargestellt
ist, ist eine beispielhafte Platte (D1-Dn) gemäß ihrer Speicherzonen eingeteilt.
Die RAID-Schicht implementiert diese Einteilung 400 im
Allgemeinen als ein Platten-Inhaltsverzeichnis (Platten-TOC).
-
Die
Bootblock-Zone 402 ist z. B. im ersten 1 KB-Block enthalten
und zum Speichern von Informationen, wie eine Kernzone 404 auf
dieser Platte verwendet werden soll, z. B. ob in der Kernzone ein
gültiger
Kern vorhanden ist, reserviert. Eine Zone 403 enthält das Platten-TOC
(Inhaltsverzeichnis). Das TOC befindet sich an einem festen Offset
bezüglich des
Anfangs der Platte, so dass es leicht lokalisiert werden kann. Innerhalb
der TOC-Struktur
ist die Position der Arbeitsspeicherabzugdaten vorgesehen, die Informationen über die
Existenz eines Arbeitsspeicherabzugs innerhalb der Platte enthalten.
Ferner sind in Plattenetikettenzonen (420 und 421,
weiter unten beschrieben) Informationen gespeichert, die angeben,
ob die Platte eine Ersatzplatte ist oder für normalen Dateidienst verwendet
wird. Ist Letzteres der Fall (normaler Dateidienst), existieren
zusätzliche
Informationen, die den RAID-Verbund, Plex, Spiegel und Datenträger angeben,
die der Platte zugeordnet sind. Die TOC-Zone 403 kann auch
wesentliche Informationen über
die Platte enthalten, die von den bestimmten Versionen des Speicherbetriebssystems
benötigt
werden, einschließlich
eines Kennzeichens (flag), das anzeigt, ob die Platte für normale Dateidienste
verwendet wird, und die physische Größe der Platte angibt.
-
Die
Kernzone 404 besetzt typischerweise den nächsten Bereich
auf der Platte, und in einem Beispiel besetzt sie ca. 20 MB Speicher.
Diese Kernzone stellt den Bereich zum Speichern entsprechender Abschnitte
des Speicherbetriebssystemkerns bereit. Gemäß dieser Ausführungsform
ist ein Failover-Sektor bereitgestellt und unten beschrieben.
-
Die
Platte enthält
auch Platteninhaberschaftszonen 406, die sich über drei
Blöcke
erstrecken und Informationen bezüglich
der Platteninhaberschaft nach Datenträgern und Dateiservern und (eine
veranschaulichende Ausführungsform)
nach jeweiligen Speichernetzwerken (Storage Area Networks, SANs)
liefern.
-
Den
Inhaberschaftszonen 406 folgt eine Dateisystemzone 408,
die von der Dateisystemschicht zum Speichern von Dateisystemdaten
(z. B. Daten bezüglich
Dateien und Verzeichnissen) verwendet wird. Die Dateisystemzone
erstreckt sich beinahe bis zum physischen Ende der verwendbaren Speichersektoren
der Platte.
-
Es
ist zu beachten, dass sich eine Bootblockzone, die TOC-Zone 403,
die Kernzone 404, die Inhaberschaftszone 406 und
die Dateisystemzone 408 immer an einem festen Offset bezüglich des
physischen Anfangs der Platte befinden, um leicht und zuverlässig lokalisierbar
zu sein.
-
Der
Dateisystemzone 408 folgt eine Arbeitsspeicherzone 410.
Diese Zone ist aus überschüssigem freiem
Platz am physischen Ende der Platte gebildet. Ihre Größe ist gemäß der vorliegenden
Ausführungsform
wegen des Vorhandenseins beispielhafter Zonen, die unten zu beschreiben
sind, beschränkt.
Die Arbeitsspeicherzone 410 enthält einen Kopf 412,
der eine magische Zahl 413 hat. Die magische Zahl ist in
den ersten paar Bytes des Kopfs gespeichert, wo sie vom ausgefallenen
und dem verwendeten Übernahmepartner-Dateiserver leicht
lokalisiert und abgetastet wird. Diese magische Zahl ist im Wesentlichen
ein Arbeitsspeicherabzugsattribut, das zusammen mit anderen Statusdaten
angibt, ob ein Arbeitsspeicherabzug vorhanden ist oder nicht. Das
Attribut könnte
z. B. (siehe auch unten) die Werte "kein Arbeitsspeicherabzug", "Arbeitsspeicherabzug im
Gange" oder "Arbeitsspeicherabzug
vollständig" annehmen. Durch
Abtasten dieses Attributs kann daher ein Partnerdateiserver bestimmen,
ob er eine Übernahme
einer bestimmen Platte einleiten kann, indem er ihren Arbeitsspeicherabzugstatus
prüft und dann
Reservierungen auf inaktive Platten setzt.
-
Eine
verbleibende Zone 414 der Arbeitsspeicherzone 410 wird
zum Speichern eines Abschnitts des Arbeitsspeicherabzugs gemäß der vorherigen Implementierung
verwendet. Diese Zone 414 ist jedoch zum Speichern des
gesamten Arbeitsspeicherabzugs größenmäßig ungenügend. Eine größere Zone
ist bereitgestellt, wie unten beschrieben, dennoch verbleiben der
Kopf 412 und die Informationen der magischen Zahl am Platz,
damit sie durch das Betriebssystem leicht lokalisiert werden können.
-
Bei
der beispielhaften Ausführungsform
sind nach der Arbeitsspeicherzone 410 zusätzliche
Zonen bereitgestellt. Wie oben allgemein erwähnt, sind die Zone (420)
für das
Plattenetikett 1 und die Zone (421) für das Etikett 2 bereitgestellt.
Um die Möglichkeit
zu verringern, dass beide Etiketten durch ein Plattenkorrumpierungsereignis
zerstört
werden, sind die Etikettzonen (420 und 421) beabstandet
angeordnet. In diesem Beispiel ist nach der Zone (420)
für Etikett 1 eine
1 MB große
Zone 422 zur Verwendung durch das RAID-System reserviert.
Außerdem
ist nach der RAID-Zone 422 eine Failover-Überwacherzone 424 zur
Verwendung in Verbindung mit den verschiedenen Funktionen der Failover-Überwacher
des Dateiservers und seiner Cluster-Partner bereitgestellt. Im Falle
eines Paars geclusterter Dateiserver wird in dieser Zone 424 für jeden
Dateiserver 1 MB bereitgestellt (dadurch insgesamt 2 MB).
Ferner ist nach der Failover-Überwacherzone 424 eine
beispielhafte SAN-Zone 426 bereitgestellt. Diese Zone wird
im Allgemeinen in Zusammenhang mit SAN-Funktionen verwendet und
ist hierin nicht weiter beschrieben.
-
Es
ist zu beachten, dass die Zonen am Ende der Platte, die der Arbeitsspeicherzone 410 folgen, auch
an einem festen Offset bezüglich
des physischen Endes der Platte angeordnet sind. Obwohl im Allgemeinen
ein bestimmtes Layout für
Plattenzonen dargestellt und beschrieben ist, ist dies nur ein einziges
veranschaulichendes Beispiel, und es können verschiedene Layouts mit
verschiedenen Zonenarten bereitgestellt sein. Einige Zonen können sich
an festen Offsets befinden, wogegen andere variabel sind und (z.
B.) Zeiger zur Datenindizierung verwenden. Außerdem können die Art und der Informationsgehalt der
auf der Platte bereitgestellten Zonen variiert werden. Bei alternativen
Ausführungsformen
können spezialisierte/diskrete
Zonen für
spezielle Informationsarten bereitgestellt sein. Ähnlich können bestimmte
Platteninformationen in anderen Zonen enthalten sein als in denjenigen,
in denen solche Informationen in diesem Beispiel enthalten sind.
Im Allgemeinen sollte die Platte eine Einteilung von Zonen bereitstellen,
die (unter anderen Zielen) zu einer vorhersagbaren Identifizierung
von Inhalten, der Existenz von Arbeitsspeicherabzugdaten und des
Status solcher Daten führt.
-
Arbeitsspeicherabzugplatte
-
Die
beispielhafte Ausführungsform
sieht insbesondere vor, dass eine Ersatzplatte (oder eine andere
kostengünstige
Spezialplatte wie z. B. eine herkömmliche ATA-/IDE-Platte) zum
Speichern des gesamten Inhalts des Arbeitsspeicherabzugs verwendet
wird. Indem der Arbeitsspeicherabzug einer einzelnen Ersatzplatte
oder Spezialplatte zugeordnet wird, können alle anderen Platten,
die der ausgefallene Dateiserver (aktive Dateidienstplatten und
andere Ersatzplatten) innehat, am Übernahmeprozess teilnehmen,
während
der Arbeitsspeicherabzug parallel (z. B. gleichzeitig) vor sich
geht. Die Ersatzplatte ist im Allgemeinen gemäß 4 eingeteilt,
wie beschrieben. Die Arbeitsspeicherzone 410 wird jedoch nunmehr
hauptsächlich
zum Speichern der magischen Zahl 413 bezüglich des
Arbeitsspeicherstatus und der Kopfinformationen 412, die
in die Dateisystemzone 408 zeigen, verwendet. Die Dateisystemzone
auf der Ersatzplatte ist nunmehr die angegebene Speicherzone für den Arbeitsspeicherabzug.
Folglich enthält
dieser Bereich ausreichend Speicher für einen großen Arbeitsspeicherabzug auf
einer einzigen Platte. Auf diese Weise kann die Ersatzplatte oder andere
angegebenen Platte zum Empfangen des Arbeitsspeicherabzugs eingesetzt
werden, während andere
Platten an der Übernahme
teilnehmen, wodurch beträchtliche
Zeit bei der Vollendung der Übernahme
eingespart wird. Tatsächlich
kann der Arbeitsspeicherabzug gemäß dem unten beschriebenen Arbeitsspeicherabzugverfahren
auf dem ausgefallenen Dateiserver weiterhin mit seinem eigenen Tempo vonstatten
gehen, nachdem die Übernahme
aller anderen Platten durch den Cluster-Partner abgeschlossen wurde.
-
Arbeitsspeicherabzugverfahren
-
5 ist
ein beispielhaftes Flussdiagramm eines Verfahrens 500,
welchem sich zwei Dateiserver (A und B) in einer Cluster-Umgebung
unterziehen, um für
die Übernahme
parallel zu einem Arbeitsspeicherabzugprozess zu sorgen. Dem Fachmann ist
klar, dass einige Schritte aus der Reihenfolge genommen werden können, und
dass andere Zwischenschritte, die hierin nicht beschrieben sind,
ausgeführt
werden können,
ohne vom Geist der Erfindung abzuweichen.
-
In
den Schritten
502 und
503 arbeitet jeder der zwei
Dateiserver (A bzw. B) normal (z. B. normaler Dateidienst nicht
in einem Panikzustand) und überwacht
seinen eigenen Betriebsstatus, um ein Problem in seinem Betrieb
zu erkennen. Sobald der Dateiserver A (in diesem Beispiel der "ausgefallene Dateiserver") einen Ausfall oder
eine Panik erkennt, auszufallen beginnt (Schritt
504) und
bestätigt,
dass der Partner B für
ihn übernehmen
kann, lokalisiert er eine einzelne Platte (entweder eine angegebene,
typischerweise kostengünstige
Platte oder eine Ersatzplatte), um seinen gesamten Speicher als
einen Arbeitsspeicherabzug auf sie zu schreiben. Eine Technik zum
Lokalisieren und Auswählen
einer Ersatzplatte, die im Falle eines Arbeitsspeicherabzugs verwendet
werden soll, ist in der
US 2005/0177764 A1 mit dem Titel SYSTEM AND
METHOD OF SELECTION AND COMMUNICATION OF A DISK FOR STORAGE OF A
COREDUMP detailliert beschrieben. Hinsichtlich der Beschreibung
eines beispielhaften Auswahlverfahrens wird der Leser insbesondere auf
6 dieser Referenz verwiesen. Für die Zwecke
dieser Beschreibung kann jede annehmbare Platte gewählt werden,
die nicht anderweitig bei regulären
Dateidiensten verwendet wird, d. h. eine Platte, die erforderlich
wäre, um
den vollständigen
Dateidienst vom ausgefallenen Dateiserver ordnungsgemäß an den
Partnerdateiserver zu übergeben.
Ein solcher "Dateidienst" beinhaltet im Allgemeinen
die Handhabung und Speicherung von Daten, die mit Clients verbunden
sind oder von ihnen angefordert werden oder die anderweitig zum
Betrieb des Netzwerkes (z. B. SAN), mit dem der Cluster verbunden
ist, benötigt
werden. Deshalb ist eine dem ausgefallenen Dateiser ver zugeordnete
Ersatzplatte eine gute Wahl für
die Arbeitsspeicherabzugplatte, da sie nicht aktuell am Dateidienst
oder an Netzwerkoperationen beteiligt ist.
-
In
Schritt 506 teilt der Dateiserver A über den Cluster-Interconnect
dem Dateiserver B mit, dass er einen Arbeitsspeicherabzug durchführt, und
der Dateiserver A ändert
eine angegebene Arbeitsspeicherabzug-Attributzone (in 4 die
magische Zahl 413) auf der angegebenen Arbeitsspeicherabzugplatte, um
anzuzeigen, dass die einzelne Ersatzplatte (oder anderweitig angegebenen
Platte) den Arbeitsspeicherabzug erhält. In Schritt 508 schreibt
der Dateiserver A seinen Speicher in die angegebene Dateisystemzone
der gewählten
Arbeitsspeicherabzugplatte. Gleichzeitig mit (parallel zu) dem Schreiben
des Speichers des ausgefallenen Dateiservers A nach der gewählten Platte
setzt der Dateiserver B ("Partnerdateiserver") in Schritt 509 eine
Aktivierungsintervall für
den Dateiserver A fest. Dieses ist eine Bezugsgröße, nach deren Zeit die Arbeitsspeicherabzugplatte
ungeachtet der Fertigstellung des Arbeitsspeicherabzugs reserviert
wird. Der Dateiserver B identifiziert (in Schritt 509)
die Arbeitsspeicherabzugplatte des Dateiservers A und setzt eine
Reservierung (z. B. eine SCSI-Reservierung) auf alle Platten des
Dateiservers A mit Ausnahme der Arbeitsspeicherabzugplatte. Die
Identifizierung der Arbeitsspeicherabzugplatte kann (in einer beispielhaften
Ausführungsform)
mittels des Verfahrens erfolgen, das in 7 im
oben erwähnten
SYSTEM AND METHOD OF SELECTION AND COMMUNICATION OF A DISK FOR STORAGE
OF A CORE-DUMP dargestellt ist. Das heißt, der Dateiserver B prüft die Etiketten
aller Platten, die Dateiserver A innehat, um zu bestimmen, welche
Ersatzplatten sind, die zum Schreiben eines Arbeitsspeicherabzugs
gerade von Dateiserver A verwendet werden können. Ferner prüft der Dateiserver
B die magische Arbeitsspeicherzahl 413 in der Arbeitsspeicherzone
dieser Ersatzplatten, um zu bestimmen, welche so gekennzeichnet
sind, dass sie anzeigen, dass sie eine Arbeitsspeicherabzugplatte
sein können.
Nachdem die magische Arbeitsspeicherzahl auf allen Ersatzplatten
des Dateiservers A untersucht worden ist, bestimmt der Dateiserver
B schließlich,
auf welche dieser Ersatzplatten der Dateiserver A aktiv einen Arbeitsspeicherabzug
schreibt.
-
Wenn
der Dateiserver B anhand der obigen Schritte eine Ersatzplatte identifiziert,
auf die der Dateiserver A gerade einen Arbeitsspeicherabzug schreibt,
unterlässt
es der Dateiserver B, eine Reservierung auf diese Platte zu setzen.
Zu dieser Zeit gilt der Partnerdateiserver B als Inhaber aller reservierten
Platten (Schritt 511). Folglich umgeht der Dateiserver
B diese Arbeitsspeicherabzugplatte bei seiner Übernahme und erlaubt weiterhin
den Zugriff durch den ausgefallenen Dateiserver A für einen
Arbeitsspeicherabzug. Während
die Übernahme
der Platten des Dateiservers A durch den Dateiserver B vollendet
wird, stellt der Dateiserver B den Dateisystemdienst anhand Daten
von Platten des Dateiservers A wieder her, sobald dies durchführbar ist
(Schritt 510).
-
Wie
oben erwähnt,
wird ein Wakeup-Timer (Wecker) aktiviert, wenn dem Dateiserver B
der Ausfall mitgeteilt wird (Schritt 509). Der Timer (336 in 3)
wird so eingestellt, dass selbst bei Vorfinden eines Arbeitsspeicherabzugausfalls
die Arbeitsspeicherabzugplatte schließlich durch den Dateiserver
B reserviert wird, wie alle anderen Nichtarbeitsspeicherabzugplatten,
welche bereits einer Übernahme unterzogen
worden sind. Der Dateiserver B wartet (Schritt 512), bis
die Frist abgelaufen (Entscheidungsschritt 514) oder der
Arbeitsspeicherabzug abgeschlossen ist (Schritt 518). Zu
dieser Zeit tritt das Verfahren im Dateiserver B in Aktion, um die
Arbeitsspeicherabzugplatte zu reservieren (Schritt 516).
Ist der Arbeitsspeicherabzug nicht innerhalb der Frist vollendet,
wird das Verfahren abgebrochen. Zwei Schritte werden unternommen,
um den Arbeitsspeicherabzug abzubrechen. Der erste erfolgt über eine Kommunikation
zwischen dem Dateiserver A und dem Dateiserver B. Der Dateiserver
B schreibt ein Abbruchkennzeichen in die Arbeitsspeicherzone der Arbeitsspeicherabzugplatte
und weist den Dateiserver A dabei an, den Abzug des Arbeitsspeichers
zu stoppen. Dann reserviert der Dateiserver B die Arbeitsspeicherabzugplatte.
Die Reservierung wirkt so, dass die gesamte E/A vom Dateiserver
A zur Arbeitsspeicherabzugplatte gestoppt wird, was sicherstellt, dass
der Arbeitsspeicherabzug beendet wurde. Ein Kennzeichen in der Arbeitsspeicherzone
der Arbeitsspeicherabzugplatte wird gesetzt (Schritt 518),
falls der Dateiserver A den Arbeitsspeicherabzug vollendet oder
als Folge der Anforderung durch den Dateiserver B abgebrochen hat.
-
Das
Verfahren "savecore" (Arbeitsspeichern sichern)
von Dateiserver B prüft
(Entscheidungsschritt 520) das Kennzeichen, um zu bestimmen,
ob der Arbeitsspeicherabzug in der nicht reservierten Arbeitsspeicherabzugplatte
vollendet oder abgebrochen wurde.
-
Gemäß Schritt 522 greift
der Partnerdateiserver B dann auf die Arbeitsspeicherabzugplatte
zu, um eine Arbeitsspeicherabzugdatei oder andere geeignete Datenorganisation
des Arbeitsspeicherinhalts zu erzeugen. Dieser Prozess wird durch
einen "savecore"-Prozess gelenkt, der Teil des Arbeitsspeicherabzug-Dienstprogramms
(350 in 3) auf dem Speicherbetriebssystem 300 von
Dateiserver B ist. Die Arbeitsspeicherabzugdatei kann verschiedene Diagnosehilfen
wie z. B. Lesezeichen, Indizes und dgl. enthalten, oder sie kann
nur aus Rohdaten vom Speicher des ausgefallenen Dateiservers bestehen. Während eine
Arbeitsspeicherabzugdatei erstellt wird, wird gemäß einer
veranschaulichenden Ausführungsform
jeder Zugriff auf die Arbeitsspeicherabzugplatte zwecks einer RAID-Rekonstruktion verhindert (da
normalerweise eine Ersatzplatte für solche Rekonstrukti onszwecke
zur Verfügung
steht). Sobald die Arbeitsspeicherabzugdatei erstellt ist, wird
sie anschließend
in das Hauptinhaltsverzeichnis des Dateisystems von Dateiserver
A geschrieben. Das Hauptinhaltsverzeichnis-Dateisystem für den ausgefallenen
Dateiserver A befindet sich im Allgemeinen auf den übernommenen
(Nichtarbeitsspeicherabzug-)Platten, auf die nunmehr durch den Partnerdateiserver
B frei zugegriffen wird, als ob er der Dateiserver A selbst wäre.
-
Während dieser
gesamten Zeit ist der Zugriff auf den Dateiserver B durch Clients
aufrechterhalten worden. Gemäß der Übernahme
bei Schritt 510 haben Clients bereits Zugriff auf die allgemeinen
Daten von Dateiserver A erhalten, ohne die unangemessene Verzögerung,
die ein Arbeitsspeicherabzug sonst mit sich bringen würde.
-
Wie
oben erwähnt
enthält
die Arbeitsspeicherabzugplatte ein den Status des Arbeitsspeicherabzugs
anzeigendes Kennzeichen, das schließlich von Dateiserver B gelesen
wird. Dieses Attribut kann entweder einen Arbeitsspeicherabzugzustand
anzeigen, in dem ein Arbeitsspeicherabzug aktiv, vollendet und/oder
im Gange ist, z. B. <BR> <BR> "Arbeitsspeicherabzug
im Gange" oder "Arbeitsspeicherabzug
vollendet". Umgekehrt
kann das Attribut einen Nicht-Arbeitsspeicherabzugzustand anzeigen,
in dem ein Arbeitsspeicherabzug nicht vorhanden/nicht aktiv ist
oder vor der Vollendung abgebrochen <BR> <BR> worden ist, z. B. "kein Arbeitsspeicherabzug" oder "abgebrochener Arbeitsspeicherabzug". Es wird ins Auge
gefasst, dass die Verwendung eines bestimmten Attributs "abgebrochener Arbeitsspeicherabzug" statt eines einfachen "kein Arbeitsspeicherabzug" bei bestimmten Ausführungsformen
Diagnoseinformationen bereitstellen kann. Ferner kann bei alternativen
Ausführungsformen
ein teilweise geschriebener Arbeitsspeicherabzug als eine Datei
auf eine ähnliche
Weise wie ein vollständiger
Arbeitsspeicherabzug bewahrt werden. Sobald der Dateiserver B die
Arbeitsspeicherabzugdatei geschrieben hat, wird dieses Attribut
auf "kein Arbeitsspeicherabzug" ummarkiert, so dass
die Ersatzplatte als eine "Hot-Spare"-Platte verfügbar gemacht
werden kann (Schritt 524).
-
Es
sei ausdrücklich
darauf aufmerksam gemacht, dass die Verwendung einer einzigen Platte zur
Ausführung
eines Verfahrens vom Typ des Arbeitsspeicherabzugs im Falle eines
Systemausfalls nicht nur auf einer Cluster-Ebene implementiert werden
muss. Die hierin beschriebenen Prinzipien können vielmehr in einer SAN-
oder anderen vernetzten Speicherumgebung angewendet werden, wo eine einzige
Platte zur Bewahrung durch das ausgefallene, innehabende System
gewählt
und zum Abziehen des Systemspeichers verwendet wird, wohingegen anderen
in eigener Inhaberschaft befindlichen Platten eine unverzügliche Übernahme
durch ein nicht ausgefallenes Element der vernetzten Umgebung gestattet
wird.
-
In
bestimmten Fällen
kann die Arbeitsspeicherabzugplatte für normale Speicheroperationen sofort
benötigt
werden und muss daher vor der Vollendung des Arbeitsspeicherabzugs
oder der Erstellung der Arbeitsspeicherabzugdatei in den verfügbaren Ersatzplatten-Pool verschoben werden.
Ergibt sich für
die normalen Dateidienste ein Bedarf an der Arbeitsspeicherabzugplatte,
kann die Arbeitsspeicherabzugplatte einfach durch den Übernahme-Partnerdateiserver
B reserviert werden, da dies einen weiteren Arbeitsspeicherabzug
durch den ausgefallenen Dateiserver A wirksam abbricht. Er ist nicht mehr
Inhaber der Platte. Alternativ kann eine besondere "Kill"-Signatur nach der
magischen Arbeitsspeicherzahl 413 im Zonenkopf 412 auf
der Arbeitsspeicherabzugplatte geschrieben werden. Die Arbeitsspeicherabzugfunktion
im ausgefallenen Dateiserver A führt
eine Abtastung auf dieses Attribut durch und falls es vorgefunden
wird, beendet sie den Arbeitsspeicherabzug.
-
Vorstehend
wurde eine detaillierte Beschreibung einer beispielhaften Ausführungsform
der Erfindung. Verschiedene Modifikationen und Hinzufügungen können vorgenommen
werden, ohne vom Geist und Gültigkeitsbereich
der Erfindung abzuweichen. Obwohl z. B. hierin Dateien und Verzeichnisse
angegeben sind, können
die Daten um verschiedene Datenstrukturen organisiert sein und die <BR> <BR> Begriffe "Datei", "Dateisystem", "Verzeichnis" und dgl. sind im
weiten Sinne als <BR> verschiedene "Datenstrukturen", "Sätze Daten" oder "Datenorganisationen" beinhaltend zu verstehen. Obwohl die RAID-Schicht 316 eine
RAID-Organisation nutzt, wird gleichermaßen erwogen, verschiedene Speicheranordnungen
zu verwenden. Entsprechend können
die Prinzipien dieser Erfindung auf verschiedene Speichergeräte oder
-medien einschließlich
elektrooptische, festkörperbasierte,
magnetische und dgl. angewendet werden, obwohl die hierin beschriebenen
Speichergeräte
Platten sind. Obwohl eine einzige Platte als eine Arbeitsspeicherabzugplatte
verwendet ist, kann es ferner alternative Ausführungsformen geben, bei denen
mehrere Arbeitsspeicherabzugplatten oder "Speichergeräte" verwendet werden, um einen Arbeitsspeicherabzug
zu speichern. Der ausgefallene Dateiserver würde die Inhaberschaft etwaiger
solcher Arbeitsspeicherabzugplatten auf eine hierein allgemein beschriebene
Weise beibehalten, während
er anderen Platten gestatten würde, übernommen
zu werden. Schließlich
versteht es sich, dass jedes und alle der hierin beschriebenen Prinzipien
als Hardware, Software, die aus einem computerlesbaren Medium besteht,
welches Programmanweisungen auf einem Computer ausführt, oder
eine Kombination von Hardware und Software implementiert sein kann.
Demgemäß ist diese
Beschreibung nur als Beispiel und nicht als den Gültigkeitsbereich
dieser Erfindung anderweitig einschränkend auszulegen.