DE69131551T2 - Logische Aufteilung eines Speichersystems mit redundanter Matrix - Google Patents

Logische Aufteilung eines Speichersystems mit redundanter Matrix

Info

Publication number
DE69131551T2
DE69131551T2 DE69131551T DE69131551T DE69131551T2 DE 69131551 T2 DE69131551 T2 DE 69131551T2 DE 69131551 T DE69131551 T DE 69131551T DE 69131551 T DE69131551 T DE 69131551T DE 69131551 T2 DE69131551 T2 DE 69131551T2
Authority
DE
Germany
Prior art keywords
logical
redundancy
blocks
storage units
storage unit
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
DE69131551T
Other languages
English (en)
Other versions
DE69131551D1 (de
Inventor
David Charles Stallmo
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.)
EMC Corp
Original Assignee
EMC Corp
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 EMC Corp filed Critical EMC Corp
Application granted granted Critical
Publication of DE69131551D1 publication Critical patent/DE69131551D1/de
Publication of DE69131551T2 publication Critical patent/DE69131551T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/103Hybrid, i.e. RAID systems with parity comprising a mix of RAID types

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)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Diese Erfindung betrifft eine Computersystem-Datenspeicherung und insbesondere ein redundantes Array-Speichersystem, das als RAID-System Stufe 1, 3, 4 oder 5 oder als irgendeine Kombination dieser Konfigurationen konfiguriert sein kann.
  • 2. Beschreibung von verwandter Technik
  • Ein typisches Datenverarbeitungssystem umfaßt im allgemeinen eine oder mehrere Speichereinheiten, die mit einer Zentralprozessoreinheit (CPU = Central Processor Unit) entweder direkt oder durch eine Steuereinheit und einen Kanal verbunden sind. Die Funktion der Steuereinheiten besteht darin, Daten und Programme zu speichern, welche die CPU bei der Durchführung bestimmter Datenverarbeitungsaufgaben benutzt.
  • In herkömmlichen Datenverarbeitungssystemen werden unterschiedliche Typen von Speichereinheiten verwendet. Ein typisches System kann eine oder mehrere Bandeinheiten und/oder Disk- bzw. Platten- bzw. Diskettenlaufwerke (magnetische, optische oder Halbleiter) mit großer Kapazität umfassen, die zur Datenspeicherung mit dem System über jeweilige Steuereinheiten verbunden sind.
  • Ein Problem tritt jedoch auf, falls eine der Speichereinheiten mit großer Kapazität ausfällt, so daß die darin enthaltene Information nicht länger für das System verfügbar ist. Im allgemeinen wird ein derartiger Ausfall das gesamte Computersystem außer Betrieb setzen.
  • Im Stand der Technik wurden mehrere Wege zur Lösung des Problems, eine zuverlässige Datenspeicherung vorzusehen, vorge schlagen. In Systemen, in denen die Datensätze relativ klein sind, können Fehlerkorrekturcodes verwendet werden, die ECC- Syndrom-Bits erzeugen, die an jeden Datensatz innerhalb einer Speichereinheit angefügt werden. Mit Hilfe solcher Codes kann eine kleine Datenmenge korrigiert werden, die möglicherweise fehlerhaft gelesen wird. Derartige Codes sind jedoch im allgemeinen nicht für die Korrektur oder Wiederherstellung langer Datensätze, welche fehlerhaft sind, geeignet und schaffen überhaupt keine Abhilfe, wenn eine gesamte Speichereinheit ausfällt. Es besteht daher ein Bedarf, Datenzuverlässigkeit von außen für einzelne Speichereinheiten vorzusehen.
  • Es wird sich auf die WO89/10594 bezogen, die ein Dateisystem beschreibt, das für die Optimierung der Anwendung einer Vielzahl an Zugriffspfaden und verfügbarer Speicher-Hardware anpaßbar ist, um Betriebsanforderungen des Systems zu genügen. Ein zweistufiges Datenverwaltungssystem wird eingesetzt, das eine erste Stufe aufweist, die mit der Dateibenutzerschnittstelle für die temporäre Speicherung von Daten gekoppelt ist, auf die von mehreren Anwendern zugegriffen werden kann, und die Anfragen für Transaktionen mit dem externen Speicher erzeugt. Eine zweite Stufe ist mit der ersten Stufe und dem externen Speicher in Antwort auf die Anfrage auf Dateiübertragungen mit dar externen Speicherung gekoppelt, um die Dateiübertragungen für die Speicherung von Daten in dem externen Speicher und die Wiedergewinnung von Daten von dem externen Speicher zu verwalten.
  • Andere Ansätze für eine derartige "externe" Zuverlässigkeit sind im Stand der Technik beschrieben worden. Eine Forschungsgruppe an der Universität von Kalifornien, Berkeley, hat in einer Veröffentlichung mit dem Titel "A Case for Redundant Arrays of inexpensive Disks (RAID)", Patterson, et al., Proc. ACM; SIGMOD, Juni 1988 eine Anzahl unterschiedlicher Ansätze zum Vorsehen einer derartigen Zuverlässigkeit bei Verwendung von Platten- oder Diskettenlaufwerken als Speichereinheiten katalogisiert. Arrays von Diskettenlauf werken sind in einer von fünf Architekturen unter dem Akronym "RATD" (für Redundant Arrays of Inexpensive Disks = redundante Arrays kostengünstiger Disks) charakterisiert.
  • Eine RAID-Architektur Stufe 1 umfaßt die Bereitstellung eines Duplikatsatzes an "Spiegel"-Speichereinheiten und das Behalten einer Duplikatkopie von allen Daten auf jedem Speichereinheitenpaar. Während eine solche Lösung das Problem der Zuverlässigkeit löst, verdoppelt sie die Kosten für die Speicherung. Es gibt eine Anzahl von Implementierungen der RAID-Architektur Stufe 1, insbesondere von der Tandem Corporation.
  • Eine RAID-Architektur Stufe 2 speichert jedes Bit jedes Datenworts, zuzüglich Fehler-Erkennungs- und Fehler-Korrektur- (EDC = Error Detection and Correction)-Bits für jedes Wort auf gesonderten Disklaufwerken (dies ist auch als "bit stripping" bekannt). Beispielsweise offenbart das US-Patent Nr. 4,722,085 von Flora et al. einen Disklaufwerkspeicher, welcher eine Vielzahl vergleichweise kleiner, unabhängig arbeitender Disk-Subsysteme verwendet, um als großes "Disklaufwerk" mit hoher Kapazität mit einer ungewöhnlich hohen Fehlertoleranz und einer sehr hohen Datenübertragungbandbreite zu funktionieren. Eine Datenorganisationsvorrichtung fügt sieben EDC-Bits (die unter Verwendung des bekannten Hamming-Codes bestimmt werden) zu jedem 32-Bit-Datenwort, um eine Fehlerdetektions- und Fehlerkorrekturfähigkeit zu schaffen. Das resultierende 39-Bit-Wort wird auf 39 Disklaufwerke geschrieben, ein Bit pro Disklaufwerk. Wenn eines der 39 Disklaufwerke ausfällt, können die verbleibenden 38 Bits jedes gespeicherten 39-Bit-Worts dazu verwendet werden, jedes 32-Bit-Wort auf einer Wort-zu-Wort-Basis zu rekonstruieren, während die Datenworte jeweils von den Disklaufwerken gelesen werden, wodurch eine Ausfalltoleranz erhalten wird.
  • Ein offensichtlicher Nachteil eines derartigen Systems ist die große Anzahl Disklaufwerke, welche für ein Minimalsystem erforderlich sind (da die meisten großen Computer ein 32- Bit-Wort verwenden). Hinzu kommt der vergleichsweise große Anteil von Laufwerken, die für die Speicherung der EDC-Bits erforderlich sind (7 von 39 Laufwerken). Eine weitere Beschränkung eines RAID-Disklaufwerk-Speichersystems der Stufe 2 liegt darin, daß die einzelnen Diskaktuatoren zum Schreiben jedes Datenblocks, dessen Bits über sämtliche der Disklaufwerke verteilt werden, unisono betrieben werden. Diese Anordnung hat eine hohe Datenübertragungsbandbreite, da jede einzelne Disk einen Teil eines Datenblocks überträgt. Der Gesamteffekt besteht darin, daß der gesamte Block dem Computersystem viel schneller zur Verfügung steht, als wenn ein einzelnes Laufwerk auf den Block zugreifen würde. Dies ist vorteilhaft für große Datenblöcke. Diese Anordnung stellt jedoch auch effektiv einen einzigen Lese/Schreibkopfaktuator für die gesamte Speichereinheit bereit. Dies wirkt sich ungünstig auf die Fähigkeit des wahlfreien Zugriffs auf den Disk-Array aus, wenn die Datendateien klein sind, da zu einem Zeitpunkt jeweils nur auf eine Datendatei von einem "einzigen" Aktuator zugegriffen werden kann. Infolgedessen werden RAID-Systeme der Stufe 2 im allgemeinen als ungeeignet für Computersysteme angesehen, die für On-Line- Dialogverarbeitung (OLTP = On-Line Transaction Processing) ausgebildet sind, wie bei Bank-, Finanz- und Reservierungssystemen, bei denen eine große Anzahl wahlfreier Zugriffe auf viele kleine Datendateien die Masse der Datenspeicher- und -übertragungsoperationen ausmacht.
  • Eine RAID-Architektur der Stufe 3 beruht auf dem Konzept, daß jede Disklaufwerkspeichereinheit über interne Mittel zur Erkennung eines Ausfalls oder eines Datenfehlers verfügt. Daher ist es nicht notwendig, zusätzliche Information zur Erkennung des Ortes eines Fehlers zu speichern; es kann daher eine einfachere Form einer paritätsbasierenden Fehlerkorrektur verwendet werden. Bei diesem Ansatz werden die Inhalte aller Speichereinheiten, die ausfallen können, einer "Exklusiv-Oder-Verknüpfung" (XOR) unterzogen, um Paritätsinformation zu erzeugen. Die resultierende Paritätsinformation wird in einer einzelnen, redundanten Speichereinheit gespei chert. Wenn eine Speichereinheit ausfällt, können die Daten auf dieser Einheit auf eine Ersatzspeichereinheit rekonstruiert werden, indem die Daten von den verbleibenden Speichereinheiten mit der Paritätsinformation exklusiv-oder verknüpft werden. Eine solche Anordnung besitzt gegenüber der RAID-Architektur der Stufe 1 mit gespiegelter Disk den Vorteil, daß lediglich eine zusätzliche Speichereinheit für "N" Speichereinheiten erforderlich ist. Ein weiterer Aspekt der RAID-Architektur der Stufe 3 besteht darin, daß die Disklaufwerke in einer gekoppelten Weise betrieben werden, ähnlich einem RAID-System der Stufe 2, und ein einziges Disklaufwerk als die Paritätseinheit bestimmt ist.
  • Eine Implementierung einer RAID-Architektur der Stufe 3 ist das Array an Parallellaufwerken der Micropolis Corporation, Modell 1804 SCSI, welches vier parallele, synchronisierte Disklaufwerke und ein redundantes Paritätslaufwerk verwendet. Der Ausfall eines der vier Daten-Disklaufwerke kann durch Verwendung der auf dem Paritäts-Disklaufwerk gespeicherten Paritätsbits behoben werden. Ein anderes Beispiel eines RAID-Systems der Stufe 3 ist in dem US-Patent Nr. 4,092,732 von Ouchi beschrieben.
  • Ein RAID-Disklaufwerkspeichersystem der Stufe 3 besitzt ein weitaus geringeres Verhältnis von Redundanzeinheiten zu Dateneinheiten als ein RAID-System der Stufe 2. Ein RAID- System der Stufe 3 besitzt jedoch die selbe Leistungsbeschränkung wie ein RAID-System der Stufe 2, und zwar daß die einzelnen Disk-Aktuatoren gekoppelt sind und unisono betrieben werden. Dies wirkt sich ungünstig auf die Leistungsfähigkeit des wahlfreien Zugriffs des Disk-Arrays aus, wenn die Datendateien klein sind, da zu einem Zeitpunkt von dem "einzigen" Aktuator nur auf eine Datendatei zugegriffen werden kann. Somit werden RAID-Systeme der Stufe 3 im allgemeinen als ungeeignet für Computersysteme angesehen, welche für OLTP-Zwecke konzipiert sind.
  • Eine RAID-Architektur der Stufe 4 verwendet das gleiche Paritätsfehlerkorrekturkonzept der RAID-Architektur der Stufe 3, verbessert aber die Leistungsfähigkeit des RAID-Systems der Stufe 3 hinsichtlich des wahlfreien Lesens kleiner Dateien, indem der Betrieb der einzelnen Disklaufwerk- Aktuatoren "entkoppelt" wird und eine größere Mindestmenge an Daten (typischerweise ein Disksektor) auf jede Disk geschrieben und von ihr gelesen wird (dies ist ebenfalls als "block stripping" bekannt). Ein weiterer Aspekt der RAID- Architektur der Stufe 4 besteht darin, daß eine einzige Speichereinheit als die Paritätseinheit bestimmt ist.
  • Eine Beschränkung eines RAID-Systems der Stufe 4 besteht darin, daß das Schreiben eins Datenblocks auf eine beliebige der unabhängig arbeitenden Speichereinheiten auch das Schreiben eines neuen Paritätsblocks auf die Paritätseinheit erfordert. Die auf der Paritätseinheit gespeicherte Paritätsinformation muß gelesen und mit den alten Daten exklusiv- oder verknüpft werden (um den Informationsinhalt der alten Daten zu "entfernen"). Dann muß die resultierende Summe mit den neuen Daten exklusiv-oder verknüpft werden (um eine neue Paritätsinformation zu schaffen). Sowohl die Daten- als auch die Paritätseinträge müssen dann wieder auf die Disklaufwerke geschrieben werden. Dieser Vorgang wird üblicherweise als "Lese-Modifiziere-Schreibe"-Sequenz ("Read-Modify-Write") bezeichnet.
  • Aus diesem Grund kommt es jedesmal zu einer Lese- und einer Schreiboperation auf die einzige Paritätseinheit, wenn ein Datensatz auf irgendeiner der von dem Paritätsdatensatz auf der Paritätseinheit erfaßten Datenspeichereinheiten geändert wird. Die Paritätseinheit wird zu einem Flaschenhals für Datenschreiboperationen, da die Anzahl der pro Zeiteinheit ausführbaren Datensatzänderungen eine Funktion der Zugriffsrate der Paritätseinheit ist, im Gegensatz zu der schnelleren Zugriffsrate, die durch die parallele Arbeitsweise der mehreren Datenspeichereinheiten erzielt wird. Wegen dieser Beschränkung wird ein RAID-System der Stufe 4 im allgemeinen als ungeeignet für Computersysteme angesehen, welche für OLTP-Zwecke ausgebildet sind. In der Tat scheint es, daß ein RAID-System der Stufe 4 noch nicht für irgendeinen wirtschaftlichen Zweck implementiert worden ist.
  • Eine RAID-Architektur der Stufe 5 verwendet das selbe Paritätsfehlerkorrekturkonzept wie die RAID-Architektur der Stufe 4 und unabhängige Aktuatoren, verbessert aber die Schreibleistung eines RAID-Systems der Stufe 4, indem die Daten- und Paritätsinformation über sämtliche der zur Verfügung stehenden Disklaufwerke verteilt wird. Typischerweise werden "N + 1" Speichereinheiten in einem Satz (auch bekannt als "Redundanzgruppe") in eine Vielzahl gleich großer Adressbereiche unterteilt, die als Blöcke bezeichnet werden. Jede Speichereinheit enthält im allgemeinen die gleiche Anzahl an Blöcken. Blöcke aus jeder Speichereinheit in einer Redundanzgruppe, welche die gleichen Einheitsadressbereiche haben, werden als "Streifen" bezeichnet. Jeder Streifen hat N Datenblöcke zuzüglich eines Paritätsblockes auf einer Speichereinheit, der eine Parität für den Rest des Streifens enthält. Weitere Streifen besitzen jeweils einen Paritätsblock, wobei die Paritätsblöcke auf unterschiedliche Speichereinheiten verteilt sind. Die mit jeder Veränderung von Daten in einer Redundanzgruppe verbundene Aktivität der Paritätsaktualisierung ist daher über die verschiedenen Speichereinheiten verteilt. Es ist also keine einzige Einheit mit der gesamten Aktivität der Paritätsaktualisierung belastet.
  • Beispielsweise kann in einem RAID-System der Stufe 5, das fünf Disklaufwerke umfaßt, die Paritätsinformation für den ersten Blockstreifen auf das fünfte Laufwerk geschrieben werden; die Paritätsinformation für den zweiten Blockstreifen kann auf das vierte Laufwerk geschrieben werden; die Paritätsinformation für den dritten Blockstreifen kann auf das dritte Laufwerk geschrieben werden; etc. Der Paritätsblock für aufeinanderfolgende Streifen "präzediert" typischerweise um die Disklaufwerke in einem spiralförmigen Muster (obwohl andere Muster verwendet werden können).
  • Somit wird nicht ein einzelnes Disklaufwerk zum Speichern der Paritätsinformation verwendet und der Flaschenhals der RAID-Architektur der Stufe 4 ist ausgeräumt. Ein Beispiel für ein RAID-System der Stufe 5 ist in dem US-Patent Nr. 4,761,785 von Clark et al. beschrieben.
  • Wie in einem RAID-System der Stufe 4, besteht eine Beschränkung eines RAID-Systems der Stufe 5 darin, daß eine Änderung in einem Datenblock eine Lese-Modifiziere-Schreib-Sequenz erfordert, welche zwei Lese- und zwei Schreiboperationen umfaßt: der alte Paritätsblock und der alte Datenblock müssen gelesen und exklusiv-oder verknüpft werden, und dann muß die resultierende Summe mit den neuen Daten exklusiv-oder verknüpft werden. Sowohl der Daten- als auch der Paritätsblock müssen dann wieder auf die Disklaufwerke geschrieben werden. Während die beiden Leseoperationen sowie die beiden Schreiboperationen parallel ausgeführt werden können, dauert die Modifikation eines Datenblockes in einem RAID-System der Stufe 4 oder in einem RAID-System der Stufe 5 immer noch erheblich länger als die gleiche Operation auf einer herkömmlichen Disk. Eine herkömmliche Disk erfordert keine vorbereitende Leseoperation und muß infolgedessen nicht darauf warten, daß sich die Disklaufwerke zurück zu der vorhergehenden Position drehen, um die Schreiboperation auszuführen. Allein die Drehwartezeit kann bis zu ungefähr 50% der für eine typische Datenmodifikationsoperation erforderlichen Zeit ausmachen. Ferner sind zwei Diskspeichereinheiten für die Dauer jeder Datenmodifikationsoperation beteiligt, was den Durchsatz des Systems als ganzes begrenzt. Trotz der reduzierten Schreibleistung haben sich RAID-Systeme der Stufe 5 zunehmend durchgesetzt, da sie eine hohe Datenzuverlässigkeit bei geringen Redundanz-Zusatzkosten, eine gute Leseleistung und eine brauchbare Schreibleistung zur Verfügung stellen.
  • Obwohl bis dato verschiedene RAID-Systeme entwickelt worden sind, sind solche Systeme äußerst unflexibel darin, daß lediglich ein Typ redundanter Konfiguration in jedem Entwurf implementiert ist. Einer der Gründe für diese Inflexibilität ist, daß bei dem Systemtyp, dem die Verfahren und Vorrichtungen angehören, eine Datenspeicher-Systemsteuerung die Redundanzkonfiguration des Speichersystems steuert, im Gegensatz zu z. B. früheren Speichersystemen, die von der CPU oder dem Rechner-Computer konfiguriert und betrieben werden, was eine größere Flexibilität ermöglicht. Daher sind z. B. redundante Array-Speichersysteme des Typs, dem die Erfindung angehört, im allgemeinen lediglich als RAID-System der Stufe 3 oder nur als RAID-System der Stufe 5 entwickelt worden. Wenn die Hauptanwendung des redundanten Array-Speichersystems im Voraus bekannt ist, führt diese Starrheit im Entwurf zu keinem Problem. Die Anwendungen eines Speichersystems können sich jedoch während der Zeit ändern. In der Tat kann ein Anwender verschiedene Typen von RAID-Systemen gleichzeitig benötigen, jedoch keine Resourcen für den Erwerb mehrerer Speichersysteme haben, um diesen Anforderungen zu genügen. Ebenso wichtig ist, daß verschiedene Anwender unterschiedliche Bedürfnisse haben; das Entwickeln redundanter Array-Speichersysteme mit unterschiedlichen RAID- Konfigurationen zum Befriedigen solcher auseinanderlaufender Bedürfnisse ist teuer.
  • Es wäre daher höchst wünschenswert, ein Speichersystem mit einer flexiblen RAID-Architektur zu haben, in dem die grundsätzliche Redundanzkonfiguration geändert werden könnte, und zwar für jeden Anwender oder wenn sich die Anforderungen eines Anwenders ändern. Es wäre ebenfalls wünschenswert, ein Speichersystem mit einer flexiblen RAID-Architektur zu haben, in dem verschiedene Redundanzkonfigurationstypen simultan implementiert werden können.
  • Die vorliegende Erfindung stellt solch ein System zur Verfügung.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein Verfahren zum Adressieren eines redundanten Array-Speichersystems geschaffen, das einen Array-Controller in operativer Verbindung mit einer CPU und eine Vielzahl physikalischer Datenspeichereinheiten umfaßt, die mit dem Array-Controller über entsprechende Eingabe/Ausgabekanäle gekoppelt sind, wobei jede physikalische Datenspeichereinheit eine Vielzahl adressierbarer Blöcke umfaßt, und das Verfahren folgendes umfaßt: Übertragen von Speicherzugriffsanfragen von der CPU an den Array-Controller; und Übersetzen jeder Speicherzugriffsanfrage in eine Adresse für die physikalischen Datenspeichereinheiten entsprechend einer ersten logischen Adressierungsebene, um einen Satz adressierbarer Blöcke in Antwort auf jede Speicherzugriffsanfrage zu adressieren; wobei die adressierbaren Blöcke in Redundanzsätze organisiert sind, mit wenigstens einem adressierbaren Block in einem Redundanzsatz, der Redundanzinformation für übrige Blöcke in dem Redundanzsatz enthält; dadurch gekennzeichnet, daß:
  • i) die Speicherzugriffsanfragen von der CPU entsprechend einer zweiten logischen Adressierungsebene ausgegeben werden, wobei jede Speicherzugriffsanfrage eine Nummer eines logischen Datenträgers, eine Nummer eines Anfangsblocks und die Anzahl zu übertragender Blöcke angibt;
  • ii) der Array-Controller die Übersetzung unter Verwendung einer Datenstruktur durchführt, die jeden logischen Datenträger als eine oder mehrere logische Speichereinheiten definiert, wobei jede logische Speichereinheit eine Anzahl adressierbarer Blöcke umfaßt und alle logischen Speichereinheiten in einem logischen Datenträger die selbe Anzahl adressierbarer Blöcke umfassen, jeder logische Datenträger eine unabhängig definierbare Tiefencharakteristik hat, die in der Anzahl adressierbarer Blöcke ausgedrückt ist, auf die nacheinander in einer einzelnen logischen Speichereinheit zugegriffen wird, bevor auf die nächste logische Speichereinheit in dem logischen Datenträger zugegriffen wird, wobei jede Speicherzugriffsanfrage auf eine oder mehrere logische Speichereinheiten abgebildet wird;
  • iii) jeder adressierbare Block innerhalb einer logischen Speichereinheit durch eine Kanalnummer, Speichereinheitsnummer, Startblocknummer und Offsetnummer adressiert wird;
  • iv) Redundanzgruppen definiert werden, von denen wenigstens eine mehr als einen logischen Datenträger mit einer unabhängig definierbaren Tiefencharakteristik umfaßt, wobei jede Redundanzgruppe einen konfigurierbaren Redundanzgrad hat; und
  • v) die Blöcke der Redundanzsätze über eine Redundanzgruppe über die Grenzen des logischen Datenträgers hinweg verteilt sind.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein redundantes Array-Speichersystem geschaffen, welches folgendes umfaßt: einen Array-Controller; eine Vielzahl physikalischer Datenspeichereinheiten, die mit dem Array- Controller über jeweilige Eingabe/Ausgabekanäle gekoppelt sind, wobei jede physikalische Datenspeichereinheit eine Vielzahl adressierbarer Blöcke umfaßt; wobei der Array- Controller folgendes umfaßt: eine Verbindung zu einem CPU- Bus zum Empfangen von Speicherzugriffsanfragen von der CPU, wobei der Array-Controller unabhängig von der CPU arbeitet, um die physikalische Datenspeichereinheiten zu steuern; und Mittel zum Adressieren der physikalischen Datenspeichereinheiten entsprechend einer ersten logischen Adressierungsebene, um einen Satz der adressierbaren Blöcke in Antwort auf jede Speicherzugriffsanfrage zu adressieren; wobei die adressierbaren Blöcke in Redundanzsätze organisiert sind, mit wenigstens einem adressierbaren Block in einem Redundanzsatz, der Redundanzinformation für übrige Blöcke in dem Satz enthält; dadurch gekennzeichnet, daß:
  • i) die erste logische Adressierungsebene die Bestimmung einer Kanalnummer, Speichereinheitsnummer, Startblocknummer und Offsetnummer für die adressierbaren Blöcke einschließt;
  • ii) die Speicherzugriffsanfragen von der CPU entsprechend einer zweiten logischen Adressierungsebene ausgegeben werden, wobei jede Speicherzugriffsanfrage wenigstens eine Nummer eines logischen Datenträgers, eine Nummer eines Anfangsblocks und eine Anzahl an Blöcken angibt, auf die zugegriffen werden soll;
  • iii) der Array-Controller eine Datenstruktur hält, welche jeden logischen Datenträger als eine oder mehrere logische Speichereinheiten definiert, wobei jede logische Speichereinheit eine Anzahl adressierbarer Blöcke umfaßt und alle logischen Speichereinheiten in einem logischen Datenträger die gleiche Anzahl adressierbarer Blöcke umfassen, und jeder logische Datenträger eine unabhängig definierbare Tiefencharakteristik hat, die in der Anzahl adressierbarer Blöcke ausgedrückt ist, auf die nacheinander in einer einzelnen logischen Speichereinheit zugegriffen wird, bevor auf die nächste logische Speichereinheit in dem logischen Datenträger zugegriffen wird, wobei jede Speicherzugriffsanfrage auf eine oder mehrere logische Speichereinheiten abgebildet wird; und
  • iv) die Datenstruktur konfigurierbar ist, um Redundanzgruppen zu definieren, von denen wenigstens eine mehr als einen logischen Datenträger mit unabhängig definierbarer Tiefencharakteristik umfaßt, wobei jede Redundanzgruppe einen konfigurierbaren Redundanzgrad hat, und wobei die Blöcke der Redundanzsätze über eine Redundanzgruppe über die Grenzen des logischen Datenträgers hinweg verteilt sind.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die RAID-Architektur der vorliegenden Erfindung ist extrem flexibel. Mit ihr kann ein redundantes Array-Speichersystem, als RAID-System der Stufe 1, 3, 4 oder 5 oder als irgendeine Kombination dieser Konfigurationen konfiguriert werden. Die Erfindung umfaßt eine Konfigurationsdatenstruktur zum Adressieren eines redundanten Array-Speichersystems und ein Verfahren zum Konfigurieren eines redundanten Array- Speichersystems während eines Initialisierungsprozesses. Das redundante Array-Speichersystem umfaßt einen Satz physikalischer Speichereinheiten, auf die, in Blocknummern ausgedrückt, zugegriffen werden kann (ein Block umfaßt einen oder mehrere Sektoren). Als Teil des Initialisierungsprozesses sind die physikalischen Speichereinheiten jeweils als eine oder mehrere logische Speichereinheiten konfiguriert. Jede logische Speichereinheit wird, in einer Kanalnummer, einer Speichereinheitsnummer, einer Startblocknummer und einer Offsetnummer ausgedrückt, adressiert (bei Übertragungen wird ebenfalls die Anzahl zu übertragender Blöcke angegeben).
  • Nachdem die logischen Speichereinheiten definiert worden sind, werden die logischen Datenträger als eine oder mehrere logische Speichereinheiten definiert, wobei jeder logische Datenträger eine Tiefencharakteristik hat.
  • Nachdem die logischen Datenträger definiert worden sind, werden Redundanzgruppen als ein oder mehrere logische Datenträger definiert. In der vorliegenden Erfindung wird ein Redundanzgrad für jede Redundanzgruppe angegeben. Der Redundanzgrad kann keine, eine (z. B. XOR-Parität oder ein Fehlerkorrekturcode, wie ein Reed-Solomon-Code), oder zwei (z. B. XOR-Parität plus einem Reed-Solomon-Fehlerkorrekturcode) sein.
  • Alternativ werden Redundanzgruppen als eine oder mehrere logische Speichereinheiten definiert, und logische Datenträger werden als ein Glied einer Redundanzgruppe definiert.
  • Logische Datenträger werden von einer Rechner-CPU durch eine Datenträgernummer, eine Anfangsblocknummer und eine Anzahl zu übertragender Blöcke adressiert. Die Rechner-CPU gibt auch eine LESE- oder SCHREIB-Operation an. Die angegebene Datenträgernummer, Anfangsblocknummer und Anzahl zu übertragender Blöcke werden dann in eine entsprechende Kanalnummer, Speichereinheitsnummer, Startblocknummer, Offsetnummer und Anzahl zu übertragender Blöcke übersetzt.
  • Mit der vorliegenden Erfindung kann sich ein logischer Datenträger über physikalische Speichereinheiten erstrecken ("vertikale Aufteilung"), lediglich einen Teil jeder dieser physikalischen Speichereinheiten umfassen ("horizontale Aufteilung") und eine definierbare Tiefen- und Redundanzcharakteristik haben.
  • Die Details der bevorzugten Ausführungsbeispiele der vorliegenden Erfindung sind in der beigefügten Zeichnung und der nachstehenden Beschreibung dargelegt. Nachdem die Details der Erfindung bekannt sind, sind dem Durchschnittsfachmann zahlreiche zusätzliche Innovationen und Änderungen offensichtlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Fig. 1 ist ein Blockdiagramm eines verallgemeinerten RAID- Systems gemäß der vorliegenden Erfindung.
  • Fig. 2A ist ein Diagramm eines beispielhaften RAID-Systems, das eine typische physikalische Organisation aufzeigt.
  • Fig. 2B ist ein Diagramm eines beispielhaften RAID-Systems, das eine logische Organisation des physikalischen Arrays aus Fig. 2A zeigt, in der jede physikalische Speichereinheit als zwei logische Speichereinheiten konfiguriert ist.
  • Fig. 2C ist ein Diagramm eines beispielhaften RAID-Systems, das einen logischen Datenträger mit einer Tiefe von einem Block zeigt.
  • Fig. 2D ist ein Diagramm eines beispielhaften RAID-Systems, das einen ersten logischen Datenträger mit einer Tiefe von vier Blöcken und einen zweiten logischen Datenträger mit einer Tiefe von einem Block zeigt.
  • Fig. 2E ist ein Diagramm eines beispielhaften RAID-Systems, das einen logischen Datenträger mit einer Tiefe von einem Block und mit einem Redundanzgrad zeigt.
  • Fig. 2F ist ein Diagramm eines beispielhaften RAID-Systems, das einen logischen Datenträger mit einer Tiefe von einem Block und mit zwei Redundanzgraden zeigt.
  • Fig. 3A ist ein Diagramm einer ersten Datenstruktur, die eine Redundanzgruppe gemäß der vorliegenden Erfindung definiert.
  • Fig. 3B ist ein Diagramm einer zweiten Datenstruktur, die ein Paar Redundanzgruppen gemäß der vorliegenden Erfindung definiert.
  • Gleiche Bezugszahlen und -bezeichnungen in der Zeichnung beziehen sich auf gleiche Elemente.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die gezeigten bevorzugten Ausführungsformen und Beispiele sollten durchgängig in dieser Beschreibung als Beispiele für das erfindungsgemäße Verfahren, aber nicht als Beschränkungen für dieses angesehen werden.
  • Die Erfindung umfaßt eine Gruppe von einer oder mehreren physikalischen Speichereinheiten und einen Satz logischer Strukturen, die auf die physikalischen Speichereinheiten "abgebildet" werden, um zu bestimmen, wie eine Rechner-CPU auf die physikalischen Speichereinheiten zugreift.
  • Physikalische Speichereinheiten
  • Eine typische physikalische Speichereinheit, wie ein magnetisches oder optisches Disklaufwerk, umfaßt einen Satz aus einer oder mehreren rotierenden Disks, die jeweils wenigstens einen Lese/Schreib-Wandlerkopf pro Oberfläche haben. Datenspeicherbereiche, die als Spuren bekannt sind, sind konzentrisch auf den Diskoberflächen angeordnet. Eine Diskspeichereinheit kann beispielsweise 500 bis 2000 Spuren pro Diskoberfläche haben. Jede Spur ist in numerierte Sektoren aufgeteilt, die gewöhnlich eine Größe von 512 Bytes haben. Sektoren sind die kleinste Einheit eines Speicherbereichs, auf den die Speichereinheit zugreifen kann (Datenbits innerhalb eines Sektors können individuell geändert werden, jedoch nur, indem ein ganzer Sektor gelesen wird, ausgewählte Bits modifiziert werden und der ganze Sektor zurück an seine Stelle geschrieben wird). Eine Diskspeichereinheit kann 8 bis 50 Sektoren pro Spur haben, und Gruppen von Spuren können auf der selben Diskspeichereinheit eine unterschiedliche Anzahl an Sektoren pro Spur haben (z. B. können kleinere Kreise innerer Spuren weniger Sektoren pro Spur haben, während größere Kreise äußerer Spuren mehr Sektoren pro Spur haben können).
  • Der Zugriff auf einen Sektor erfordert letztendlich die Identifizierung eines Sektors durch dessen axiale Verschiebung entlang des Satzes rotierender Disks, durch dessen radiale Verschiebung auf einer Disk und durch eine Verschiebung in Umfangsrichtung um eine Disk herum. Es werden zwei geläufige Verfahren für eine solche Identifizierung angewandt. Ein Verfahren identifiziert einen Sektor, in einer Oberfläche oder Kopfnummer (axiale Verschiebung), einer Spurnummer (radiale Verschiebung) und einer Sektornummer (Verschiebung in Umfangsrichtung) ausgedrückt. Das zweite Verfahren behandelt alle Spuren mit dem gleichen Radius auf allen Disks als einen "Zylinder", wobei Spuren Untermengen eines Zylinders anstelle einer Oberfläche sind. In diesem Verfahren wird ein Sektor, in einer Zylindernummer (radiale Verschiebung), einer Spurnummer (axiale Verschiebung) und einer Sektornummer (Verschiebung in Umfangsrichtung) ausgedrückt, identifiziert. Die vorliegende Erfindung kann unter Anwendung beider Formen der physikalischen Identifizierung implementiert werden.
  • Für eine höhere Speichersteuerung (oder sogar die CPU) ist es möglich, die Datenposition auf einer Speichereinheit durch Spurführung aller einbezogenen Sektoren in Spur zu halten. Dies wird gewöhnlich bei magnetischen Disklaufwerken gemacht, welche dem wohlbekannten in Personalcomputern verwendeten ST-506-Schnittstellenstandard folgen. Auf diese Weise adressierte Speichereinheiten sind als sektoradressierbare Speichereinheiten bekannt.
  • In modernen Computersystemen ist es für eine höhere Speichersteuerung nachteilig, mit einem der beiden oben beschriebenen Adressierverfahren Sektoradressen in Spur zu halten. Daher wird in dem bevorzugten Ausführungsbeispiel der Erfindung eine alternative Form einer Speichereinheitsadressierung angewandt, welche die Sektoren einer Speichereinheit auf eine handhabbarere Form abbildet.
  • Diese Abbildung wird durchgeführt, indem ein oder mehrere Sektoren als ein Block behandelt werden, wie es im Stand der Technik bekannt ist, und indem jede Speichereinheit über Blocknummern adressiert wird. Ein Block auf den in dem bevorzugten Ausführungsbeispiel des erfindungsgemäßen Systems verwendeten Speichereinheiten kann von 512 bis zu 4096 Bytes variieren, kann aber auch irgendeine beliebige Größe haben (obwohl herkömmliche Blockgrößen zwecks leichterer Implementierung auf Vielfache von zwei Bytes limitiert sind). Die verwendeten Speichereinheiten müssen die angegebene Blockgröße unterstützen. Zusätzlich markieren diese Speichereinheiten defekte Sektoren derart, daß diese nicht zum Bilden von Blöcken verwendet werden. (Einige Speichereinheiten können ebenfalls defekte Blöcke während des Betriebs dynamisch "nach außen abbilden", um externen Geräten immer einen Satz durchnumerierter Blöcke anzubieten). Jede Speichereinheit wird dann von einer höheren Steuerung als ein "intaktes" physikalisches Gerät angesehen, das einen Satz durchnumerierter logischer Blöcke umfaßt. Solche Einheiten sind als blockadressierbare Einheiten bekannt.
  • Beispielsweise wird bei Speichereinheiten, die eine Kleincomputersystem-Schnittstelle ("SCSI") haben, jede Speichereinheit als ein Satz aufeinanderfolgender Blöcke angesehen. Eine Zugriffsanfrage auf eine solche Einheit gibt einfach die Nummern der Blöcke an, auf die zugegriffen werden soll. Alternativ gibt die Zugriffsanfrage die Nummer eines Startblockes und die Anzahl nachfolgender, logisch aufeinanderfolgender Blöcke an, auf die zugegriffen werden soll. Danach übersetzt die SCSI-Steuerung für die Einheit jede Blocknummer entweder in ein Zylinder-, Spur- und Sektornummernformat oder in ein Kopf-, Spur- und Sektornummernformat. Diese Übersetzung ist jedoch für das anfragende Gerät transparent.
  • Es ist selbstverständlich, daß das erfindungsgemäße Konzept auf sektoradressierbare Speichereinheiten angewandt werden kann. Das bevorzugte Ausführungsbeispiel der Erfindung verwendet jedoch blockadressierbare Speichereinheiten. Die vorliegende Erfindung erzeugt dann eine erste logische Struktur, um eine Vielzahl solcher Einheiten zum Definieren einer Grundarchitektur von Disk-Arrays abzubilden.
  • Die erste logische Adressierungsebene des Arrays
  • Fig. 1 ist ein Diagramm eines verallgemeinerten RAID- Systems gemäß der vorliegenden Erfindung. Gezeigt ist eine CPU 1, die über einen Bus an wenigstens einen Array- Controller 3 gekoppelt ist. Der Array-Controller 3 ist über Eingabe/Ausgabekanäle 4 (z. B. SCSI-Busse) an jede einer Vielzahl von Speichereinheiten S0-S5 gekoppelt (es sind lediglich sechs als Beispiel gezeigt). Jeder Eingabe/Ausgabekanal 4 kann eine Vielzahl an Speichereinheiten unterstützen, wie es durch die gestrichelten Linien in Fig. 1 angezeigt ist. In einigen physikalischen Konfigurationen kann für eine zusätzliche Redundanz ein zweiter Array- Controller 3' (nicht dargestellt) parallel zu dem Array- Controller 3 an die Eingabe/Ausgabekanäle 4 gekoppelt sein. Der Array-Controller 3 weist vorzugsweise einen getrennt programmierbaren multi-taskfähigen Prozessor (beispielsweise den MIPS R3000 RISC Prozessor, von der MIPS Corporation, Sunnyvale, Kalifornien hergestellt) auf, der unabhängig von der CPU 1 für die Steuerung der Speichereinheiten arbeiten kann.
  • Fig. 2A zeigt eine Vielzahl an Speichereinheiten S0-S11 (von denen lediglich 12 als Beispiel gezeigt sind), die jeweils (beispielsweise) acht logische Blöcke L0-L7 aufweisen. Um auf individuelle Blöcke in dieser Array-Struktur zugreifen zu können, legt die vorliegende Erfindung dem Array eine erste logische Konfigurationsebene auf, indem eine Datenstruktur aufgestellt wird, die angibt, wo Daten auf den physikalischen Speichereinheiten vorliegen. Als Teil eines von der Steuerung 3 oder der CPU 1 durchgeführten Initialisierungsprozesses sind die physikalischen Speichereinheiten des oben beschriebenen Arrays jeweils als eine oder mehrere logische-Speichereinheiten konfiguriert. Die Datenstruktur definiert jede logische Speichereinheit anhand folgender Ausdrücke:
  • (1) Kanalnummer. In dem Beispiel der Fig. 2A sind die Kanäle Busse (z. B. SCSI-Busse), welche die physikalischen Speichereinheiten an die Steuerung 3 koppeln. Die Kanäle entsprechen den zwölf Speichereinheiten S0- S11 und sind mit 0-11 numeriert.
  • (2) Speichereinheitsnummer. Jede physikalische Speichereinheit entlang eines Kanals ist mit einer Position numeriert, die in der dargestellten Ausführungsform bei 2 startet und bei 7 endet. Somit kann jeder Kanal bis zu sechs Speichereinheiten handhaben (da die beiden Controller 3, 3' zwei der acht auf einem SCSI-Bus verfügbaren Adressen verwenden). Diese Maximalzahl beruht jedoch auf der Verwendung des SCSI-Standards für die Eingabe/Ausgabekanäle 4 und dem Vorliegen der beiden Array-Controller 3, 3'. Andere Konfigurationsbe schränkungen sind anwendbar, wenn andere Eingabe/Ausgabekanal-Architekturen verwendet werden.
  • (3) Startblocknummer. Dies ist die Startblocknummer auf der Speichereinheit für jede logische Speichereinheit. Normalerweise beginnt eine physikalische Speichereinheit die Numerierung der Blöcke bei 0. Da jedoch jede physikalische Speichereinheit mehrere logische Speichereinheiten haben kann, wird durch das Setzen der Startblocknummer für jede logische Speichereinheit sichergestellt, daß sich die Adressräume für die logischen Speichereinheiten nicht überlappen.
  • (4) Anzahl der Blöcke. Dies ist die Gesamtzahl der Blöcke in einer jeweiligen logischen Speichereinheit. Die Blöcke werden sequentiell numeriert, beginnend mit der Startblocknummer und weiter entsprechend der Gesamtzahl an Blöcken.
  • Zusätzlich kann die CPU 1 einen von beiden Controllern 3, 3' auswählen, auf eine Speichereinheit zuzugreifen, so daß eine Steuerungsnummer ebenfalls während der Verarbeitung angegeben wird. In dem Beispiel der Fig. 2A hat der primäre Array-Controller 3 die Nummer 0 und der optionale redundante Array-Controller 3', sofern installiert, die Nummer 1. Falls ein Speichersystem so entwickelt wurde, daß es lediglich einen einzigen Array-Controller hat, ist diese Nummer nicht erforderlich. In dem bevorzugten Ausführungsbeispiel wird die Steuerungsnummer dynamisch von der CPU 1 ausgewählt.
  • Mit dieser Adressierungshierarchie kann sich eine logische Speichereinheit nicht über physikalische Speichereinheiten erstrecken. Eine physikalische Speichereinheit umfaßt jedoch wenigstens eine logische Speichereinheit und kann mehrere logische Speichereinheiten umfassen. Unter Verwendung dieser Datenstruktur kann ein Block innerhalb einer logischen Speichereinheit lokalisiert werden, indem lediglich sein Offset von der Startblocknummer bekannt ist.
  • Fig. 2B zeigt als ein Beispiel die zwölf physikalischen Speichereinheiten der Fig. 2A, die als 24 logische Speichereinheiten definiert sind. Jede der physikalischen Speichereinheiten S0-S11 ist als zwei logische Speichereinheiten definiert. Die erste logische Speichereinheit jeder physikalischen Speichereinheit umfaßt Blöcke L0-L3, während die zweite logische Speichereinheit Blöcke L4-L7 umfaßt.
  • Als ein anderes Beispiel kann eine 20.000 Blöcke umfassende physikalische Speichereinheit als zwei logische Speichereinheiten mit jeweils 10.000 Blöcken konfiguriert sein oder als vier logische Speichereinheiten mit jeweils 5.000 Blöcken oder als eine logische Speichereinheit mit 10.000 Blöcken und zwei logische Speichereinheiten mit 5.000 Blöcken. Zwei physikalische Speichereinheiten mit 20.000 Blöcken können jedoch nicht als eine logische Speichereinheit mit 40.000 Blöcken konfiguriert sein.
  • Indem lediglich die erste Ebene der logischen Adressierung angewandt wird, kann die Steuerung 3 auf irgendeinen Block auf irgendeiner Speichereinheit in dem in Fig. 1 gezeigten Array zugreifen. Mit diesem Adressierformat alleine können die Speichereinheiten jedoch nicht in die RAID-Architektur mit der flexiblen Konfiguration der vorliegenden Erfindung organisiert werden. Eine zweite logische Adressierungsebene wird benötigt. Die zweite logische Ebene führt dazu, daß die CPU 1 den Array als logische Datenträger adressiert, die einen zusammenhängenden Bereich logischer Blöcke in logischen Speichereinheiten umfassen. Das Adressieren des Arrays in der ersten logischen Ebene wird komplett von der Steuerung 3 gehandhabt und ist für die CPU 1 vollkommen transparent.
  • Die zweite logische Adressierungsebene des Arrays
  • In der zweiten Ebene der logischen Adressierung wird ein logischer Datenträger als eine oder mehrere logische Speichereinheiten definiert. Die Anzahl logischer Speicherein heiten in einem logischen Datenträger definiert die von dem logischen Datenträger anzuwendende Abstreifbreite. Datenblöcke werden immer über einen logischen Datenträger abgestriffen, indem bei der ersten logischen Speichereinheit in dem logischen Datenträger gestartet wird. All die logischen Speichereinheiten in einem logischen Datenträger sind so definiert, daß sie die gleiche Blockgröße und -kapazität haben.
  • In Fig. 2C sind die zwölf physikalischen Speichereinheiten der Fig. 2A als zwölf logische Speichereinheiten definiert worden, die in zwei logische Datenträger mit jeweils sechs logischen Speichereinheiten gruppiert sind. (es kann ebenfalls irgendeine andere Konfiguration ausgewählt werden, welche innerhalb der oben beschriebenen Beschränkungen liegt). Die Abstreifbreite beider logischer Datenträger ist in diesem Beispiel gleich sechs.
  • Die Abstreifreihenfolge für einen logischen Datenträger hat eine zugehörige "Tiefe". Die Tiefe definiert, wie viele Datenblöcke nacheinander auf eine einzelne logische Speichereinheit geschrieben werden, bevor auf die nächste logische Speichereinheit in dem logischen Datenträger geschrieben wird. Beispielsweise gibt es in Fig. 2C sechs logische Speichereinheiten S0-S5 in dem logischen Datenträger Nr. 0, und der logische Datenträger hat eine Tiefe von einem Block. In Adressieranfragen von der CPU 1 ausgedrückt, beginnt die logische Blocknumerierung des logischen Datenträgers Nr. 0 mit dem ersten logischen Block 0, der ein Block L0 der logischen Speichereinheit S0 ist. Der zweite logische Block 1 ist ein Block L0 der logischen Speichereinheit S1 usw. Der logische Datenträger Nr. 1 ist so gezeigt, daß er mit der selben logischen Struktur definiert ist. Dies ist jedoch nicht erforderlich, wie nachfolgend detaillierter erläutert wird.
  • Fig. 2D zeigt ein weiteres Konfigurationsbeispiel für den logischen Datenträger Nr. 0, jedoch mit einer Tiefe von vier Blöcken. Die ersten vier numerierten logischen Blöcke sind aufeinanderfolgende Blöcke auf der logischen Speichereinheit S0; die nächsten vier numerierten logischen Blöcke sind aufeinanderfolgende Blöcke auf der logischen Speichereinheit S1, usw. Beim Betrieb in einem RAID-Modus der Stufe 4 oder 5 der On-Line-Dialogverarbeitung (OLTP) liegt ein erheblicher Vorteil darin, eine Tiefe zu verwenden, welche an die Seitengröße (falls geeignet) des CPU-Betriebssystems angepaßt ist. Falls beispielsweise Anfragen von der CPU 1 immer in einem Umfang von vier Blöcken vorliegen und in Vielfachen von vier Blöcken aufgestellt sind, ist es möglich, daß alle sechs logischen Speichereinheiten des logischen Datenträgers Nr. 0 eine separate Anfrage verarbeiten (unter der Annahme, daß es genügend Anfragen gibt, damit für jede logische Speichereinheit eine Anfrage verfügbar ist).
  • Im Gegensatz hierzu würden in der Konfiguration des in Fig. 2C gezeigten logischen Datenträgers Nr. 0 vier logische Speichereinheiten einbezogen sein, wenn eine vier-Block- Anfrage durchgeführt wird. Während die Konfiguration der Fig. 2C eine Parallelität vom RAID-Typ der Stufe 3 ermöglichen würde, würde die Kopfsuchzeit und -latenzzeit für den wahlfreien Zugriff auf vier Blöcke die für die Übertragung von vier Datenblöcken in der Konfiguration der Fig. 2D erforderliche Zeit weit übersteigen (die Zeit zum Übertragen von vier Blöcken ist lediglich geringfügig größer als die Zeit zum Übertragen eines Blockes).
  • Die zweite Ebene der logischen Adressierung bildet das Rahmenwerk, das die CPU 1 für die Kommunikation mit dem Speicher-Array verwendet. Eingabe/Ausgabe-Anfragen von der CPU 1 werden durch Angeben eines logischen Datenträgers, einer Logikblock-Anfangsnummer und der Anzahl an Blöcken durchgeführt. Mit dieser Information greift die Steuerung 3 auf die Datenstruktur für den angegebenen logischen Datenträger zu und bestimmt, welche logische(n) Speichereinheit(en) die angefragten Datenblöcke enthält (enthalten). Dies wird durch Vergleich der Logikblock-Anfangsnummer mit den Größen (aus dem Blockzahlparameter) der den logischen Datenträger umfassenden logischen Speichereinheiten durchgeführt.
  • Falls ein logischer Datenträger 6 logische Speichereinheiten umfaßt, die jeweils 20.000 Blöcke groß sind, und die angefragte Logikblock-Anfangsnummer für den Block 63.000 ist, wird sich dieser Block auf der vierten logischen Speichereinheit bei einer Offsetnummer von 3.000 Blöcken befinden. Nach Bestimmung der richtigen logischen Speichereinheit und der Offsetnummer wird die Anfrage auf eine entsprechende Kanalnummer, Speichereinheitsnummer und Startblocknummer abgebildet. Die Anfrage weist ferner den Offset von der Startblocknummer und die Anzahl zu übertragender Blöcke auf. In diesem Beispiel ist die gewünschte Logikblock-Anfangsnummer bei einer Offsetnummer von 3.000 Blöcken von der abgebildeten Startblocknummer der vierten logischen Speichereinheit. Diese Abbildung wird auf bekannte Weise durchgeführt.
  • Mit der vorliegenden Erfindung kann die Größe eines logischen Datenträgers geändert werden, ohne irgendeine Anwendung zu ändern. Da jedoch die Daten über die den logischen Datenträger umfassenden logischen Speichereinheiten abgestriffen werden, ist es erforderlich, einen logischen Datenträger nach dessen Änderung zu "reformatieren" (z. B. durch Hinzufügen oder Löschen physikalischer Speichereinheiten). Das Hinzufügen einer physikalischen Speichereinheit ist ähnlich dem Ersetzen einer kleineren physikalischen Speichereinheit durch eine größere Speichereinheit, außer daß die Kosten erhöht sind, da die ursprünglichen physikalischen Speichereinheiten weiter als ein Teil der "größeren" Speichereinheit verwendet werden.
  • Die vorliegende Erfindung gestattet es, daß verschiedene logische Datenträger verschiedene Tiefen haben. Beispielsweise sind in Fig. 2D die zwölf physikalischen Speichereinheiten der Fig. 2A als zwölf logische Speichereinheiten definiert worden, die in zwei logische Datenträger aus jeweils sechs logischen Speichereinheiten gruppiert sind. Die logischen Speichereinheiten S0-S5 umfassen den logischen Datenträger Nr. 0, wobei der Datenträger eine Tiefe von vier Blöcken hat, und die logischen Speichereinheiten S6-S11 umfassen den logischen Datenträger Nr. 1, wobei der Datenträger eine Tiefe von einem Block hat.
  • Die Leistungsfähigkeit eines Arrays wird durch die Art bestimmt, wie die logischen Datenträger konfiguriert sind. Für die Benutzung einer hohen Eingabe/Ausgabe-Bandbreite ist es besser, die logischen Speichereinheiten über mehrere Controller auszuweiten, um Parallelübertragungen zu optimieren. Für den OLTP-Modus (d. h. RAID Stufe 4 oder 5) ist die Anzahl gleichzeitig handhabbarer Dialoge um so größer (bis zu dem Punkt, zu dem die CPU 1 ihre Verarbeitungskapazität erreicht), je größer die Anzahl logischer Speichereinheiten in einem logischen Datenträger ist. Vom Standpunkt der Leistungsfähigkeit ist in dem OLTP-Modus das Abstreifen über mehrere Kanäle auf verschiedene physikalische Speichereinheiten (auf die jeweils auf unabhängigen E/A-Bussen 4 zugegriffen werden kann) im allgemeinen besser als das Abstreifen eines Kanals auf zusätzliche physikalische Speichereinheiten (wo Eingabe/Ausgabe-Anfragen nach verschiedenen physikalischen Speichereinheiten den gleichen Eingabe/Ausgabe- Bus 4 teilen müssen).
  • Nachdem die logischen Datenträger definiert sind, werden Redundanzgruppen definiert, die einen oder mehrere logische Datenträger umfassen. (Alternativ werden Redundanzgruppen als eine oder mehrere logische Speichereinheiten definiert, und logische Datenträger werden als ein Glied einer Redundanzgruppe definiert. Beide Charakterisierungen resultieren in der selben grundsätzlichen Datenstruktur). Ein logischer Datenträger muß vollständig in einer Redundanzgruppe enthalten sein (falls er in irgendeiner Redundanzgruppe enthalten ist). In dem bevorzugten Ausführungsbeispiel der Erfindung werden bis zu zwei Redundanzgrade unterstützt. Jeder Redundanzgrad erlaubt einer logischen Speichereinheit in einer Redundanzgruppe, daß sie ohne irgendeinen Verlust an Benut zerdaten ausfällt. Somit erlaubt ein Redundanzgrad (P- Redundanz genannt), daß eine logische Speichereinheit pro Redundanzgruppe ohne Datenverlust ausfallen kann, während zwei Redundanzgrade (der zweite Grad wird Q-Redundanz genannt) es erlauben, daß zwei logische Speichereinheiten pro Redundanzgruppe ohne Datenverlust ausfallen.
  • Jede Blockreihe in einer Redundanzgruppe wird eine Redundanzreihe genannt. Es werden Redundanzblöcke für die Blöcke in jeder Redundanzreihe erzeugt und in der entsprechenden Redundanzreihe gespeichert. Somit verliert jede Reihe aufgrund der Redundanzblöcke ein oder zwei Blöcke an Datenspeicherkapazität (eine für die P- und eine für die Q- Redundanz). Da jedoch die CPU 1 lediglich logische Datenträger "sieht", die einen scheinbar zusammenhängenden Bereich logischer Blöcke umfassen, ist dieser Verlust für die CPU 1 transparent (außer der Verlust in der Gesamtkapazität der logischen Speichereinheiten in der Redundanzgruppe und ein Bandbreitenverlust).
  • In dem bevorzugten Ausführungsbeispiel werden P-Redundanzblöcke durch eine Exklusiv-Oder-Veknüpfung aller Datenblöcke in einer Redundanzreihe auf bekannte Weise berechnet. In dem bevorzugten Ausführungsbeispiel werden Q-Redundanzblöcke durch Anwendung einer Reed-Solomon-Kodiermethode an alle Datenblöcke in einer Redundanzreihe auf bekannte Weise berechnet. Es können jedoch andere Redundanzerzeugungstechniken anstelle der bevorzugten XOR-Verknüpfungstechnik und der bevorzugten Reed-Solomon-Technik angewandt werden. Die Erzeugung der P- und der Q-Redundanz und die Wiedergewinnung von Benutzerdaten nach einem Ausfall ist detailliert in der US- Patentanmeldung Nr. 270,713, eingereicht am 14.11.88 mit dem Titel "Arrayed Disk Drive System and Method" von dem gleichen Anmelder beschrieben.
  • Redundanzgruppen werden auf einer Block-für-Block-Basis berechnet. Es ist daher möglich, mehrere logische Datenträger mit verschiedenen Tiefen zu haben, die jedoch in der glei chen Redundanzgruppe enthalten sind. Somit können beispielsweise sechs logische Speichereinheiten aus einem Array mit zwölf physikalischen Speichereinheiten als ein logischer Datenträger mit einer RAID-3-ähnlichen Architektur hoher Bandbreite (jedoch mit geteilter Parität über die Redundanzgruppe) definiert sein, der eine Tiefe von vier Blöcken hat, während die verbleibenden sechs logischen Speichereinheiten als ein logischer Datenträger mit einer RAID-5-ähnlichen OLTP-Architektur, der eine Tiefe von einem Block hat, aufgestellt sein können (siehe z. B. Fig. 2D) Eine Schreiboperation auf den logischen Datenträger Nr. 0 erfordert die Aktualisierung des zugehörigen Paritätsblocks, wo auch immer sich der Paritätsblock in der Redundanzgruppe befindet (d. h. in dem logischen Datenträger Nr. 0 oder dem logischen Datenträger Nr. 1). Auf ähnliche Weise erfordert eine Schreiboperation auf den logischen Datenträger Nr. 1 eine Aktualisierung des entsprechenden Paritätsblocks, wo auch immer sich dieser in der Redundanzgruppe befindet. Die Differenz in den Datenträgertiefen zwischen den beiden logischen Datenträgern führt zu keinem Problem, da die Paritätsblöcke auf einer Block-für-Block-Basis aktualisiert werden und alle Datenträgertiefen Vielfache der Blockgröße sind.
  • Redundanzblöcke sind gleichmäßig über eine ganze Redundanzgruppe verteilt, so daß ihre Positionen relativ zu der Position der von der CPU 1 angefragten Datenblöcke berechnet werden können. Das Verteilen der Redundanzblöcke hindert den Array auch daran, in dem OLTP-Modus auf der die Redundanzblöcke enthaltenden logischen Speichereinheit "durchzunumerieren" (d. h. eine verteilte Redundanz führt zu einer RAID- Architektur der Stufe 5, während eine nicht-verteilte Redundanz zu einer RAID-Architektur der Stufe 3 oder 4 führt).
  • Fig. 2E ist ein Diagramm eines beispielhaften RAID-Systems, das eine typische logische Organisation mit einer Tiefe von einem Block und einem Redundanzgrad zeigt. Redundanzblöcke sind mit "P" bezeichnet. Fig. 2F ist ein Diagramm eines beispielhaften RAID-Systems, das eine typische logische Or ganisation mit einer Tiefe von einem Block und zwei Redundanzgraden zeigt. Redundanzblöcke sind mit "P" und "Q" bezeichnet. Jede in einen einzelnen Array konfigurierte Redundanzgruppe kann einen unterschiedlichen Redundanzgrad haben, so daß die CPU 1 die Redundanzgrade für jede Redundanzgruppe an Zuverlässigkeitsbedürfnisse anpassen kann. Das Ändern einer Redundanzgruppe (Hinzufügen oder Löschen logischer Datenträger oder Ändern des Redundanzgrads) erfordert eine "Reformatierungs"-Operation (die dynamisch durchgeführt werden kann, d. h. ohne Anhalten der normalen Zugriffsoperationen).
  • Es sei bemerkt, daß das spezielle Muster der in den Fig. 2E und 2F gezeigten Verteilung von Redundanzblöcken lediglich beispielhaft ist, und daß andere Verteilungsmuster innerhalb des Bereichs dieser Erfindung liegen.
  • Selbst wenn die Tiefe eines logischen Datenträgers größer als eins ist, beruht die Erzeugung von P- und Q- Redundanzblöcken auf den Blöcken in der selben Reihe. Wenn der Redundanzgrad (0,1 oder 2) ausgewählt ist, ist es erforderlich, den notwendigen Zuverlässigkeitsgrad zu gewichten. Es ist ebenfalls notwendig, zu bestimmen, wie viel Speicherraum geopfert werden soll. Je größer die Anzahl an logischen Speichereinheiten in einer Redundanzgruppe ist, um so kleiner ist die Menge des Verlusts der Gesamtkapazität an Redundanzblöcke. Je größer jedoch die Größe einer Redundanzgruppe ist, um so höher ist die Wahrscheinlichkeit für den Ausfall einer Speichereinheit, und daher um so niedriger die Zuverlässigkeit der Redundanzgruppe. Beim Korrigieren von Daten aufgrund von Speichereinheitsausfällen ist es erforderlich, die gesamten Redundanzreihen wiederzulesen, so daß die Antwort auf die Eingabe/Ausgabe-Anfragen an eine Redundanzgruppe, die einen Speichereinheitsausfall hat, um so langsamer ist, je größer die Redundanzgruppe ist. Je größer die Redundanzgruppe ist, desto besser kann die Gesamtleistungsfähigkeit in einem OLTP-Modus sein, da einfach mehr Wandlerköpfe und ein niedrigeres Verhältnis an Redundanzblöcken zu Datenblöcken einbezogen sind.
  • Fig. 3A ist eine Darstellung einer Datenstruktur für den in Fig. 2C gezeigten Array, mit einer einzelnen Redundanzgruppe (Nr. 0), die so definiert ist, daß sie zwei logische Datenträger (Nr. 0 und Nr. 1) umfaßt. Fig. 3B ist eine Darstellung einer Datenstruktur für den gleichen Array, jedoch mit zwei Redundanzgruppen (Nr. 0 und Nr. 1), die so definiert sind, daß sie jeweils einen logischen Datenträger Nr. 0 und einen logischen Datenträger Nr. 1 umfassen. Mit dieser Datenstruktur wird eine Eingabe/Ausgabe-Anfrage von der CPU 1, in einem logischen Datenträger, einer Logikblock-Anfangsnummer und der Anzahl an Blöcken ausgedrückt, spezifiziert. Mit dieser Information greift die Steuerung 3 auf die Datenstruktur für den angegebenen logischen Datenträger zu und bestimmt, welche logische(n) Speichereinheit(en) die angefragten Datenblöcke enthält (enthalten). Wie oben bemerkt, wird dies durch Vergleich der Logikblock-Anfangsnummer mit den Größen (aus dem Blockzahlparameter) der den logischen Datenträger umfassenden logischen Speichereinheiten durchgeführt. Nach Bestimmung der richtigen logischen Speichereinheit und der Offsetnummer wird die Anfrage auf eine entsprechende Kanalnummer, Speichereinheitsnummer und Startblocknummer abgebildet. Die Anfrage weist ferner den Offset von der Startblocknummer und die Anzahl zu übertragender Blöcke auf. Diese Parameter ermöglichen die Adressierung einer physikalischen Speichereinheit, um auf die angefragten Datenblöcke zuzugreifen.
  • Zusammenfassung
  • Zusammenfassend wird ein redundantes Array-Speichersystem, das einen Satz blockadressierbarer physikalischer Speichereinheiten umfaßt, während eines Initialisierungsprozesses konfiguriert. Jede physikalische Speichereinheit wird unabhängig definiert, daß sie eine oder mehrere logische Speichereinheiten umfaßt, die in einer Kanalnummer, einer Speichereinheitsnummer, einer Startblocknummer, einer Offsetnummer und einer Anzahl zu übertragender Blöcke ausgedrückt sind, adressierbar ist. Logische Datenträger werden dann unabhängig als eine oder mehrere logische Speichereinheiten definiert, wobei jeder logische Datenträger eine unabhängig definierbare Tiefencharakteristik hat. Redundanzgruppen werden dann unabhängig als ein oder mehrere logische Datenträger definiert, wobei jede Redundanzgruppe einen unabhängig definierbaren Redundanzgrad hat. Der Redundanzgrad kann keine, eine (z. B. XOR-Parität oder einen Fehlerkorrektur-Code, wie einen Reed-Solomon-Code) oder zwei (z. B. XOR- Parität plus beispielsweise einen Reed-Solomon- Fehlerkorrektur-Code) sein. (Alternativ werden Redundanzgruppen als eine oder mehrere logische Speichereinheiten definiert, und logische Datenträger werden als ein Glied einer Redundanzgruppe definiert).
  • Logische Datenträger werden von einer Rechner-CPU 1 durch eine Datenträgernummer, eine Anfangsblocknummer und eine Anzahl zu übertragender Blöcke adressiert. Die CPU 1 gibt ebenfalls eine LESE- oder SCHREIB-Operation an. Die CPU 1 sendet die Zugriffsanfrage an eine ausgewählte Steuerung 3, 3', welche die angegebene Datenträgernummer, Anfangsblocknummer und Anzahl zu übertragender Blöcke in eine entsprechende Kanalnummer, Speichereinheitsnummer, Startblocknummer, Offsetnummer und Anzahl zu übertragenden Blöcke übersetzt.
  • Unter Verwendung der logischen Organisation und des Verfahrens für den Speichereinheitszugriff der vorliegenden Erfindung können RAID-Architekturen gleichzeitig unterstützt werden, welche die gleichen physikalischen Speichereinheiten verwenden. Beispielsweise können somit die zwölf in Fig. 2D gezeigten logischen Disks in (1) einen logischen Datenträger Nr. 0 mit einer Breite von 6 logischen Disks und einer Tiefe von vier Blöcken konfiguriert und in einem RAID-Modus der Stufe 3 (hohe Eingabe/Ausgabe-Bandbreite) betrieben werden, und in (2) einen logischen Datenträger Nr. 1 mit einer Brei te von sechs logischen Disks und einer Tiefe von einem Block konfiguriert und in einem RAID-Modus der Stufe 5 (On-Line- Dialogverarbeitung) betrieben werden.
  • Die vorliegende Erfindung ist daher extrem flexibel und ermöglicht einem redundanten Array-Speichersystem, als ein RAID-System der Stufe 1, 3, 4 oder 5 oder als irgendeine Kombination dieser Konfigurationen konfiguriert zu werden. In der vorliegenden Erfindung ist es daher für einen logischen Datenträger möglich, sich über physikalische Speichereinheiten zu erstrecken ("vertikale Aufteilung"), lediglich einen Teil jeder dieser physikalischen Speichereinheiten zu umfassen ("horizontale Aufteilung") und eine definierbare Tiefen- und Redundanzcharakteristik zu haben.
  • Es sind einige Ausführungsbeispiele der vorliegenden Erfindung beschrieben worden. Nichtsdestotrotz ist es selbstverständlich, daß zahlreiche Modifikationen vorgenommen werden können, ohne den Bereich der Erfindung zu verlassen. Dementsprechend ist es selbstverständlich, daß die Erfindung nicht auf die speziellen dargestellten Ausführungsbeispiele beschränkt ist, sondern lediglich durch den Bereich der beigefügten Ansprüche.

Claims (12)

1. Verfahren zum Adressieren eines redundanten Array- Speichersystems, umfassend einen Array-Controller in operativer Verbindung mit einer CPU (1) und eine Vielzahl physikalischer Datenspeichereinheiten (S1-S6), die mit dem Array-Controller (3) über entsprechende Eingabe/Ausgabekanäle (4) gekoppelt sind, wobei jede physikalische Datenspeichereinheit eine Vielzahl adressierbarer Blöcke umfaßt, und das Verfahren folgendes umfaßt:
Übertragen von Speicherzugriffsanfragen von der CPU an den Array-Controller; und
Übersetzen jeder Speicherzugriffsanfrage in eine Adresse für die physikalischen Datenspeichereinheiten entsprechend einer ersten logischen Adressierungsebene, um einen Satz adressierbarer Blöcke in Antwort auf jede Speicherzugriffsanfrage zu adressieren;
wobei die adressierbaren Blöcke in Redundanzsätze organisiert sind, mit wenigstens einem adressierbaren Block in einem Redundanzsatz, der Redundanzinformation für übrige Blöcke in dem Redundanzsatz enthält;
dadurch gekennzeichnet, daß:
i) die Speicherzugriffsanfragen von der CPU entsprechend einer zweiten logischen Adressierungsebene ausgegeben werden, wobei jede Speicherzugriffsanfrage eine Nummer eines logischen Datenträgers, eine Nummer eines Anfangsblocks und die Anzahl zu übertragender Blöcke spezifiziert;
ii) der Array-Controller die Übersetzung unter Verwendung einer Datenstruktur durchführt, die jeden logischen Datenträger als eine oder mehrere logische Speichereinheiten definiert, wobei jede logische Speichereinheit eine Anzahl adressierbarer Blöcke umfaßt und alle logischen Speichereinheiten in einem logischen Datenträger die gleiche Anzahl adressierbarer Blöcke umfassen, wobei jeder logische Datenträger eine unabhängig definierbare Tiefencharakteristik hat, die in der Anzahl adressierbarer Blöcke ausgedrückt ist, auf die nacheinander in einer einzigen logischen Speichereinheit zugegriffen wird, bevor auf die nächste logische Speichereinheit in dem logischen Datenträger zugegriffen wird, wobei jede Speicherzugriffsanfrage auf eine oder mehrere logische Speichereinheiten abgebildet wird;
iii) jeder adressierbare Block innerhalb einer logischen Speichereinheit durch eine Kanalnummer, Speichereinheitsnummer, Startblocknummer und Offsetnummer adressiert wird;
iv) Redundanzgruppen definiert werden, von denen wenigstens eine mehr als einen logischen Datenträger mit unabhängig definierbarer Tiefencharakteristik umfaßt, wobei jede Redundanzgruppe einen konfigurierbaren Redundanzgrad hat; und
v) die Blöcke der Redundanzsätze über eine Redundanzgruppe über die Grenzen des logischen Datenträgers hinweg verteilt werden.
2. Verfahren nach Anspruch 1, bei welchem die Redundanzgruppen wenigstens zwei Redundanzgruppen mit gleichwertigen Redundanzgraden umfassen.
3. Verfahren nach Anspruch 1, bei welchem die Redundanzgruppen wenigstens zwei Redundanzgruppen mit unterschiedlichen Redundanzgraden umfassen.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei welchem die Datenstruktur bei der Initialisierung des Speichersystems konfiguriert wird.
5. Verfahren nach einem der Ansprüche 1 bis 3, bei welchem die Datenstruktur konfiguriert wird, wenn normale Zugriffsoperationen nicht im Gange sind.
6. Verfahren nach einem der Ansprüche 1 bis 3, bei welchem die Datenstruktur ohne Anhalten normaler Zugriffsoperationen konfiguriert wird.
7. Redundantes Array-Speichersystem, das folgendes umfaßt:
einen Array-Controller (3);
eine Vielzahl physikalischer Datenspeichereinheiten (S1-S6), die mit dem Array-Controller über jeweilige Eingabe/Ausgabekanäle gekoppelt sind, wobei jede physikalische Datenspeichereinheit eine Vielzahl adressierbarer Blöcke umfaßt;
wobei der Array-Controller folgendes umfaßt:
eine Verbindung zu einem CPU-Bus (2) zum Empfangen einer Speicherzugriffsanfrage von der CPU, wobei der Array-Controller unabhängig von der CPU arbeitet, um die physikalischen Datenspeichereinheiten zu steuern; und
Mittel zum Adressieren der physikalischen Datenspeichereinheiten entsprechend einer ersten logischen Adressierungsebene, um einen Satz der adressierbaren Blöcke in Antwort auf jede Speicherzugriffsanfrage zu adressieren;
wobei die adressierbaren Blöcke in Redundanzsätze organisiert sind, mit wenigstens einem adressierbaren Block in einem Redundanzsatz, der Redundanzinformation für übrige Blöcke in dem Satz enthält;
dadurch gekennzeichnet, daß:
i) die erste logische Adressierungsebene die Bestimmung einer Kanalnummer, Speichereinheitsnummer, Startblocknummer und Offsetnummer für die adressierbaren Blöcke einschließt;
ii) die Speicherzugriffsanfragen von der CPU entsprechend einer zweiten logischen Adressierungsebene ausgegeben werden, bei welcher jede Speicherzugriffsanfrage wenigstens eine Nummer eines logischen Datenträgers, eine Nummer eines Anfangsblocks und eine Anzahl an Blöcken spezifiziert, auf die zugegriffen werden soll;
iii) der Array-Controller eine Datenstruktur hält, welche jeden logischen Datenträger als eine oder mehrere logische Speichereinheiten definiert, wobei jede logische Speichereinheit eine Anzahl adressierbarer Blöcke umfaßt und alle logischen Speichereinheiten in einem logischen Datenträger die gleiche Anzahl adressierbarer Blöcke umfassen, wobei jeder logische Datenträger eine unabhängig definierbare Tiefencharakteristik hat, die in der Anzahl adressierbarer Blöcke ausgedrückt ist, auf die nacheinander in einer einzigen logischen Speichereinheit zugegriffen wird, bevor auf die nächste logische Speichereinheit in dem logischen Datenträger zugegriffen wird, wobei jede Speicherzugriffsanfrage auf eine oder mehrere logische Speichereinheiten abgebildet wird;
iv) die Datenstruktur konfigurierbar ist, um Redundanzgruppen zu definieren, von denen wenigstens eine mehr als einen logischen Datenträger mit unabhängig definierbarer Tiefencharakteristik umfaßt, wobei jede Redundanzgruppe einen konfigurierbaren Redundanzgrad hat, und wobei die Blöcke der Redundanzsätze über eine Redundanzgruppe über die Grenzen des logischen Datenträgers hinweg verteilt sind.
8. Speichersystem nach Anspruch 7, bei welchem die Redundanzgruppen wenigstens zwei Redundanzgruppen mit gleichwertigen Redundanzgraden umfassen.
9. Speichersystem nach Anspruch 7 oder 8, bei welchem die Redundanzgruppen wenigstens zwei Redundanzgruppen mit unterschiedlichen Redundanzgraden umfassen.
10. Speichersystem nach einem der Ansprüche 7 bis 9, bei welchem die logischen Datenträger bei der Initialisierung des Speichersystems konfigurierbar sind.
11. Speichersystem nach einem der Ansprüche 7 bis 10, bei welchem die logischen Datenträger zu einem Zeitpunkt konfigurierbar sind, bei dem normale Zugriffsoperationen nicht im Gange sind.
12. Speichersystem nach einem der Ansprüche 7 bis 11, bei welchem die logischen Datenträger ohne Anhalten normaler Zugriffsoperationen konfigurierbar sind.
DE69131551T 1990-11-09 1991-10-30 Logische Aufteilung eines Speichersystems mit redundanter Matrix Expired - Fee Related DE69131551T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US61222090A 1990-11-09 1990-11-09

Publications (2)

Publication Number Publication Date
DE69131551D1 DE69131551D1 (de) 1999-09-30
DE69131551T2 true DE69131551T2 (de) 2000-02-17

Family

ID=24452245

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69131551T Expired - Fee Related DE69131551T2 (de) 1990-11-09 1991-10-30 Logische Aufteilung eines Speichersystems mit redundanter Matrix

Country Status (6)

Country Link
US (3) US5519844A (de)
EP (1) EP0485110B1 (de)
JP (1) JP3304115B2 (de)
AU (1) AU8683991A (de)
CA (1) CA2054794C (de)
DE (1) DE69131551T2 (de)

Families Citing this family (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU8683991A (en) * 1990-11-09 1992-05-14 Array Technology Corporation Logical partitioning of a redundant array storage system
US5499337A (en) * 1991-09-27 1996-03-12 Emc Corporation Storage device array architecture with solid-state redundancy unit
US5974544A (en) * 1991-12-17 1999-10-26 Dell Usa, L.P. Method and controller for defect tracking in a redundant array
JP2868141B2 (ja) * 1992-03-16 1999-03-10 株式会社日立製作所 ディスクアレイ装置
US5471640A (en) * 1992-07-06 1995-11-28 Hewlett-Packard Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US5666511A (en) * 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
JPH06217250A (ja) * 1993-01-20 1994-08-05 Sony Corp Av機器の信号ラインの制御方法
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
JPH08511368A (ja) * 1993-06-04 1996-11-26 ネットワーク・アプリアンス・コーポレーション 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
JP3249868B2 (ja) * 1993-11-19 2002-01-21 株式会社日立製作所 アレイ形式の記憶装置システム
EP0689125B1 (de) * 1994-06-22 2004-11-17 Hewlett-Packard Company, A Delaware Corporation Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung
US5615352A (en) * 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
US5659704A (en) * 1994-12-02 1997-08-19 Hewlett-Packard Company Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy
US5651133A (en) * 1995-02-01 1997-07-22 Hewlett-Packard Company Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
JPH08329021A (ja) * 1995-03-30 1996-12-13 Mitsubishi Electric Corp クライアントサーバシステム
US5678061A (en) * 1995-07-19 1997-10-14 Lucent Technologies Inc. Method for employing doubly striped mirroring of data and reassigning data streams scheduled to be supplied by failed disk to respective ones of remaining disks
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
US5875456A (en) * 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
US5845319A (en) * 1995-08-23 1998-12-01 Fujitsu Limited Disk array device which separates local and physical disks using striping and operation mode selection
JP3686457B2 (ja) * 1995-08-31 2005-08-24 株式会社日立製作所 ディスクアレイサブシステム
US5774641A (en) * 1995-09-14 1998-06-30 International Business Machines Corporation Computer storage drive array with command initiation at respective drives
WO1997011426A1 (en) * 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
US5893138A (en) * 1995-10-02 1999-04-06 International Business Machines Corporation System and method for improving channel hardware performance for an array controller
US5812753A (en) * 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
US5809224A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation On-line disk array reconfiguration
US5822782A (en) * 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
US5727181A (en) * 1996-02-14 1998-03-10 International Business Machines Corporation Array management system with volume transform filter
US6233704B1 (en) 1996-03-13 2001-05-15 Silicon Graphics, Inc. System and method for fault-tolerant transmission of data within a dual ring network
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US5805788A (en) * 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5761534A (en) * 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5862313A (en) * 1996-05-20 1999-01-19 Cray Research, Inc. Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
US5893919A (en) * 1996-09-27 1999-04-13 Storage Computer Corporation Apparatus and method for storing data with selectable data protection using mirroring and selectable parity inhibition
US5926649A (en) * 1996-10-23 1999-07-20 Industrial Technology Research Institute Media server for storage and retrieval of voluminous multimedia data
JP3344907B2 (ja) * 1996-11-01 2002-11-18 富士通株式会社 Raid装置及び論理ボリュームのアクセス制御方法
US6023584A (en) * 1997-01-03 2000-02-08 Ncr Corporation Installation of computer programs using disk mirroring
JPH10198526A (ja) 1997-01-14 1998-07-31 Fujitsu Ltd Raid装置及びそのアクセス制御方法
US5948060A (en) * 1997-01-24 1999-09-07 International Business Machines Corporation Speeding-up communication rates on links transferring data structures by a method of handing scatter/gather of storage blocks in commanded computer systems
US5946707A (en) * 1997-02-28 1999-08-31 Adaptec, Inc. Interleaved burst XOR using a single memory pointer
US6658526B2 (en) * 1997-03-12 2003-12-02 Storage Technology Corporation Network attached virtual data storage subsystem
WO1998040810A2 (en) * 1997-03-12 1998-09-17 Storage Technology Corporation Network attached virtual tape data storage subsystem
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6041329A (en) * 1997-05-29 2000-03-21 International Business Machines Corporation Automated message processing system configured to automatically manage introduction of removable data storage media into media library
US5911148A (en) * 1997-05-29 1999-06-08 International Business Machines Corporation Automated message processing system configured for automated tape device management
US5999982A (en) * 1997-05-29 1999-12-07 International Business Machines Corporation Automated message processing system having a plurality of expert local facilities responsive to messages routed thereto to perform predetermined actions
US5991894A (en) * 1997-06-06 1999-11-23 The Chinese University Of Hong Kong Progressive redundancy transmission
US6016552A (en) * 1997-06-06 2000-01-18 The Chinese University Of Hong Kong Object striping focusing on data object
US6216211B1 (en) 1997-06-13 2001-04-10 International Business Machines Corporation Method and apparatus for accessing mirrored logical volumes
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
US6112257A (en) * 1997-09-24 2000-08-29 Emc Corporation Dynamic adjustment of mirror service policy for logical volumes in a disk drive system based on collected statistics
US6085303A (en) * 1997-11-17 2000-07-04 Cray Research, Inc. Seralized race-free virtual barrier network
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
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
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6105118A (en) * 1998-02-02 2000-08-15 International Business Machines Corporation System and method for selecting which data copy to read in an information handling system
US6078990A (en) * 1998-02-06 2000-06-20 Ncr Corporation Volume set configuration using a single operational view
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6122685A (en) * 1998-05-06 2000-09-19 Emc Corporation System for improving the performance of a disk storage device by reconfiguring a logical volume of data in response to the type of operations being performed
US6654881B2 (en) 1998-06-12 2003-11-25 Microsoft Corporation Logical volume mount manager
EP1090353A1 (de) 1998-06-22 2001-04-11 Colin Constable Virtuelles datenbewahrungssystem (vds)
EP0969371A1 (de) * 1998-06-30 2000-01-05 Sun Microsystems, Inc. Überprüfung der Konfiguration von Speichereinheiten die sich auf Gerätidentifizierung basieren
US6263382B1 (en) * 1998-07-29 2001-07-17 Compaq Computer Corporation Sizer for interactive computer system configuration
US6192470B1 (en) * 1998-07-29 2001-02-20 Compaq Computer Corporation Configuration sizer for selecting system of computer components based on price/performance normalization
US6253318B1 (en) * 1998-07-29 2001-06-26 Compaq Computer Corporation Method of developing physical requirements for computer configuration
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
GB2341715A (en) * 1998-09-17 2000-03-22 Springtek Limited Magnetic disk redundant array
JP3505093B2 (ja) 1998-09-18 2004-03-08 富士通株式会社 ファイル管理システム
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
JP4874515B2 (ja) * 1998-12-22 2012-02-15 株式会社日立製作所 記憶装置システム
US6542961B1 (en) 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
US6230217B1 (en) * 1998-12-30 2001-05-08 Raytheon Company Data storage system having a host computer coupled to bank of disk drives through interface comprising plurality of directors, buses, and a PCB connectors
US6457139B1 (en) * 1998-12-30 2002-09-24 Emc Corporation Method and apparatus for providing a host computer with information relating to the mapping of logical volumes within an intelligent storage system
US6363457B1 (en) 1999-02-08 2002-03-26 International Business Machines Corporation Method and system for non-disruptive addition and deletion of logical devices
US6467023B1 (en) * 1999-03-23 2002-10-15 Lsi Logic Corporation Method for logical unit creation with immediate availability in a raid storage environment
US6336173B1 (en) 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in data storage libraries
US6336172B1 (en) 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in a data storage library system
US6275898B1 (en) 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US6463573B1 (en) * 1999-06-03 2002-10-08 International Business Machines Corporation Data processor storage systems with dynamic resynchronization of mirrored logical data volumes subsequent to a storage system failure
US6519679B2 (en) 1999-06-11 2003-02-11 Dell Usa, L.P. Policy based storage configuration
US6839782B1 (en) * 1999-07-30 2005-01-04 Emc Corporation Computer storage system incorporating on-board EEPROMS containing product data
US6467047B1 (en) * 1999-07-30 2002-10-15 Emc Corporation Computer storage system controller incorporating control store memory with primary and secondary data and parity areas
JP2001043031A (ja) * 1999-07-30 2001-02-16 Toshiba Corp 分散パリティ生成機能を備えたディスクアレイ制御装置
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
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
US6629202B1 (en) 1999-11-29 2003-09-30 Microsoft Corporation Volume stacking model
JP4869466B2 (ja) * 2000-02-24 2012-02-08 富士通セミコンダクター株式会社 記憶装置の制御方法、データ管理システム、記録媒体、及び記憶装置
US6571351B1 (en) 2000-04-07 2003-05-27 Omneon Video Networks Tightly coupled secondary storage system and file system
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US7143249B2 (en) * 2000-10-04 2006-11-28 Network Appliance, Inc. Resynchronization of mirrored storage devices
US6654912B1 (en) * 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
GB0025226D0 (en) 2000-10-14 2000-11-29 Ibm Data storage system and method of storing data
US6957313B2 (en) * 2000-12-01 2005-10-18 Hsia James R Memory matrix and method of operating the same
US6704886B1 (en) 2001-01-25 2004-03-09 Emc Corporation Data backup system having independent data restore execution
US7558840B1 (en) 2001-01-25 2009-07-07 Emc Corporation Data backup system having a flexible restore architecture
US6721766B1 (en) 2001-01-25 2004-04-13 Emc Corporation Restoring multiple work items simultaneously from backup and data restore
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6954875B2 (en) * 2001-03-12 2005-10-11 Honeywell International Inc. Method of recovering a flight critical computer after a radiation event
US6862661B2 (en) 2001-06-26 2005-03-01 International Business Machines Corporation Object oriented approach to a redundant array storage system
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
JP2003256147A (ja) * 2002-02-28 2003-09-10 Hitachi Ltd クラスタ型ディスクアレイ装置およびクラスタ型ディスクアレイ装置の運用方法
CN1241120C (zh) * 2001-08-31 2006-02-08 联想(北京)有限公司 计算机硬盘数据备份及恢复方法
US20030154271A1 (en) * 2001-10-05 2003-08-14 Baldwin Duane Mark Storage area network methods and apparatus with centralized management
US7137124B2 (en) 2001-10-05 2006-11-14 International Business Machines Corporation Storage area network methods and apparatus for storage device masking
US6954824B2 (en) * 2001-10-15 2005-10-11 International Business Machines Corporation Method, system, and program for determining a configuration of a logical array including a plurality of storage devices
US6993676B2 (en) * 2002-06-12 2006-01-31 Sun Microsystems, Inc. Method and apparatus for fast initialization of redundant arrays of storage devices
US6961836B2 (en) * 2002-08-29 2005-11-01 Lsi Logic Corporation Method and apparatus for mapping storage partitions of storage elements to host systems
US8005918B2 (en) 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
CN101448012B (zh) 2002-11-12 2013-04-24 雷特泽遥距管理有限责任公司 具有ip能力分区的数据存储设备
US7649880B2 (en) 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
US7170890B2 (en) 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
AU2003291014A1 (en) 2002-11-14 2004-06-15 Isilon Systems, Inc. Systems and methods for restriping files in a distributed file system
US7809693B2 (en) * 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration
US20040268079A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Method and system for providing a secure rapid restore backup of a raid system
US20050010722A1 (en) * 2003-07-11 2005-01-13 Chih-Wei Chen Multi-volume disk array management method and system
US7908413B2 (en) * 2003-07-15 2011-03-15 International Business Machines Corporation Data allocation in a distributed storage system
US7237139B2 (en) * 2003-08-07 2007-06-26 International Business Machines Corporation Services heuristics for computer adapter placement in logical partitioning operations
US7428691B2 (en) * 2003-11-12 2008-09-23 Norman Ken Ouchi Data recovery from multiple failed data blocks and storage units
US7290087B2 (en) * 2003-11-26 2007-10-30 International Business Machines Corporation Adaptive grouping in object raid
US7330930B1 (en) * 2004-03-09 2008-02-12 Adaptec, Inc. Method and apparatus for balanced disk access load distribution
JP2005293363A (ja) * 2004-04-01 2005-10-20 Toshiba Corp ディスクアレイコントローラおよび情報処理装置
US7046560B2 (en) 2004-09-02 2006-05-16 Micron Technology, Inc. Reduction of fusible links and associated circuitry on memory dies
US7321905B2 (en) * 2004-09-30 2008-01-22 International Business Machines Corporation System and method for efficient data recovery in a storage array utilizing multiple parity slopes
JP2006107311A (ja) * 2004-10-08 2006-04-20 Hitachi Ltd ディスクアレイ装置およびその制御方法
US7594075B2 (en) 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
US8131926B2 (en) * 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US8131969B2 (en) * 2004-10-20 2012-03-06 Seagate Technology Llc Updating system configuration information
US8051425B2 (en) 2004-10-29 2011-11-01 Emc Corporation Distributed system with asynchronous execution systems and methods
US8238350B2 (en) 2004-10-29 2012-08-07 Emc Corporation Message batching with checkpoints systems and methods
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US7418621B2 (en) * 2005-02-24 2008-08-26 Dot Hill Systems Corp. Redundant storage array method and apparatus
US7702850B2 (en) 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US20060236149A1 (en) * 2005-04-14 2006-10-19 Dell Products L.P. System and method for rebuilding a storage disk
WO2006116203A1 (en) 2005-04-25 2006-11-02 Network Appliance, Inc. System and method for caching network file systems
US7689609B2 (en) * 2005-04-25 2010-03-30 Netapp, Inc. Architecture for supporting sparse volumes
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US7743214B2 (en) 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US7694072B2 (en) * 2005-09-22 2010-04-06 Xyratex Technology Limited System and method for flexible physical-logical mapping raid arrays
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US7346720B2 (en) * 2005-10-21 2008-03-18 Isilon Systems, Inc. Systems and methods for managing concurrent access requests to a shared resource
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US7797283B2 (en) 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US7917474B2 (en) 2005-10-21 2011-03-29 Isilon Systems, Inc. Systems and methods for accessing and updating distributed data
US7551572B2 (en) * 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
US7386675B2 (en) * 2005-10-21 2008-06-10 Isilon Systems, Inc. Systems and methods for using excitement values to predict future access to resources
JP4667225B2 (ja) * 2005-12-19 2011-04-06 富士通株式会社 制御装置およびコピー制御方法
US7848261B2 (en) 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US7756898B2 (en) 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
US7924881B2 (en) 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US8539056B2 (en) 2006-08-02 2013-09-17 Emc Corporation Systems and methods for configuring multiple network interfaces
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7822932B2 (en) 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7590652B2 (en) 2006-08-18 2009-09-15 Isilon Systems, Inc. Systems and methods of reverse lookup
US7680842B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7899800B2 (en) 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7953704B2 (en) 2006-08-18 2011-05-31 Emc Corporation Systems and methods for a snapshot of data
US7676691B2 (en) 2006-08-18 2010-03-09 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7752402B2 (en) 2006-08-18 2010-07-06 Isilon Systems, Inc. Systems and methods for allowing incremental journaling
US7680836B2 (en) * 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7747584B1 (en) * 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
US7610507B2 (en) * 2006-09-08 2009-10-27 Agere Systems Inc. High-speed redundant disk controller methods and systems
US8286029B2 (en) 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
US7593938B2 (en) 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
US7509448B2 (en) 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks
US7779048B2 (en) 2007-04-13 2010-08-17 Isilon Systems, Inc. Systems and methods of providing possible value ranges
US7900015B2 (en) 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
US8966080B2 (en) 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US8285758B1 (en) 2007-06-30 2012-10-09 Emc Corporation Tiering storage between multiple classes of storage on the same container file system
US7882068B2 (en) 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write
US7949692B2 (en) 2007-08-21 2011-05-24 Emc Corporation Systems and methods for portals into snapshot data
US7966289B2 (en) 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US7984324B2 (en) 2008-03-27 2011-07-19 Emc Corporation Systems and methods for managing stalled storage devices
US7953709B2 (en) 2008-03-27 2011-05-31 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7870345B2 (en) 2008-03-27 2011-01-11 Isilon Systems, Inc. Systems and methods for managing stalled storage devices
US7949636B2 (en) 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US8151048B1 (en) * 2008-03-31 2012-04-03 Emc Corporation Managing storage pool provisioning
US7958304B1 (en) * 2008-04-30 2011-06-07 Network Appliance, Inc. Dynamically adapting the fault tolerance and performance characteristics of a raid-based storage system by merging and splitting raid groups
ES2380137T3 (es) 2008-08-12 2012-05-08 Strato Ag Sistema de almacenamiento de datos y procedimiento para el funcionamiento del mismo
US8341349B2 (en) * 2008-10-31 2012-12-25 Lsi Corporation System and method for loose coupling between raid volumes and drive groups
US7945822B1 (en) * 2009-04-27 2011-05-17 Netapp, Inc. Storing data to multi-chip low-latency random read memory device using non-aligned striping
US8082392B2 (en) * 2009-04-28 2011-12-20 Lsi Corporation Managing storage array operations that cause loss of access to mirrored data
US8527749B2 (en) * 2009-11-11 2013-09-03 International Business Machines Corporation User device, computer program product and computer system for system for secure network storage
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
JP5776436B2 (ja) * 2011-08-22 2015-09-09 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US9665621B1 (en) * 2013-03-14 2017-05-30 EMC IP Holding Company LLC Accelerated query execution within a storage array
US9672106B2 (en) 2014-12-30 2017-06-06 Nutanix, Inc. Architecture for implementing erasure coding
US10567009B2 (en) 2016-12-06 2020-02-18 Nutanix, Inc. Dynamic erasure coding
US11762564B2 (en) * 2020-10-19 2023-09-19 EMC IP Holding Company LLC System and method for detecting corruption of a deduplicated cloud object

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3893178A (en) * 1973-12-19 1975-07-01 Information Storage Systems Synchronization of multiple disc drives
US4092732A (en) * 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US4183084A (en) * 1977-06-06 1980-01-08 Digital Equipment Corporation Secondary storage facility with serial transfer of control messages
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US4562576A (en) * 1982-08-14 1985-12-31 International Computers Limited Data storage apparatus
US4607346A (en) * 1983-03-28 1986-08-19 International Business Machines Corporation Apparatus and method for placing data on a partitioned direct access storage device
FR2561428B1 (fr) * 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
US4667326A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives
US4754397A (en) * 1985-02-15 1988-06-28 Tandem Computers Incorporated Fault tolerant modular subsystems for computers
JPS61264599A (ja) * 1985-05-16 1986-11-22 Fujitsu Ltd 半導体記憶装置
US4667362A (en) * 1985-07-08 1987-05-26 Presentation Systems, Inc. Scraper for carpet seaming irons
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
US4942579A (en) * 1987-06-02 1990-07-17 Cab-Tek, Inc. High-speed, high-capacity, fault-tolerant error-correcting storage system
US4870643A (en) * 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US5129088A (en) * 1987-11-30 1992-07-07 International Business Machines Corporation Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4993030A (en) * 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
US4989206A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory
GB8816413D0 (en) * 1988-07-09 1988-08-17 Int Computers Ltd Data processing system
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
AU630635B2 (en) * 1988-11-14 1992-11-05 Emc Corporation Arrayed disk drive system and method
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
CA2029179A1 (en) * 1989-11-03 1991-05-04 Stephen M. Schultz Method for data distribution in a disk array
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5166939A (en) * 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
US5134619A (en) * 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5283875A (en) * 1990-04-13 1994-02-01 Digital Equipment Corporation Method and apparatus for optimizing prefetch caching by reverse ordering of logical blocks
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
US5130992A (en) * 1990-04-16 1992-07-14 International Business Machines Corporaiton File-based redundant parity protection in a parallel computing system
US5155845A (en) * 1990-06-15 1992-10-13 Storage Technology Corporation Data storage system for providing redundant copies of data on different disk drives
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5287453A (en) * 1990-09-18 1994-02-15 Bull Hn Information Systems, Inc. Fast remote file access facility for distributing file access requests in a closely coupled computer system
AU8683991A (en) * 1990-11-09 1992-05-14 Array Technology Corporation Logical partitioning of a redundant array storage system

Also Published As

Publication number Publication date
JP3304115B2 (ja) 2002-07-22
EP0485110A2 (de) 1992-05-13
EP0485110A3 (en) 1993-01-13
DE69131551D1 (de) 1999-09-30
CA2054794C (en) 2001-04-24
JPH05197498A (ja) 1993-08-06
US5519844A (en) 1996-05-21
US6154854A (en) 2000-11-28
US5708769A (en) 1998-01-13
AU8683991A (en) 1992-05-14
CA2054794A1 (en) 1992-05-10
EP0485110B1 (de) 1999-08-25

Similar Documents

Publication Publication Date Title
DE69131551T2 (de) Logische Aufteilung eines Speichersystems mit redundanter Matrix
DE69127229T2 (de) Verfahren und Vorrichtung zur Datenformatierung auf DASD-Anordnungen
DE69033476T2 (de) Schutz von Datenredundanz und -rückgewinnung
DE69221279T2 (de) Plattenlaufwerkmatrix mit redundanten Kanälen
DE69412775T2 (de) System zur Kontrolle der Befehlswarteschlange der Paritätsplatte in einer Speicherplattenanordnung
DE69331369T2 (de) Betriebsverfahren einer Speicherplattenanordnung
DE69126416T2 (de) Speichergerätanordnungsarchitektur mit Copyback-Cachespeicher
DE3856443T2 (de) Gegen Fehler tolerantes, Fehler korrigierendes Speichersystem und Verfahren zur Speicherung digitaler Information in einem derartigen Speichersystem
DE3750790T2 (de) Paritätsverteilung zum verbesserten Speicherzugriff.
DE69632219T2 (de) Speicherplattenanordnungssystem
DE69225296T2 (de) Datenrekonstruktion in einem Speichergerätanordnungssystem
DE69227896T2 (de) Paritätsberechnung in einer effizienten matrix von massenspeichergeräten
DE69738091T2 (de) Speicherplattenanordnung und Verfahren zu deren Steuerung
DE69129444T2 (de) On-Line-Wiederherstellung von Redundanz-Information in einem redundanten Matrixsystem
DE69219208T2 (de) Verteilter Ersatz in DASD-Feldern
DE69131728T2 (de) Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur
DE19983218B4 (de) Verfahren zum Codieren von Datensignalen zur Speicherung
DE68926436T2 (de) Plattenlaufwerkanordnungssystem und Verfahren
DE69431186T2 (de) Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem
DE69231841T2 (de) Verfahren und Vorrichtung zum Zugriff von Datensätze mit variabler Länge die mit fester Block-Formatierung auf Speicheranordnungen mit direktem Zugriff gespeichert sind
DE69733076T2 (de) Hochleistungsdatenweg mit sofortigem xor
DE60304194T2 (de) Verfahren und vorrichtung zur tolerierung von mehreren abhängigen oder zwei beliebigen fehlern in einer speicherplattenanordnung
DE69127895T4 (de) Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem
DE69224589T2 (de) Speicherplattenanordnung und Verfahren zur Bestimmung des Vorhandenseins korrekter Speichervorrichtungen
DE69529728T2 (de) Speicherplattenanordnungsgerät

Legal Events

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