DE69324974T2 - Optimierte Stricherkennung für redundante Speicherplattenanordnung - Google Patents
Optimierte Stricherkennung für redundante SpeicherplattenanordnungInfo
- Publication number
- DE69324974T2 DE69324974T2 DE69324974T DE69324974T DE69324974T2 DE 69324974 T2 DE69324974 T2 DE 69324974T2 DE 69324974 T DE69324974 T DE 69324974T DE 69324974 T DE69324974 T DE 69324974T DE 69324974 T2 DE69324974 T2 DE 69324974T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- stripe
- memory
- block
- drives
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Diese Erfindung bezieht sich auf die Steuerung von Mehrfach- Laufwerken zur Verwendung mit einem Computersystem, und im besonderen auf ein System zum Schreiben von Daten auf Mehrfach-Laufwerke.
- Auf dem Gebiet der Computersysteme ist es ein Problem, eine günstige Platten-Speichervorrichtung mit hoher Leistungsfähigkeit, Zuverlässigkeit und Kapazität zu schaffen. Herkömmliche Laufwerkvorrichtungen mit hoher Leistungsfähigkeit und hoher Kapazität verwenden normalerweise einzelne große teure Laufwerke (SLED), die Formfaktoren im Bereich von 30,50 bis 35,60 cm (12 oder 14 Zoll) aufweisen.
- Die schnelle Akzeptanz von Personal-Computern hat einen Markt für günstige Laufwerke mit einem kleinen Formfaktor geschaffen, wie z. B. 13,34 cm, 8,9 cm (5 1/4, 3 1/2 Zoll), oder kleiner. Folglich wurde eine Platten- Speichervorrichtung, die eine redundante Anordnung günstiger Laufwerke (RAID) aufweist, eine durchführbare Alternative zum Speichern von großen Datenmengen. RAID-Produkte ersetzen wenige sehr große teure Laufwerke durch viele kleine Laufwerke, um höhere Speicherkapazitäten und einen höheren Durchsatz zu schaffen.
- "Striping" ist eine bekannte Methode, die mit RAID benutzt wird, um den I/O-Durchsatz zu verbessern. "Striping" umfaßt die gleichzeitige Datenübertragung auf eine Anordnung von Laufwerken in "Streifen". Wenn das RAID z. B. fünf Laufwerke aufweist, würde ein Streifen aus fünf Datenblöcken bestehen, und ein Block wird von jedem der Laufwerke übertragen. In einem Fünf-Laufwerke-RAID können Daten normalerweise in ungefähr 1/5 der Zeit verarbeitet werden, indem ein Datenblock gleichzeitig zu jedem der Laufwerke übertragen wird.
- Der Nachteil beim Ersetzen eines einzelnen großen Laufwerks durch mehrere kleine Laufwerke ist die Zuverlässigkeit, da es viel wahrscheinlicher ist, daß eines der Laufwerke in der Anordnung versagt, was die Anordnung undurchführbar macht. Mittels Datenredundanzmethoden jedoch kann die Zuverlässigkeit der RAID-Produkte im wesentlichen verbessert werden. RAID- Produkte verwenden normalerweise Paritätscodierung, um Laufwerksfehler zu überstehen und zu beheben. Unterschiedliche RAID-Organisationsstufen, die Paritätscodierung verwenden, sind im Moment bekannt, siehe "A case for redundant arrays of inexpensive disks" David A. Patterson et al., Bericht Nr. UCBICSD 87/891, Dez. 1987, Computer Science Division (EECS), Berkeley, CA 94720. Bei den RAID-Stufen 4 und 5 ist ein Block eines Streifens für Paritätsdaten reserviert. RAID-Stufe 4 speichert alle Paritätsblöcke auf dem gleichen Laufwerk, RAID-Stufe 5 verteilt die Paritätsblöcke über alle Laufwerke in der Anordnung.
- Paritätsdaten werden im allgemeinen durch Verwenden einer EXCLUSIV-ODER (XOR)-Funktion erzeugt. Der RAID-Paritätsschutz leidet an dem grundsätzlichen Problem, daß die Anzahl der I/O-Anfragen, die beantwortet werden müssen, um die Paritätsdaten aufrechtzuerhalten, viel größer ist, als es mit nicht- RAID-Laufwerken, die keinen Paritätsschutz verwenden, der Fall sein würde. Um einen Block mit neuen Daten auf ein Laufwerk zu schreiben, müssen die folgenden Schritte durchgeführt werden: a) Lesen des Blocks, der die alten Daten speichert, vom Laufwerk; b) Lesen des Blocks, der die alten Paritätsdaten speichert, vom Laufwerk; c) Erzeugen neuer Paritätsdaten aus den alten Daten, den alten Paritätsdaten und den neuen Daten; d) Schreiben des Blocks, der die neuen Daten speichert, und e) Schreiben des Blocks, der die neuen Paritätsdaten speichert. Mit anderen Worten, das Schreiben eines Datenblocks in herkömmliche RAID- Produkte benötigt normalerweise viermal soviele I/O-Anfragen, als es mit nicht- RAID-Laufwerken der Fall wäre.
- Deshalb ist es wünschenswert, ein System zu schaffen, das die Anzahl der I/O-Anfragen reduziert, die notwendig sind, um Paritätsdaten für die Streifen eines RAID-Produkts aufrechtzuerhalten.
- Die Erfindung in ihrer weitesten Form liegt in einer Vorrichtung zum Erzeugen von Paritätsdaten für eine Vielzahl von Laufwerken, wie in Anspruch 1 beschrieben. Die Erfindung liegt auch in einem Verfahren zum Erzeugen von Paritätsdaten für eine Vielzahl von Daten für eine Vielzahl von Laufwerken, wie in Anspruch 6 beschrieben.
- Nachfolgend beschrieben ist ein System zum Reduzieren der Anzahl der I/O-Anfragen, die benötigt werden, um Daten auf eine redundante Anordnung preisgünstiger Laufwerke (RAID) eines Computersystems zu schreiben, das eine Host-Zentraleinheit und einen Pufferspeicher-Cache aufweist. Das System weist Determinationen zum Schreiben neuer im Cache gespeicherten Daten auf die Laufwerke auf, wie Streifen, die die geringstmögliche Anzahl von I/O-Anfragen verwenden. Das System verwendet die besten von zwei alternativen Methoden, in denen die Parität für den Streifen erzeugt werden kann. Ein erstes Verfahren ermittelt die Anzahl der I/O-Anfragen, die benötigt werden würden, um die Paritätsdaten vom gesamten Streifen einschließlich der neuen Daten, die auf die Laufwerke geschrieben werden sollen, zu erzeugen. Ein zweites Verfahren ermittelt die Anzahl der I/O-Anfragen, die benötigt werden würden, um die Paritätsdaten von den neuen Daten, die auf die Laufwerke geschrieben werden sollen, und die alten Paritätsdaten des Streifens zu erzeugen. Das System nimmt dann im Speicher die Blöcke auf, die notwendig sind, um die Paritätsdaten entweder als einen ganzen Streifen oder als individuelle Blöcke zu erzeugen, und verwendet dabei die Methode, die die geringste Anzahl von I/O-Anfragen benötigt, wie vom ersten und zweiten Verfahren ermittelt.
- Ein vollständigeres Verständnis der Erfindung kann aus der folgenden Beschreibung der bevorzugten Ausführungsbeispiele erlangt werden, die nur mittels Beispielen beschrieben werden und in Verbindung mit den Begleitzeichnungen verstanden werden sollen, in denen:
- Fig. 1 ein Blockdiagramm eines Computersystems ist, das ein erfindungsgemäßes "Striping" umfaßt;
- Fig. 2 ein Blockdiagramm einer RAID-Konfiguration ist, die ein erfindungsgemäßes "Striping" umfaßt;
- Fig. 3 ein Blockdiagramm eines Streifens ist, der Datenblöcke und einen Paritätsblock aufweist;
- Fig. 4 ein Flußdiagramm eines ersten Verfahrens ist, das für die Streifenermittlung verwendet wird; und
- Fig. 5 ein Flußdiagramm eines zweiten Verfahrens ist, das für die Streifenermittlung verwendet wird.
- In Bezug auf die Zeichnungen zeigt Fig. 1 ein Computersystem, das im allgemeinen mit Bezugsziffer 1 bezeichnet wird. Das Computersystem 1 weist eine Zentraleinheit oder "Host" 10 auf, der einen primären temporären Datenspeicher aufweist, wie Speicher 11 und einen sekundären permanenten Datenspeicher, wie Laufwerkvorrichtung 20. Der Host 10 und die Laufwerkvorrichtung 20 sind durch einen Kommunikationsbus 30 verbunden. Das Computersystem 1 weist auch einen Pufferspeicher-Cache (Gache) 40 auf, der auch mit dem Systembus 30 verbunden ist.
- Der Host 10 ist im allgemeinen herkömmlich, und ist von der Art, die eine Vielzahl von gleichzeitigen Benutzern versorgt, die eine große Vielzahl von Computeranwendungen ausführen, einschließlich Datenbankanwendungen, die die Laufwerkvorrichtung 20 zum Speichern von Daten verwenden. Während des Betriebs des Computersystems gibt der Host 10 I/O-Anfragen aus, wie Lesen und Schreiben, um Daten zwischen dem Speicher 11 und der Laufwerkvorrichtung 20 über den Bus 30 und den Gache 40 zu übertragen.
- Der Cache 40 erlaubt dem Computersystem 1, die Vorteile der Grundsätze der Lage der Bezugsnahme zu nutzen. Vermutlich kann der Host 10 auf Daten, die in einem Halbleiter-Speichercache gespeichert sind, beträchtlich schneller zugreifen, als auf Daten, die auf den Laufwerken 21-25 gespeichert sind. Daten, die vom Host 10 häufig verwendet werden, werden so lange wie möglich im Cache 40 gespeichert, um die Anzahl der physikalischen I/O-Anfragen zum Übertragen von Daten zwischen dem Host 10 und den Laufwerken 21-25 zu verringern. Der Cache 40 ist in eine Vielzahl von Blöcken 41 zum Speichern von Daten organisiert. Die Blöcke 41 speichern entweder modifizierte oder "neue" Daten, die auf die Laufwerke 21-25 geschrieben werden sollen, oder unmodifizierte "alte" Daten, die von den Laufwerken 21-25 gelesen werden.
- "Logische" I/O-Schreibanfragen des Host 10 speichern die neuen Daten im Cache 40, und "physikalische" I/O-Schreibanfragen übertragen die Daten vom Cache 40 zu den Laufwerken 21-25, normalerweise einige Zeit danach. Während die neuen Daten im Cache 40 gespeichert werden, d. h. bevor die neuen Daten auf den permanenten Speicher auf den Laufwerken 21-25 geschrieben werden, sind die neuen Daten anfällig für Störungen aufgrund, z. B. Leistungs- oder Systemfehlern. Aus diesem Grund weist der Cache 40 einen relativ teuren nichtflüchtigen Speicher auf. Für manche Anwendungen, z. B. Direktzugriffs- Datenbankanwendungen, wo die gelesene Datenmenge (alte Daten) viel größer ist als die Menge an neuen Daten, die geschrieben werden, kann es vorteilhaft sein, den Cache 40 in einen größeren Lesecache und einen kleineren Schreibcache aufzuteilen. Der Teil des Cache 40, der verwendet wird, um alte Daten zu speichern, die von den Laufwerken 21-25 ausgelesen wurden, kann ein günstigerer flüchtiger Speicher sein, weil diese Daten im Falle eines Versagens leicht von den Laufwerken 21-25 wiederhergestellt werden können.
- Ausschließlich zum Zweck der Darstellung, ohne die Allgemeingültigkeit zu beschränken, wird die Erfindung in Bezug auf ihre Verwendung in der Laufwerkvorrichtung 20 beschrieben, welche als eine RAID-Vorrichtung organisiert ist, wie in Patterson et al. beschrieben ist. Ein Experte jedoch wird erkennen, daß die Grundsätze der Erfindung auch in Speichervorrichtungen verwendet werden können, die auf andere Weise organisiert sind.
- Fig. 2 zeigt in schematischer Blockdiagrammform eine Laufwerkvorrichtung 20, die wie RAID-Stufe 5 organisiert ist, wiein Patterson et al. beschrieben ist. Die Laufwerkvorrichtung 20 weist einen Controller 29, der mit dem Systembus 30 verbunden ist, und eine Vielzahl von Laufwerken 21-25 auf.
- Der Speicherbereich der Laufwerke 21-25 ist physikalisch in z. B. Sektoren, Spuren und Zylinder, Köpfe organisiert. Um den Zugang des Host 10 jedoch zu vereinfachen, ist der Speicherbereich der Laufwerke 21-25 auch in einen Satz von fortlaufend numerierten Blöcken 41 organisiert, die mit der Blockstruktur des Cache 40 kompatibel sind, und wird im allgemeinen im Hinblick auf Laufwerk 21, mit Bezugsziffer 41 bezeichnet. Durch das Verwenden der nacheinander numerierten Blöcke 41, brauchen die Benutzer des Host 10 die Details der physikalischen Organisation der Laufwerke 21-25, z. B. die Anzahl der Sektoren pro Spur, die Anzahl der Spuren pro Zylinder und die physikalische Verteilung aller Daten über die Laufwerke 21-25 nicht zu wissen. Im bevorzugten Ausführungsbeispiel, ist ein Datenblock 41 gleich der Mindestmenge an Daten, die bequem zwischen dem Cache 40 und den Laufwerken 21-25 mit einer einzigen I/O- Anfrage übertragen werden kann, z. B. ein Sektor. Block 41 kann auch größer sein, z. B. eine ganze Zahl von Sektoren.
- Um den I/O-Durchsatz der Laufwerkvorrichtung 20 zu verbessern, sind die Blöcke 41 weiter organisiert in noch größere Datenabschnitte, bekannt als "Streifen", im allgemeinen bezeichnet durch Bezugsziffer 61. "Striping"-Methoden sind in RAID bekannt, und umfassen im allgemeinen das gleichzeitige Lesen und Schreiben von Daten auf mehrere Laufwerke. Mit "Striping" verteilt eine Host-I/O- Anfrage die zu übertragenden Daten über die Laufwerke 21-25. Im bevorzugten Ausführungsbeispiel ist der Streifen 61 gleich der Datenmenge, die übertragen wird, wenn ein Block 41 zu jedem der Laufwerke 21-25 parallel übertragen wird, z. B. fünf Blöcke 41.
- Bei Vorrichtungen des RAID-Typs, die eine große Anzahl von Laufwerken aufweisen, besteht die relativ große Wahrscheinlichkeit, daß eines der Laufwerke der Anordnung versagt. Deshalb wird normalerweise Paritätscodierung verwendet, um Daten wiederherzustellen, die aufgrund eines Laufwerkfehlers verloren gegangen sind. Einer der Blöcke 41 des Streifens 61, der "Paritätsblock" z. B. speichert Paritätsdaten, die von den anderen "Datenblöcken" des Streifens erzeugt wurden. Die im Paritätsblock gespeicherten Paritätsdaten werden durch Verwenden von z. B. einer EXCLUSIV-ODER (XOR)-Funktion erzeugt.
- Der Paritätsschutz von RAID-Stufe 5 leidet an dem grundsätzlichen Problem, daß die Anzahl der I/O-Anfragen, Lesen und Schreiben, die beantwortet werden müssen, um neue Daten, einschließlich Paritätsdaten, zu schreiben, viel größer ist als es der Fall mit nicht-RAID-Laufwerken wäre. Z. B. in Bezug auf Fig. 3, die einen Streifen 61 zeigt, der Datenblöcke 41a-41d und einen Paritätsblock 41e aufweist, könnte eine neue Parität wie folgt erzeugt werden. Angenommen, der Block 41a speichert neue Daten, die vom Cache 40 geschrieben werden sollen, und die Blöcke 41b-41d, die alte Daten enthalten, sind nicht im Cache 40 gespeichert. Eine erste Methode, die verwendet werden kann, um die Paritätsdaten für den Paritätsblock 41e zu erzeugen, ist, die XOR der Blöcke 41a-41d zu nehmen. Deshalb würden drei zusätzliche I/O-Anfragen benötigt werden, um die drei Blöcke 41b-41d von den Laufwerken 21-25 zu lesen, bevor die neuen Paritätsdaten erzeugt werden können.
- Alternativ, als eine zweite Methode können die gleichen neuen Paritätsdaten für den Paritätsblock 41e auch wie folgt erzeugt werden: Lesen des alten Datenblocks, der vom neuen Datenblock 41a ersetzt werden wird, der im Cache 40 gespeichert ist, von den Laufwerken 21-25; Lesen des alten Paritätsblocks, der vom neuen Paritätsblock 41e überschrieben werden wird; und Erzeugen der neuen Paritätsdaten aus den alten Daten, den alten Paritätsdaten, und den neuen Daten. Mit anderen Worten, diese zweite Methode benötigt nur zwei zusätzliche I/O-Anfragen.
- In diesem Beispiel wären jedoch, wenn die Blöcke 41b-41d schon im Cache 40 gespeichert wären, keine zusätzlichen I/O-Anfragen notwendig, wenn die erste Methode verwendet würde. Bevor ein neuer Datenblock geschrieben wird, wäre es deshalb von Vorteil, zu ermitteln, ob der gesamte Streifen 61 im Cache 40 gespeichert ist, um die Anzahl der I/O-Anfragen zu reduzieren. Sogar wenn nicht alle Blöcke 41 eines Streifens 61 im Cache 40 gespeichert sind, kann ein Teilstreifen die Anzahl der I/O-Anfragen reduzieren. Wenn z. B. der alte Paritätsblock 41e schon im Cache 40 gespeichert wäre, aber die Blöcke 41b-41d nicht, würde die zweite Methode nur eine zusätzliche I/O-Anfrage benötigen, bevor Paritätsdaten erzeugt werden könnten.
- Der Zweck der vollständigen und teilweisen Streifenermittlung gemäß der Erfindung ist, zu ermitteln, wie Daten im Cache 40 aufgenommen werden können, die ausreichen, um Paritätsdaten mit so wenig wie möglich I/O-Anfragen zu erzeugen, und dabei viel der Wartezeit zu eliminieren, die mit I/O-Anfragen zusammenhängt. Wenn die Größe des Cache 40 größer als die Größe des Streifens 61 ist, gibt es eine Möglichkeit, eine bedeutende Anzahl von I/O-Anfragen aufgrund der Streifenermittlung zu eliminieren. Wenn die Datenmenge, die im Streifen 61 gespeichert ist, groß ist, ist die Wahrscheinlichkeit geringer, daß ein vollständiger Streifen 61 im Cache 40 vorhanden ist. Sogar wenn der vollständige Streifen 61 nicht ermittelt werden kann, hat das Ermitteln von Teilstreifen 61 gemäß der Erfindung bedeutende Vorteile. Teilstreifen 61 können in vollständige Streifen 61 umgewandelt werden, indem die fehlenden Daten von den Laufwerken 21-25 gelesen werden. Der Vorteil in diesem Fall ist nicht so groß als wenn vollständige Streifen 61 ermittelt werden, aber die Teilstreifenermittlung bietet trotzdem noch eine bedeutende Leistungsverbesserung. Wenn die Anzahl der Blöcke 41 eines im Cache 40 gespeicherten Streifens 61 klein ist, werden weniger I/O-Anfragen benötigt, indem die Paritätsdaten von den individuellen Blöcken des Streifens, wie in der zweiten Methode oben dargestellt, erzeugt werden. Die vorliegende Erfindung schafft ein System zum Ermitteln von vollständigen und teilweisen Streifen 61, und sorgt weiterhin für eine Paritätserzeugung mit der minimalen · Anzahl von I/O-Anfragen.
- Im bevorzugten Ausführungsbeispiel der Erfindung ermittelt das System die Anzahl der I/O-Anfragen, die benötigt werden, um die Parität eines Streifens 61 zu erzeugen, indem es zwei verschiedene Methoden verwendet. Als eine erste Alternative ermittelt das System, wie viele I/O-Anfragen benötigt werden, um im Cache 40 alle Datenblöcke 41 eines vollständigen Streifens 61 aufzunehmen, und um die neuen Paritätsdaten für den Paritätsblock 41 von allen Datenblöcken 41 des vollständigen Streifens 61 zu erzeugen.
- Als eine zweite Alternative ermittelt das System, wie viele I/O-Anfragen benötigt werden würden, um die Paritätsdaten nur aus den individuellen Datenblöcken 41, die geschrieben werden sollen und der alten Parität zu erzeugen. Diejenige der zwei alternativen Ermittlungsmethoden, die die geringste Anzahl von I/O-Anfragen produziert, wird die optimale Art zum Erzeugen der Paritätsdaten von einem Streifen 61 sein.
- Zuerst wird in Bezug auf Fig. 4 ein Flußdiagramm eines Verfahrens 100 gezeigt zur Ermittlung, wie viele zusätzliche I/O-Anfragen benötigt werden würden, um einen Paritätsblock für den vollständigen Streifen 61 zu erzeugen. Dann wird in Bezug auf Fig. 5 ein Flußdiagramm eines Verfahrens 200 gezeigt zur Ermittlung, wie viele I/O-Anfragen benötigt werden würden, um die Paritätsdaten nur aus den individuellen Blöcken 41, die geschrieben werden sollen, zu erzeugen. Welche dieser zwei alternativen Methoden, einen Streifen 61 zu schreiben, die geringste Anzahl an I/O-Anfragen erzielt, wird dann verwendet werden, um die Parität des Streifens 61 zu erzeugen.
- In Bezug auf Fig. 4 nun ermittelt der Computer im Verfahren 100 beginnend mit Schritt 110, für jeden der Datenblöcke des Streifens, ob es für den Streifen noch mehr Datenblöcke zum Verarbeiten gibt, wenn nicht, wird dieses Verfahren ausgeführt, andernfalls bestimmt der Computer durch Fortfahren mit Schritt 120 für den nächsten Datenblock des Streifens, ob eine zusätzliche I/O- Anfrage benötigt wird, um die Datenblöcke des Streifens aufzunehmen.
- Im Schritt 120 ermittelt der Computer, ob der Datenblock im Cache gespeichert ist. Wenn die Antwort in Schritt 120 ja ist, d. h. der Datenblock ist im Cache, wird keine zusätzliche I/O-Anfrage benötigt und es wird mit Schritt 110 fortgefahren. Andernfalls, wenn die Antwort in Schritt 120 nein ist, ist eine zusätzliche I/O-Anfrage nötig, um den Datenblock in den Cache zu lesen, und es wird mit Schritt 110 fortgefahren. Somit wird die Gesamtzahl der zusätzlichen I/O- Anfragen ermittelt, die nötig sind, um die Datenblöcke eines vollständigen Streifens aufzunehmen. Man sollte beachten, daß dieses Verfahren die alten Paritätsdaten nicht in den Cache 40 aufnehmen braucht.
- Fig. 5 zeigt das Verfahren 200 zum Ermitteln der Anzahl der I/O- Anfragen, um die Parität aus den individuellen Blöcken des Streifens zu erzeugen. Beginnend bei Schritt 210 ermittelt der Computer für jeden der Datenblöcke des Streifens, ob es noch mehr Datenblöcke gibt, die für den Streifen verarbeitet werden müssen, wenn nicht, wird dieses Verfahren ausgeführt, andernfalls ermittelt der Computer für den nächsten Datenblock des Streifens, ob zusätzliche I/O-Anfragen benötigt werden, um die für die Erzeugung der Paritätsdaten notwendigen Blöcke aufzunehmen.
- In Schritt 220 ermittelt der Computer, ob der Datenblock des Streifens neue Daten, die auf die Laufwerke 21-25 geschrieben werden sollen, speichert. Wenn die Antwort nein ist, d. h. dieser Datenblock des Streifens keine neuen Daten speichert, werden keine zusätzlichen I/O-Anfragen benötigt, und es wird mit Schritt 210 fortgefahren.
- In Schritt 230 ermittelt der Computer, ob der alte Datenblock entsprechend dem Datenblock, der geschrieben werden soll, im Cache gespeichert ist. Wenn die Antwort nein ist, d. h. der alte Datenblock nicht im Cache gespeichert ist, wird eine zusätzliche I/O-Anfrage benötigt, um den alten Datenblock von den Laufwerken 21-25 zu lesen; in jedem Fall wird mit Schritt 240 fortgefahren.
- In Schritt 240 ermittelt der Computer, ob der alte Paritätsblock des Streifens im Cache gespeichert ist. Wenn die Antwort nein ist, d. h. der alte Paritätsblock ist nicht im Cache gespeichert, wird noch eine I/O-Anfrage benötigt, um die alten Paritätsdaten von den Laufwerken 21-25 zu lesen; in jedem Fall wird mit Schritt 210 fortgefahren. Die Anzahl der I/O-Anfragen zum Erzeugen der Parität aus den individuellen Blöcken eines Streifens, wie vom Verfahren 200 ermittelt, wird zusammengezählt, um die Gesamtanzahl der I/O-Anfragen zu erhalten, die notwendig wären, um die Daten und Paritätsblöcke eines Teilstreifens aufzunehmen.
- Nachdem jedes dieser beiden Verfahren 100 und 200 für den Streifen durchgeführt wurde, wird die Parität gemäß der Methode erzeugt, die die geringste Anzahl von I/O-Anfragen erzielt.
- Während ein bevorzugtes Ausführungsbeispiel gezeigt und beschrieben wurde, ist es klar, daß verschiedene andere Adaptionen und Modifikationen innerhalb des Umfangs der Erfindung vorgenommen werden können.
Claims (10)
1. Vorrichtung zum Erzeugen von Paritätsdaten für eine Vielzahl von
Laufwerken, wobei der Speicherbereich eines jeden der Vielzahl von Laufwerken in
eine Vielzahl von Blöcken unterteilt ist, die weiterhin in eine Vielzahl von Streifen
organisiert sind, wobei jeder der Vielzahl von Streifen einen Block von jedem der
Vielzahl von Laufwerken aufweist, wobei einer der Blöcke eines jeden Streifens
Paritätsdaten speichert, die von den Daten, die in den anderen Blöcken des
Streifens gespeichert werden, erzeugt werden, wobei die Vorrichtung folgendes
aufweist:
einen Speicher zum Speichern von Daten, wobei der Speicher in Blöcke
eingeteilt ist, die mit der Blockstruktur der Vielzahl von Laufwerken kompatibel sind;
einen Prozessor, der mit dem Speicher verbunden ist, wobei der
Prozessor konfiguriert ist, um
einen aktualisierten Speicherblock zu identifizieren, der Daten speichert,
die auf eines der Vielzahl von Laufwerken geschrieben werden sollen;
einen vorherbestimmten Streifen zu identifizieren, wobei der
vorherbestimmte Streifen einen Festplatten-Block aufweist, der vom aktualisierten
Speicherblock überschrieben werden soll;
die Anzahl der I/O-Anfragen zu ermitteln, die von einem ersten Prozeß
benötigt werden, wobei der erste Prozess konfiguriert ist, um im Speicher alle
Daten, außer den Paritätsdaten, des vorherbestimmten Streifens aufzunehmen;
die Anzahl der I/O-Anfragen zu ermitteln, die von einem zweiten Prozeß
benötigt werden, wobei der zweite Prozess konfiguriert ist, um im Speicher den zu
überschreibenden Block und den Paritätsblock des vorherbestimmten Streifens
aufzunehmen; und
den ersten oder zweiten Prozeß auszuwählen, um die I/O-Anfragen
durch Auswählen des Prozesses, der die geringste Anzahl an I/O-Anfragen
benötigt, durchzuführen, um im Speicher die Blöcke der identifizierten Streifen
aufzunehmen, die notwendig sind, um die Paritätsdaten des vorherbestimmten
Streifens zu erzeugen.
2. Vorrichtung nach Anspruch 1, bei der der Speicher einen
nichtflüchtigen Speicher aufweist, um Daten, die auf die Vielzahl von Laufwerken
geschrieben werden sollen, zu speichern, und einen flüchtigen Speicher, um Daten,
die von der Vielzahl von Laufwerken gelesen werden, zu speichern.
3. Vorrichtung nach Anspruch 1, bei der der Prozessor weiterhin
konfiguriert ist, um zu ermitteln, ob die Daten der Festplatten-Blöcke des
vorherbestimmten Streifens im Speicher als Speicherblöcke gespeichert sind.
4. Vorrichtung nach Anspruch 1, bei der der Prozessor weiterhin
konfiguriert ist, um
die Paritätsdaten des vorherbestimmten Streifens von allen Daten, außer
den Paritätsdaten, des vorherbestimmten Streifens zu erzeugen, und
die Paritätsdaten des vorherbestimmten Streifens vom aktualisierten
Speicherblock, vom zu überschreibenden Festplatten-Block, und vom Paritätsblock
des vorherbestimmten Streifens zu erzeugen.
5. Vorrichtung nach Anspruch 4, bei der die Prozessorkonfiguration zum
Erzeugen der Paritätsdaten ein Durchführen einer exklusiven ODER-Funktion
aufweist.
6. Verfahren zum Erzeugen von Paritätsdaten für eine Vielzahl von
Laufwerken, wobei der Speicherbereich eines jeden der Vielzahl von Laufwerken in
eine Vielzahl von Blöcken unterteilt ist, die weiterhin in eine Vielzahl von Streifen
organisiert sind, wobei jeder der Vielzahl von Streifen einen Block von jedem der
Vielzahl von Laufwerken aufweist, wobei einer der Blöcke eines jeden Streifens
Paritätsdaten speichert, die von den Daten, die in den anderen Blöcken des
Streifens gespeichert werden, erzeugt werden, wobei das Verfahren folgende
Schritte aufweist:
Speichern von Daten in einem Speicher, wobei der Speicher in Blöcke
eingeteilt ist, die mit der Blockstruktur der Vielzahl von Laufwerken kompatibel sind;
Identifizieren eines aktualisierten Speicherblocks, der Daten speichert,
die in eines der Vielzahl von Laufwerken geschrieben werden sollen;
Identifizieren eines vorherbestimmten Streifens, der einen Festplatten-
Block aufweist, der vom aktualisierten Speicherblock überschrieben werden soll;
Ermitteln der Anzahl der I/O-Anfragen, die von einem ersten Prozeß
benötigt werden, wobei der erste Prozess konfiguriert ist, um im Speicher alle
Daten, außer den Paritätsdaten, des vorherbestimmten Streifens aufzunehmen;
Ermitteln der Anzahl der I/O-Anfragen, die von einem zweiten Prozeß
benötigt werden, wobei der zweite Prozess konfiguriert ist, um im Speicher den zu
überschreibenden Block und den Paritätsblock des vorherbestimmten Streifens
aufzunehmen; und
Aufnehmen der Blöcke des identifizierten Streifens in den Speicher, die
notwendig sind, um die Paritätsdaten des vorherbestimmten Streifens mit der
geringsten Anzahl von I/O-Anfragen zu erzeugen, wie von der Anzahl der I/O-
Anfragen ermittelt, die vom ersten und zweiten Prozeß benötigt werden.
7. Verfahren nach Anspruch 6, das weiterhin folgende Schritte aufweist:
Speichern von Daten, die in eine Vielzahl von Laufwerken in einen
nichtflüchtigen Speicher geschrieben werden sollen, und
Speichern von Daten, die von einer Vielzahl von Laufwerken in einem
flüchtigen Speicher gelesen werden.
8. Verfahren nach Anspruch 6, das weiterhin folgenden Schritt aufweist:
Ermitteln, ob die Daten der Festplatten-Blöcke des vorherbestimmten
Streifens im Speicher als Speicherblöcke gespeichert sind.
9. Verfahren nach Anspruch 6, das folgenden Schritt aufweist:
Erzeugen der Paritätsdaten des vorherbestimmten Streifens von allen
Daten, außer den Paritätsdaten, des vorherbestimmten Streifens, Erzeugen der
Paritätsdaten des vorherbestimmten Streifens vom aktualisierten Speicherblock
durch eine ODER-Funktion, vom zu überschreibenden Festplatten-Block, und vom
vorherbestimmten Streifen, wobei die Paritätsdaten gemäß dem Schritt, der die
geringsten I/O-Anfragen benötigt, erzeugt werden.
10. Verfahren nach Anspruch 6, das weiterhin den Schritt des Erzeugens
der Paritätsdaten durch eine exklusive ODER-Funktion aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/929,076 US5315602A (en) | 1992-08-12 | 1992-08-12 | Optimized stripe detection for redundant arrays of disk drives |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69324974D1 DE69324974D1 (de) | 1999-06-24 |
DE69324974T2 true DE69324974T2 (de) | 2000-01-13 |
Family
ID=25457277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69324974T Expired - Fee Related DE69324974T2 (de) | 1992-08-12 | 1993-08-10 | Optimierte Stricherkennung für redundante Speicherplattenanordnung |
Country Status (3)
Country | Link |
---|---|
US (1) | US5315602A (de) |
EP (1) | EP0586117B1 (de) |
DE (1) | DE69324974T2 (de) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3058743B2 (ja) * | 1992-01-21 | 2000-07-04 | 株式会社日立製作所 | ディスクアレイ制御装置 |
WO1993023803A1 (fr) * | 1992-05-21 | 1993-11-25 | Fujitsu Limited | Appareil de commande pour pile de disques |
US5666511A (en) * | 1992-10-08 | 1997-09-09 | Fujitsu Limited | Deadlock suppressing schemes in a raid system |
GB2273798A (en) * | 1992-12-22 | 1994-06-29 | Ibm | Cache system for disk array. |
US5463765A (en) * | 1993-03-18 | 1995-10-31 | Hitachi, Ltd. | Disk array system, data writing method thereof, and fault recovering method |
US5574851A (en) * | 1993-04-19 | 1996-11-12 | At&T Global Information Solutions Company | Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations |
CA2121852A1 (en) * | 1993-04-29 | 1994-10-30 | Larry T. Jost | Disk meshing and flexible storage mapping with enhanced flexible caching |
US5867640A (en) * | 1993-06-01 | 1999-02-02 | Mti Technology Corp. | Apparatus and method for improving write-throughput in a redundant array of mass storage devices |
EP0701716B1 (de) * | 1993-06-03 | 2002-08-14 | Network Appliance, Inc. | Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem |
US6138126A (en) * | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
ATE195825T1 (de) * | 1993-06-03 | 2000-09-15 | Network Appliance Inc | Anordnung eines dateisystems zum beschreiben beliebiger bereiche |
US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
JPH08511368A (ja) | 1993-06-04 | 1996-11-26 | ネットワーク・アプリアンス・コーポレーション | 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 |
US5396620A (en) * | 1993-12-21 | 1995-03-07 | Storage Technology Corporation | Method for writing specific values last into data storage groups containing redundancy |
US5463643A (en) * | 1994-03-07 | 1995-10-31 | Dell Usa, L.P. | Redundant memory channel array configuration with data striping and error correction capabilities |
US5522032A (en) * | 1994-05-05 | 1996-05-28 | International Business Machines Corporation | Raid level 5 with free blocks parity cache |
US5634109A (en) * | 1994-06-20 | 1997-05-27 | International Business Machines Corporation | Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache |
US5623595A (en) * | 1994-09-26 | 1997-04-22 | Oracle Corporation | Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system |
US5748885A (en) * | 1994-12-23 | 1998-05-05 | Emc Corporation | Method and apparatus for reduction of I/O operations in persistent storage system |
US5778426A (en) * | 1995-10-23 | 1998-07-07 | Symbios, Inc. | Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method |
US5862158A (en) * | 1995-11-08 | 1999-01-19 | International Business Machines Corporation | Efficient method for providing fault tolerance against double device failures in multiple device systems |
US5742752A (en) * | 1995-12-29 | 1998-04-21 | Symbios Logic Inc. | Method for performing a RAID stripe write operation using a drive XOR command set |
US5720025A (en) * | 1996-01-18 | 1998-02-17 | Hewlett-Packard Company | Frequently-redundant array of independent disks |
US6055577A (en) * | 1996-05-06 | 2000-04-25 | Oracle Corporation | System for granting bandwidth for real time processes and assigning bandwidth for non-real time processes while being forced to periodically re-arbitrate for new assigned bandwidth |
US5860091A (en) * | 1996-06-28 | 1999-01-12 | Symbios, Inc. | Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications |
US6098114A (en) | 1997-11-14 | 2000-08-01 | 3Ware | Disk array system for processing and tracking the completion of I/O requests |
JPH11203056A (ja) | 1998-01-19 | 1999-07-30 | Fujitsu Ltd | 入出力制御装置及びアレイディスク装置 |
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 |
US6282671B1 (en) * | 1998-11-10 | 2001-08-28 | International Business Machines Corporation | Method and system for improved efficiency of parity calculation in RAID system |
US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6636879B1 (en) | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
US6718435B2 (en) | 2001-08-14 | 2004-04-06 | International Business Machines Corporation | Method and system for migrating data in a raid logical drive migration |
US7120826B2 (en) | 2002-03-29 | 2006-10-10 | International Business Machines Corporation | Partial mirroring during expansion thereby eliminating the need to track the progress of stripes updated during expansion |
US6857001B2 (en) * | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7024586B2 (en) * | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
US6904498B2 (en) * | 2002-10-08 | 2005-06-07 | Netcell Corp. | Raid controller disk write mask |
US7146461B1 (en) | 2003-07-01 | 2006-12-05 | Veritas Operating Corporation | Automated recovery from data corruption of data volumes in parity RAID storage systems |
JP2005070950A (ja) * | 2003-08-21 | 2005-03-17 | Sanyo Electric Co Ltd | プログラム処理装置 |
US7188303B2 (en) * | 2003-12-29 | 2007-03-06 | Intel Corporation | Method, system, and program for generating parity data |
US7353423B2 (en) | 2004-09-24 | 2008-04-01 | International Business Machines Corporation | System and method for improving the performance of operations requiring parity reads in a storage array system |
US7370261B2 (en) * | 2005-05-09 | 2008-05-06 | International Business Machines Corporation | Convolution-encoded raid with trellis-decode-rebuild |
US7401253B2 (en) * | 2005-05-09 | 2008-07-15 | International Business Machines Corporation | Convolution-encoded data storage on a redundant array of independent devices |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US7904672B2 (en) * | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
US8667379B2 (en) * | 2006-12-20 | 2014-03-04 | International Business Machines Corporation | Apparatus and method to generate, store, and read, a plurality of error correction coded data sets |
US7849275B2 (en) | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US7853751B2 (en) * | 2008-03-12 | 2010-12-14 | Lsi Corporation | Stripe caching and data read ahead |
CN101650675B (zh) * | 2009-08-28 | 2011-10-26 | 中兴通讯股份有限公司 | 利用异或校验磁盘阵列写数据的方法及装置 |
JP5923964B2 (ja) * | 2011-12-13 | 2016-05-25 | 富士通株式会社 | ディスクアレイ装置、制御装置、およびプログラム |
JP6367704B2 (ja) * | 2014-12-25 | 2018-08-01 | 株式会社バイオス | 記憶制御システム及び記憶制御装置 |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4437155A (en) * | 1980-11-14 | 1984-03-13 | Sperry Corporation | Cache/disk subsystem with dual aging of cache entries |
US4489378A (en) * | 1981-06-05 | 1984-12-18 | International Business Machines Corporation | Automatic adjustment of the quantity of prefetch data in a disk cache operation |
US4636946A (en) * | 1982-02-24 | 1987-01-13 | International Business Machines Corporation | Method and apparatus for grouping asynchronous recording operations |
US5109500A (en) * | 1986-10-31 | 1992-04-28 | Hitachi, Ltd. | Disk drive control unit having sets of operating command and operation length information and generating end signal based upon operation length information |
US4972364A (en) * | 1987-02-13 | 1990-11-20 | International Business Machines Corporation | Memory disk accessing apparatus |
US4972316A (en) * | 1987-03-30 | 1990-11-20 | International Business Machines Corporation | Method of handling disk sector errors in DASD cache |
US4882642A (en) * | 1987-07-02 | 1989-11-21 | International Business Machines Corporation | Sequentially processing data in a cached data storage system |
US5109485A (en) * | 1988-08-30 | 1992-04-28 | Ncr Corporation | Method for transferring data between memories |
AU630635B2 (en) * | 1988-11-14 | 1992-11-05 | Emc Corporation | Arrayed disk drive system and method |
US5124987A (en) * | 1990-04-16 | 1992-06-23 | Storage Technology Corporation | Logical track write scheduling system for a parallel disk drive array data storage subsystem |
US5263145A (en) * | 1990-05-24 | 1993-11-16 | International Business Machines Corporation | Method and means for accessing DASD arrays with tuned data transfer rate and concurrency |
JPH0477916A (ja) * | 1990-07-20 | 1992-03-12 | Tokico Ltd | 磁気ディスク装置 |
JPH0816886B2 (ja) * | 1990-12-21 | 1996-02-21 | 富士通株式会社 | 高速書き込み方法 |
US5274799A (en) * | 1991-01-04 | 1993-12-28 | Array Technology Corporation | Storage device array architecture with copyback cache |
US5239640A (en) * | 1991-02-01 | 1993-08-24 | International Business Machines Corporation | Data storage system and method including data and checksum write staging storage |
JP2743606B2 (ja) * | 1991-04-11 | 1998-04-22 | 三菱電機株式会社 | アレイ型記録装置 |
-
1992
- 1992-08-12 US US07/929,076 patent/US5315602A/en not_active Expired - Lifetime
-
1993
- 1993-08-10 EP EP93306322A patent/EP0586117B1/de not_active Expired - Lifetime
- 1993-08-10 DE DE69324974T patent/DE69324974T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0586117A1 (de) | 1994-03-09 |
EP0586117B1 (de) | 1999-05-19 |
DE69324974D1 (de) | 1999-06-24 |
US5315602A (en) | 1994-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69324974T2 (de) | Optimierte Stricherkennung für redundante Speicherplattenanordnung | |
DE69131551T2 (de) | Logische Aufteilung eines Speichersystems mit redundanter Matrix | |
DE69434381T2 (de) | Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers | |
DE69126416T2 (de) | Speichergerätanordnungsarchitektur mit Copyback-Cachespeicher | |
DE19581103C2 (de) | Verfahren und Vorrichtung zur Echtzeit-Rekonstruktion zerstörter Daten in einem Speichersystem mit redundanter Anordnung | |
DE69130279T2 (de) | On-line Wiederherstellung eines fehlerhaften redundanten Gruppensystems | |
DE69131480T2 (de) | Speicher für platteneinheit | |
DE69127895T4 (de) | Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem | |
DE69331369T2 (de) | Betriebsverfahren einer Speicherplattenanordnung | |
DE69129444T2 (de) | On-Line-Wiederherstellung von Redundanz-Information in einem redundanten Matrixsystem | |
DE69528443T2 (de) | Betriebsverfahren einer Speicherplattenanordnung | |
DE69131562T2 (de) | Verfahren und Anordnung zur Wiederherstellung von durch Parität geschützten Daten | |
DE69735400T2 (de) | Speicherplattenanordnung | |
DE69727083T2 (de) | Überprüfungssystem um die integrität der parität einer speicherplattenmatrix aufrechtzuerhalten | |
DE19983218B4 (de) | Verfahren zum Codieren von Datensignalen zur Speicherung | |
DE69221279T2 (de) | Plattenlaufwerkmatrix mit redundanten Kanälen | |
DE60304194T2 (de) | Verfahren und vorrichtung zur tolerierung von mehreren abhängigen oder zwei beliebigen fehlern in einer speicherplattenanordnung | |
DE69430599T2 (de) | Dynamisch ausbaubares Speichereinheitsmatrixsystem | |
DE69807101T2 (de) | Segmentiertes dma mit xor-puffer für speicheruntersysteme | |
DE68919219T2 (de) | Speicher für platteneinheit. | |
DE69631106T2 (de) | On-line-Rekonfiguration einer Speicherplattenanordnung | |
DE69502125T2 (de) | Synchrone Datenfernduplizierung | |
DE69533570T2 (de) | Verfahren und System zum Erkennen von Datenverlust in einem hierarchischen Datenspeichersystem | |
DE68926436T2 (de) | Plattenlaufwerkanordnungssystem und Verfahren | |
DE69431186T2 (de) | Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |