-
Die
vorliegende Offenbarung betrifft im Allgemeinen den Bereich von
Datenspeichersystemen und insbesondere ein System und ein Verfahren
zur Wiederherstellung eines Laufwerks mit einem aktivierten Schreibzwischenspeicher.
-
Hintergrund
-
In
dem Maße,
wie der Wert und die Verwendung von Information weiter zunimmt,
suchen Einzelpersonen und Unternehmen nach zusätzlichen Wegen, Information
zu verarbeiten und zu speichern. Eine den Anwendern zur Verfügung stehende
Möglichkeit
sind informationsverarbeitende Systeme. Ein informationsverarbeitendes
System verarbeitet im Allgemeinen, kompiliert und speichert und/oder
kommuniziert Information oder Daten für Unternehmenszwecke, persönliche oder
andere Zwecke und ermöglicht
dadurch Anwendern, aus dem Wert der Information einen Vorteil zu
ziehen. Da die Bedürfnisse und
Anforderungen an die Technologie und die Informationsverarbeitung
sich zwischen verschiedenen Anwendern oder Anwendungen unterscheiden,
können
informationsverarbeitende Systeme ebenfalls variieren im Hinblick
darauf, welche Information verarbeitet wird, wie die Information
verarbeitet wird, und wie viel Information verarbeitet, gespeichert
oder kommuniziert wird, und wie schnell und effektiv die Information
verarbeitet, gespeichert, oder kommuniziert werden kann. Die Unterschiede
in den informationsverarbeitenden Systemen ermöglichen, dass informationsverarbeitende
Systeme allgemein konfiguriert sind oder für einen speziellen Anwender
oder eine spezielle Anwendung konfiguriert werden, beispielsweise
die Verarbeitung von Finanztransaktionen, die Reservierungen von
einer Fluggesellschaft, die Speicherung von Unternehmensdaten oder
globale Kommunikation. Zusätzlich
können
informationsverarbeitende Systeme eine Vielzahl von Hardware- und
Software-Komponenten umfassen, die konfiguriert werden können, um
Information zu verarbeiten, zu speichern und zu kommunizieren, und kann
ein oder mehrere Computersysteme, Datenspeichersysteme und Netzwerksysteme
umfassen, beispielsweise Computer, Arbeitsstationen eines Personalcomputers,
tragbare Computer, Computerserver, Druckerserver, Netzwerkrouter,
Netzwerkhubs, Netzwerkswitches, Laufwerksfelder für ein Speicherbereichsnetzwerk,
ein System mit einem redundanten Feld von unabhängigen Laufwerken (redundant
array of independent disks, RAID) und einen Switch für die Telekommunikation.
-
Informationsverarbeitende
Systeme umfassen häufig
ein oder mehrere Laufwerke, die in Laufwerkfeldern gruppiert werden.
Viele Laufwerke umfassen einen zugeordneten Schreibzwischenspeicher
(Write Cache), der selektiv aktiviert oder deaktiviert werden kann.
In Bezug auf Laufwerke, die einen aktivierten Schreibzwischenspeicher
umfassen, gibt es manchmal eine Verzögerung zwischen dem Zeitpunkt,
an dem das Laufwerk dem Laufwerkscontroller mitteilt, dass ein Schreibvorgang
erfolgreich war, und dem Zeitpunkt, an dem die Daten auf das Speichermedium
des Laufwerks geschrieben werden. Ein Laufwerk mit einem aktivierten
Schreibzwischenspeicher wird häufig
zu schreibende Daten an den Schreibzwischenspeicher des Laufwerks
richten oder dort speichern. Sobald die zu schreibenden Daten erfolgreich
an den Zwischenspeicher transferiert worden sind, wird das Laufwerk
eine Mitteilung an den Laufwerkscontroller übertragen, um anzuzeigen, dass
der Schreibvorgang erfolgreich ausgeführt worden ist. Diese Mitteilung
wird von dem Laufwerk an den Laufwerkscontroller übertragen,
selbst wenn die Daten des Schreibbefehls noch nicht auf das permanente
und nichtflüchtige
Medium des Laufwerks geschrieben worden sind. Die Anordnung der
Daten des Schreibbefehls in dem Schreibzwischenspeicher ermöglicht den
Steuerschaltkreisen des Schreibcontrollers die Reihenfolge zu optimieren,
in der Information auf das Medium in dem Laufwerk geschrieben wird.
-
Diese
Vorgehensweise ist jedoch für
den Fall problematisch, in dem ein Schreibbefehl erfolgreich in
den Zwischenspeicher des Laufwerks geschrieben worden ist, aber
nicht erfolgreich auf das nichtflüchtige Medium des Laufwerks
geschrieben worden ist. In diesem Fall hat das Laufwerk dem Laufwerkscontroller
mitgeteilt, dass der Schreibbefehl erfolgreich war. Wenn das Laufwerk
ausfällt
(beispielsweise, wenn in dem Laufwerk der Strom ausfällt oder
das Laufwerk zurückgesetzt
wird oder der Schreibzwischenspeicher beschädigt wird), können unter
Umständen
die in dem Schreibzwischenspeicher gespeicherten Daten verloren
gehen und niemals auf das Laufwerk geschrieben werden. Der Laufwerkscontroller
nimmt diesen Datenverlust jedoch nicht wahr, da die Steuerschaltkreise
des Laufwerks angezeigt haben, dass der Schreibbefehl ausgeführt worden
ist. Der Laufwerkscontroller und das Laufwerk sind nicht synchronisiert
und die Daten in dem Schreibzwischenspeicher, die nicht auf das
Laufwerk geschrieben worden sind, sind verloren. Um zu verhindern,
dass dieses Ausfallereignis auftritt, werden die Schreibzwischenspeicher
von Laufwerken in einem RAID-System häufig deaktiviert. Wenn der
Schreibzwischenspeicher eines Laufwerks deaktiviert worden ist,
kann das Laufwerk nicht für
einen bestimmten Zeitraum zu schreibende Daten in einem Zwischenspeicher
speichern, wodurch das Laufwerk gezwungen wird, die Daten direkt
auf das nichtflüchtige
Speichermedium des Laufwerks zu schreiben. In diesem Szenario teilt das
Laufwerk dem Laufwerkscontroller ein erfolgreiches Schreiben erst
dann mit, wenn das Laufwerk die zu schreibenden Daten auf sein nichtflüchtiges
Speichermedium geschrieben hat. Wenn der Schreibzwischenspeicher
eines Laufwerks deaktiviert ist, kann seine Leistungsfähigkeit
jedoch nachhaltig beeinflusst werden, da die Steuerschaltkreise
des Laufwerks den Transfer von Daten von dem Zwischenspeicher an
das permanente Medium des Laufwerks nicht optimieren können.
-
RAID-Speicherfelder
zeichnen sich durch die Fähigkeit
aus, Information auf einem Laufwerk nach einem Ausfall wieder herzustellen
oder erneut aufzubauen. Beispielsweise wird in einem RAID-5-Array Paritätsinformation
auf den Lauf werken in dem Array gespeichert. Wenn eines der Laufwerke
ausfällt,
wird es erneut aufgebaut, basierend auf der Paritätsinformation,
die auf den anderen Laufwerken in dem Array gespeichert ist. In
dem Maße,
wie die Kapazität der
Medien in den Laufwerken zunimmt, dauert die Wiederherstellung eines
Laufwerks länger
aufgrund der zunehmenden Menge an Information, die wiederhergestellt
werden muss. Wiederherstellungszeiten in Stunden oder sogar einigen
Tagen sind für
Laufwerke mit Medien, die in der Lage sind, zig oder hunderte von
Gigabytes an Daten zu speichern, nicht ungewöhnlich. Wenn ein Laufwerk in
dem Array erneut aufgebaut wird, laufen viele RAID-Arrays in einem verschlechterten
Mode. In dem verschlechterten Mode kann die Leistungsfähigkeit
des Arrays verschlechtert sein, da die Leistungsfähigkeit
für die Ressourcen
für die
Wiederherstellung des Laufwerks verwendet werden. Wenn der Zwischenspeicher
des gerade wiederhergestellten Laufwerks während der Wiederherstellungszeit
deaktiviert ist, kann zusätzlich
die Zeit, die für
das Wiederherstellen des Laufwerks benötigt wird, länger sein
als die Zeit, die benötigt
wird, um ein Laufwerk wiederherzustellen, das einen aktivierten
Schreibzwischenspeicher aufweist. Zusätzlich wird bei vielen RAID-Levels
das Array verloren gehen, wenn ein zweites Laufwerk ausfällt, während das
Array sich in dem verschlechterten Mode befindet.
-
Zusammenfassung
der Erfindung
-
Gemäß der vorliegenden
Offenbarung wird ein System und ein Verfahren zum Wiederherstellen eines
Laufwerks in einem Laufwerksaray offenbart. Der Schreibzwischenspeicher
des wiederhergestellten Laufwerks ist aktiviert. Während des
Wiederherstellungsprozesses werden Befehle an das Laufwerk ebenfalls
in einem Journal, das dem Laufwerkscontroller zugeordnet ist, aufgenommen.
Ein Synchronisierungsbefehl wird periodisch an das Laufwerk gesandt.
In Antwort auf den Synchronisierungsbefehl schreibt das Laufwerk
alle Daten in den Schreibzwischenspeicher, die noch nicht auf das
nichtflüchtige Medium
geschrieben worden sind, auf das Medium. Nach der Synchronisation
wird das Journal gelöscht, da
die Schreibbefehle auf dem nichtflüchtigen Speicher des Laufwerksarrays
ausgeführt
worden sind.
-
Ein
Vorteil des offenbarten Systems und Verfahrens sind kürzere Wiederherstellungszeiten
für ausgefallene
Laufwerke. Die Aktivierung des Schreibzwischenspeichers für das wiederherzustellende
Laufwerk ermöglicht
der Steuerlogik des Laufwerks die Reihenfolge zu optimieren, in
der Befehle auf das Medium geschrieben werden. Das Aktivieren des
Schreibzwischenspeichers für
das Laufwerk, das gerade wiederhergestellt wird, ermöglicht ferner, dass
mehrere Schreibbefehle an das Laufwerk gesandt werden, bevor die
zugeordneten Daten mit den Schreibbefehlen auf das Medium in dem
Laufwerk geschrieben werden. Da der Schreibzwischenspeicher aktiviert
ist, kann das Laufwerk schneller wiederhergestellt werden, als ein
Laufwerk, dessen Schreibzwischenspeicher während des Wiederherstellungsprozesses
deaktiviert worden ist.
-
Ein
weiterer Vorteil des offenbarten Systems und Verfahrens besteht
darin, dass die erläuterten Techniken
für die
Möglichkeit
ausgelegt sind, dass ein Laufwerk, das gerade wiederhergestellt
wird, einen Systemausfall erleidet, während der Schreibzwischenspeicher
aktiviert ist, und während
des Wiederherstellungsprozesses. Um diese Möglichkeit zu berücksichtigen
werden Befehle in ein Journal geschrieben und periodisch mit dem
Laufwerk synchronisiert. Der Synchronisationsvorgang bringt es zwingend
mit sich, dass alle Daten in dem Schreibzwischenspeicher, die Schreibbefehlen
zugeordnet sind, auf das Speichermedium des Laufwerks geschrieben werden.
Das Speichern einer Untermenge von möglicherweise nicht synchronisierten
Befehlen in dem Journal des Laufwerks-Controllers schließt die Möglichkeit
aus, dass der Wiederherstellungsprozess von Beginn an neu gestartet
werden muss. Stattdessen kann der Wiederherstellungsprozess erneut
gestartet werden, ausgehend von denjenigen Befehlen, die in dem
Journal gespeichert werden bei einem Ausfalls während des Wiederherstellungsprozesses
(beispielsweise eines Stromausfalls). Im Ergebnis umfasst der hier
erläuterte
Wiederherstellungsprozess einen Sicherheitsmechanismus, der vor
einem nachfolgen den Ausfall schützt,
ohne die Leistungsfähigkeit
des Wiederherstellungsprozesses negativ zu beeinflussen. Weitere
technische Vorteile erkennt der Fachmann bei Betrachtung der nachfolgenden
Beschreibung, der Ansprüche
und der Zeichnungen.
-
Kurze Beschreibung
der Zeichnungen
-
Ein
vollständiges
Verständnis
der vorliegenden Offenbarung und ihrer Vorteile erhält man durch Bezugnahme
auf die folgende Beschreibung in Verbindung mit den begleitenden
Zeichnungen, in denen übereinstimmende
Bezugszeichen ähnliche
Merkmale bezeichnen und wobei:
-
1 ist
ein Diagramm eines redundanten Speicherarrays;
-
2 ist
ein Laufwerk eines Speicherarrays und eines zugeordneten Laufwerkscontrollers;
und
-
3 ist
ein Flussdiagramm eines Verfahrens zur Wiederherstellung eines Laufwerks
eines Laufwerksarrays.
-
Detaillierte
Beschreibung
-
Für die Zwecke
dieser Offenbarung kann ein informationsverarbeitendes System irgendeine
Vorrichtung oder eine Ansammlung von Vorrichtungen umfassen, die
in der Lage sind, zu berechnen, zu klassifizieren, zu verarbeiten,
zu übertragen,
zu empfangen, abzurufen, zu erzeugen, zu schalten, zu speichern,
anzuzeigen, darzustellen, zu detektieren, zu speichern, wiederherzustellen,
zu verarbeiten oder irgendeine Art von Information, Intelligenz
oder Daten für
Unternehmenszwecke, wissenschaftliche Zwecke, Steuerfunktionen oder
andere Zwecke zu verwenden.
-
Beispielsweise
kann ein informationsverarbeitendes System ein Personalcomputer
sein, ein Netzwerkspeichergerät
oder irgendein anderes geeignetes Gerät und kann in Größe, Form,
Leistungsfähigkeit,
Funktionalität
und Preis variieren. Das informationsverarbeitende System kann einen
Direktzugriffsspeicher (RAM), eine oder mehrere Verarbeitungsressourcen,
wie z.B. eine zentrale Verarbeitungseinheit (CPU) oder Hardware-
oder Software-Steuerlogik (ROM) und/oder andere Arten von nicht-flüchtigem
Speicher umfassen. Zusätzliche Komponenten
des informationsverarbeitenden Systems können eine oder mehrere Laufwerke
umfassen, einen oder mehrere Netzwerkports zur Kommunikation mit
externen Geräten,
ebenso wie zahlreiche Eingabe- und Ausgabegeräte (L/O), wie z.B. eine Tastatur,
eine Maus und eine Graphikanzeige. Das informationsverarbeitende
System kann ferner einen oder mehrere Busse umfassen, die in der
Lage sind, Kommunikationen zwischen den verschiedenen Hardware-Komponenten
zu übertragen.
-
1 ist
ein Diagramm eines Level-5-RAID-Speicherarrays, das im Allgemeinen
mit dem Bezugszeichen 10 bezeichnet wird. Das Speicherarray 10 umfasst
fünf Laufwerke,
auf die manchmal als Laufwerke oder Volumina Bezug genommen wird.
Jedes der vier Laufwerke in dem Beispiel aus 1 umfasst
acht Streifen oder Reihen von Daten, die als Streifen 0 bis Streifen
7 bezeichnet sind. Man erkennt, dass die Konfiguration des RAID-Arrays
aus 1 einfach eine Darstellung eines RAID-Array ist und
dass ein RAID-Array mit mehr oder weniger Laufwerken mit mehr oder
weniger Streifen oder Reihen konfiguriert werden kann. Unter Bezugnahme auf
den Streifen 0 werden Daten im Laufwerk A, im Laufwerk B und im
Laufwerk C gespeichert. Die Paritätsbits im Streifen 0, die das
Ergebnis eines exclusive-OR-Vorgangs sind, der auf dem Inhalt des
Streifens 0 im Laufwerk A, im Laufwerk B und im Laufwerk C durchgeführt worden
ist, werden im Laufwerk D gespeichert und mit dem Buchstaben P0 bezeichnet. Als ein zweites Beispiel der
Datenstruktur des RAID-Arrays 10 werden unter Bezugnahme
auf den Streifen 7 Daten im Laufwerk B, Laufwerk C und im Laufwerk D
gespeichert. Die Paritätsbits
für den
Streifen 7, die das Ergebnis eines exclusive-OR-Vorgangs sind, der auf dem Inhalt des
Streifens 7 im Laufwerk B, im Laufwerk C und im Laufwerk D durchgeführt worden ist,
werden im Laufwerk A gespeichert und mit dem Buchstaben P7 bezeichnet. Wenn beispielsweise das Laufwerk
C ausfallen sollte oder ansonsten als ein verschlechtertes Laufwerk
identifiziert werden sollte, werden die Daten in jedem Streifen
des Laufwerks C wiederhergestellt mit den Daten in den anderen drei Laufwerken
des RAID-Arrays 10. Wie in 1 gezeigt,
ist jedes der Laufwerke in dem Speicherarray mit einem Host verbunden.
Das RAID-5-Array 10 ist ein Beispiel eines fehlertoleranten
RAID-Levels, wobei ein einziger Laufwerksausfall kompensiert werden
kann und wobei das ausgefallene Laufwerk wiederhergestellt wird.
Andere fehlertolerante RAID-Levels umfassen 1, 4, 5, 6, 10 und 0+1.
-
Jedes
Laufwerk eines Speicherarrays kommuniziert mit und wird gesteuert
durch einen Laufwerkscontroller. 2 ist ein
Diagramm eines Laufwerks 20 und eines Laufwerkcontrollers 22.
Das Laufwerk 20 und der Laufwerkscontroller 22 werden miteinander über einen
Kanal 24 verbunden. Der Kanal 24 kann gemäß irgendeinem
einer Anzahl von Kommunikationsprotokollen funktionieren, einschließlich einem
parallelen oder seriellen SCSI-Kommunikationsbus oder -Verbindung,
oder einem parallelen oder seriellen ATA-Kommunikationsbus oder
-Verbindung, einer Faserkanalkommunikationsverbindung oder einer
drahtlosen Kommunikationsverbindung. Das Laufwerk 20 umfasst
ein Medienspeicherelement 26, Steuerlogik 21 und
einen Schreibzwischenspeicher 27. Der Medienspeicher 26 kann
sämtliche
Medien umfassen, die geeignet sind zum Speichern von Information,
einschließlich magnetischer
Medien oder optischer Medien. In ähnlicher Weise kann der Schreibzwischenspeicher 27 jeglichen üblichen
Speichermechanismus zum Speichern von Information umfassen. Der
Schreibzwischenspeicher 27 ist üblicherweise ein flüchtiger Speicher
und in der Lage, einen schnelleren Zugriff auf seinen Inhalt zu
ermöglichen,
verglichen mit dem Speichermedium 26, das typischerweise
nicht-flüchtig
ist.
-
Die
Steuerlogik 21 des Laufwerks 20 antwortet auf
und verarbeitet Befehle vom Laufwerkscontroller 22 einschließlich von
Befehlen zum Lesen von Daten oder zum Schreiben von Daten auf das
Laufwerk 20 zum Aktivieren oder zum Deaktivieren des Schreibzwischenspeichers 27 und
zum Erzwingen, dass alle Information im Schreibzwischenspeicher 27 auf
das Speichermedium 26 geschrieben wird. Die Steuerlogik 21 überträgt ferner
Daten und Benachrichtigungsinformation an den Laufwerkscontroller 22.
Zusätzlich
steuert die Steuerlogik 21 das Speichermedium 26 und
den Schreibzwischenspeicher 27. Der Laufwerkscontroller 22 umfasst
ein Steuerlogikelement 23, das mit einem Journal 28 kommuniziert
und es anweist und einem Speicherort 29 des Laufwerkscontrollers.
Beispiele des Laufwerkscontrollers 22 gemäß der vorliegenden
Offenbarung umfassen einen RAID-Controller, einen Lower-Level-ATA/SATA-Controller
oder einen SCSCI-Controller
oder beides.
-
Das
Journal 28 ist ein Informationsspeicherort, der erfolgte
Schreibbefehle, die an das Laufwerk 20 gerichtet sind,
speichert. Der Inhalt des Journals 28 kann durch eine Steuerlogik 23 gesteuert
werden. Die Steuerlogik 23 kann einen Befehl ausgeben,
um zu verursachen, dass das Journal 28 seine Inhalte löscht. Das
Journal 28 ist vorzugsweise nichtflüchtiger Natur, so dass die
Inhalte des Journals 28 bei einem plötzlichen Stromausfall am Laufwerk
oder dem umgebenden Netzwerk erhalten bleiben. Der Inhalt des Journals 28 ist
eine Auflistung der jüngsten
Befehle, die an das Laufwerk 20 gesandt worden sind, zusammen
mit einer Befehlszählung,
die jedem der aufgelisteten Befehle zugeordnet ist. Der Speicherort 29 kann
irgendein Speicherort sein, auf den die Steuerlogik 23 zugreifen
kann. Eine fortlaufende Befehlszählung
ist in dem Speicherort 29 gespeichert. Der Wert der Befehlszählung entspricht
dem jüngsten Schreibbefehl,
der an das Laufwerk 20 gesandt worden ist. Die Befehlszählung in
dem Speicherort 29 kann durch die Steuerlogik 23 manipuliert
werden. Insbesondere kann die Steuerlogik 23 eine neue
Befehlszählung
im Speicherort 29 speichern, die gespeicherte Befehlszählung abrufen
oder die Befehlszählung
löschen
oder zurücksetzen.
Der Speicherort 29 kann nichtflüchtigen Speicher umfassen,
so dass die Befehlszählung
bei einem Stromausfall am Laufwerk oder dem Netzwerk erhalten bleiben
wird.
-
3 ist
ein Flussdiagramm eines Verfahrens zum Wiederherstellen eines Laufwerks
eines Laufwerksarrays. Die Schritte aus 3 werden durchgeführt, wenn
ein Laufwerk des Laufwerksarrays wiederhergestellt werden muss.
Die Notwendigkeit zur Wiederherstellung eines Laufwerks kann aus einer
Vielzahl von Gründen
entstehen. Die Daten auf dem Laufwerk können beschädigt sein oder das Laufwerk
kann ein Laufwerk sein, das zu dem Laufwerksarray hinzugefügt worden
ist. Das Laufwerk kann wiederhergestellt werden gemäß einer
automatisierten Wiederherstellung, die Bedingungen identifiziert,
die nach einer Wiederherstellung des Laufwerks verlangen. Alternativ
kann ein Laufwerk wiederhergestellt werden nach der manuellen Anweisung
des Systemadministrators. Im Schritt 30 wird der Schreibzwischenspeicher
des Laufwerks aktiviert, wodurch ermöglicht wird, dass das Laufwerk seinen
Schreibzwischenspeicher verwendet, um bei der Optimierung der Schreibvorgänge auf
dem Medium des Laufwerks zu unterstützen. Der Schreibzwischenspeicher
des Laufwerks 20 wird typischerweise durch einen Befehl
aktiviert, der vom Laufwerkscontroller 22 an das Laufwerk 20 versandt
wird. Wenn beispielsweise das Laufwerk 20 ein SCSI-Laufwerk ist, überträgt der Laufwerkscontroller
einen MODE-SELECT-Befehl an eine Zwischenspeichermodesseite (bzw.
Cache-Mode-Page) in der Steuerlogik 21 des Laufwerks 22 und
setzt das Schreibzwischenspeicheraktivierungsbit in dem Laufwerk
auf 1. In einer ATA- oder SATA-Umgebung sendet der Laufwerkscontroller
einen Befehl zum Setzen von Merkmalen bzw. einen SET FEATURES-Befehl mit einem Unterbefehlscode
um den Schreibzwischenspeicher zu aktivieren. Im Schritt 32 werden
die an das Laufwerk gerichteten Befehle beim Laufwerkscontroller 22 empfangen.
Diese Befehle umfassen die Schreibbefehle, die für das Wiederherstellen des
Laufwerks erforderlich sind. Wenn Bereiche des Laufwerks wiederhergestellt
werden, können
die Befehle aktive Ladebefehle umfassen, um neue Daten auf die wiederhergestellten
Bereiche des Laufwerks zu schreiben. Im Schritt 32 wird
der empfangene Befehl im Journal 28 gespeichert.
-
In
dem Maße
wie jeder Befehl empfangen wird, wird eine fortlaufende Liste von
Schreibbefehlen in dem Journal 28 aufgenommen. Nach dem Speichern
des Befehls im Journal 28 wird die Befehlszählung im
Speicher 29 erhöht.
Im Schritt 38 werden die empfangenen Befehle an das Laufwerk übertragen.
Wie man an der Reihenfolge der Schritte 32 bis 38 erkennen
kann, wird der Befehl bei dem Journal gespeichert, bevor der Befehl
an das Laufwerk übertragen
worden ist. Auf diese Art und Weise wird ein Speichereintrag von
jedem Befehl erzeugt, bevor der Befehl an das Laufwerk übertragen
wird. Wenn der Befehl beim Laufwerk empfangen worden ist, können der
Befehl und seine Inhalte in dem Zwischenspeicher gespeichert werden
oder auf dem Speichermedium des Laufwerks gespeichert werden. Da
der Schreibzwischenspeicher auf dem Laufwerk aktiviert ist, kann
das Laufwerk ein Verfahren auswählen
zum Verarbeiten des Befehls, das den Zwischenspeicher des Laufwerks
in der effizientesten Weise verwendet. Sobald das Laufwerk den Befehle erfolgreich
verarbeitet hat, sei es durch die Anordnung des Befehls im Zwischenspeicher
oder auf seinem Speichermedium wird das Laufwerk einen Benachrichtigungsbefehl
an den Controller ausgeben, um anzuzeigen, dass der Befehl von dem
Laufwerk erfolgreich bearbeitet worden ist. Nach der Übertragung
durch das Laufwerk und der Benachrichtigung, um einen erfolgreichen
Empfang des Befehls anzuzeigen, wird im Schritt 40 festgestellt,
ob der Wiederherstellungsvorgang abgeschlossen ist. Wenn der Wiederherstellungsvorgang
für das
Laufwerk nicht abgeschlossen ist, wird im Schritt 42 festgestellt,
ob die Befehlszählung
einen vorbestimmten Maximalwert erreicht hat. Sobald die Befehlszählung den
vorbestimmten Maximalwert erreicht hat, d.h. sobald eine vorbestimmte
Maximalanzahl an Befehlen in dem Journal gespeichert worden ist,
wird eine Serie von Schritten unternommen, um das Journal mit dem Inhalt
der Speichermedien auf dem Laufwerk zu synchronisieren. Der vorbestimmte
Maximalwert kann irgendeine Anzahl sein, die nicht größer ist,
als die Anzahl von Befehlen, die in dem Journal gespeichert werden
können.
Der vorbestimmte Maximalwert sollte nicht so niedrig gesetzt werden,
dass das Journal und das Speichermedium so oft synchronisiert werden,
dass die Synchronisationsschritte mit dem effizienten Abschluss
des Wiederherstellungsprozess interferieren. Der vorbestimmte Wert
sollte nicht so hoch gesetzt werden, dass eine zu große Anzahl
von Befehlen in dem Journal gespeichert wird. Eine zu große Anzahl
von Befehlen in dem Journal widerspricht dem Ziel eine begrenzten
Anzahl von Befehlen nachzuverfolgen zur erneuten Ausführung für den Fall
eines Ausfalls des Laufwerks, das gerade wiederhergestellt wird.
Wenn der vorbestimmte Wert der Befehlszählung nicht erreicht worden
ist, fährt
das Flussdiagramm beim Schritt 32 fort mit dem Empfang des
nächsten
Befehls beim Laufwerkscontroller. Wenn im Schritt 42 festgestellt
wird, dass der vorbestimmte Befehlszählungswert erreicht worden
ist, werden die in dem Journal gespeicherten Befehle mit dem Inhalt
des Speichermediums des Laufwerks synchronisiert. Der Laufwerkscontroller
gibt bei Schritt 44 einen Befehl aus, um zu erzwingen,
dass alle Daten, die in dem Zwischenspeicher gespeichert sind, die
den Schreibbefehlen zugeordnet sind, auf das Medium geschrieben
werden. Der Befehl wird ein Befehl sein, der von der Steuerlogik
des Laufwerks erkannt wird. In einer SCSI-Umgebung gibt der Laufwerkscontroller
einen Befehl SYNCHRONIZE aus. In einer ATA- oder SATA-Umgebung gibt der
Laufwerkscontroller einen Befehl „FLUSH" aus. Dieser Befehl verursacht, dass
alle Daten, die den Schreibbefehlen in dem Zwischenspeicher zugeordnet
sind, an das Speichermedium im Laufwerk übertragen werden. Nach diesem
Schritt enthält
der Zwischenspeicher des Laufwerks keine Schreibbefehle, die nicht
auf das Speichermedium des Laufwerks geschrieben worden sind. Im
Schritt 46 wird, nachdem der Schritt 44 erfolgreich
ausgeführt
worden ist, das Journal gelöscht
und die Befehlszählung
wird auf 0 gesetzt. Das Flussdiagramm fährt beim Schritt 32 fort,
indem beim Laufwerkscontroller weitere Befehle, die an das Laufwerk
gerichtet sind, empfangen werden.
-
Wenn
im Schritt 40 festgestellt wird, dass die Wiederherstellung
vollständig
ist, fährt
das Flussdiagramm beim Schritt 48 fort, mit der Ausgabe
eines Befehls, um zu erzwingen, dass alle Schreibbefehle von dem
Zwischenspeicher im Hinblick auf das Speichermedium des Laufwerks
ausgeführt
werden können.
Es versteht sich, dass der Schritt 48 identisch zum Schritt 44 ist.
Beim Schritt 50, der einem erfolgreichen Abschluss des
Schrittes 48 folgt, wird das Journal gelöscht und
die Befehlszählung
wird auf 0 gesetzt. Es versteht sich, dass der Schritt 50 identisch
zum Schritt 46 ist. Im Schritt 52 wird der Schreibzwischenspeicher
des Laufwerks deaktiviert. In einer SCSI-Umgebung sendet der Laufwerkscontroller
einen MODE-SELECT-Befehl an die Cache-Mode-Page in der Steuerlogik 21 des
Laufwerks 22 und setzt das Schreibzwischenspeicheraktivierungsbit
in dem Laufwerk auf 0. In einer ATA- oder SATA-Umgebung sendet der
Laufwerkscontroller einen Befehl SET FEATURES mit einem Unterbefehlscode,
um den Schreibzwischenspeicher zu deaktivieren. Das Deaktivieren
des Schreibzwischenspeichers bringt das Laufwerk in einen Zustand,
in dem Schreibbefehle, die an das Speicherlaufwerk gerichtet sind,
in dem Speicherlaufwerk nicht zwischengespeichert werden können, wodurch
sichergestellt wird, dass alle Schreibvorgänge für das Laufwerk auf das nichtflüchtige Speichermedium
geschrieben werden.
-
Das
offenbarte System und Verfahren ermöglicht die optimierte Wiederherstellung
eines Laufwerks mit einem aktivierten Schreibzwischenspeicher und
schützt
gleichzeitig gegen einen nachfolgenden Ausfall des Laufwerks während des
Wiederherstellungsvorgangs. Das Speichern des Schreibbefehls in
dem Journal stellt eine Quelle zum Auflisten der jüngst ausgegebenen
Schreibbefehle bereit. Wenn während
einer Wiederherstellung des Laufwerks der Strom für den Schreibzwischenspeicher
eines Laufwerks ausfällt,
wird das Journal eine Liste derjenigen Befehle umfassen, die möglicherweise noch
nicht auf den nicht-flüchtigen
Speicher des Laufwerks geschrieben worden sind. Daher können die
Inhalte des Journals als eine Quelle verwendet werden, um die Notwendigkeit
des erneuten Startens des Wiederherstellungsprozesses zu verhindern
für den
Fall eines Stromausfalls an dem Zwischenspeicher des Laufwerks,
das gerade wiederhergestellt wird.
-
Es
versteht sich, dass das hier offenbarte System und Verfahren nicht
auf die genaue Architektur, wie sie in den Figuren der vorliegenden
Offenbarung gezeigt ist, begrenzt ist. Stattdessen könnte das System
und das Verfahren der vorliegenden Offenbarung in jeder geeigneten
Computersystemarchitektur verwendet werden, die die Verwendung von
redundanter Stromversorgung mit sich bringt. Es versteht sich ferner,
dass das hier offenbarte System und Verfahren in seiner Anwendung
nicht auf einen speziellen Prozessor oder eine Prozessorfamilie
oder auf die Anwendung eines spezifischen Befehls an den Prozessor
begrenzt ist. Statt dessen kann das hier offenbarte System und Verfahren
mit irgendeinem Prozessor verwendet werden, der in der Lage ist,
seine Stromversorgung über
die Modulation von einer oder mehrerer interner Taktgeneratoren
zu modulieren. Obwohl die vorliegende Offenbarung im Detail beschrieben
worden ist, versteht es sich, dass zahlreiche Veränderungen,
Ersetzungen und Abweichungen daran durchgeführt werden können, ohne
den Geist und den Bereich der Erfindung zu verlassen, so wie sie
in den nachfolgenden Ansprüchen
definiert ist.