DE69534527T2 - Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem - Google Patents

Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem Download PDF

Info

Publication number
DE69534527T2
DE69534527T2 DE69534527T DE69534527T DE69534527T2 DE 69534527 T2 DE69534527 T2 DE 69534527T2 DE 69534527 T DE69534527 T DE 69534527T DE 69534527 T DE69534527 T DE 69534527T DE 69534527 T2 DE69534527 T2 DE 69534527T2
Authority
DE
Germany
Prior art keywords
raid
data
mirror
unused
area
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 - Fee Related
Application number
DE69534527T
Other languages
English (en)
Other versions
DE69534527D1 (de
Inventor
Theresa A. Meridian Burkes
Bryan M. Boise Diamond
Michael B. Boise Jacobson
Marvin D. Boise Nelson
Douglas L. Boise Voigt
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 DE69534527D1 publication Critical patent/DE69534527D1/de
Application granted granted Critical
Publication of DE69534527T2 publication Critical patent/DE69534527T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich auf Datenspeichersysteme, z.B. hierarchische Plattenarraydatenspeichersysteme, und Verfahren zum Verwenden von reserviertem Speicherplatz zur Datenmigration in derartigen Systemen.
  • HINTERGRUND DER ERFINDUNG
  • Computersysteme werden in Bezug auf Geschwindigkeit, Zuverlässigkeit und Verarbeitungsfähigkeit ständig besser. Folglich sind Computer in der Lage, komplexere und anspruchsvollere Anwendungen zu handhaben. Während Computer immer besser werden, nehmen die Leistungsanforderungen zu, die an Massenspeicher- und Eingabe-/Ausgabe- (I/O) Vorrichtungen gestellt werden. Es besteht weiterhin ein Bedarf, Massenspeichersysteme zu entwerfen, die in Bezug auf die Leistung mit sich weiter entwickelnden Computersystemen Schritt halten.
  • Diese Erfindung betrifft insbesondere die Massenspeichersysteme des Plattenarraytyps. Plattenarraydatenspeichersysteme weisen mehrere Speicherplattenlaufwerksvorrichtungen auf, die angeordnet und koordiniert sind, um ein einziges Massenspeichersystem zu bilden. Für Massenspeichersysteme gibt es drei Hauptentwurfskriterien: Kosten, Leistung und Verfügbarkeit. Am wünschenswertesten ist es, Speichervorrichtungen zu erzeugen, die geringe Kosten pro Megabyte, eine hohe Eingangs-/Ausgangsleistung 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 von Redundanz geliefert, wobei Daten oder Beziehungen zwischen Daten an mehreren Orten 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 Leistung und einer hohen Datenverfügbarkeit aufgrund der Doppelspeichertechnik 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 Speicherplatz bzw. -raum. 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 vorgesehen ist. Das Paritätsverfahren ist vorteilhaft, da es kostengünstiger ist als das Spiegelverfahren, im Vergleich zu dem Spiegelverfahren weist es jedoch auch geringere Leistungs- und Verfügbarkeitscharakteristika auf.
  • Die US 5,166,939 beschreibt eine Datenspeichervorrichtung. Die Datenspeichervorrichtung ist aus einer Mehrzahl von physikalischen Speichervorrichtungen gebildet. Gemäß der Vorrichtung, die darin offenbart ist, hat der Benutzer die Möglichkeit, die Konfiguration des physikalischen Adressraumes bezüglich seiner Aufteilung in Redundanzgruppen zu verändern. Im Einzelnen weist das parallele Array von Laufwerken einen Logikeinheitsadressraum auf, der zwei Anwendungslogikeinheiten aufweist. Jede Logikeinheit ist konfiguriert, um adressierbare Logikblöcke zu umfassen. Jedem der Logikblöcke der Logikeinheiten entspricht ein Datenblock in einer Datengruppe bei dem Raum, wobei die Datenblöcke einer Logikeinheit logisch zusammenhängend angeordnet sind. Neben den im Vorhergehenden erwähnten Datengruppen, die durch die Logikeinheiten gebildet werden, umfasst die Datengruppe bei dem Raum auch zusätzliche Datengruppen, die für eine dynamische Konfiguration reserviert sind, d.h. diese Datengruppen können an den Plattenlaufwerken des parallelen Arrays bei einer Initialisierung oder zu einem beliebigen Zeitpunkt während der Laufzeit des parallelen Arrays formatiert werden, sind jedoch für die Anwendungssoftware bei der Anfangskonfiguration des parallelen Arrays nicht verfügbar. Die Redundanzgruppenkonfiguration des parallelen Arrays wird durch den zweidimensionalen Adressraum veranschaulicht, der den gesamten Speicherraum des parallelen Arrays aufweist. Wenn der Adressraum neu konfiguriert wird, erfolgt dies durch ein Formatieren der physikalischen Laufwerke des parallelen Arrays.
  • In „Hybrid redundancy direct-access storage device array with design options", IBM Technical Disclosure Bulletin, Bd. 47, Nr. 02 B, 19. Februar 1994, S. 141–148, ist ein Hybrid-DASD-Array (DASD = Direct-Access Storage Device, Direktzugriffsspeichervorrichtung) beschrieben, wobei jede DASD, die das Array aufweist, fest in drei Bereiche geteilt ist, einen D-Bereich, der die Benutzerdaten enthält, einen C-Bereich, der die Prüfsumme enthält, und einen M-Bereich, der die gestuften gespiegelten Daten enthält, die für den D-Bereich vorgesehen sind. Benutzeradressierbare Daten werden auf den Prüfsummenbereich abgebildet, um einen beliebigen gewünschten RAID-Typ eines Prüfsummenarrays zu liefern. Ein nicht-flüchtiger RAM wird verwendet, um eine Adressabbildung von Adressen zu liefern, die von dem Prüfsummenbereich zu dem Spiegelbereich umgeleitet werden. Nachdem die Daten, die in den M-Bereichen liegen, ausgewählte Stufungskriterien erfüllen, werden dieselben in die Prüfsummenbereiche geschrieben und aus den M-Bereichen gelöscht.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zu liefern, das Leistung und Zuverlässigkeit optimiert.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst.
  • Diese Erfindung liefert ein hierarchisches Datenspeichersystem, das Daten gemäß unterschiedlicher Redundanztechniken speichert, um Leistung und Zuverlässigkeit zu optimieren. Das Datenspeichersystem umfasst ein Plattenarray, das eine Mehrzahl von Speicherplatten aufweist, und eine Plattenarraysteuerung, die eine Datenübertragung zu und von den Platten koordiniert. Die Speicherplatten definieren einen physikalischen Speicherplatz. Das Datenspeichersystem umfasst auch ein RAID-Verwaltungssystem, das wirksam mit der Plattenarraysteuerung gekoppelt ist, zum Abbilden von zwei virtuellen Speicherplätzen auf den physikalischen Speicherplatz der Speicherplatten. Der erste oder virtuelle RAID-Ebenen-Speicherplatz präsentiert den physikalischen Speicherplatz als mehrere Spiegel- und Paritäts-RAID-Bereiche. Die Spiegel-RAID-Bereiche enthalten Spiegelzuweisungsblöcke, die Daten gemäß einer RAID-Ebene 1 (Spiegelredundanz) speichern, und die Paritäts-RAID-Bereiche enthalten Paritätszuweisungsblöcke, die Daten gemäß einer RAID-Ebene 5 (Paritätsredundanz) speichern. Der zweite oder virtuelle Anwendungsebenenspeicherplatz präsentiert den physikalischen Speicherplatz als mehrere virtuelle Blöcke.
  • Das RAID-Verwaltungssystem migriert Daten zwischen den Spiegel- und Paritätszuweisungsblöcken, so dass die Daten auf eine Weise einer Veränderung der Redundanz zwischen RAID-Ebene 1 (d.h. Spiegelredundanz) und RAID-Ebene 5 (d.h. Paritätsredundanz) unterzogen werden, die die Leistung und Zuverlässigkeit optimiert. Um eine Migration zu erleichtern, reserviert das RAID-Verwaltungssystem eine Menge von nichtverwendetem Speicherplatz in dem virtuellen RAID-Ebenen-Speicherplatz, um vorübergehend, was das Ziel von Datenbewegungen während der Migration sein kann. Der nichtverwendete Speicherplatz ist größenmäßig bevorzugt äquivalent zu einem RAID-Bereich. Der nichtverwendete Speicherplatz befindet sich jedoch nicht in einem RAID-Bereich oder an einem physikalischen Ort, sondern es kann möglich sein, dass derselbe über verschiedene RAID-Bereiche auf eine nicht zusammenhängende Weise über die Speicherplatten verteilt ist.
  • Gemäß einem Verfahren dieser Erfindung verwendet das RAID-Verwaltungssystem den nicht zusammenhängenden nichtverwendeten Platz, um beim Erzeugen von Spiegelzuweisungsblöcken zu helfen. Das Verfahren umfasst mehrere mögliche Techniken, die den nichtverwendeten Speicherplatz ausnutzen. Die Techniken werden sequentiell ausprobiert, bis zumindest ein Spiegelzuweisungsblock erzeugt ist. Die erste Technik besteht darin, einen nichtverwendeten RAID-Bereich zu lokalisieren und denselben in einen Spiegel-RAID-Bereich umzuwandeln, der zumindest einen verwendbaren Spiegelzuweisungsblock enthält. Die zweite Technik besteht darin, die leeren Paritätszuweisungsblöcke in einem nichtverwendeten RAID-Bereich zu sammeln, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, der zumindest einen verwendbaren Spiegelzuweisungsblock enthält. Die dritte Technik besteht darin, abwechselnd die folgenden Schritte (a) und (b) durchzuführen, bis ein nichtverwendeter RAID-Bereich erzeugt ist, und dann Schritt (c) durchzuführen: (a) Daten von Spiegelzuweisungsblöcken zu Paritätszuweisungsblöcke migrieren, um den Spiegelzuweisungsblock zu entleeren; (b) die leeren Spiegelzuweisungsblöcke in einem nichtverwendeten RAID-Bereich sammeln; und (c) den nichtverwendeten RAID-Bereich in einen Paritäts-RAID-Bereich umwandeln. Die Schritte (a)–(c) der dritten Technik werden wiederholt, bis ein nichtverwendeter RAID-Bereich erzeugt ist, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, ohne gegen die minimale reservierte Menge von nichtverwendetem Speicherplatz zu verstoßen.
  • Gemäß einem weiteren Verfahren dieser Erfindung entleert das RAID-Verwaltungssystem einen gesamten RAID-Bereich zur Verwendung bei einer großen Datenbewegungsoperation, wie z.B. Wiederaufbauaufgaben, Hinzufügen neuer Speicherplatten und dergleichen. Das RAID-Verwaltungssystem lokalisiert erst einen RAID-Bereich (Spiegel oder Parität), der nur teilweise mit Daten gefüllt ist. Die Daten werden dann von dem RAID-Bereich in nichtverwendeten Speicherplatz bewegt. Dies lässt den RAID-Bereich leer und bereit zur Umwandlung in einen Spiegel- oder Paritäts-RAID-Bereich zurück.
  • 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 Plattenarraydatenspeichersystems gemäß dieser Erfindung.
  • 2 ist eine schematische Veranschaulichung eines Speicherplatzes an mehreren Speicherplatten und zeigt eine Datenspeicherung gemäß RAID-Ebene 1.
  • 3 ist eine schematische Veranschaulichung eines Speicherplatzes an mehreren Speicherplatten und zeigt eine Datenspeicherung gemäß RAID-Ebene 5.
  • 4 ist eine schematische Veranschaulichung einer Speicherabbildungsanordnung dieser Erfindung, wobei zwei virtuelle Speicherplätze auf einen physikalischen Speicherplatz abgebildet werden.
  • 5 ist ein Flussdiagramm eines allgemeinen bevorzugten Verfahrens dieser Erfindung.
  • 6 ist eine schematische Veranschaulichung eines Speicherplatzes an mehreren Speicherplatten und zeigt, wie der nicht zusammenhängende nichtverwendete Speicherplatz größenmäßig zu einem oder mehr RAID-Bereichen äquivalent ist.
  • 7 ist ein Flussdiagramm eines weiteren bevorzugten Verfahrens zum Verwenden der reservierten Menge von nichtverwendetem Speicherplatz, um Spiegelzuweisungsblöcke zu erzeugen.
  • 8 ist ein Flussdiagramm von spezifischen Techniken, die verwendet werden, um Spiegelzuweisungsblöcke zu erzeugen, einschließlich einer Abfallsammlungstechnik.
  • 9 ist eine schematische Veranschaulichung eines Speicherplatzes an mehreren Speicherplatten und zeigt die Abfallsammlungstechnik von 8.
  • 10 ist ein Flussdiagramm eines weiteren bevorzugten Verfahrens zum Verwenden einer reservierten Menge von nichtverwendetem Speicherplatz bei einer Urladetechnik, die einen teilweise gefüllten RAID-Bereich entleert.
  • 11 ist eine schematische Veranschaulichung eines Speicherplatzes an mehreren Speicherplatten und zeigt die Urladetechnik von 10.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • 1 zeigt ein Datenspeichersystem 10, das gemäß dieser Erfindung aufgebaut ist. Vorzugsweise ist das Datenspeichersystem 10 ein Plattenarraydatenspeichersystem, das ein hierarchisches Plattenarray 11, das eine Mehrzahl von Speicherplatten 12 aufweist, eine Plattenarraysteuerung 14, die mit dem Plattenarray 11 gekoppelt ist, um eine Datenübertragung zu und von den Speicherplatten 12 zu koordinieren, und ein RAID-Verwaltungssystem 16 umfasst.
  • 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). Bei dem Begriff „Plattenarray" handelt es sich um eine Sammlung von Platten, die Hardware, die erforderlich ist, um sie mit einem oder mehr Hostcomputern zu verbinden, und eine Verwaltungssoftware, die verwendet wird, um den Betrieb der physikalischen bzw. physischen Platten zu steuern und sie der Host-Betriebsumgebung als eine oder mehr 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 Disks, redundantes Array aus unabhängigen Platten) bedeutet ein Plattenarray, bei dem ein Teil der physikalischen 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 mehr Schnittstellenbusse 13, beispielsweise eine Kleincomputersystemschnittstelle (SCSI – small computer system inter face) 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 ausgeführt sein oder kann in der Plattenarraysteuerung 14 oder in dem Hostcomputer konfiguriert sein, um eine Datenverwaltungseinrichtung zum Steuern von Plattenspeicher- und Zuverlässigkeitsebenen sowie zum Übertragen von Daten zwischen verschiedenen Zuverlässigkeitsspeicherebenen bereitzustellen. Diese Zuverlässigkeitsspeicherebenen sind, wie nachfolgend beschrieben wird, vorzugsweise Spiegel- oder Paritätsredundanzebenen, können jedoch auch eine Zuverlässigkeitsspeicherebene ohne jegliche Redundanz umfassen.
  • Die Plattenarraysteuerung 14 ist vorzugsweise als eine duale Steuerung implementiert, die aus einer Plattenarraysteuerung A 14a und einer 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. 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 physikalischen Speicherplatzes und eines oder mehrerer virtueller Speicherplätze, charakterisiert werden. Diese verschiedenen Speicheransichten stehen durch Abbildungstechniken in Beziehung. Beispielsweise kann der physikalische 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 für eine erste Zuverlässigkeitsspeicherebene zugewiesen sein, beispielsweise Spiegel- oder RAID-Ebene 1, und andere Bereiche können für eine zweite 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 befindet sich außerhalb des Plattenarrays und vorzugsweise resident in der Plattenarraysteuerung 14. Die Speicherabbildungsinformationen können durch die Steuerung oder das RAID-Verwaltungssystem kontinuierlich oder periodisch aktualisiert werden, wenn sich die verschiedenen Abbildungskonfigurationen bei den verschiedenen Ansichten untereinander ändern.
  • Vorzugsweise ist der Speicherabbildungsspeicher 21 als zwei nicht-flüchtige RAMs (Direktzugriffsspeicher) 21a und 21b ausgeführt, 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 zu halten. 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 vorgesehen sein, die ursprünglichen Abbildungsinformationen zu speichern, und der NVRAM 21b kann dafür vorgesehen sein, die redundanten Abbildungsinformationen zu speichern. Bei einem alternativen Aufbau kann ein gespiegelter Speicherabbildungsspeicher unter Verwendung eines einzelnen nichtflüchtigen RAMs mit ausreichendem Platz, um die Daten im Duplikat zu speichern, konfiguriert sein.
  • Wie in 1 gezeigt, weist das Plattenarray 11 mehrere Speicherplattenlaufwerksvorrichtungen 12 auf. Beispielhafte Größen dieser Speicherplatten betragen ein bis drei Gigabyte. 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 voll beladen sind, weist das Datenspeichersystem eine beispielhafte kombinierte Kapazität von 12 bis 36 Gigabyte auf. Die Plattenarraysteuerung 14 erkennt die Speicherplatten 12 unabhängig davon, in welche Bucht sie gesteckt werden. Das Datenspeichersystem 10 ist konzipiert, um ein „heißes Einstecken" zusätzlicher Platten in verfügbare mechanische Buchten in dem Plattenarray zu ermöglichen, während das Plattenarray in Betrieb ist.
  • Die Speicherplatten 12 in dem Plattenarray 11 können zu Erläuterungszwecken vom Konzept her so erklärt werden, dass sie in einer Spiegelgruppe 18 aus mehreren Platten 20 und einer Paritätsgruppe 22 aus mehreren Platten 24 angeordnet sind. Die Spiegelgruppe 18 stellt einen ersten Speicherort oder RAID-Bereich des Plattenarrays dar, der Daten gemäß einer ersten bzw. Spiegelredundanzebene speichert. Diese Spiegelredundanzebene wird auch als RAID-Ebene 1 betrachtet. Die RAID-Ebene 1 oder ein Plattenspiegeln 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 Spie gelredundanz 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 duplizierte, redundante Daten auf dem gepaarten zweiten Satz von Platten 28 gespeichert werden.
  • 2 veranschaulicht die Speicherung von Daten gemäß der RAID-Ebene 1 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 physikalische Speicherplatz kann in mehrere 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 jeder Platte in dem Array ein Segment zugeordnet ist. Das heißt, dass 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 bereitgestellt. Die redundanten Daten müssen nicht sauber in demselben Streifen platziert werden, wie es 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 platziert werden.
  • Unter erneuter Bezugnahme auf 1 stellt die Paritätsgruppe 22 der Platten 24 einen zweiten Speicherort bzw. RAID-Bereich dar, in dem Daten gemäß einer zweiten Redundanzebene, z.B. RAID-Ebene 5, gespeichert werden. Bei 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 physikalische Speicherplatz der Platten 0, 1, 2, 3 in mehrere gleich große Streifen konfiguriert sein. Bei diesem veranschaulichten Beispiel werden Daten gemäß der RAID-Ebene 5 gespeichert, und auf die redundanten Daten, die in den Segmenten gespeichert sind, wird durch den Buchstaben P Bezug genommen. 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 Funktion berechnet, beispielsweise eine Exklusiv-ODER-Funktion, die durch das Symbol „." dargestellt ist. 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 Leistung 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. Von dem durch alle Platten 12 gelieferten, zur Verfügung stehenden Speicherplatz wird ein Teil dieses Speicherplatzes für eine Spiegelredundanz zugewiesen, und ein weiterer Teil wird für eine Paritätsredundanz zugewiesen. Vorzugsweise sind die Platten 12 konfiguriert, um mehrere gleich große Speicherregionen (die in 4 mit dem Bezugszeichen 35 benannt sind) zu enthalten, wobei einzelne Regionen mehrere Segmente aufweisen. Die Regionen sind zusammen 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. Diese Merkmale werden nachstehend unter Bezugnahme auf 4 ausführlicher erläutert.
  • Das Datenspeichersystem 10 verwaltet die „Migration" 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 den Spiegel- und den Paritäts-RAID-Bereichen gemäß einem definierten Leistungsprotokoll, und verwaltet die Daten anderweitig. Der Vorgang des Bewegens von Daten zwischen den Spiegel- und Paritäts-RAID-Bereichen wird als „Migration" bezeichnet.
  • Das Datenspeichersystem 10 versucht, die für die Leistung kritischeren Daten in den Spiegel-RAID-Bereichen zu platzieren, da dies die höchste Leistung und Zuverlässigkeit liefert. Die Leistungsprotokolle, 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 gehalten. 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 gehalten, während die Daten, deren Zugriff länger zurückliegt, in dem Paritäts-RAID-Bereich 22 gespeichert werden. Es können auch andere Leistungsprotokolle 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 automatisch „ab": Größe der physikalischen 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 Leistung und Zuverlässigkeit liefert. Wenn mehr Daten zu dem Datenspeichersystem hinzugefügt werden, werden die Daten zwischen Spiegel-RAID-Bereichen und Paritäts-RAID-Bereichen migriert, um die Leistung und Zuverlässigkeit zu optimieren. Wenn sich das Datenspeichersystem einer vollen Kapazität nähert, werden im Rahmen des Bemühens, alle durch den Benutzer gestellten Anforderungen zu erfüllen und trotzdem durch Redundanz Zuverlässigkeit zu liefern, immer mehr Daten zu Paritäts-RAID-Bereichen migriert. Dementsprechend liefert das Datenspeichersystem dieser Erfindung eine maximale Flexibilität und Anpassung. Es erfordert nicht, dass der Benutzer eine spezifische Speicherbetriebsweise auswählt, sondern kann sich stattdessen an jegliche Anforderung anpassen, die durch den Benutzer an dasselbe gestellt wird.
  • 4 veranschaulicht eine Speicherabbildung 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 physikalischen Speicherplatzes dar. Bei diesem Diagramm wird auf den physikalischen Speicherplatz 34 durch zwei virtuelle Speicheransichten 40 und 50 Bezug genommen. Der physikalische 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 physikalischen 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 Gigabyte. Der Speicherplatz 34 ist in Bereiche A0, A1, A2 usw. partitioniert. Einzelne Bereiche enthalten zahlreiche Streifen, im Bereich A0 z.B. Streifen 0-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 dass 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 physikalischen 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 zusammenhängend adressierbaren Speicherplatz darstellt. Die physikalische Konfiguration und die 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 ein 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 Kilobyte beträgt. Diese RAID-Bereiche beziehen sich auf entsprechende physikalische Bereiche A0, A1, A2 usw. auf dem physikalischen Speicherplatz 34. Beispielsweise können sechzehn 64K-Zuweisungsblöcke 43 oder 45 bei 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 nichtverwendeter 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, dass die RAID-Bereiche so gezeigt sind, dass dieselben in zusammenhängende Bereiche auf dem Plattenarray abgebildet werden, wobei jede einem RAID-Bereich zugeordnete Region an derselben physikalischen Adresse auf jeder Speicherplatte angeordnet ist. Die RAID-Bereiche können al ternativ auch in nicht-zusammenhängende Bereiche auf dem Plattenarray abgebildet werden.
  • Der in den RAID-Bereichen verfügbare Speicherplatz wird in eine zweite virtuelle Front-End-Anwendungsebenenansicht 50 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 Anwendungsebenenansicht 50 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öcken 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 Kilobyte 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 Virtuellblocktabelle gehaltenen Zeiger den Zuweisungsblöcken 43 und 45 an der virtuellen RAID-Ansicht 50 zugeordnet. Es gibt zumindest zwei Arten von RAID-Bereichen, auf die von der Virtuellblocktabelle verwiesen werden kann: Spiegel und Parität.
  • Das RAID-Verwaltungssystem 16 kann die Konfiguration der RAID-Bereiche über den physikalischen 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 physikalischen Plattenspeicherplatzes erhöht oder verringert werden. Folglich befinden sich die Abbildung der RAID-Bereiche in der virtuellen RAID-Ebenen-Ansicht 40 auf die Platten und die Abbildung der virtuellen Front-End-Ansicht 50 auf die RAID-Ansicht 40 allgemein in einem Veränderungszustand. Der Speicherabbildungsspeicher in den NVRAMs 21a und 21b (1) hält die aktuellen Abbildungsinformationen, die durch das RAID-Verwaltungssystem 16 verwendet werden, um die RAID-Bereiche auf die Platten abzubilden, sowie die Informationen, die verwendet. werden, um zwischen den zwei virtuellen Ansichten abzubilden. Während das RAID-Verwaltungssystem die RAID-Ebenen-Abbildungen dynamisch verändert, aktualisiert es auch die Abbildungsinformationen in dem Speicherabbildungsspeicher, um die Veränderungen widerzuspiegeln.
  • 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 Anwendungsebenenspeicherplatzes 50 Bezug auf zugeordnete Zuweisungsblöcke 45 in dem Paritäts-RAID-Bereich 44, die in dem Bereich A1 des physikalischen Speicherplatzes 34 gespeichert sind. Derartige virtuelle Blöcke 53 können als „virtuelle Paritätsblöcke" bezeichnet werden, während die zugeordneten Zuweisungsblöcke 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 physikalischen Speicherplatzes 34 gespeichert sind. Derartige virtuelle Blöcke 52 werden hier als „virtuelle Spiegelblöcke" bezeichnet, während die zugeordneten Zuweisungsblöcke 43 als „Spiegelzuweisungsblöcke" bezeichnet werden.
  • Um Daten von einem RAID-Bereich zu einem anderen zu migrieren, 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 nichtverwendeter Zuweisungsblock, der einen Typ der zweiten RAID-Ebene (beispielsweise Parität oder Ebene 5) darstellt, lokalisiert. Falls kein nichtverwendeter Zuweisungsblock 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 nichtverwendeten Zuweisungsblock übertragen, was bewirkt, dass die Daten einer Redundanzebenenänderung unterzogen werden. Beispielsweise werden Daten, die einmal gemäß einer Spiegelredundanz gespeichert waren, nun gemäß einer Paritätsredundanz gespeichert, oder umgekehrt. Als abschließender Schritt wird die 54 des virtuellen Anwendungsebenenspeicherplatzes 50 auf den virtuellen RAID-Ebenen-Speicherplatz 40 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, wird in dem Speicherabbildungsspeicher 21 aktualisiert.
  • Die fortdauernde Erörterung liefert eine ausführlichere Erklärung des Migrierens von Daten zwischen Spiegel- und Paritätsspeicherbereichen gemäß bevorzugten Verfahren und Sequenzen dieser Erfindung. Zum Migrieren von Daten von einer Paritäts- zu einer Spiegelspeicherung wird die folgende Sequenz verwendet:
    • 1. Das RAID-Verwaltungssystem lokalisiert einen nichtverwendeten Spiegelzuweisungsblock 43 in einem Spiegel-RAID-Bereich 42.
    • 2. Falls keiner gefunden werden kann, erzeugt das RAID-Verwaltungssystem einen Spiegelzuweisungsblock (nachfolgend erörtert).
    • 3. Das RAID-Verwaltungssystem setzt neue Speicheranforderungen an den zu migrierenden virtuellen Block zeitweilig aus.
    • 4. Das RAID-Verwaltungssystem wartet, bis alle aktiven Datenspeicheranforderungen an den virtuellen Block abgeschlossen sind.
    • 5. Die Daten von dem Paritätszuweisungsblock 45, der dem virtuellen Block 53 zugeordnet 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 Virtuellblocktabelle wird modifiziert, um auf den neuen Ort der Daten in dem Spiegelzuweisungsblock 43 zu verweisen.
    • 8. Die zeitweilig ausgesetzten Speicheranforderungen werden wiederaufgenommen.
  • Gemäß der obigen Prozedur migrierte ein virtueller Block 53 in der virtuellen Anwendungsebenenansicht 50 von einer Paritäts- zu einer Spiegelspeicherung. Relativ zu der virtuellen Zwischenansicht 40 migrierten 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 physikalischen Speicherplatz bewegten sich Daten von dem Bereich A1 zu dem Bereich A0.
  • Um Daten von einer Spiegel- zu einer Paritätsspeicherung zu migrieren, wird die folgende Sequenz verwendet:
    • 1. Das RAID-Verwaltungssystem wählt einen virtuellen Block von 52, um gemäß einer Migrationsrichtlinie, beispielsweise Zugriffsaktualität oder Zugriffshäufigkeit, von Spiegel- zu Paritätsspeicherung zu migrieren.
    • 2. Das RAID-Verwaltungssystem lokalisiert einen nichtverwendeten Paritätszuweisungsblock 45 in einem Paritäts-RAID-Bereich 44.
    • 3. Falls kein solcher Block gefunden werden kann, wird ein Platz, der für eine Migration reserviert ist, gemäß den oben beschriebenen Erzeugungstechniken in einen Paritäts-RAID-Bereich umgewandelt.
    • 4. Neue Speicheranforderungen an den zu migrierenden virtuellen Block werden zeitweilig ausgesetzt.
    • 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 eingelesen.
    • 7. Die Daten werden in den gewählten Paritätszuweisungsblock 45 geschrieben.
    • 8. Die Virtuellblocktabelle wird modifiziert, um auf den neuen Ort der Daten in dem Paritätszuweisungsblock 45 zu verweisen.
    • 9. Datenanforderungen an den virtuellen Block werden wiederaufgenommen.
  • Die obigen zwei aufgeführten Sequenzen liefern Beispiele dafür, wie das Speichersystem dieser Erfindung wirksam sein kann, um Daten zwischen zwei unterschiedlichen Redundanzebenen zu migrieren.
  • Das Datenspeichersystem dieser Erfindung reserviert eine Menge von nichtverwendetem Speicherplatz für eine Datenmigration und andere Operationen (z.B. Schritt 3 bei dem Spiegel-zu-Parität-Migrationsprozess im Vorhergehenden). Ein weiteres Ziel des Systems ist es jedoch, so viele Benutzerdaten wie möglich in virtuellen Spiegelblöcken zu halten, da eine Spiegelredundanz die höchste Leistung und Zuverlässigkeit bietet. Es liegt jedoch nur eine begrenzte Menge von physikalischem Speicherplatz in dem Plattenarray vor. Anfangs wird kein physikalischer Speicherplatz verbraucht. Dann beginnen Spiegelzuweisungsblöcke, die physikalische Kapazität zu verbrauchen, wenn Daten in dem Plattenarray gespeichert werden. Der Begriff „physikalische Kapazität" bezieht sich auf die Speicherkapazität, die zum Speichern von Benutzerdaten und redundanten Daten verfügbar ist. Eine Spiegelspeicherung verstopft wirksam das Plattenarray, wenn Benutzerdaten die Hälfte der physikalischen Kapazität verbrauchen. An diesem Punkt wird eine Hälfte der physikalischen Kapazität verwendet, um Benutzerdaten zu speichern, und die verbleibende Hälfte der physikalischen Kapazität wird verwendet, um die redundanten Daten zu speichern.
  • Auch werden an diesem Punkt alle verwendeten virtuellen Blöcke in Spiegelspeicherung gehalten. Falls die Spiegelspeicherung so viel von dem physikalischen Speicherplatz verbraucht, dass die Menge von nichtverwendetem RAID-Platz geringer ist als diejenige eines RAID-Bereichs, kann das Datenspeichersystem eine Migration eines einzelnen Spiegelzuweisungsblocks zu Paritäts-RAID-Bereichen nicht mehr garantieren. Die nächste Client-Datenanforderung, die einen vorhergehend nichtverwendeten Zuweisungsblock verwendet, schlägt fehl, da die Menge von nichtverwendetem Platz geringer ist als diejenige eines RAID-Bereichs und nicht zum Migrieren einzelner Zuweisungsblöcke aus der Spiegelspeicherung heraus in eine Paritätsspeicherung umgewandelt werden kann. Diese Situation muss vermieden werden.
  • Ein RAID-Verwaltungssystem 16 reserviert deshalb eine ausreichende Menge von nichtverwendetem Speicherplatz für eine Datenmigration und führt verschiedene Prozesse aus, um sicherzustellen, dass gegen diese Schwelle nichtverwendeten Speichers nicht verstoßen wird. 5 veranschaulicht eine allgemeine Prozedur dieser Erfindung. Bei Schritt 60 bildet das RAID-Verwaltungssystem 16 den physikalischen Speicherplatz, der durch das Plattenarray 12 geliefert wird, in einen ersten oder virtuellen RAID-Ebenen-Speicherplatz 40 ab (4). Der virtuelle RAID-Ebenen-Speicherplatz präsentiert den physikalischen Speicherplatz als Spiegel- und Paritäts-RAID-Bereiche. Die Spiegel-RAID-Bereiche enthalten Spiegelzuweisungsblöcke, die Daten gemäß einer Spiegelredundanz oder RAID-Ebene 1 speichern. Die Paritäts-RAID-Bereiche enthalten Paritätszuweisungsblöcke, die Daten gemäß einer Paritätsredundanz oder RAID-Ebene 5 speichern. Bei Schritt 62 reserviert das RAID-Verwaltungssystem eine Menge von nichtverwendetem Speicherplatz in dem virtuellen RAID-Ebenen-Speicherplatz 40. Die Menge von reserviertem nichtverwendetem Speicherplatz ist äquivalent zu der Menge von Speicherplatz in einem RAID-Bereich. Der nichtverwendete Speicherplatz muss nicht in einem vorausgewählten zusammenhängenden RAID-Bereich reserviert sein. Stattdessen verwendet das Verfahren dieser Erfindung nichtverwendeten Speicherplatz, der nicht zusammenhängend über mehr als einen RAID-Bereich verteilt sein kann.
  • 6 zeigt diese Platzreservierungstechnik. Ein beispielhaftes heterogenes Plattenarray 68 ist so gezeigt, dass dasselbe fünf Speicherplatten 04 von verschiedener Kapazität aufweist. Nichtverwendeter Speicherplatz (durch das Etikett „U" dargestellt) ist über die Speicherplatte auf eine nicht zusammenhängende Weise verteilt. Der reservierte Speicherplatz ist das logische Äquivalent zu einem RAID-Bereich. Das heißt, falls der gesamte nichtverwendete Speicherplatz U, der über die Platten verteilt ist, akkumuliert würde, würde derselbe zumindest einen zusammenhängenden RAID-Bereich (reservierter Platz U0–U4) füllen.
  • Es sei darauf hingewiesen, dass die Menge von nichtverwendetem Speicherplatz äquivalent zu der Größe von einem größten Paritäts-RAID-Bereich ist. Bei einem heterogenen Plattenarray ist ein größter RAID-Bereich einer, der alle Platten in dem Plattenarray überspannt, da einige nicht-größte RAID-Bereiche weniger als alle Platten überspannen können. Bei einem homogenen Plattenarray, bei dem alle Speicherplatten die gleiche Größe aufweisen, überspannen alle RAID-Bereiche alle Speicherplatten. Somit kann jeder RAID-Bereich als der größte betrachtet werden.
  • Bei Schritt 64 bildet das RAID-Verwaltungssystem den virtuellen RAID-Ebenen-Speicherplatz in einen zweiten oder virtuellen Anwendungsebenenspeicherplatz 50 ab, der den physikalischen Speicherplatz als mehrere virtuelle Blöcke präsentiert. Der virtuelle Anwendungsebenenspeicherplatz sieht nicht die Kapazität, die durch den reservierten Speicherplatz geliefert wird. Bei Schritt 66 in 5 migriert das RAID-Verwaltungssystem 16 Daten zwischen Spiegel- und Paritäts-RAID-Bereichen unter Verwendung des nichtverwendeten Speicherplatzes, wie es im Vorhergehenden bei den zwei aufgeführten Prozessen beschrieben ist, die unter Bezugnahme auf 4 erörtert sind. Mit Hilfe dieser Datenmigration wird sichergestellt, dass das Datenspeichersystem nicht zu viele Daten in eine Spiegelspeicherung platziert, derart, dass gegen die Schwelle eines Paritäts-RAID-Bereichs von nichtverwendetem Speicherplatz verstoßen wird.
  • Die Reservierungstechnik dieser Erfindung für nichtverwendeten Speicherplatz ist vorteilhaft, da der nichtverwendete Platz auf eine nicht zusammenhängende Weise über unterschiedliche RAID-Bereiche und über mehrere Speicherplatten verteilt sein kann. Es ist nicht erforderlich, dass eine zusammenhängende reservierte Speicherung garantiert wird. Folglich kann das System ohne schwierige und komplexe Operationen, wie z.B. Verschachtelungstransaktionen, die eine spezifische Konfiguration von physikalischem Speicherplatz garantieren, konzipiert werden.
  • Nicht zusammenhängender nichtverwendeter Speicherplatz wird abhängig von der laufenden Operation gesammelt oder auf andere Weisen verwendet. Allgemein wird die reservierte Menge verwendet, um mit ihrer Hilfe verwendbare Zuweisungsblöcke zur Speicherung von Benutzer- oder nichtverwendeten RAID-Bereichen zu erzeugen, die nach Bedarf in Spiegel- oder Paritäts-RAID-Bereiche umgewandelt werden können. Zwei Operationen von besonderem Interesse betreffen (1) ein Schreiben eines einzelnen virtuellen Blocks in eine gespiegelte Speicherung und (2) ein Neuschreiben ganzer RAID-Bereiche. Bei der ersten Operation umfasst ein Verfahren zum Schreiben eines einzelnen virtuellen Blocks eine Sequenz eines Sammelns nichtverwendeten Speicherplatzes über eine Technik, die „Abfallsammlung" genannt wird, und einer Migration von Daten von einer Spiegel- zu einer Paritätsspeicherung. Das Abfallsammlungs-/Migrationverfahren wird unter Bezugnahme auf die 79 genauer beschrieben. Bei der zweiten Operation betrifft ein Verfahren zum Neuschreiben ganzer RAID-Bereiche ein Entleeren eines teilweise gefüllten RAID-Bereichs, um den entleerten RAID-Bereich nach Bedarf über eine Technik, die „Urladen" bzw. „Bootstrapping" genannt wird, in einen Spiegel- oder Paritäts-RAID-Bereich umzuwandeln. Das Urladeverfahren ist unter Bezugnahme auf die 10 und 11 genauer beschrieben.
  • 7 zeigt das Verfahren zum Schreiben von Daten in einzelne virtuelle Spiegelblöcke einer Spiegelspeicherung. Die anfänglichen drei Schritte 70, 72 und 74 sind im Wesentlichen identisch mit den Schritten 60, 62 und 62, die unter Bezugnahme auf 5 im Vorhergehenden beschrieben sind. Diese drei Schritte erzeugen die zwei Ebenen eines virtuellen Speicherplatzes, die im Vorhergehenden unter Bezugnahme auf 4 genau beschrieben sind, während eine Menge von nichtverwendetem Speicherplatz in dem virtuellen RAID-Ebenen-Speicherplatz reserviert wird, die größenmäßig äqui valent zu einem RAID-Bereich ist. Es sei darauf hingewiesen, dass der virtuelle RAID-Ebenen-Speicherplatz, der bei Schritt 70 abgebildet wird, nichtverwendete RAID-Bereiche umfasst, die nicht als Spiegel- oder Paritäts-RAID-Bereiche bestimmt worden sind und deshalb frei sind, als eines der beiden verwendet zu werden.
  • Wenn es Zeit ist, Daten in einen einzelnen virtuellen Block zu schreiben, versucht das RAID-Verwaltungssystem 16 zuerst, einen verwendbaren Spiegelzuweisungsblock in dem virtuellen RAID-Ebenen-Speicherplatz zu lokalisieren, der dem einzelnen virtuellen Block zugeordnet werden kann (Schritt 76). Falls ein verwendbarer Spiegelzuweisungsblock vorliegt, der ohne ein Verstoßen gegen die Schwelle eines RAID-Bereichs von nichtverwendetem Speicherplatz, der für eine Migration reserviert ist, verwendet werden kann (d.h. die „Ja"-Verzweigung von Entscheidungsschritt 78), werden Daten einfach in den lokalisierten Spiegelzuweisungsblock geschrieben (Schritt 80). Falls andererseits kein verwendbarer Spiegelzuweisungsblock gefunden werden kann (d.h. die „Nein"-Verzweigung von Entscheidungsschritt 78), erzeugt das RAID-Verwaltungssystem zumindest einen verwendbaren Spiegelzuweisungsblock (Schritt 82). Danach werden Daten in die erzeugten ein oder mehr Spiegelzuweisungsblöcke geschrieben.
  • 8 veranschaulicht bevorzugte Techniken zum Erzeugen von verwendbaren Spiegelzuweisungsblöcken über Schritt 82. Die Techniken werden bevorzugt in sequentieller Reihenfolge durchgeführt, wie es gezeigt ist, bis zumindest ein verwendbarer Spiegelzuweisungsblock erzeugt ist. Bei Schritt 90 wird bestimmt, ob ein nichtverwendeter RAID-Bereich vorliegt, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, ohne gegen die Schwelle eines RAID-Bereichs für nichtverwendeten Speicherplatz zu verstoßen. Diese Bestimmung wird vorgenommen, da eine Umwandlung eines nichtverwendeten RAID-Bereichs in einen Spiegel-RAID-Bereich den verfügbaren Speicherplatz bis zu einem Punkt zusammen schrumpfen lassen kann, an dem gegen die Schwelle eines RAID-Bereichs für nichtverwendeten Speicherplatz verstoßen wird. Es wird angenommen, dass die Schwelle größenmäßig äquivalent zu dem größten Paritäts-RAID-Bereich ist. Bei einem Plattenarray von N Platten weist ein Paritäts-RAID-Bereich ein Vielfaches m von N – 1 Zuweisungsblöcken zur Speicherung von Benutzerdaten und Zuweisungsblöcken für Redundanzdaten auf. Im Gegensatz dazu weist ein Spiegel-RAID-Bereich ein Vielfaches von N/2 Zuweisungsblöcken zur Speicherung von Benutzerdaten und N/2 Zuweisungsblöcken für Redundanzdaten auf. Eine Umwandlung von einem nichtverwendeten RAID-Bereich, der in entweder einen Spiegel- oder einen Paritäts-RAID-Bereich umgewandelt werden kann, reduziert den Speicherplatz wirksam um ein Vielfaches von N/2 – (N – 1). Somit kann die Umwandlung gegen die Schwelle eines RAID-Bereichs für nichtverwendeten Speicher verstoßen.
  • Falls ein nichtverwendeter RAID-Bereich vorliegt, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, ohne gegen die nichtverwendete Schwelle zu verstoßen (d.h. die „Ja"-Verzweigung von Schritt 90), wandelt das RAID-Verwaltungssystem den nichtverwendeten RAID-Bereich in einen Spiegel-RAID-Bereich um (Schritt 100). Ist dies erfolgreich, erzeugt diese Technik zumindest einen Spiegelzuweisungsblock. Daten können dann in den verwendbaren Spiegelzuweisungsblock in dem neuen Spiegel-RAID-Bereich geschrieben werden. Der Prozess kann dann angehalten werden.
  • Falls kein nichtverwendeter RAID-Bereich vorliegt, der in eine Spiegelspeicherung umgewandelt werden kann (d.h. die „Nein"-Verzweigung von Schritt 90), bestimmt das RAID-Verwaltungssystem dann, ob das Speichersystem mehr nichtverwendete Zuweisungsblöcke als die reservierte Schwellenmenge von nichtverwendetem Speicher aufweist (Schritt 92). Ist dies der Fall, führt das RAID-Verwaltungssystem eine zweite Platzverwaltungstechnik aus, die den Paritätsspeicher mit dem Ziel eines Erzeugens eines nichtverwendeten RAID-Bereichs verdichtet (Schritt 94).
  • Die Paritätsspeicherverdichtung wird unter Verwendung des Abfallsammlungsprozesses durchgeführt, der in 9 veranschaulicht ist. 9 zeigt einen Abschnitt eines Plattenarrays 86, das vier Speicherplatten 03 enthält. Aus praktischen Gründen sei angenommen, dass die RAID-Bereiche des virtuellen RAID-Ebenen-Speicherplatzes zusammenhängend auf Bereiche AG-1, AG, AG+1, ..., AH-1, AH, AH+1, ... usw. abgebildet werden. Die Bereiche AG-1, AG, AG+1 werden zur Spiegelspeicherung verwendet, und die Bereiche AH-1, AH, AH+1 sind einer Paritätsspeicherung zugeordnet. Die Regionen in den Spiegel-RAID-Bereichen enthalten Zuweisungsblöcke, die mit Daten D0–D5 gefüllt sind, und Zuweisungsblöcke, die mit einer Spiegelredundanz R0–R5 ausgestattet sind. Die Regionen in den Paritäts-RAID-Bereichen enthalten Zuweisungsblöcke, die Daten D100–D107 halten, und Zuweisungsblöcke, die für eine Paritätsredundanz P bereitgestellt sind. Die umschlossenen Kästchen, die das Identifizierungsetikett „U" aufweisen, stellen reservierten nichtverwendeten Speicherplatz dar.
  • Um nichtverwendete Paritätszuweisungsblöcke in einem nichtverwendeten RAID-Bereich zu sammeln (d.h. der Paritätsverdichtungsschritt 94 von 8), werden Daten von einem ausgewählten Paritäts-RAID-Bereich zu dem nichtverwendeten Speicherplatz U in anderen Paritäts-RAID-Bereichen bewegt. In 9 sei angenommen, dass der Paritäts-RAID-Bereich, der dem physikalischen Bereich AH-1 zugeordnet ist, ausgewählt wird. Daten D100 werden zu dem nichtverwendeten Speicherplatz U bewegt, der in dem RAID-Bereich AH+1 angeordnet ist. Auf ähnliche Weise werden Daten D101 zu dem nichtverwendeten Speicherplatz U in dem RAID-Bereich AH bewegt. Diese Datenbewegung füllt wirksam die „Löcher" in den Paritäts-RAID-Bereichen, wodurch der RAID-Bereich AH+1 voller gemacht wird. Zur gleichen Zeit sammelt die Datenbewegung den nichtverwendeten Speicherplatz in dem gleichen RAID-Bereich. Hier ist der ausgewählte Paritätsbereich AH-1 nun völlig leer. Derselbe kann deshalb als ein nichtverwendeter RAID-Bereich klassifiziert werden.
  • Bei dem virtuellen Anwendungsebenenspeicherplatz werden die Zeiger in der Virtuellblocktabelle aktualisiert, um die Datenbewegung widerzuspiegeln. Dies sammelt wirksam nichtverwendete Zuweisungsblöcke in einem nichtverwendeten RAID-Bereich (d.h. dem entleerten Paritäts-RAID-Bereich, der dem physikalischen Bereich AH-1 zugeordnet ist).
  • Bei Schritt 96 in 8 bestimmt das RAID-Verwaltungssystem, ob dieser Verdichtungsschritt einen nichtverwendeten RAID-Bereich erzeugt hat, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, ohne gegen die Schwelle eines RAID-Bereichs für reservierten Speicherplatz zu verstoßen. Ist dies der Fall (d.h. die „Ja"-Verzweigung von Schritt 96), wird der erzeugte nichtverwendete RAID-Bereich in einen Spiegel-RAID-Bereich umgewandelt, der zumindest einen verwendbaren Spiegelzuweisungsblock enthält (Schritt 100), in den Daten geschrieben werden können. Unter Bezugnahme auf 9 können die Daten gemäß Spiegelredundanztechniken in dem physikalischen Bereich AH-1 gespeichert werden, wodurch dieser Bereich als ein Spiegel-RAID-Bereich neu zugeordnet wird.
  • Falls andererseits der Verdichtungsschritt keinen nichtverwendeten RAID-Bereich ergeben hat, der in eine Spiegelspeicherung umgewandelt werden kann (d.h. die „Nein"-Verzweigung von Schritt 96), führt das RAID-Verwaltungssystem eine dritte Technik zum abwechselnden Migrieren von Daten von Spiegelzuweisungsblöcken zu Paritätszuweisungsblöcken und dann eines Sammelns der Spiegelspeicherung durch, um einen nichtverwendeten RAID-Bereich zu erzeugen (Schritt 98). Es sei darauf hingewiesen, dass diese Migration-/Sammeltechnik von Schritt 98 auch über die „Nein"-Verzweigung von Schritt 92 erreicht werden kann, falls das Speichersystem nicht mehr nichtverwendete Zuweisungsblöcke als die reservierte Schwellenmenge aufweist.
  • Gemäß dem Teilprozess von Schritt 98 migriert das RAID-Verwaltungssystem Daten von einem Spiegelzuweisungsblock zu einem Paritätszuweisungsblock unter Verwendung von beliebigen nichtverwendeten Paritätszuweisungsblöcken oder durch ein Umwandeln von nichtverwendeten RAID-Bereichen in Parität. Die Spiegelspeicherung kann dann mit dem Ziel eines Erzeugens eines nichtverwendeten RAID-Bereichs verdichtet werden.
  • Das Sammeln von nichtverwendeten Spiegelzuweisungsblöcken ist auch in 9 gezeigt. Es sei z.B. angenommen, dass Daten von einem ausgewählten Spiegel-RAID-Bereich, wie z.B. demjenigen, der dem physikalischen Bereich AG+1 zugeordnet ist, zu dem nichtverwendeten Speicherplatz U in anderen Spiegelspeicherbereichen bewegt werden. Daten D4 werden zu dem nichtverwendeten Speicherplatz U bewegt, der in den RAID-Bereichen AG-1 und AG angeordnet ist. Auf ähnliche Weise werden Daten D5 zu dem nichtverwendeten Speicherplatz U in dem RAID-Bereich AG-1 bewegt. Die Datenbewegung füllt die „Löcher" in den Spiegel-RAID-Bereichen, während gleichzeitig der nichtverwendete Speicherplatz in dem gleichen RAID-Bereich gesammelt wird. Der ausgewählte Spiegelbereich AG+1 ist nun völlig leer und kann als ein nichtverwendeter RAID-Bereich klassifiziert werden.
  • Wie im Vorhergehenden werden bei dem virtuellen Anwendungsebenenspeicherplatz die Zeiger in der Virtuellblocktabelle aktualisiert, um die Datenbewegung widerzuspiegeln. Dies sammelt wirksam nichtverwendete Zuweisungsblöcke in einem nichtverwendeten RAID-Bereich (d.:h. dem entleerten Spiegel-RAID-Bereich, der dem physikalischen Bereich AG+1 zugeordnet ist).
  • Die Migrations- und Verdichtungsschritte werden wiederholt durchgeführt, bis ein nichtverwendeter RAID-Bereich erzeugt ist. Da ein Speichern von Benutzerdaten in Spiegelspeicherung verglichen mit einem Speichern. der gleichen Benutzer daten in Paritätsspeicherung mehr physikalischen Speicherplatz besetzt, ergibt eine Migration von Spiegelzuweisungsblöcken zu Paritäts-RAID-Bereichen eine Nettozunahme bei der Menge von nichtverwendetem Speicher. Wenn ein nichtverwendeter RAID-Bereich erzeugt worden ist, kann derselbe zur zusätzlichen Migration in einen Paritäts-RAID-Bereich umgewandelt werden (Schritt 99). Die Schritte 98 und 99 werden wiederholt durchgeführt, bis bei Schritt 96 ein nichtverwendeter RAID-Bereich existiert, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, ohne gegen die Schwelle reservierten nichtverwendeten Speichers zu verstoßen. Aufgrund der reservierten Menge von nichtverwendetem Speicher ist sichergestellt, dass dieser Prozess Spiegel-RAID-Bereiche entleert, so dass dieselben in Paritäts-RAID-Bereiche umgewandelt werden können. Das heißt, das Plattenarraydatenspeichersystem kann eine Spiegelspeicherung so viel wie nötig verkleinern, um die Kapazität zu erfüllen, die für Benutzerdaten festgelegt ist.
  • Die Techniken, die in 8 beschrieben sind, werden in der bevorzugten Reihenfolge durchgeführt, wie es gezeigt ist, da jeder vorangehende Schritt von einem Zeit- und Ressourcenstandpunkt aus weniger aufwändig ist, um verwendbare Spiegelzuweisungsblöcke zu erzeugen. Bei anderen weniger bevorzugten Ausführungsbeispielen können jedoch die Techniken zum Erzeugen von verwendbaren Spiegelzuweisungsblöcken in anderen Sequenzen durchgeführt werden.
  • Das Protokoll, das verwendet wird, um nichtverwendete Spiegelzuweisungsblöcke zu erzeugen, ist vorteilhaft, da dasselbe dem RAID-Verwaltungssystem erlaubt, die Speicherzuweisung zwischen Paritäts- und Spiegelbereichen gemäß der Menge an Benutzerdaten und der Größe des physikalischen Speicherplatzes selektiv einzustellen. Da Datenverwendung und Speicherkapazität variieren, maximiert das RAID-Verwaltungssystem die Menge an Daten, die in Spiegelspeicherung gehalten werden. Somit werden die am aktuellsten oder am häufigsten verwendeten Daten in Spiegelspeicherung gehalten, um Leistung und Zuverlässigkeit zu optimieren.
  • Das RAID-Verwaltungssystem versucht, die Situation zu vermeiden, bei der eine Speicheranforderung darauf warten muss, dass die platzschaffende Sequenz durch ein Erzeugen von nichtverwendeten RAID-Bereichen während einer Leerlaufzeit einen nichtverwendeten Spiegelzuweisungsblock liefert. In einigen Situationen können sich jedoch Konflikte ergeben, wenn Speicheranforderungen während der platzschaffenden Sequenz gemacht werden. Das RAID-Verwaltungssystem löst jegliche Konflikte, wenn die platzschaffenden Prozeduren abgeschlossen sind.
  • 10 zeigt das Verfahren zum Neuschreiben ganzer RAID-Bereiche unter Verwendung der „Urlade"-Technik. Die anfänglichen drei Schritte 120, 122 und 124 erzeugen erneut die Zweischichtabbildungsstruktur, die im Vorhergehenden unter Bezugnahme auf 4 beschrieben ist, während eine Menge von nichtverwendetem Speicherplatz, die zu einem RAID-Bereich äquivalent ist, reserviert wird.
  • Bei Schritt 126 lokalisiert das RAID-Verwaltungssystem einen Spiegel- oder Paritäts-RAID-Bereich, der teilweise mit Benutzerdaten gefüllt ist. Bei einer bevorzugten Implementierung sucht das RAID-Verwaltungssystem nach dem am wenigsten gefüllten Spiegel- oder Paritäts-RAID-Bereich. Das RAID-Verwaltungssystem entleert dann den teilweise gefüllten RAID-Bereich durch ein Bewegen der verbleibenden Daten zu nichtverwendetem Speicherplatz in dem Plattenarray (Schritt 128). Die Daten können zu einem beliebigen nichtverwendeten Speicherplatz entweder in Spiegel- oder Paritätsspeicherung bewegt werden. Dieser Prozess ergibt einen ganzen RAID-Bereich, der leer ist.
  • Der entleerte RAID-Bereich kann dann nach Bedarf in einen Spiegel- oder Paritäts-RAID-Bereich umgewandelt werden (Schritt 130). Zum Beispiel können Daten von einem anderen RAID-Bereich (Spiegel oder Parität) zu diesem leeren RAID-Bereich bewegt oder neu geschrieben werden, um verschiedene Operationen zu erleichtern, bei denen eine Datenbewegung im großen Maßstab aus einer Leistungs- und Effizienzperspektive erwünscht ist. Es ist z.B. erwünscht, ganze RAID-Bereiche während einer Wiederaufbauoperation (bei der eine Datenredundanz nach einem Plattenversagen wiederhergestellt wird) oder einer Ausgleichsoperation (bei der RAID-Bereiche einer nach dem anderen erweitert werden, um neuen Speicherplatz zu umfassen, der durch Hinzufügen von ein oder mehr zusätzlichen Speicherplatten erzeugt wird) umzuordnen.
  • 11 veranschaulicht schematisch die Urladetechnik von 10. 11 zeigt einen Abschnitt eines Plattenarrays 140, das fünf Speicherplatten 04 enthält. Aus praktischen Gründen sei angenommen, dass die RAID-Bereiche des virtuellen RAID-Ebenen-Speicherplatzes zusammenhängend auf Bereiche APF-4 bis APF+2 abgebildet werden. Die Regionen jedes RAID-Bereichs an den verschiedenen Platten enthalten Zuweisungsblöcke für Daten D0–D15, Zuweisungsblöcke für Spiegelredundanz R0–R7 und Paritätsredundanz P und nichtverwendete Zuweisungsblöcke, die durch „U", das in einem Kästchen umschlossen ist, bezeichnet sind. Aufgrund der reservierten Schwelle ist die Anzahl von nichtverwendeten Zuweisungsblöcken größer oder gleich der Anzahl von Zuweisungsblöcken in dem größtmöglichen Paritäts-RAID-Bereich in einem N-Platten-Array.
  • Bei diesem Beispiel sei angenommen, dass das RAID-Verwaltungssystem einen RAID-Bereich APF als den teilweise gefüllten RAID-Bereich identifiziert hat (Schritt 126 in 10). Die verbleibenden Daten in dem ausgewählten teilweise gefüllten RAID-Bereich APF werden zu dem nichtverwendeten Speicherbereich in anderen RAID-Bereichen bewegt. Daten D8 werden zu dem nichtverwendeten Speicherplatz U in den Spiegel-RAID-Bereichen APF-4 und APF-2 bewegt, und Daten D9 werden zu dem nichtverwendeten Speicherplatz U in dem Spiegel-RAID-Bereich APF-1 und den Paritäts-RAID-Bereichen APF+1 Und APF+2 bewegt. Die Daten werden unabhängig von der Speicherebene zu reserviertem Speicherplatz in den RAID-Bereichen in dem gesamten Plattenarray bewegt. Dieser Prozess entleert den ausgewählten RAID-Bereich, so dass derselbe keine Daten enthält. Der ausgewählte RAID-Bereich APF kann nun in einen Spiegel- oder Paritäts-RAID-Bereich umgewandelt werden.
  • Der Urladeprozess unterscheidet sich von dem im Vorhergehenden genannten Abfallsammlungsprozess darin, dass die Daten „Löcher" in einer beliebigen Speicherebene füllen können, unabhängig davon, ob die Daten sich ursprünglich in einem Spiegel- oder Paritäts-RAID-Bereich befanden. Der Prozess bewahrt nicht vollständig das Halten von am aktuellsten oder am häufigsten verwendeten Daten in Spiegelspeicherung, derselbe ist jedoch für große Neuschreiboperationen von Daten in dem Plattenarray nützlich. Der Urladeprozess ist einfacher und schneller als der im Vorhergehenden genannte Abfallsammlungsprozess.
  • Die Verfahren dieser Erfindung weisen viele Vorteile auf. Erstens kann Speicherplatz zur Migration und somit zur RAID-Bereichsumwandlung verwendet werden, wo auch immer derselbe in dem virtuellen RAID-Ebenen-Speicherplatz gefunden wird. Das Datenspeichersystem muss deshalb nicht konzipiert sein, um verschachtelte Transaktionen zu unterstützen, die einen spezifischen Ort oder eine Konfiguration von Platz garantieren, der für eine Migration zwischen Speichertypen reserviert ist. Zweitens erlauben die Verfahren eine maximale Flexibilität bezüglich Speichertypgrößen durch ein einfaches Übergehen zu homogenen oder heterogenen Plattenarrays. Drittens versuchen die Verfahren, Leistung und Zuverlässigkeit durch ein Halten von so vielen Daten wie möglich in Spiegelspeicherung zu optimieren.

Claims (11)

  1. Ein Verfahren zum Verwenden einer reservierten Menge von nichtverwendetem Speicherplatz in einem hierarchischen Datenspeichersystem (10); wobei das Datenspeichersystem mehrere Speicherplatten (12) aufweist, die einen physikalischen Speicherplatz (34) definieren; wobei der Speicherplatz einem Benutzerprogramm, das Benutzerdaten aufweist, in virtuellen Blöcken (52, 53) eines virtuellen Anwendungsebenenspeicherplatzes (50) präsentiert wird, wobei das Verfahren folgende Schritte aufweist: Bereitstellen einer reservierten minimalen Menge von nichtverwendetem Speicherplatz innerhalb des virtuellen RAID-Ebenen-Speicherplatzes (40); Abbilden des physikalischen Speicherplatzes (34) in einen virtuellen RAID-Ebenen-Speicherplatz (40), der mehrere erste und zweite RAID-Bereiche aufweist, wobei die ersten RAID-Bereiche erste Zuweisungsblöcke aufweisen, die Daten gemäß einer ersten RAID-Ebene speichern, die eine erste Redundanz aufweist, und wobei die zweiten RAID-Bereiche zweite Zuweisungsblöcke aufweisen, die Daten gemäß einer zweiten RAID-Ebene speichern, die eine zweite Redundanz aufweist, wobei die erste RAID-Ebene höher ist als die zweite RAID-Ebene, wobei die virtuellen Blöcke (52, 53) bei dem Anwendungsebenenspeicherplatz (50) den ersten oder zweiten Zuweisungsblöcken (43, 45) bei dem RAID-Ebenen-Speicherplatz (40) über Zeiger zugeordnet sind, die in einer Virtuellblocktabelle unterhalten werden; und abhängig von der Menge an Benutzerdaten und der Größe des physikalischen Speicherplatzes, Erhöhen oder Ver ringern der Anzahl von ersten (42) und zweiten (44) RAID-Bereichen durch ein Migrieren von Daten von einem ersten Zuweisungsblock (43) eines ersten RAID-Bereichs (42) zu einem zweiten Zuweisungsblock (45) eines zweiten RAID-Bereichs (44), so dass Daten, die einmal gemäß der ersten RAID-Ebene gespeichert waren, nun gemäß der zweiten RAID-Ebene gespeichert sind, bzw. durch ein Migrieren von Daten von einem zweiten Zuweisungsblock (45) eines zweiten RAID-Bereichs (44) zu einem ersten Zuweisungsblock (43) eines ersten RAID-Bereichs (42), so dass Daten, die einmal gemäß der zweiten RAID-Ebene gespeichert waren, nun gemäß der ersten RAID-Ebene gespeichert sind, derart, dass der nichtverwendete Speicherplatz nicht weniger wird als die minimale Menge von nichtverwendetem Speicherplatz.
  2. Ein Verfahren gemäß Anspruch 1, das ferner folgende Schritte aufweist: Bereitstellen von N Speicherplatten in dem Datenspeichersystem (10); und Bereitstellen einer minimalen reservierten Menge von nichtverwendetem Speicherplatz, die äquivalent zu zumindest einer Anzahl von virtuellen Blöcken ist, die in einem größtmöglichen RAID-Bereich eines Vielfachen von N – 1 gespeichert werden kann.
  3. Ein Verfahren gemäß Anspruch 1, wobei der virtuelle RAID-Ebenen-Speicherplatz (40) Spiegel-, Paritäts- und nichtverwendete RAID-Bereiche aufweist; wobei die Spiegel-RAID-Bereiche Spiegelzuweisungsblöcke aufweisen, die Daten gemäß einer Spiegelredundanz speichern, wobei die Paritäts-RAID-Bereiche Paritätszuweisungsblöcke aufweisen, die Daten gemäß einer Paritätsredundanz speichern, und wobei die nichtverwendeten RAID-Bereiche keine Daten enthalten; wobei die minimale reservierte Menge von nichtverwendetem Speicherplatz innerhalb des virtuellen RAID-Ebenen-Speicherplatzes (40) sich über die Speicherplatten verteilen darf; wobei das Verfahren ferner folgende Schritte aufweist: Versuchen, einen verwendbaren Spiegelzuweisungsblock zu lokalisieren; falls ein verwendbarer Spiegelzuweisungsblock lokalisiert wird, Schreiben von Daten in den Spiegelzuweisungsblock; und falls kein verwendbarer Spiegelzuweisungsblock lokalisiert wird, Erzeugen eines verwendbaren Spiegelzuweisungsblocks, um die Daten durch ein Durchführen von zumindest einem der folgenden zusätzlichen Schritte zu empfangen: (1) Lokalisieren eines nichtverwendeten RAID-Bereichs und Umwandeln desselben in einen Spiegel-RAID-Bereich, der einen verwendbaren Spiegelzuweisungsblock enthält; (2) Sammeln von leeren Spiegelzuweisungsblöcken oder leeren Paritätszuweisungsblöcken in einem nichtverwendeten RAID-Bereich, der verwendet werden kann, um einen Spiegel-RAID-Bereich zu erzeugen; und (3) Migrieren von Daten von Spiegelzuweisungsblöcken zu Paritätszuweisungsblöcken und Sammeln von nichtverwendeten Spiegelzuweisungsblöcken in nichtverwendeten RAID-Bereichen.
  4. Ein Verfahren gemäß Anspruch 3, bei dem der Schritt des Erzeugens eines verwendbaren Spiegelzuweisungs blocks die folgenden Schritte in sequentieller Reihenfolge aufweist, bis ein verwendbarer Spiegelzuweisungsblock erzeugt ist: (1) Lokalisieren eines nichtverwendeten RAID-Bereichs und Umwandeln desselben in einen Spiegel-RAID-Bereich, der einen verwendbaren Spiegelzuweisungsblock enthält; (2) Sammeln von leeren Paritätszuweisungsblöcken in einem nichtverwendeten RAID-Bereich und Umwandeln des nichtverwendeten RAID-Bereichs in einen Spiegel-RAID-Bereich, der einen verwendbaren Spiegelzuweisungsblock enthält; und (3) abwechselndes Durchführen der folgenden Schritte (a) und (b), bis ein nichtverwendeter RAID-Bereich erzeugt ist, dann Durchführen von Schritt (c): (a) Migrieren von Daten von einem Spiegelzuweisungsblock zu einem Paritätszuweisungsblock, um den Spiegelzuweisungsblock zu entleeren; (b) Sammeln des leeren Spiegelzuweisungsblocks in einem nichtverwendeten RAID-Bereich; und (c) nach den Schritten (3)(a) und (3)(b), Umwandeln des nichtverwendeten RAID-Bereichs in einen Paritäts-RAID-Bereich; Wiederholen der Schritte (3)(a)–(3)(c), bis ein nichtverwendeter RAID-Bereich erzeugt ist, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, ohne gegen die minimale reservierte Menge von nichtverwendetem Speicherplatz zu verstoßen.
  5. Ein Verfahren gemäß Anspruch 1, das ferner folgende Schritte aufweist: Bereitstellen einer minimalen Anzahl von nichtverwendeten Zuweisungsblöcken innerhalb des virtuellen RAID-Ebenen-Speicherplatzes (40), die über die Speicherplatten verteilt sein können; Migrieren von Daten zwischen den ersten und zweiten Zuweisungsblöcken, so dass die Daten, die einmal gemäß einer der ersten oder zweiten RAID-Ebene gespeichert waren, nun gemäß der anderen der ersten oder zweiten RAID-Ebene gespeichert sind; Lokalisieren eines ersten oder zweiten RAID-Bereichs, der teilweise mit Daten gefüllt ist; und Entleeren des lokalisierten RAID-Bereichs durch ein Bewegen der Daten von dem lokalisierten RAID-Bereich zu nichtverwendeten Zuweisungsblöcken.
  6. Ein Verfahren gemäß Anspruch 5, das ferner folgende Schritte aufweist: Bereitstellen von N Speicherplatten in dem Datenspeichersystem (10); und Bereitstellen einer minimalen reservierten Menge von nichtverwendetem Speicherplatz, die äquivalent ist zu zumindest einer Anzahl von virtuellen Blöcken, die in einem größtmöglichen RAID-Bereich eines Vielfachen von N – 1 gespeichert sein kann.
  7. Ein Verfahren gemäß Anspruch 5, bei dem der Lokalisierungsschritt ein Lokalisieren eines ersten oder zweiten RAID-Bereichs aufweist, der die geringste Menge von Daten darin gespeichert enthält.
  8. Ein Verfahren gemäß Anspruch 5, das ferner den zusätzlichen Schritt eines Neuschreibens von Daten von einem ganzen RAID-Bereich in den entleerten RAID-Bereich aufweist.
  9. Ein Verfahren gemäß Anspruch 5, das ferner den zusätzlichen Schritt eines Umwandelns des entleerten RAID-Bereichs in einen von einem Spiegel- oder Paritäts-RAID-Bereich aufweist.
  10. Ein Verfahren gemäß Anspruch 5, bei dem: der Schritt des Bereitstellens einer minimalen Anzahl von nichtverwendeten Zuweisungsblöcken ein Bereitstellen von nichtverwendeten Zuweisungsblöcken in sowohl den ersten als auch den zweiten RAID-Bereichen aufweist; und der Schritt des Entleerens eines lokalisierten RAID-Bereichs ein Bewegen von Daten von dem lokalisierten RAID-Bereich zu nichtverwendeten Zuweisungsblöcken sowohl in den ersten RAID-Bereichen der ersten RAID-Ebene als auch in den zweiten RAID-Bereichen der zweiten RAID-Ebene aufweist.
  11. Das Verfahren gemäß Anspruch 1, das ferner den Schritt eines Aktualisierens der Zeiger in der Virtuellblocktabelle aufweist, um die Datenmigration widerzuspiegeln.
DE69534527T 1995-02-10 1995-08-08 Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem Expired - Fee Related DE69534527T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US386573 1995-02-10
US08/386,573 US5542065A (en) 1995-02-10 1995-02-10 Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system

Publications (2)

Publication Number Publication Date
DE69534527D1 DE69534527D1 (de) 2006-03-02
DE69534527T2 true DE69534527T2 (de) 2006-07-13

Family

ID=23526163

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69534527T Expired - Fee Related DE69534527T2 (de) 1995-02-10 1995-08-08 Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem

Country Status (4)

Country Link
US (1) US5542065A (de)
EP (1) EP0726514B1 (de)
JP (1) JP3778980B2 (de)
DE (1) DE69534527T2 (de)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3315779B2 (ja) * 1993-11-16 2002-08-19 富士通株式会社 ディスク装置間のファイル転送装置およびファイル転送方法
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US5604902A (en) * 1995-02-16 1997-02-18 Hewlett-Packard Company Hole plugging garbage collection for a data storage system
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
US5809285A (en) * 1995-12-21 1998-09-15 Compaq Computer Corporation Computer system having a virtual drive array controller
US5809228A (en) * 1995-12-27 1998-09-15 Intel Corporaiton Method and apparatus for combining multiple writes to a memory resource utilizing a write buffer
US5758050A (en) * 1996-03-12 1998-05-26 International Business Machines Corporation Reconfigurable data storage system
US5790774A (en) * 1996-05-21 1998-08-04 Storage Computer Corporation Data storage system with dedicated allocation of parity storage and parity reads and writes only on operations requiring parity information
US5854942A (en) * 1996-09-06 1998-12-29 International Business Machines Corporation Method and system for automatic storage subsystem configuration
US6571314B1 (en) 1996-09-20 2003-05-27 Hitachi, Ltd. Method for changing raid-level in disk array subsystem
US5875457A (en) * 1996-10-08 1999-02-23 Mylex Corporation Fault-tolerant preservation of data integrity during dynamic raid set expansion
US6154853A (en) * 1997-03-26 2000-11-28 Emc Corporation Method and apparatus for dynamic sparing in a RAID storage system
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
US6237063B1 (en) 1997-10-06 2001-05-22 Emc Corporation Load balancing method for exchanging data in different physical disk storage devices in a disk array storage device independently of data processing system operation
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
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
US6199146B1 (en) * 1998-03-12 2001-03-06 International Business Machines Corporation Storage management system and method for increasing capacity utilization of nonvolatile storage devices using partially filled substitute storage devices for continuing write operations
JP3505093B2 (ja) 1998-09-18 2004-03-08 富士通株式会社 ファイル管理システム
US6530035B1 (en) * 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
US6311251B1 (en) * 1998-11-23 2001-10-30 Storage Technology Corporation System for optimizing data storage in a RAID system
US6363457B1 (en) 1999-02-08 2002-03-26 International Business Machines Corporation Method and system for non-disruptive addition and deletion of logical devices
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
US6378038B1 (en) * 1999-03-31 2002-04-23 International Business Machines Corporation Method and system for caching data using raid level selection
US6854034B1 (en) * 1999-08-27 2005-02-08 Hitachi, Ltd. Computer system and a method of assigning a storage device to a computer
US6493796B1 (en) * 1999-09-01 2002-12-10 Emc Corporation Method and apparatus for maintaining consistency of data stored in a group of mirroring devices
US6611827B1 (en) 1999-10-01 2003-08-26 International Business Machines Corporation Redundant disk array and method for redundant disk array access using contiguous page grouping
US6970992B2 (en) * 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US6857058B1 (en) 1999-10-04 2005-02-15 Intel Corporation Apparatus to map pages of disparate sizes and associated methods
US6546499B1 (en) 1999-10-14 2003-04-08 International Business Machines Corporation Redundant array of inexpensive platters (RAIP)
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
US6820182B1 (en) * 2000-10-18 2004-11-16 International Business Machines Corporation Support for exhaustion recovery in a data processing system with memory mirroring
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US7054927B2 (en) 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US20020156974A1 (en) * 2001-01-29 2002-10-24 Ulrich Thomas R. Redundant dynamically distributed file system
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US20020138559A1 (en) * 2001-01-29 2002-09-26 Ulrich Thomas R. Dynamically distributed file system
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US6785836B2 (en) * 2001-04-11 2004-08-31 Broadcom Corporation In-place data transformation for fault-tolerant disk storage systems
GB2375847B (en) * 2001-05-22 2005-03-16 Hewlett Packard Co Protection and restoration of RAID configuration information in disaster recovery process
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
US7111117B2 (en) * 2001-12-19 2006-09-19 Broadcom Corporation Expansion of RAID subsystems using spare space with immediate access to new space
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
US6912635B2 (en) * 2002-05-08 2005-06-28 Hewlett-Packard Development Company, L.P. Distributing workload evenly across storage media in a storage array
US6928509B2 (en) * 2002-08-01 2005-08-09 International Business Machines Corporation Method and apparatus for enhancing reliability and scalability of serial storage devices
US7089395B2 (en) * 2002-10-03 2006-08-08 Hewlett-Packard Development Company, L.P. Computer systems, virtual storage systems and virtual storage system operational methods
US7747660B1 (en) * 2003-03-24 2010-06-29 Symantec Operating Corporation Method and system of providing access to a virtual storage device
US7707186B2 (en) * 2004-06-18 2010-04-27 Emc Corporation Method and apparatus for data set migration
US7065611B2 (en) * 2004-06-29 2006-06-20 Hitachi, Ltd. Method for controlling storage policy according to volume activity
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
US7254686B2 (en) * 2005-03-31 2007-08-07 International Business Machines Corporation Switching between mirrored and non-mirrored volumes
US20070214314A1 (en) * 2006-03-07 2007-09-13 Reuter James M Methods and systems for hierarchical management of distributed data
JP2008015769A (ja) * 2006-07-05 2008-01-24 Hitachi Ltd ストレージシステム及び書き込み分散方法
US7743276B2 (en) * 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
JP2010511963A (ja) * 2006-12-08 2010-04-15 サンドフォース インコーポレイテッド 複数のストレージデバイスでのデータ冗長性
JP5080201B2 (ja) * 2007-10-22 2012-11-21 京セラドキュメントソリューションズ株式会社 情報処理装置及びこれに備えられるデバイスドライバ
US8060772B2 (en) * 2008-01-04 2011-11-15 International Business Machines Corporation Storage redundant array of independent drives
US8713127B2 (en) * 2008-02-05 2014-04-29 Novell, Inc. Techniques for distributed storage aggregation
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
JP5552924B2 (ja) * 2010-06-30 2014-07-16 富士通株式会社 ストレージ制御プログラム、ストレージシステムおよびストレージ制御方法
US8667248B1 (en) * 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
CN102446072B (zh) 2010-10-07 2014-11-19 国际商业机器公司 用于池式存储中的raid 阵列变换的系统和方法
WO2012045529A1 (en) 2010-10-07 2012-04-12 International Business Machines Corporation Raid array transformation
US8719619B2 (en) 2011-09-20 2014-05-06 International Business Machines Corporation Performance enhancement technique for raids under rebuild
US8869001B1 (en) 2012-06-27 2014-10-21 Amazon Technologies, Inc. Layered redundancy encoding schemes for data storage
US8806296B1 (en) 2012-06-27 2014-08-12 Amazon Technologies, Inc. Scheduled or gradual redundancy encoding schemes for data storage
US9110797B1 (en) * 2012-06-27 2015-08-18 Amazon Technologies, Inc. Correlated failure zones for data storage
US8850288B1 (en) 2012-06-27 2014-09-30 Amazon Technologies, Inc. Throughput-sensitive redundancy encoding schemes for data storage
US20140181455A1 (en) * 2012-12-20 2014-06-26 Apple Inc. Category based space allocation for multiple storage devices
US20160080490A1 (en) 2014-09-15 2016-03-17 Microsoft Corporation Online data movement without compromising data integrity
CN104375784B (zh) * 2014-11-17 2018-04-27 浙江宇视科技有限公司 一种降低虚拟磁盘管理复杂度的方法和装置
US9785575B2 (en) 2014-12-30 2017-10-10 International Business Machines Corporation Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes
WO2018022136A1 (en) 2016-07-26 2018-02-01 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) * 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
CN106484330A (zh) * 2016-09-27 2017-03-08 郑州云海信息技术有限公司 一种混合磁盘分层数据优化方法和装置
US9864534B1 (en) * 2016-10-27 2018-01-09 International Business Machines Corporation Validation of storage volumes that are in a peer to peer remote copy relationship
US10168948B2 (en) * 2017-02-20 2019-01-01 International Business Machines Corporation Replicating data in a data storage system
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
JP6734305B2 (ja) * 2018-01-10 2020-08-05 Necプラットフォームズ株式会社 ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラム
CN111104049B (zh) * 2018-10-26 2023-08-22 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
US11171671B2 (en) * 2019-02-25 2021-11-09 Samsung Electronics Co., Ltd. Reducing vulnerability window in key value storage server without sacrificing usable capacity
US11556270B2 (en) * 2021-01-07 2023-01-17 EMC IP Holding Company LLC Leveraging garbage collection for raid transformation
CN117041256B (zh) * 2023-10-08 2024-02-02 深圳市连用科技有限公司 一种网络数据传输存储方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095420A (en) * 1988-11-21 1992-03-10 International Business Machines Method and system for performing virtual address range mapping in a virtual storage data processing system
JPH0792775B2 (ja) * 1989-12-11 1995-10-09 株式会社日立製作所 外部記憶装置群のスペース管理方法
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5166939A (en) * 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
US5155835A (en) * 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
US5278838A (en) * 1991-06-18 1994-01-11 Ibm Corp. Recovery from errors in a redundant array of disk drives
JP2550239B2 (ja) * 1991-09-12 1996-11-06 株式会社日立製作所 外部記憶装置システム
US5237658A (en) * 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5297258A (en) * 1991-11-21 1994-03-22 Ast Research, Inc. Data logging for hard disk data storage systems
US5287462A (en) * 1991-12-20 1994-02-15 Ncr Corporation Bufferless SCSI to SCSI data transfer scheme for disk array applications
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5488701A (en) * 1994-11-17 1996-01-30 International Business Machines Corporation In log sparing for log structured arrays

Also Published As

Publication number Publication date
DE69534527D1 (de) 2006-03-02
US5542065A (en) 1996-07-30
EP0726514B1 (de) 2005-10-19
JPH08272548A (ja) 1996-10-18
JP3778980B2 (ja) 2006-05-24
EP0726514A3 (de) 2000-02-23
EP0726514A2 (de) 1996-08-14

Similar Documents

Publication Publication Date Title
DE69534527T2 (de) Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem
DE69534363T2 (de) Verfahren um Festplatten zu einer Festplattenanordnung hinzuzufügen und gleichzeitig die Datenerreichbarkeit zu gewährleisten
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
DE69533077T2 (de) Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation
DE69534057T2 (de) Verfahren zur Vermeidung der Über-Zuteilung virtueller Kapazität in einem redundanten hierarchischen Datenspeichersystem
DE69533575T2 (de) Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz
DE69533764T2 (de) Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung
DE69533570T2 (de) Verfahren und System zum Erkennen von Datenverlust in einem hierarchischen Datenspeichersystem
DE112013006504B4 (de) Speichersystem und Datenverwaltungsverfahren
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE19782041B4 (de) Verfahren zum Durchführen eines kontinuierlichen Überschreibens einer Datei in einem nicht-flüchtigen Speicher
DE4143072C2 (de) Blockweise löschbarer nicht-flüchtiger Halbleiterspeicher
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE112018005869T5 (de) Strukturanpassung einer namensraumzuordnung in nicht flüchtigen speichervorrichtungen
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE3390315T1 (de) Anpassungsfähige Unterteilung eines Chachespeicherraums in Domainen
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern
DE19515661C2 (de) Halbleiter-Plattenvorrichtung

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
8339 Ceased/non-payment of the annual fee