DE69324974T2 - Optimierte Stricherkennung für redundante Speicherplattenanordnung - Google Patents

Optimierte Stricherkennung für redundante Speicherplattenanordnung

Info

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
Application number
DE69324974T
Other languages
English (en)
Other versions
DE69324974D1 (de
Inventor
Randy M. Arnott
Eric S. Noya
Mitchell N. Rosich
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25457277&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69324974(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE69324974D1 publication Critical patent/DE69324974D1/de
Application granted granted Critical
Publication of DE69324974T2 publication Critical patent/DE69324974T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

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

    Gebiet der Erfindung
  • 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.
  • Hintergrund der Erfindung
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Detaillierte Beschreibung des bevorzugten Ausführungsbeispiels
  • 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.
DE69324974T 1992-08-12 1993-08-10 Optimierte Stricherkennung für redundante Speicherplattenanordnung Expired - Fee Related DE69324974T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 三菱電機株式会社 アレイ型記録装置

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