DE69533575T2 - Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz - Google Patents

Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz Download PDF

Info

Publication number
DE69533575T2
DE69533575T2 DE69533575T DE69533575T DE69533575T2 DE 69533575 T2 DE69533575 T2 DE 69533575T2 DE 69533575 T DE69533575 T DE 69533575T DE 69533575 T DE69533575 T DE 69533575T DE 69533575 T2 DE69533575 T2 DE 69533575T2
Authority
DE
Germany
Prior art keywords
raid
mirror
virtual
parity
data
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
DE69533575T
Other languages
English (en)
Other versions
DE69533575D1 (de
Inventor
Theresa A. Burkes
Bryan M. Diamond
Marvin D. Nelson
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 DE69533575D1 publication Critical patent/DE69533575D1/de
Application granted granted Critical
Publication of DE69533575T2 publication Critical patent/DE69533575T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich auf Verfahren zum Reservieren eines Speicherraums für eine Datenmigration in einem redundanten hierarchischen Datenspeichersystem. Diese Erfindung bezieht sich ferner auf ein hierarchisches Datenspeichersystem selbst.
  • Computersysteme werden in Bezug auf Geschwindigkeit, Zuverlässigkeit und Verarbeitungsfähigkeit ständig verbessert. Folglich sind Computer in der Lage, komplexere und anspruchsvollere Anwendungen zu handhaben. Während jedoch Computer immer besser werden, nehmen auch die Leistungsanforderungen zu, die an Massenspeicher- und Eingabe-/Ausgabevorrichtungen (I-/O-Vorrichtungen) gestellt werden. Es besteht weiterhin ein Bedarf, Massenspeichersysteme zu entwerfen, die in Bezug auf die Leistungsfähigkeit mit sich weiter entwickelnden Computersystemen Schritt halten.
  • Diese Erfindung betrifft insbesondere die Massenspeichersysteme des Plattenarray-Typs. Plattenarraydatenspeichersysteme weisen Mehrfach-Speicherplattenlaufwerksvorrichtungen auf, die angeordnet und koordiniert sind, um ein einziges Massenspeichersystem zu bilden. Für derartige Speichersysteme gibt es drei Hauptentwurfskriterien: Kosten, Leistungsfähigkeit und Verfügbarkeit. Am wünschenswertesten ist es, Speichervorrichtungen zu erzeugen, die geringe Kosten pro Megabyte, eine hohe Eingangs-/Ausgangsleistungsfähigkeit und eine hohe Datenverfügbarkeit aufweisen. „Verfügbarkeit" ist die Fähigkeit, auf Daten, die in dem Speichersystem gespeichert sind, zuzugreifen, und die Fähigkeit, im Fall eines Ausfalls einen fortgesetzten Betrieb zu gewährleisten. In der Regel wird eine Datenverfügbarkeit durch die Verwendung einer Redundanz geliefert, wobei Daten, oder Beziehungen zwi schen Daten, an mehreren Plätzen gespeichert sind. Für den Fall, dass eine Speicherplatte in dem Plattenarray teilweise oder vollständig ausfällt, können die Benutzerdaten über die auf den verbleibenden Platten gespeicherten redundanten Daten rekonstruiert werden.
  • Es gibt zwei übliche Verfahren zum Speichern von redundanten Daten. Gemäß dem ersten bzw. „Spiegel"-Verfahren werden Daten dupliziert und in zwei getrennten Bereichen des Speichersystems gespeichert. Bei einem Plattenarray werden die identischen Daten beispielsweise auf zwei getrennten Platten in dem Plattenarray bereitgestellt. Das Spiegelverfahren weist die Vorteile einer hohen Leistungsfähigkeit und einer hohen Datenverfügbarkeit aufgrund der Duplexspeichertechnik auf. Das Spiegelverfahren ist jedoch auch relativ teuer, da es die Kosten des Speicherns von Daten effektiv verdoppelt.
  • Bei dem zweiten bzw. „Paritäts"-Verfahren wird ein Teil des Speicherbereichs verwendet, um redundante Daten zu speichern, die Größe des redundanten Speicherbereichs ist jedoch geringer als der zum Speichern der ursprünglichen Daten verwendete verbleibende Speicherbereich. Bei einem Plattenarray, das fünf Platten aufweist, könnten beispielsweise vier Platten verwendet werden, um Daten zu speichern, wobei die fünfte Platte für das Speichern von redundanten Daten reserviert ist. Das Paritätsverfahren ist vorteilhaft, da es kostengünstiger ist als das Spiegelverfahren, im Vergleich zu dem Spiegelverfahren weist es jedoch auch geringere Leistungsfähigkeits- und Verfügbarkeitscharakteristika auf.
  • Die US-Patentschrift 5,166,939 beschreibt eine Massenspeichervorrichtung, die aus einer Mehrzahl von physischen Speichervorrichtungen besteht. Der Vorrichtungssatz ist in eine oder mehrere Redundanzgruppen unterteilt. Jede Redundanzgruppe ist in eine oder mehr Datengruppen unterteilt, von denen jede lediglich eine geringe Anzahl der Laufwerke in der Redundanzgruppe aufweisen kann, wodurch eine hohe Anforderungsrate geliefert wird, oder von denen jede eine große Anzahl von Laufwerken aufweisen kann, wodurch eine hohe Bandbreite bereitgestellt wird. Es ist eine dynamische Konfiguration vorgesehen, um die Konfiguration des Arrays von Speichervorrichtungen von seiner anfänglichen Konfiguration zu verändern, wodurch ermöglicht wird, dass eine neue Datengruppe zu logischen Einheiten hinzugefügt wird, ohne dass es erforderlich wäre, dass die logischen Einheiten entkoppelt werden.
  • Das IBM Technical Disclosure Bulletin, Band 33, Nr. 8, Januar 1991, Seiten 270–272, „USING DUAL ACTUATOR SHARED DATA DIRECT ACCESS STORAGE DEVICES IN A REDUNDANT ARRAY", offenbart eine Technik zum Verwenden von DASDs (Dual Actuator Shared Data Direct Access Storage Devices) in einem Plattenarray. Es ist ein Paar von gespiegelten Plattenlaufwerken mit dualen Betätigungsgliedern vorgesehen, die dieselben Daten gemeinsam verwenden. Ferner ist ein paralleles Array von Plattenlaufwerken vorgesehen, die entweder eine vereinfachte Prüfsumme, Parität oder eine andere Form einer Arraytechnologie implementieren. Die meisten Daten werden unter Verwendung einer Rufdatenaufzeichnungsprozedur in das gespiegelte Paar geschrieben. Daten werden über einen gewissen Zeitraum an dem gespiegelten Paar zurückgehalten, bis die gespiegelten Laufwerke beginnen, sich zu füllen. Zu diesem Zeitpunkt werden die ältesten und am wenigsten genutzten Daten zu dem parallelen Array bewegt.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, eine verbesserte und flexiblere Leistungsfähigkeit eines Datenspeichersystems, das Spiegel- und Paritätsspeicherbereiche aufweist, zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und ein Datenspeichersystem gemäß Anspruch 12 gelöst.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Ausführungsbeispiel der Erfindung liefert ein hierarchisches Datenspeichersystem, das Daten gemäß verschiedener Redundanztechniken speichert, um Leistungsfähigkeit und Zuverlässigkeit zu optimieren. Das Datenspeichersystem umfasst ein Plattenarray, das eine Mehrzahl von Speicherplatten aufweist, und eine Plattenarraysteuerung, die einen Datentransfer zu und von den Platten koordiniert. Die Speicherplatten definieren einen physischen Speicherraum. Das Datenspeichersystem umfasst ferner ein RAID-Verwaltungssystem, das wirksam mit der Plattenarraysteuerung gekoppelt ist, um zwei virtuelle Speicherräume auf den physischen Speicherraum der Speicherplatten abzubilden. Der erste virtuelle Speicherraum bzw. der virtuelle Speicherraum auf RAID-Ebene präsentiert den physischen Speicherraum als Spiegel- und Paritäts-RAID-Bereiche, die Daten gemäß einer RAID-Ebene 1 (Spiegelredundanz) und einer RAID-Ebene 5 (Paritätsredundanz) speichern. Die Spiegel-RAID-Bereiche enthalten mehrere Spiegelzuweisungsblöcke, und die Paritäts-RAID-Bereiche enthalten mehrere Paritätszuweisungsblöcke. Der zweite virtuelle Speicherraum bzw. der virtuelle Speicherraum auf Anwendungsebene präsentiert den physischen Speicherraum als mehrere virtuelle Blöcke. Die virtuellen Blöcke sind über Zeiger, die in einer Virtuelle-Blöcke-Tabelle gehalten werden, den Spiegel- und Paritätszuweisungsblöcken zugeordnet.
  • Anfänglich speicherte das RAID-Verwaltungssystem alle Daten in Spiegel-RAID-Bereichen, da eine Spiegelredundanz eine größere Leistungsfähigkeit und Zuverlässigkeit liefert als eine Paritätsredundanz. Alle Daten können in Spiegel-RAID-Bereichen gespeichert werden, bis die zugewiesene Kapazität (d.h. die Menge an Benutzerdaten, die in den virtuellen Blöcken des virtuellen Speicherraums auf Anwendungsebene gespeichert sind) die Hälfte der physischen Gesamtkapazität des Plattenarrays überschreitet. Nachdem diese Schwelle überschritten wurde, beginnt das RAID-Verwaltungssystem, ei nige Daten in Paritäts-RAID-Bereichen zu speichern. Das RAID-Verwaltungssystem bewegt Daten zwischen den Spiegel- und Paritäts-RAID-Bereichen, so dass die Daten eine Veränderung der Redundanz zwischen RAID-Ebene 1 (d.h. Spiegelredundanz) und RAID-Ebene 5 (d.h. Paritätsredundanz) erfahren, auf eine Weise, die die Leistungsfähigkeit und Zuverlässigkeit optimiert.
  • Um zu gewährleisten, dass für diese Bewegung ausreichend Raum reserviert wird, beschränkt das RAID-Verwaltungssystem die Anzahl von virtuellen Blöcken, die in den Spiegel-RAID-Bereichen zugeordnet werden können. Die maximale Anzahl virtueller Blöcke in Spiegel-RAID-Bereichen wird auf der Basis einer Funktion der physischen Kapazität der Speicherplatten, der Anzahl von Speicherplatten und der zugewiesenen Kapazität zum Zeitpunkt jeder Speicheranforderung von dem Benutzer dynamisch berechnet.
  • Beschreibung der Zeichnungen
  • Unter Bezugnahme auf die folgenden beigefügten Zeichnungen, in denen Beispiele gezeigt sind, die den besten Modus zum Praktizieren der Erfindung verkörpern, werden nachfolgend bevorzugte Ausführungsbeispiele der Erfindung beschrieben.
  • 1 ist ein schematisches Blockdiagramm eines Speichersystems gemäß dieser Erfindung.
  • 2 ist eine schematische Veranschaulichung, die eine Datenspeicherung auf RAID-Ebene 1 zeigt;
  • 3 ist eine schematische Veranschaulichung, die eine Datenspeicherung auf RAID-Ebene 5 zeigt; und
  • 4 ist eine schematische Veranschaulichung einer Speicherabbildungsanordnung dieser Erfindung, bei der zwei virtuelle Speicherräume auf einen physischen Speicherraum abgebildet werden.
  • 5 ist ein Flussdiagramm eines Systeminitialisierungsverfahrens zum Reservieren eines Speicherraums für eine Datenbewegung gemäß einem Aspekt dieser Erfindung.
  • 6 ist ein Flussdiagramm eines Verfahrens zum Gewährleisten, dass in einem Spiegelspeicher gespeicherte virtuelle Blöcke unter einer maximal zulässigen Anzahl bleiben.
  • 7 ist ein Graph, der eine maximal zulässige Anzahl von in einem Spiegelspeicher gespeicherten virtuellen Blöcken in Bezug auf die Teilmenge der physischen Kapazität, die zum Speichern von Daten verwendet wird, veranschaulicht. Die graphischen Informationen in 7 beruhen auf einem homogenen Plattenarray und zeigen Fälle für drei unterschiedliche physische Kapazitäten.
  • 8 ist ein Graph, der die Anzahl von sowohl in einem Spiegel- als auch in einem Paritätsspeicher gespeicherten zugewiesenen virtuellen Blöcken in Bezug auf die Teilmenge der für die Datenspeicherung verwendeten physischen Kapazität veranschaulicht. Die graphischen Informationen in 8 beruhen auf einem heterogenen Plattenarray und zeigen Fälle für drei verschiedene physische Kapazitäten.
  • 1 zeigt ein Datenspeichersystem 10, das gemäß dieser Erfindung aufgebaut ist. Vorzugsweise ist das Datenspeichersystem 10 ein Plattenarraydatenspeichersystem, das folgende Merkmale umfasst: ein hierarchisches Plattenarray 11, das eine Mehrzahl von Speicherplatten 12 aufweist, eine Plattenarraysteuerung 14, die mit dem Plattenarray 11 ge koppelt ist, um einen Transfer von Benutzerdaten zu und von den Speicherplatten 12 zu koordinieren, und ein RAID-Verwaltungssystem 16.
  • Für die Zwecke dieser Offenbarung ist eine „Platte" jegliche nicht-flüchtige, direkt zugreifbare, wiederbeschreibbare Massenspeichervorrichtung, die die Fähigkeit aufweist, ihre eigenen Speicherausfälle zu erfassen. Sie umfasst sowohl sich drehende magnetische und optische Platten als auch Festzustandsplatten, oder nicht-flüchtige elektronische Speicherelemente (z.B. PROMs, EPROMs und EEPROMs). Der Begriff „Plattenarray" umfasst eine Sammlung von Platten, die Hardware, die erforderlich ist, um sie mit einem oder mehreren Hostcomputern zu verbinden, und eine Verwaltungssoftware, die verwendet wird, um den Betrieb der physischen Platten zu steuern und sie der Host-Betriebsumgebung als eine oder mehrere virtuelle Platten zu präsentieren. Eine „virtuelle Platte" ist eine abstrakte Entität, die durch die Verwaltungssoftware in dem Plattenarray verwirklicht ist.
  • Der Begriff „RAID" (Redundant Array of Independent Plattes, redundantes Array aus unabhängigen Platten) bedeutet ein Plattenarray, bei dem ein Teil der physischen Speicherkapazität verwendet wird, um redundante Informationen über Benutzerdaten, die auf dem Rest der Speicherkapazität gespeichert sind, zu speichern. Die redundanten Informationen ermöglichen eine Regeneration von Benutzerdaten für den Fall, dass eine der zu dem Array gehörenden Platten oder der Zugriffspfad zu derselben ausfällt. Eine ausführlichere Erläuterung von RAID-Systemen findet sich in einem Buch mit dem Titel The RAIDBook: A Source Book for RAID Technology, das am 9. Juni 1993 von RAID Advisory Board, Lino Lakes, Minnesota, veröffentlicht wurde.
  • Die Plattenarraysteuerung 14 ist über einen oder mehrere Schnittstellenbusse 13, beispielsweise eine Kleincomputer-Schnittstelle (SCSI – small computer system interface) mit dem Plattenarray 11 gekoppelt. Das RAID-Verwaltungssystem 16 ist über ein Schnittstellenprotokoll 15 wirksam mit der Plattenarraysteuerung 14 gekoppelt. Ferner ist das Datenspeichersystem 10 über einen I/O-Schnittstellenbus 17 mit einem Hostcomputer (nicht gezeigt) gekoppelt. Das RAID-Verwaltungssystem 16 kann als separate Komponente verkörpert sein oder kann in der Plattenarraysteuerung 14 oder in dem Hostcomputer konfiguriert sein, um eine Datenverwaltungseinrichtung zum Steuern von Plattenspeicherungs- und von Zuverlässigkeitsebenen sowie zum Transferieren von Daten zwischen verschiedenen Zuverlässigkeits-Speicherstufen bereitzustellen. Diese Zuverlässigkeits-Speicherebenen sind, wie nachfolgend beschrieben wird, vorzugsweise Spiegel- oder Paritäts-Redundanzebenen, können jedoch auch eine Zuverlässigkeits-Speicherebene ohne jegliche Redundanz umfassen.
  • Die Plattenarraysteuerung 14 ist vorzugsweise als duale Steuerung implementiert, die aus der Plattenarraysteuerung A 14a bezeichnet ist, und aus der Plattenarraysteuerung B 14b bezeichnet ist, 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 Speicherräume, einschließlich seines physischen Speicherraums und eines oder mehrerer virtueller Speicherräume, charakterisiert werden. Diese verschiedenen Speicheransichten sind durch Abbildungstechniken verbunden. Beispielsweise kann der physische Speicherraum des Plattenarrays in einen virtuellen Speicherraum abgebildet werden, der Speicherbereiche gemäß den verschiedenen Datenzuverlässigkeitsebenen darstellt. Manche Bereiche in dem virtuellen Speicherraum können einer ersten Zuverlässigkeitsspeicherebene zugewiesen sein, beispielsweise Spiegel- oder RAID-Ebene 1, und andere Bereiche können einer zweiten Zuverlässigkeitsspeicherebene zugewiesen sein, beispielsweise Paritäts- oder RAID-Ebene 5. Die verschiedenen Abbildungstechniken und virtuellen Plätze, die RAID-Ebenen betreffen, werden nachfolgend ausführlicher beschrieben.
  • Das Datenspeichersystem 10 umfasst einen Speicherabbildungsspeicher 21, der eine durchgängige Speicherung der virtuellen Abbildungsinformationen liefert, die verwendet werden, um verschiedene Speicherräume ineinander abzubilden. Der Speicherabbildungsspeicher befindet sich außerhalb des Plattenarrays und vorzugsweise in der Plattenarraysteuerung 14. Die Speicherabbildungsinformationen können durch die Steuerung oder das RAID-Verwaltungssystem kontinuierlich oder periodisch aktualisiert werden, während sich die verschiedenen Abbildungskonfigurationen unter den verschiedenen Ansichten ändern.
  • Vorzugsweise ist der Speicherabbildungsspeicher 21 als zwei nicht-flüchtige RAMs (Direktzugriffsspeicher) 21a und 21b verkörpert, die in jeweiligen Steuerungen 14a und 14b angeordnet sind. Ein beispielhafter nicht-flüchtiger RAM (NVRAM) ist ein batteriegepufferter RAM. Ein batteriegepufferter RAM verwendet Energie von einer unabhängigen Batteriequelle, um im Falle eines Verlustes von Leistung an das Datenspeichersystem 10 die Daten über einen bestimmten Zeitraum in dem Speicher beizubehalten. Ein bevorzugter Aufbau ist ein selbstauffrischender batteriegepufferter DRAM (dynamischer RAM).
  • Die dualen NVRAMs 21a und 21b sorgen für eine redundante Speicherung der Speicherabbildungsinformationen. Die virtuellen Abbildungsinformationen werden dupliziert und gemäß Spiegelredundanztechniken in beiden NVRAMs 21a und 21b gespeichert. Auf diese Weise kann der NVRAM 21a dafür reserviert sein, die ursprünglichen Abbildungsinformationen zu speichern, und der NVRAM 21b kann dafür reserviert sein, die redundanten Abbildungsinformationen zu speichern. Bei einem alternativen Aufbau kann ein gespiegelter Speicherabbildungsspeicher unter Verwendung eines einzelnen nichtflüchtigen RAMs mit einem ausreichenden Platz, um die Daten im Duplikat zu speichern, konfiguriert sein.
  • Wie in 1 gezeigt ist, weist das Plattenarray 11 mehrere Speicherplattenlaufwerksvorrichtungen 12 auf. Beispielhafte Größen dieser Speicherplatten betragen ein bis drei Gigabytes. Die Speicherplatten können unabhängig voneinander mit mechanischen Buchten verbunden oder von denselben getrennt sein, die eine Schnittstellenbildung mit dem SCSI-Bus 13 liefern. Bei einer Implementierung ist das Datenspeichersystem mit zwölf aktiven mechanischen Buchten entworfen. Vier SCSI-Busse werden verwendet, um eine Schnittstelle zwischen diesen Buchten und der Plattenarraysteuerung 14 zu bilden (d.h. ein Bus pro drei mechanischen Buchten). Falls die aktiven Buchten vollständig beladen sind, weist das Datenspeichersystem eine beispielhafte kombinierte Kapazität von 12 bis 36 Gigabytes auf. Die Plattenarraysteuerung 14 erkennt die Speicherplatten 12 unabhängig davon, in welche Bucht sie eingesteckt sind. Das Datenspeichersystem 10 ist entworfen, um ein „heißes Einstecken" zusätzlicher Platten in verfügbare mechanische Buchten in dem Plattenarray, während das Plattenarray in Betrieb ist, zu ermöglichen.
  • Die Speicherplatten 12 in dem Plattenarray 11 können zu Erläuterungszwecken vom Konzept her so erklärt werden, 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 eine erste Speicherposition oder einen ersten RAID-Bereich des Plattenarrays dar, die bzw. der Daten gemäß einer ersten bzw. Spiegelredundanzebene speichert. Diese Spiegelredundanzebene wird auch als RAID-Ebene 1 betrachtet. Die RAID-Ebene 1 bzw. oder ein Spiegeln von Platten bietet die höchste Datenzuverlässigkeit, indem sie insofern einen Eins-Zu-Eins-Schutz bietet, als jedes Datenbit dupliziert und in dem Datenspeichersys tem gespeichert wird. Die Spiegelredundanz ist schematisch durch die drei Paare von Platten 20 in 1 dargestellt. Ursprüngliche Daten können auf einem ersten Satz von Platten 26 gespeichert werden, während dupliziert, redundante Daten auf dem gepaarten zweiten Satz von Platten 28 gespeichert werden.
  • 2 veranschaulicht die Speicherung von Daten gemäß der RAID-Ebene 1 noch ausführlicher. Die vertikalen Spalten stellen einzelne Platten dar, von denen Platten 0, 1, 2 und 3 veranschaulicht sind. Der in diesem Plattenarray aus vier Platten enthaltene physische Speicherplatz kann zu mehreren Streifen konfiguriert sein, wie sie durch die horizontalen Zeilen veranschaulicht sind. Ein „Streifen" erstreckt sich über die Speicherplatten und ist aus zahlreichen gleich großen Segmenten an Speicherplatz gebildet, wobei ein Segment jeder Platte in dem Array zugeordnet ist. Das heißt, 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 vorgesehen. Die redundanten Daten müssen nicht sauber in demselben Streifen plaziert werden, wie gezeigt ist. Beispielsweise könnten Daten, die auf der Platte 0 in dem Segment 2 des Streifens 1 gespeichert sind, dupliziert werden und auf der Platte 3 in dem Segment T' des Streifens S plaziert werden.
  • Unter erneuter Bezugnahme auf 1 stellt die Paritätsgruppe 22 der Platten 24 eine zweite Speicherposition bzw. einen zweiten RAID-Bereich dar, in der bzw. dem Daten gemäß einer zweiten Redundanzebene, z.B. RAID-Ebene 5, gespeichert werden. In dieser erläuternden Veranschaulichung von sechs Platten sind ursprüngliche Daten auf der fünften Platte 30 gespeichert, und redundante „Paritäts"-Daten sind auf der sechsten Platte 32 gespeichert.
  • 3 zeigt einen Paritäts-RAID-Bereich-Entwurf etwas ausführlicher. Ähnlich dem Entwurf des Spiegel-RAID-Bereichs der 2 kann der physische Speicherraum der Platten 0, 1, 2, 3 zu mehreren gleich großen Streifen konfiguriert sein. Bei diesem veranschaulichten Beispiel werden Daten gemäß der RAID-Ebene 5 gespeichert, und die redundanten Daten werden in den Segmenten gespeichert, auf die durch den Buchstaben P Bezug genommen wird. Die redundanten P-Segmente speichern die Parität der anderen Segmente in dem Streifen. In dem Streifen 0 speichert das redundante P-Segment auf der Platte 3 beispielsweise die Parität der Platten 0, 1 und 2. Die Parität für jeden Streifen wird durch eine bestimmte Funktion berechnet, beispielsweise eine Exklusiv-ODER-Funktion, die durch das Symbol „⊕" dargestellt wird. Die Paritäten für die ersten vier Streifen (wobei die tiefgestellte Zahl den entsprechenden Streifen darstellt) lauten wie folgt: P0 = Segment 0 ⊕ Segment 1 ⊕ Segment 2 = Platte 0 ⊕ Platte 1 ⊕ Platte 2 P1 = Segment 3 ⊕ Segment 4 ⊕ Segment 5 = Platte 0 ⊕ Platte 1 ⊕ Platte 3 P2 = Segment 6 ⊕ Segment 7 ⊕ Segment 8 = Platte 0 ⊕ Platte 2 ⊕ Platte 3 P3 = Segment 9 ⊕ Segment 10 ⊕ Segment 11 = Platte 1 ⊕ Platte 2 ⊕ Platte 3
  • Eine Paritätsredundanz ermöglicht eine Regeneration von Daten, die auf einer der Platten nicht mehr zur Verfügung stehen. Wenn beispielsweise die Daten in dem Segment 5 nicht mehr zur Verfügung stehen, kann ihr Inhalt aus den Segmenten 3 und 4 und den Paritätsdaten in dem Segment P ermittelt werden. Eine Paritätsspeicherung ist kostengünstiger als eine Spiegelspeicherung, ist jedoch auch weniger zuverlässig und weist eine geringere Leistungsfähigkeit auf.
  • Die Plattenanordnung der 1 ist zu Konzeptionszwecken vorgesehen. In der Praxis weist das Plattenarray 11 einfach eine Mehrzahl von Platten 12 auf, die in der Lage sind, Daten gemäß einer Spiegel- und Paritätsredundanz zu speichern. Aus dem durch alle Platten 12 gelieferten, zur Verfügung stehenden Speicherraum wird ein Abschnitt dieses Speicherraums einer Spiegelredundanz zugewiesen, und ein weiterer Abschnitt wird einer Paritätsredundanz zugewiesen. Vorzugsweise sind die Platten 12 konfiguriert, um mehrere gleich große Speicherregionen (die bei 4 mit dem Bezugszeichen 35 benannt sind) zu enthalten, wobei einzelne Regionen mehrere Segmente aufweisen. Die Regionen sind gruppiert, um bei einer virtuellen Ansicht des Speicherraums RAID-Bereiche zu bilden. Zusätzlich wird eine weitere (durch einen Host definierte) Ansicht eines Speicherraums 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 bzw. Bewegung" von Daten zwischen Spiegel- und Paritätsspeicherschemata. Die Verwaltung beider Redundanztypen wird durch das RAID-Verwaltungssystem 16 (1) koordiniert. Das RAID-Verwaltungssystem 16 verwaltet die zwei unterschiedlichen Typen von RAID-Bereichen in dem Plattenarray als Speicherhierarchie, wobei die Spiegel-RAID-Bereiche ähnlich einem Cache für die Paritäts-RAID-Bereiche agieren. Das RAID-Verwaltungssystem 16 verschiebt und organisiert die Daten zwischen dem Spiegel- und dem Paritäts-RAID-Bereich gemäß einem definierten Leistungsfähigkeitsprotokoll, und verwaltet die Daten ansonsten auf ebensolche Weise. Der Vorgang des Bewegens von Daten zwischen dem Spiegel- und dem Paritäts-RAID-Bereich wird als „Migration" bezeichnet.
  • Das Datenspeichersystem 10 versucht, die für die Leistungsfähigkeit kritischeren Daten in die Spiegel-RAID-Bereiche zu plazieren, da dies die höchste Leistungsfähigkeit und Zuverlässigkeit liefert. Die Leistungsfähigkeitsprotokolle, die durch das RAID-Verwaltungssystem 16 implementiert sind, umfassen eine von zwei bevorzugten Migrationsrichtlinien. Gemäß der ersten Migrationsrichtlinie, die als „Zugriffshäufigkeit" bekannt ist, werden die Daten in dem hierarchischen Plattenarray, auf die am häufigsten zugegriffen wird, in dem Spiegel-RAID-Bereich 18 beibehalten. Daten, auf die weniger häufig zugegriffen wird, werden in dem Paritäts-RAID-Bereich 22 gehalten. Gemäß einer zweiten Migrationsrichtlinie, die als „Zugriffsaktualität" bekannt ist, werden die Daten, deren Zugriff am wenigsten lange zurückliegt, in dem Spiegel-RAID-Bereich 18 beibehalten, während die Daten, deren Zugriff länger zurückliegt, in dem Paritäts-RAID-Bereich 22 gespeichert werden. Es können auch andere Leistungsfähigkeitsprotokolle verwendet werden. Idealerweise sind solche Protokolle auf der Basis der spezifischen Computeranwendung und der Erfordernisse des Benutzers definiert.
  • Zusätzlich „stimmt" das RAID-Verwaltungssystem 16 die Speicherressourcen eines Datenspeichersystems gemäß einer Funktion von zwei Parametern „ab". Größe der physischen Speicherkapazität und Größe der vorhandenen Menge an Benutzer daten, die in dem Datenspeichersystem gespeichert sind. Anfänglich werden alle Daten in Spiegel-RAID-Bereichen gespeichert, da dies die höchste Leistungsfähigkeit und Zuverlässigkeit liefert. Während mehr Daten zu dem Datenspeichersystem hinzugefügt werden, werden die Daten zwischen Spiegel-RAID-Bereichen und Paritäts-RAID-Bereichen bewegt, um die Leistungsfähigkeit und Zuverlässigkeit zu optimieren. Während sich das Datenspeichersystem an eine volle Kapazität annähert, werden im Rahmen des Bemühens, alle durch den Benutzer gestellten Anforderungen zu erfüllen und trotzdem durch Redundanz eine Zuverlässigkeit zu liefern, immer mehr Daten in Paritäts-RAID-Bereiche bewegt. Dementsprechend liefert das Datenspeichersystem dieser Erfindung eine maximale Flexibilität und Anpassung. Es erfordert nicht, dass der Benutzer einen spezifischen Speicherbetriebszustand auswählt, sondern kann sich statt dessen an jegliche durch den Benutzer an das System gestellte Forderung anpassen.
  • 4 veranschaulicht ein Speicherabbilden des verfügbaren Speicherraums des Datenspeichersystems 10 als mehrere Lagen eines abgebildeten virtuellen Speicherraums. Jedes vertikal verlängerte Rechteck in dem Diagramm stellt eine Ansicht des physischen Speicherraums dar. Bei diesem Diagramm wird auf den physischen Speicherraum 34 durch zwei virtuelle Speicheransichten 40 und 50 Bezug genommen. Der physische Speicherraum 34 wird durch vier Platten (z.B. Platten 12 in 1) dargestellt, die durch die Bezugszeichen 0, 1, 2 und 3 benannt sind. Die den Platten zugeordneten vier Rechtecke stellen eine Ansicht des physischen Speicherraums dar, bei der die Platten 1, 2 und 3 eine ungefähr gleiche Speicherkapazität aufweisen und die Platte 0 eine etwas geringere Speicherkapazität aufweist. Beispielhafte Speicherkapazitäten für derartige Platten betragen 1 bis 3 Gigabytes. Der Speicherraum 34 ist in Bereiche A0, A1, A2 usw. unterteilt. Einzelne Bereiche enthalten zahlreiche Streifen, im Bereich A0 z.B. Streifen O–Q. Einzelne Bereiche enthalten auch zahlreiche Regionen 35. Die Regionen 35 be stehen 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 Speicherraum der Platten wird in eine erste virtuelle Zwischenansicht 40 der RAID-Ebene des physischen Speicherraums 34 abgebildet. Diese erste virtuelle Ansicht ist vom Konzept her ein Satz von RAID-Bereichen, die auf eine zweite Anwendungsansicht abgebildet werden können, die einen angrenzend adressierbaren Speicherraum darstellt. Die physische Konfiguration und RAID-Ansichten des Speicherraums entziehen sich der Anwendungsansicht.
  • Der RAID-Bereich-Speicherraum 40 ist die Speicheransicht, die den Spiegel- und Paritätsspeicherraum identifiziert. Beispielsweise kann ein RAID-Bereich 42 einen Spiegel-RAID-Bereich von M Zuweisungsblöcken 43 darstellen, während der RAID-Bereich 44 einen Paritäts-RAID-Bereich von N Zuweisungsblöcken 45 darstellen kann. Die Zuweisungsblöcke 43 und 45 weisen vorzugsweise eine gleiche Größe auf, wobei eine beispielhafte Größe 64 Kilobytes beträgt. Diese RAID-Bereiche beziehen sich auf entsprechende physische Bereiche A0, A1, A2 usw. auf dem physischen Speicherraum 34. Beispielsweise können sechzehn 64K-Zuweisungsblöcke 43 oder 45 an der virtuellen RAID-Ansicht auf eine einzige 1M-Region 35 abgebildet werden.
  • Die Spiegel- und Paritäts-RAID-Bereiche können den gesamten Speicherraum 34 des Plattenarrays einnehmen, müssen aber nicht. Dementsprechend kann während bestimmter Anwendungen ein unbenutzter und unbezeichneter Speicherraum vorliegen, der keinem bestimmten RAID-Bereich entspricht. Ein solcher Speicherraum kann jedoch in einen Spiegel- oder Paritäts-RAID-Bereich umgewandelt werden. Ferner ist zu beachten, dass die RAID-Bereiche in der Abbildung in benachbarte Bereiche auf dem Plattenarray abgebildet werden, wobei jede einem RAID-Bereich zugeordnete Region an derselben physischen Adresse auf jeder Speicherplatte angeordnet ist. Die RAID-Bereiche können alternativ auch zu nicht-benachbarten Bereichen auf dem Plattenarray abgebildet werden.
  • Der in den RAID-Bereichen verfügbare Speicherraum wird in eine zweite virtuelle Vorderes-Ende-Ansicht 50 der Anwendungsebene abgebildet, die eine Speicheransicht ist, wie sie durch den Benutzer oder das Hostanwendungsprogramm definiert und demselben präsentiert wird. Bei einer Betrachtung durch den Benutzer oder das Hostanwendungsprogramm kann die virtuelle Ansicht 50 der Anwendungsebene eine einzige große Speicherkapazität darstellen, die den verfügbaren Speicherraum auf den Speicherplatten 12 angibt. Der virtuelle Speicherraum 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 Kilobytes beträgt. Der virtuelle Blockspeicherraum 50 wird in der durch die RAID-Bereiche 40 dargestellten Ansicht durch eine Tabelle von Bezugnahmen oder Zeigern (wie sie durch Pfeile 54 dargestellt sind) auf Zuweisungsblöcke, dargestellt. Die virtuellen Blöcke 52 und 53 bei der virtuellen Anwendungsansicht 50 sind somit über die in der virtuellen Blocktabelle beibehaltenen Zeiger den Zuweisungsblöcken 43 und 45 an der virtuellen RAID-Ansicht 50 zugeordnet. Es gibt mindestens zwei Arten von RAID-Bereichen, auf die von der virtuellen Blocktabelle verwiesen werden kann: Spiegel und Parität.
  • Das RAID-Verwaltungssystem 16 kann die Konfiguration der RAID-Bereiche über den physischen Speicherraum dynamisch verändern. Die Anzahl von RAID-Bereichen für jeden Typ kann je nach der Menge von Benutzerdaten, die in dem System gespeichert sind, und je nach der Größe des physischen Plattenspeicherraums erhöht oder verringert werden. Folglich befinden sich das Abbilden der RAID-Bereiche in der virtuellen Ansicht 40 der RAID-Ebene auf die Platten und das Abbilden der virtuellen Front-End-Ansicht 50 auf die RAID-Ansicht 40 allgemein in einem Veränderungszustand. Der Speicherabbildungsspeicher in den NVRAMs 21a und 21b (1) behält die aktuellen Abbildungsinformationen bei, die durch das RAID-Verwaltungssystem 16 verwendet werden, um die RAID-Bereiche auf die Platten abzubilden, und behält die Informationen bei, die verwendet werden, um zwischen die zwei virtuellen Ansichten abzubilden. Während das RAID-Verwaltungssystem die Abbildungen der RAID-Ebene dynamisch verändert, aktualisiert es auch die Abbildungsinformationen in dem Speicherabbildungsspeicher, um die Veränderungen zu reflektieren.
  • Die Migrationsoperation des Speichersystems 10 wird nun unter Bezugnahme auf 1 und 4 beschrieben.
  • Für die Zwecke einer fortführenden Erläuterung nehmen virtuelle Blöcke 53 des virtuellen Speicherraums 50 der Anwendungsebene Bezug auf zugeordnete Zuweisungsblöcke 45 in dem Paritäts-RAID-Bereich 44, die in dem Bereich A1 des physischen Speicherraums 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 physischen Speicherraums 34 gespeichert sind. Derartige virtuelle Blöcke 52 können hierin als „virtuelle Spiegelblöcke" bezeichnet werden, während die zugeordneten Zuweisungsblöcke 43 als „Spiegelzuweisungsblöcke" bezeichnet werden.
  • Um Daten von einem RAID-Bereich zu einem anderen zu bewegen, wird allgemein ein virtueller Block, der einem Zuweisungsblock eines Typs der ersten RAID-Ebene (z.B. Spiegel oder Ebene 1) zugeordnet ist, ausgewählt. Anschließend wird ein nicht benutzter Zuweisungsblock, der einen Typ der zweiten RAID-Ebene (beispielsweise Parität oder Ebene 5) darstellt, lokalisiert. Falls ein nicht benutzter Zuweisungsblock nicht lokalisiert werden kann, wird einer erzeugt. Als nächstes werden Daten von dem Zuweisungsblock, der zuvor dem ausgewählten virtuellen Block zugeordnet war, an den nicht benutzten Zuweisungsblock transferiert, der bewirkt, dass die Daten einer Redundanzebenenänderung unterzogen werden. Beispielsweise werden Daten, die einst gemäß der Spiegelredundanz gespeichert wurden, nun gemäß einer Paritätsredundanz gespeichert, oder umgekehrt. Als abschließenden Schritt wird die 54 des virtuellen Speicherraums 50 der Anwendungsebene auf den virtuellen Speicherraum 40 der RAID-Ebene modifiziert und aktualisiert, um die Datenverschiebung widerzuspiegeln. Der ausgewählte virtuelle Block, der zuvor einem Zuweisungsblock des Typs der ersten RAID-Ebene zugeordnet war, nimmt nun über einen aktualisierten Zeiger Bezug auf einen Zuweisungsblock des Typs der zweiten RAID-Ebene, der die migrierten Daten enthält. Jegliche Abbildungsveränderung, die während dieser Transaktion auftritt, würde in dem Speicherabbildungsspeicher 21 aktualisiert werden.
  • Die fortdauernde Erörterung liefert eine ausführlichere Erklärung des Bewegens von Daten zwischen Spiegel- und Paritätsspeicherbereichen gemäß bevorzugten Verfahren und Sequenzen dieser Erfindung. Zum Bewegen von Daten von einem Paritäts- zu einem Spiegelspeicher wird die folgende Sequenz verwendet:
    • 1. Das RAID-Verwaltungssystem lokalisiert einen unbenutzten Spiegelzuweisungsblock 43 in einem Spiegel-RAID-Bereich 42.
    • 2. Falls keiner gefunden wird, erzeugt das RAID-Verwaltungssystem einen Spiegelzuweisungsblock (nachfolgend erläutert).
    • 3. Das RAID-Verwaltungssystem hebt neue Speicheranforderungen an den zu bewegenden virtuellen Block zeitweilig auf.
    • 4. Das RAID-Verwaltungssystem wartet, bis alle aktiven Datenspeicherungsanforderungen an den virtuellen Block abgeschlossen sind.
    • 5. Die Daten von dem Paritätszuweisungsblock 45, der dem virtuellen Block 53 zugewiesen ist, werden in einen vorübergehenden Speicherpuffer eingelesen.
    • 6. Die Daten werden anschließend in den bei Schritt 2 gewählten Spiegelzuweisungsblock 43 geschrieben.
    • 7. Die virtuelle Blocktabelle wird modifiziert, um auf die neue Position der Daten in dem Spiegelzuweisungsblock 43 zu verweisen.
    • 8. Die zeitweilig aufgehobenen Speicheranforderungen werden wiederaufgenommen.
  • Gemäß der obigen Prozedur bewegte sich ein virtueller Block 53 in der virtuellen Ansicht 50 der Anwendungsebene von einer Paritäts- zu einer Spiegelspeicherung. Relativ zu der virtuellen Zwischenansicht 40 bewegten sich Daten von einem Paritätszuweisungsblock 45 in dem Paritäts-RAID-Bereich 44 zu einem Spiegelzuweisungsblock 43 in dem Spiegel-RAID-Bereich 42. In dem physischen Speicherraum bewegten sich Daten von dem Bereich A1 zum Bereich A0.
  • Falls kein unbenutzter Spiegelzuweisungsblock lokalisiert werden kann (Schritt 1 oben), versucht das RAID-Verwaltungssystem die folgende bevorzugte Sequenz von drei Techniken. Erstens versucht das RAID-Verwaltungssystem, einen unbenutzten (und somit unbenannten) RAID-Bereich zu lokalisieren, der in einen Spiegel-RAID-Bereich umgewandelt werden kann, ohne die Systemschwelle eines unbenutzten Speichers der RAID-Ebene zu verletzen, die benötigt wird, um zu garantieren, dass eine Migration immer stattfinden kann. Falls dies fehlschlägt und das System mehr als die reservierte Menge an unbenutztem Speicher der RAID-Ebene aufweist, bewegt das System Daten innerhalb des Paritätsspeichers, um unbenutzte Paritätszuweisungsblöcke zu unbenutzten RAID-Bereichen zu sammeln. Falls diese Migration einen unbenutzten RAID-Bereich ergibt, der, wie oben erwähnt, in einen Spiegel-RAID-Bereich umgewandelt werden kann, wandelt das System ihn in einen Spiegel-RAID-Bereich um. Andernfalls bewegt das System alternativ dazu Daten von einem Spiegel- zu einem Paritätsspeicher, verdichtet den Spiegelspeicher und wandelt einen unbenutzten Speicher der RAID-Ebene in einen Paritätsspeicher um, bis das System den unbenutzten Speicher der RAID-Ebene ausreichend für die Lokalisierung eines unbenutzten Spiegelzuweisungsblocks oder eine Umwandlung eines unbenutzten RAID-Bereichs in einen Spiegel-RAID-Bereich erhöht. Da Spiegelzuweisungsblöcke mehr physischen Speicherraum belegen als Paritätszuweisungsblöcke, führt diese letzte Technik zu einer Nettoerhöhung des Umfangs an unbenutztem Speicher der RAID-Ebene.
  • Das Erzeugungs-/Umwandlungsprotokoll, das verwendet wird, um unbenutzte Spiegelzuweisungsblöcke zu lokalisieren und einzurichten, ist vorteilhaft, da es dem RAID-Verwaltungssystem ermöglicht, die Speicherzuweisung gemäß der Menge an Benutzerdaten und der Größe des physischen Speicherraums zwischen Paritäts- und Spiegelbereichen selektiv einzustellen. Da die Datennutzung und die Speicherkapazität variieren, verwendet das RAID-Verwaltungssystem eine oder mehrere der obigen drei Techniken, um die Datenmenge, die in einem Spiegelspeicher gehalten wird, zu maximieren.
  • Das RAID-Verwaltungssystem versucht, die Situation zu vermeiden, bei der eine Speicheranforderung warten muss, bis die Platzschaffungssequenz einen unbenutzten Spiegelzuwei sungsblock ergibt, indem sie während einer Leerlaufzeit unbenutzte RAID-Bereiche erzeugt. In manchen Situationen können Speicheranforderungen während der Platzschaffungssequenz jedoch zeitweilig aufgehoben werden. Das RAID-Verwaltungssystem konfiguriert den virtuellen Blockspeicherraum derart, dass der virtuelle Platz geringer ist als die RAID-Ansicht. Dies gewährleistet, dass für eine Migration oder andere Zwecke ein freier Platz reserviert wird, der gleich zumindest einem RAID-Bereich ist. Auf diese Weise ergibt die Sequenz von Techniken immer einen unbenutzten Spiegelzuweisungsblock.
  • Um Daten von einem Spiegel- zu einem Paritätsspeicher zu bewegen, wird die folgende Sequenz verwendet:
    • 1. Das RAID-Verwaltungssystem wählt einen virtuellen Block aus 52 aus, um gemäß einer Migrationsrichtlinie, beispielsweise Zugriffsaktualität oder Zugriffshäufigkeit, von einem Spiegel- zu einem Paritätsspeicher zu bewegen.
    • 2. Das RAID-Verwaltungssystem lokalisiert einen unbenutzten Paritätszuweisungsblock 45 in einem Paritäts-RAID-Bereich 44.
    • 3. Falls kein solcher Block gefunden werden kann, wird ein für eine Migration reservierter Platz gemäß den oben beschriebenen Erzeugungstechniken in einen Paritäts-RAID-Bereich umgewandelt.
    • 4. Neue Speicheranforderungen an den zu bewegenden virtuellen Block werden zeitweilig aufgehoben.
    • 5. Das RAID-Verwaltungssystem wartet, bis alle aktiven Speicheranforderungen an den virtuellen Block abgeschlossen sind.
    • 6. Daten werden von dem Spiegelzuweisungsblock 43, der dem virtuellen Block 52 zugeordnet ist, in einen vorübergehenden Speicherpuffer gelesen.
    • 7. Die Daten werden in den gewählten Paritätszuweisungsblock 45 geschrieben.
    • 8. Die virtuelle Blocktabelle wird modifiziert, um auf die neue Position der Daten in dem Paritätszuweisungsblock 45 zu verweisen.
    • 9. Datenanforderungen an den virtuellen Block werden wiederaufgenommen.
  • Die obigen zwei aufgeführten Sequenzen liefern Beispiele dessen, wie das Speichersystem dieser Erfindung arbeiten kann, um Daten zwischen zwei verschiedenen Redundanzebenen zu bewegen.
  • Um die Datenbewegung zu bewerkstelligen, besteht ein Ziel des Datenspeichersystems darin, zu gewährleisten, dass eine ausreichende Menge an Speicherraum für die Migration bzw. Bewegung reserviert ist. Ferner besteht ein weiteres Ziel darin, möglichst viele Benutzerdaten in dem Spiegelspeicher zu halten, da die Spiegelredundanz die höchste Leistungsfähigkeit und Zuverlässigkeit bietet. Jedoch existiert lediglich eine endliche Menge an physischem Speicherraum in dem Plattenarray. Virtuelle Blöcke in dem Spiegelspeicher beginnen die physische Kapazität einzunehmen, wenn Daten in dem Plattenarray gespeichert werden. Der Begriff „physische Kapazität" bezieht sich auf die Speicherkapazität, die zum Speichern von Benutzerdaten und ihren Redundanzinformationen zur Verfügung steht.
  • Eine Spiegelspeicherung verstopft effektiv das Plattenarray, wenn sie die Hälfte der physischen Kapazität minus den reservierten Speicherraum einnimmt. An diesem Punkt werden alle verwendeten virtuellen Blöcke in einer Spiegelspeiche rung gehalten. Falls die Spiegelspeicherung so viel des physischen Speicherraums einnimmt, dass der Umfang an ungenutztem RAID-Raum geringer ist als der eines RAID-Bereichs, kann das Datenspeichersystem eine Migration bzw. Wanderung einzelner virtueller Blöcke von Spiegel zu Paritäts-RAID-Bereichen nicht mehr garantieren. Die nächste Clientdatenanforderung, die einen zuvor ungenutzten virtuellen Block verwendet, wird fehlschlagen, da der Umfang an ungenutztem Raum geringer ist als der eines RAID-Bereiches und nicht in eine Paritätsspeicherung zum Bewegen einzelner virtueller Blöcke aus der Spiegelspeicherung heraus umgewandelt werden kann. Diese Situation muss vermieden werden.
  • Das RAID-Verwaltungssystem 16 weist deshalb eine ausreichende Menge an reserviertem Speicherraum für die Datenmigration zu. Dies erfolgt durch eine Kombination zweier Techniken. Erstens reserviert das RAID-Verwaltungssystem logisch eine Menge an Speicherraum, der zumindest zu einem Spiegel-RAID-Bereich äquivalent ist. Zweitens begrenzt das RAID-Verwaltungssystem die Anzahl von Blöcken, die einer Spiegelspeicherung innerhalb des Datenspeichersystems zugewiesen werden können. Die maximale Anzahl virtueller Blöcke in einer Spiegelspeicherung wird auf der Grundlage einer Funktion der physischen Kapazität der Speicherplatten, der Anzahl der Speicherplatten und der zugewiesenen Kapazität zum Zeitpunkt jeder Speicherungsanforderung von dem Benutzer dynamisch berechnet.
  • 5 liefert ein Flussdiagramm eines Initialisierungsverfahrens dieser Erfindung zum Reservieren von Speicherraum für eine Datenmigration. Die Schritte sind unter zusätzlicher Bezugnahme auf 1 und 4 beschrieben.
  • Die ersten zwei Schritte 100 und 102 richten die zweistufige virtuelle Speicherraumumgebung für das hierarchische Datenspeichersystem ein. Bei Schritt 100 bildet das RAID-Verwaltungssystem 16 den durch das Plattenarray 12 bereitgestellten physischen Speicherraum in einen virtuellen Speicherraum 40 auf RAID-Ebene ab. Dieser virtuelle Speicherraum auf RAID-Ebene präsentiert den physischen Speicherraum als Spiegel- und Paritäts-RAID-Bereiche. Die Spiegel-RAID-Bereiche enthalten mehrere Spiegelzuweisungsblöcke, die Daten gemäß einer Spiegelredundanz oder RAID-Ebene 1 speichern. Die Paritäts-RAID-Bereiche enthalten mehrere Paritätszuweisungsblöcke, die Daten gemäß einer Paritätsredundanz oder RAID-Ebene 5 speichern. Bei Schritt 102 bildet das RAID-Verwaltungssystem den virtuellen Speicherraum 40 auf RAID-Ebene in einen virtuellen Speicherraum 50 auf Anwendungsebene ab, der den physischen Speicherraum als mehrere virtuelle Blöcke präsentiert. Die virtuellen Blöcke werden über die in der Virtuelle-Blöcke-Tabelle aufrechterhaltenen Zeiger entsprechenden Zuweisungsblöcken in RAID-Bereichen des virtuellen Speicherraums auf RAID-Ebene zugeordnet. Wie oben unter Bezugnahme auf 4 erläutert wurde, können die virtuellen Blöcke nach Wunsch zwischen Spiegel- und Paritätsspeicherung bewegt werden.
  • Während des anfänglichen Abbildens bildet das RAID-Verwaltungssystem absichtlich weniger als die volle physische Kapazität des physischen Speicherraums in den ersten und den zweiten virtuellen Speicherraum ab. Auf diese Weise betragen die jeweiligen Kapazitäten des ersten und des zweiten virtuellen Speicherraums jeweils weniger als die gesamte physische Kapazität. Dies ermögliche eine logische Reservierung einer Menge an Raum, der nicht zum Speichern von Daten an den Benutzer vergeben wird (Schritt 104). Vorzugsweise wird eine Menge an Raum reserviert, die äquivalent zu zumindest einem RAID-Bereich ist. Dieser Raum ist üblicherweise auf nicht-angrenzende Weise auf die Speicherplatten verteilt. Wenn er für eine Migration benötigt wird, wird der Raum zu ungenutzten RAID-Bereichen zusammengefasst.
  • Bei Schritt 106 wird die physische Kapazität (PhyCap) des physischen Speicherraums in dem Plattenarray festgestellt. Dies ist ein feststehender Wert für eine gegebene Platten arraykonfiguration minus den reservierten Raum. Wenn das Plattenarray beispielsweise zwölf Ein-Gigabyte-Speicherplatten aufweist, wäre die physische Kapazität im Wesentlichen zwölf Gigabytes (minus die Menge bzw. den Umfang eines RAID-Bereichs). Das Datenspeichersystem leitet diesen Wert intern ab, indem es das Vorliegen und die Größe jeder Speicherplatte erfasst. Wenn eine Änderung der physischen Konfiguration auftritt, zum Beispiel wenn Speicherplatten in das System eingesteckt oder aus demselben entfernt werden, liefert das Datenspeichersystem einen neuen Wert für die physische Kapazität (PhyCap).
  • Es ist wünschenswert, dass jederzeit zumindest eine gewisse Spiegelspeicherung aufrechterhalten wird, um während des Cachespeicherns wichtiger Daten eine höhere Leistungsfähigkeit zu liefern. Das RAID-Verwaltungssystem legt einen willkürlichen Prozentsatz von Benutzerdaten fest, die in einer Spiegelspeicherung gespeichert werden sollen (Schritt 108). Beispielsweise werden bis zu 10% der Benutzerdaten in einer Spiegelspeicherung behalten. Eine Speicherung in Spiegel-RAID-Bereichen ist vorteilhaft, da eine Spiegelredundanz eine höhere Leistungsfähigkeit und Zuverlässigkeit liefert als eine Paritätsredundanz.
  • Während dieser Systeminitialisierung sind alle virtuellen Blöcke in dem virtuellen Speicherraum 50 auf Anwendungsebene nicht zugewiesen. Die zugewiesene Kapazität wird auf Null eingestellt. Der Begriff „zugewiesene Kapazität" bedeutet die Menge an Benutzerdaten, die in den virtuellen Blöcken in dem virtuellen Speicherraum 50 auf Anwendungsebene gespeichert sind. Bei Schritt 110 berechnet das RAID-Verwaltungssystem eine maximal zulässige Anzahl virtueller Blöcke, die dem Benutzer zur Verfügung stehen, wenn gegeben ist, dass ein minimaler Prozentsatz an Benutzerdaten in Spiegelspeicherung gehalten werden soll.
  • 6 zeigt ein Flussdiagramm eines Verfahrens zum Gewährleisten, dass eine Spiegelspeicherung niemals die physische Speicherungskapazität einnimmt. Bei Schritt 112 werden virtuelle Datenblöcke erzeugt oder bewegt. Anfänglich, wenn Daten zuerst in dem System gespeichert werden, werden virtuelle Blöcke in dem virtuellen Speicherraum 50 auf Anwendungsebene in Spiegel-RAID-Bereichen zugewiesen. Das heißt, dass die virtuellen Blöcke über die Zeiger in der Virtuelle-Blöcke-Tabelle Spiegelzuweisungsblöcken zugeordnet werden. Die virtuellen Blöcke werden auf der Basis von Anforderungen seitens des Benutzers nach Bedarf zugewiesen. Vorzugsweise werden alle Daten in virtuellen Blöcken, die den Spiegel-RAID-Bereichen zugeordnet sind, gespeichert, bis die zugewiesene Kapazität die Hälfte der physischen Gesamtkapazität des Plattenarrays überschreitet.
  • Während Daten weiterhin in dem Plattenarray 11 gespeichert werden, zählt das RAID-Verwaltungssystem 16 weiterhin die virtuellen Blöcke, die derzeit Benutzerdaten speichern. Diese Zählung, die ohne weiteres anhand der Kapazität oder Größe dargestellt wird, stellt die zugewiesene Kapazität (AllCap) zu einem beliebigen gegebenen Zeitpunkt dar (Schritt 114). Bei dem Entscheidungsblock 116 wird die zugewiesene Kapazität (AllCap) mit der physischen Kapazität (PhyCap) des Plattenarrays verglichen. Falls die zugewiesene Kapazität geringer als die oder gleich der Hälfte der physischen Kapazität ist (d.h. der „Nein"-Zweig von Schritt 116), werden Daten weiterhin lediglich in virtuellen Blöcken in Spiegelspeicherung gespeichert (Schritt 118).
  • Wenn die zugewiesene Kapazität größer als die oder gleich der physischen Kapazität ist (d.h. der „Ja"-Zweig aus Schritt 116), berechnet das RAID-Verwaltungssystem die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung für die vorliegende Situation (Schritt 120). Diese Berechnung ist eine Funktion der zugewiesenen Kapazität (AllCap) der physischen Kapazität (PhyCap) des Plattenarrays und der Anzahl von Platten in dem Plattenarray (n). Dieser maximale Wert wird dynamisch berechnet, wenn sich die Bedingungen ändern. Das heißt, dass sich eine Variable – die zugewiesene Kapazität – üblicherweise in einem Zustand ständiger Veränderung befindet, und somit wird die maximal zulässige Anzahl virtueller Blöcke in einer Spiegelspeicherung neu berechnet, wenn sich diese Variable ändert.
  • Die Berechnung verwendet etwas andere Funktionen, je nachdem, ob das Plattenarray homogen oder heterogen ist. Ein „homogenes" Plattenarray besteht aus Speicherplatten gleicher Größe. Ein „heterogenes" Plattenarray besteht aus Speicherplatten unterschiedlicher Größen. Für das homogene Plattenarray berechnet das RAID-Verwaltungssystem die maximale Anzahl virtueller Blöcke in einer Spiegelspeicherung unter Verwendung der folgenden Gleichung [1]:
    Figure 00280001
    wobei „n" gleich der Anzahl von Speicherplatten in dem Array ist, „AllCap" die zugewiesene Kapazität darstellt und „PhyCap" die physische Kapazität des Plattenarrays darstellt.
  • Für ein heterogenes Plattenarray unterteilt das RAID-Verwaltungssystem das Plattenarray zunächst in Darstellungen homogen-artiger Plattenarrays. Beispielsweise sei angenommen, dass das heterogene Plattenarray aus vier Ein-Gigabyte-Speicherplatten und zwei Drei-Gigabyte-Speicherplatten besteht. Das RAID-Verwaltungssystem könnte diese Konfiguration in zwei Darstellungen homogener Plattenarrays unterteilen, bei denen eine Darstellung ein Gigabyte an Speicherung auf allen sechs Platten umfasst und die andere Darstellung die verbleibenden zwei Gigabytes der Speicherung auf den zwei Drei-Gigabyte-Platten umfasst. Das RAID-Verwaltungssystem berechnet anschließend die maximale Anzahl virtueller Blöcke in einer Spiegelspeicherung für das heterogene Plattenarray unter Verwendung folgender Gleichung [2]:
    Figure 00290001
    wobei i die Anzahl von Darstellungen homogener Plattenarrays ist, die aus dem heterogenen Plattenarray erzeugt werden können.
  • Das RAID-Verwaltungssystem schränkt eine Zuweisung einer über die maximal zulässige Anzahl hinausgehenden Anzahl virtueller Blöcke zur Spiegelspeicherung ein. Bei Schritt 122 wird bestimmt, ob eine Neuzuweisung virtueller Blöcke oder eine Bewegung virtueller Blöcke von Paritäts- zu Spiegelspeicherung die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung überschreitet. Falls dies nicht der Fall ist (d.h. der „Nein"-Zweig des Schritts 122), können Daten in den virtuellen Blöcken gespeichert werden, die der Spiegelspeicherung zugeordnet sind (Schritt 118). Wenn dagegen die maximal zulässige Anzahl überschritten wird (d.h. der „Ja"-Zweig aus Schritt 122), bewegt das RAID-Verwaltungssystem virtuelle Blöcke von der Spiegel- zur Paritätsspeicherung. Das heißt, dass Daten von Spiegelzuweisungsblöcken zu Paritätszuweisungsblöcken in dem virtuellen Speicherraum 40 auf RAID-Ebene bewegt werden und die Zeiger in der Virtuelle-Blöcke-Tabelle aktualisiert werden, so dass die virtuellen Blöcke in dem virtuellen Speicherraum 50 auf Anwendungsebene effektiv von der Spiegelspeicherung zur Paritätsspeicherung wandern.
  • Das RAID-Verwaltungssystem kann unter Verwendung des reservierten Raums, dessen Vorliegen durch ein Einschränken der Anzahl virtueller Blöcke in Spiegelspeicherung gewährleistet wird, Daten von Spiegelzuweisungsblöcken zu Paritätszuweisungsblöcken bewegen. Durch dynamisches Berechnen der maximalen Anzahl virtueller Blöcke hält das RAID-Verwaltungssystem zusätzlich die Anzahl virtueller Blöcke in Spiegelspeicherung zwischen dem berechneten Maximum und dem voreingestellten Minimum.
  • Durch Beschränken der Anzahl virtueller Blöcke in Spiegelspeicherung verhindert das System, dass der physische Speicherraum vollständig durch derartige virtuelle Blöcke eingenommen wird. Diese Praxis verhindert effektiv, dass die ungenutzte physische Kapazität unter den logisch reservierten Umfang fällt, um dadurch zu gewährleisten, dass eine Datenbewegung zwischen Paritäts- und Spiegel-RAID-Bereichen immer verfügbar ist.
  • Wenn mehr Daten in dem Plattenarray gespeichert werden, nähert sich die zugewiesene Kapazität der physischen Kapazität an. Um die Benutzeranforderungen bezüglich eines Handhabens großer Datenvolumina zu berücksichtigen, fährt das RAID-Verwaltungssystem fort, Daten von Spiegel-RAID-Bereichen zu Paritäts-RAID-Bereichen zu bewegen. Folglich nimmt das Verhältnis von Daten, die in Spiegel-RAID-Bereichen gespeichert sind, zu Daten, die in Paritäts-RAID-Bereichen gespeichert sind, allmählich ab.
  • 7 und 8 veranschaulichen die praktischen Effekte des Verfahrens dieser Erfindung. 7 stellt den Fall, bei dem ein homogenes Plattenarray drei unterschiedliche Größen einer physischen Kapazität: 3, 6 und 12 Gigabytes, aufweist, graphisch dar. Die Darstellung in Form eines umgekehrten „V" für jedes Szenario stellt die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung, die durch die obige Gleichung [1] berechnet wurde, in Bezug auf die zunehmende Menge an Daten, die in dem Plattenarray gespeichert werden, dar. Bei jedem Szenario wächst die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung von Null auf die Hälfte der physischen Speicherkapazität. Anfänglich werden Daten lediglich in Spiegelspeicherung gespeichert. Nachdem die Menge an Benutzerdaten diese Hälfte-Schwelle (wie sie durch die Bruchteilmenge 0,5 angegeben ist) erreicht und überschreitet, beginnt die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung abzunehmen. In dem Maße, wie sich das Volumen der Datenspeicherung auf dem Plattenarray an die volle Kapazität annähert, werden immer weniger virtuelle Blöcke einer Spiegelspeicherung zugewiesen. Es sei erwähnt, dass, während die virtuellen Blöcke in Spiegelspeicherung zahlenmäßig abnehmen, mehr virtuelle Blöcke in Paritätsspeicherung verwendet werden, um Daten zu speichern. Dies geht deutlicher aus 8 hervor.
  • 8 stellt den Fall, bei dem ein heterogenes Plattenarray drei unterschiedliche Größen der physischen Kapazität: 6, 12 und 18 Gigabytes aufweist, graphisch dar. Es gibt drei Kurvenpaare, die diesen Drei-Größen-Szenarios zugeordnet sind, wie durch die Legende am oberen Ende des Graphen angegeben ist. Die negativ geneigten Kurven stellen des Speicherungsumfang dar, der virtuelle Blöcke in Spiegelspeicherung verwendet, und die positiv geneigten Kurven stellen die Speicherungsmenge dar, die virtuelle Blöcke in Paritätsspeicherung verwendet. Man beachte, dass die Ursprungskoordinate für die x-Achse 0,5 beträgt, was bedeutet, dass das System an diesem Punkt bereits halb gefüllt ist. Während das Plattenarray darin fortfährt, sich über die Hälfte der Kapazität hinaus mit Daten zu füllen, nimmt die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung stetig bis auf effektiv Null ab (obwohl es wünschenswert ist, zumindest einen geringen Prozentsatz virtueller Blöcke in Spiegelspeicherung zu halten). Zur selben Zeit nimmt die Anzahl virtueller Blöcke in Paritätsspeicherung invers auf die volle Kapazität hin zu.
  • Diese Graphen fassen die bevorzugten Speicherungs- und Migrationspolitik dieser Erfindung präzise zusammen. Anfänglich werden Daten gänzlich in Spiegelspeicherung gespeichert. Bei halber Kapazität beginnt das hierarchische Datenspeichersystem, unter Verwendung einer Datenbewegung zwischen den Typen die Daten sowohl in Spiegel- als auch in Paritätsspeicherung zu speichern. Während sich das Datenspeichersystem weiterhin anfüllt, werden proportional mehr Daten zur Paritätsspeicherung bewegt, um das zunehmende Datenvolumen zu berücksichtigen, während die Spiegelspeiche rung abnimmt. Auf jeder dieser Stufen wird die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung so berechnet, dass die Anzahl existierender virtueller Blöcke in Spiegelspeicherung unter diesem Wert konsequent begrenzt ist, um eine Reservierung ausreichenden Raums für die Datenbewegung zu gewährleisten.
  • Die folgende Erörterung liefert typische Anwendungen der Verfahren während des Betriebs des hierarchischen Datenspeichersystems. Bei jeder Anwendung berechnet das RAID-Verwaltungssystem die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung zur Analyse von Migrationsmöglichkeiten. Jede Anwendung geht davon aus, dass mehr als die Hälfte des physischen Speicherraums genutzt wird.
  • Anwendung 1: Der Benutzer fordert an, auf einen virtuellen Block zuzugreifen, der derzeit einer Paritätsspeicherung zugeordnet ist. Diese Anforderung bewirkt eine Bewegung des virtuellen Blocks von Paritäts- zu Spiegelspeicherung. Die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung wird berechnet. Falls die tatsächliche Anzahl existierender virtueller Blöcke in Spiegelspeicherung gleich der maximal zulässigen Anzahl ist, werden diejenigen virtuellen Blöcke in Spiegelspeicherung, deren Zugriff am längsten zurückliegt (oder auf die am seltensten zugegriffen wird), zu Paritätsspeicherung bewegt. Dies verringert die Anzahl virtueller Blöcke in Spiegelspeicherung unter die maximal zulässige Anzahl. Danach kann auf den angeforderten virtuellen Block zugegriffen werden.
  • Anwendung 2: Der Benutzer fordert an, Daten in einen zuvor ungenutzten virtuellen Block zu schreiben. Das RAID-Verwaltungssystem berechnet wiederum die maximal zulässige Anzahl virtueller Blöcke in Spiegelspeicherung und vergleicht das Ergebnis mit der tatsächlichen Anzahl existierender virtueller Blöcke in Spiegelspeicherung. Falls die tatsächliche Anzahl die maximal zulässige Anzahl überschreitet, werden virtuelle Blöcke von Spiegelspeicherung zu Paritätsspeicherung bewegt, um in Spiegelspeicherung Raum frei zu machen, um die neuen Daten zu empfangen.
  • Anwendung 3: Der Benutzer fügt zu dem System eine Speicherplatte hinzu, um den Umfang an physischer Kapazität zu erhöhen. Wenn der physische Speicherraum von der neuen Speicherplatte integriert wird, berechnet das RAID- Verwaltungssystem eine neue maximale Anzahl auf der Grundlage der vergrößerten Kapazität. Da gewünscht ist, so viele Daten wie möglich in Spiegel-RAID-Bereichen zu speichern, werden diejenigen virtuellen Blöcke, die in jüngerer Zeit verwendet wurden (oder auf die häufiger zugegriffen wird), von Paritätsspeicherung zu Spiegelspeicherung bewegt, bis die tatsächliche Anzahl existierender virtueller Blöcke in Spiegelspeicherung die maximal zulässige Anzahl erreicht.
  • Die Erfindung weist viele Vorteile auf. Erstens liefert sie einen geradlinigen Lösungsansatz, eine Spiegelspeicherungszuweisung zu begrenzen. Dadurch wird die dynamischste Quelle der Überlastung in dem System beseitigt. Zweitens muss das System nicht entworfen sein, um verschachtelte Transaktionen zu unterstützen, die eine spezifische Position oder Konfiguration von Raum, der für eine Migration reserviert ist, garantieren. Drittens ermöglicht das System eine maximale Flexibilität für Speicherungstypgrößen durch eine ohne weiteres erfolgende Anpassung an homogene oder heterogene Plattenarrays. Viertens optimiert das System die Leistungsfähigkeit und Zuverlässigkeit, indem es ständig möglichst viele Daten in Spiegelspeicherung hält.
  • Vorschriftsgemäß wurde die Erfindung in einer Sprache beschrieben, die mehr oder weniger spezifisch für strukturelle und methodische Merkmale ist. Man sollte jedoch verstehen, dass die Erfindung nicht auf die gezeigten und beschriebenen spezifischen Merkmale beschränkt ist, da die hierin offenbarten Einrichtungen bevorzugte Formen der Umsetzung der Erfindung umfassen.

Claims (14)

  1. Ein Verfahren zum Reservieren eines Raums in einem hierarchischen Datenspeichersystem; wobei das Datenspeichersystem (10) ein Plattenarray (11) mehrerer Speicherungsplatten (12) umfasst, die einen physischen Speicherraum (34) definieren, wobei der physische Speicherraum in einen virtuellen Speicherraum (40) auf RAID-Ebene, der Spiegel- und Paritäts-RAID-Bereiche aufweist, abgebildet wird, wobei der virtuelle Speicherraum auf RAID-Ebene in einen virtuellen Speicherraum (50) auf Anwendungsebene abgebildet wird, der mehrere virtuelle Blöcke aufweist, die dem Spiegel- und dem Paritäts-RAID-Bereich zugeordnet sind; wobei das Verfahren folgende Schritte umfasst: (a) Bereitstellen einer Anzahl (n) der Speicherungsplatten (12) in dem Plattenarray (11); (b) Zuweisen von virtuellen Blöcken in dem virtuellen Speicherraum (50) auf Anwendungsebene in Spiegel-RAID-Bereichen zum Speichern von Daten gemäß einer Spiegelredundanz; (c) Speichern von Daten in den virtuellen Blöcken und Aufrechterhalten eines Zählwerts der virtuellen Blöcke; (d) Bereitstellen einer physischen Kapazität des physischen Speicherraums (34) in dem Plattenarray (11); (e) Bestimmen einer zugewiesenen Kapazität, die eine Gesamtanzahl von virtuellen Blöcken darstellt, die derzeit zum Speichern von Daten verwendet werden, auf der Basis des Zählwerts der virtuellen Blöcke; (f) dynamisches Berechnen einer maximal zulässigen Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen als Funktion der physischen Kapazität und der zugewiesenen Kapazität; und Beschränken einer Zuweisung von mehr virtuellen Blöcken in Spiegel-RAID-Bereichen als die berechnete maximal zulässige Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen, um dadurch eine Raumreservierung für eine Datenwanderung zwischen Paritäts- und Spiegel-RAID-Bereichen zu gewährleisten.
  2. Ein Verfahren gemäß Anspruch 1, das ferner die folgenden zusätzlichen Schritte umfasst: Zuweisen der virtuellen Blöcke in dem virtuellen Speicherraum (50) auf Anwendungsebene in Paritäts-RAID-Bereichen zum Speichern von Daten gemäß einer Paritätsredundanz; und Bewegen virtueller Blöcke zwischen einer Spiegel- und einer Paritätsspeicherung unter Verwendung eines reservierten Raums, der durch ein Einschränken einer Zuweisung von virtuellen Blöcken in Spiegel-RAID-Bereichen gewährleistet ist.
  3. Ein Verfahren gemäß Anspruch 1, das ferner den zusätzlichen Schritt des anfänglichen Reservierens einer Menge an physischem Speicherraum, der zu zumindest einem Spiegel-RAID-Bereich äquivalent ist, umfasst.
  4. Ein Verfahren gemäß Anspruch 1, das ferner die folgenden zusätzlichen Schritte umfasst: in dem Fall, dass die Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen geringer ist als die maximal zulässige Anzahl, Speichern von Daten lediglich in den virtuellen Blöcken in Spiegel-RAID-Bereichen; und in dem Fall, dass die Anzahl von virtuellen Blöcken in Spiegel- RAID-Bereichen die maximal zulässige Anzahl überschreitet, Zuweisen der virtuellen Blöcke in dem virtuellen Speicherraum (50) auf Anwendungsebene in Paritäts-RAID-Bereichen zum Speichern von Daten gemäß einer Paritätsredundanz; und Speichern von Daten in virtuellen Blöcken sowohl in den Spiegel- als auch in den Paritäts-RAID-Bereichen.
  5. Ein Verfahren gemäß Anspruch 1, das ferner die folgenden zusätzlichen Schritte umfasst: Zuweisen der virtuellen Blöcke in dem virtuellen Speicherraum (50) auf Anwendungsebene in Paritäts-RAID-Bereichen zum Speichern von Daten gemäß einer Paritätsredundanz; Speichern von Daten in virtuellen Blöcken sowohl in den Spiegel- als auch den Paritäts-RAID-Bereichen; und, während mehr Daten in dem Plattenarray gespeichert werden, so dass die zugewiesene Kapazität die physische Kapazität annähernd erreicht, Bewegen virtueller Blöcke von Spiegel-RAID-Bereichen zu Paritäts-RAID-Bereichen, um einen abnehmenden Anteil von Daten, die in Spiegel-RAID-Bereichen gespeichert sind, hin zu Daten, die in Paritäts-RAID-Bereichen gespeichert sind, zu erzeugen.
  6. Ein Verfahren gemäß Anspruch 5, das ferner den zusätzlichen Schritt des Aufrechterhaltens einer minimalen Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen umfasst.
  7. Ein Verfahren gemäß Anspruch 1, das ferner die folgenden zusätzlichen Schritte umfasst: Vergleichen der zugewiesenen Kapazität mit der physischen Kapazität; und Berechnen der maximal zulässigen Anzahl bei Schritt (f) lediglich in dem Fall, dass die zugewiesene Kapazität größer als oder gleich einer Hälfte der physischen Kapazität ist.
  8. Ein Verfahren gemäß Anspruch 1, das ferner folgenden Schritt umfasst: falls die zugewiesene Kapazität größer als oder gleich einer Hälfte der physischen Kapazität ist, Durchführen der folgenden Schritte: Berechnen einer maximal zulässigen Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen als Funktion der physischen Kapazität und der zugewiesenen Kapazität; und Einschränken der Zuweisung von mehr virtuellen Blöcken in Spiegel-RAID-Bereichen als die berechnete maximal zulässige Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen; Zuweisen der virtuellen Blöcke in dem virtuellen Speicherraum (50) auf Anwendungsebene in Paritäts-RAID-Bereichen zum Speichern von Daten gemäß einer Paritätsredundanz; und Speichern von Daten in virtuellen Blöcken sowohl in den Spiegel- als auch den Paritäts-RAID-Bereichen.
  9. Ein Verfahren gemäß Anspruch 8, bei dem das Abbilden des physischen Speicherraums, das in einen virtuellen Speicherraum (40) auf RAID-Ebene erfolgt, der Spiegel- und Paritäts-RAID-Bereiche aufweist, und bei dem das Abbilden des virtuellen Speicherraums auf RAID-Ebene, das in einen virtuellen Speicherraum (50) auf Anwendungsebene erfolgt, der mehrere virtuelle Blöcke aufweist, die den Spiegel- und Paritäts-RAID-Bereichen zugeordnet sind, virtuelle Speicherräume auf RAID-Ebene und Anwendungsebene ergibt, die jeweilige Kapazitäten aufweisen, die geringer sind als die Kapazität des physischen Speicherraums, um eine Menge an Raum, die nicht für eine Verwendung durch einen Benutzer gedacht ist, logisch zu reservieren.
  10. Ein Verfahren gemäß Anspruch 8, das ferner den zusätzlichen Schritt des Aufrechterhaltens einer minimalen Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen umfasst.
  11. Ein Verfahren gemäß Anspruch 8, bei dem, während mehr Daten in dem Plattenarray (11) gespeichert werden, derart, dass die zugewiesene Kapazität an die physische Kapazität annähernd erreicht, virtuelle Blöcke von Spiegel-RAID-Bereichen zu Paritäts-RAID-Bereichen bewegt werden, um einen abnehmenden Anteil von Daten, die in Spiegel-RAID-Bereichen gespeichert sind, hin zu Daten, die in Paritäts-RAID-Bereichen gespeichert sind, zu erzeugen.
  12. Ein hierarchisches Datenspeichersystem, das folgende Merkmale aufweist: ein Plattenarray (11), das eine Anzahl von Speicherplatten (12) aufweist, die einen physischen Speicherraum (34) definieren; eine Plattenarraysteuerung (40), die mit dem Plattenarray (11) gekoppelt ist, zum Koordinieren eines Datentransfers zu und von den Speicherplatten (12); ein RAID-Verwaltungssystem (16), das wirksam mit der Plattenarraysteuerung (14) gekoppelt ist, zum Abbilden eines virtuellen Speicherraums (40) auf RAID-Ebene in den physischen Speicherraum (34) der Speicherplatten; wobei der virtuelle Speicherraum (40) auf RAID-Ebene mehrere Spiegel- und Paritäts-RAID-Bereiche aufweist; wobei das RAID-Verwaltungssystem (16) virtuelle Blöcke in Spiegel-RAID-Bereichen zum Speichern von Daten gemäß einer Spiegelredundanz und virtuelle Blöcke in Paritäts-RAID-Bereichen zum Speichern von Daten gemäß einer Paritätsredundanz zuweist, wobei das RAID-Verwaltungssystem (16) einen Zählwert der virtuellen Blöcke aufrechterhält; wobei das RAID-Verwaltungssystem (16) konfiguriert ist, um eine maximal zulässige Anzahl von virtuellen Blöcken in den Spiegel-RAID-Bereichen als Funktion der physischen Kapazität und der zugewiesenen Kapazität auf der Basis des Zählwerts von virtuellen Blöcken dynamisch zu berechnen; und wobei das RAID-Verwaltungssystem (16) konfiguriert ist, um eine Zuweisung von mehr virtuellen Blöcken in Spiegel-RAID-Bereichen als die berechnete maximal zulässige Anzahl von virtuellen Blöcken in Spiegel-RAID-Bereichen einzuschränken, um dadurch eine Raumreservierung für eine Datenbewegung zwischen Paritäts- und Spiegel-RAID-Bereichen zu gewährleisten.
  13. Ein hierarchisches Datenspeichersystem gemäß Anspruch 12, bei dem das Plattenarray (11) homogen ist, wobei es aus mehreren Plattenspeichern einer gleichen Größe besteht; und bei dem das RAID-Verwaltungssystem (16) konfiguriert ist, um die maximal zulässige Anzahl von virtuellen Blöcken in den Spiegel-RAID-Bereichen gemäß der folgenden Gleichung
    Figure 00390001
    bei der „n" gleich der Anzahl von Speicherplatten in dem Plattenarray ist, „AllCap" die zugewiesene Kapazität darstellt und „PhyCap" die physische Kapazität des Plattenarrays darstellt, dynamisch zu berechnen.
  14. Ein hierarchisches Datenspeichersystem gemäß Anspruch 12, bei dem das Plattenarray (11) heterogen ist und aus Speicherplatten verschiedener Größen besteht; und bei dem das RAID-Verwaltungssystem (16) konfiguriert ist, um die maximal zulässige Anzahl von virtuellen Blöcken in den Spiegel-RAID-Bereichen gemäß der folgenden Gleichung
    Figure 00400001
    bei der „n" gleich der Anzahl von Speicherplatten in dem Plattenarray ist, „AllCap" die zugewiesene Kapazität darstellt, „PhyCap" die physische Kapazität des Plattenarrays darstellt und i die Anzahl von homogenen Plattenarraydarstellungen ist, die aus dem heterogenen Plattenarray hergestellt werden können, dynamisch zu berechnen.
DE69533575T 1994-12-02 1995-07-11 Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz Expired - Fee Related DE69533575T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US348391 1994-12-02
US08/348,391 US5659704A (en) 1994-12-02 1994-12-02 Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy

Publications (2)

Publication Number Publication Date
DE69533575D1 DE69533575D1 (de) 2004-11-04
DE69533575T2 true DE69533575T2 (de) 2006-01-05

Family

ID=23367837

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533575T Expired - Fee Related DE69533575T2 (de) 1994-12-02 1995-07-11 Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz

Country Status (4)

Country Link
US (1) US5659704A (de)
EP (1) EP0715249B1 (de)
JP (1) JP3753766B2 (de)
DE (1) DE69533575T2 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098128A (en) 1995-09-18 2000-08-01 Cyberstorage Systems Corporation Universal storage management system
US5812398A (en) * 1996-06-10 1998-09-22 Sun Microsystems, Inc. Method and system for escrowed backup of hotelled world wide web sites
US5854942A (en) * 1996-09-06 1998-12-29 International Business Machines Corporation Method and system for automatic storage subsystem configuration
US5875457A (en) * 1996-10-08 1999-02-23 Mylex Corporation Fault-tolerant preservation of data integrity during dynamic raid set expansion
JPH10124325A (ja) * 1996-10-25 1998-05-15 Toshiba Corp 変数の最適配置方法、変数の最適配置装置及び変数の最適配置プログラムを格納したコンピュータ読み取り可能な記録媒体
US5943690A (en) * 1997-04-07 1999-08-24 Sony Corporation Data storage apparatus and method allocating sets of data
US7389312B2 (en) * 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US5960451A (en) * 1997-09-16 1999-09-28 Hewlett-Packard Company System and method for reporting available capacity in a data storage system with variable consumption characteristics
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
JP3505093B2 (ja) * 1998-09-18 2004-03-08 富士通株式会社 ファイル管理システム
US6378038B1 (en) * 1999-03-31 2002-04-23 International Business Machines Corporation Method and system for caching data using raid level selection
US6275898B1 (en) 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
JP2000353054A (ja) * 1999-06-09 2000-12-19 Hitachi Ltd 情報処理装置の制御方法および情報処理装置
US6519679B2 (en) 1999-06-11 2003-02-11 Dell Usa, L.P. Policy based storage configuration
US6842422B1 (en) 1999-06-15 2005-01-11 Marconi Communications, Inc. Data striping based switching system
US6513093B1 (en) 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
US6418512B1 (en) 1999-08-31 2002-07-09 International Business Machines Corporation Method and system for reporting disk utilizations for disk subsystems
US6530004B1 (en) * 2000-06-20 2003-03-04 International Business Machines Corporation Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration
US6829678B1 (en) * 2000-07-18 2004-12-07 International Business Machines Corporation System for determining the order and frequency in which space is allocated on individual storage devices
US6928459B1 (en) 2000-07-18 2005-08-09 International Business Machines Corporation Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US6691136B2 (en) * 2000-09-28 2004-02-10 Fair Issac Corporation Fast data retrieval based upon contiguous consolidation of records according to frequency of access
US6820182B1 (en) * 2000-10-18 2004-11-16 International Business Machines Corporation Support for exhaustion recovery in a data processing system with memory mirroring
US6665743B2 (en) * 2001-04-18 2003-12-16 International Business Machines Corporation Method, system, and program for initializing a storage space
JP2003114817A (ja) * 2001-08-03 2003-04-18 Toshiba Corp 情報記憶媒体及び情報記録方法
US6862691B2 (en) * 2001-09-19 2005-03-01 Hewlett-Packard Development Company, L.P. Redundant component system and method for facilitating endsystem functionality
US6732232B2 (en) 2001-11-26 2004-05-04 International Business Machines Corporation Adaptive resource allocation in multi-drive arrays
US6996672B2 (en) * 2002-03-26 2006-02-07 Hewlett-Packard Development, L.P. System and method for active-active data replication
US6985995B2 (en) * 2002-03-29 2006-01-10 Panasas, Inc. Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US7734867B1 (en) * 2002-05-17 2010-06-08 Hewlett-Packard Development Company, L.P. Data storage using disk drives in accordance with a schedule of operations
US6922752B2 (en) * 2002-08-23 2005-07-26 Hewlett-Packard Development Company, L.P. Storage system using fast storage devices for storing redundant data
JP3788961B2 (ja) * 2002-08-30 2006-06-21 株式会社東芝 ディスクアレイ装置及び同装置におけるレイドレベル変更方法
US7979632B2 (en) * 2002-09-06 2011-07-12 Hewlett-Packard Development Company, L.P. Storage system including a fast storage device for storing redundant data
JP2004192105A (ja) * 2002-12-09 2004-07-08 Hitachi Ltd 記憶装置の接続装置およびそれを含むコンピュータシステム
US9489150B2 (en) 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
US7613945B2 (en) * 2003-08-14 2009-11-03 Compellent Technologies Virtual disk drive system and method
GB0320494D0 (en) * 2003-09-02 2003-10-01 Ibm Methods apparatus and controllers for a raid storage system
US20050086430A1 (en) * 2003-10-17 2005-04-21 International Business Machines Corporation Method, system, and program for designating a storage group preference order
US7290087B2 (en) * 2003-11-26 2007-10-30 International Business Machines Corporation Adaptive grouping in object raid
JP2005228170A (ja) 2004-02-16 2005-08-25 Hitachi Ltd 記憶装置システム
US7249277B2 (en) * 2004-03-11 2007-07-24 Hitachi, Ltd. Disk array including plural exchangeable magnetic disk unit
US7702948B1 (en) * 2004-07-13 2010-04-20 Adaptec, Inc. Auto-configuration of RAID systems
US7243201B2 (en) * 2004-07-22 2007-07-10 International Business Machines Corporation Application-based commit for local storage subsystems and remote storage subsystems
US7454566B1 (en) * 2005-05-02 2008-11-18 Nvidia Corporation System and method for adaptive RAID configuration
US7596657B2 (en) * 2006-01-13 2009-09-29 Paul Kaler Increased storage capacity for solid state disks using data compression
EP2357552A1 (de) 2006-05-24 2011-08-17 Compellent Technologies System und Verfahren für RAID-Management, -Neuzuweisung und -Neumarkierung
US7917713B2 (en) 2006-12-20 2011-03-29 International Business Machines Corporation Optimized data migration with a support processor
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US8209461B2 (en) * 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
JP5117120B2 (ja) * 2007-06-18 2013-01-09 株式会社日立製作所 ストレージ装置のボリュームを管理する計算機システム、方法及びプログラム
US8468292B2 (en) 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
US8627004B2 (en) * 2010-01-07 2014-01-07 International Business Machines Corporation Extent migration for tiered storage architecture
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
US9921752B2 (en) * 2012-05-04 2018-03-20 Netapp, Inc. Systems, methods, and computer program products providing read access in a storage system
US20140181455A1 (en) * 2012-12-20 2014-06-26 Apple Inc. Category based space allocation for multiple storage devices
JP5603972B1 (ja) * 2013-06-03 2014-10-08 日本電信電話株式会社 データ処理装置、データ処理システム及びデータ処理方法
WO2016060675A1 (en) * 2014-10-17 2016-04-21 Hitachi, Ltd. Method and apparatus for managing data recovery of distributed storage system
KR102527992B1 (ko) * 2016-03-14 2023-05-03 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR20180127695A (ko) * 2017-05-22 2018-11-30 삼성전자주식회사 저장 공간 확보를 위한 장치 및 그에 관한 방법
CN109409995A (zh) * 2018-10-15 2019-03-01 郑州云海信息技术有限公司 一种硬盘定制化开发的方法、装置、设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06100981B2 (ja) * 1983-12-28 1994-12-12 株式会社日立製作所 記憶階層制御方式
US5249279A (en) * 1989-11-03 1993-09-28 Compaq Computer Corporation Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands
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
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
DE69131551T2 (de) * 1990-11-09 2000-02-17 Emc Corp Logische Aufteilung eines Speichersystems mit redundanter Matrix
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
US5333315A (en) * 1991-06-27 1994-07-26 Digital Equipment Corporation System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
US5301297A (en) * 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
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
JP3160106B2 (ja) * 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
US5574851A (en) * 1993-04-19 1996-11-12 At&T Global Information Solutions Company Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations
US5598549A (en) * 1993-06-11 1997-01-28 At&T Global Information Solutions Company Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5485571A (en) * 1993-12-23 1996-01-16 International Business Machines Corporation Method and apparatus for providing distributed sparing with uniform workload distribution in failures
US5491810A (en) * 1994-03-01 1996-02-13 International Business Machines Corporation Method and system for automated data storage system space allocation utilizing prioritized data set parameters
US5546558A (en) * 1994-06-07 1996-08-13 Hewlett-Packard Company Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
US5479653A (en) * 1994-07-14 1995-12-26 Dellusa, L.P. Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US5572661A (en) * 1994-10-05 1996-11-05 Hewlett-Packard Company Methods and system for detecting data loss in a hierarchic data storage system

Also Published As

Publication number Publication date
US5659704A (en) 1997-08-19
DE69533575D1 (de) 2004-11-04
EP0715249B1 (de) 2004-09-29
EP0715249A2 (de) 1996-06-05
EP0715249A3 (de) 2000-02-23
JPH08278850A (ja) 1996-10-22
JP3753766B2 (ja) 2006-03-08

Similar Documents

Publication Publication Date Title
DE69533575T2 (de) Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz
DE69534057T2 (de) Verfahren zur Vermeidung der Über-Zuteilung virtueller Kapazität in einem redundanten hierarchischen Datenspeichersystem
DE69532030T2 (de) Speicherplattenanordnung mit Ersatzbetriebsmitteln in Betrieb und Verfahren zur Verwendung von Ersatzbetriebsmitteln zum Speichern von Benutzerdaten
DE69533764T2 (de) Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung
DE69533077T2 (de) Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation
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
DE69533570T2 (de) Verfahren und System zum Erkennen von Datenverlust in einem hierarchischen Datenspeichersystem
DE69738159T2 (de) Anordnung und Verfahren zur Wiederzuteilung von logischen an physikalische Plattengeräte unter Verwendung eines Speichersteuergerätes
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
DE112012000953B4 (de) Dynamisches Beseitigen von Leistungsungleichgewicht zur Laufzeit
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE69833815T2 (de) Verbesserter Disk-Log mit verteiltem Schreibsystem
DE60036539T2 (de) Verwendung von ungenutzter Speicherkapazität bei vernetzten Computern
DE112018005869T5 (de) Strukturanpassung einer namensraumzuordnung in nicht flüchtigen speichervorrichtungen
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers
DE102013215535A1 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee