DE69533764T2 - Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung - Google Patents

Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung Download PDF

Info

Publication number
DE69533764T2
DE69533764T2 DE69533764T DE69533764T DE69533764T2 DE 69533764 T2 DE69533764 T2 DE 69533764T2 DE 69533764 T DE69533764 T DE 69533764T DE 69533764 T DE69533764 T DE 69533764T DE 69533764 T2 DE69533764 T2 DE 69533764T2
Authority
DE
Germany
Prior art keywords
storage
raid
disks
data
disk array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69533764T
Other languages
English (en)
Other versions
DE69533764D1 (de
Inventor
Michael B. Boise Jacobson
Marvin D. Boise 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 DE69533764D1 publication Critical patent/DE69533764D1/de
Application granted granted Critical
Publication of DE69533764T2 publication Critical patent/DE69533764T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Optical Recording Or Reproduction (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich auf Datenspeichersysteme, z. B. hierarchische Plattenarrayspeichersysteme, und auf Verfahren zum Verwenden von Speicherplatten unterschiedlicher Kapazität in einem einzelnen Speichervolumen bei derartigen Systemen.
  • HINTERGRUND DER ERFINDUNG
  • Computersysteme werden in Bezug auf Geschwindigkeit, Zuverlässigkeit und Verarbeitungsfähigkeit ständig verbessert. Folglich sind Computer in der Lage, komplexere und anspruchsvollere Anwendungen zu handhaben. Während jedoch Computer immer besser werden, nehmen auch die Leistungsanforderungen zu, die an Massenspeicher- und Eingabe-/Ausgabevorrichtungen (I-/O-Vorrichtungen) gestellt werden. 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, Daten, die in dem Speichersystem gespeichert sind, wiederzugewinnen, obwohl ein Teil der Daten aufgrund eines Ausfalls oder aus einem anderen Grund unzugänglich wurde, und die Fähig keit, einen fortgesetzten Betrieb im Fall eines derartigen Ausfalls zu gewährleisten. In der Regel wird eine Datenverfügbarkeit durch die Verwendung einer Redundanz geliefert, wobei Daten, oder Beziehungen zwischen Daten, an mehreren Plätzen gespeichert sind.
  • Es gibt zwei übliche Verfahren zum Speichern von redundanten Daten. Gemäß dem ersten bzw. „Spiegel"-Verfahren werden Daten dupliziert und in zwei getrennten Bereichen des Speichersystems gespeichert. Bei einem Plattenarray werden die identischen Daten beispielsweise auf zwei getrennten Platten in dem Plattenarray bereitgestellt. Das Spiegelverfahren weist die Vorteile einer hohen Leistungsfähigkeit und einer hohen Datenverfügbarkeit aufgrund der Duplexspeichertechnik auf. Das Spiegelverfahren ist jedoch auch relativ teuer, da es die Kosten des Speicherns von Daten effektiv verdoppelt.
  • Bei dem zweiten bzw. „Paritäts"-Verfahren wird ein Teil des Speicherbereichs verwendet, um redundante Daten zu speichern, die Größe des redundanten Speicherbereichs ist jedoch geringer als der zum Speichern der ursprünglichen Daten verwendete verbleibende Speicherbereich. Bei einem Plattenarray, das fünf Platten aufweist, könnten beispielsweise vier Platten verwendet werden, um Daten zu speichern, wobei die fünfte Platte für das Speichern von redundanten Daten reserviert ist. Das Paritätsverfahren ist vorteilhaft, da es kostengünstiger ist als das Spiegelverfahren, im Vergleich zu dem Spiegelverfahren weist es jedoch auch geringere Leistungsfähigkeits- und Verfügbarkeitscharakteristika auf.
  • Ein Problem, auf das man beim Entwurf von Plattenarraydatenspeichersystemen stößt, betrifft die Maximierung der Nutzung der Speicherkapazität, die durch die Speicherplatten bereitgestellt wird, während die gewünschte Verfügbarkeit und Zuverlässigkeit der Daten durch Redundanz aufrechterhalten wird. Dieses Problem ist bei „homogenen" Plattenarrays, die Speicherplattenlaufwerksvorrichtungen gleicher Speicherkapazität verwenden, weniger ausgeprägt. Dagegen ist das Problem bei „heterogenen" Plattenarrays, die Speicherplatten unterschiedlicher Speicherkapazität verwenden, sehr deutlich vorhanden. Herkömmliche heterogene Plattenarrays nutzen oft nicht den Anteil der Kapazität auf jeder Speicherplatte, der über die Kapazität der kleinsten Platte in der Konfiguration hinausgeht. Diese Unternutzung führt zu höheren Speicherkosten, was nicht wünschenswert ist.
  • Eine bekannte Lösung besteht darin, die ungleichmäßigen Speicherplatten unterschiedlicher Kapazität dem Hostcomputersystem als mehrere unabhängige Speichervolumina zu präsentieren. Diese Lösung weist den Nachteil einer erhöhten Komplexität und Schwierigkeit bei der Kapazitätsplanung und Datenverwaltung auf.
  • Ein weiteres damit verbundenes Problem betrifft ein Hinzufügen von Speicherplattenlaufwerksvorrichtungen einer größeren Kapazität zu einen bereits vorhandenen Plattenarrayspeichersystem. Die sich entwickelte Technologie verbessert die Speicherkapazität von Plattenlaufwerksvorrichtungen immer weiter, und somit weisen Speicherplatten, die zu einem späteren Zeitpunkt erworben werden, um die Speicherkapazität eines existierenden Plattenarrays zu erhöhen, üblicherweise eine größere Kapazität auf als ältere Platten, die derzeit in dem Plattenarray vorliegen. Ein Hinzufügen dieser neuen, größeren Platten kann ein zuvor homogenes Plattenarray aus dem Gleichgewicht bringen sowie ein bereits heterogenes Plattenarray weiter diversifizieren. Bei herkömmlichen Plattenarrays wird die zusätzliche Speicherkapazität der neuen Platten oft verschwendet, da sie die Kapazität der kleinsten Platte in der Konfiguration übersteigt.
  • Die US-A-5,166,939 beschreibt eine Massenspeichervorrichtung, die aus einer Mehrzahl von physischen Speichervorrichtungen besteht und in der Lage ist, je nach Bedarf so wohl eine hohe Bandbreite und Hybridationsrate bereitzustellen, zusammen mit einer hohen Zuverlässigkeit. Die Vorrichtung ist in eine oder mehrere Redundanzgruppen unterteilt. Jede Redundanzgruppe ist wiederum in eine oder mehrere Datengruppen unterteilt, von denen sich jede eventuell lediglich über eine kleine Anzahl der Laufwerke in der Redundanzgruppe erstreckt, wobei eine hohe Anforderungsrate bereitgestellt wird, oder sich über eine große Anzahl von Laufwerken erstrecken, wobei hohe Bandbreite bereitgestellt wird.
  • 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", beschreibt eine Technik zum Verwenden von von zwei Betätigungsgliedern gemeinsam verwendeten Datendirektzugriffsspeichervorrichtungen in einem Plattenarray, um die Leistungsfähigkeit zu verbessern und gleichzeitig den zusätzlichen Vorteil der Kostenverringerung durch Eliminieren des Erfordernisses einer erweiterten Batteriesicherung bereitzustellen.
  • Die EP 0 584 804 A beschreibt ein redundantes Array von Platten, bei dem die Platten in Bereiche verschiedener Größen unterteilt sind, sodass in einem Bereich einer entsprechenden Größe auf einer einzelnen Platte kleine Datenmengen gespeichert werden können, anstatt dass sie über mehrere Platten verteilt sind. Eine Nutzungsstatustabelle gibt an, welche Bereiche in Gebrauch sind. Prüfinformationen werden lediglich für solche Bereiche erzeugt und gespeichert, die als im Gebrauch befindlich angegeben werden. Wenn die neuen Prüfinformationen erzeugt werden, ist es also möglich, das Ablesen unnötiger alter Daten und alter Prüfinformationen wegzulassen. Wenn eine Platte ausfällt und durch eine Bereitschaftsplatte ersetzt wird, werden lediglich diejenigen Daten rekonstruiert, die sich in Bereichen befinden, die als im Gebrauch empfindlich angegeben werden. Prüfinforma tionen können auf einer Festkörperplatte gespeichert werden.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, für eine verbesserte Nutzung der gesamten Speicherkapazität in einem Plattenarraydatenspeichersystem zu sorgen und dabei die Datenverfügbarkeit aufrechtzuerhalten, ohne darauf zurückzugreifen, mehrere unabhängige Speicherwerte zu definieren.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst.
  • Ferner ermöglicht die vorliegende Erfindung, dass Plattenarrays zusätzliche Speicherplatten einer unterschiedlichen Kapazität beherbergen und ihre gesamte Kapazität nutzen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Diese Erfindung liefert Verfahren zum Verwenden ungleichartiger Speicherplatten unterschiedlicher Kapazitäten in einem heterogenen hierarchischen Plattenarray. Die Erfindung erzielt diese Vollnutzung, ohne die Speicherplatten unterschiedlicher Kapazitäten als getrennte Speichervolumina zu präsentieren, sondern präsentiert die dem Hostcomputer statt dessen als ein einzelnes Volumen.
  • Gemäß einem Verfahren zum Nutzen der Speicherkapazität ist ein heterogenes hierarchisches Plattenarray konfiguriert, um zumindest zwei gleich große Speicherplatten zu umfassen, die auch die größte Kapazität der Speicherplatten in dem Plattenarray aufweisen. Alle Speicherplatten in dem Array werden anschließend zu mehreren Regionen segmentiert. RAID-Bereiche werden aus benachbarten Regionen über die mehreren Platten hinweg gebildet. Die benachbarten Regionen stellen einen physikalischen Speicherraum an denselben physikalischen Adressen auf einzelnen Speicherplatten dar.
  • Die RAID-Bereiche werden in einen virtuellen Speicherraum abgebildet, der eine Ansicht des physikalischen Speicherraums als einzelnes Speichervolumen liefert. Anschließend können Daten in den RAID-Bereichen gemäß ausgewählten RAID-Ebenen (z. B. RAID-Ebene 1 oder RAID-Ebene 5) gespeichert werden, wobei jeder RAID-Bereich einige redundante Daten speichert. Die zwei oder mehreren größten Platten können somit verwendet werden, um Daten gemäß einer Spiegelredundanz (für zwei Platten oder mehrere Platten der größten Kapazität) und/oder Paritätsredundanz (für drei oder mehr Platten der größten Kapazität) in den benachbarten Speicherregionen, die die Platten der nächstgrößten Kapazität überschreiten, zu speichern.
  • 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 eines Speicherraums auf mehreren Speicherplatten und zeigt eine Datenspeicherung gemäß RAID-Ebene 1.
  • 3 ist eine schematische Veranschaulichung eines Speicherraums auf mehreren Speicherplatten und zeigt eine Datenspeicherung gemäß RRID-Ebene 5.
  • 4 ist eine schematische Veranschaulichung einer Speicherabbildungsanordnung dieser Erfindung, bei der zwei virtuelle Speicherplätze auf einen physischen Speicherplatz abgebildet werden.
  • 5 eine schematische Veranschaulichung eines Speicherraums auf mehreren Speicherplatten unterschiedlicher Kapazität, wobei die zwei größten Platten dieselbe Kapazität aufweisen. 5 demonstriert das Verfahren zum Bilden benachbarter Bereiche auf den Speicherplatten, einschließlich der zwei größten Platten, für eine Datenredundanzspeicherung.
  • 6 ein Flussdiagramm, das die Schritte des in 5 demonstrierten Verfahrens zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 zeigt ein Datenspeichersystem 10, das gemäß dieser Erfindung aufgebaut ist. Vorzugsweise ist das Datenspeichersystem 10 ein Plattenarray-Datenspeichersystem, das ein heterogenes hierarchisches Plattenarray 11 umfasst, das eine Mehrzahl von ungleichartigen Speicherplatten 12 unterschiedlicher Speicherkapazitäten aufweist. Das Datenspeichersystem 10 umfasst ferner eine mit dem Plattenarray 11 gekoppelte Plattenarraysteuerung 14 zum Koordinieren eines Datentransfers zu und von den Speicherplatten 12 sowie ein RAID-Verwaltungssystem 16.
  • Für die Zwecke dieser Offenbarung ist eine „Platte" jegliche nicht-flüchtige, direkt zugreifbare, wiederbeschreibbare Massenspeichervorrichtung, die die Fähigkeit aufweist, ihre eigenen Speicherausfälle zu erfassen. Sie umfasst sowohl sich drehende magnetische und optische Platten als auch Festzustandsplatten, oder nicht-flüchtige elektronische Speicherelemente (z. B. PROMs, EPROMs und EEPROMs). Der Begriff „Plattenarray" umfasst eine Sammlung von Platten, die Hardware, die erforderlich ist, um sie mit einem oder mehreren Hostcomputern zu verbinden, und eine Verwaltungssoftware, die verwendet wird, um den Betrieb der physischen Platten zu steuern und sie der Host-Betriebsumgebung als eine oder mehrere virtuelle Platten zu präsentieren. Eine „virtuelle Platte" ist eine abstrakte Entität, die durch die Verwaltungssoftware in dem Plattenarray verwirklicht ist. Die Begriffe „einzelnes Volumen" oder „Volumensatz" bedeuten eine Gruppe physikalischer Speicherplatten, die zusammengehören und als Einheit fungieren.
  • Der Begriff „RAID" (Redundant Array of Independent Plattes, redundantes Array aus unabhängigen Platten) bedeutet ein Plattenarray, bei dem ein Teil der physischen Speicherkapazität verwendet wird, um redundante Informationen über Benutzerdaten, die auf dem Rest der Speicherkapazität gespeichert sind, zu speichern. Die redundanten Informationen ermöglichen eine Regeneration von Benutzerdaten für den Fall, dass eine der zu dem Array gehörenden Platten oder der Zugriffspfad zu derselben ausfällt. Eine ausführlichere Erläuterung von RAID-Systemen findet sich in einem Buch mit dem Titel The RAIDBook: A Source Book for RAID Technology, das am 9. Juni 1993 von RAID Advisory Board, Lino Lakes, Minnesota, veröffentlicht wurde.
  • Die Plattenarraysteuerung 14 ist über einen oder mehrere Schnittstellenbusse 13, beispielsweise eine Kleincomputer-Schnittstelle (SCSI – small computer system interface) mit dem Plattenarray 11 gekoppelt. Das RAID-Verwaltungssystem 16 ist über ein Schnittstellenprotokoll 15 wirksam mit der Plattenarraysteuerung 14 gekoppelt. Ferner ist das Datenspeichersystem 10 über einen I/O-Schnittstellenbus 17 mit einem Hostcomputer (nicht gezeigt) gekoppelt. Das RAID-Verwaltungssystem 16 kann als separate Komponente verkörpert sein oder kann in der Plattenarraysteuerung 14 oder in dem Hostcomputer konfiguriert sein. Das RAID-Verwaltungssystem 16 stellt eine Datenverwaltungseinrichtung zum Steuern von Plattenspeicherungs- und von Zuverlässigkeitsebenen sowie zum Transferieren von Daten zwischen verschiedenen Zuverlässigkeits-Speicherstufen bereit. Diese Zuverlässigkeits-Speicherebenen sind, wie nachfolgend beschrieben wird, vorzugsweise Spiegel- oder Paritäts- Redundanzebenen, können jedoch auch eine Zuverlässigkeits-Speicherebene ohne jegliche Redundanz umfassen.
  • Die Plattenarraysteuerung 14 ist vorzugsweise als duale Steuerung implementiert, die aus der Plattenarraysteuerung A 14a und aus der Plattenarraysteuerung B 14b besteht. Die dualen Steuerungen 14a und 14b verbessern die Zuverlässigkeit, indem sie für den Fall, dass eine Steuerung funktionsuntüchtig wird, eine fortlaufende Sicherung und Redundanz liefern. Die Verfahren dieser Erfindung können jedoch mit einer einzelnen Steuerung oder anderen Steuerungskonfigurationen praktiziert werden.
  • Das hierarchische Plattenarray 11 kann als unterschiedliche Speicherplätze, einschließlich seines physischen Speicherplatzes und eines oder mehrerer virtueller Speicherplätze, charakterisiert werden. Diese verschiedenen Speicheransichten sind durch Abbildungstechniken verbunden. Beispielsweise kann der physische Speicherplatz des Plattenarrays in einen virtuellen Speicherplatz abgebildet werden, der Speicherbereiche gemäß den verschiedenen Datenzuverlässigkeitsebenen darstellt. Manche Bereiche in dem virtuellen Speicherplatz können einer ersten Zuverlässigkeitsspeicherebene zugewiesen sein, beispielsweise Spiegel- oder RAID-Ebene 1, und andere Bereiche können einer zweiten Zuverlässigkeitsspeicherebene zugewiesen sein, beispielsweise Paritäts- oder RAID-Ebene 5. Die verschiedenen Abbildungstechniken und virtuellen Plätze, die RAID-Ebenen betreffen, werden nachfolgend unter Bezugnahme auf 4 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 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 Beispiel eines nicht-flüchtigen RAM (NVRAM) ist ein batteriegepufferter RAM. Ein batteriegepufferter RAM verwendet Energie von einer unabhängigen Batteriequelle, um im Falle eines Verlustes von Leistung an das Speichersystem 10 die Daten über einen bestimmten Zeitraum in dem Speicher beizubehalten. Ein bevorzugter Aufbau ist ein selbstauffrischender batteriegepufferter DRAM (dynamischer RAM).
  • 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 heterogene Plattenarray 11 mehrere ungleichartige Speicherplattenlaufwerksvorrichtungen 12 mit Kapazitäten unterschiedlicher Größen auf. Beispielhafte Größen dieser Speicherplatten sind ein, zwei oder drei Gigabytes, obwohl auch andere Größen geeignet sind. Trotz der unterschiedlichen Kapazität werden die Speicherplatten 12 dem Hostcomputer als einzelner Volumensatz präsentiert, bei dem die mehreren Platten zusammen als eine zusammenhängende Speichereinheit fungieren. Zusätzlich ist das Datenspeichersystem 10 entworfen, um ein „heißes Einstecken" („hot plug") zusätzlicher Platten ähnlicher oder unterschiedlicher Kapazität in vorhandene mechanische Buchten in dem Plattenarray zu ermöglichen, während das Plattenarray in Betrieb ist. Die Speicherplatten können unabhängig voneinander mit mechanischen Buchten, die eine Schnittstellenbildung mit einem SCSI-Bus 13 liefern, verbunden bzw. von denselben getrennt sein. Die Plattenarraysteuerung 14 erkennt Speicherplatten 12 unabhängig davon, in welche Bucht sie eingesteckt sind.
  • Die Speicherplatten 12 in dem Plattenarray 11 kann man sich zu Erläuterungszwecken von Konzept her so vorstellen, dass sie in einer Spiegelgruppe 18 mehrerer Platten 20 und einer Paritätsgruppe 22 mehrerer Platten 24 angeordnet sind. Die Spiegelgruppe 18 stellt eine erste Speicherstelle 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 angesehen. Die RAID-Ebene 1 bzw. Plattenspiegelung bietet die höchste Datenzuverlässigkeit, indem sie insofern einen Eins-zu-Eins-Schutz bietet, als jedes Datenbit dupliziert und in dem Datenspeichersystem gespeichert wird. Die Spiegelredundanz ist durch die drei Paare von Platten 20 in 1 schematisch dargestellt. Ursprüngliche Daten können auf einem ersten Satz von Platten 26 gespeichert werden, während duplikative, redundante Daten auf dem paarigen zweiten Satz von Platten 28 gespeichert werden.
  • 2 veranschaulicht die Speicherung von Daten gemäß der RAID-Ebene 1 noch ausführlicher. Die vertikalen Spalten stellen einzelne Platten dar, von denen Platten 0, 1, 2 und 3 veranschaulicht sind. Der physikalische Speicherraum, der in diesem Plattenarray von vier Platten enthalten ist, kann zu mehreren Streifen konfiguriert sein, wie durch die horizontalen Zeilen dargestellt ist. Ein „Streifen" erstreckt sich über die Speicherplatten und besteht aus zahlreichen, eine gleiche Größe aufweisenden Segmenten eines Speicherraums, 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 Anzahl von Daten, die über die Speicherplatten verteilt sind. 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 Layout des Spiegel-RAID-Bereichs der 2 kann der physikalische Speicherraum der Platten 0, 1, 2, 3 zu mehreren Streifen gleicher Größe 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, z. B. eine Exklusiv-ODER-Funktion, berechnet, die durch das Symbol „⊕" dargestellt wird. Die Paritäten für die ersten vier Streifen (wobei die tiefgestellte Zahl den entsprechenden Streifen darstellt) lauten wie folgt: P0 = Segment 0 ⊕ Segment 1 ⊕ Segment 2 = Platte 0 ⊕ Platte 1 ⊕ Platte 2 P1 = Segment 3 ⊕ Segment 4 ⊕ Segment 5 = Platte 0 ⊕ Platte 1 ⊕ Platte 3 P2 = Segment 6 ⊕ Segment 7 ⊕ Segment 8 = Platte 0 ⊕ Platte 2 ⊕ Platte 3 P3 = Segment 9 ⊕ Segment 10 ⊕ Segment 11 = Platte 1 ⊕ Platte 2 ⊕ Platte 3
  • Eine Paritätsredundanz ermöglicht eine Regeneration von Daten, die auf einer der Platten nicht mehr zur Verfügung stehen. Wenn beispielsweise die Daten in dem Segment 5 nicht mehr zur Verfügung stehen, kann ihr Inhalt aus den Segmenten 3 und 4 und den Paritätsdaten in dem Segment P ermittelt werden. Eine Paritätsspeicherung ist kostengünstiger als eine Spiegelspeicherung, ist jedoch auch weniger zuverlässig und weist eine geringere Leistungsfähigkeit auf.
  • Die Plattenanordnung der 1 ist zu Konzeptionszwecken vorgesehen. In der Praxis weist das Plattenarray 11 einfach eine Mehrzahl von Platten 12 auf, die in der Lage sind, Daten gemäß einer Spiegel- und Paritätsredundanz zu speichern. Aus dem durch alle Platten 12 gelieferten, zur Verfügung stehenden Speicherplatz wird ein Abschnitt dieses Speicherplatzes einer Spiegelredundanz zugewiesen, und ein weiterer Abschnitt wird einer Paritätsredundanz zugewiesen. Vorzugsweise sind die Platten 12 konfiguriert, um mehrere gleich große Speicherregionen (die bei 4 mit dem Bezugszeichen 35 benannt sind) zu enthalten, wobei einzelne Regionen mehrere Segmente aufweisen. Zusätzlich wird dem Benutzer oder Host eine einheitliche Ansicht des gesamten Speicherraums präsentiert, sodass die RAID-Bereiche und Datenredundanzspeichertechniken für den Benutzer oder Host transparent sind. Diese Merkmale werden unter Bezugnahme auf 4 nachstehend ausführlicher erörtert.
  • 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. Nachdem Daten von einem Paritäts-RAID-Bereich zu einem Spiegel-RAID-Bereich bewegt wurden, steht der Raum, den sie einst in dem Paritäts-RAID-Bereich einnahmen, für eine Speicherung anderer Daten zur Verfügung. Das RAID-Verwaltungssystem 16 verschiebt und organisiert die Daten zwischen dem Spiegel- und dem Paritäts-RAID-Bereich gemäß einem definierten Leistungsfähigkeitsprotokoll, und verwaltet die Daten ansonsten auf ebensolche Weise. Der Vorgang des Bewegens von Daten zwischen dem Spiegel- und dem Paritäts-RAID-Bereich wird als „Migration" bezeichnet.
  • Das Datenspeichersystem 10 platziert die kritischeren Daten in die Spiegel-RAID-Bereiche, da dies die höchste Leistungsfähigkeit und Zuverlässigkeit liefert. Die Leistungsfähigkeitsprotokolle, die durch das RAID-Verwaltungssystem 16 implementiert sind, umfassen eine von zwei bevorzugten Migrationsrichtlinien. Gemäß der ersten Migrationsrichtlinie, 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 diejenigen Daten, auf die vor längerer Zeit zugegriffen wurde, in dem Paritäts-RAID-Bereich 22 gespeichert werden. Es können auch andere Leistungsfähigkeitsprotokolle verwendet werden. Idealerweise sind solche Protokolle auf der Basis der spezifischen Computeranwendung und der Erfordernisse des Benutzers definiert.
  • Auf diese Weise „stimmt" das RAID-Verwaltungssystem 16 die Speicherressourcen eines Datenspeichersystems gemäß den Anwendungs- bzw. Benutzeranforderungen effektiv „ab". Bei einer Anwendung, die eine hohe Leistungsfähigkeit und Zuverlässigkeit erfordert, kann das RAID-Verwaltungssystem beispielsweise einen proportional größeren Spiegel-RAID-Bereich erzeugen und definieren, wodurch ein größerer Umfang an physischer Speicherkapazität der Spiegelredundanz gewidmet wird, im Vergleich zu dem Paritäts-RAID-Bereich. Umgekehrt kann das RAID-Verwaltungssystem bei einer Anwendung, bei der die Kosten im Vordergrund stehen und bei der der Leistungsfähigkeit oder Zuverlässigkeit weniger Bedeutung beigemessen wird, einen im Vergleich zu dem Spiegel-RAID-Bereich proportional größeren Paritäts-RAID-Bereich einrichten. Dementsprechend liefert das Datenspeichersystem dieser Erfindung eine maximale Flexibilität und Anpassung.
  • 4 veranschaulicht ein Speicherabbilden des verfügbaren Speicherplatzes des Datenspeichersystems 10 als mehrere Lagen eines abgebildeten virtuellen Speicherplatzes. Jedes vertikal verlängerte Rechteck in dem Diagramm stellt eine Ansicht des physischen Speicherplatzes dar. Bei diesem Diagramm wird auf den physischen Speicherplatz 34 durch zwei virtuelle Speicheransichten 40 und 50 Bezug genommen. Der physische Speicherplatz 34 wird durch vier Platten (z. B. Platten 12 in 1) dargestellt, die durch die Bezugszeichen 0, 1, 2 und 3 benannt sind. Die den Platten zugeordneten vier Rechtecke stellen eine Ansicht des physischen Speicherplatzes dar, bei der die Platten 1, 2 und 3 eine ungefähr gleiche Speicherkapazität aufweisen und die Platte 0 eine etwas geringere Speicherkapazität aufweist. Der Speicherplatz 34 ist in Bereiche A0, A1, A2 usw. unterteilt. Einzelne Bereiche enthalten zahlreiche Streifen, z. B. Streifen O–Q in jedem Bereich A0. Einzelne Bereiche enthalten ferner zahlreiche Regionen 35. Die Regionen 35 bestehen vorzugsweise aus einer ausgewählten Anzahl von eine einheitliche Größe aufweisenden Segmenten auf jeder Speicherplatte, sodass die Regionen über das gesamte Plattenarray eine gleiche Größe aufweisen.
  • Der Speicherplatz der Platten wird in eine virtuelle erste bzw. Zwischenansicht 40 der RAID-Ebene des physischen Speicherplatzes 34 abgebildet. Diese erste virtuelle Ansicht ist vom Konzept her ein Satz von RAID-Bereichen, der, wenn er durch den Benutzer oder das Host-Anwendungsprogramm betrachtet wird, einen großen Speicherplatz darstellt, der den gesamten Speicherplatz auf den Platten 0, 1, 2 und 3 angibt. Dementsprechend ist die Höhe des Rechtecks in den RAID-Bereichen höher als die der Platten gezeigt.
  • Der RAID-Bereich-Speicherplatz 40 ist die Speicheransicht, die den Spiegel- und Paritätsspeicherplatz identifiziert. Beispielsweise kann ein RAID-Bereich 42 einen Spiegel-RAID-Bereich von M Blöcken 43 darstellen, während der RAID-Bereich 44 einen Paritäts-RAID-Bereich von N Blöcken 45 darstellen kann. Diese RAID-Bereiche beziehen sich auf entsprechende physische Bereiche A0, A1, A2 usw. auf dem physischen Speicherplatz 34. Die Spiegel- und Paritäts-RAID-Bereiche können den gesamten Speicherplatz 34 des Plattenarrays einnehmen, müssen aber nicht. Dementsprechend kann während bestimmter Anwendungen ein unbenutzter und unbezeichneter Speicherplatz vorliegen, der keinem bestimmten RAID-Bereich entspricht. Ein solcher Speicherplatz kann jedoch in einen Spiegel- oder Paritäts-RAID-Bereich umgewandelt werden.
  • Der in den RAID-Bereichen verfügbare Speicherplatz wird in eine virtuelle zweite oder vordere Ansicht 50 abgebildet, die eine Speicheransicht ist, dem Benutzer oder dem Host-Anwendungsprogramm präsentiert wird. Bei einer Betrachtung durch den Benutzer oder das Host-Anwendungsprogramm stellt die zweite virtuelle Ansicht 50 auch eine einzige große Speicherkapazität dar, 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 Speicherblöcken 52 und 53, die einzeln als 0, 1, 2, ... J – 1, J, J + 1, ..., L – 1, L, L + 1, ..., usw. bezeichnet werden. Der virtuelle Blockspeicherplatz 50 wird in der durch die RAID-Bereiche 40 dargestellten Ansicht durch eine Tabelle von Bezugnahmen oder Zeigern auf Speicherblöcke dargestellt (wie durch Pfeile 54 dargestellt ist). Es gibt mindestens zwei RAID-Bereiche, auf die von der Virtuelle-Blöcke-Tabelle verwiesen werden kann, so dass sowohl Spiegel- als auch Paritätsspeicherbereiche zur Verfügung stehen. Vorzugsweise ist die Speicherkapazität der RAID-Bereiche 40 in Blöcke derselben Größe wie die der Ansicht des virtuellen Blockes eines Speicherplatzes unterteilt.
  • Das RAID-Verwaltungssystem 16 kann die Konfiguration der RAID-Bereiche dynamisch verändern. Die RAID-Bereiche können je nach den zu einem bestimmten Zeitpunkt herrschenden Datenzuverlässigkeitsanforderungen vergrößert oder verkleinert werden. Folglich befinden sich das Abbilden der RAID- Bereiche in der ersten virtuellen Ansicht 40 auf die Platten und das Abbilden der vorderen virtuellen Ansicht 50 auf die RAID-Ansicht 40 allgemein in einem Veränderungszuständ. 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 21, um die Veränderungen zu reflektieren.
  • Die Migrationsoperation des Datenspeichersystems 10 ist in der gleichzeitig anhängigen U.S.-Patentanmeldung Seriennummer 08/108, 137, die am 19. August 1993 eingereicht und ebenfalls Hewlett-Packard zugewiesen wurde, ausführlicher beschrieben.
  • Die Verfahren zum Maximieren der Nutzung einer Speicherkapazität in einem heterogenen hierarchischen Plattenarray werden nun unter Bezugnahme auf 58 beschrieben.
  • 5 und 6 zeigen ein erstes Verfahren zum vollständigen Ausnutzen einer Speicherkapazität in einem heterogenen Plattenarray. Dieses Verfahren verwendet eine Regel, die besagt, dass zumindest zwei Speicherplatten der größten Kapazität in der Plattenarraykonfiguration vorliegen sollen. Somit besteht der erste Schritt 100 darin, das Plattenarray mit zwei oder mehreren Speicherplatten mit gleicher Kapazität, die die Speicherkapazität der verbleibenden Platten in dem Array übersteigt, zu konfigurieren. Hier ist ein heterogenes Plattenarray von ungleichartigen Platten 0–4 konfiguriert, um zwei große Speicherplatten 1 und 4, die dieselbe Kapazität aufweisen, zu umfassen. Diese Kapazität ist größer als die Speicherkapazitäten der anderen Platten 0, 2 und 3.
  • Bei Schritt 102 werden die Speicherplatten 0–4 zu mehreren Regionen segmentiert, die allgemein durch das Bezugszeichen 35 bezeichnet werden. Die Regionen 35 weisen in den gesamten Plattenarray vorzugsweise eine gleiche Größe auf und bestehen aus einem oder mehreren Segmenten gleicher Größe (siehe 4). Die RAID-Bereiche A0–A4 usw. werden anschließend aus benachbarten Regionen auf mehreren Speicherplatten gebildet (Schritt 104). „Benachbarte Regionen" sind Regionen, die die physikalischen Speicherräume auf unterschiedlichen Platten, die alle dieselbe physikalische Adresse aufweisen, darstellen. Beispielsweise umfassen RAID-Bereiche A3, A4 usw. jeweils eine Region von allen fünf Speicherplatten 0–4 an derselben physikalischen Adresse auf jeder Platte; RAID-Bereich A2 umfasst eine Region von vier Speicherplatten 0, 1, 3 und 4; und RAID-Bereiche A0 und A1 umfassen jeweils eine Region der Platte 1 und 4.
  • Bei Schritt 106 werden die RAID-Bereiche A0–A4 in eine virtuelle Ansicht eines einzelnen Volumens abgebildet, wie oben bei 4 beschrieben wurde. Somit nutzt das Verfahren dieser Erfindung den gesamten Speicherraum in dem heterogenen Plattenarray, ohne das Array dem Hostcomputer gegenüber als unabhängige Volumina charakterisieren zu müssen. Statt dessen kann das gesamte heterogene Array als einzelnes Volumen präsentiert werden. Anschließend werden Daten gemäß ausgewählten RAID-Ebenen, z. B. RAID-Ebene 1 und/oder RAID-Ebene 5, in den benachbarten RAID-Bereichen (wie sie durch die linearen horizontalen Pfeile dargestellt sind) gespeichert (Schritt 108). Jeder RAID-Bereich speichert einige redundante Daten.
  • Dieses Verfahren ist insofern vorteilhaft, als es eine Nutzung des gesamten Speicherraums auf allen Speicherplatten in dem heterogenen Plattenarray eines einzelnen Volumens ermöglicht. Um diesen Punkt zu veranschaulichen, kann der kombinierte Speicherraum der RAID-Bereiche A3, A4 usw. als Satz 0 definiert werden. Der Speicherraum in dem Satz 0 ist äquivalent zu der Menge an Speicherraum, die heterogene Plattenarrays des Standes der Technik zur Verfügung stellten. Bei bekannten Arrays wurde jedoch jede Plattenkapazität, die über die Platte mit der kleinsten Kapazität (d. h. Platte 2) hinausging, nicht genutzt, es sei denn, der Entwurf griff auf den komplexeren Entwurf, zahlreiche Speichervolumina zu präsentieren, zurück.
  • Gemäß den Techniken dieser Erfindung wird jedoch die zusätzliche Kapazität der Platten 0, 1, 3 und 4 genutzt. Der RAID-Bereich A2 umfasst eine Region von den Speicherplatten 0, 1, 3 und 4, wodurch ein zusätzlicher Speicherraum des Satzes 1 definiert wird, der aus vier Platten besteht. Die RAID-Bereiche A0 und A1 umfassen jeweils eine Region von den Platten 1 und 4, wobei dieser summierte Raum Satz 2 eines zusätzlichen Speicherraums definiert. Somit ermöglicht das Verfahren dieser Erfindung eine vollständige Nutzung des gesamten Plattenraums in allen Platten 0–4, wodurch die Speichernutzung gegenüber dem Stand der Technik um den gesamten Raum in den Sätzen 1 und 2 verbessert wird.
  • Es ist anzumerken, dass Daten in den Sätzen 0 und 1 (d. h. RAID-Bereichen A2, A3, A4 usw.) gemäß entweder der RAID-Ebene 1 oder der RAID-Ebene 5 gespeichert werden können. Diese RAID-Bereiche enthalten benachbarte Regionen von drei oder mehr Speicherplatten, wodurch die Paritätsspeicherung möglich wird. Daten werden in dem Satz 2 (d. h. RAID-Bereiche A0–A1) gemäß der RAID-Ebene 1 oder Spiegelredundanz gespeichert. Eine Platte wird verwendet, um die ursprünglichen Daten zu speichern, und die andere Platte wird verwendet, um die redundanten Daten zu speichern. Übrigens kann dieselbe Spiegelredundanz unter Verwendung der RAID-Ebene 5 in dem aus zwei Platten bestehenden Satz bewerkstelligt werden. Eine Platte wird verwendet, um die ursprünglichen Daten zu speichern, die andere Platte wird verwendet, um die Paritätsdaten zu speichern. Die Paritätsdaten erweisen sich als identisch mit den ursprünglichen Daten und spiegeln somit auf effektive Weise die ursprünglichen Daten.
  • Das Verfahren dieser Erfindung nutzt die Speicherkapazität eines heterogenen Plattenarrays vollständig.
  • Das Verfahren dieser Erfindung weist den zusätzlichen Vorteil auf, dass es die Flexibilität und Anpassbarkeit an neuere Platten einer noch größeren Kapazität fördert. Wenn bei einer vorhandenen Plattenarraykonfiguration eine maximale Kapazität erreicht wird, können ohne weiteres eine oder mehrere Speicherplatten einer größeren Kapazität integriert werden, ohne dass man Angst haben müsste, den überschüssigen neuen Raum nicht vollständig zu nutzen. Die hierin beschriebenen Techniken ermöglichen, dass das Plattenarray neu konfiguriert wird, um den gesamten Raum auf allen Speicherplatten in dem Array zu nutzen.
  • Das Verfahren dieser Erfindung ist insofern vorteilhaft, als es eine vollständige Nutzung von Speicherplatten unterschiedlicher Kapazität in einem heterogenen hierarchischen Plattenarray ermöglicht. Die Erfindung erzielt dies, ohne die Speicherplatten als mehrere Speichervolumina zu präsentieren, sondern präsentiert sie dem Hostcomputersystem statt dessen als ein einzelnes Volumen.

Claims (3)

  1. Ein Verfahren zum Verwenden einer Speicherkapazität in einem Datenspeichersystem (10), das ein heterogenes hierarchisches Plattenarray (11) mehrerer Speicherplatten (12) unterschiedlicher Speicherkapazitäten aufweist, wobei die Speicherplatten einen physikalischen Gesamtspeicherraum definieren, wobei das Verfahren folgende Schritte umfasst: (a) Konfigurieren des heterogenen hierarchischen Plattenarrays (11), um zumindest zwei größere Speicherplatten mit derselben Speicherkapazität zu umfassen, wobei die Speicherkapazität der zumindest zwei größeren Speicherplatten größer ist als die Speicherkapazitäten anderer Speicherplatten in dem heterogenen hierarchischen Plattenarray (11); (b) Segmentieren aller Speicherplatten (12) in dem Plattenarray (11) zu mehreren Regionen (35); (c) Bilden von RAID-Bereichen (42, 44) aus benachbarten Regionen auf mehreren Speicherplatten (12), wobei die benachbarten Regionen für jeden RAID-Bereich einen physikalischen Speicherraum an derselben physikalischen Adresse auf einzelnen Speicherplatten darstellen; (d) Abbilden der RAID-Bereiche (42, 44) in einen virtuellen Speicherraum (50), der eine Ansicht des physikalischen Speicherraumes als einzelnes Speichervolumen liefert; und (e) Speichern von Daten in den RAID-Bereichen (42, 44) gemäß ausgewählten RAID-Ebenen, wobei jeder RAID-Bereich einige redundante Daten speichert.
  2. Ein Verfahren gemäß Anspruch 1, bei dem die in einem RAID-Bereich gespeicherten Daten gemäß einer RAID-Ebene gespeichert werden, die aus einer Gruppe ausgewählt ist, die aus einer RAID-Ebene 1 und einer RAID-Ebene 5 besteht.
  3. Ein Verfahren gemäß Anspruch 1, bei dem Daten zu der RAID-Ebene 5 bewegt werden, wenn sich die Speicherkapazität an eine Vollnutzung annähert, so dass ein Anteil von Daten, die gemäß der RAID-Ebene 5 gespeichert sind, in Bezug auf Daten, die gemäß der RAID-Ebene 1 gespeichert sind, zunimmt, um dadurch eine effiziente Speicherraumnutzung zu optimieren.
DE69533764T 1994-06-22 1995-02-23 Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung Expired - Lifetime DE69533764T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26369594A 1994-06-22 1994-06-22
US263695 1994-06-22

Publications (2)

Publication Number Publication Date
DE69533764D1 DE69533764D1 (de) 2004-12-23
DE69533764T2 true DE69533764T2 (de) 2005-12-01

Family

ID=23002874

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533764T Expired - Lifetime DE69533764T2 (de) 1994-06-22 1995-02-23 Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung

Country Status (4)

Country Link
US (1) US5696934A (de)
EP (2) EP1376329A2 (de)
JP (1) JP3792269B2 (de)
DE (1) DE69533764T2 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
JP4044160B2 (ja) * 1995-08-23 2008-02-06 富士通株式会社 ディスクアレイ装置
WO1997011426A1 (en) 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
US5790773A (en) * 1995-12-29 1998-08-04 Symbios, Inc. Method and apparatus for generating snapshot copies for data backup in a raid subsystem
JPH09288547A (ja) * 1996-04-22 1997-11-04 Hitachi Inf Technol:Kk アレイ型記憶装置
DE19650473C1 (de) 1996-12-05 1998-04-02 Henkel Kgaa Kosmetische Zubereitungen
JPH11126137A (ja) * 1997-10-24 1999-05-11 Alps Electric Co Ltd ディスクアレイ装置
US6098119A (en) * 1998-01-21 2000-08-01 Mylex Corporation Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level
US6078990A (en) * 1998-02-06 2000-06-20 Ncr Corporation Volume set configuration using a single operational view
US6654881B2 (en) 1998-06-12 2003-11-25 Microsoft Corporation Logical volume mount manager
JP2000057037A (ja) * 1998-08-05 2000-02-25 Sony Corp 記録装置および記録方法、再生装置および再生方法、並びに記録媒体
JP3505093B2 (ja) 1998-09-18 2004-03-08 富士通株式会社 ファイル管理システム
US6311251B1 (en) 1998-11-23 2001-10-30 Storage Technology Corporation System for optimizing data storage in a RAID system
US6330621B1 (en) 1999-01-15 2001-12-11 Storage Technology Corporation Intelligent data storage manager
JP3454183B2 (ja) * 1999-04-13 2003-10-06 日本電気株式会社 ディスクアレイ装置
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
US6418512B1 (en) 1999-08-31 2002-07-09 International Business Machines Corporation Method and system for reporting disk utilizations for disk subsystems
US6629202B1 (en) 1999-11-29 2003-09-30 Microsoft Corporation Volume stacking model
US6553387B1 (en) 1999-11-29 2003-04-22 Microsoft Corporation Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers
WO2001040925A1 (fr) * 1999-12-02 2001-06-07 Fujitsu Limited Batterie de disques et procede d'extension de sa capacite
US6526478B1 (en) * 2000-02-02 2003-02-25 Lsi Logic Corporation Raid LUN creation using proportional disk mapping
US6487636B1 (en) * 2000-04-24 2002-11-26 Hewlett-Packard Co. Method and apparatus for mapping data in a heterogeneous disk array storage system
US6775790B2 (en) * 2000-06-02 2004-08-10 Hewlett-Packard Development Company, L.P. Distributed fine-grained enhancements for distributed table driven I/O mapping
JP2002099391A (ja) * 2000-09-21 2002-04-05 Toshiba Corp ディスク制御システムおよびディスクアレイ構成方法
US6918006B1 (en) 2000-10-30 2005-07-12 International Business Machines Corporation System and method to coordinate data storage device management operations in a data storage subsystem
US6549978B2 (en) 2001-01-17 2003-04-15 International Business Machines Corporation Method for storage controllers with different data formats to access common storage configuration information
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
US6763409B1 (en) * 2001-01-31 2004-07-13 Hewlett-Packard Development Company, L.P. Switch-on-the-fly GBIC disk channel adapter and disk channel system
US6904540B2 (en) * 2001-10-29 2005-06-07 Hewlett-Packard Development Company, L.P. Targeted data protection
US20030126394A1 (en) * 2001-12-27 2003-07-03 Storage Technology Corporation System and method for remote configuration of data storage space
US7080278B1 (en) * 2002-03-08 2006-07-18 Network Appliance, Inc. Technique for correcting multiple storage device failures in a storage array
US6938123B2 (en) 2002-07-19 2005-08-30 Storage Technology Corporation System and method for raid striping
US6912643B2 (en) * 2002-08-19 2005-06-28 Aristos Logic Corporation Method of flexibly mapping a number of storage elements into a virtual storage element
US7111147B1 (en) * 2003-03-21 2006-09-19 Network Appliance, Inc. Location-independent RAID group virtual block management
US20070033430A1 (en) * 2003-05-05 2007-02-08 Gene Itkis Data storage distribution and retrieval
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
CN101566931B (zh) 2003-08-14 2011-05-18 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
US7225308B2 (en) * 2003-10-30 2007-05-29 International Business Machines Corporation Inexpensive reliable computer storage via hetero-geneous architecture and a staged storage policy
JP2005222404A (ja) * 2004-02-06 2005-08-18 Hitachi Ltd 仮想記憶ユニットを備えた記憶制御サブシステム
GB2418769B (en) * 2004-10-02 2009-06-17 Hewlett Packard Development Co Method and system for storing data
JP4402565B2 (ja) * 2004-10-28 2010-01-20 富士通株式会社 仮想ストレージ管理プログラム、方法及び装置
US7873782B2 (en) 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
CN101872319A (zh) 2004-11-05 2010-10-27 数据机器人技术公司 存储系统条件指示器及其使用方法
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
JP5167243B2 (ja) * 2006-04-04 2013-03-21 パーマビット テクノロジー コーポレイション 拡張性及び耐障害性を有する記憶システムのための記憶領域割当て及び消去符号化技法
EP2357552A1 (de) 2006-05-24 2011-08-17 Compellent Technologies System und Verfahren für RAID-Management, -Neuzuweisung und -Neumarkierung
EP1862905A3 (de) 2006-05-31 2010-07-14 Hitachi, Ltd. Speichersystem mit Flash-Speicher
JP5112003B2 (ja) * 2007-10-19 2013-01-09 株式会社日立製作所 ストレージ装置及びこれを用いたデータ格納方法
US8725966B2 (en) * 2008-07-23 2014-05-13 International Business Machines Corporation Generation and update of storage groups constructed from storage devices distributed in storage subsystems
US8468292B2 (en) 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
US8832370B2 (en) * 2010-02-12 2014-09-09 Netapp, Inc. Redundant array of independent storage
US8843459B1 (en) * 2010-03-09 2014-09-23 Hitachi Data Systems Engineering UK Limited Multi-tiered filesystem
US8984241B2 (en) * 2010-07-07 2015-03-17 Nexenta Systems, Inc. Heterogeneous redundant storage array
US8954669B2 (en) * 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US20120072685A1 (en) * 2010-09-16 2012-03-22 Hitachi, Ltd. Method and apparatus for backup of virtual machine data
US8812566B2 (en) 2011-05-13 2014-08-19 Nexenta Systems, Inc. Scalable storage for virtual machines
EP2933725B1 (de) 2011-09-21 2016-11-23 Nexenta Systems, Inc. Methoden und systeme für heterogene datenvolumen
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
US20140181455A1 (en) * 2012-12-20 2014-06-26 Apple Inc. Category based space allocation for multiple storage devices
JP2014178874A (ja) * 2013-03-14 2014-09-25 Toshiba Corp コンテンツ配信装置、コンテンツ配信サーバ、およびプログラム
KR20140124674A (ko) * 2013-04-17 2014-10-27 한국전자통신연구원 파일 수준의 데이터 분산 저장 방법
US20140317347A1 (en) * 2013-04-22 2014-10-23 HGST Netherlands B.V. System and method for logical removal of physical heads in a hard disk drive (hdd)
US10013359B2 (en) * 2014-12-24 2018-07-03 University Of New Hampshire Redundant disk array storage system and method using heterogeneous disks and a lookup table
US9672107B1 (en) * 2015-02-11 2017-06-06 Western Digital Technologies, Inc. Data protection for a data storage device
US10191673B2 (en) * 2015-12-15 2019-01-29 Spectra Logic Corporation Forming optical disk set of different capacities from factory rejected optical disks
US10579540B2 (en) * 2016-01-29 2020-03-03 Netapp, Inc. Raid data migration through stripe swapping
US11748196B2 (en) 2018-06-29 2023-09-05 International Business Machines Corporation Adaptive parity rotation for redundant arrays of independent disks
US11157361B2 (en) 2018-06-29 2021-10-26 International Business Machines Corporation Efficient utilization of storage space in arrays of storage drives
US10866752B2 (en) 2018-10-17 2020-12-15 International Business Machines Corporation Reclaiming storage space in raids made up of heterogeneous storage drives

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
JPH0776950B2 (ja) * 1990-06-22 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理方法及び装置
EP0485110B1 (de) * 1990-11-09 1999-08-25 Emc Corporation 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
US5490260A (en) * 1990-12-14 1996-02-06 Ceram, Inc. Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size
EP0570516A4 (en) * 1991-02-06 1998-03-11 Storage Technology Corp Disk drive array memory system using nonuniform disk drives
US5278838A (en) * 1991-06-18 1994-01-11 Ibm Corp. Recovery from errors in a redundant array of disk drives
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
US5287462A (en) * 1991-12-20 1994-02-15 Ncr Corporation Bufferless SCSI to SCSI data transfer scheme for disk array applications
US5442752A (en) * 1992-01-24 1995-08-15 International Business Machines Corporation Data storage method for DASD arrays using striping based on file length
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US5423046A (en) * 1992-12-17 1995-06-06 International Business Machines Corporation High capacity data storage system using disk array
JPH06332623A (ja) * 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5432922A (en) * 1993-08-23 1995-07-11 International Business Machines Corporation Digital storage system and method having alternating deferred updating of mirrored storage disks
JP3119978B2 (ja) * 1993-09-22 2000-12-25 株式会社東芝 ファイル記憶装置及びそのファイル管理方法
US5499253A (en) * 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
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

Also Published As

Publication number Publication date
EP0689125B1 (de) 2004-11-17
DE69533764D1 (de) 2004-12-23
US5696934A (en) 1997-12-09
EP0689125A3 (de) 2000-02-23
JP3792269B2 (ja) 2006-07-05
JPH0844503A (ja) 1996-02-16
EP0689125A2 (de) 1995-12-27
EP1376329A2 (de) 2004-01-02

Similar Documents

Publication Publication Date Title
DE69533764T2 (de) Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung
DE69534057T2 (de) Verfahren zur Vermeidung der Über-Zuteilung virtueller Kapazität in einem redundanten hierarchischen Datenspeichersystem
DE69533077T2 (de) Speichersystem mit hierarchischer Speicherplattenanordnung und Abbildungsspeicher zur Dauerspeicherung der virtuellen Abbildungsinformation
DE69534363T2 (de) Verfahren um Festplatten zu einer Festplattenanordnung hinzuzufügen und gleichzeitig die Datenerreichbarkeit zu gewährleisten
DE69533575T2 (de) Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz
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
DE69534527T2 (de) Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem
DE69738159T2 (de) Anordnung und Verfahren zur Wiederzuteilung von logischen an physikalische Plattengeräte unter Verwendung eines Speichersteuergerätes
DE69533570T2 (de) Verfahren und System zum Erkennen von Datenverlust in einem hierarchischen Datenspeichersystem
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE60036539T2 (de) Verwendung von ungenutzter Speicherkapazität bei vernetzten Computern
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems
DE19723909B4 (de) Verfahren zum Verbessern der Fehlerfestigkeit und Leistungsfähigkeit eines RAID-Untersystems
DE69632219T2 (de) Speicherplattenanordnungssystem
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE4143072C2 (de) Blockweise löschbarer nicht-flüchtiger Halbleiterspeicher
DE60304194T2 (de) Verfahren und vorrichtung zur tolerierung von mehreren abhängigen oder zwei beliebigen fehlern in einer speicherplattenanordnung
DE102004039384B4 (de) Logisch partitionierbarer Speicher und System mit einem solchen Speicher
DE112013006504B4 (de) Speichersystem und Datenverwaltungsverfahren
DE19983218B4 (de) Verfahren zum Codieren von Datensignalen zur Speicherung
DE69534994T2 (de) Steuerungsvorrichtung für speicherplattenanordnung und speicherplattenanordnungsgerät
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene

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