-
Gebiet der
Erfindung
-
Diese Erfindung bezieht sich auf
Plattenarrays und insbesondere auf redundante hierarchische Plattenarraydatenspeichersysteme,
die Heiße-Reserve-Ressourcen
aufweisen, um einen ausreichenden Platz zur Rekonstruktion von Benutzerdaten
und redundanten Informationen für
den Fall, daß eine Speicherplatte
ausfällt,
zu liefern. Diese Erfindung bezieht sich ferner auf Verfahren zum
Verwenden der Heiße-Reserve-Ressourcen,
um Benutzerdaten zu speichern, bis derartige Ressourcen benötigt werden,
um ein Wiederaufbauen zu erleichtern.
-
Hintergrund
der Erfindung
-
Plattenarraydatenspeichersysteme
weisen Mehrfach-Speicherplattenlaufwerksvorrichtungen auf,
die angeordnet und koordiniert sind, um ein einziges Massenspeichersystem
zu bilden. Für
derartige Speichersysteme gibt es drei Hauptentwurfskriterien: Kosten,
Leistungsfähigkeit
und Verfügbarkeit. Am
wünschenswertesten
ist es, Speichervorrichtungen zu erzeugen, die geringe Kosten pro
Megabyte, eine hohe Eingangs-/Ausgangsleistungsfähigkeit und eine hohe Datenverfügbarkeit
aufweisen. "Verfügbarkeit" ist die Fähigkeit,
auf Daten, die in dem Speichersystem gespeichert sind, zuzugreifen,
und die Fähigkeit,
im Fall eines Ausfalls einen fortgesetzten Betrieb zu gewährleisten.
In der Regel wird eine Datenverfügbarkeit
durch die Verwendung einer Redundanz geliefert, wobei Daten, oder
Beziehungen zwischen Daten, an mehreren Plätzen gespeichert sind. Für den Fall,
daß eine
Speicherplatte in dem Plattearray teilweise oder vollständig ausfällt, können die
Benutzerdaten über
die auf den verbleibenden Platten gespeicherten redundanten Daten
rekonstruiert werden.
-
Es gibt zwei übliche Verfahren zum Speichern
von redundanten Daten. Gemäß dem ersten bzw. "Spiegel"-Verfahren werden
Daten dupliziert und in zwei getrennten Bereichen des Speichersystems
gespeichert. Bei einem Plattenarray werden die identischen Daten
beispielsweise auf zwei getrennten Platten in dem Plattenarray bereitgestellt.
Das Spiegelverfahren weist die Vorteile einer hohen Leistungsfähigkeit
und einer hohen Datenverfügbarkeit aufgrund
der Duplexspeichertechnik auf. Das Spiegelverfahren ist jedoch auch
relativ teuer, da es die Kosten des Speicherns von Daten effektiv
verdoppelt.
-
Bei dem zweiten bzw. "Paritäts"-Verfahren wird ein
Teil des Speicherbereichs verwendet, um redundante Daten zu speichern,
die Größe des redundanten
Speicherbereichs ist jedoch geringer als der zum Speichern der ursprünglichen
Daten verwendete verbleibende Speicherbereich. Bei einem Plattenarray,
das fünf
Platten aufweist, könnten
beispielsweise vier Platten verwendet werden, um Daten zu speichern,
wobei die fünfte
Platte für
das Speichern von redundanten Daten reserviert ist. Das Paritätsverfahren
ist vorteilhaft, da es kostengünstiger
ist als das Spiegelverfahren, im Vergleich zu dem Spiegelverfahren
weist es jedoch auch geringere Leistungsfähigkeits- und Verfügbarkeitscharakteristika
auf.
-
Abgesehen von der Datenredundanz
verbessern manche Plattenarraydatenspeichersysteme die Datenverfügbarkeit,
indem sie eine zusätzliche physische
Speicherplatte reservieren, die eine ausgefallene Speicherplatte
ersetzen kann. Diese zusätzliche
Speicherplatte wird als "Reserve" bezeichnet. Die
Reserveplatte wird verwendet, um nach dem Plattenausfall Benutzerdaten
zu rekonstruieren und eine Redundanz in dem Plattenarray wiederherzustellen,
ein Vorgang, der als "Wiederaufbauen" bekannt ist. In
manchen Fällen
ist die zusätzliche
Speicherplatte sogar an dem Plattenarray befestigt und in demselben
vollständig
betreibbar, bleibt jedoch au ßer
Betrieb, bis eine Speicherplatte ausfällt. Diese unter Strom stehenden
Speicherplatten werden als "heiße Reserven" bezeichnet.
-
Während
die Heiße-Reserve-Platte
im Fall eines Plattenausfalls nützlich
ist, liefert sie dem Plattenarray während eines normalen Betriebs,
wenn alle Platten ordnungsgemäß funktionieren,
keine Dienste. Ein Reservieren und Vormerken einer gesamten physischen
Speicherplatte für
Heiße-Reserve-Zwecke erhöht somit
die Kosten des Systems, ohne den Vorteil aufzuweisen, daß die zusätzlichen
Ressourcen für
Datenspeicherfunktionen vollständig
genutzt werden.
-
Es wäre vorteilhaft, Heiße-Reserve-Ressourcen
bereitzustellen und gleichzeitig alle Speicherplatten des Plattenarrays
vollständig
zu nutzen.
-
Aus der EP-A-0569313 ist ein Plattenspeichersystem
einer RAID-Ebene 5 bekannt, bei dem eine der Mehrzahl von Speicherplatten
als zweckgebundene Schreibunterstützungsspeichereinheit zur Verbesserung
der Schreibleistungsfähigkeit
verwendet wird, wodurch die Schreibunterstützungsspeichereinheit gleichzeitig
auch als Heiße-Reserve-Einheit im
Fall eines Plattenausfalls fungiert.
-
Aus der EP-A-0493984 ist ein RAID-Plattenspeichersystem
bekannt, bei dem eine Rückkopier-Cache-Speichereinheit
vorgesehen ist, an die Schreibvorgänge zu Spitzenlastzeiten des
Systems geleitet werden. Daten, die in die Rückkopier-Cache-Speichereinheit geschrieben werden,
werden während
Ruheperioden des Systems zu den normalen RAID-Plätzen kopiert. Ferner wird gelehrt,
daß eine
zweckgebundene Heiße-Reserve-Speichereinheit
als die Rückkopier-Cache-Speichereinheit fungieren
kann.
-
Zusammenfassung
der Erfindung
-
Diese Erfindung, die in den beigefügten unabhängigen Ansprüchen ausführlich definiert
ist, schafft ein Plattenarraydatenspeichersystem, das alle an dem
Array befestigten Speicherplatten vollständig nutzt und trotzdem Heiße-Reserve-Ressourcen
liefert. Statt eine ganze physische Platte als heiße Reserve
zu reservieren und vorzumerken, reservieren das System und die Verfahren
dieser Erfindung die logische Kapazität einer Heiße-Reserve-Platte, die aus
einem verfügbaren
Speicherraum, der über
mehrere Speicherplatten in dem Array verteilt ist, besteht. Auf
diese Weise werden alle Speicherplatten verwendet, um Benutzerdaten
zu speichern, während
gewährleistet
wird, daß eine
entsprechende Quantität
an Platz zum Rekonstruieren von Benutzerdaten und Wiederherstellen
einer Redundanz im Fall eines Plattenausfalls zur Verfügung gestellt
werden kann:
-
Gemäß einem Aspekt dieser Erfindung
weist ein Plattenarraydatenspeichersystem eine Mehrzahl von Speicherplatten
und eine Plattenarraysteuerung zum Koordinieren eines Transfers
von Benutzerdaten zu und von den Speicherplatten auf. Ein RRID-Verwaltungssystem
ist vorgesehen, um einen virtuellen Speicherplatz der RAID-Ebene
auf den physischen Speicherplatz der Speicherplatten abzubilden.
Der virtuelle Speicherplatz der RAID-Ebene präsentiert den physischen Speicherplatz
als mehrere RAID-Bereiche, die Spiegel-RAID-Bereiche umfassen, die Daten gemäß einer
Spiegelredundanz speichern, und Paritäts-RAID-Bereiche, die Daten gemäß einer
Paritätsredundanz
speichern, umfassen. Das RAID-Verwaltungssystem
bildet ferner den virtuellen Speicherplatz der RAID-Ebene in einen
virtuellen Speicherplatz einer Anwendungsebene ab, der dem Benutzer
präsentiert
wird.
-
Wenn die Heiße-Reserve-Option aktiviert
ist, verwendet das RAID-Verwaltungssystem den Heiße-Reserve-Platz,
um Benutzerdaten in einem Spiegelspeicher zu speichern, während es
ferner garantiert, daß der
Heiße-Reserve-Platz
im Anschluß an einen
Speicherplattenausfall zum Wiederaufbauen einer Redundanz zur Verfügung gestellt
werden kann. Platz wird zur Verfügung
gestellt, indem Daten von einem Spiegelspeicher zu einem Paritätsspeicher
bewegt werden. Diese Bewegung bzw. Migration erhöht gleichzeitig den Umfang
an Paritätsspeicher,
während
sie den Umfang an Spiegelspeicher verringert. Gleichzeitig mit diesem
Migrationsvorgang werden die Streifengrößen für eine Datenspeicherung aufgrund
des von der ausgefallenen Speicherplatte verlorenen Platzes verringert.
-
Gemäß diesem System werden alle
Speicherplatten in dem Array verwendet, um Benutzerdaten zu speichern,
und zusätzlich,
um einen Speicherplatz beizubehalten, der im Fall eines Plattenausfalls ohne
weiteres zu Heiße-Reserve-Zwecken
zur Verfügung
gestellt werden kann. Diese Verwendung eines Heiße-Reserve-Speicherplatzes
verbessert die Leistungsfähigkeit
beträchtlich,
indem sie die Parallelität erhöht und mehr
Kapazität
für einen
Spiegelspeicher liefert.
-
Beschreibung
der Zeichnungen
-
Unter Bezugnahme auf die folgenden
beigefügten
Zeichnungen, in denen Beispiele gezeigt sind, die den besten Modus
zum Praktizieren der Erfindung verkörpern, werden nachfolgend bevorzugte Ausführungsbeispiele
der Erfindung beschrieben.
-
1 ist
ein schematisches Blockdiagramm eines redundanten hierarchischen
Plattenarraydatenspeichersystems gemäß dieser Erfindung.
-
2 ist
eine schematische Veranschaulichung eines Speicherplatzes auf mehreren
Speicherplatten und zeigt eine Datenspeicherung gemäß einer
RAID-Ebene 1.
-
3 ist
eine schematische Veranschaulichung eines Speicherplatzes auf mehreren
Speicherplatten und zeigt eine Datenspeicherung gemäß einer
RAID-Ebene 5.
-
4 ist
eine schematische Veranschaulichung einer Speicherabbildungsanordnung
dieser Erfindung, bei der zwei virtuelle Speicherplätze auf einen
physischen Speicherplatz abgebildet werden.
-
5 ist
eine schematische Veranschaulichung eines Speicherplatzes auf mehreren
Speicherplatten und zeigt eine Verwendung von Heiße-Reserve-Ressourcen vor einem
Ausfall einer Speicherplatte.
-
6 ist
eine schematische Veranschaulichung eines Speicherplatzes auf mehreren
Speicherplatten und zeigt eine Verwendung von Heiße-Reserve-Ressourcen nach einem
Ausfall einer Speicherplatte.
-
7 ist
eine schematische Veranschaulichung eines Speicherplatzes auf mehreren
Speicherplatten und zeigt, wie eine Datenmigration von einer Speicherung
der RAID-Ebene 1 zu einer Speicherung der RAID-Ebene 5 einen Platz
für Heiße-Reserve-Zwecke
zur Verfügung
stellt.
-
8 ist
ein Flußdiagramm
eines Verfahrens zum Betreiben eines Plattenarrays, um die Verfügbarkeit
eines Heiße-Reserve-Platzes
zu gewährleisten.
-
Ausführliche
Beschreibung der Erfindung
-
1 zeigt
ein Datenspeichersystem 10, das gemäß dieser Erfindung aufgebaut
ist. Vorzugsweise ist das Datenspei chersystem 10 ein Plattenarraydatenspeichersystem,
das folgende Merkmale umfaßt:
ein hierarchisches Plattenarray 11, das eine Mehrzahl von
Speicherplatten 12 aufweist, eine Plattenarraysteuerung 14,
die mit dem Plattenarray 11 gekoppelt ist, um einen Transfer
von Benutzerdaten zu und von den Speicherplatten 12 zu
koordinieren, und ein RAID-Verwaltungssystem 16.
Diese Erfindung wird im Kontext ihrer bevorzugten Implementierung
als redundantes hierarchisches Plattenarraysystem beschrieben. Man
beachte jedoch, daß Aspekte
und Konzepte dieser Erfindung auch bei anderen Arten von Plattenarraydatenspeichersystemen, beispielsweise
nicht-hierarchischen Plattenarrays, verwendet werden können.
-
Für
die Zwecke dieser Offenbarung ist eine "Platte" jegliche nicht-flüchtige, direkt zugreifbare, wiederbeschreibbare
Massenspeichervorrichtung, die die Fähigkeit aufweist, ihre eigenen
Speicherausfälle
zu erfassen. Sie umfaßt
sowohl sich drehende magnetische und optische Platten als auch Festzustandsplatten,
oder nicht-flüchtige
elektronische Speicherelemente (z. B. PROMs, EPROMs und EEPROMs).
Der Begriff "Plattenarray" umfaßt eine Sammlung
von Platten, die Hardware, die erforderlich ist, um sie mit einem
oder mehreren Hostcomputern zu verbinden, und eine Verwaltungssoftware,
die verwendet wird, um den Betrieb der physischen Platten zu steuern
und sie der Host-Betriebsumgebung als eine oder mehrere virtuelle
Platten zu präsentieren.
Eine "virtuelle
Platte" ist eine
abstrakte Entität, die
durch die Verwaltungssoftware in dem Plattenarray verwirklicht ist.
-
Der Begriff "RAID" (Redundant
Array of Independent Plattes, redundantes Array aus unabhängigen Platten)
bedeutet ein Plattenarray, bei dem ein Teil der physischen Speicherkapazität verwendet wird,
um redundante Informationen über
Benutzerdaten, die auf dem Rest der Speicherkapazität gespeichert
sind, zu speichern. Die redundanten Informationen ermöglichen
eine Regeneration von Benutzerdaten für den Fall, daß eine der
zu dem Array gehörenden
Platten oder der Zugriffspfad zu derselben ausfällt. Eine ausführlichere
Erläuterung
von RAID-Systemen findet sich in einem Buch mit dem Titel The RAIDBook:
A Source Book for RAID Technology, das am 9. Juni 1993 von RAID
Advisory Board, Lino Lakes, Minnesota, veröffentlicht wurde.
-
Die Plattenarraysteuerung 14 ist über einen oder
mehrere Schnittstellenbusse 13, beispielsweise eine Kleincomputer-Schnittstelle (SCSI – small
computer system interface) mit dem Plattenarray 11 gekoppelt.
Das RAID-Verwaltungssystem 16 ist über ein Schnittstellenprotokoll 15 wirksam
mit der Plattenarraysteuerung 14 gekoppelt. Ferner ist
das Datenspeichersystem 10 über einen I/O-Schnittstellenbus 17 mit
einem Hostcomputer (nicht gezeigt) gekoppelt. Das RAID-Verwaltungssystem 16 kann
als separate Komponente verkörpert
sein oder kann in der Plattenarraysteuerung 14 oder in
dem Hostcomputer konfiguriert sein, um eine Datenverwaltungseinrichtung
zum Steuern von Plattenspeicherungs- und von Zuverlässigkeitsebenen
sowie zum Transferieren von Daten zwischen verschiedenen Zuverlässigkeits-Speicherstufen
bereitzustellen. Diese Zuverlässigkeits-Speicherebenen
sind, wie nachfolgend beschrieben wird, vorzugsweise Spiegel- oder
Paritäts-Redundanzebenen,
können
jedoch auch eine Zuverlässigkeits-Speicherebene
ohne jegliche Redundanz umfassen.
-
Die Plattenarraysteuerung 14 ist
vorzugsweise als duale Steuerung implementiert, die aus der Plattenarraysteuerung
A, die durch Bezugszeichen 14a bezeichnet ist, und aus
der Plattenarraysteuerung B, die durch Bezugszeichen 14b bezeichnet
ist, besteht. Die dualen Steuerungen 14a und 14b verbessern
die Zuverlässigkeit,
indem sie für
den Fall, daß eine
Steuerung funktionsuntüchtig
wird, eine fortlaufende Sicherung und Redundanz liefern. Diese Erfindung
kann jedoch auch mit einer einzigen Steuerung oder mit anderen Architekturen
praktiziert werden.
-
Das hierarchische Plattenarray 11 kann
als unterschiedliche Speicherplätze,
einschließlich
seines physischen Speicherplatzes und eines oder mehrerer virtueller
Speicherplätze,
charakterisiert werden. Diese verschiedenen Speicheransichten sind
durch Abbildungstechniken verbunden. Beispielsweise kann der physische
Speicherplatz des Plattenarrays in einen virtuellen Speicherplatz
abgebildet werden, der Speicherbereiche gemäß den verschiedenen Datenzuverlässigkeitsebenen
darstellt. Manche Bereiche in dem virtuellen Speicherplatz können einer
ersten Zuverlässigkeitsspeicherebene zugewiesen
sein, beispielsweise Spiegel- oder RAID-Ebene 1, und andere Bereiche
können
einer zweiten Zuverlässigkeitsspeicherebene
zugewiesen sein, beispielsweise Paritätsoder RAID-Ebene 5. Die verschiedenen
Abbildungstechniken und virtuellen Plätze, die RAID-Ebenen betreffen,
werden nachfolgend ausführlicher
beschrieben.
-
Das Datenspeichersystem 10 umfaßt einen Speicherabbildungsspeicher 21,
der eine durchgängige
Speicherung der virtuellen Abbildungsinformationen liefert, die
verwendet werden, um verschiedene Speicherplätze ineinander abzubilden.
Der Speicherabbildungsspeicher befindet sich außerhalb des Plattenarrays und
vorzugsweise in der Plattenarraysteuerung 14. Die Speicherabbildungsinformationen
können
durch die Steuerung oder das RAID-Verwaltungssystem kontinuierlich
oder periodisch aktualisiert werden, während sich die verschiedenen
Abbildungskonfigurationen unter den verschiedenen Ansichten ändern.
-
Vorzugsweise ist der Speicherabbildungsspeicher 21 als
zwei nicht-flüchtige
RAMs (Direktzugriffsspeicher) 21a und 21b verkörpert, die
in jeweiligen Steuerungen 14a und 14b angeordnet
sind. Ein beispielhafter nicht-flüchtiger RAM (NVRAM) ist ein batteriegepufferter
RAM. Ein batteriegepufferter RAM verwendet Energie von einer unabhängigen Batteriequelle,
um im Falle eines Verlustes von Leistung an das Datenspeichersystem 10 die
Daten über einen
bestimmten Zeitraum in dem Speicher beizubehalten. Ein bevorzugter Aufbau
ist ein selbstauffrischender batteriegepufferter DRAM (dynamischer RAM).
-
Die dualen NVRAMs 21a und 21b sorgen
für eine
redundante Speicherung der Speicherabbildungsinformationen. Die
virtuellen Abbildungsinformationen werden dupliziert und gemäß Spiegelredundanztechniken
in beiden NVRAMs 21a und 21b gespeichert. Auf
diese Weise kann der NVRAM 21a dafür reserviert sein, die ursprünglichen
Abbildungsinformationen zu speichern, und der NVRAM 21b kann
dafür reserviert
sein, die redundanten Abbildungsinformationen zu speichern. Bei
einem alternativen Aufbau kann ein gespiegelter Speicherabbildungsspeicher
unter Verwendung eines einzelnen nichtflüchtigen RAMs mit einem ausreichenden Platz,
um die Daten im Duplikat zu speichern, konfiguriert sein.
-
Wie in 1 gezeigt
ist, weist das Plattenarray 11 mehrere Speicherplattenlaufwerksvorrichtungen 12 auf.
Beispielhafte Größen dieser
Speicherplatten betragen ein bis drei Gigabytes. Die Speicherplatten
können
unabhängig
voneinander mit mechanischen Buchten verbunden oder von denselben
getrennt sein, die eine Schnittstellenbildung mit dem SCSI-Bus 13 liefern.
Bei einer Implementierung ist das Datenspeichersystem mit zwölf aktiven
mechanischen Buchten entworfen. Vier SCSI-Busse werden verwendet,
um eine Schnittstelle zwischen diesen Buchten und der Plattenarraysteuerung 14 zu
bilden (d. h. ein Bus pro drei mechanischen Buchten). Falls die
aktiven Buchten vollständig
beladen sind, weist das Datenspeichersystem eine beispielhafte kombinierte
Kapazität
von 12 bis 36 Gigabytes auf. Die Plattenarraysteuerung 14 erkennt
die Speicherplatten 12 unabhängig davon, in welche Bucht
sie eingesteckt sind. Das Datenspeichersystem 10 ist entworfen,
um ein "heißes Einstecken" zusätzlicher
Platten in verfügbare
mechanische Buchten in dem Plattenarray, während das Plattenarray in Betrieb
ist, zu ermöglichen.
-
Die Speicherplatten 12 in
dem Plattenarray 11 können
zu Erläuterungszwecken
vom Konzept her so erklärt
werden, daß sie
in einer Spiegelgruppe 18 aus mehreren Platten 20 und
einer Paritätsgruppe 22 aus
mehreren Platten 24 angeordnet sind. Die Spiegelgruppe 18 stellt
eine erste Speicherposition oder einen ersten RAID-Bereich des Plattenarrays
dar, die bzw. der Daten gemäß einer
ersten bzw. Spiegelredundanzebene speichert. Diese Spiegelredundanzebene
wird auch als RAID-Ebene 1 betrachtet. Die RAID-Ebene 1 bzw. oder
ein Spiegeln von Platten bietet die höchste Datenzuverlässigkeit,
indem sie insofern einen Eins-Zu-Eins-Schutz bietet, als jedes Datenbit
dupliziert und in dem Datenspeichersystem gespeichert wird. Die
Spiegelredundanz ist schematisch durch die drei Paare von Platten 20 in 1 dargestellt. Ursprüngliche
Daten können
auf einem ersten Satz von Platten 26 gespeichert werden,
während
dupliziert, redundante Daten auf dem gepaarten zweiten Satz von
Platten 28 gespeichert werden.
-
2 veranschaulicht
die Speicherung von Daten gemäß der RAID-Ebene
1 noch ausführlicher. Die
vertikalen Spalten stellen einzelne Platten dar, von denen Platten
0, 1, 2 und 3 veranschaulicht sind. Der in diesem Plattenarray aus
vier Platten enthaltene physische Speicherplatz kann zu mehreren
Streifen konfiguriert sein, wie sie durch die horizontalen Zeilen
veranschaulicht sind. Ein "Streifen" erstreckt sich über die
Speicherplatten und ist aus zahlreichen gleich großen Segmenten
an Speicherplatz gebildet, wobei ein Segment jeder Platte in dem
Array zugeordnet ist. Das heißt,
daß ein
Segment der Abschnitt eines Streifens ist, der sich auf einer einzelnen
Platte befindet. Jeder Streifen hält eine vorbestimmte Datenmenge,
die über
die Speicherplatten verteilt ist. Manche Segmente eines Streifens
werden für
ursprüngliche
Daten verwendet, während
andere Segmente für
redundante Daten verwendet werden.
-
Bei diesem Beispiel einer Spiegelredundanz (RAID-Ebene
1) werden Daten, die auf der Platte 0 in dem Segment 0 des Streifens
0 gespeichert sind, dupliziert und auf der Platte 1 in dem Segment
0' des Streifens
0 gespeichert. Desgleichen werden Daten, die auf der Platte 2 in
dem Segment 5 des Streifens 2 gespeichert sind, zu dem Segment 5' des Streifens 2
auf der Platte 3 gespiegelt. Auf diese Weise wird jede Dateneinheit
dupliziert und auf den Platten gespeichert. Der Redundanzentwurf
der 2 ist zu Erläuterungszwecken
vorgesehen. Die redundanten Daten müssen nicht sauber in demselben
Streifen plaziert werden, wie gezeigt ist. Beispielsweise könnten Daten,
die auf der Platte 0 in dem Segment 2 des Streifens 1 gespeichert
sind, dupliziert werden und auf der Platte 3 in dem Segment T' des Streifens S plaziert
werden.
-
Unter erneuter Bezugnahme auf 1 stellt die Paritätsgruppe 22 der
Platten 24 eine zweite Speicherposition bzw. einen zweiten
RAID-Bereich dar, in der bzw, dem Daten gemäß einer zweiten Redundanzebene,
z. B. RAID-Ebene 5, gespeichert werden. In dieser erläuternden
Veranschaulichung von sechs Platten sind ursprüngliche Daten auf den fünf Platten 30 gespeichert,
und redundante "Paritäts"-Daten sind auf der
sechsten Platte 32 gespeichert.
-
3 zeigt
einen Paritäts-RAID-Bereich-Entwurf
etwas ausführlicher. Ähnlich dem
Entwurf des Spiegel-RAID-Bereichs der 2 kann
der physische Speicherplatz der Platten 0, 1, 2, 3 zu mehreren gleich
großen
Streifen konfiguriert sein. Bei diesem veranschaulichten Beispiel
werden Daten gemäß der RAID-Ebene
5 gespeichert, und die redundanten Daten werden in den Segmenten
gespeichert, auf die durch den Buchstaben P Bezug genommen wird.
Die redundanten P-Segmente
speichern die Parität
der anderen Segmente in dem Streifen. In dem Streifen 0 speichert
das redundante P-Segment auf
der Platte 3 beispielsweise die Parität der Platten 0, 1 und 2. Die
Parität
für jeden
Streifen wird durch eine bestimmte Funktion berechnet, beispielsweise eine
Exklusiv-ODER-Funktion, die durch das Symbol "⊕" dargestellt wird.
Die Paritäten
für die
ersten vier Streifen (wobei die tiefgestellte Zahl den entsprechenden
Streifen darstellt) lauten wie folgt:
-
- P0 = Segment 0 ⊕ Segment 1 ⊕ Segment
2
= Platte 0 ⊕ Platte
1 ⊕ Platte
2
- P1 = Segment 3 ⊕ Segment 4 ⊕ Segment
5
= Platte 0 ⊕ Platte
1 ⊕ Platte
3
- P2 = Segment 6 ⊕ Segment 7 ⊕ Segment
8
= Platte 0 ⊕ Platte
2 ⊕ Platte
3
- P3 = Segment 9 ⊕ Segment 10 ⊕ Segment
11
= Platte 1 ⊕ Platte
2 ⊕ Platte
3
-
Eine Paritätsredundanz ermöglicht eine
Regeneration von Daten, die auf einer der Platten nicht mehr zur
Verfügung
stehen. Wenn beispielsweise die Daten in dem Segment 5 nicht mehr
zur Verfügung stehen,
kann ihr Inhalt aus den Segmenten 3 und 4 und den Paritätsdaten
in dem Segment P ermittelt werden. Eine Paritätsspeicherung ist kostengünstiger
als eine Spiegelspeicherung, ist jedoch auch weniger zuverlässig und
weist eine geringere Leistungsfähigkeit
auf.
-
Die Plattenanordnung der 1 ist zu Konzeptionszwecken
vorgesehen. In der Praxis weist das Plattenarray 11 einfach
eine Mehrzahl von Platten 12 auf, die in der Lage sind,
Daten gemäß einer Spiegel-
und Paritätsredundanz
zu speichern. Aus dem durch alle Platten 12 gelieferten,
zur Verfügung stehenden
Speicherplatz wird ein Abschnitt dieses Speicherplatzes einer Spiegelredundanz
zugewiesen, und ein weiterer Abschnitt wird einer Paritätsredundanz
zugewiesen. Vorzugsweise sind die Platten 12 konfiguriert,
um mehrere gleich große
Speicherregionen (die bei 4 mit
dem Bezugszeichen 35 benannt sind) zu enthalten, wobei
einzelne Regionen mehrere Segmente aufweisen. Die Regionen sind gruppiert,
um bei einer virtuellen Ansicht des Speicher platzes RAID-Bereiche
zu bilden. Zusätzlich
wird eine weitere (durch einen Host definierte) Ansicht eines Speicherplatzes
dem Benutzer oder Host präsentiert,
so daß die
RAID-Bereiche und die Datenredundanz-Speichertechniken für den Benutzer
oder Host transparent sind. Diese Merkmale werden nachstehend unter
Bezugnahme auf 4 ausführlicher erläutert.
-
Das Datenspeichersystem 10 verwaltet
die "Migration bzw.
Bewegung" von Daten
zwischen Spiegel- und Paritätsspeicherschemata.
Die Verwaltung beider Redundanztypen wird durch das RAID-Verwaltungssystem 16 (1) koordiniert. Das RAID-Verwaltungssystem 16 verwaltet
die zwei unterschiedlichen Typen von RAID-Bereichen in dem Plattenarray
als Speicherhierarchie, wobei die Spiegel-RAID-Bereiche ähnlich einem
Cache für
die Paritäts-RAID-Bereiche
agieren. Das RAID-Verwaltungssystem 16 verschiebt
und organisiert die Daten zwischen dem Spiegel- und dem Paritäts-RAID-Bereich gemäß einem
definierten Leistungsfähigkeitsprotokoll,
und verwaltet die Daten ansonsten auf ebensolche Weise. Der Vorgang
des Bewegens von Daten zwischen dem Spiegel- und dem Paritäts-RAID-Bereich
wird als "Migration" bezeichnet.
-
Das Datenspeichersystem 10 versucht,
die für
die Leistungsfähigkeit
kritischeren Daten in die Spiegel-RAID-Bereiche zu plazieren, da
dies die höchste
Leistungsfähigkeit
und Zuverlässigkeit
liefert. Die Leistungsfähigkeitsprotokolle,
die durch das RAID-Verwaltungssystem 16 implementiert sind,
umfassen eine von zwei bevorzugten Migrationsrichtlinien. Gemäß der ersten
Migrationsrichtlinie, die als "Zugriffshäufigkeit" bekannt ist, werden
die Daten in dem hierarchischen Plattenarray, auf die am häufigsten
zugegriffen wird, in dem Spiegel-RAID-Bereich 18 beibehalten.
Daten, auf die weniger häufig
zugegriffen wird, werden in dem Paritäts-RAID-Bereich 22 gehalten. Gemäß einer
zweiten Migrationsrichtlinie, die als "Zugriffsaktualität" bekannt ist, werden die Daten, deren
Zugriff am wenigsten lange zurückliegt,
in dem Spiegel-RAID-Bereich 18 beibehalten, während die
Daten, deren Zugriff länger
zurückliegt,
in dem Paritäts-RAID-Bereich 22 gespeichert
werden. Es können
auch andere Leistungsfähigkeitsprotokolle verwendet
werden. Idealerweise sind solche Protokolle auf der Basis der spezifischen
Computeranwendung und der Erfordernisse des Benutzers definiert.
-
Zusätzlich "stimmt" das RAID-Verwaltungssystem 16 die
Speicherressourcen eines Datenspeichersystems gemäß einer
Funktion von zwei Parametern "ab". Größe der physischen
Speicherkapazität
und Größe der vorhandenen
Menge an Benutzerdaten, die in dem Datenspeichersystem gespeichert sind.
Anfänglich
werden alle Daten in Spiegel-RAID-Bereichen gespeichert, da dies
die höchste Leistungsfähigkeit
und Zuverlässigkeit
liefert. Während
mehr Daten zu dem Datenspeichersystem hinzugefügt werden, werden die Daten
zwischen Spiegel-RAID-Bereichen und Paritäts-RAID-Bereichen bewegt, um
die Leistungsfähigkeit
und Zuverlässigkeit
zu optimieren. Während
sich das Datenspeichersystem an eine volle Kapazität annähert, werden
im Rahmen des Bemühens,
alle durch den Benutzer gestellten Anforderungen zu erfüllen und
trotzdem durch Redundanz eine Zuverlässigkeit zu liefern, immer
mehr Daten in Paritäts-RAID-Bereiche
bewegt. Dementsprechend liefert das Datenspeichersystem dieser Erfindung
eine maximale Flexibilität
und Anpassung. Es erfordert nicht, daß der Benutzer einen spezifischen
Speicherbetriebszustand auswählt, sondern
kann sich statt dessen an jegliche durch den Benutzer an das System
gestellte Forderung anpassen.
-
4 veranschaulicht
ein Speicherabbilden des verfügbaren
Speicherplatzes des Datenspeichersystems 10 als mehrere
Lagen eines abgebildeten virtuellen Speicherplatzes. Jedes vertikal
verlängerte
Rechteck in dem Diagramm stellt eine Ansicht des physischen Speicherplatzes
dar. Bei diesem Diagramm wird auf den physischen Speicherplatz 34 durch
zwei virtuelle Speicheransichten 40 und 50 Bezug
genommen. Der physische Speicherplatz 34 wird durch vier
Platten (z. B.
-
Platten 12 in 1) dargestellt, die durch
die Bezugszeichen 0, 1, 2 und 3 benannt sind. Die den Platten zugeordneten
vier Rechtecke stellen eine Ansicht des physischen Speicherplatzes
dar, bei der die Platten 1, 2 und 3 eine ungefähr gleiche Speicherkapazität aufweisen
und die Platte 0 eine etwas geringere Speicherkapazität aufweist.
Beispielhafte Speicherkapazitäten
für derartige
Platten betragen 1 bis 3 Gigabytes. Der Speicherplatz 34 ist
in Bereiche A0, A1, A2 usw. unterteilt. Einzelne Bereiche enthalten zahlreiche
Streifen, im Bereich A0 z. B. Streifen O-Q. Einzelne Bereiche enthalten
auch zahlreiche Regionen 35. Die Regionen 35 bestehen
vorzugsweise aus einer ausgewählten
Anzahl von Segmenten einer gleichmäßigen Größe auf jeder Speicherplatte,
so daß die
Regionen über
das gesamte Plattenarray eine gleiche Größe aufweisen. Eine beispielhafte Größe einer
Region 35 ist ein Megabyte.
-
Der Speicherplatz der Platten wird
in eine erste virtuelle Zwischenansicht 40 der RAID-Ebene des
physischen Speicherplatzes 34 abgebildet. Diese erste virtuelle
Ansicht ist vom Konzept her ein Satz von RAID-Bereichen, die auf
eine zweite Anwendungsansicht abgebildet werden können, die
einen angrenzend adressierbaren Speicherplatz darstellt. Die physische
Konfiguration und RAID-Ansichten des Speicherplatzes entziehen sich
der Anwendungsansicht.
-
Der RAID-Bereich-Speicherplatz 40 ist
die Speicheransicht, die den Spiegel- und Paritätsspeicherplatz identifiziert.
Beispielsweise kann ein RAID-Bereich 42 einen Spiegel-RAID-Bereich von M Zuweisungsblöcken 43 darstellen,
während
der RAID-Bereich 44 einen Paritäts-RAID-Bereich von N Zuweisungsblöcken 45 darstellen
kann. Die Zuweisungsblöcke 43 und 45 weisen
vorzugsweise eine gleiche Größe auf,
wobei eine beispielhafte Größe 64 Kilobytes
beträgt.
Diese RAID-Bereiche
beziehen sich auf entsprechende physische Bereiche A0, A1, A2 usw.
auf dem physischen Speicherplatz 34. Beispielsweise können sechzehn
64K-Zuweisungsblöcke 43 oder 45 an
der virtuellen RAID-Ansicht auf eine einzige 1M-Region 35 abgebildet
werden.
-
Die Spiegel- und Paritäts-RAID-Bereiche können den
gesamten Speicherplatz 34 des Plattenarrays einnehmen,
müssen
aber nicht. Dementsprechend kann während bestimmter Anwendungen ein
unbenutzter und unbezeichneter Speicherplatz vorliegen, der keinem
bestimmten RAID-Bereich entspricht. Ein solcher Speicherplatz kann
jedoch in einen Spiegel- oder Paritäts-RAID-Bereich umgewandelt werden. Ferner
ist zu beachten, daß die RAID-Bereiche
in der Abbildung in benachbarte Bereiche auf dem Plattenarray abgebildet
werden, wobei jede einem RAID-Bereich zugeordnete Region an derselben
physischen Adresse auf jeder Speicherplatte angeordnet ist. Die
RAID-Bereiche können
alternativ auch zu nicht-benachbarten Bereichen auf dem Plattenarray
abgebildet werden.
-
Der in den RRID-Bereichen verfügbare Speicherplatz
wird in eine zweite virtuelle Vorderes-Ende-Ansicht 50 der
Anwendungsebene abgebildet, die eine Speicheransicht ist, wie sie
durch den Benutzer oder das Hostanwendungsprogramm definiert und demselben
präsentiert
wird. Bei einer Betrachtung durch den Benutzer" oder das Hostanwendungsprogramm kann
die virtuelle Ansicht 50 der Anwendungsebene eine einzige
große
Speicherkapazität darstellen,
die den verfügbaren
Speicherplatz auf den Speicherplatten 12 angibt. Der virtuelle
Speicherplatz 50 präsentiert
eine Ansicht eines linearen Satzes von gleich großen virtuellen
Speicherblökken 52 und 53,
die einzeln als 0, 1, 2,... J – 1,
J, J + 1, ..., L – 1,
L, L + 1,..., usw. bezeichnet werden. Die virtuellen Blöcke 52 und 53 weisen
vorzugsweise dieselbe Größe auf wie
die Zuweisungsblöcke
in dem RAID-Bereich 40, wobei eine beispielhafte Größe 64 Kilobytes
beträgt.
Der virtuelle Blockspeicherplatz 50 wird in der durch die
RAID-Bereiche 40 dargestellten Ansicht durch eine Tabelle
von Bezugnahmen oder Zeigern (wie sie durch Pfeile 54 dargestellt
sind) auf Zuweisungsblöcke,
dargestellt. Die virtuellen Blöcke 52 und 53 bei
der virtuellen Anwendungsansicht 50 sind somit über die
in der virtuellen Blocktabelle beibehaltenen Zeiger den Zuweisungsblöcken 43 und 45 an
der virtuellen RAID-Ansicht 50 zugeordnet. Es gibt mindestens
zwei Arten von RAID-Bereichen,
auf die von der virtuellen Blocktabelle verwiesen werden kann: Spiegel
und Parität.
-
Das RAID-Verwaltungssystem 16 kann
die Konfiguration der RAID-Bereiche über den physischen Speicherplatz
dynamisch verändern.
Die Anzahl von RAID-Bereichen für
jeden Typ kann je nach der Menge von Benutzerdaten, die in dem System gespeichert
sind, und je nach der Größe des physischen
Plattenspeicherplatzes erhöht
oder verringert werden. Folglich befinden sich das Abbilden der RAID-Bereiche
in der virtuellen Ansicht 40 der RAID-Ebene auf die Platten
und das Abbilden der virtuellen Ansicht 50 der Anwendungsebene
auf die RAID-Ansicht 40 allgemein in einem Veränderungszustand.
Der Speicherabbildungsspeicher in den NVRAMs 21a und 21b (1) behält die aktuellen Abbildungsinformationen
bei, die durch das RAID-Verwaltungssystem 16 verwendet
werden, um die RAID-Bereiche auf die Platten abzubilden, und behält die Informationen
bei, die verwendet werden, um zwischen die zwei virtuellen Ansichten
abzubilden. Während
das RAID-Verwaltungssystem
die Abbildungen der RAID-Ebene dynamisch verändert, aktualisiert es auch
die Abbildungsinformationen in dem Speicherabbildungsspeicher, um
die Veränderungen zu
reflektieren.
-
Die Migrationsoperation des Speichersystems 10 wird
nun unter Bezugnahme auf 1 und 4 beschrieben.
-
Für
die Zwecke einer fortführenden
Erläuterung
nehmen virtuelle Blöcke 53 des
virtuellen Speicherplatzes 50 der Anwendungsebene Bezug
auf zugeordnete Zuweisungsblöcke 45 in
dem Paritäts-RAID-Bereich 44,
die in dem Bereich A1 des physischen Speicherplatzes 34 gespeichert
sind. Derartige virtuelle Blöcke 53 können als "virtuelle Paritätsblöcke" bezeichnet werden,
während
die zugeordneten Zuweisungsblökke 45 als "Paritätszuweisungsblöcke" bezeichnet werden.
-
Desgleichen nehmen virtuelle Blöcke 52 Bezug
auf zugeordnete Zuweisungsblöcke 43 in
dem Spiegel-RAID-Bereich 42, die in dem Bereich A0 des physischen
Speicherplatzes 34 gespeichert sind. Derartige virtuelle
Blöcke 52 können hierin
als "virtuelle Spiegelblöcke" bezeichnet werden,
während
die zugeordneten Zuweisungsblöcke 43 als "Spiegelzuweisungsblöcke" bezeichnet werden.
-
Um Daten von einem RAID-Bereich zu
einem anderen zu bewe gen, wird allgemein ein virtueller Block,
der einem Zuweisungsblock eines Typs der ersten RAID-Ebene (z. B.
Spiegel oder Ebene 1) zugeordnet ist, ausgewählt. Anschließend wird
ein nicht benutzter Zuweisungsblock, der einen Typ der zweiten RAID-Ebene
(beispielsweise Parität
oder Ebene 5) darstellt, lokalisiert. Falls ein nicht benutzter Zuweisungsblock
nicht lokalisiert werden kann, wird einer erzeugt. Als nächstes werden
Daten von dem Zuweisungsblock, der zuvor dem ausgewählten virtuellen
Block zugeordnet war, an den nicht benutzten Zuweisungsblock transferiert,
der bewirkt, daß die Daten
einer Redundanzebenenänderung
unterzogen werden. Beispielsweise werden Daten, die einst gemäß der Spiegelredundanz
gespeichert wurden, nun gemäß einer
Paritätsredundanz
gespeichert, oder umgekehrt. Als abschließenden Schritt wird die 54 des virtuellen Speicherplatzes 50 der
Anwendungsebene auf den virtuellen Speicherplatz 40 der
RAID-Ebene modifiziert und aktualisiert, um die Datenverschiebung
widerzuspiegeln. Der ausgewählte
virtuelle Block, der zuvor einem Zuweisungsblock des Typs der ersten
RAID-Ebene zugeordnet war, nimmt nun über einen aktualisierten Zeiger
Bezug auf einen Zuweisungsblock des Typs der zweiten RAID-Ebene,
der die migrierten Daten enthält.
Jegliche Abbildungsveränderung,
die während
dieser Transaktion auftritt, würde
in dem Speicherabbildungsspeicher 21 aktualisiert werden.
-
Die fortdauernde Erörterung
liefert eine ausführlichere
Erklärung
des Bewegens von Daten zwischen Spiegel- und Paritätsspeicherbereichen
gemäß bevorzugten
Verfahren und Se quenzen dieser Erfindung. Zum Bewegen von Daten
von einem Paritäts-
zu einem Spiegelspeicher wird die folgende Sequenz verwendet:
- 1. Das RAID-Verwaltungssystem lokalisiert einen unbenutzten
Spiegelzuweisungsblock 43 in einem Spiegel-RAID-Bereich 42.
- 2. Falls keiner gefunden wird, erzeugt das RAID-Verwaltungssystem
einen Spiegelzuweisungsblock (nachfolgend erläutert).
- 3. Das RAID-Verwaltungssystem hebt neue Speicheranforderungen
an den zu bewegenden virtuellen Block zeitweilig auf.
- 4. Das RAID-Verwaltungssystem wartet, bis alle aktiven Datenspeicherungsanforderungen
an den virtuellen Block abgeschlossen sind.
- 5. Die Daten von dem Paritätszuweisungsblock 45,
der dem virtuellen Block 53 zugewiesen ist, werden in einen
vorübergehenden
Speicherpuffer eingelesen.
- 6. Die Daten werden anschließend in den bei Schritt 2 gewählten Spiegelzuweisungsblock 43 geschrieben.
- 7. Die virtuelle Blocktabelle wird modifiziert, um auf die neue
Position der Daten in dem Spiegelzuweisungsblock 43 zu
verweisen.
- 8. Die zeitweilig aufgehobenen Speicheranforderungen werden
wiederaufgenommen.
-
Gemäß der obigen Prozedur bewegte
sich ein virtueller Block 53 in der virtuellen Ansicht 50 der Anwendungsebene
von einer Paritäts-
zu einer Spiegelspeicherung. Relativ zu der virtuellen Zwischenansicht 40 bewegten
sich Daten von einem Paritätszuweisungsblock 45 in
dem Paritäts-RAID-Bereich 44 zu
einem Spiegelzuweisungsblock 43 in dem Spiegel-RAID-Bereich 42.
In dem physischen Speicherplatz bewegten sich Daten von dem Bereich
A1 zum Bereich A0.
-
Falls kein unbenutzter Spiegelzuweisungsblock
lokalisiert werden kann (Schritt 1 oben), versucht das RAID-Verwaltungssystem
die folgende bevorzugte Sequenz von drei Techniken. Erstens versucht
das RAID-Verwaltungssystem, einen unbenutzten (und somit unbenannten)
RAID-Bereich zu lokalisieren, der in einen Spiegel-RAID-Bereich
umgewandelt werden kann, ohne die Systemschwelle eines unbenutzten
Speichers der RAID-Ebene zu verletzen, die benötigt wird, um zu garantieren,
daß eine
Migration immer stattfinden kann. Falls dies fehlschlägt und das
System mehr als die reservierte Menge an unbenutztem Speicher der
RAID-Ebene aufweist, bewegt das System Daten innerhalb des Paritätsspeichers,
um unbenutzte Paritätszuweisungsblöcke zu unbenutzten
RAID-Bereichen zu sammeln. Falls diese Migration einen unbenutzten RAID-Bereich
ergibt, der, wie oben erwähnt,
in einen Spiegel-RAID-Bereich umgewandelt werden kann, wandelt das
System ihn in einen Spiegel-RAID-Bereich um. Andernfalls bewegt
das System alternativ dazu Daten von einem Spiegel- zu einem Paritätsspeicher,
verdichtet den Spiegelspeicher und wandelt einen unbenutzten Speicher
der RAID-Ebene in einen Paritätsspeicher
um, bis das System den unbenutzten Speicher der RAID-Ebene ausreichend
für die
Lokalisierung eines unbenutzten Spiegelzuweisungsblocks oder eine
Umwandlung eines unbenutzten RAID-Bereichs in einen Spiegel-RAID-Bereich erhöht. Da Spiegelzuweisungsblöcke mehr
physischen Speicherplatz belegen als Paritätszuweisungsblöcke, führt diese
letzte Technik zu einer Nettoerhöhung
des Umfangs an unbenutztem Speicher der RAID-Ebene.
-
Das Erzeugungs-/Umwandlungsprotokoll, das
verwendet wird, um unbenutzte Spiegelzuweisungsblöcke zu lokalisieren
und einzurichten, ist vorteilhaft, da es dem RAID- Verwaltungssystem
ermöglicht,
die Speicherzuweisung gemäß der Menge
an Benutzerdaten und der Größe des physischen
Speicherplatzes zwischen Paritäts-
und Spiegelbereichen selektiv einzustellen. Da die Datennutzung
und die Speicherkapazität
variieren, verwendet das RAID-Verwaltungssystem eine oder mehrere
der obigen drei Techniken, um die Datenmenge, die in einem Spiegelspeicher
gehalten wird, zu maximieren.
-
Das RAID-Verwaltungssystem versucht,
die Situation zu vermeiden, bei der eine Speicheranforderung warten
muß, bis
die Platzschaffungssequenz einen unbenutzten Spiegelzuweisungsblock
ergibt, indem sie während
einer Leerlaufzeit unbenutzte RAID-Bereiche erzeugt. In manchen
Situationen können
Speicheranforderungen während
der Platzschaffungssequenz jedoch zeitweilig aufgehoben werden. Das
RAID-Verwaltungssystem
konfiguriert den virtuellen Blockspeicherplatz derart, daß der virtuelle Platz
geringer ist als die RAID-Ansicht. Dies gewährleistet, daß für eine Migration
oder andere Zwecke ein freier Platz reserviert wird, der gleich
zumindest einem RAID-Bereich ist. Auf diese Weise ergibt die Sequenz
von Techniken immer einen unbenutzten Spiegelzuweisungsblock.
-
Um Daten von einem Spiegel- zu einem
Paritätsspeicher
zu bewegen, wird die folgende Sequenz verwendet:
- 1.
Das RAID-Verwaltungssystem wählt
einen virtuellen Block aus 52 aus, um gemäß einer
Migrationsrichtlinie, beispielsweise Zugriffsaktualität oder Zugriffshäufigkeit,
von einem Spiegel- zu einem Paritätsspeicher zu bewegen.
- 2. Das RAID-Verwaltungssystem lokalisiert einen unbenutzten
Paritätszuweisungsblock 45 in
einem Paritäts-RAID-Bereich 44.
- 3. Falls kein solcher Block gefunden werden kann, wird ein für eine Migration
reservierter Platz gemäß den oben
beschriebenen Erzeugungstechniken in einen Paritäts-RAID-Bereich umgewandelt.
- 4. Neue Speicheranforderungen an den zu bewegenden virtuellen
Block werden zeitweilig aufgehoben.
- 5. Das RAID-Verwaltungssystem wartet, bis alle aktiven Speicheranforderungen
an den virtuellen Block abgeschlossen sind.
- 6. Daten werden von dem Spiegelzuweisungsblock 43,
der dem virtuellen Block 52 zugeordnet ist, in einen vorübergehenden
Speicherpuffer gelesen.
- 7. Die Daten werden in den gewählten Paritätszuweisungsblock 45 geschrieben.
- 8. Die virtuelle Blocktabelle wird modifiziert, um auf die neue
Position der Daten in dem Paritätszuweisungsblock 45 zu
verweisen.
- 9. Datenanforderungen an den virtuellen Block werden wiederaufgenommen.
-
Die obigen zwei aufgezählten Sequenzen liefern
Beispiele dessen, wie das Speichersystem dieser Erfindung arbeiten
kann, um Daten zwischen zwei verschiedenen Redundanzebenen zu bewegen.
-
Abgesehen von der Datenredundanz
bietet das Plattenarraydatenspeichersystem dieser Erfindung "Heiße-Reserve"-Fähigkeiten,
um eine Datenverfügbarkeit
zu verbessern. Wie in dem Abschnitt "Hintergrund der Erfindung" erörtert wurde,
reservieren bekannte Plattenarrays eine zusätzliche physische Speicherplatte
bzw. eine "Reserve", die in dem Fall,
daß eine
Speicherplatte ausfällt,
verwendet wird. Die zusätzliche
Speicherplatte ist an dem Plattenarray befestigt und in demselben
vollständig
betreibbar, bleibt jedoch im Ruhezustand, bis der Speicherplattenausfall
auftritt. Die unter Strom stehende Speicherplatte wird als "heiße Reserve" bezeichnet. Die
Heiße-Reserve-Platte
wird verwendet, um die Daten nach dem Plattenausfall zu rekonstruieren
und die Redundanz in der Platte wiederherzustellen, ein Vorgang,
der als "Wiederaufbauen" bezeichnet wird. Ungünstigerweise
liefern die zweckgebundenen Heiße-Reserve-Platten während eines
normalen Betriebs, wenn alle Platten ordnungsgemäß funktionieren, keinen brauchbaren
Dienst, sondern sind statt dessen nur im Fall eines Plattenausfalls
von Nutzen.
-
Gemäß dem Plattenarray dieser Erfindung wird
eine Speicherplatzmenge, die ausreichend ist, um ein Wiederaufbauen
von Benutzerdaten im Fall eines Plattenausfalls zu ermöglichen,
in einer verteilten Weise über
viele, vorzugsweise alle, Speicherplatten in dem Array beibehalten
und verwendet, um eine RAID-1-Speicherung zu erhöhen. Keine einzelne Speicherplatte
ist als die "Heiße-Reserve"-Platte bezeichnet.
Alle Platten in dem Array speichern zugängliche Benutzerdaten derart,
daß ein
Speicherplatz zum Wiederaufbauen zur Verfügung gestellt werden kann.
Die Verwendung eines Heiße-Reserve-Platzes verbessert
die Leistungsfähigkeit
beträchtlich,
indem die Parallelität
erhöht
wird und indem mehr Kapazität
für eine
Spiegelspeicherung bereitgestellt wird. Im wesentlichen ist die
zusätzliche Speicherplatte,
die in der Vergangenheit ausschließlich für Heiße-Reserve-Ressourcen reserviert
war, nun zum Zweck eines normalen Betriebs des Speicherns von Benutzerdaten
in das Array integriert.
-
5 zeigt
ein beispielhaftes homogenes Plattenarray aus sechs Platten, das
Speicherplatten 0 bis 5 aufweist, bevor ein Plattenausfall auftritt.
Der gesamte Speicherplatz wird verwendet, um Benutzer- und redundante
Daten gemäß Spiegel- oder Paritätstechniken
zu speichern. Kein einziger Bereich und keine einzige Platte ist
lediglich für
Heiße-Reserve- Ressourcen reserviert.
Hier sind 55% der Benutzerdaten in RAID-5-Paritätsbereichen gespeichert, und
45% sind in RAID-1-Spiegelbereichen gespeichert. Obwohl der gesamte
Speicherplatz für
eine normale Datenspeicherung verwendet wird, kann eine Quantität des Platzes
im Fall eines Plattenausfalls zum Rekonstruieren von Benutzerdaten
und zum Wiederherstellen einer Redundanz zur Verfügung gestellt
werden. In dieser Figur wird der Heiße-Reserve-Platz, der zur Verfügung gestellt
werden kann, derzeit als RAID-1-Speicherplatz
verwendet, der über
die Speicherplatten in dem Array verteilt ist.
-
6 zeigt
dasselbe Plattenarray wie 5, aber
im Anschluß an
einen Ausfall der Speicherplatte 5. Die auf der Platte 5 gespeicherten
Benutzer- und/oder redundanten Daten sind verloren. Auf einen Ausfall
hin beginnt das Plattenarray einen Wiederaufbauvorgang, um eine
Redundanz in dem System wiederaufzubauen. Durch Bewegen von Daten
von dem Spiegelspeicher zu dem Paritätsspeicher wird Platz zur Verfügung gestellt.
Diese Migration erhöht gleichzeitig
den Umfang an Paritätsspeicher,
während
sie den Umfang an Spiegelspeicher verringert. Gleichzeitig mit diesem
Migrationsvorgang wird die Größe aller
Streifen in dem System um ein Segment, das aufgrund der ausgefallenen
Speicherplatte verloren ist, verringert. Man beachte, daß sich die
Streifen nun lediglich über
die Platten 0 bis 4 und nicht über die
Platte 5 erstrecken. Infolge dieser Datenmigration und Verringerung
der Streifengröße sind
nun 90% der Benutzerdaten in RAID-5-Bereichen gespeichert, und 10%
sind in ARID-1-Bereichen
gespeichert. Im Anschluß an
diesen Wiederaufbauvorgang wurde die Redundanz in dem Plattenarray
wiederhergestellt.
-
7 veranschaulicht,
wie eine Datenmigration im Anschluß an einen Ausfall der Platte
5 zusätzlichen
Platz freimacht. Diese Figur zeigt Abschnitte der Speicherplatten
0 bis 5, die zwei Sätze
von drei Streifen enthalten, die allgemein mit den Zahlen 90 und 92 bezeichnet
sind. Daten in den obe ren drei Streifen 90 sind gemäß Spiegelspeichertechniken gespeichert,
bei denen Benutzerdaten in den Segmenten 1 bis 9 gespeichert sind
und redundante Daten in den Segmenten 1' bis 9' gespeichert sind. Man beachte, daß die redundanten
Daten 3', 6' und 9' auf der Platte 5
aufgrund des Ausfalls dieser Platte verlorengingen.
-
Bei dem Beispiel der 7 sei angenommen, daß die Benutzerdaten in den
Streifen 90 zu dem unteren Satz von Streifen 92 bewegt
werden. Aufgrund der Differenz bezüglich der redundanten Speichertechniken
können
die Benutzerdaten 1 bis 9 hier in weniger Segmenten gespeichert
werden. Trotz des Verlustes der Platte 5 kann die Datenmigration,
die an drei zusätzlichen
Segmenten (als "unbenutzt" bezeichnet) zur
Verfügung
gestellt ist, nun verwendet werden, um Benutzerdaten zu speichern.
-
Die Fähigkeit, Heiße-Reserve-Platz
als RAID-1-Speicher zu verwenden, während ein Wiederaufbauen im
Anschluß,
an einen Plattenausfall garantiert wird, wird durch einen Speicherverwalter verwaltet.
Bei der bevorzugten Implementierung ist der Speicherverwalter als
das RAID-Verwaltungssystem 16 (1) verkörpert, das die Benutzerdaten, die
redundanten Daten und den unbenutzten Platz auf dem Plattenarray
nachverfolgt.
-
Das RAID-Verwaltungssystem gewährleistet,
daß ein
unbenutzter Speicherplatz zu Heiße-Reserve-Zwecken zur Verfügung gestellt
werden kann, indem dem Umfang an virtuellem Speicherplatz der Anwendungsebene
(bei 4 Platz 50),
der einem Benutzer überlassen
werden kann, eine künstliche Obergrenze
auferlegt wird ("künstlich" insofern, als die
Menge an virtuellem Speicherplatz der Anwendungsebene in bezug auf
das, was zur Verfügung
gestellt würde,
wenn die Heiße-Reserve-Option
nicht bestünde,
verringert ist). Um diese Obergrenze zu liefern, berechnet das RAID-Verwaltungssystem
routinemäßig eine
Kapazität
des virtuellen Speicherplatzes der Anwendungsebene, der einem Benutzer überlassen
werden kann, während
gewährleistet wird,
daß das
Plattenarray trotzdem noch seine erforderlichen Funktionen (z. B.
Datenmigration) erfüllen kann.
Wenn der Benutzer die Heiße-Reserve-Option wählt, berechnet
das RAID-Verwaltungssystem
die Anwendungsebenenkapazität
so, als ob sie nicht die Kapazität
der Speicherplatte der größten Größe in dem
Array umfassen würde.
Die Kapazität
der größten Speicherplatte
wird verwendet, um zu garantieren, daß der Wiederaufbauvorgang durchgeführt werden
kann, falls irgendeine Speicherplatte, einschließlich der größten, in
dem Array ausfällt.
Bei einem homogenen Plattenarray, bei dem alle Speicherplatten dieselbe
Größe aufweisen,
kann die Kapazität
jeglicher Speicherplatte verwendet werden.
-
Nachdem die künstliche Obergrenze berechnet
wurde, setzt das RAID-Verwaltungssystem diese Grenze durch, indem
es ein Überlassen
von zusätzlichem
virtuellem Speicherplatz der Anwendungsebene über die berechnete Kapazität hinaus
verhindert. Diese kombinierte Kapazitätsanalyse und -durchsetzung
verringert künstlich
die Größe des virtuellen Speicherplatzes
der Anwendungsebene, um dadurch zu gewährleisten, daß eine ausreichende
Quantität des
virtuellen Speicherplatzes der RAID-Ebene zum Wiederaufbauen im
Falle des Ausfalls einer Speicherplatte zur Verfügung gestellt werden kann.
-
Falls der gegenwärtige Umfang an virtuellem Speicherplatz
der Anwendungsebene nicht gefüllt werden
kann, während
gleichzeitig eine heiße
Reserve garantiert wird, erzeugt das RAID-Verwaltungssystem eine
Warnung, um den Benutzer zu informieren, daß kein Heiße-Reserve-Platz verfügbar ist.
Diese Situation kann entstehen, wenn das Plattenarray bereits eine
Speicherplatte verloren hat. Beispielsweise könnte das Plattenarray der 6, das bereits eine ausgefallene
Platte 5 aufweist, keinen weiteren Plattenverlust hinnehmen und
trotzdem die Redundanz der Benutzerdaten aufrechterhalten. Eine
andere Situation könnte
entstehen, wenn der Benutzer die Heiße-Reserve-Option anfänglich nicht freigibt,
jedoch später
dieses Merkmal anfordert, nachdem die Größe des virtuellen Speicherplatzes
der Anwendungsebene bereits eingestellt wurde. Das Plattenarray
ist an diesem Punkt eventuell nicht in der Lage, Heiße-Reserve-Ressourcen zu garantieren.
-
8 zeigt
ein bevorzugtes Verfahren zum Betreiben des Plattenarrays während normaler
Bedingungen und im Falle eines Plattenausfalls. Bei Schritt 100 bildet
das RAID-Verwaltungssystem 16 den
durch das Plattenarray 12 bereitgestellten physischen Speicherplatz
in einen ersten virtuellen Speicherplatz 40 bzw. einen
virtuellen Speicherplatz 40 der RAID-Ebene ab (siehe 4). Wie oben beschrieben
wurde, präsentiert
der virtuelle Speicherplatz der RAID-Ebene den physischen Speicherplatz als
Spiegel- und Paritäts-RAID-Bereiche.
Bei Schritt 102 gewährleistet
das RAID-Verwaltungssystem, daß über das
Plattenarray genügend
Speicherplatz zur Verwendung im Fall eines Plattenausfalls zur Verfügung gestellt
werden kann.
-
Anfänglich, wenn Daten zuerst in
dem System plaziert werden, werden die Daten gänzlich in dem Spiegelspeicher
gespeichert (Schritt 104). Die Benutzerdaten und ihre redundanten
Gegenstücke werden
vorzugsweise gleichmäßig über die
Platten in dem Array verteilt. Eine Spiegelspeicherung liefert eine
bessere Leistungsfähigkeit
und Zuverlässigkeit im
Vergleich zu einer Paritätsspeicherung
und ist somit der bevorzugte Speichertyp. Wenn die Menge an Benutzerdaten
ungefähr
die Hälfte
der physischen Kapazität
der Platten in dem System erreicht, ist das Plattenarray effektiv
voll, da die Benutzerdaten ungefähr
die Hälfte
der Speicherkapazität
einnehmen und die redundanten Daten ungefähr die andere Hälfte einnehmen.
Wenn die Menge an Benutzerdaten die 50%-Schwelle überschreitet, beginnt das RAID-Verwaltungssystem,
Daten unter Verwendung einer Datenmigration zwischen den Typen sowohl
in Spiegel- als auch Paritäts-RRID-Bereichen
zu speichern (Schritt 106). Im Gegensatz zu einer Spiegelspeicherung
können
unter Verwendung einer Paritätsspeiche rung
mehr Benutzerdaten in demselben Platzumfang gespeichert werden (wie
oben bei 7 veranschaulicht
ist). Während
sich das Datenspeichersystem weiterhin füllt, werden proportional mehr
Daten zu dem Paritätsspeicher
bewegt, um das zunehmende Datenvolumen zu berücksichtigen. Die Menge an Benutzerdaten
in dem Spiegelspeicher nimmt ab.
-
Für
den Fall, daß eine
Speicherplatte zu einem beliebigen Zeitpunkt während des normalen Betriebs
ausfällt
(wie durch die gestrichelten Linien zum Schritt 108 veranschaulicht
ist), initiiert das RAID-Verwaltungssystem den Wiederaufbauvorgang.
Bei Schritt 109 wertet das RAID-Verwaltungssystem aus,
ob ein entsprechender Umfang an Heiße-Reserve-Platz vorliegt, der im Fall eines Plattenausfalls
zur Verfügung
gestellt werden kann. Mit anderen Worten, kann das System ohne die
ausgefallene Speicherplatte in der Lage sein, die gesamte überlassene
Kapazität
mit einer Redundanz zu speichern? Falls kein ausreichender Platz
vorliegt, um im Fall eines Plattenausfalls die gesamte überlassene Kapazität mit einer
Redundanz zu speichern (d. h. der "Nein"-Zweig aus Schritt 109),
wird das Plattenarrayspeichersystem in einem verschlechterten Zustand
ohne Heiße-Reserve-Ressourcen oder die
Fähigkeit,
eine Redundanz wiederherzustellen, betrieben (Schritt 111).
-
Wenn dagegen ein ausreichender Platz
für eine
heiße
Reserve vorliegt (d. h. der "Ja"-Zweig aus Schritt 109),
bestimmt das RAID-Verwaltungssystem, ob ausreichend Platz für die Zwecke
des Rekonstruierens von Benutzerdaten und des Wiederherstellens einer
Redundanz zur Verfügung
gestellt wurde (Schritt 110). Falls dies der Fall ist (d.
h. der "Ja"-Zweig aus Schritt 110),
verwendet das Plattenarray den verfügbaren freien Platz zum Rekonstruieren der
Benutzerdaten von der ausgefallenen Speicherplatte und zum Wiederherstellen
der Redundanz (Schritt 112). Alternativ dazu, falls nicht
genügend Platz
zur Verfügung
gestellt wurde (d. h. der "Nein"-Zweig von Schritt 110),
bewegt das RAID-Verwaltungssystem
Benutzerdaten von dem Spiegelspeicher zu dem Paritätsspeicher,
um einen verfügbaren
Speicherplatz freizumachen, um den verlorenen Platz auf der ausgefallenen
Speicherplatte zu kompensieren. Das RAID-Verwaltungssystem bewegt
so lange Daten von dem Spiegel- zum Paritätsspeicher (wie durch die Schleife
der Schritte 110 und 114 dargestellt ist), bis
ein ausreichender Umfang an verfügbarem
Speicherplatz freigemacht ist, um den Bedarf an dem ausgefallenen
Plattenplatz zu eliminieren.
-
Das Plattenarraysystem dieser Erfindung weist
insofern Vorteile gegenüber
bekannten Plattenarrays auf, als alle Speicherplatten gleichermaßen verwendet
werden, um Daten in einem Spiegelspeicher zu speichern, während ein
Wiederaufbau im Anschluß an
einen Plattenausfall garantiert wird. Es gibt keine zweckgebundene
Speicherplatte, die ungenutzt bleibt, bis ein Ausfall auftritt.
Die Verwendung eines Heiße-Reserve-Speichers
als Spiegelspeicher verbessert die Leistungsfähigkeit des gesamten Plattenarrays
beträchtlich,
indem die Parallelität
erhöht wird
und die Komplexität
des Verwaltens der Schreiboperationen in redundante Speicherplätze verringert
wird.
-
Vorschriftsgemäß wurde die Erfindung in einer
Sprache beschrieben, die mehr oder weniger spezifisch für strukturelle
und methodische Merkmale ist. Man sollte jedoch verstehen, daß die Erfindung nicht
auf die gezeigten und beschriebenen spezifischen Merkmale beschränkt ist,
da die hierin offenbarten Einrichtungen bevorzugte Formen der Umsetzung
der Erfindung umfassen. Deshalb ist die Erfindung in jeglicher ihrer
Formen oder Modifikationen in dem ordnungsgemäßen Schutzumfang der beigefügten Patentansprüche beansprucht,
die gemäß der Äquivalente-Doktrin
entsprechend interpretiert werden.