-
Rechnersysteme
umfassen oft ein Massenspeichersystem zum Speichern von Daten. Ein
verbreiteter Typ eines Massenspeichersystems ist ein "RAID"-Speichersystem (RAID
= redundant arrays of inexpensive disks = redundante Anordnung von
kostengünstigen
Platten). Eine detaillierte Diskussion von RAID-Systemen ist in
einem Buch mit dem Titel "The
RAID Book: A Source Book for RAID Technology" zu finden, das am 9. Juni 1993 durch
den RAID Advisory Board in Lino Lakes, Minn., veröffentlicht wurde.
-
Ein
typisches RAID-Speichersystem, wie es zum Beispiel in der US-A-5,392,244
beschrieben ist, umfaßt
eine Steuerung und eine Platten- bzw. Laufwerksanordnung, die über eine
Kommunikationsverbindung miteinander gekoppelt sind. Die Plattenanordnung
umfaßt
mehrere magnetische Speicherplatten zum Speichern von Daten. Während des
Betriebs ist die Steuerung eines RAID-Speichersystems wirksam, um
Eingabe/Ausgabe-Befehle (E/A-Befehle) von einem externen Host-Computer
zu empfangen. Ansprechend auf diese E/A-Befehle liest und schreibt die
Steuerung Daten auf die Platten bzw. von den Platten in der Plattenanordnung
und koordiniert den Datentransfer zwischen der Plattenanordnung
und dem Host-Computer. Abhängig
von der RAID-Implementierungsebene erzeugt die Steuerung in einem RAID-System
auch redundante Daten und schreibt sie auf die Plattenanordnung
gemäß einem
besonderen Datenredundanzschema. Die redundanten Daten ermöglichen
die Wiederherstellung von Anwenderdaten in dem Fall, daß die Daten
verfälscht
bzw. korrumpiert werden.
-
Ein
RAID-Speichersystem der Ebene 1 (RAID1) umfaßt eine oder mehrere Datenplatten
zum Speichern von Daten und eine gleiche Anzahl zusätzlicher "Spiegel"-Platten zum Speichern
der redundanten Daten. Die redundanten Daten sind in diesem Fall einfach
eine Kopie der Daten, die in den Spiegelplatten gespeichert sind.
Wenn Daten verfälscht
werden, die in einer oder mehreren Datenplatten gespeichert sind,
können
die Spiegelplatten verwendet werden, um die verfälschten Daten zu rekonstruieren. Andere
RAID-Ebenen speichern redundante Daten zu Anwenderdaten, verteilt über mehrere
Platten. Wenn Daten auf einer Platte verfälscht werden, werden die Daten
auf den anderen Platten verwendet, um die verfälschten Daten zu rekonstruieren.
-
Jeder
der RAID-Ebenen ist eine besondere Mischung von Entwurfskompromissen
bzw. -abstrichen zugeordnet. zum Beispiel hat ein RAID1-Speichersystem
typischerweise eine längere
mittlere Zeit bis zum Auftreten eines Fehlers (MTTF; MTTF = mean
time to failure) und eine höhere
E/A-Rate als ein RAID5-Speichersystem. Für die Zwecke dieses Dokuments
bezieht sich der Begriff "Fehler" auf einen tatsächlichen
Verlust von Daten. Wenn z. B. ein einzelnes Byte von Anwenderdaten
in einem RAID1-Speichersystem verfälscht wird, tritt kein Fehler
auf, solange die entsprechenden Spiegeldaten noch verwendet werden
können,
um die verfälschten Daten
wiederherzustellen. Wenn jedoch die entsprechenden Spiegeldaten
ebenfalls verfälscht
werden, tritt ein Fehler auf, da die Daten dann nicht wiederherstellbar
sind. Die MTTF kann somit als ein Maß für das Risiko eines Datenverlusts
angesehen werden.
-
Um
die Vorteile von mehr als einem Datenredundanzschema zu kombinieren,
wurden hierarchische Datenspeichersysteme entwickelt. Solche Systeme
umfassen typischerweise jeweils mehr als einen Speicherbereich,
von denen jeder zum Speichern von Daten gemäß einem bestimmten Datenredundanzschema
dient. Zum Beispiel können
bei einem typischen hierarchischen RAID-Speichersystem Daten gemäß mehreren
RAID-Architekturen gespeichert werden.
-
Ein
allgemeiner Typ eines hierarchischen RAID-Speichersystems umfaßt einen RAID1-Speicherbereich
und einen RAID5- Speicherbereich.
Kritische Daten werden in dem RAID1-Speicherbereich gespeichert,
um den Vorteil der relativ längeren
MTTF und höheren
E/A-Rate zu nutzen. Weniger kritische Daten werden in dem RAID5-Speicherbereich
gespeichert, um den Vorteil der Charakteristik niedrigerer Kosten
pro Megabyte eines RAID5-Speicherredundanzschemas zu nutzen.
-
Eine
allgemeine Funktion der Steuerung bei einem hierarchischen RAID-Speichersystem
ist es, intermittierend jede Platte in dem System bezüglich des
Vorliegens einer Datenverfälschung
zu testen. Dies dient dazu, die MTTF des Speichersystems zu verlängern, da
verfälschte
Daten, die detektiert wurden, wiederhergestellt werden können, bevor
ein Fehler auftritt, d. h. bevor Daten, die verwendet würden, um
verfälschte
Daten wiederherzustellen, ebenfalls verfälscht werden. Historisch wurden
diese Tests erreicht, indem die Daten gleichmäßig über das Speichersystem getestet
wurden.
-
Die
US-A-5,572,661 beschreibt Verfahren und Vorrichtungen zum Erfassen
von Datenverlusten in hierarchischen Datenspeichersystemen. Der
physikalische Speicherraum wird in einen ersten virtuellen Speicherraum
abgebildet, welcher den physikalischen Speicherraum als mehrere
Raid-Bereiche darstellt, die Daten gemäß verschiedenen Raid-Ebenen wiedergibt.
Einzelne Raid-Bereiche erstrecken sich über mehrere Festplatten und
schließen
eine Region des physikalischen Speicherplatzes auf einzelnen Speicherfestplatten
ein. Der erste virtuelle Speicherraum wird in einen zweiten virtuellen
Speicherraum abgebildet, der den physikalischen Speicherraum als eine
Vielzahl virtueller Blöcke
wiedergibt. Die einzelnen Raid-Bereiche
werden überwacht,
um Datenverluste zu erfassen. Beim Erfassen von Datenverlusten innerhalb
einer Region eines Raid-Bereichs wird diese Region als ungültig markiert.
Beim Erfassen von Datenverlusten innerhalb eines zweiten Bereichs
im selben Raid-Bereich wird bestimmt, wie umfangreich der Datenverlust
ist, und für
den Fall, daß nur
geringfügige
Verluste vorliegen, wird der Bereich als defekt markiert, um anzuzeigen,
daß die
Daten, die in diesem Bereich gespeichert sind, unzuverlässig sind. Handelt
es sich bei dem Datenverlust um einen signifikanten Verlust, so
wird der gesamte Raid-Bereich als nicht zugreifbar (tot) gekennzeichnet.
-
Die
DE 19536232C1 beschreibt
ein Festplatten-Speichersystem mit gekoppelten Platten. Bei einem
solchen Raid-System sind zusätzliche
Ersatzplatten vorgesehen, die in vorgegebenen Zeitabschnitten jeweils
vorübergehend
gestartet werden, um die Funktionsfähigkeit zu überprüfen. Im Fehlerfall stehen dann
weniger abgenutzte Festplatten zur Verfügung, was die Betriebssicherheit
erhöht.
-
Die
US-A-5,832,204 beschreibt ein Speichersystem, welches einen Host
aufweist, der mit einem Überwachungsprozessor
verbunden ist, der seinerseits mit einem RAID-Speichersystem verbunden ist, welches
eine Vielzahl von HDA-Anordnungen (HDA = Head Disk Assembly) aufweist.
Wenn während
eines Leseversuchs ein HDA-Gerät
einen Fehler feststellt, wird ein Wiedererlangungssignal an den Überwachungsprozessor
gesendet, wodurch der Prozessor und das HDA-Gerät einen Fern- und einen Lokal-Wiedergewinnungsprozess
parallel starten.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren und ein
Dateispeichersystem zu schaffen, um in einem RAID-System die zum
Verifizieren der gespeicherten Daten verfügbare Zeit optimal zu verwenden,
um die Wahrscheinlichkeit des Auftretens eines Datenverlusts in
dem RAID-System zu reduzieren.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und durch ein
RAID-Dateispeichersystem
gemäß Anspruch
4 gelöst.
-
Bei
einem bevorzugten Ausführungsbeispiel ist
die Erfindung als ein Verfahren zum Testen eines Datenspeichersystems
bezüglich
verfälschter
Daten implementiert. Das Speichersystem umfaßt einen ersten Datenspeicherbereich,
dem eine erste MTTF zugeordnet ist, und einen zweiten Datenspeicherbereich,
dem eine zweite MTTF zugeordnet ist. Das Verfahren umfaßt vorzugsweise
das Testen des ersten Speicherbereichs während einer ersten Zeitdauer und
das Testen des zweiten Speicherbereichs während einer zweiten Zeitdauer.
Die erste Zeitdauer basiert mindestens auf der ersten MTTF und der
zweiten MTTF. Auch die zweite Zeitdauer basiert auf der ersten MTTF
und der zweiten MTTF.
-
Es
wird darauf hingewiesen, daß das
Verfahren in einem hierarchischen RAID-Speichersystem durchgeführt werden
kann. Der erste Speicherbereich kann zum Speichern von Daten gemäß einem ersten
RAID-Redundanzschema und der zweite Speicherbereich zum Speichern
von Daten gemäß einem
zweiten RAID-Redundanzschema dienen. Das erste RAID-Redundanzschema
kann beispielsweise ein RAID-Redundanzschema der Ebene 1 sein. Das
zweite RAID-Redundanzschema kann ein RAID-Redundanzschema der Ebene
5 oder der Ebene 6 sein.
-
Bei
einem weiteren Ausführungsbeispiel
ist die Erfindung als ein Datenspeichersystem implementiert. Das
Datenspeichersystem umfaßt
einen ersten Datenspeicherbereich, dem eine erste MTTF zugeordnet
ist, einen zweiten Datenspeicherbereich, dem eine zweite MTTF zugeordnet
ist, und eine Einrichtung zum Testen des ersten Datenspeicherbereichs
bezüglich
Datenverfälschung
mit einer ersten Frequenz, die mindestens auf der ersten und der zweiten
MTTF basiert. Außerdem
kann die Testeinrichtung ferner dazu dienen, den zweiten Datenspeicherbereich
bezüglich
Datenverfälschung
mit einer zweiten Frequenz zu testen, die mindestens auf der ersten
MTTF und der zweiten MTTF basiert. Der erste Datenspeicherbereich
kann zum Speichern von Daten gemäß einem
ersten Datenredundanzschema dienen und der zweite Speicherbereich
kann zum Speichern von Daten gemäß einem
zweiten Datenredundanzschema dienen. Das erste Datenredundanzschema
kann beispielsweise ein RAID-Datenredundanzschema der Ebene 1 sein.
Außerdem
kann das zweite Datenredundanzschema beispielsweise ein RAID-Datenredundanzschema
der Ebene 5 oder der Ebene 6 sein.
-
Bei
einem weiteren Ausführungsbeispiel
ist die Erfindung als ein weiteres Datenspeichersystem implementiert.
In diesem Fall umfaßt
das Datenspeichersystem einen ersten Datenspeicherbereich, dem eine
erste MTTF zugeordnet ist, einen zweiten Datenspeicherbereich, dem
eine zweite MTTF zugeordnet ist, und eine Steuerung, die wirksam
ist, um E/A-Befehle von einem externen Host zu empfangen und den
Datentransfer zwischen dem externen Host und dem ersten und dem
zweiten Da tenspeicherbereich zu koordinieren. Die Steuerung ist
ferner wirksam, um den ersten Speicherbereich bezüglich Datenverfälschung
mit einer ersten Frequenz zu testen, die mindestens auf der ersten
MTTF und der zweiten MTTF basiert. Außerdem kann die Steuerung wirksam
sein, um den zweiten Speicherbereich mit einer zweiten Frequenz
zu testen, die mindestens auf der ersten MTTF und der zweiten MTTF
basiert. Wenn die erste MTTF kürzer
ist als die zweite MTTF, dann ist die erste Frequenz höher als
die zweite Frequenz. Der erste Datenspeicherbereich kann dazu dienen, Daten
gemäß einem
RAID-Datenredundanzschema der Ebene 1 zu speichern, und der zweite
Datenspeicherbereich kann dazu dienen, Daten gemäß einem RAID-Datenredundanzschema
der Ebene 5 oder der Ebene 6 zu speichern.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockdiagramm eines hierarchischen Speichersystems, das ein erstes
Ausführungsbeispiel
der Erfindung einschließt;
-
2 das
Verhältnis
zwischen der MTTF(System) und dem Verhältnis von (t_RAID_5)/(t_RAID_1)
für das
Speichersystem, das in 1 dargestellt ist;
-
3 ein
grobes Schema der Steuerung für das
Speichersystem, das in 1 dargestellt ist;
-
4 ein
Flußdiagramm,
das allgemein die Logik darstellt, der die Steuerung folgt, um jeden
der beiden Speicherbereiche bezüglich
Datenverfälschung
zu testen; und
-
5 ein
Blockdiagramm eines zweiten Datenspeichersystems, das ein zweites
Ausführungsbeispiel
der Erfindung einschließt.
-
Gemäß 1 ist
die Erfindung zu Zwecken der Darstellung in einem hierarchischen
RAID-Speichersystem 104 verkörpert. Das Speichersystem 104 umfaßt eine
Steuerung 106 und eine Plattenanordnung 108. Die
Steuerung 106 ist über
ein erstes Kommunikationsverbindungsglied 107 mit einem
externen Host-Computer 105 und über ein zweites Kommunikationsverbindungsglied 110 mit
der Plattenanordnung 108 verbunden. Jedes dieser Verbindungsglieder
kann einen beliebigen geeigneten Kommunikationsweg darstellen. Zum
Beispiel kann das erste Kommunikationsverbindungsglied 107 ein lokales
Netz (LAN; LAN = local area network) darstellen. Das zweite Kommunikationsverbindungsglied 110 kann
z. B. eine SCSI-Schnittstelle (SCSI = small computer system interface)
darstellen.
-
Die
Plattenanordnung 108 umfaßt magnetische Speicherplatten
(Platten) zum Speichern von Datenblöcken auf herkömmliche
Weise. Die Platten können
für Erklärungszwecke
so konzeptualisiert werden, daß sie
einen ersten Speicherbereich 112 und einen zweiten Speicherbereich 114 bilden.
-
Der
erste Speicherbereich (RAID1-Speicherbereich) 112 dient
zum Speichern von Daten gemäß einem
RAID1-Datenredundanzschema. Die Spiegelredundanz ist schematisch
durch die drei Paare von Platten dargestellt. Anwenderdaten werden
durch die Steuerung 106 auf Platten D1 bis D3 gespeichert, während eine
Kopie der Anwenderdaten auf den Platten D4 bis D6 gespeichert wird.
Der zweite Speicherbereich (RAID5-Speicherbereich) 114 dient zum
Speichern von Daten gemäß einem
RAID5-Datenredundanzschema. Anwenderdaten werden auf Platten D7
bis D10 und Paritätsdaten
werden auf einer Platte D11 gespeichert.
-
Während des
Betriebs kann die Steuerung 106 eine Anzahl von Standardfunktionen
durchführen.
Diese Funktionen können
das Empfangen von E/A-Befehlen vom Host-Computer 105 und
ansprechend auf einen E/A-Befehl ein Koordinieren von Datentransfer
zwischen dem Host-Computer 105 und den beiden Speicher bereichen
umfassen. Die Steuerung 106 kann ferner wirksam sein, um
gemäß einer Standardmigrationspolitik
Daten zwischen dem ersten Speicherbereich 112 und dem zweiten
Speicherbereich 114 zu transferieren.
-
Bei
diesem Ausführungsbeispiel
wird angenommen, daß die
Steuerung 106 Daten in Blöcken von jedem der Speicherbereiche
liest und auf sie schreibt. Beim Schreiben eines Datenblocks auf
eine Platte schreibt die Steuerung 106 auch einen "Fehlercode" (in einer herkömmlichen
Weise) für
den Block. Für
Zwecke dieses Dokuments bezieht sich der Ausdruck "Fehlercode" auf einen beliebigen
Satz von Daten, die verwendet werden können, um zu bestimmen, ob ein
Datenblock verfälscht
ist. Somit kann der Fehlercode beispielsweise eine zyklische Redundanzprüfung oder
ein Prüfsummenwert
sein.
-
Außer den
gerade erwähnten
Funktionen führt
die Steuerung 106 auch eine Datentestfunktion aus. Wie
unten detaillierter beschrieben wird, führt die Steuerung 106 diese
Funktion aus, indem sie die Plattenanordnung 108 (blockweise)
bezüglich
des Vorliegens von Datenverfälschung überprüft. Wenn während des
Tests verfälschte
Daten gefunden werden, ist die Steuerung 106 (wenn möglich) wirksam, um
die Daten unter Verwendung der gespeicherten redundanten Daten wiederherzustellen.
-
Wie
zu erwarten ist, bestehen Beschränkungen
dahingehend, wie oft und wann die Datentestfunktion durchgeführt wird.
Dies erlaubt der Steuerung 106, andere Funktionen durchzuführen (wie
z. B. auf eine E/A-Abfrage anzusprechen). Bei diesem Ausführungsbeispiel
z. B. ist die Datentestfunktion eine unterbrechbare Hintergrundaufgabe
mit niedriger Priorität,
die jedesmal durchgeführt
wird, wenn die Steuerung 106 einen Leerlaufzustand betritt.
Im Ergebnis wird angenommen, daß während einer
gegebenen Zeitdauer ("t_Periode") und unter erwarteten
Bedingungen der Betrag der Zeit, die für das Testen der Plattenanordnung 108 aufgewandt
wird, ("t_test") beträgt.
-
Um
die Diskussion zu vereinfachen, wird auf den Betrag der Zeit, die
während "t_test" zum Testen des RAID1-Speicherbereichs 112 aufgewendet
wird, mit "t_RAID1" Bezug genommen.
Desgleichen wird auf den Betrag der Zeit, die während t_test zum Testen des
RAID5-Speicherbereichs 114 aufgewendet wird, mit "t_RAID5" Bezug genommen.
Somit ist t_test gleich t_RAID1 + t_RAID5.
-
Es
ist wichtig für
diese Diskussion darauf hinzuweisen, daß jedem der beiden Speicherbereiche eine
charakteristische MTTF zugeordnet ist. Der Wert der MTTF kann eine
Funktion einer Anzahl von Faktoren sein, wie z. B. des speziellen
Datenredundanzschemas und der Zuverlässigkeit der Komponenten, die
in einem speziellen Speicherbereich verwendet werden. Zur Vereinfachung
der Diskussion wird auf die MTTF des RAID1-Speicherbereichs 112 mit "MTTF(RAID1)" Bezug genommen.
Desgleichen wird auf die MTTF des RAID5-Speicherbereichs 114 mit "MTTF(RAID5)" Bezug genommen.
-
Außerdem wird
der Ausdruck "MTTF(System)" hierin mit Bezug
auf die MTTF der Plattenanordnung 108 verwendet. Somit
ist MTTF(System) ein Gesamtmaß für die Zuverlässigkeit
der Plattenanordnung 108. Außerdem ist erkennbar, daß MTTF(System)
eine Funktion sowohl von MTTF(RAID1) als auch von MTTF(RAID5) ist.
-
Wie
zu erwarten ist, ist MTTF(RAID5) kleiner als MTTF(RAID1). Somit
ist bei den beiden Speicherbereichen das Risiko eines Fehlers (d.
h. eines Datenverlustes) für
Daten, die in dem RAID5-Speicherbereich 114 gespeichert
sind, größer. Demgemäß ist erkennbar,
daß MTTF(System)
optimiert werden kann, wenn t_RAID5 erhöht wird, um dieses größere Fehlerrisiko
auszugleichen. Es ist jedoch auch erkennbar, daß, wenn t_RAID_5 erhöht wird,
das Risiko eines Fehlers in dem RAID1-Speicherbereich 112 erhöht wird,
da der Betrag der Zeit (t_RAID_1) reduziert wird, der zum Testen
dieses Bereichs aufgewendet wird. Somit muß das erhöhte Risiko eines Fehlers im
RAID1-Speicherbereich 112 berücksichtigt werden, wenn t_RAID_5
größer als
t_RAID_1 gemacht wird.
-
Aus
der vorangehenden Diskussion ist erkennbar, daß es einen optimalen Satz von
Werten für t_RAID_1
und t_RAID_5 gibt, der eine optimale MTTF(System) ergibt. Zur Vereinfachung
der Diskussion wird auf den optimalen Wert von t_RAID_1 mit "t_RAID_1(Optimum)" Bezug genommen.
Desgleichen wird auf den optimalen Wert von t_RAID_5 mit "t_RAID_5(Optimum)" Bezug genommen.
Es ist wichtig festzustellen, daß t_RAID_5(Optimum) und t_RAID_1(Optimum)
beide Funktionen von MTTF(RAID1) und MTTF(RAID5) sind.
-
Um
diesen Punkt darzustellen, zeigt 2 die Beziehung
zwischen MTTF(System) und dem Verhältnis von (t_RAID_5)/(t_RAID_1)
für das
gegenwärtige
Ausführungsbeispiel.
Wie es in 2 angezeigt ist, wird ein optimierter
Wert von MTTF(System) erhalten, wenn (t_RAID_5)/(t_RAID_1) = K.
Somit ist t_RAID_5(Optimum) = K·t_RAID_1(Optimum).
-
Es
wird darauf hingewiesen, daß in
der Praxis der Wert von K unter Verwendung einer Standard-Statistikanalyse
oder durch empirische Verfahren oder durch beide bestimmt wird.
Diese Analyse basiert primär
auf den Werten von MTTF(RAID1), MTTF(RAID5) und t_test. Es ist auch
zu erwarten, daß K
bei diesem Beispiel größer ist
als 1, da MTTF(RAID5) kleiner ist als MTTF(RAID1).
-
Gemäß den Prinzipien
der vorliegenden Erfindung ist die Steuerung 106 angepaßt, um die
Datentestfunktion so durchzuführen,
daß unter
erwarteten Bedingungen t_RAID5 = K t_RAID1. Wie in 2 gezeigt
ist, kann dies zu einer Optimierung des Wertes von MTTF(System)
führen.
-
Um
ein Beispiel darzustellen, wie die Testfunktion implementiert werden
kann, wird auf die 3 und 4 Bezug
genommen. 3 ist ein grobes Schema der
Steuerung 106. Wie gezeigt ist, umfaßt die Steuerung 106 einen
Prozessor 202, einen Speicher 204, eine Host-Schnittstelle 206 und eine
Plattenschnittstelle 208, die alle über einen lokalen Bus 210 verbunden
sind. Es wird darauf hingewiesen, daß jede dieser Komponenten tatsächlich mehrere
Geräte
umfassen kann. Zum Beispiel kann der Speicher 204 einen
oder mehrere Nur-Lese-Speicher
(ROM; ROM = read only memory) und einen oder mehrere Speicher mit
wahlfreiem Zugriff (RAM; RAM = random access memory) umfassen. Der
lokale Bus 210 kann z. B. einen oder mehrere Datenbusse
mit begleitenden Steuerbussen umfassen. Wie gezeigt ist, versieht
die Host-Schnittstelle 206 die Steuerung 106 mit
einer Schnittstelle zu dem Host-Computer 105 (über das
erste Kommunikationsverbindungsglied 107). Die Plattenschnittstelle 208 liefert
eine Schnittstelle zu der Plattenanordnung 108 (über das
zweite Kommunikationsverbindungsglied 110).
-
Der
Prozessor 202 ist wirksam, um verschiedene Firmwareprogramme
auszuführen,
die im Speicher 204 gespeichert sind. Viele dieser Programme können herkömmlich sein
und der Steuerung 106 ermöglichen, verschiedene Funktionen
durchzuführen, die
oben erwähnt
wurden. Zum Beispiel können
die Programme der Steuerung 106 ermöglichen, E/A-Befehle zu empfangen
und zu verarbeiten, die über
die Host-Schnittstelle 206 empfangen wurden, und in ansprechend
auf die E/A-Befehle den Transfer von Daten zwischen dem Host-Computer 103 und
der Plattenanordnung 108 zu koordinieren.
-
Es
ist wichtig festzustellen, daß eines
der Programme, die im Speicher 204 gespeichert sind und
durch den Prozessor 202 ausgeführt werden, ein Testprogramm 214 ist,
das der Steuerung 106 die Fähigkeit ermöglicht, die Datentestfunktionen
durchzuführen.
-
Bei
diesem Ausführungsbeispiel
ist das Testprogramm 214 ein Hintergrundprogramm, das automatisch
durch den Prozessor 202 ausgeführt wird, sooft die Steuerung 106 in
einen Leerlaufzustand eintritt. Während das Testprogramm 214 ausgeführt wird,
kann es unterbrochen werden, um zu erlauben, daß die Steuerung 106 andere
Funktionen durchführt,
die eine höhere
Priorität
aufweisen. Zum Beispiel wird angenommen, daß die Steuerung 106 gegenwärtig das
Testprogramm 214 ausführt
und ein E/A-Befehl vom Host-Computer 103 empfangen wird.
Beim Empfang des E/A-Befehls wird das Testprogramm 214 unterbrochen,
um der Steuerung 106 zu erlauben, den E/A-Befehl zu verarbeiten.
Nachdem der E/A-Befehl verarbeitet ist und unter der Annahme, daß keine
Funktionen einer höheren
Ebene planmäßig zur
Durchführung
vorgesehen sind, wird die Ausführung
des Testprogramms 214 wieder aufgenommen.
-
4 ist
ein Flußdiagramm,
das allgemein die Logik darstellt, der die Steuerung 106 folgt,
wenn der Prozessor 202 unter der Leitung durch das Testprogramm 214 wirksam
ist.
-
Es
wird nun Bezug genommen auf 4. Nach
Einleitung des Testprogramms 214 (Schritt 302)
ist die Steuerung 106 wirksam, um "X" Datenblöcke in dem
RAID5-Speicherbereich 114 zu testen, um zu bestimmen, ob
irgendwelche der Daten verfälscht
sind (Schritt 304). Bei diesem Ausführungsbeispiel wird dieser
Schritt durchgeführt,
indem versucht wird, jeden Block von der Plattenanordnung 108 zu
lesen. Wenn ein spezieller Block nicht gelesen werden kann, wird
bestimmt, daß der
Block verfälscht
ist. Wenn der Block gelesen werden kann, wird ein neuer Fehlercode
für den
Block berechnet und dann mit dem Fehlercode verglichen, der für den Block
gespeichert ist. Wenn die beiden Werte nicht identisch sind, wird
entschieden, daß der
Block verfälscht
ist. Wenn jedoch die beiden Werte identisch sind, wird entschieden,
daß der
Block nicht verfälscht ist.
-
Wenn
für einen
beliebigen der Datenblöcke, die
in Schritt 304 getestet werden, bestimmt wird, daß er verfälscht ist
(Entscheidungsschritt 306), kann die Steuerung 106 unter
Verwendung von herkömmlichen
Techniken wirksam sein, um die verfälschten Daten wiederherzustellen
(Schritt 310). Wenn jedoch für die getesteten Daten bestimmt
wird, daß sie
nicht verfälscht
sind, testet die Steuerung 106 "Y" Datenblöcke, die
in dem RAID1-Speicherbereich 112 gespeichert sind, auf
eine ähnliche
Weise, wie oben beschrieben wurde (Schritt 312). Wenn für einen
beliebigen der "Y" Datenblöcke, die
in Schritt 312 getestet werden, entschieden wird, daß er verfälscht ist
(Entscheidungsschritt 314), kann die Steuerung 106 unter
Verwendung von herkömmlichen
Techniken wirksam sein, um die verfälschten Daten wiederherzustellen
(Schritt 316).
-
Diese
Schritte werden wiederholt, um alle Daten, die in der Plattenanordnung 108 gespeichert sind,
fortschreitend und immer wieder zu testen. Es ist wichtig, festzustellen,
daß die
Anzahl der Datenblöcke
("X"), die in Schritt 304 getestet
werden, größer ist
als die Anzahl der Datenblöcke
("Y"), die in Schritt 312 getestet
werden. Diese Werte werden so gewählt, daß das Verhältnis von t_RAID_5/t_RAID_1 gleich
oder näherungsweise
gleich dem Wert K ist.
-
Aus
dem vorangehenden ist erkennbar, daß ein hierarchisches RAID-Speichersystem,
das durch die Erfindung geliefert wird, eine neue und vorteilhafte
Technik zum Reduzieren des Risikos eines Datenverlusts in dem System
verwendet. Es ist auch wichtig, festzustellen, daß die vorliegende
Erfindung verwendet werden kann, um die Zuverlässigkeit von anderen Typen
von Speichersystemen zu verbessern.
-
Um
die Anwendbarkeit der vorliegenden Erfindung auf andere Typen von
Speichersystemen darzustellen, zeigt 5 ein Blockdiagramm
eines zweiten Datenspeichersystems 402. Bei diesem Ausführungsbeispiel
umfaßt
das Speichersystem eine Steuerung 406 und mehrere Speicherbereiche 408. Die
Steuerung 406 ist über
ein erstes Kommunikationsverbindungsglied 412 mit einem
externen Host-Computer 410 und über ein zweites Kommunikationsverbindungsglied 414 mit
den mehreren Speicherbereichen 408 verbunden. Bei diesem
Beispiel umfassen die mehreren Speicherbereiche 408 einen
ersten Speicherbereich 420 und einen zweiten Speicherbereich 422.
Jedem Speicherbereich ist eine charakteristische MTTF zugeordnet.
-
Der
Wert der MTTF kann auf einer Anzahl von Faktoren basieren, einschließlich dem
Datenredundanzschema, das verwendet wird, und der Zuverlässigkeit
der Komponenten, die das Speichersystem bilden. Der erste Speicherbereich 420 kann
z. B. eine Anordnung von Bandspeichergeräten zum Speichern von Daten
gemäß einem
ersten Datenredundanzschema darstellen. Der zweite Speicherbereich 422 kann
z. B. eine Plattenanordnung zum Speichern von Daten gemäß einem
zweiten Datenredundanzschema darstellen.
-
Zur
Erleichterung der Diskussion wird auf die MTTF, die dem ersten Speicherbereich 420 zugeordnet
ist, mit "MTTF(FIRST_AREA)" Bezug genommen.
Auf die MTTF, die dem zweiten Speicherbereich 422 zugeordnet
ist, wird mit "MTTF(SECOND_AREA)" Bezug genommen.
Bei diesem Ausführungsbeispiel
wird angenommen, daß MTTF(FIRST_AREA)
kleiner ist als MTTF(SECOND_AREA).
-
Beim
Betrieb kann die Steuerung 406 eine Anzahl von Funktionen
durchführen,
wie z. B. Empfangen und Verarbeiten von E/A-Befehlen vom Host-Computer 410.
Ansprechend auf diese Befehle kann die Steuerung 406 Daten
von den mehreren Speicherbereichen 408 lesen und auf sie
schreiben.
-
Außerdem führt die
Steuerung 406 auch eine Datentestfunktion durch, indem
sie jeden der beiden Speicherbereiche bezüglich des Vorliegens von verfälschten
Daten testet. Wenn während
eines Testes verfälschte
Daten erfaßt
werden, können
die Daten (wenn möglich)
durch Verwendung von Standardtechniken wiederhergestellt werden.
-
Ähnlich wie
beim ersten Ausführungsbeispiel bestehen
Beschränkungen
dahingehend, wie oft und wann die Datentestfunktion durchgeführt wird.
Dies erlaubt der Steuerung 406, andere Funktionen durchzuführen (wie
z. B. auf eine E/A-Anfrage anzusprechen). Als Folge dieser Beschränkungen
wurde festgestellt, daß über eine
gegebene Zeitdauer ("T_periode") und unter erwarteten
Bedingungen der Betrag der Zeit, die zum Testen der mehrfachen Speicherbereiche 408 bezüglich Verfälschung
aufgewendet wird, ein begrenzter Wert ist. Auf diesen begrenzten
Wert wird mit "t_test" Bezug genommen.
-
Gemäß den Prinzipien
der vorliegenden Erfindung ist die Steuerung 406 wirksam,
um die Datentestfunktion durchzuführen, so daß während einer gegebenen "T_Periode" die Daten, die im
ersten Speicherbereich 420 gespeichert sind, durchschnittlich
häufiger
getestet werden als der zweite Speicherbereich 422. Für die Zwecke
dieses Dokuments, wird auf die Frequenz, mit der der erste Speicherbereich 420 getestet
wird, mit "F_1" Bezug genommen.
Desgleichen wird auf die Frequenz, mit der der zweite Speicherbereich 422 getestet
wird, mit "F_2" Bezug genommen.
Es ist wichtig, festzustellen, daß F_1 und F_2 so gewählt werden,
daß MTTF(System)
optimiert wird. Es ist erkennbar, daß F_1 und F_2 unter Verwendung
einer Standard-Statistikanalyse bestimmt werden können. Auch
basieren die Werte von F_1 und F_2 primär auf den Werten von MTTF(FIRST_AREA),
MTTF(SECOND_AREA) und "t_test".
-
Es
ist festzustellen, daß die
Datentestfunktion durch ein erstes Testprogramm 436 und
ein zweites Testprogramm 438 implementiert sein kann, die
in einem internen Speicher 440 gespeichert sind. Das erste
Testprogramm 436 leitet die Steuerung 406, um den
ersten Speicherbereich 420 bezüglich einer Verfälschung
zu testen. Außerdem
leitet das zweite Testprogramm 438 die Steuerung 406,
um den zweiten Speicherbereich 422 bezüglich einer Verfälschung
zu testen. Wenn während
eines der Tests eine Verfälschung
detektiert wird, können
die verfälschten
Daten unter Verwendung von Standardtechniken wiederhergestellt werden.
-
Jedes
der beiden Programme kann ein Hintergrundprogramm mit einer vorbestimmten
Prioritätsebene
sein. Außerdem
ist für
jedes dieser Programme planmäßig vorgesehen,
daß sie
zu unterschiedlichen Zeiten ausgeführt werden. Die Prioritätsebenen und
die Ausführungszeiten
werden so gewählt,
daß unter
erwarteten Bedingungen der erste Speicherbereich 420 mit einer
Frequenz "F_1" getestet wird. Außerdem wird
der zweite Speicherbereich 422 mit einer Frequenz "F_2" getestet.
-
Im
Ergebnis ist MTTF(System) unter erwarteten Bedingungen optimiert.
Demgemäß ist die
Systemzuverlässigkeit
verglichen mit ähnlichen
Systemen nach dem Stand der Technik verbessert.
-
Es
wird darauf hingewiesen, daß in
den Ausführungsbeispielen,
die oben beschrieben wurden, die Speichersysteme so beschrieben
wurden, daß sie
zwei Speicherbereiche aufweisen, denen jeweils eine unterschiedliche
MTTF zugeordnet ist. Es ist jedoch erkennbar, daß die vorliegende Erfindung
verwendet werden kann, um die Zuverlässigkeit von Speichersystemen
mit mehr als zwei Speicherbereichen zu verbessern. Es sei z. B.
angenommen, daß das
Ausführungsbeispiel,
das in 5 dargestellt ist, einen dritten Speicherbereich
umfaßt,
dem eine dritte MTTF zugeordnet ist. Auf die dritte MTTF wird hierin mit "MTTF(THIRD_AREA)" Bezug genommen.
In diesem Fall basieren die Werte von "F_1", "F_2" und "F_3" vorzugsweise auf
MTTF(FIRST_AREA), MTTF(SECOND_AREA), MTTF(THIRD_AREA) und t_test.
Dabei ist F_3 die Frequenz, mit der der dritte Bereich getestet
wird.
-
Es
wird auch darauf hingewiesen, daß bei den oben beschriebenen
Ausführungsbeispielen
die Funktionalität,
die durch das Testprogramm geliefert wird, tatsächlich durch mehr als ein Programm
geliefert werden kann, die in mehr als einem Speichergerät gespeichert
sind. Alternativ kann die Funktionalität ganz oder teilweise durch
Hardwarekomponenten geliefert werden. Beispielsweise können ein
oder mehrere Schritte, die in 3 dargestellt
sind, durch den Betrieb (die folgende Liste ist nicht erschöpfend) einer
anwendungsspezifischen integrierten Schaltung (ASIC; ASIC = application
specific integrated circuit), eines programmierbaren Gatterarrays
(PGA; PGA = programmable gate array), eines feldprogrammierbaren
Gatterarrays (FPGA; FPGA = field programmable gate array) oder durch
eine Kombination derselben durchge führt werden.
-
Außerdem kann
die vorliegende Erfindung auch als ein computerverwendbares Medium
verkörpert
sein, das einen darin enthaltenen, computerlesbaren Programmcode
aufweist, um zu bewirken, daß ein
Computer einen oder mehrere der Schritte durchführt, die in 3 dargestellt
sind. Im Kontext dieses Dokuments kann ein "computerverwendbares Medium" eine beliebige Einrichtung
sein, die das Programm durch ein bzw. eine oder in Verbindung mit
einem bzw. einer Anwendungsausführungs-System, -Vorrichtung
oder -Gerät
enthält,
speichert, verbreitet oder anderweitig transportiert. Das computerverwendbare
Medium kann z. B. (die folgende Liste ist nicht erschöpfend) ein
magnetisches, optisches oder halbleiterbasierendes Speichergerät sein (z.
B. der Speicher 304, der in 3 dargestellt
ist).
-
Die
vorliegende Erfindung kann z. B. verwendet werden, um viele unterschiedliche
Typen von Speichersystemen zu verbessern. Zum Beispiel kann die
vorliegende Erfindung verwendet werden, um Speichersysteme zu verbessern,
die Daten gemäß mehr als
zwei Datenredundanzschemata speichern.