-
Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben einer
Plattenlaufwerksarray.
-
Die Erfindung betrifft insbesondere ein Verfahren zum Schützen von Plattenarray-
Schreibvorgängen.
-
Plattenarrays, die eine Mehrzahl von kleinen kostenarmen Plattenlaufwerken
umfassen, wie z. B. die 5 1/4 oder 3 1/4 Zoll Plattenlaufwerke, die derzeit in PCs und
Workstations eingesetzt werden und die parallel geschaltet sind, sind als kostenarme
Alternative für die Verwendung einzelner großer Platten für die nichtflüchtige Speicherung
von Informationen in einem Computersystem entstanden. Die Plattenarray erscheint dem
Host-System wie eine einzige große schnelle Platte, bietet jedoch Verbesserungen im
Hinblick auf Leistung, Zuverlässigkeit, Leistungsaufnahme und Skalierbarkeit gegenüber
einer einzelnen großen Magnetplatte. Von Daten abgesehen, werden in der Array auch
Redundanzinformationen gespeichert, so dass bei einem Ausfall einer einzelnen Platte in
der Array die Plattenarray ohne Datenverlust weiterarbeitet.
-
Mehrere Plattenarray-Alternativen werden in einem Artikel mit dem Titel "A Case
for Redundant Arrays of Inexpensive Disks (BAlD)" von David A. Patterson, Garth Gibson
and Randy H. Katz; University of California Report No. UCB/CSD 87/391, Dezember 1987
erörtert. Der Artikel befasst sich mit Plattenarrays und den Verbesserungen im Hinblick auf
Leistung, Zuverlässigkeit, Leistungsaufnahme und Skalierbarkeit, die Plattenarrays im
Vergleich zu einzelnen großen Magnetplatten bieten. Es werden fünf Plattenarray-
Anordnungen beschrieben, die als RAID-Level bezeichnet werden. Die einfachste Array,
ein RAID-Level 1 System, umfasst eine oder mehrere Platten zum Speichern von Daten und
eine gleiche Anzahl von zusätzlichen "Spiegel"-Platten zum Speichern von Kopien der auf
den Datenplatten geschriebenen Informationen. Die übrigen RAJD-Level, RAID-Level 2, 3,
4 und 5 Systeme genannt, segmentieren die Daten in Teile für die Speicherung über
mehrere Datenplatten. Eine oder mehrere zusätzliche Platten werden zum Speichern von
Fehlerprüfoder Paritätsinformationen verwendet.
-
Plattenarrays auf RAID-Level 2 und 3 sind als Simultanzugriffsarrays bekannt.
Simultanzugriffsarrays verlangen, dass auf alle Memberplatten (Daten- und Paritätsplatten)
zugegriffen wird und dass insbesondere gleichzeitig zur Ausführung einer E/A-Anforderung
geschrieben wird. Plattenarrays auf RAID-Level 4 und 5 sind bekanntlich Arrays mit
unabhängigem Zugriff. Arrays mit unabhängigem Zugriff verlangen nicht, dass bei der
Ausführung einer einzelnen E/A-Anforderung auf alle ihre Platten gleichzeitig zugegriffen
wird. Vorgänge auf Memberplatten werden sorgfältig geordnet und in Warteschlangen für
die Memberplatten gesetzt. Die vorliegende Erfindung betrifft Verbesserungen beim
Betrieb von RAID-Level 4 und 5 Systemen.
-
Eine Plattenarray auf RAID-Level 4 besteht aus N+1 Platten, wobei N Platten zum
Speichern von Daten verwendet werden und die zusätzliche Platte zum Speichern von
Paritätsinformationen dient. Zu speichernde Daten werden in Teile unterteilt, die aus einem
oder vielen Datenblöcken bestehen, die unter den Platten verteilt gespeichert werden. Die
entsprechenden Paritätsinformationen, die durch Durchführen eines bitweisen Exklusiv-
ODER-Vorgangs entsprechender Teile der über die N Datenplatten gespeicherten Daten
errechnet werden können, werden auf die dedizierte Paritätsplatte geschrieben. Diese
entsprechenden Datenteile zusammen mit den damit assoziierten Paritätsinformationen
werden als Redundanzgruppen bezeichnet. Die Paritätsplatte dient zum Rekonstruieren von
Informationen im Falle eines Plattenausfalls. Schreibvorgänge erfordern gewöhnlich den
Zugriff auf zwei Platten, d. h. eine der N Datenplatten und die Paritätsplatte, wie
nachfolgend ausführlicher erörtert wird. Lesevorgänge erfordern gewöhnlich nur Zugriff auf
eine einzelne der N Datenplatten, es sei denn, dass die zu lesenden Daten die auf jeder
Platte gespeicherte Blocklänge überschreiten.
-
Plattenarrays auf RAID-Level 5 sind RAID-Level 4 Systemen ähnlich, mit der
Ausnahme, dass zusätzlich zu den Daten auch Paritätsinformationen über die N+1 Platten
in jeder Gruppe verteilt werden. Jede der N+1 Platten in der Array beinhaltet einige Blöcke
zum Speichern von Daten und einige Blöcke zum Speichern von Paritätsinformationen. Der
Ort, an dem Paritätsinformationen gespeichert werden, wird durch einen vom Benutzer
implementierten Algorithmus gesteuert. Wie bei RAa-Level 4 Systemen, so muss
gewöhnlich auch für Schreibvorgänge auf RAID-Level 5 auf zwei Platten zugegriffen
werden. Es verlangt jedoch nicht mehr jeder Schreibvorgang auf die Array Zugriff auf
dieselbe dedizierte Paritätsplatte, wie dies bei RAID-Level 4 Systemen der Fall ist. Dieses
Merkmal bietet die Möglichkeit, parallele Schreibvorgänge durchzuführen.
-
So genannte Lese-Modifizier-Schreib-Methoden sind bekannt und werden später
ausführlicher erörtert.
-
Die Lese-Modifizier-Schreib-Methode ist dahingehend von Vorteil, dass während
des Schreibvorgangs nur auf die Daten- und Paritätslaufwerke, die aktualisiert werden,
zugegriffen werden muss. Ansonsten müssen alle Laufwerke in der Array gelesen oder es
muss darauf zugegriffen werden, um einen bitweisen Exklusiv-ODER-Vorgang
entsprechender Teile der über die Plattenlaufwerke gespeicherten Daten durchzuführen, um
Paritätsinformationen zu aktualisieren. Ein Nachteil des Lese-Modifizier-Schreib-Vorgangs
ist der, dass ein typischer Schreibvorgang auf RAID-Level 4 oder 5 mindestens zwei
Plattenlesevorgänge, gefolgt von zwei Plattenschreibvorgängen erfordert.
-
Der Laufwerksauslastungsgrad kann durch Modifizieren des Lese-Modifizier-
Schreib-Prozesses verbessert werden, indem die Ausführung von Datenlese- und
-schreibvorgängen von der Ausführung von Paritätslese-, -erzeugungs- und
-schreibvorgängen getrennt wird. Dieser modifizierte Lese-Modifizier-Schreib-Vorgang
identifiziert die Plattenlaufwerke, die die zu aktualisierenden Daten und
Paritätsinformationen enthalten, und setzt die richtigen Lese- und Schreibaufforderungen in
die E/A-Warteschlangen für die identifizierten Daten- und Paritätslaufwerke, wobei einige
oder alle Paritätsvorgänge zeitlich geplant werden, d. h. Lesen alter Paritätsinformationen
vom Paritätslaufwerk, Erzeugen neuer Paritätsinformationen und Schreiben der neuen
Paritätsinformationen auf das Paritätslaufwerk; zur Ausführung an der günstigsten Stelle in
der E/A-Warteschlange für das Paritätslaufwerk nach dem Lesen alter Daten vom
Datenlaufwerk.
-
Sowohl in der Lese-Modifizier-Schreib-Prozedur als auch in der oben erörterten
modifizierten Lese-Modifizier-Schreib-Prozedur müssen eigentliche Schreibübertragungen
neuer Daten und Paritätsinformationen nicht gleichzeitig erfolgen. Wenn entweder die
neuen Daten oder die neuen Paritätsinformationen vor einem Systemausfall geschrieben
werden, aber die jeweils anderen nicht, dann ist der Inhalt der Redundanzgruppe nach dem
Neustart des Systems uneinheitlich, d. h. die Paritätsinformationen stehen nicht im Einklang
mit den in der Redundanzgruppe gespeicherten Daten. Ein Neuversuch des beim
Systemausfall unterbrochenen Schreibvorgangs kann die Uneinheitlichkeiten in der
Redundanzgruppe nicht korrigieren.
-
Das Dokument WO-A-93/23803 offenbart eine Lese-Modifizier-Schreib-Methode
des Betreibens einer Plattenarray in der Form einer RAID, die das Protokollieren von
Informationen beinhaltet, die unvollständige Schreibvorgänge und assoziierte
Redundanzgruppen zwischen nichtflüchtigem Speicher zur weiteren Verarbeitung
identifizieren. Das Dokument EP-A-0569313 offenbart auch ein Verfahren und eine
Vorrichtung zum Betreiben eines RAID-Level 5 Systems, einschließlich einer
Assistenzeinheit, umfassend einen temporären Speicherbereich zum Aufnehmen von
Schreibdaten, um bei der Wiederherstellung von Daten aus einer ausgefallenen Einheit zu
assistieren. Solche bekannten Systeme sind zwar in der Lage, Paritätsinformationen mit
Daten in einer Redundanzgruppe in Einklang zu bringen, aber es können trotzdem
nachteiligerweise Ungenauigkeiten in den Daten entstehen.
-
Es besteht Bedarf an einem Verfahren und einer Struktur zum Schützen von
Plattenarray-Schreibvorgängen, um Datenverluste aufgrund des Auftretens eines
Stromausfalls oder einer Arraystörung vor Abschluss aller Schreibvorgänge zu verhindern.
-
Es ist Aufgabe der vorliegenden Erfindung, ein Plattenarray-Betriebsverfahren mit
Vorteilen gegenüber bekannten Verfahren bereitzustellen.
-
Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Betreiben
einer unabhängigen Plattenlaufwerksarray mit Paritätsredundanzgruppen bereitgestellt,
wobei das genannte Verfahren durch die folgenden Schritte gekennzeichnet ist:
-
Untersuchen der aktuellen Laufwerksaktivität zum Identifizieren von unfertigen Schreib-
E/A-Vorgängen als Reaktion auf den Empfang eines Reset-Signals von einem Host-System,
das die Ausführung von einem oder mehreren der Plattenschreib-E/A-Vorgänge unterbricht,
Protokollieren von Informationen zum Identifizieren der genannten unfertigen Schreib-E/A-
Vorgänge und der mit den genannten unfertigen Schreib-E/A-Vorgängen assoziierten
Redundanzgruppen in einem nichtflüchtigen Speicher, Prüfen auf Log-Einträge im
nichtflüchtigen Speicher während einer Plattenarray-Initialisierung nach dem System-Reset,
für jeden der genannten unfertigen Schreib-E/A-Vorgänge Durchführen eines bitweisen
Exklusiv-ODER-Vorgangs an entsprechenden Teilen der über die Datenspeicherbereiche
gespeicherten Daten innerhalb der mit dem genannten einen der genannten unfertigen
Schreib-E/A-Vorgänge assoziierten Redundanzgruppe, um Parität im Einklang damit zu
errechnen, Schreiben der errechneten Parität in die genannten Paritätsspeicherbereiche
innerhalb der genannten, mit dem genannten einen der genannten unfertigen Schreib-E/A-
Vorgänge assoziierten Redundanzgruppe, und umfassend den Schritt des Wiederholens
aller unvollständigen Schreibvorgänge nach der Neuberechnung der Paritätsinformationen,
um die auf den Array-Laufwerken gespeicherten Daten zu korrigieren.
-
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zum
Betreiben einer unabhängigen Plattenlaufwerksarray mit Paritätsredundanzgruppen
bereitgestellt, wobei das genannte Verfahren durch die folgenden Schritte gekennzeichnet
ist: Untersuchen der aktuellen Laufwerksaktivität zum Identifizieren von unfertigen
Schreib-E/A-Vorgängen als Reaktion auf den Empfang eines Batterieniedrigstandssignals
von einer unterbrechungsfreien Stromversorgung (USV) nach einem Niederstromzustand,
der die Ausführung eines oder mehrerer Plattenschreib-E/A-Vorgänge unterbricht,
Protokollieren von Informationen, die zum Identifizieren der genannten unfertigen Schreib-
E/A-Vorgänge und der mit den genannten unfertigen Schreib-E/A-Vorgängen assoziierten
Redundanzgruppen notwendig sind, in einem nichtflüchtigen Speicher nach Ablauf eines
vorbestimmten Zeitintervalls, das nach dem Empfang des genannten Niederstromsignals
beginnt, Prüfen auf Log-Einträge im nichtflüchtigen Speicher während einer Plattenarray-
Initialisierung im Anschluss an eine Wiederherstellung nach dem genannten
Niederstromzustand, für jeden der genannten unfertigen Schreib-E/A-Vorgänge
Durchführen eines bitweisen Exklusiv-ODER Vorgangs an entsprechenden Teilen der über
die Datenspeicherbereiche gespeicherten Daten in der mit dem genannten einen der
genannten unfertigen Schreib-E/A-Vorgänge assoziierten Redundanzgruppe, um Parität im
Einklang damit zu errechnen, Schreiben der errechneten Parität auf die genannten
Paritätsspeicherbereiche in der genannten, mit dem genannten einen der genannten
unfertigen Schreib-E/A-Vorgänge assoziierten Redundanzgruppe, und umfassend den
Schritt des Wiederholens aller unvollständigen Schreibvorgänge im Anschluss an die
Neuberechnung der Paritätsinformationen, um die auf den Array-Laufwerken gespeicherten
Daten zu korrigieren.
-
Es ist somit ein Vorteil der vorliegenden Erfindung, dass ein neues und nützliches
Verfahren zum Wiederherstellen von Einheitlichkeit zwischen Paritätsinformationen und
Daten in einer Plattenarray nach einer Unterbrechung von Schreib-E/A-Vorgängen
bereitgestellt werden kann.
-
Vorteilhaflerweise kann die vorliegende Erfindung ein Verfahren zum
Wiederherstellen von Einheitlichkeit zwischen Paritätsinformationen und Daten in einer
Plattenarray mit unabhängigem Zugriff wie beispielsweise einer RAID-Level 4 oder 5
Plattenarray bereitgestellt werden, das einen Lese-Modifizier-Schreib-Prozess zum
Aktualisieren von Daten und Paritätsinformationen verwendet.
-
Ferner kann die vorliegende Erfindung ein neues und nützliches Verfahren zum
Wiederherstellen von Einheitlichkeit zwischen Paritätsinformationen und Daten in einer
Plattenarray bereitstellen, die in einem herabgesetzten Modus arbeiten kann, wenn eines der
Laufwerke in der Array ausgefallen ist.
-
Gemäß einer besonderen Ausgestaltung der vorliegenden Erfindung wird ein
Verfahren zum Wiederherstellen von Einheitlichkeit zwischen in Redundanzgruppen
gespeicherten Daten und Paritätsinformationen in einem Plattenarray-System mit
unabhängigem Zugriff nach einem System-Reset oder einem Stromausfallzustand
bereitgestellt, der die Ausführung von einem oder mehreren Plattenschreib-E/A-Vorgängen
unterbricht. Das Verfahren beinhaltet die folgenden Schritte: Untersuchen der aktuellen
Laufwerksaktivität zum Identifizieren unfertiger Schreib-E/A-Vorgänge als Reaktion auf
den Empfang eines Reset-Signals von einem Host-System oder einem Niederstrom-
Warnsignal von einer unterbrechungsfreien Stromversorgung (USV); Protokollieren von
Informationen, die zum Identifizieren der unfertigen Schreib-E/A-Vorgänge und der mit
den unfertigen Schreib-E/A-Vorgängen assoziierten Redundanzgruppen notwendig sind, in
einem nichtflüchtigen Speicher; Prüfen auf Log-Einträge im nichtflüchtigen Speicher
während einer Plattenarray-Subsysteminitialisierung im Anschluss an den System-Reset
oder die Wiederherstellung der Stromversorgung nach einem Stromausfall; für jeden der
Protokoll identifizierten unfertigen Schreib-E/A-Vorgänge Durchführen eines bitweisen
Exklusiv-ODER-Vorgangs an entsprechenden Teilen der Daten, die in der mit den
unfertigen Schreib-E/A-Vorgängen assoziierten Redundanzgruppe gespeichert sind, um
Parität im Einklang damit zu errechnen; und Schreiben der errechneten Parität auf die
Paritätsspeicherbereiche in der mit dem unfertigen Schreib-E/A-Vorgang assoziierten
Redundanzgruppe.
-
In einer anderen Ausgestaltung, die besonders auf eine in einem herabgesetzten
Modus, d. h. mit einem ausgefallenen Plattenlaufwerk, arbeitende Plattenarray mit
unabhängigem Zugriff anwendbar ist, protokolliert das Verfahren auch Informationen, die
zum Identifizieren der Daten- und Paritätsdatenspeicherbereiche notwendig sind, auf denen
die unfertigen Schreib-E/A-Vorgänge neue Daten und Paritätsinformationen abbilden, und
eine Form der alten Daten und Paritätsinformationen, die auf diesen Daten- und
Paritätsdatenspeicherbereichen gespeichert sind. Nach dem System-Reset bzw. der
Wiederherstellung der Stromversorgung wird einheitliche Parität für jede mit einem
unfertigen Schreib-E/A-Vorgang assoziierte Redundanzgruppe bestimmt, indem die auf
dem nichtflüchtigen Speicher gespeicherten alten Daten und Paritätsinformationen mit den
derzeit im Datenspeicherbereich gespeicherten Daten kombiniert werden, auf dem der
unfertige Schreib-E/A-Vorgang neue Daten abbildet.
-
Die Erfindung kann auch ein Plattenarray-Subsystem für einen unabhängigen
Zugriff bereitstellen, das Daten und Paritatsinformationen mit Hilfe eines Lese-Modifizier-
Schreib-Prozesses aktualisiert, die als Reaktion auf eine von einem Host-System
empfangene Schreib-E/A-Anforderung auf Redundanzgruppen in der genannten Array
gespeichert wurden, und bei dem die Einheitlichkeit zwischen Daten und
Paritätsinformationen, die auf Daten- und Paritätsspeicherbereichen innerhalb der
genannten Redundanzgruppen gespeichert wurden, nach einem System-Reset, der die
Ausführung von einem oder mehreren Plattenschreib-E/A-Vorgängen unterbricht, wobei
das Verfahren die folgenden Schritte umfasst: Untersuchen der aktuellen Laufwerksaktivität
zum Identifizieren unfertiger Schreib-E/A-Vorgänge als Reaktion auf den Empfang eines
Reset-Signals von einem Host-System, Protokollieren von Informationen, die zum
Identifizieren von mit den genannten unfertigen Schreib-E/A-Vorgängen assoziierten
Redundanzgruppen notwendig sind, in einem nichtflüchtigen Speicher, Informationen, die
zum Identifizieren der Daten- und Paritätsspeicherbereiche notwendig sind, auf denen die
genannten unfertigen Schreib-E/A-Vorgänge neue Daten und Paritätsinformationen
abbilden, und eine Form der alten Daten und Paritätsinformationen, die auf den Daten- und
Paritätsdatenspeicherbereichen gespeichert sind, auf denen die genannten unfertigen
Schreib-E/A-Vorgänge neue Daten und Paritätsinformationen abbilden, und Prüfen auf
Log-Einträge im nichtflüchtigen Speicher während einer Plattenarray-
Subsysteminitialisierung nach dem System-Reset, für jeden der genannten unfertigen
Schreib-E/A-Vorgänge Kombinieren der alten Daten und Parität, die damit assoziiert sind
und die auf dem genannten nichtflüchtigen Speicher gespeichert sind, mit den Daten, die
zum aktuellen Zeitpunkt in dem Datenspeicherbereich gespeichert sind, auf dem der
genannte eine der genannten unfertigen Schreib-E/A-Vorgänge neue Daten zum Errechnen
einer Parität im Einklang mit den in der genannten Redundanzgruppe gespeicherten Daten
abbildet, und Schreiben der errechneten Parität auf die genannten Paritätsspeicherbereiche
in der genannten, mit dem genannten einen der genannten unfertigen Schreib-E/A-
Vorgänge assoziierten Redundanzgruppe.
-
Die Erfindung kann ferner in einem Plattenarray-Subsystem für unabhängigen
Zugriff, das Daten und Paritätsinformationen mit Hilfe eines Lese-Modifizier-Schreib-
Prozesses aktualisiert, die als Reaktion auf eine von einem Host-System empfangene
Schreib-E/A-Anforderung auf Redundanzgruppen in der genannten Array gespeichert
wurden, ein Verfahren zur Wiederherstellung von Einheitlichkeit zwischen Daten und
Paritätsinformationen bereitstellen, die auf Daten- und Paritätsspeicherbereichen innerhalb
der genannten Redundanzgruppen nach einem Niederstromzustand gespeichert wurden, der
die Ausführung von einem oder mehreren Plattenschreib-E/A-Vorgängen unterbricht, wobei
das genannte Verfahren die folgenden Schritte umfasst: Untersuchen der aktuellen
Laufwerksaktivität zum Identifizieren unfertiger Schreib-E/A-Vorgänge als Reaktion auf
den Empfang eines Batterieniedrigstandssignals von einer unterbrechungsfreien
Stromversorgung nach Ablauf eines vorbestimmten Zeitintervalls, das nach dem Eingang
des genannten Niederstromsignals eingeleitet wird, Protokollieren von Informationen, die
zum Identifizieren von mit den genannten unfertigen Schreib-E/A-Vorgängen assoziierten
Redundanzgruppen notwendig sind, in einem nichtflüchtigen Speicher, Informationen, die
zum Identifizieren der Daten- und Paritätsspeicherbereiche notwendig sind, auf denen die
genannten unfertigen Schreib-E/A-Vorgänge neue Daten und Paritätsinformationen
abbilden, und eine Form der alten Daten und Paritätsinformationen, die auf den Daten- und
Paritätsdatenspeicherbereichen gespeichert sind, auf denen die genannten unfertigen
Schreib-E/A-Vorgänge neue Daten und Paritätsinformationen abbilden, Prüfen auf Log-
Einträge im nichtflüchtigen Speicher während einer Plattenarray-Subsysteminitialisierung
nach einer Wiederherstellung von dem genannten Niederstromzustand, für jeden der
genannten unfertigen Schreib-E/A-Vorgänge Kombinieren der alten Daten und Parität, die
damit assoziiert sind und die auf dem genannten nichtflüchtigen Speicher gespeichert sind,
mit den Daten, die zum aktuellen Zeitpunkt in dem Datenspeicherbereich gespeichert sind,
auf dem der genannte eine der genannten unfertigen Schreib-E/A-Vorgänge neue Daten
zum Errechnen einer Parität im Einklang mit den in der genannten Redundanzgruppe
gespeicherten Daten abbildet, und Schreiben der errechneten Parität auf die genannten
Paritätsspeicherbereiche in der genannten, mit dem genannten einen der genannten
unfertigen Schreib-E/A-Vorgänge assoziierten Redundanzgruppe.
-
Die Erfindung kann auch ein Verfahren zum Gewährleisten von Einheitlichkeit
zwischen Daten und Paritätsinformationen in einem Plattenarray-System mit unabhängigem
Zugriff nach einem System-Reset oder einem Stromausfallzustand umfassen, der die
Ausführung von einem oder mehreren Plattenschreib-E/A-Vorgängen unterbricht. Das
Verfahren beinhaltet die folgenden Schritte: Untersuchen der aktuellen Laufwerksaktivität
zum Identifizieren unfertiger Schreib-E/A-Vorgänge als Reaktion auf den Empfang eines
Reset-Signals von einem Host-System oder eines Niederstrom-Warnsignals von einer
unterbrechungsfreien Stromversorgung, Protokollieren von Informationen, die zum
Identifizieren der genannten unfertigen Schreib-E/A-Vorgänge und der mit den unfertigen
Schreib-E/A-Vorgängen assoziierten Array-Redundanzgruppen in einem nichtflüchtigen
Speicher notwendig sind; und Prüfen auf Log-Einträge im nichtflüchtigen Speicher
während einer Plattenarray-Subsysteminitialisierung nach dem System-Reset oder der
Wiederherstellung der Stromversorgung nach einem Stromausfall. Für jeden der in dem
Protokoll identifizierten unfertigen Schreib-E/A-Vorgänge beinhaltet das Verfahren ferner
die folgenden Schritte: Durchführen eines bitweisen Exklusiv-ODER-Vorgangs
entsprechender Teile der Daten, die in der mit den unfertigen Schreib-E/A-Vorgängen
assoziierten Redundanzgruppe gespeichert sind, um Parität im Einklang damit zu
errechnen; und Schreiben der errechneten Parität auf die Paritätsspeicherbereiche in der mit
dem unfertigen Schreib-E/A-Vorgang assoziierten Redundanzgruppe. Für eine in einem
herabgesetzten Modus, d. h. mit einem gestörten Memberplattenlaufwerk, arbeitende Array
protokolliert das Verfahren auch Informationen, die zum Identifizieren der Daten- und
Paritätsdatenspeicherbereiche notwendig sind, auf denen die unfertigen Schreib-E/A-
Vorgänge neue Daten und Paritätsinformationen abbilden, und eine Form der alten Daten
und Paritätsinformationen, die auf den Daten- und Paritätsdatenspeicherbereichen
gespeichert sind, auf denen die unfertigen Schreib-E/A Vorgänge neue Daten und
Paritätsinformationen abbilden. Nach dem System-Reset oder nach der Wiederherstellung
der Stromversorgung wird einheitliche Parität für jede mit einem unfertigen Schreib-E/A-
Vorgang assoziierte Redundanzgruppe bestimmt, indem die auf dem nichtflüchtigen
Speicher gespeicherten alten Daten und Paritätsinformationen mit den bereits in dem
Datenspeicherbereich gespeicherten Daten kombiniert werden, auf denen der unfertige
Schreib-E/A-Vorgang neue Daten abbildet.
-
Die Erfindung wird nachfolgend, jedoch nur beispielhaft, mit Bezug auf die
Begleitzeichnungen näher beschrieben. Dabei zeigt:
-
Fig. 1 eine Blockdiagrammdarstellung einer Array auf RAID-Level 5 mit fünf
Plattenlaufwerken;
-
Fig. 2 und 3 einen traditionellen Lese-Modifizier-Schreib-Vorgang auf RAID-Level
5;
-
Fig. 4 den Prozess des Protokollierens anhängiger Schreib-E/A-Vorgänge auf einen
nichtflüchtigen Speicher gemäß einer Ausgestaltung der vorliegenden Erfindung;
-
Fig. 5 den Datenredundanzkorrekturprozess nach einem Host-System-Neustart
gemäß einer Ausgestaltung der vorliegenden Erfindung;
-
Fig. 6 den Prozess des Protokollierens anhängiger Schreib-E/A-Vorgänge und
Zwischenparität für einen RAID 4 oder 5 Betrieb im herabgesetzten Modus gemäß einer
Ausgestaltung der vorliegenden Erfindung; und
-
Fig. 7 den Datenredundanzkorrekturprozess für ein RAID 4 oder 5 System, das nach
einem Neustart des Host-Systems in einem herabgesetzten Modus arbeitet, gemäß einer
Ausgestaltung der vorliegenden Erfindung.
-
Ein RAID-Level 5 System mit fünf Daten- und Paritätsplattenlaufwerken, das mit
DRIVE A bis DRIVE E identifiziert ist, ist in Fig. 1 dargestellt. Ein Array-Controller 100
koordiniert die Übertragung von Daten zwischen dem Host-System 200 und den Array-
Plattenlaufwerken. Der Controller berechnet und prüft auch Paritätsinformationen. Die
Blöcke 101 bis 105 illustrieren die Art und Weise, in der Daten und Paritätsinformationen
auf den fünf Array-Laufwerken gespeichert werden. Datenblöcke werden als BLOCK 0 bis
BLOCK 15 bezeichnet. Paritätsblöcke sind als PARITY 0 bis PARITY 3 bezeichnet. Die
Beziehung zwischen Paritäts- und Datenblöcken lautet wie folgt:
-
PARITY 0 = (BLOCK 0) XOR (BLOCK 1) XOR (BLOCK 2) XOR (BLOCK 3)
-
PARITY 1 = (BLOCK 4) XOR (BLOCK 5) XOR (BLOCK 6) XOR (BLOCK 7)
-
PARITY 2 = (BLOCK 8) XOR (BLOCK 9) XOR (BLOCK 10) XOR (BLOCK 11)
-
PARITY 3 = (BLOCK 12) XOR (BLOCK 13) XOR (BLOCK 14) XOR (BLOCK 15)
-
Wie oben angegeben, können Paritätsdaten durch Durchführen eines bitweisen
Exklusiv-ODER-Vorgangs entsprechender Teile der über die N Datenlaufwerke
gespeicherten Daten errechnet werden. Da jedoch jedes Paritätsbit einfach das Exklusiv-
ODER-Produkt aller entsprechenden Datenbits von den Datenlaufwerken ist, lassen sich
neue Paritätsinformationen leicht anhand der alten Daten und alten Paritätsinformationen
sowie anhand der neuen Daten gemäß der folgenden Gleichung bestimmen:
-
neue Parität = (alte Daten XOR alte Parität) XOR neue Daten
-
Die Fig. 2 und 3 illustrieren einen Schreibvorgang auf RAID-Level 5 unter
Beteiligung von DRIVE A und DRIVE B, wobei neue Daten auf DRIVE A geschrieben
werden und Paritätsinformationen auf DRIVE B aktualisiert werden. Im Controller 100
enthaltene Strukturen zum Erleichtern des Lese-Modifizier-Schreib-Vorgangs beinhalten
den Transferpuffer 120 und die Exklusiv-ODER- (XOR) Logik 130. Die vorliegende
Erfindung betrifft ein Verfahren zum Gewährleisten von Paritätseinheitlichkeit innerhalb
einer Plattenarray nach einem System-Reset oder einer Unterbrechung der
Stromversorgung. Einzelheiten über den Aufbau des Controllers sind für ein Verständnis
der vorliegenden Erfindung nicht notwendig. Zusätzliche Einzelheiten über Aufbau und
Betrieb einer Form eines Plattenarray-Controllers, in dem die vorliegende Erfindung zur
Anwendung kommen kann, befinden sich jedoch in der US-A-5,257,391 mit dem Titel
"Disk Controller having Host Interface and Bus Switches for Selecting Buffer and Drive
Busses Respectively Based on Configuration Control Signals".
-
Unter der Anweisung eines Controller-Prozessors (nicht dargestellt) werden
zunächst alte Daten und Paritätsinformationen von den beiden in Fig. 2 gezeigten
Laufwerken gelesen. Die alten Daten und Paritätsinformationen werden jeweils aus den
Zielbereichen in den Laufwerken DRIVE A und DRIVE B gelesen und zur Exklusiv-
ODER-Logik 130 geleitet. Die Logik 130 kombiniert die empfangenen Daten und
Paritätsinformationen zum Erzeugen des Exidusiv-ODER-Produktes: alte Daten XOR alte
Parität, hierin als Zwischenparität bezeichnet. Die Zwischenparität wird in einem ersten
Bereich 120D im Puffer 120 gespeichert. Vom Host-System 200 empfangene neue Daten
werden gleichzeitig in einem zweiten Bereich 120A im Puffer 120 gespeichert.
-
Dann werden neue Daten und Paritätsinformationen wie in Fig. 3 gezeigt auf
DRIVE A und DRIVE B geschrieben. Die neuen Daten werden direkt von Bereich 120A im
Speicherpuffer 120 auf DRIVE A geschrieben. Die neuen Daten und die Zwischenparität
werden zur Exklusiv-ODER Logik 130 übertragen, um die neuen Paritätsinformationen zu
erzeugen. Diese neuen Paritätsinformationen, alte Daten XOR alte Parität XOR neue Daten,
werden auf DRIVE B geschrieben.
-
Gemäß einer Ausgestaltung der vorliegenden Erfindung beinhaltet das Plattenarray-
System ferner einen nichtflüchtigen Speicher 140 und zusätzliche Logik 150 im Controller
100, wie in Fig. 4 gezeigt ist. Die Logik 150 reagiert auf den Empfang eines Reset-Signals
vom Host-System 200 oder eines Batterieniedrigstandssignals von einer
unterbrechungsfreien Stromversorgung (USV) 300 und untersucht die aktuelle
Laufwerksaktivität, um unfertige Schreib-E/A-Vorgänge zu identifizieren. Der Controller
protokolliert dann, gemäß Logik 150, relevante Informationen über die unfertigen
Schreibvorgänge im nichtflüchtigen Speicher 140. Die im Speicher 140 protokollierten
Informationen für jeden unfertigen Schreibvorgang, die zum Auffinden potentiell
betroffener Redundanzgruppen in der Array notwendig sind, können die Identifikation von
Laufwerken, Blockadressen und RAID-Level beinhalten.
-
Fig. 5 illustriert den Datenredundanzkorrektur- oder -abgleichprozess nach einem
Neustart des Host-Systems. Während der Plattenarray-Subsysteminitialisierung nach dem
Reset oder nach einer Wiederherstellung der Stromversorgung nach einem Stromausfall
prüft der Array-Controller auf Log-Einträge im nichtflüchtigen Speicher. Wenn Einträge im
Protokoll vorliegen, muss ein Array-Korrekturprozess durchgeführt werden, bevor ein
Neuversuch unfertiger Schreibvorgänge oder ein Beginn neuer Schreibvorgänge zugelassen
werden kann. Der Abgleichvorgang für eine Redundanzgruppe ohne gestörte Laufwerke
umfasst die Durchführung eines bitweisen Exklusiv-ODER-Vorgangs entsprechender Teile
der über die Datenlaufwerke gespeicherten Daten in der Redundanzgruppe, um Parität im
Einklang damit zu errechnen und das Ergebnis auf dem Paritätslaufwerk DRIVE B in der in
Fig. 5 dargestellten Array zu speichern. In Fig. 5 werden die auf Laufwerken DRIVE A,
DRIVE C, DRIVE D und DRIVE E gespeicherten Daten gelesen, durch XOR-Logik 130
kombiniert und auf DRIVE B gespeichert.
-
Die Redundanzkorrekturprozedur gewährleistet zwar, dass die Paritätsinformationen
mit den Daten in der Redundanzgruppe im Einklang stehen, aber die Daten sind
möglicherweise je nach Status von Schreibvorgängen zum Zeitpunkt des Host-Reset oder
des Stromausfalls nicht genau. Eine Wiederholung aller unvollständigen Schreibvorgänge
nach der Neuberechnung von Paritätsinformationen, ein vom Host-System 200
durchgeführter Vorgang, ergibt eine Korrektur der auf den Array-Laufwerken gespeicherten
Daten.
-
Alternativ könnte der Array-Controller zunächst eventuelle Uneinheitlichkeiten in
den redundanten Daten suchen und dann korrigieren, aber aus Leistungsgründen ist es
zweckdienlicher, den Korrekturvorgang wie oben beschrieben auszuführen.
-
Der oben beschriebene Abgleichprozess muss geändert werden, wenn ein
Plattenlaufwerk in der Array-Redundanzgruppe nicht zur Verfügung steht und es heißt, dass
die Array in einem reduzierten oder herabgesetzten Modus arbeitet. In einem herabgesetzten
Betriebsmodus werden die Daten, wenn ein Lesevorgang Daten verlangt, die auf einem
überlebenden Plattenlaufwerk resident sind, so zugeführt, als wenn die Array intakt wäre
und in einem normalen Modus arbeiten würde. Wenn Daten vom gestörten Laufwerk
angefordert werden, muss die Array-Managementsoftware die Daten durch Lesen
entsprechender Blöcke aus den überlebenden Memberlaufwerken regenerieren und das
Exklusiv-ODER-Produkt von deren Inhalt berechnen.
-
Schreibvorgänge in einer in einem herabgesetzten Modus arbeitenden Array
variieren je nach dem Ort von Daten und Paritätsinformationen, die während des Lese-
Modifizier-Schreib-Vorgangs aktualisiert werden müssen. Drei Schreibsituationen sind
möglich.
-
Erstens eine Situation, in der Daten und Paritätsinformationen auf überlebende
Array-Laufwerke abgebildet werden. Wenn in dieser Situation Daten auf eine
Redundanzgruppe geschrieben werden, in der die zu aktualisierenden Datenblöcke und
Paritätsblöcke jeweils auf überlebenden Laufwerken resident sind, dann wird die Lese-
Modiflzier-Schreib-Routine so ausgeführt, als wäre die Array intakt.
-
Zweitens eine Situation, in der Paritätsinformationen auf einem gestörten Array-
Laufwerk abgebildet werden. Wenn hier die aktualisierungsbedürftigen Paritätsblöcke auf
dem gestörten Laufwerkselement resident sind, dann wird keine neue Parität errechnet oder
geschrieben. Vom Host empfangene neue Daten werden auf das überlebende Datenlaufwerk
geschrieben.
-
Drittens eine Situation, in der Daten auf ein gestörtes Array-Laufwerk abgebildet
werden. Wenn in dieser Situation Daten auf das gestörte Memberlaufwerk geschrieben
werden sollen, dann werden die neuen Paritätsinformationen durch Errechnen des Exklusiv-
ODER-Produktes der vom Host empfangenen neuen Daten und der entsprechenden
Datenblöcke (ausschließlich Paritätsblöcke) von den überlebenden Array-Laufwerken
bestimmt. Die neue Parität wird dann über die alte Parität geschrieben. Die vom Host
empfangenen neuen Daten werden nicht auf die Array-Laufwerke geschrieben.
-
Für unterbrochene Schreibvorgänge, bei denen Daten und Paritätsinformationen auf
überlebende Array-Laufwerke abgebildet werden, ist der Paritätsabgleichprozess für eine
Array, die in einem herabgesetzten Modus arbeitet, nur dann möglich, wenn eine Form der
ursprünglichen redundanten Daten in einem nichtflüchtigen Speicher zusammen mit den
unterbrochenen Schreibprotokollinformationen konserviert wird. Für einen unterbrochenen
Schreibvorgang auf RAID-Level 5 könnten die zu konservierenden redundanten Daten die
Zwischenparität (alte Daten XOR alte Parität) sein. Fig. 6 illustriert den Prozess des
Protokollierens anhängiger Schreib-E/A-Vorgänge und Zwischenparität für einen
herabgesetzten Modusbetrieb auf RAID-Level 4 oder 5 gemäß der vorliegenden Erfindung.
Die Zwischenparität kann vom flüchtigen Speicherpuffer 120 gelesen werden. Eine
Erläuterung der Zwischenparität erhält man durch Bezugnahme auf Fig. 2 und die oben
gegebene zugehörige Beschreibung. Paritätsinformationen, die mit den auf der
Redundanzgruppe gespeicherten Daten im Einklang stehen, können bestimmt werden,
indem die Zwischenparität mit den aktuellen Daten kombiniert wird, die auf den Medien
des unterbrochenen Schreibdatenlaufwerks gespeichert sind, wie in Fig. 7 gezeigt ist.
-
Für unterbrochene Schreibvorgänge, bei denen Paritätsinformationen oder Daten auf
einem gestörten Array-Laufwerk abgebildet werden, ist es nicht notwendig, Zwischenparität
auf dem nichtflüchtigen Speicher zu speichern.
-
Zusammenfassend, die Array-Controllerlogik zum Bewahren der
Paritätseinheitlichkeit muss die folgenden Vorgänge durchführen:
-
1. Protokollieren von Informationen über unfertige Schreibvorgänge, mit denen der
Array-Controller später betroffene Bereiche zu nichtflüchtigem Speicher identifizieren
kann;
-
2. Konservieren, in einer Array mit herabgesetztem Modus, einer Kopie von einer
Form der ursprünglichen redundanten Daten, die zum Korrigieren der Datenredundanz in
einem nichtflüchtigen Speicher notwendig sind;
-
3. Prüfen des Protokolls während der normalen Initialisierungsverarbeitung; und
-
4. Korrigieren, für jeden Eintrag im Protokoll, potenzieller Uneinheitlichkeiten in
den redundanten Daten wie oben beschrieben.
-
Die Array-Controller-Leistung kann bewahrt werden, wenn Einträge für unfertige
Schreibvorgänge in das Protokoll nur zum Unterbrechungszeitpunkt vorgenommen werden,
so dass der normale Verarbeitungsoverhead reduziert wird. Wenn der Array-Controller ein
Reset-Signal vom Host erhält, dann tastet er die Array-Datenstrukturen ab, um die aktuelle
Array-Aktivität zu identifizieren. Der Controller nimmt dann die benötigten Einträge über
unfertige Schreibvorgänge in den nichtflüchtigen Speicher vor, bevor er die Reset-
Initialisierung ausführt.
-
Ein ähnlicher Prozess erfolgt nach dem Empfang einer Niederstromwarnung von der
USV. Nach einem vorbestimmten Zeitintervall führt die Array-Controller-Logik eine
Routine aus, die die Ausgabe neuer Lese- oder Schreibanforderungen an die Array-
Laufwerke verhindert, tastet die Array-Datenstrukturen zum Identifizieren der aktuellen
Array-Aktivität ab und nimmt dann die benötigten Einträge über unfertige Schreibvorgänge
in den nichtflüchtigen Speicher vor. Einige der unfertigen Schreibvorgänge wurden
möglicherweise bereits vor dem Stromausfall erfolgreich beendet. Sobald Schreibvorgänge
beendet sind, werden Log-Einträge in Verbindung mit diesen Schreibvorgängen entfernt,
weil sie nicht mehr als unfertig angesehen werden. Alternativ führt das System zum Schutz
vor einem Stromausfall in einem System, das keine Niederstromwarnung von der USV
erhält, Einträge für alle unfertigen Schreibvorgänge im nichtflüchtigen Speicher. Auch hier
werden, sobald Schreibvorgänge fertig sind, die mit diesen Schreibvorgängen assoziierten
Log-Einträge aus dem nichtflüchtigen Speicher entfernt.
-
So wird ersichtlich, dass die vorliegende Erfindung ein neues und nützliches
Verfahren zum Wiederherstellen von Einheitlichkeit zwischen Paritätsinformationen und
Daten in einer Plattenarray nach einer Unterbrechung von Schreib-E/A-Vorgängen bietet,
das besonders für Plattenarray-Systeme mit unabhängigem Zugriff nützlich ist, wie z. B. für
Plattenarrays auf RAID-Level 4 oder 5, die Daten und Paritätsinformationen mit Hilfe eines
Lese-Modifizier-Schreib-Prozesses aktualisieren.
-
Es wurde zwar nur eine Ausgestaltung der Erfindung beschrieben, aber es ist zu
verstehen, dass verschiedene Änderungen innerhalb des Umfangs der beiliegenden
Ansprüche möglich sind, und somit ist die Erfindung nicht auf die Einzelheiten der obigen
Ausgestaltung beschränkt. So kann beispielsweise ein nichtflüchtiger Speicher 140 ein
PROM-, EPROM- oder EEPROM-Gerät, ein PCMCIA-Flash-Kartengerät oder ein
Magnetplattenlaufwerk sein.