DE69533077T2 - Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation - Google Patents

Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation Download PDF

Info

Publication number
DE69533077T2
DE69533077T2 DE69533077T DE69533077T DE69533077T2 DE 69533077 T2 DE69533077 T2 DE 69533077T2 DE 69533077 T DE69533077 T DE 69533077T DE 69533077 T DE69533077 T DE 69533077T DE 69533077 T2 DE69533077 T2 DE 69533077T2
Authority
DE
Germany
Prior art keywords
raid
data
management system
memory
disk array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69533077T
Other languages
English (en)
Other versions
DE69533077D1 (de
Inventor
Michael B. Boise Jacobson
Douglas L. Boise Voigt
Marvin D. Boise Nelson
Theresa A. Meridian Burkes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE69533077D1 publication Critical patent/DE69533077D1/de
Application granted granted Critical
Publication of DE69533077T2 publication Critical patent/DE69533077T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich auf nicht-flüchtige Speichersysteme, z. B. Computerplattenarrays, die eine Datenspeicherredundanzverwaltung aufweisen.
  • HINTERGRUND DER ERFINDUNG
  • Computersysteme werden in Bezug auf Geschwindigkeit, Zuverlässigkeit und Verarbeitungsfähigkeit ständig verbessert. Folglich sind Computer in der Lage, komplexere und anspruchsvollere Anwendungen zu handhaben. Während jedoch Computer immer besser werden, nehmen auch die Leistungsanforderungen zu, die an Massenspeicher- und Eingabe-/Ausgabevorrichtungen (I-/O-Vorrichtungen) gestellt werden. Im Allgemeinen hat die I-/O-Leistungsfähigkeit Schwierigkeiten, mit den wachsenden Fähigkeiten der Computer Schritt zu halten.
  • Die Massenspeicherindustrie steht vor zwei Hauptherausforderungen: (1) die I-/O-Leistungsfähigkeit so zu verbessern, dass der Datenzugriff nicht zu einem einschränkenden Faktor für eine Anwendung wird, und (2) einen Zugriff auf Online-Daten auf einem Zuverlässigkeitsniveau zu liefern, das die angenommenen Lebensdauern der Computersysteme, die dieselben verarbeiten, deutlich überschreitet. Siehe THE RAIDBook: A Source Book for RAID Technology, das am 9. Juni 1993 durch RAID Advisory Board, Lino Lakes, Minnesota, veröffentlicht wurde. Es ist wünschenswert, dass Speichervorrichtungen diese Ziele auf kostengünstige Weise erreichen.
  • Für derartige Speichersysteme gibt es drei Hauptentwurfskriterien: Kosten, Leistungsfähigkeit und Verfügbarkeit. Am wünschenswertesten ist es, Speichervorrichtungen zu erzeu gen, die geringe Kosten pro Megabyte, eine hohe Eingangs-/Ausgangsleistungsfähigkeit und eine hohe Datenverfügbarkeit aufweisen. „Verfügbarkeit" ist die Fähigkeit, Daten, die in dem Speichersystem gespeichert sind, wiederherzustellen, obwohl manche Daten auf Grund eines Defekts oder aus einem anderen Grund unzugänglich wurden, 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.
  • 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.
  • Die vorliegende Erfindung liefert ein Speichersystem, das die drei gewünschten Attribute einer hohen Leistungsfähigkeit, einer hohen Datenverfügbarkeit und geringer Kosten erfüllt.
  • In der US-A-5,166,929 sind eine Datenspeichervorrichtung und ein Verfahren, das eine Mehrzahl von physischen Speichervorrichtungen aufweist, beschrieben. Der Vorrichtungssatz ist in eine oder mehr Redundanzgruppen unterschiedlicher Typen unterteilt, wobei jede Gruppe wiederum in eine oder mehr Datengruppen unterteilt ist, von denen jede eventuell nur eine geringe Anzahl der Laufwerke in der Redundanzgruppe überspannt. Daten werden an die Speichervorrichtung geliefert und in der jeweiligen Redundanzgruppe gespeichert, die den empfangenen Daten zugeordnet ist.
  • In der JP 05-224822 A ist ein Speicherarraysystem beschrieben, das eine Mehrzahl von physischen Speichervorrichtungen aufweist, aus denen bzw. in die Daten durch ein Hostsystem gelesen bzw. geschrieben werden. Mittels einer spezifischen Systemkonfigurationsinformationstabelle ist die Anordnung der Mehrzahl von Speichervorrichtungen derart konfiguriert, dass dieselben dem Hostsystem als eine einzige Speichervorrichtung erscheinen.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein verbessertes Datenspeichersystem zu schaffen, das verschiedene RAID-Bereiche aufweist und eine effiziente Nutzung von Speicherpositionen in den jeweiligen RAID-Bereichen für Daten, die bereits in dem Speichersystem gespeichert sind, ermöglicht.
  • Diese Aufgabe wird durch ein Datenspeichersystem gemäß Anspruch 1 gelöst.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Das Speichersystem dieser Erfindung umfasst ein hierarchisches Plattenarray von mehreren Platten und eine mit dem Plattenarray gekoppelte Plattenarraysteuerung zum Koordinieren eines Datentransfers zu und von den Platten. Das Speichersystem bildet gemäß Redundanz- oder RAID-Ebene-Kriterien einen oder mehr virtuelle Speicherplätze auf den physischen Speicherplatz eines Plattenarrays ab. Daten, die gemäß einem Redundanztyp (z. B. gemäß der Spiegelredundanz der RAID-Ebene 1) gespeichert werden sollen, werden in einem Bereich des virtuellen Speicherplatzes platziert, und Daten, die gemäß einem weiteren Redundanztyp (z. B. gemäß der Paritätsredundanz der RAID-Ebene 5) gespeichert werden sollen, werden in einem anderen Bereich des virtuellen Speicherraums platziert.
  • Ein RAID-Verwaltungssystem (RAID = Redundant Array of Independent Disks, redundantes Array von unabhängigen Platten) ist zum Abbilden des virtuellen Speicherplatzes, der als verschiedene RAID-Bereiche gekennzeichnet ist, auf die Platten, wirksam mit der Plattenarraysteuerung gekoppelt. Das RAID-Verwaltungssystem speichert Daten gemäß einer ersten RAID-Ebene (z. B. der RAID-Ebene 1 bzw. Spiegelredundanz) in einem ersten RAID-Bereich und speichert Daten gemäß einer zweiten RAID-Ebene (z. B. der RAID-Ebene 5 bzw. der Paritätsredundanz) in dem zweiten RAID-Bereich. Das RAID-Verwaltungssystem verschiebt oder bewegt Daten gemäß einem definierten Leistungsfähigkeitsprotokoll zwischen dem ersten und dem zweiten RAID-Bereich auf den Platten.
  • Ein aktualisierbarer Speicherabbildungsspeicher in Form eines nicht-flüchtigen RAM ist in der Plattenarraysteuerung vorgesehen und befindet sich außerhalb des Plattenarrays. Der Speicherabbildungsspeicher liefert eine dauerhafte Speicherung der virtuellen Abbildungsinformationen, die durch das RAID-Verwaltungssystem verwendet werden, um den ersten und den zweiten RAID-Bereich auf die Platten abzu bilden. Das RAID-Verwaltungssystem verändert das Abbilden des ersten und des zweiten RAID-Bereichs auf den Platten dynamisch und aktualisiert die Abbildungsinformationen in dem Speicherabbildungsspeicher, um die Veränderung widerzuspiegeln.
  • 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 Speichersystems gemäß dieser Erfindung.
  • 2 eine schematische Veranschaulichung, die eine Datenspeicherung auf RAID-Ebene 1 zeigt;
  • 3 eine schematische Veranschaulichung, die eine Datenspeicherung auf RAID-Ebene 5 zeigt; und
  • 4 eine schematische Veranschaulichung einer Speicherabbildungsanordnung dieser Erfindung, bei der zwei virtuelle Speicherplätze auf einen physischen Speicherplatz abgebildet werden.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 zeigt ein Datenspeichersystem 10, das gemäß dieser Erfindung aufgebaut ist. Vorzugsweise umfasst das Speichersystem 10 ein hierarchisches Plattenarray 11, das eine Mehrzahl von Platten 12 aufweist, eine mit dem Plattenarray 11 gekoppelte Plattenarraysteuerung 14 zum Koordinieren eines Datentransfers zu und von den Platten 12 sowie ein RAID-Verwaltungssystem 16.
  • 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 umfasst 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" umfasst 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, dass 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. Das RAID-Verwaltungssystem 16 stellt eine Datenverwaltungseinrichtung zum Steuern von Plattenspeicherungs- und von Zuverlässigkeitsebenen sowie zum Transferieren von Daten zwischen verschiedenen Zuverlässigkeits-Speicherstufen bereit. 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 14a und aus der Plattenarraysteuerung B 14b besteht. Die dualen Steuerungen 14a und 14b verbessern die Zuverlässigkeit, indem sie für den Fall, dass eine Steuerung funktionsuntüchtig wird, eine fortlaufende Sicherung und Redundanz liefern.
  • 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äts- oder RAID-Ebene 5. Die verschiedenen Abbildungstechniken und virtuellen Plätze, die RAID-Ebenen betreffen, werden nachfolgend ausführlicher beschrieben.
  • Das Datenspeichersystem 10 umfasst einen Speicherabbildungsspeicher 21, der eine durchgängige Speicherung der virtuellen Abbildungsinformationen liefert, die verwendet werden, um verschiedene Speicherplätze aufeinander abzubilden. Der Speicherabbildungsspeicher 21 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 Speichersystem 10 die Daten über einen bestimmten Zeitraum in dem Speicher beizubehalten. Ein bevorzugter Aufbau ist ein selbstauffrischender batteriegepufferter DRAM (dynamischer RAM).
  • Der Speicherabbildungsspeicher 21 kann auch konfiguriert sein, um die Speicherabbildungsinformationen gemäß einer ausgewählten Zuverlässigkeitsebene auf redundante Weise zu speichern. Bei dem bevorzugten Aufbau sorgen die dualen NVRAMs 21a und 21b 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 nicht-flüchtigen RAMs mit einem ausreichenden Platz, um die Daten im Duplikat zu speichern, konfiguriert sein.
  • Das Speichersystem dieser Erfindung ist im Vergleich zu bekannten Entwürfen vorteilhaft, da es einen dauerhaften, nicht-flüchtigen Speicherabbildungsspeicher verwendet, der von dem Plattenarray separat ist. Bei bekannten Systemen, die virtuelle Abbildungen verwenden, wurde eine dauerhafte Speicherung der Abbildungsinformationen auf den Speicherplatten selbst gehalten. Jedoch führen die Prozeduren zum Aufrechterhalten der Einheitlichkeit der Abbildungsinformationen auch im Falle von unerwarteten Unterbrechungen, z. B. bei einem ungeplanten Leistungsverlust, und die Zugriffscharakteristika der Vorrichtungen selbst zu einem Leistungsverlust beim Zugriff auf die abgebildeten Daten.
  • Dieses Speichersystem 10 überwindet diese Nachteile, indem es die dauerhafte Speicherung virtueller Abbildungen in dem nicht-flüchtigen RAM-Speicher 21 vorsieht. Diese einzigartige Anordnung verbessert die Leistungsfähigkeit beim Zugriff auf abgebildete Daten auf zwei Arten. Erstens können weniger ausgefeilte Prozeduren verwendet werden, um eine Abbildungseinheitlichkeit aufrechtzuerhalten. Zweitens weisen RAM-Vorrichtungen im Vergleich zu magnetischen Speichervorrichtungen bessere Leistungsfähigkeitszugriffscharakteristika auf. Ferner wird die Zuverlässigkeit der Abbildungsinformationen durch die Verwendung einer redundanten Speicherung in dem nicht-flüchtigen RAM erhöht, so dass derartige Informationen zumindest so zuverlässig sind wie die auf dem Plattenarray gespeicherten Benutzerdaten.
  • Wie in 1 gezeigt ist, kann das Plattenarray 11 konzeptionell so ausgearbeitet sein, dass es in einer Spiegelgruppe 18 mehrerer Platten 20 und einer Paritätsgruppe 22 mehrerer Platten 24 angeordnet ist. Die Spiegelgruppe 18 stellt einen ersten Speicherplatz oder RAID-Bereich des Plattenarrays dar, der Daten gemäß einer ersten bzw. Spiegelredundanzebene speichert. Diese Spiegelredundanzebene wird auch als eine RAID-Ebene 1 betrachtet. Die RAID-Ebene 1 bzw. Plattenspiegelung bietet die höchste Datenzuverlässigkeit, indem sie insofern einen Eins-Zu-Eins-Schutz liefert, als jedes Datenbit dupliziert und in dem Speichersystem gespeichert wird. Die Spiegelredundanz ist schematisch durch die drei Paare von Platten 20 in 1 dargestellt. Originaldaten können auf einem ersten Satz von Platten 26 gespeichert werden, während doppelte, redundante Daten auf dem paarigen 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. Horizontale Zeilen stellen „Streifen" dar, in denen Daten über die Platten in dem Array verteilt sind. Ein Streifen besteht aus zahlreichen Segmenten, wobei ein Segment jeder Platte zugeordnet ist. Bei diesem Beispiel 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 sind ursprüngliche Daten auf der fünften Platte 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. Der Paritäts-RAID-Bereich umfasst ferner mehrere Platten und eine Anzahl von Streifen gleicher Größe, die ähnlich dem Entwurf sind, der oben unter Bezugnahme auf den Spiegel-RAID-Bereich der 2 beschrieben wurde. Der Abschnitt eines Streifens, der sich auf einer einzelnen Platte befindet, ist ein Segment. Bei diesem 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 mit einer Exklusiv-ODER-Funktion berechnet, 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 Speicherplatzes RAID-Bereiche zu bilden. Zusätzlich wird eine weitere (durch einen Host definierte) Ansicht eines Speicherplatzes dem Benutzer oder Host präsentiert, so dass die RAID-Bereiche und die Datenredundanz-Speichertechniken für den Benutzer oder Host transparent sind. Dieses Merkmal wird unter Bezugnahme auf 4 nachstehend ausführlicher erörtert.
  • Das neuartige Speichersystem 10 dieser Erfindung 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. Nachdem Daten von einem Paritäts-RAID-Bereich zu einem Spiegel-RAID-Bereich bewegt wurden, steht der Raum, den sie einst in dem Paritäts-RAID-Bereich einnahmen, für eine Speicherung anderer Daten zur Verfügung. 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 Speichersystem 10 platziert die kritischeren Daten in die Spiegel-RAID-Bereiche, 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 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 verbleibenden Daten 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.
  • Auf diese Weise „stimmt" das RAID-Verwaltungssystem 16 die Speicherressourcen eines Speichersystems gemäß den Anwendungs- bzw. Benutzeranforderungen effektiv „ab". Bei einer Anwendung, die eine hohe Leistungsfähigkeit und Zuverlässigkeit erfordert, kann das RAID-Verwaltungssystem beispielsweise einen proportional größeren Spiegel-RAID-Bereich erzeugen und definieren, wodurch ein größerer Umfang an physischer Speicherkapazität der Spiegelredundanz gewidmet wird, im Vergleich zu dem Paritäts-RAID-Bereich. Umgekehrt kann das RAID-Verwaltungssystem bei einer Anwendung, bei der die Kosten im Vordergrund stehen und bei der der Leistungsfähigkeit oder Zuverlässigkeit weniger Bedeutung beigemessen wird, einen im Vergleich zu dem Spiegel-RAID-Bereich proportional größeren Paritäts-RAID-Bereich einrichten. Dementsprechend liefert das Datenspeichersystem dieser Erfindung eine maximale Flexibilität und Anpassung.
  • 4 veranschaulicht ein Speicherabbilden des verfügbaren Speicherplatzes des Speichersystems 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. Der Speicherplatz 34 ist in Bereiche 0, 1, 2 usw. unterteilt. Einzelne Bereiche enthalten mehrere Regionen 35, die vorzugsweise über das gesamte Plattenarray eine gleiche Größe aufweisen.
  • Der Speicherplatz der Platten kann in eine virtuelle erste bzw. Zwischenansicht 40 der RAID-Ebene des physischen Speicherplatzes 34 abgebildet werden. Diese erste virtuelle Ansicht ist vom Konzept her ein Satz von RAID-Bereichen, der, wenn er durch den Benutzer oder das Anwendungsprogramm betrachtet wird, einen großen Speicherplatz darstellt, der den gesamten Speicherplatz auf den Platten 0, 1, 2 und 3 angibt. Dementsprechend ist die Höhe des Rechtecks in den RAID-Bereichen höher als die der Platten gezeigt.
  • Der RAID-Bereich-Speicherplatz 40 ist die Speicheransicht, die einen Spiegel- und einen Paritätsspeicherplatz identifiziert. Beispielsweise kann ein RAID-Bereich 42 einen Spiegel-RAID-Bereich von M Blöcken 43 darstellen, während der RAID-Bereich 44 einen Paritäts-RAID-Bereich von N Blöcken 45 darstellt. Diese RAID-Bereiche beziehen sich auf entsprechende Bereiche 0, 1, 2 usw. auf dem physischen Speicherplatz 34. 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-Ebene-Bereich entspricht. Ein solcher Speicherplatz kann jedoch in einen Spiegel- oder Paritäts-RAID-Bereich umgewandelt werden, wie nachfolgend ausführlicher beschrieben wird.
  • Der in den RAID-Bereichen verfügbare Speicherplatz kann auch in eine virtuelle zweite oder vordere Ansicht 50 abgebildet werden, die eine Speicheransicht ist, dem Benutzer oder dem Anwendungsprogramm präsentiert wird. Bei einer Betrachtung durch den Benutzer oder das Anwendungsprogramm stellt die zweite virtuelle Ansicht 50 auch eine einzige große Speicherkapazität dar, die den verfügbaren Speicherplatz auf der Platte 12 angibt. Der virtuelle Speicherplatz 50 präsentiert eine Ansicht eines linearen Satzes von gleich großen Speicherblöcken 52 und 53, die einzeln als 0, 1, 2, ... J – 1, J, J + 1, ..., usw. bezeichnet werden. Der virtuelle Blockspeicherplatz 50 wird in der durch die RAID-Bereiche 40 dargestellten Ansicht durch eine Tabelle von Bezugnahmen oder Zeigern auf Speicherblöcke dargestellt (wie durch Pfeile 54 dargestellt ist). Es gibt mindestens zwei RAID-Bereiche, auf die von der Virtuelle-Blöcke-Tabelle verwiesen werden kann, so dass sowohl Spiegel- als auch Paritätsspeicherbereiche zur Verfügung stehen. Vorzugsweise ist die Speicherkapazität der RAID-Bereiche 40 in Blöcke derselben Größe wie die der Ansicht des virtuellen Blockes eines Speicherplatzes unterteilt.
  • Das RAID-Verwaltungssystem 16 kann die Konfiguration der RAID-Bereiche dynamisch verändern. Die RAID-Bereiche können je nach den zu einem bestimmten Zeitpunkt herrschenden Datenzuverlässigkeitsanforderungen vergrößert oder verkleinert werden. Folglich befinden sich das Abbilden der RAID-Bereiche in der ersten virtuellen Ansicht 40 auf die Platten und das Abbilden der vorderen virtuellen Ansicht 50 auf die RAID-Ansicht 40 allgemein in einem Veränderungszustand. Der Speicherabbildungsspeicher 21 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 21, um die Veränderungen zu reflektieren.
  • Die Größe der NVRAMs 21a und 21b, die den Speicherabbildungsspeicher 21 verkörpern, muss ausreichend sein, um alle Abbildungsinformationen, die den physischen Speicherplatz 34 und die zwei virtuellen Speicherplätze 40 und 50 koordinieren, aufrechtzuerhalten. Gemäß einem Aspekt dieser Erfindung existiert eine Beziehung zwischen der Speicherkapazität des Plattenarrays (DAcap) und der Speicherkapazität des Speicherabbildungsspeichers (MMScap). Diese Beziehung lautet wie folgt: MMScap (Kilobytes) = C × DAcap (Gigabytes),wobei C eine Konstante in einem Bereich zwischen etwa 70 und 90 ist. Am stärksten bevorzugt weist die Konstante C einen Wert von 80 auf.
  • Die Funktionsweise 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 zweiten virtuellen Speicherplatzes 50 Bezug auf zugeordnete Blöcke 45 in dem Paritäts-RAID-Bereich 44, die in dem Bereich 1 des physischen Speicherplatzes 34 gespeichert sind. Derartige virtuelle Blöcke 53 werden als „virtuelle Paritätsblöcke" bezeichnet. Desgleichen nehmen virtuelle Blöcke 52 Bezug auf zugeordnete Blöcke 43 in dem Spiegel-RAID-Bereich 42, die in dem Bereich 0 des physischen Speicherplatzes 34 gespeichert sind. Derartige virtuelle Blöcke 52 werden hierin als „virtuelle Spiegelblöcke" bezeichnet.
  • Um Daten von einem RAID-Bereich zu einem anderen zu bewegen, wird allgemein ein erster virtueller Block 52, der eine erste RAID-Ebene (z. B. Spiegel oder Ebene 1) darstellt, ausgewählt. Anschließend wird ein zweiter virtueller Block 53, der eine zweite RAID-Ebene (beispielsweise Parität oder Ebenen 3, 4 oder 5) darstellt, lokalisiert. Dieser zweite virtuelle Block wird vorzugsweise nicht benutzt, falls jedoch kein unbenutzter Block lokalisiert werden kann, wird einer erzeugt. Als nächstes werden Daten von dem ersten virtuellen Block an den zweiten virtuellen Block transferiert, der bewirkt, dass die Daten einer Redundanzebenenänderung unterzogen werden. Beispielsweise werden Daten, die einst gemäß der Spiegelredundanz gespeichert wurden, nun gemäß einer Paritätsredundanz gespeichert. Als abschließender Schritt wird der zweite virtuelle Speicherplatz 50 modifiziert und aktualisiert, um die Datenverschiebung widerzuspiegeln. 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 Sequenzen dieser Erfindung. Um Daten von einem virtuellen Block 53, der einen Paritäts-RAID-Bereich 44 angibt, zu ei nem virtuellen Block 52, der einen Spiegel-RAID-Bereich 42 angibt, zu bewegen, wird die folgende Sequenz verwendet:
    • 1. Es wird eine Anforderung bezüglich eines virtuellen Blocks 53 gestellt, der derzeit in einem Paritäts-RAID-Bereich 44 gespeichert ist.
    • 2. Das RAID-Verwaltungssystem lokalisiert einen unbenutzten virtuellen Block 52 in einem Spiegel-RAID-Bereich 42.
    • 3. Falls keiner gefunden wird, erzeugt das RAID-Verwaltungssystem einen virtuellen Spiegelblock (nachfolgend erläutert).
    • 4. Das RAID-Verwaltungssystem hebt neue Speicheranforderungen an den zu bewegenden virtuellen Block zeitweilig auf.
    • 5. Das RAID-Verwaltungssystem wartet, bis alle aktiven Datenspeicherungsanforderungen an den virtuellen Block abgeschlossen sind.
    • 6. Die Daten von dem virtuellen Paritätsblock 53 werden in einen vorübergehenden Speicherpuffer eingelesen.
    • 7. Die Daten werden anschließend in den bei Schritt 2 gewählten virtuellen Spiegelblock 52 geschrieben.
    • 8. Die Virtuelle-Blöcke-Tabelle wird modifiziert, um auf die neue Position des virtuellen Blocks zu verweisen.
    • 9. Die zeitweilig aufgehobenen Speicheranforderungen werden wiederaufgenommen.
  • Gemäß der obigen Prozedur bewegten sich Daten in der zweiten virtuellen Ansicht von dem virtuellen Paritätsblock bzw. den virtuellen Paritätsblöcken 53 zu dem virtuellen Spiegelblock bzw. den virtuellen Spiegelblöcken 52. Bezüglich der virtuellen Zwischenansicht bewegten sich Daten von dem Paritäts-RAID-Bereich 44 zu dem Spiegel-RAID-Bereich 42. In dem physischen Speicherplatz bewegten sich Daten von Bereich 1 zu Bereich 0.
  • Das RAID-Verwaltungssystem 16 reserviert einen Platz, der äquivalent zu einigen wenigen RAID-Bereichen ist, für die Zwecke der Migration bzw. Wanderung. Der reservierte Platz steht nicht für die Speicherung einer Client-Anwendung zur Verfügung, sondern dient als vorübergehende Speicherplätze für Daten, die zwischen dem Spiegel- und dem Paritätsspeicherbereich bewegt werden. Der reservierte Platz ist während der Erzeugung neuer RAID-Speicherbereiche oder während der Umwandlung zwischen Spiegel- und Paritäts-RAID-Bereichen während des Migrationsprozesses nützlich. Der Platz kann auf den Platten zusammenhängend sein oder über diverse verschiedene Platten auf nicht-zusammenhängende Weise verteilt sein.
  • Falls kein unbenutzter virtueller Spiegelblock lokalisiert werden kann (Schritt 3 oben), versucht das RAID-Verwaltungssystem, gemäß der folgenden bevorzugten Sequenz von Techniken einen zu erzeugen. Erstens versucht das RAID-Verwaltungssystem, einen unbenutzten und unbenannten RAID-Bereich zu lokalisieren, der in einen Spiegel-RAID-Bereich umgewandelt werden kann. Zweitens, falls sich dies als Misserfolg erweist, versucht das RAID-Verwaltungssystem als nächstes, einen ungenutzten virtuellen Paritätsblock zu lokalisieren und einen virtuellen Spiegelblock zu Parität zu bewegen. Dies macht den virtuellen Spiegelblock dafür frei, die neuen Daten zu empfangen. Falls dieser zweite Schritt fehlschlägt, versucht das RAID-Verwaltungssystem anschließend, einen ungenutzten RAID-Bereich zu erzeugen, indem es unter Verwendung der isolierten RAID-Bereiche eine Anzahl von virtuellen Spiegelblöcken zu Parität bewegt. Da virtuelle Spiegelblöcke mehr physischen Speicherplatz einnehmen als virtuelle Paritätsblöcke, führt die Bewegung von virtuellen Spiegelblöcken zu Paritäts-RAID-Bereichen zu einem Nettoanstieg des Umfangs an ungenutzter Speicherung, auch wenn sie eine Umwandlung eines reservierten RAID-Bereichs in einen Paritäts-RAID-Bereich erfordert. Eine Bewegung von Spiegelblöcken zu Parität führt schließlich zu einem zusätzlichen ungenutzten RAID-Bereich, der in einen Spiegel-RAID-Bereich umgewandelt werden kann.
  • Das Erzeugungs-/Umwandlungsprotokoll, das verwendet wird, um virtuelle Spiegelblöcke zu lokalisieren und einzurichten, ist vorteilhaft, da es dem RAID-Verwaltungssystem ermöglicht, die Speicherzuweisung gemäß der Computeranwendung selektiv einzustellen. Da die Anwendungen variieren, verwendet das RAID-Verwaltungssystem eine oder mehrere der obigen drei Techniken, um den idealen Umfang an Spiegelspeicherplatz für spezifische Leistungsfähigkeits- und Zuverlässigkeitsanforderungen der verschiedenen Anwendungen zu definieren.
  • Das RAID-Verwaltungssystem versucht, die Situation zu vermeiden, bei der eine Speicheranforderung warten muss, bis die Platzschaffungssequenz einen virtuellen Spiegelblock 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, dass der virtuelle Platz genauso groß oder kleiner ist als der verfügbare physische Platz 34. Auf diese Weise ergibt die Sequenz von Techniken immer einen unbenutzten Spiegelblock.
  • Um einen virtuellen Spiegelblock zu einem Paritäts-RAID-Bereich zu bewegen, wird die folgende Sequenz verwendet:
    • 1. Das RAID-Verwaltungssystem wählt einen virtuellen Spiegelblock 52, um gemäß einer Migrationsrichtlinie, beispielsweise Zugriffsaktualität oder Zugriffshäufigkeit, zu bewegen.
    • 2. Das RAID-Verwaltungssystem lokalisiert einen unbenutzten virtuellen Block 52 in einem Paritäts-RAID-Bereich 44.
    • 3. Falls kein solcher Block gefunden werden kann, wird ein reservierter RAID-Bereich 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 virtuellen Spiegelblock 52 in einen vorübergehenden Speicherpuffer gelesen.
    • 7. Die Daten werden in den gewählten virtuellen Paritätsblock 53 geschrieben.
    • 8. Die Virtuelle-Blöcke-Tabelle wird modifiziert, um auf eine neue Position des virtuellen Blocks zu verweisen.
    • 9. Datenanforderungen werden wiederaufgenommen.
  • Die obigen zwei Sequenzen werden bereitgestellt, um Beispiele dafür zu liefern, wie das Speichersystem dieser Erfindung arbeiten kann. Verschiedene andere Prozeduren und Alternativen sind möglich und werden Fachleuten einleuchten.
  • Das Speichersystem dieser Erfindung ist vorteilhaft, da es eine hohe Leistungsfähigkeit und eine hohe Datenverfügbarkeit (d. h. -zuverlässigkeit) bei gleichzeitig relativ geringen Speicherkosten liefert. Dies wird erzielt, indem die Vorteile, die mit einer Spiegelspeicherung und einer Paritätsspeicherung verbunden sind, extrahiert/genutzt werden. Das Speichersystem verbessert ferner die Leistungsfähigkeit beim Zugriff auf abgebildete Daten, indem es die Abbildungsinformationen zwischen den diversen virtuellen Speicherplätzen in einem nicht-flüchtigen RAM, der sich außerhalb des Speicherplattenarrays befindet, verwaltet.

Claims (7)

  1. Ein Datenspeichersystem, das folgende Merkmale aufweist: ein Plattenarray (11), das eine Mehrzahl von Platten (12) aufweist; eine mit dem Plattenarray (11) gekoppelte Plattenarraysteuerung (14) zum Koordinieren eines Datentransfers zu und von den Platten (12); ein RAID-Verwaltungssystem (16), das mit der Plattenarraysteuerung (14) wirksam gekoppelt ist, zum Abbilden eines ersten und eines zweiten RAID-Bereichs auf die Platten (12), wobei das RAID-Verwaltungssystem (16) gemäß einer ersten RAID-Ebene Daten in dem ersten RAID-Bereich speichert und gemäß einer zweiten RAID-Ebene Daten in dem zweiten RAID-Bereich speichert, wobei das RAID-Verwaltungssystem (16) Daten, die in dem ersten RAID-Bereich gespeichert sind, zu dem zweiten RAID-Bereich bewegt und/oder Daten, die in dem zweiten RAID-Bereich gespeichert sind, zu dem ersten RAID-Bereich bewegt, wobei das RAID-Verwaltungssystem (16) die Daten gemäß einem definierten Leistungsfähigkeitsprotokoll bewegt; und einen aktualisierbaren Speicherabbildungsspeicher (21), der sich außerhalb des Plattenarrays (11) befindet und mit dem RAID-Verwaltungssystem (16) wirksam gekoppelt ist, zum Speichern von Abbildungsinformationen, die durch das RAID-Verwaltungssystem (16) verwendet werden, um den ersten und den zweiten RAID-Bereich auf die Platten (12) in dem Plattenarray (11) abzubilden.
  2. Ein Datenspeichersystem gemäß Anspruch 1, bei dem der Speicherabbildungsspeicher (21) in der Plattenarraysteuerung (14) angeordnet ist.
  3. Ein Datenspeichersystem gemäß Anspruch 1, bei dem der Speicherabbildungsspeicher (21) die Abbildungsinformationen gemäß einer ausgewählten Zuverlässigkeitsebene auf redundante Weise speichert.
  4. Ein Datenspeichersystem gemäß Anspruch 1, bei dem das Plattenarray eine Speicherkapazität (DAcap) aufweist, die größer ist als eine Speicherkapazität des Speicherabbildungsspeichers (MMScap), gemäß der folgenden Beziehung: MMScap (Kilobytes) = C × DAcap (Megabytes)wobei C eine Konstante in einem Bereich zwischen 70 und 90 ist.
  5. Ein Datenspeichersystem gemäß Anspruch 1, bei dem der erste RAID-Bereich Daten gemäß einer RAID-Ebene 1 speichert und der zweite RAID-Bereich Daten gemäß einer RAID-Ebene 5 speichert.
  6. Ein Datenspeichersystem gemäß Anspruch 1, bei dem das Leistungsfähigkeitsprotokoll des RAID-Verwaltungssystems (16) eine Migrationsrichtlinie ist, die aus der Gruppe ausgewählt ist, die aus einer Zugriffsaktualität und einer Zugriffshäufigkeit besteht.
  7. Ein Datenspeichersystem gemäß einem der Ansprüche 1 bis 6, bei dem das RAID-Verwaltungssystem (16) das Abbilden des ersten und des zweiten RAID-Bereichs auf die Platten (12) dynamisch verändert und die Abbil dungsinformationen in dem Speicherabbildungsspeicher (21) aktualisiert, um die Veränderung widerzuspiegeln.
DE69533077T 1994-06-07 1995-03-02 Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation Expired - Lifetime DE69533077T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/253,442 US5546558A (en) 1994-06-07 1994-06-07 Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
US253442 1994-06-07

Publications (2)

Publication Number Publication Date
DE69533077D1 DE69533077D1 (de) 2004-07-01
DE69533077T2 true DE69533077T2 (de) 2005-06-09

Family

ID=22960284

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533077T Expired - Lifetime DE69533077T2 (de) 1994-06-07 1995-03-02 Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation

Country Status (4)

Country Link
US (1) US5546558A (de)
EP (1) EP0686907B1 (de)
JP (1) JPH07334315A (de)
DE (1) DE69533077T2 (de)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579474A (en) 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
JP3315779B2 (ja) * 1993-11-16 2002-08-19 富士通株式会社 ディスク装置間のファイル転送装置およびファイル転送方法
US5659704A (en) * 1994-12-02 1997-08-19 Hewlett-Packard Company Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy
US5530658A (en) * 1994-12-07 1996-06-25 International Business Machines Corporation System and method for packing heat producing devices in an array to prevent local overheating
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
WO1997011426A1 (en) 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
US5758050A (en) * 1996-03-12 1998-05-26 International Business Machines Corporation Reconfigurable data storage system
US5802364A (en) * 1996-04-15 1998-09-01 Sun Microsystems, Inc. Metadevice driver rename/exchange technique for a computer system incorporating a plurality of independent device drivers
US6571314B1 (en) * 1996-09-20 2003-05-27 Hitachi, Ltd. Method for changing raid-level in disk array subsystem
US5893919A (en) * 1996-09-27 1999-04-13 Storage Computer Corporation Apparatus and method for storing data with selectable data protection using mirroring and selectable parity inhibition
US5875457A (en) * 1996-10-08 1999-02-23 Mylex Corporation Fault-tolerant preservation of data integrity during dynamic raid set expansion
US6041423A (en) * 1996-11-08 2000-03-21 Oracle Corporation Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
US6061822A (en) * 1997-06-23 2000-05-09 Micron Electronics, Inc. System and method for providing a fast and efficient comparison of cyclic redundancy check (CRC/checks sum) values of two mirrored disks
US5953352A (en) 1997-06-23 1999-09-14 Micron Electronics, Inc. Method of checking data integrity for a raid 1 system
US5937428A (en) * 1997-08-06 1999-08-10 Lsi Logic Corporation Method for host-based I/O workload balancing on redundant array controllers
US5975738A (en) * 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
JPH11110267A (ja) * 1997-10-02 1999-04-23 Oki Electric Ind Co Ltd データ保存装置、データ保存方法及び記録媒体
US6098119A (en) * 1998-01-21 2000-08-01 Mylex Corporation Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level
US6167531A (en) * 1998-06-18 2000-12-26 Unisys Corporation Methods and apparatus for transferring mirrored disk sets during system fail-over
US6185580B1 (en) * 1998-06-24 2001-02-06 International Business Machines Corporation Physical information and extensions file and file system translator
US6611897B2 (en) 1999-03-22 2003-08-26 Hitachi, Ltd. Method and apparatus for implementing redundancy on data stored in a disk array subsystem based on use frequency or importance of the data
US6467023B1 (en) * 1999-03-23 2002-10-15 Lsi Logic Corporation Method for logical unit creation with immediate availability in a raid storage environment
US6378038B1 (en) * 1999-03-31 2002-04-23 International Business Machines Corporation Method and system for caching data using raid level selection
US6275898B1 (en) 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US6480955B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change
US6769022B1 (en) 1999-07-09 2004-07-27 Lsi Logic Corporation Methods and apparatus for managing heterogeneous storage devices
US6480901B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation System for monitoring and managing devices on a network from a management station via a proxy server that provides protocol converter
US6584499B1 (en) 1999-07-09 2003-06-24 Lsi Logic Corporation Methods and apparatus for performing mass operations on a plurality of managed devices on a network
US7640325B1 (en) 1999-07-09 2009-12-29 Lsi Corporation Methods and apparatus for issuing updates to multiple management entities
US6745207B2 (en) * 2000-06-02 2004-06-01 Hewlett-Packard Development Company, L.P. System and method for managing virtual storage
US6530004B1 (en) * 2000-06-20 2003-03-04 International Business Machines Corporation Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration
US7222150B1 (en) * 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
US6820182B1 (en) 2000-10-18 2004-11-16 International Business Machines Corporation Support for exhaustion recovery in a data processing system with memory mirroring
JP3711874B2 (ja) * 2001-02-20 2005-11-02 日本電気株式会社 ネットワークストレージシステム
US7020669B2 (en) * 2001-09-27 2006-03-28 Emc Corporation Apparatus, method and system for writing data to network accessible file system while minimizing risk of cache data loss/ data corruption
US7055056B2 (en) * 2001-11-21 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for ensuring the availability of a storage system
US7603670B1 (en) 2002-03-28 2009-10-13 Symantec Operating Corporation Virtual machine transfer between computer systems
US7093086B1 (en) 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US7171396B2 (en) * 2002-04-04 2007-01-30 Hewlett-Packard Development Company, L.P. Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage
US6757778B1 (en) * 2002-05-07 2004-06-29 Veritas Operating Corporation Storage management system
JP4651913B2 (ja) * 2003-02-17 2011-03-16 株式会社日立製作所 記憶装置システム
JP2004348464A (ja) * 2003-05-22 2004-12-09 Hitachi Ltd ストレージ装置、及び通信信号の整形回路
JP4060235B2 (ja) * 2003-05-22 2008-03-12 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
US7203944B1 (en) 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US7509473B2 (en) * 2003-08-27 2009-03-24 Adaptec, Inc. Segmented storage system mapping
US7069382B2 (en) * 2003-09-24 2006-06-27 Aristos Logic Corporation Method of RAID 5 write hole prevention
JP4863605B2 (ja) * 2004-04-09 2012-01-25 株式会社日立製作所 記憶制御システム及び方法
US7246200B1 (en) 2003-11-12 2007-07-17 Veritas Operating Corporation Provisioning and snapshotting using copy on read/write and transient virtual machine technology
JP4156499B2 (ja) * 2003-11-28 2008-09-24 株式会社日立製作所 ディスクアレイ装置
JP4497918B2 (ja) 2003-12-25 2010-07-07 株式会社日立製作所 ストレージシステム
JP4634049B2 (ja) 2004-02-04 2011-02-16 株式会社日立製作所 ディスクアレイ装置における異常通知制御
US7810092B1 (en) 2004-03-02 2010-10-05 Symantec Operating Corporation Central administration and maintenance of workstations using virtual machines, network filesystems, and replication
US7240065B2 (en) * 2004-05-27 2007-07-03 Oracle International Corporation Providing mappings between logical time values and real time values
US7251660B2 (en) 2004-06-10 2007-07-31 Oracle International Corporation Providing mappings between logical time values and real time values in a multinode system
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
EP1825372A2 (de) * 2004-11-05 2007-08-29 Data Robotics Incorporated Dynamisch expandierbares und kontrahierbares fehlertolerantes speichersystem, das verschieden grosse speichereinrichtungen gestattet, und verfahren
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
US8066515B2 (en) * 2004-11-17 2011-11-29 Nvidia Corporation Multiple graphics adapter connection systems
US7467158B2 (en) * 2005-06-10 2008-12-16 Microsoft Corporation Object virtualization
US20070214314A1 (en) * 2006-03-07 2007-09-13 Reuter James M Methods and systems for hierarchical management of distributed data
JP2008139357A (ja) * 2006-11-30 2008-06-19 Daiichikosho Co Ltd カラオケデータストレージシステム
JP2010511963A (ja) * 2006-12-08 2010-04-15 サンドフォース インコーポレイテッド 複数のストレージデバイスでのデータ冗長性
US7814360B2 (en) * 2007-01-25 2010-10-12 Oralce International Corporation Synchronizing cluster time to a master node with a faster clock
US7849356B2 (en) * 2008-01-17 2010-12-07 International Business Machines Corporation Parity data management system apparatus and method
US8169856B2 (en) * 2008-10-24 2012-05-01 Oracle International Corporation Time synchronization in cluster systems
US20110296105A1 (en) * 2010-06-01 2011-12-01 Hsieh-Huan Yen System and method for realizing raid-1 on a portable storage medium
US8555142B2 (en) * 2010-06-22 2013-10-08 Cleversafe, Inc. Verifying integrity of data stored in a dispersed storage memory
US8677167B2 (en) * 2010-10-18 2014-03-18 Hitachi, Ltd. Storage apparatus and power control method
US9594421B2 (en) 2011-03-08 2017-03-14 Xyratex Technology Limited Power management in a multi-device storage array
CN105308574A (zh) 2013-06-28 2016-02-03 惠普发展公司,有限责任合伙企业 永久主存储器的容错
US10303782B1 (en) 2014-12-29 2019-05-28 Veritas Technologies Llc Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk
US10026454B2 (en) 2015-04-28 2018-07-17 Seagate Technology Llc Storage system with cross flow cooling of power supply unit
CN108763099B (zh) * 2018-04-18 2020-05-08 华为技术有限公司 系统的启动方法、装置、电子设备和存储介质
US11275518B2 (en) * 2019-11-01 2022-03-15 EMC IP Holding Company, LLC System and method for implementing heterogeneous media types with raid
CN111597066B (zh) * 2020-05-14 2023-06-06 深圳忆联信息系统有限公司 Ssd修复方法、装置、计算机设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792775B2 (ja) * 1989-12-11 1995-10-09 株式会社日立製作所 外部記憶装置群のスペース管理方法
US5166939A (en) * 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
US5210860A (en) * 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
US5155835A (en) * 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
EP0570516A4 (en) * 1991-02-06 1998-03-11 Storage Technology Corp Disk drive array memory system using nonuniform disk drives
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
US5301297A (en) * 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
JPH05224822A (ja) * 1992-02-12 1993-09-03 Hitachi Ltd 集合型記憶装置
US5394532A (en) * 1992-04-15 1995-02-28 Storage Technology Corporation Disk drive array memory system having instant format capability
US5410667A (en) * 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US5408644A (en) * 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
EP0612015A1 (de) * 1993-02-16 1994-08-24 International Business Machines Corporation Verbesserte Speicherplattenanordnung mit besonderen Paritätsgruppen für Datenblöcke mit hoher Aktualisierungsfrequenz
US5390327A (en) * 1993-06-29 1995-02-14 Digital Equipment Corporation Method for on-line reorganization of the data on a RAID-4 or RAID-5 array in the absence of one disk and the on-line restoration of a replacement disk
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management

Also Published As

Publication number Publication date
US5546558A (en) 1996-08-13
DE69533077D1 (de) 2004-07-01
JPH07334315A (ja) 1995-12-22
EP0686907A3 (de) 2000-02-23
EP0686907A2 (de) 1995-12-13
EP0686907B1 (de) 2004-05-26

Similar Documents

Publication Publication Date Title
DE69533077T2 (de) Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation
DE69533764T2 (de) Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung
DE69534363T2 (de) Verfahren um Festplatten zu einer Festplattenanordnung hinzuzufügen und gleichzeitig die Datenerreichbarkeit zu gewährleisten
DE69533570T2 (de) Verfahren und System zum Erkennen von Datenverlust in einem hierarchischen Datenspeichersystem
DE69534527T2 (de) Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem
DE69533058T2 (de) Speicherplattenanordnung mit redundanter Speicherung und Verfahren zur inkrementalen Redundanzerzeugung während des Datenschreibens auf die Speicherplattenanordnung
DE69532030T2 (de) Speicherplattenanordnung mit Ersatzbetriebsmitteln in Betrieb und Verfahren zur Verwendung von Ersatzbetriebsmitteln zum Speichern von Benutzerdaten
DE69533575T2 (de) Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz
DE69534057T2 (de) Verfahren zur Vermeidung der Über-Zuteilung virtueller Kapazität in einem redundanten hierarchischen Datenspeichersystem
DE69738159T2 (de) Anordnung und Verfahren zur Wiederzuteilung von logischen an physikalische Plattengeräte unter Verwendung eines Speichersteuergerätes
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE19723909B4 (de) Verfahren zum Verbessern der Fehlerfestigkeit und Leistungsfähigkeit eines RAID-Untersystems
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE60019903T2 (de) Speichersystem
DE69632219T2 (de) Speicherplattenanordnungssystem
DE10055603B4 (de) Verfahren zum Zugriff auf eine Datei in einer Vielzahl von Datenspeicherbibliotheken und Datenspeicherbibliothek-System
DE102004064069B4 (de) Plattenarrayvorrichtung
DE112013006504B4 (de) Speichersystem und Datenverwaltungsverfahren
DE102004025922B4 (de) Mit einem Computer verbundenes Speichersystem, Computersystem und Computerprogrammerzeugnis dafür
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE69724834T2 (de) System für hochverfügbare datenspeicherung mit allgemein-adressiertem speicher
DE69738091T2 (de) Speicherplattenanordnung und Verfahren zu deren Steuerung
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8364 No opposition during term of opposition