DE69225296T2 - Datenrekonstruktion in einem Speichergerätanordnungssystem - Google Patents
Datenrekonstruktion in einem SpeichergerätanordnungssystemInfo
- Publication number
- DE69225296T2 DE69225296T2 DE69225296T DE69225296T DE69225296T2 DE 69225296 T2 DE69225296 T2 DE 69225296T2 DE 69225296 T DE69225296 T DE 69225296T DE 69225296 T DE69225296 T DE 69225296T DE 69225296 T2 DE69225296 T2 DE 69225296T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- storage device
- reconstruction
- host
- disk drive
- 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
- 238000012546 transfer Methods 0.000 claims abstract description 194
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 46
- 230000003287 optical effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
-
- 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
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- 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
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Description
- Die vorliegende Erfindung betrifft Speichervorrichtungsarraysysteme. Im besonderen ist die vorliegende Erfindung auf ein Speichervorrichtungsarraysystem und ein Verfahren zum Betreiben eines Speichervorrichtungsarraysystems gerichtet, wodurch Datenübertragungen zu und/oder von einem Speichervorrichtungsarray während der Rekonstruktion von Daten, die in einer Speichervorrichtung enthalten sind, die sich in einem Ausfallzustand befindet, auf einer Ersatzspeichervorrichtung vorgesehen werden. Darüber hinaus betrifft die vorliegende Erfindung ein System und ein Verfahren, wodurch Schreiboperationen während der Rekonstruktion vorgesehen werden, wobei die Schreiboperationen so ausgeführt werden, daß die Rekonstruktionsoperation fehlertolerant ist, d. h., daß sie selbst dann erfolgen kann, wenn eine Fehlerbedingung auftreten sollte, die sonst die Rekonstruktion verhindern würde.
- Das typische Computersystem enthält einen Hostprozessor oder eine zentrale Verarbeitungseinheit (CPU) und eine oder mehrere Massenspeichervorrichtungen. Die Massenspeichervorrichtung wird im allgemeinen verwendet, um die Programme zu speichern, die der Hostprozessor ausführt, die Daten, bei denen das Programm arbeitet, wenn es ausgeführt wird, oder die Daten, die als Resultat des Ausführens des Programms erzeugt werden.
- Eine der populäreren Massenspeichervorrichtungen ist das Plattenlaufwerk. Das Plattenlaufwerk enthält wenigstens eine Platte, die dafür ausgelegt ist, um digitale Informationen zu speichern, auf die, zur Zeit, entweder magnetisch oder optisch zugegriffen werden kann. Die digitalen Informationen haben die Form von Bits, die entweder in einem "0"- oder einem "1"-Zustand sein können. Die Bits sind gewöhnlich in Bytes mit acht Bits gruppiert. Typischerweise sind die Daten auf konzentrischen Spuren gespeichert, die in Sektoren unterteilt sind. Jeder Sektor kann eine Anzahl von Bytes von Daten speichern, die im allgemeinen als Block bezeichnet wird. Um Daten auf die Platte zu schreiben und Daten von der Platte zu lesen, ist ein Wandler, der typischerweise als Lese-/Schreib-(R/W)-Kopf bezeichnet wird, in dem Plattenlaufwerk enthalten. Im allgemeinen kann der R/W-Kopf so bewegt werden, daß er über einer gewünschten Spur auf der Platte positioniert werden kann. Um die Platte bezüglich des R/W-Kopfes zu bewegen, so daß Daten zwischen einer Spur und dem R/W-Kopf Übertragen werden können, ist ein Motor in dem Plattenlaufwerk enthalten, um die Platte um ihren zentralen Punkt zu rotieren. Genauer gesagt, der Motor rotiert die Platte mit einer im wesentlichen konstanten Winkelgeschwindigkeit bezüglich des R/W-Kopfes. Wenn die Platte rotiert, werden Bytes von Daten zwischen dem R/W-Kopf und der Platte seriell Übertragen, d. h., sie werden byteweise Übertragen. Die Geschwindigkeit, mit der Daten zwischen der Platte und dem R/W-Kopf Übertragen werden können, hängt von der Dichte ab, mit der Daten auf der Platte gebildet werden können. Zusätzlich hängt die Datenübertragungsgeschwindigkeit von der Rotationsgeschwindigkeit der Platte ab, wie sie durch den Motor bestimmt wird.
- Während die Dichte, mit der Daten auf einer Platte aufgezeichnet werden können, zugenommen hat und infolgedessen die Datenübertragungsgeschwindigkeit bei einer gegebenen Rotationsgeschwindigkeit der Platte zugenommen hat, sind solche Erhöhungen der Datendichte relativ selten. Daher ist bei einer gegebenen Datendichte die Rotationsgeschwindigkeit der Platte bestimmend oder einschränkend hinsichtlich der Datenübertragungsgeschwindigkeit des Plattenlaufwerkes.
- Viele Hostprozessoren können jetzt Daten mit viel höheren Geschwindigkeiten Übertragen, als Plattenlaufwerke Daten Übertragen können. Als Resultat haben die Plattenlaufwerke, die in diesen Computersystemen verwendet werden, die Gesamtleistung des Systems begrenzt. Um diese Leistungsbegrenzung zu umgehen, sind Plattenlaufwerksspeichersysteme vorgeschlagen worden, in denen ein Array von Plattenlaufwerken verwen det wird, um parallele Datenübertragungen von verbundenen Daten mit einer höheren Geschwindigkeit zu erreichen, als sie mit einem vergleichbaren einzelnen Plattenlaufwerk erreichbar ist. Zum Beispiel können in einem Plattenlaufwerksarrayspeichersystem, das acht Plattenlaufwerke enthält, acht Bytes von verbundenen Daten parallel in das Plattenarray geschrieben werden, so daß ein Byte der verbundenen Daten in jedem der acht Plattenlaufwerke, die das Plattenarray bilden, angeordnet ist. Ähnlich können diese acht Bytes von Daten parallel gelesen werden, wenn es gewünscht wird. Im Gegensatz dazu hätten dieselben achtbytes von Daten auf ein oder von einem Plattenlaufwerk mit einer Platte und einem R/W-Kopf immer byteweise oder seriell geschrieben oder gelesen werden müssen.
- Während Plattenarrayspeichersysteme verbesserte Datenübertragungsgeschwindigkeiten vorsehen, sind sie nicht ohne Probleme. Ein besonderer Problemtyp ist der, wenn Daten von einem der Plattenlaufwerke in dem Array nicht gelesen werden können. Da verbundene Daten unter den Plattenlaufwerken, die das Array bilden, verteilt sind, werden durch das Unvermögen, Daten von einem Plattenlaufwerk zu lesen, typischerweise die verbundenen Daten von den anderen Plattenlaufwerken in dem Array bedeutungslos. Um sich diesem Problem zuzuwenden, sind verschiedene Lösungen zum Rekonstruieren der Daten, die in dem Ausfallplattenlaufwerk enthalten sind, auf einem Ersatzplattenlaufwerk vorgeschlagen worden, das dann, wenn die Rekonstruktion vollendet ist, den Platz des ausgefallenen Plattenlaufwerkes einnimmt. Die Rekonstruktion von Daten, die auf dem Ausfallplattenlaufwerk enthalten sind, ist möglich, weil während des Prozesses zum Verteilen und Schreiben der verbundenen Daten auf die Plattenlaufwerke des Arrays Paritätsdaten erzeugt werden und typischerweise auf ein Plattenlaufwerk geschrieben werden, welches Teil des Plattenlaufwerksarrays ist. Paritätsdaten sind Daten, die die Beziehung zwischen einer Gruppe von verbundenen Daten verkörpern, wie z. B. zwischen den acht Bits, die ein Byte bilden, oder einer Gruppe von Bytes, und die Rekonstruktion von Daten ermöglichen, wenn auf irgendwelche von der verbun denen Gruppe von Daten kein Zugriff möglich sein sollte. Falls bei einem Plattenlaufwerksarraysystem Daten, die in einem der Plattenlaufwerke in dem Array enthalten sind, nicht gelesen werden können, können die Daten rekonstruiert werden, vorausgesetzt, daß die Paritätsdaten und alle anderen verbundenen Daten, die verwendet wurden, um die Pantätsdaten zu erzeugen, verfügbar sind.
- Die Rekonstruktion, die gewöhnlich die Rekonstruktion von allen Daten, die in einem ausgefallenen Plattenlaufwerk enthalten sind, auf einem Ersatzplattenlaufwerk einschließt, ist ein sehr zeitaufwendiger Prozeß. Darüber hinaus sehen gegenwärtig bekannte Plattenlaufwerksarraysysteme keine Datenübertragungen zwischen dem Plattenarraysystem und dem Hostprozessor während der Rekonstruktion vor. Als Resultat wird, wenn eine Rekonstruktion läuft, die Leistung eines Computersystems, welches Datenübertragungen zwischen dem Plattenlaufwerksarraysystem und dem Hostprozessor erfordert, nachteilig beeinflußt. Deshalb ist ein Speichervorrichtungsarraysystem erforderlich, welches Datenübertragungen während des Rekonstruktionsprozesses gestattet und infolgedessen die Gesamtleistung des Computersystems während der Rekonstruktion verbessert.
- Im Hinblick sowohl auf Schreib- als auch auf Lesedatenübertragungsoperationen, die während des Rekonstruktionsprozesses erfolgen, bestehen verschiedene Probleme. Und zwar ist es wünschenswert, daß die Datenübertragungsoperation die Zeit zur Rekonstruktion nicht übermäßig verlängert. Außerdem sollte das Unterbringen von Datenübertragungsoperationen während der Rekonstruktion ein relativ unkomplizierter Prozeß sein und keinen übermäßigen Aufwand erfordern. Ferner ist es wünschenswert, daß die Rekonstruktionsoperation im Anschluß an den Ablauf einer spezifischen Zeitperiode ausgesetzt wird, so daß dem Hostprozessor Zugriff auf das Speichervorrichtungsarraysystem auf relativ regulärer Basis gewährt werden kann.
- Im Hinblick auf Schreibdatenübertragungen während der Rekonstruktion besteht ein weiteres Problem darin, die Schreibdatenübertragungsoperation auf eine Weise durchzuführen, die eine Fehlertoleranz für die Rekonstruktionsoperation vorsieht, d. h., die es gestattet, die Rekonstruktion fortzusetzen, obwohl ein Fehler aufgetreten ist, der sonst das Fortsetzen der Rekonstruktion verhindern würde.
- Auf Grund dessen sind ein Speichervorrichtungsarraysystem und ein Verfahren zum Verwenden solch eines Systems erforderlich, wodurch Datenübertragungen während der Rekonstruktion vorgesehen werden. Ferner sollten die Datenübertragungsoperationen, die während der Rekonstruktion vorgesehen werden, sich nicht wesentlich auf die Gesamtzeit auswirken, die für die Rekonstruktion erforderlich ist, relativ unkompliziert sein und keinen übermäßigen Aufwand erfordern. Zusätzlich werden Datenübertragungsoperationen während der Rekonstruktion auf relativ regulärer Basis gewünscht. Darüber hinaus ist es wünschenswert, daß Schreiboperationen, die während der Rekonstruktion erfolgen, auf eine Weise ablaufen, die es gestattet, daß die Rekonstruktion bei Vorliegen einer Fehlerbedingung, die sonst die Rekonstruktion verhindern würde, fortgesetzt wird.
- Das Dokument des Standes der Technik "Proceedings of the 16th International Conference on Very Large Databases", 13. - 16. August 1990, Brisbane, Australien, Seiten 162 - 173 von R. R. Muntz et al. offenbart ein Speichervorrichtungsarraysystem (RAID-System), welches eine Vielzahl von Plattenlaufwerken, ein redundantes Plattenlaufwerk und ein Ersatzplattenlaufwerk hat. Mittel sind auch für die Rekonstruktion von Daten und das Speichern der Daten auf dem Ersatzplattenlaufwerk nach Detektion eines Ausfalls in einem der Plattenlaufwerke vorgesehen. Es wird eine neue RAID- Organisation vorgeschlagen, bei der die Gruppengröße (Anzahl von Datenblöcken plus Parität) kleiner als die Clustergröße (Anzahl von Platten, über die die Gruppen von Datenblöcken verteilt sind) gemacht wird, um die Gruppen über einen größeren Cluster von Platten zu verteilen und dadurch die vergrößerte Last auf überlebenden Platten bei einem Ausfall einer einzelnen Platte zu verringern. Dieser Vorschlag wendet sich jedoch nicht dem Problem zu, wie die Rekonstruktion bei Vorhandensein einer zusätzlichen Fehlerbedingung, wie der Ausfall einer zweiten Platte, fortzuführen ist. Alle Schreiboperationen für die zuerst ausgefallene Platte werden auf die Ersatzplatte umgeleitet, so daß keine Möglichkeit besteht, die ausgefallene Platte wieder zu verwenden.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Speichervorrichtungsarraysystem vorgesehen, welches Datenübertragungen mit einem Host während der Rekonstruktion durchführen kann, mit: einer Vielzahl von Speichervorrichtungen zum Speichern von Gruppen von Daten, wobei jede Gruppe Dateneinheiten hat, die über die Vielzahl von Speichervorrichtungen verteilt sind, jede Gruppe von Daten redundant codiert ist, so daß, bei Nichtvorhandensein eines Fehlers, eine Teilmenge von der Vielzahl von Speichervorrichtungen zum Übertragen der Gruppe von Daten zu dem Host ausreicht; einer Ersatzspeichervorrichtung, zusätzlich zu der Vielzahl von Speichervorrichtungen, zur Verwendung beim Ersetzen einer ersten Speichervorrichtung von der Vielzahl von Speichervorrichtungen; bei dem ein Speichervorrichtungsarray die Vielzahl von Speichervorrichtungen und die Ersatzspeichervorrichtung enthält, so daß von einer Vielzahl der Datengruppen wenigstens erste und zweite Dateneinheiten, die auf der ersten Speichervorrichtung gespeichert sind, bei einer Rekonstruktion auf der Ersatzspeichervorrichtung rekonstruiert werden, wenn die erste Speichervorrichtung in einem ausgefallenen aber verwendbaren Zustand ist, bei dem Datenübertragungen, die wenigstens eine Lesedatenübertragung zu dem Host umfassen, noch, aber nur mit Schwierigkeit, möglich sind; einem Mittel zum Steuern von Datenübertragungen zwischen dem Host und dem Speichervorrichtungsarray, das enthält: (i) ein Mittel zum Bestimmen, wann die Rekonstruktion auszuführen ist; (ii) ein Datenrekonstruktionsmittel zum Ausführen der Rekonstruktion, wobei die erste Dateneinheit vor der zweiten Dateneinheit rekonstruiert wird und eine Rekonstruktionsgrenze (RCB) als Speicherstelle in der ersten Speichervorrichtung definiert wird, vor der die Rekonstruktion ausgeführt worden ist und nach der keine Rekonstruktion ausgeführt worden ist; (iii) ein Datenübertragungsdurchführmittel zum Durchführen einer Datenübertratung zwischen dem Host und irgendeiner der Speichervorrichtungen, die nicht die erste Speichervorrichtung ist, welche Datenübertragung zwischen der Rekonstruktion der ersten Dateneinheit und der Rekonstruktion der zweiten Dateneinheit erfolgt; und einem Rekonstruktionsfortsetzungsmittel zum Fortfahren mit der Rekonstruktion in dem Fall, wenn eine Datenübertragung bezüglich einer Stelle durchgeführt wird, die der Rekonstruktionsgrenze folgt, und wenn eine zweite Speichervorrichtung von der Vielzahl von Speichervorrichtungen keine erforderlichen Daten zur Rekonstruktion vorsehen kann, indem Daten von der ersten Speichervorrichtung auf die Ersatz speichervorrichtung kopiert werden.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Speichervorrichtungsarraysystem vorgesehen, welches Datenübertragungen mit einem Host während der Rekonstruktion durchführen kann, mit: einer Vielzahl von Speichervorrichtungen zum Speichern von Gruppen von Dateneinheiten, wobei jede Gruppe Dateneinheiten hat, die über die Vielzahl von Speichervorrichtungen verteilt sind, jede Gruppe von Daten redundant codiert ist, so daß, bei Nichtvorhandensein eines Fehlers, eine Teilmenge von der Vielzahl von Speichervorrichtungen zum Übertragen der Gruppe von Daten zu dem Host ausreicht; einer Ersatzspeichervorrichtung, zusätzlich zu der Vielzahl von Speichervorrichtungen, zur Verwendung beim Ersetzen einer ersten Speichervorrichtung von der Vielzahl von Speichervorrichtungen, bei dem ein Speichervorrichtungsarray die Vielzahl von Speichervorrichtungen und die Ersatzspeichervorrichtung enthält; einem Mittel zum Rekonstruieren einer Vielzahl von Dateneinheiten von der ersten Speichervorrichtung auf der Ersatzspeichervorrichtung, wenn die erste Speichervorrichtung in einem ausgefallenen aber verwendbaren Zustand ist, bei dem eine Lesedatenübertragung und eine Schreibdatenübertragung mit dem Host noch, aber nur mit Schwierigkeit, möglich sind, welche Vielzahl von Dateneinheiten in einer Vielzahl von Datengruppen enthalten ist; einem Mittel zum Zugreifen auf die Vielzahl von Dateneinheiten auf der Ersatzspeichervorrichtung nach der Rekonstruktion durch das Rekonstruktionsmittel für eine host-initiierte Datenübertragungsanforderung, die zum Übertragen von Daten, die der Vielzahl von Datengruppen entsprechen, zwischen dem Host und der Menge aller Speichervorrichtungen führt, die die Ersatzspeichervorrichtung einschließt, aber die erste Speichervorrichtung ausschließt, wobei diese Speichervorrichtungen angeordnet sind, um die Vielzahl von Datengruppen im wesentlichen gleichzeitig zu lesen oder zu schreiben, wenn die host-inituerte Datenübertragungsanforderung erfüllt wird; und einem Mittel zum Übertragen von Daten, die der Vielzahl von Datengruppen entsprechen, zwischen dem Host und der Menge von Speichervorrichtungen während der Rekonstruktion durch das Rekonstruktionsmittel, wobei das Übertragungsmittel angeordnet ist, um auf eine Datenstelle in jeder der ersten Speichervorrichtung und der Ersatzspeichervorrichtung zuzugreifen, wenn eine Schreibdatenübertragung von dem Host ausgeführt wird.
- Gemäß einem dritten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Durchführen von Datenübertragungen mit einem Host während der Rekonstruktion in einem Speichervorrichtungsarraysystem vorgesehen, mit den folgenden Schritten: Vorsehen einer Vielzahl von Speichervorrichtungen zum Speichern von Gruppen von Dateneinheiten, wobei jede Gruppe Dateneinheiten hat, die über die Vielzahl von Speichervorrichtungen verteilt werden, jede Gruppe von Daten redundant codiert wird, so daß, bei Nichtvorhandensein eines Fehlers, eine Teilmenge von der Vielzahl von Speichervorrichtungen zum Übertragen der Gruppe von Daten zu dem Host ausreicht; Vorsehen einer Ersatzspeichervorrichtung, zusätzlich zu der Vielzahl von Speichervorrichtungen, zur Verwendung beim Ersetzen einer ersten Speichervorrichtung von der Vielzahl von Speichervorrichtungen, welche Ersatz speichervorrichtung und welche Vielzahl von Speichervorrichtungen in einem Speichervorrichtungsarray enthalten sind; Ausführen einer Rekonstruktion, bei der von einer Vielzahl der Datengruppen wenigstens erste und zweite Dateneinheiten, die auf der ersten Speichervorrichtung gespeichert sind, auf der Ersatzspeichervorrichtung rekonstruiert werden, wenn die erste Speichervorrichtung in einem ausgefallenen aber verwendbaren Zustand ist, bei dem eine Lesedatenübertragung und eine Schreibdatenübertragung mit dem Host noch, aber nur mit Schwierigkeit, möglich sind; Übertragen von Daten zwischen dem Host und dem Speichervorrichtungsarray durch:
- (i) Bestimmen, wann die Rekonstruktion auszuführen ist;
- (ii) Ausführen der Rekonstruktion, wobei die erste Dateneinheit vor der zweiten Dateneinheit rekonstruiert wird und eine Rekonstruktionsgrenze (RCB) als Speicherstelle in der ersten Speichervorrichtung definiert wird, vor der die Rekonstruktion ausgeführt worden ist und nach der keine Rekonstruktion ausgeführt worden ist; und (iii) Durchführen einer Datenübertragung zwischen dem Host und irgendeiner der Speichervorrichtungen, die nicht die erste Speichervorrichtung ist, nach der Rekonstruktion der ersten Dateneinheit, aber vor der Rekonstruktion der zweiten Dateneinheit; und Fortsetzen der Rekonstruktion in dem Fall, wenn eine Datenübertragung bezüglich einer Stelle durchgeführt wird, die der Rekonstruktionsgrenze folgt, und wenn eine zweite Speichervorrichtung von der Vielzahl von Speichervorrichtungen keine erforderlichen Daten für die Rekonstruktion vorsehen kann, indem Daten von der ersten Speichervorrichtung auf die Ersatz speichervorrichtung kopiert werden.
- Gemäß einem vierten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Durchführen von Datenübertragungen mit einem Host während der Rekonstruktion in einem Speichervorrichtungsarraysystem vorgesehen, mit den folgenden Schritten: Vorsehen einer Vielzahl von Speichervorrichtungen zum Speichern von Gruppen von Dateneinheiten, wobei jede Gruppe Dateneinheiten hat, die über die Vielzahl von Speichervorrichtungen verteilt werden, jede Gruppe von Daten redundant codiert wird, so daß, bei Nichtvorhandensein eines Fehlers, eine Teilmenge von der Vielzahl von Speichervorrichtungen zum Übertragen der Gruppe von Daten zu dem Host ausreicht; Vorsehen einer Ersatzspeichervorrichtung, zusätzlich zu der Vielzahl von Speichervorrichtungen, zur Verwendung beim Ersetzen einer ersten Speichervorrichtung von der Vielzahl von Speichervorrichtungen, bei dem ein Speichervorrichtungsarray die Vielzahl von Speichervorrichtungen und die Ersatzspeichervorrichtung enthält; Rekonstruieren einer Vielzahl von Dateneinheiten von der ersten Speichervorrichtung auf der Ersatzspeichervorrichtung, wenn die erste Speichervorrichtung in einem ausgefallenen aber verwendbaren Zustand ist, bei dem eine Lesedatenübertragung und eine Schreibdatenübertragung mit dem Host noch, aber nur mit Schwierigkeit, möglich sind, welche Vielzahl von Dateneinheiten in einer Vielzahl von Datengruppen enthalten ist; Zugreifen auf die Vielzahl von Dateneinheiten auf der Ersatzspeichervorrichtung nach dem Schritt zum Rekonstruieren für eine hostinituerte Datenübertragungsanforderung, die zum Übertragen von Daten, die der Vielzahl von Datengruppen entsprechen, zwischen dem Host und der Menge aller Speichervorrichtungen führt, die die Ersatzspeichervorrichtung einschließt, aber die erste Speichervorrichtung ausschließt, wobei diese Speichervorrichtungen die Vielzahl von Datengruppen im wesentlichen gleichzeitig lesen oder schreiben, wenn die host-inituerte Datenübertragungsanforderung erfüllt wird; und Übertragen von Daten, die der Vielzahl von Datengruppen entsprechen, zwischen dem Host und der Menge von Speichervorrichtungen während des Rekonstruktionsschrittes; bei dem auf eine Datenstelle in jeder der ersten Speichervorrichtung und der Ersatzspeichervorrichtung zugegriffen wird, wenn der Schritt zum Übertragen ein Schreiben von dem Host auf das Speichervorrichtungsarray enthält.
- Durch Vorsehen eines Mittels, oder eines Schrittes, zur Rekonstruktionsfortsetzung, wie oben definiert, oder alternativ, durch Übertragen von Daten sowohl zu der ersten Speichervorrichtung als auch zu der Ersatzspeichervorrichtung während der Rekonstruktion wird gewährleistet, daß die Rekonstruktion fortgesetzt werden kann, selbst wenn eine Fehlerbedingung wie z. B. ein Ausfall einer zweiten Speichervorrichtung vorliegt.
- Die vorliegende Erfindung kann somit ein Speichervorrichtungsarraysystem und ein Verfahren zum Betreiben eines Speichervorrichtungsarraysystems vorsehen, wodurch Datenübertragungen zwischen dem System und systemexternen Vorrichtungen, wie einem Hostprozessor, vorgesehen werden, während Daten, die auf einer der Speichervorrichtungen in dem Array enthalten sind, auf einer anderen Speichervorrichtung in dem Array rekonstruiert werden.
- Die vorliegende Erfindung kann auch Datenübertragungen während der Rekonstruktion in einem Speichervorrichtungsarraysystem vorsehen, die die Zeit, die für die Rekonstruktionsoperation erforderlich ist, im wesentlichen nicht verlängern.
- Die vorliegende Erfindung kann auch Datenübertragungen zwischen einem Speichervorrichtungsarraysystem und einem Hostprozessor oder einer ähnlichen Vorrichtung während der Rekonstruktion vorsehen, die relativ unkompliziert und leicht zu implementieren sind.
- Die vorliegende Erfindung kann auch ein Speichervorrichtungsarraysystem vorsehen, welches Datenübertragungen mit einem Hostprozessor oder einer ähnlichen Vorrichtung während der Rekonstruktion durchführen kann, die einen relativ kleinen Aufwand beim Implementieren erfordern.
- Die vorliegende Erfindung kann auch ein Speichervorrichtungsarraysystem vorsehen, welches Datenübertragungen zwischen dem System und einem Hostprozessor oder einer ähnlichen Vorrichtung während der Rekonstruktion vorsieht und es dem Hostprozessor gestattet, solche Übertragungen auf relativ regulärer Basis durchzuführen.
- Die vorliegende Erfindung kann auch ein Speichervorrichtungsarraysystem vorsehen, welches Schreibdatenübertragungen zwischen einem Hostprozessor und dem System während einer Rekonstruktionsoperation vorsieht, die fehlertolerant ist.
- Das Speichervorrichtungsarraysystem der vorliegenden Erfindung enthält eine Vielzahl von Speichervorrichtungen, wobei jede Vorrichtung entweder in einem betriebsfähigen Zustand ist, bei dem Daten auf die Speichervorrichtung geschrieben werden können und von ihr gelesen werden können, oder in einem Ausfallzustand, bei dem solche Datenübertragungen verhindert (z. B. unterdrückt oder behindert) werden. Das System enthält ferner eine Ersatzspeichervorrichtung zur Verwendung beim Ersetzen von einer von der Vielzahl von Speichervorrichtungen, die in einem ausgefallenen Zustand ist. Die Vielzahl von Speichervorrichtungen und die Ersatzspeichervorrichtung bilden ein Speichervorrichtungsarray. Das System enthält ferner eine Vorrichtung zum Steuern der Datenübertragungen zu und von dem Speichervorrichtungsarray, die es ermöglicht, Daten, die in einer von der Vielzahl von Speichervorrichtungen, die in einem ausgefallenen Zustand ist, enthalten sind, auf der Ersatzspeichervorrichtung zu rekonstruieren, und ferner, während die Rekonstruktion erfolgt, Datenübertragungen zwischen dem Speichervorrichtungsarraysystem und einem Hostprozessor oder einer ähnlichen Vorrichtung vorsieht.
- In einer ersten Ausführungsform gemäß den unabhängigen Ansprüchen 1 und 7 ist das Speichervorrichtungsarraysystem dafür ausgelegt, die Situation zu bewältigen, bei der die Speichervorrichtung, deren Daten auf der Ersatzspeichervorrichtung rekonstruiert werden, in einem ausgefallenen Zustand ist, bei dem Daten noch, aber nur mit Schwierigkeit, auf die Speichervorrichtung geschrieben und von ihr gelesen werden können. Zum Beispiel können Daten von der Speichervorrichtung gelesen werden, aber nur, falls Fehlerwiederherstellungsprozeduren implementiert werden. Eine Speichervorrichtung, die zu diesen Typen von Datenübertragungen in der Lage ist, wird im folgenden als ausgefallene/verwendbare Speichervorrichtung bezeichnet. In dieser Situation führt die Vorrichtung zum Steuern der Datenübertragungen zwischen dem Speichervorrichtungsarray und dem Hostprozessor Schreiboperationen aus, so daß die Rekonstruktion von Daten, die auf dem ausgefallenen/verwendbaren Laufwerk enthalten sind, auf dem Ersatzplattenlaufwerk in einer vorbestimmten Reihenfolge vonstatten gehen kann. Der Rekonstruktionsprozeß läuft im allgemeinen mit einer definierten Reihenfolge ab, wobei die Stellen der Daten auf der ausgefallenen Speichervorrichtung, die gerade auf der Ersatzspeichervorrichtung rekonstruiert werden, und die vergleichbare Stelle auf der Ersatzspeichervorrichtung durch eine Rekonstruktionsgrenze gekennzeichnet sind. Daten auf dem ausgefallenen Laufwerk, die in der Reihenfolge vor der Rekonstruktionsgrenze liegen, sind, laut Definition, rekonstruiert worden. Im Gegensatz dazu sind Daten auf dem ausgefallenen Laufwerk, die an einem Punkt in der Reihenfolge angeordnet sind, der hinter der Rekonstruktionsgrenze liegt, nicht rekonstruiert worden. Die Vorrichtung zum Steuern von Datenübertragungen führt Schreiboperationen, bei denen Daten vor die Rekonstruktionsgrenze zu schreiben sind, so aus, daß Daten, die für die ausgefallene/verwendbare Speichervorrichtung bestimmt sind, auf die Ersatzspeichervorrichtung geschrieben werden. (Die Daten werden auf dieselbe Weise geschrieben, wenn die Speichervorrichtung, deren Daten auf der Ersatzspeichervorrichtung rekonstruiert werden, in einem ausgefallenen Zustand ist, bei dem sie nicht verwendbar ist.) Durch Schreiben dieser Daten auf die Ersatzspeichervorrichtung wird die Notwendigkeit vermieden, die Spur der Stelle beizubehalten, an der die Daten auf das Speichervorrichtungsarray geschrieben wurden, so daß die Daten, die für das ausgefallene/verwendbare Plattenlaufwerk bestimmt sind, an irgendeinem Punkt auf dem Ersatzlaufwerk rekonstruiert werden können. Die Schreiboperation wird infolgedessen während der Rekonstruktion auf eine Weise unterstützt, daß sie die Zeit zur Rekonstruktion im wesentlichen nicht verlängert, relativ unkompliziert ist und einen relativ kleinen Aufwand erfordert.
- Im Hinblick auf Schreiboperationen, bei denen Daten für das Speichervorrichtungsarray an eine Stelle nach der Rekonstruktionsgrenze geschrieben werden, zieht die Vorrichtung zum Steuern von Datenübertragungen einen Vorteil aus dem ausgefallenen/verwendbaren Status und schreibt Daten auf die ausgefallene/verwendbare Speichervorrichtung. Demzufolge sind, wenn der Rekonstruktionsprozeß an der Stelle erfolgt, wo die Schreiboperation stattfand, die Daten in dem ausgefallenen/verwendbaren Laufwerk gültig und können verwendet werden, um den Rekonstruktionsprozeß in dem Falle am Laufen zu halten, wenn die anderen Speichervorrichtungen nicht verwendet werden können, um die Daten in der ausgefallenen/verwendbaren Speichervorrichtung zu rekonstruieren. In einer Ausführungsform werden die Daten in dem ausgefallenen/verwendbaren Laufwerk auf das Ersatzlaufwerk kopiert, wenn eine oder mehrere der anderen Speichervorrichtungen nicht die notwendigen Informationen zur Rekonstruktion von Daten auf der ausgefallenen/verwendbaren Speichervorrichtung vorsehen können.
- Um das Beibehalten der Spur zu vermeiden, ob nun Schreiboperationen vor oder nach der Rekonstruktionsgrenze während der Rekonstruktion der Daten auf einer ausgefallenen/verwendbaren Speichervorrichtung stattfinden, wird bei einer weiteren Ausführungsform der Erfindung eine Vorrichtung zum Steuern der Datenübertragungen eingesetzt, die identische Daten sowohl auf die ausgefallene/verwendbare Speichervorrichtung als auch auf die Ersatzspeichervorrichtung schreibt. Demzufolge wird der Vorteil realisiert, der hinsichtlich des Schreibens von Datenübertragungen vor und nach der Rekonstruktionsgrenze zu verzeichnen ist, und der weitere Vorteil, nicht bestimmen zu müssen, ob die Übertragung vor oder nach der Rekonstruktionsgrenze erfolgte. Vorzugsweise erfolgt das Schreiben von identischen Daten sowohl auf die ausgefallene/verwendbare Speichervorrichtung als auch auf die Ersatzspeichervorrichtung im wesentlichen gleichzeitig. Dadurch wird die Situation vermieden, bei der Daten in der ausgefallenen/verwendbaren Speichervorrichtung nicht aktuell sind und die oben erwähnte Fehlerbedingung eintritt. Falls dies der Fall wäre, könnte die Rekonstruktion nicht fortgesetzt werden.
- In einer zweiten Ausführungsform gemäß den unabhängigen Ansprüchen 6 und 12 wird bei dem Speichervorrichtungsarraysystem der vorliegenden Erfindung eine Vorrichtung zum Steuern von Datenübertragungen zu und von dem Speichervorrichtungsarray während der Rekonstruktion eingesetzt, die Lesedatenübertragungsoperationen durchführt, indem die Stelle der Rekonstruktionsgrenze überwacht wird und die Lesedatenübertragung auf der Basis dessen durchgeführt wird, ob die Übertragung vor oder nach der Rekonstruktionsgrenze erfolgt. Leseoperationen vor der Rekonstruktionsgrenze werden durchgeführt, indem die Daten in der Vielzahl von Speichervorrichtungen, die nicht die ausgefallene/verwendbare Speichervorrichtung sind, und die Daten in der Ersatzspeichervorrichtung, die, vor der Rekonstruktionsgrenze, die rekonstruierten Daten von der ausgefallenen/verwendbaren Speichervorrichtung enthält, gelesen werden. (Die Daten werden auf dieselbe Weise gelesen, wenn die Speichervorrichtung, deren Daten auf der Ersatzspeichervorrichtung rekonstruiert werden, in einem ausgefallenen Zustand ist, bei dem sie nicht verwendbar ist.) Im Hinblick auf Leseoperationen an Stellen, die hinter der Rekonstruktionsgrenze liegen, führt die Vorrichtung zum Steuern von Übertragungen die Leseoperation so aus, daß Daten von der ausgefallenen/verwendbaren Speichervorrichtung, unter Ausnutzung ihres ausgefallenen/verwendbaren Status, und der Vielzahl von Speichervorrichtungen, die nicht die ausgefallene/verwendbare Speichervorrichtung sind, gelesen werden. Somit führt das Speichervorrichtungsarraysystem Lesedatenübertragungen zwischen dem Speichervorrichtungsarray und dem Hostprozessor auf eine Weise aus, die relativ unkompliziert ist, keinen großen Aufwand erfordert und die Gesamtzeit, die zur Vollendung einer Rekonstruktionsoperation erforderlich ist, im wesentlichen nicht verlängert.
- Die Erfindung sieht relativ reguläre Datenübertragungen zwischen dem Speichervorrichtungsarraysystem und einem Hostprozessor während des Rekonstruktionsprozesses vor. Genauer gesagt, das Mittel zum Steuern von Datenübertragungen ist mit einem vorbestimmten Zeitintervall versehen, währenddem die Rekonstruktion stattfinden kann und nach dem die Rekonstruktion, falls sie nicht vollendet ist, ausgesetzt wird, so daß der Host auf das Speichervorrichtungsarray für Datenübertragungsoperationen zugreifen kann. Demzufolge wird dem Host während des relativ langwierigen Rekonstruktionsprozesses Zugriff auf das Speichervorrichtungsarray für Datenübertragungsoperationen auf einer relativ regulären Basis gewährt.
- Als Beispiel wird Bezug auf die beiliegenden Zeichnungen genommen, in denen:--
- Fig. 1 ein Blockdiagramm eines Computersystems ist, das einen Hostprozessor und ein Plattenspeicherarraysystem enthält, welches die vorliegende Erfindung verkörpert;
- Fig. 2 ein Blockdiagramm des Arraysteuermoduls ist, der in Fig. 1 gezeigt ist und verwendet wird, um Datenübertragungen zwischen dem Hostprozessor und dem Plattenlaufwerksarray zu erleichtern;
- Fig. 3 die Reihenfolge von Operationen zeigt, die in dem Plattenspeicherarraysystem von Fig. 1 während der Rekonstruktion von Daten, die in einem ausgefallenen Plattenlaufwerk enthalten sind, auf einem Ersatzplattenlaufwerk stättfinden;
- Fig. 4 eine Schreiboperation während der Rekonstruktion zeigt, bei der Daten für das Plattenlaufwerksarray an eine Stelle vor der Rekonstruktionsgrenze geschrieben werden;
- Fig. 5A eine Schreiboperation während der Rekonstruktion zeigt, bei der Daten für das Plattenlaufwerksarray an eine Stelle nach der Rekonstruktionsgrenze geschrieben werden;
- Fig. 5B-5C die Fehlertoleranz einer Ausführungsform in der Situation zeigen, bei der die Rekonstruktion an der Stelle erfolgt, an die Daten zuvor geschrieben wurden, und eines der anderen Plattenlaufwerke nicht die notwendigen Daten zur Rekonstruktion vorsehen kann;
- Fig. 6 eine Schreiboperation während der Rekonstruktion von Daten zeigt, die auf einem ausgefallenen/verwendbaren Plattenlaufwerk enthalten sind, wobei die Notwendigkeit zum Überwachen der Stelle, bezüglich der Rekonstruktionsgrenze, an die Daten geschrieben werden, vermieden wird;
- Fig. 7A-7C die Fehlertoleranz einer Ausführungsform in der Situation zeigen, bei der eine Schreiboperation während der Rekonstruktion an einer Stelle vor der Rekonstruktionsgrenze erfolgt und ein anschließender Energieausfall vorkommt, der es erforderlich macht, die Rekonstruktion von neuem zu beginnen; und
- Fig. 8A-8B Leseoperationen während der Rekonstruktion zeigen, bei denen Daten vor bzw. nach der Rekonstruktionsgrenze geschrieben sind.
- Fig. 1 zeigt ein Computersystem 20, welches einen Hostprozessor oder eine CPU 22 und ein Plattenlaufwerksarraysystem 24 enthält, das Daten zu und von dem Hostprozessor 22 überträgt. Die zwei Typen von Datenübertragungen, die zwi schen dem Hostprozessor 22 und dem Plattenlaufwerksarraysystem 24 auftreten können, sind Schreibdatenübertragungen und Lesedatenübertragungen, aus der Perspektive des Hostprozessors 22 gesehen. Genauer gesagt, Schreibdatenübertragungen sind Datenübertragungen von dem Hostprozessor 22 zu dem Plattenlaufwerksarraysystem 24. Lesedatenübertragungen sind Übertragungen von Daten von dem Plattenlaufwerksarraysystem 24 zu dem Hostprozessor 22. Datenübertragungen zwischen dem Hostprozessor 22 und dem Plattenlaufwerksarraysystem 24 erfolgen über eine optische Kommunikationsverbindung, die Daten mit einer Geschwindigkeit von 36 Mb/s überträgt.
- Das Plattenlaufwerksarraysystem 24 enthält einen optischen Steuermodul (OCM) 26 zum Verarbeiten von Datenübertragungen mit dem Hostprozessor 22 über eine vier Byte breite optische Kommunikationsverbindung. Der OCM 26 arbeitet, um die Daten, die über die optische Kommunikationsverbindung Übertragen werden, zwischen optischen Daten und elektrischen Daten zu konvertieren. Genauer gesagt, im Fall einer Schreibdatenübertragung konvertiert der OCM 26 optische Daten, die durch den Host 22 vorgesehen werden, in elektrische Daten. Umgekehrt konvertiert der OCM 26 im Fall einer Lesedatenübertragung elektrische Daten in optische Daten zur Übertragung zu dem Host 22.
- Das Plattenlaufwerksarraysystem 24 enthält auch einen Arraysteuermodul (ACM) 28 zur Verwendung beim Steuern von Datenübertragungen zwischen dem OCM 26 und einem Plattenlaufwerksarray 30. Unter anderem demultiplexiert der ACM 28 im Falle von Schreiboperationen die Nutzerdaten, die durch den OCM 26 vorgesehen werden, in acht bytebreite Kanäle, die jeweils mit einem separaten Plattenlaufwerk des Plattenlaufwerksarrays 30 operativ kommunizieren. Während Leseoperationen multiplexiert der ACM 28 Daten, die durch die acht Kanäle vorgesehen werden, zur Übertragung über die vier Kanäle zu dem OCM 26.
- Das Plattenlaufwerksarray 30 enthält ferner Plattenlaufwerke 32-0 bis 32-7 zum Speichern, während der normalen Operation, von Daten, die durch den Hostprozessor 22 auf das Plattenlaufwerksarray 30 geschrieben werden, und zum Zuführen von Daten zu dem Hostprozessor 22 während Leseoperationen. Das Plattenlaufwerksarray 30 enthält ferner ein Paritätsplattenlaufwerk 34 zum Aufnehmen von Paritätsdaten bezüglich der Nutzerdaten, die in den Plattenlaufwerken 32-0 bis 32-7 gespeichert sind. Paritätsdaten sind Daten, die eine Beziehung zwischen verbundenen Daten, die in jedem der Plattenlaufwerke 32-0 bis 32-7 gespeichert sind, darstellen und die verwendet werden können, um Daten, die auf einem der Plattenlaufwerke 32-0 bis 32-7 enthalten sind, zu rekonstruieren, wenn solche Daten nicht verfügbar sein sollten. Zum Beispiel wird angenommen, daß acht Bytes von verbundenen Nutzerdaten auf das Plattenlaufwerksarray 30 geschrieben sind, so daß ein Byte der acht Bytes auf jedem der Plattenlaufwerke 32-0 bis 32-7 angeordnet ist und ein Paritätsbyte für die acht Bytes von verbundenen Nutzerdaten auf dem Paritätsplattenlaufwerk 34 angeordnet ist. Ferner wird angenommen, daß beim Versuch; alle verbundenen Daten von den Plattenlaufwerken 32-0 bis 32-7 zu lesen, das Plattenlaufwerk 32-7 nicht in der Lage ist, sein Byte der verbundenen acht Bytes von Nutzerdaten zu liefern. In diesem Fall können die verbundenen Nutzerdaten, die in den Plattenlaufwerken 32-0 bis 32-6 enthalten sind, und das Paritätsbyte, das in dem Paritätsplattenlaufwerk 34 enthalten ist, verwendet werden, um das Byte der verbundenen Daten, das in dem Plattenlaufwerk 32-7 enthalten ist, zu rekonstruieren. Das Plattenlaufwerksarray 30 enthält auch ein heißes Ersatzplattenlaufwerk 36, welches im folgenden einfach als Ersatzplattenlaufwerk 36 bezeichnet wird, zum Ersetzen eines der Plattenlaufwerke 32-0 bis 32-7 und des Paritätsplattenlaufwerkes 34, wenn eines dieser Plattenlaufwerke ausfallen sollte. Der Ausdruck "heiß" bedeutet, daß die Platte in dem Ersatzplattenlaufwerk 36 auf die nominale Rotationsgeschwindigkeit gebracht worden ist, und daß das Ersatzplattenlaufwerk 36 Datenübertragungen verarbeiten kann. Jedes der Plattenlaufwerke 32-0 bis 32-7, 34 und 36 kann aus einer Vielzahl von physikalischen Laufwerken bestehen, wie gezeigt.
- Unter Bezugnahme auf Fig. 2 enthält der Arraysteuermodul 28 einen Arraycontroller 38 zum Verarbeiten von Befehlen, die durch den Hostprozessor 22 ausgegeben wurden, und dabei zum Koordinieren der Operation von einer Vielzahl von Vorrichtungscontrollern 40. Jeder der Vorrichtungscontroller 40 ist einem der Plattenlaufwerke in dem Plattenlaufwerksarray 30 zugeordnet und arbeitet als Reaktion auf Instruktionen, die durch den Arraycontroller 38 ausgegeben werden, um die Operation seines Plattenlaufwerkes zu steuern. Der Arraycontroller 38 enthält eine parallele Datenübertragungsschnittstelle (PDTI) 42 zum Demultiplexieren und Multiplexieren von Daten während Schreib- bzw. Leseoperationen. Die PDTI 42 erzeugt auch Paritätsdaten für die Nutzerdaten, die durch den Hostprozessor 22 während Schreiboperationen vorgesehen werden. Die Paritätsdaten werden als Teil der Schreib-Operation auf das Paritätsplattenlaufwerk 34 geschrieben. Die PDTI 42 enthält einen ersten Arraydatenprozessor A (ADPA) 44A und einen zweiten Arraydatenprozessor B (ADPB) 448, die verwendet werden, um Daten während Schreiboperationen zu demultiplexieren und Nutzerdaten während Leseoperationen zu multiplexieren. Genauer gesagt, der ADPA 44A und der ADPB 44B demultiplexieren jeweils Daten, die durch zwei von vier bytebreiten Schnittstellen vorgesehen werden, die sich zwischen dem OCM 26 und dem ACM 28 erstrecken, während Schreiboperationen. Umgekehrt multiplexieren der ADPA 44A und der ADPB 44B vier Bytes von Daten, die durch vier der Plattenlaufwerke in dem Plattenlaufwerksarray vorgesehen werden, zur Übertragung über zwei der bytebreiten Schnittstellen, die sich zwischen dem OCM 26 und dem ACM 28 erstrecken, während Leseoperationen. Zusätzlich erzeugt der ADPA 44A Paritätsdaten während Schreiboperationen, die anschließend auf das Paritätsplattenlaufwerk 34 geschrieben werden.
- Bei Betrieb demultiplexieren der ADPA 44A und der ADPB 44B während Schreiboperationen einen 4-kB-Datenblock, der durch den OCM 26 vorgesehen wird, in acht 512-Byte-Blöcke. Zusätzlich erzeugt der ADPA 44A einen 512-Byte-Paritätsblock. Während Leseoperationen multiplexieren der ADPA 44A und der ADPB 448 acht 512-Byte-Blöcke, die durch die Plattenlaufwerke 32-0 bis 32-7 vorgesehen werden, in einen 4-kB- Block zur Übertragung quer durch die vier Byte breite Schnittstelle zu dem OCM 26.
- Die Vorrichtungscontroller 40 enthalten jeweils eine automatische Datenübertragungsschnittstelle (ADTI) zum Durchführen, unter anderem, einer Fehlerverarbeitung während Lese- und Schreibdatenübertragungen zwischen dem Vorrichtungscontroller 40 und einem der Plattenlaufwerke in dem Plattenlaufwerksarray 30. Zusätzlich enthält jeder der Vorrichtungscontroller 40 einen Ein-Spur-Puffer 48, der Veränderungen der Antriebsgeschwindigkeit, einen Verlust der Spindelsynchronisation zwischen den Laufwerken, entglittene Blöcke und die Verarbeitung von defekten Blöcken zuläßt. Übertragungen zwischen jedem der Vorrichtungscontroller 40 und einem der Plattenlaufwerke in dem Plattenlaufwerksarray erfolgen über eine intelligente periphere Schnittstelle (IPI-2) 50.
- Eine normale Schreibdatenübertragung zwischen dem Hostprozessor 22 und dem Plattenlaufwerksarraysystem 24, bei der Nutzerdaten auf die Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 geschrieben werden, wird durch den Hostprozessor 22 initiiert, indem er einen Befehl LOCATE an das Plattenlaufwerksarraysystem 24 ausgibt. Der Befehl LOCATE bewirkt, daß die R/W-Köpfe in den Plattenlaufwerken 32-0 bis 32-7 und dem Paritätsplattenlaufwerk 34 über entsprechenden Stellen auf den Platten, die in ihnen enthalten sind, positioniert werden, so daß dann, wenn Nutzerdaten durch den Hostprozessor 22 vorgesehen werden, die Daten auf entsprechende Stellen in den Plattenlaufwerken 32-0 bis 32-7 verteilt werden. Die Verarbeitung des Befehls LOCATE durch das Plattenlaufwerksarraysystem 24 erfolgt primär durch den Arraycontroller 38, nachdem er den OCM 26 durchlaufen hat. Genauer gesagt, der Arraycontroller 38 gibt die erforderlichen Befehle an die Vorrichtungscontroller 40 zum Positionieren der R/W-Köpfe in den Plattenlaufwerken 32-0 bis 32-7 und dem Paritätsplattenlaufwerk 34 an entsprechenden Stellen über den Platten, die in den Plattenlaufwerken enthalten sind, aus. Als Reaktion geben die Vorrichtungscontroller 40 die notwendigen Instruktionen an die Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 aus, um das erforderliche Positionieren der R/W-Köpfe zu initiieren. Sobald die R/W-Köpfe korrekt positioniert sind, meldet jedes der Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 den Vorrichtungscontrollern 40, daß ein korrektes Positionieren erfolgt ist. Diese Meldung wird zu dem Arraycontroller 38 übertragen, der seinerseits die Meldung bezüglich des korrekten Positionierens zu dem Hostprozessor 22 überträgt.
- Nachdem das Plattenlaufwerksarraysystem 24 dem Hostprozessor 22 gemeldet hat, daß der Befehl LOCATE erfolgreich vollendet worden ist, gibt der Hostprozessor 22 einen Befehl WRITE an das Plattenlaufwerksarraysystem 24 aus. Der OCM 26 leitet den Befehl WRITE zu dem ACM 28 weiter. Die Verarbeitung des Befehls WRITE durch den ACM 28 wird anfangs durch den Arraycontroller 38 ausgeführt. Der Arraycontroller 38 gibt die erforderlichen Befehle an die Vorrichtungscontroller 40 aus, die ihrerseits die erforderlichen Befehle über (IPI-2) 50 an die Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 zum Ausführen der Schreiboperation ausgeben. Die Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 melden dann dem ACM 28, wenn jedes bereit ist, um den Befehl WRITE, d. h., Schreibdaten für die Platten, zu verarbeiten. Der ACM 28 meldet dann dem Hostprozessor 22 über den OCM 26, daß das Plattenlaufwerksarraysystem 24 bereit ist, den Befehl WRITE zu verarbeiten.
- Wenn der Hostprozessor 22 durch das Plattenlaufwerksarraysystem 24 informiert wird, daß das Schreiben von Daten beginnen kann, beginnt er mit der Übertragung von Nutzerdaten über die optische Datenschnittstelle zu dem OCM 26. Der OCM 26 sieht die Daten für den ACM 28 über die vier Byte breite Schnittstelle vor. Als Reaktion demultiplexieren die PDTI 42 und speziell der ADPA 44A und der ADPB 44B die Daten an den Schnittstellen für jeden der Vorrichtungscontroller 40. Zusätzlich erzeugt der ADPA 44A die Paritätsdaten für die Nutzerdaten, die auf das Paritätsplattenlaufwerk 34 zu schreiben sind. Die Nutzerdaten werden dann auf die Vorrichtungscontroller 40 für die Plattenlaufwerke 32-0 bis 32-7 verteilt, und die Paritätsdaten, die durch den ADPA 44A erzeugt wurden, werden auf den Vorrichtungscontroller 40 für das Paritätsplattenlaufwerk 34 verteilt. Die Vorrichtungscontroller 40 für die Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 Übertragen dann Bytes von Daten über ihre jeweilige IPI-2 50 zu den Plattenlaufwerken 32-0 bis 32-7 und dem Paritätsplattenlaufwerk 34. Daher werden auf einmal immer acht Bytes von verbundenen Nutzerdaten und ein Byte von Paritätsdaten im wesentlichen gleichzeitig von dem ACM 28 zu dem Plattenlaufwerksarray 30 übertragen und so verteilt, daß ein Byte von Nutzerdaten in jedem der Plattenlaufwerke 32-0 und 32-7 angeordnet ist und ein entsprechendes Paritätsbyte zu dem Paritätsplattenlaufwerk 34 übertragen wird. Die Übertragung von Daten zwischen dem Hostprozessor 22 und dem Plattenlaufwerksarraysystem 24, wie oben beschrieben, wird fortgeführt, bis die Schreiboperation, wie sie durch den Hostprozessor 22 definiert ist, vollendet ist.
- Die normale Leseoperation, bei der Nutzerdaten von den Plattenlaufwerken 32-0 bis 32-7 gelesen werden und Paritätsdaten von dem Paritätsplattenlaufwerk 34 gelesen werden, um die Genauigkeit der Nutzerdaten zu verifizieren, wird durch den Hostprozessor 22 initiiert, wobei er einen Befehl LOCATE an das Plattenlaufwerksarraysystem 24 ausgibt. Dies führt dazu, daß die R/W-Köpfe der Plattenlaufwerke 32-0 bis 32-7 und des Paritätsplattenlaufwerkes 34 über den entsprechenden Stellen auf ihren jeweiligen Platten, an denen die gewünschten Informationen angeordnet sind, positioniert werden. Die Verarbeitung eines Befehls LOCATE durch den ACM 28 ist im wesentlichen mit jener identisch, die bezüglich einer Schreibdatenübertragung beschrieben wurde. Sobald das Plattenlaufwerksarraysystem 24 dem Hostprozessor 22 meldet, daß der Befehl LOCATE vollendet worden ist, gibt der Hostprozessor 22 einen Befehl READ an das Plattenlaufwerksarraysystem 24 aus. Der Befehl READ wird durch den OCM 26 zu dem ACM 28 weitergeleitet. Als Reaktion gibt der Arraycontroller 38 des ACM 28 die erforderlichen Instruktionen an die Vorrichtungscontroller 40 für die Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 aus. Anschließend senden die Vorrichtungscontroller 40 die notwendigen Informationen an die Plattenlaufwerke 32-0 bis 32-7 und das Paritätsplattenlaufwerk 34 über die IPI-2 Schnittstellen 50, um die parallele Übertragung von Nutzerdaten von den Plattenlaufwerken 32-0 bis 32-7 und von Paritätsdaten von dem Paritätsplattenlaufwerk 34 zu dem ACM 28 zu beginnen. Bei Empfang der Nutzer- und Paritätsdaten von den Plattenlaufwerken 32-0 bis 32-7 bzw. dem Paritätsplattenlaufwerk 34 verwendet der ACM 28 die Paritätsdaten, um die Integrität der Nutzerdaten zu bestätigen. Falls keine Fehler detektiert werden, multiplexiert der ACM 28 die Daten zur Übertragung zu dem OCM 26 über die vier Byte breite Schnittstelle auf geeignete Weise. Der OCM 26 überträgt dann die Daten zu dem Hostprozessor 22 über die optische Kommunikationsverbindung. Dieser Prozeß wird fortgesetzt, bis der Befehl READ vollendet ist.
- Wie jede andere Vorrichtung unterliegen Plattenlaufwerke einem Ausfall. Im schlimmsten Fall können Nutzerdaten nicht auf das Plattenlaufwerk geschrieben oder von ihm gelesen werden. Solche Plattenlaufwerke werden im folgenden als ausgefallene Plattenlaufwerke bezeichnet. Am anderen Ende des Ausfallspektrums können Nutzerdaten auf ein Plattenlaufwerk geschrieben und von ihm gelesen werden, aber die Datenübertragung wird auf gewisse Weise verhindert (behindert). Ein Beispiel für eine behinderte Datenübertragungsoperation ist ein Fall, bei dem Daten von einem Plattenlaufwerk gelesen werden können, aber der Prozeß zum Lesen der Nutzerdaten die Implementierung von Fehlerwiederherstellungsprozeduren erfordert. Plattenlaufwerke, bei denen die Übertragungen von Daten behindert werden, werden im folgenden als ausgefallene/verwendbare Plattenlaufwerke bezeichnet. Der Ausfall eines Plattenlaufwerkes in einem Plattenarray ist auf Grund der Beziehung zwischen den Daten, die unter den Plattenlaufwerken, die das Plattenarray bilden, verteilt sind, ein besonderes Problem. Falls zum Beispiel acht Bytes von Daten, die den Namen einer Person definieren, unter den Plattenlaufwerken 32-0 bis 32-7 so verteilt sind, daß ein Byte in jedem der Plattenlaufwerke 32-0 bis 32-7 angeordnet ist, und das Byte in dem Plattenlaufwerk 32-7 nicht gelesen werden kann, werden dann die verbleibenden Bytes in den Plattenlaufwerken 32-0 bis 32-6 im wesentlichen bedeutungslos.
- Um sich der Möglichkeit eines Plattenlaufwerksausfalles in dem Plattenlaufwerksarraysystem 24 zuzuwenden, ist der ACM 28 dafür ausgelegt worden, einen Rekonstruktionsprozeß zu implementieren, bei dem Daten auf einem ausgefallenen Plattenlaufwerk unter Verwendung der Daten, die in den Plattenlaufwerken enthalten sind, die betriebsfähig sind, und der Paritätsdaten rekonstruiert werden und dann auf das Ersatzplattenlaufwerk 36 geschrieben werden. Die Rekonstruktion ist ein Prozeß, der in einer definierten Reihenfolge abläuft. Zum Beispiel kann die Rekonstruktion mit den Daten starten, die beginnend auf Spur 0, Sektor 0 von jedem der Plattenlaufwerke angeordnet sind, und gemäß den steigenden Sektorennummern und dann den steigenden Spurnummern fortgesetzt werden. Jedoch kann die Rekonstruktion in irgendeiner gewünschten Reihenfolge vorgenommen werden. In jedem Fall wird die aktuelle Stelle in dem Plattenlaufwerksarray, an der die Rekonstruktion erfolgt, als Rekonstruktionsgrenze (RCB) gekennzeichnet. Die Daten in der Rekonstruktionsreihenfolge, die vor der Rekonstruktionsgrenze liegen, sind, laut Definition, auf dem Ersatzplattenlaufwerk 36 rekonstruiert worden. Daten in der Rekonstruktionsreihenfolge, die der Rekonstruktionsgrenze folgen, sind, laut Definition, nicht auf dem Ersatzplattenlaufwerk 36 rekonstruiert worden.
- Unter Bezugnahme auf Fig. 3 ist der Rekonstruktionsprozeß gezeigt, der durch den ACM 28 implementiert wird. Anfangs erkennt der ACM 28, daß eines der Plattenlaufwerke 32- 0 bis 32-7 oder das Paritätsplattenlaufwerk 34 ausgefallen ist, und er meldet dem Hostprozessor 22 über den OCM 26, daß er den Rekonstruktionsprozeß implementieren möchte. Der Hostprozessor 22 meldet dem ACM 28 als Reaktion darauf, daß die Rekonstruktionsoperation akzeptabel ist. Der Arraycontroller 38 in dem ACM 28 gibt dann einen Befehl LOCATE aus, der auf Befehlsprozessoren in jedem der Vorrichtungscontroller 40 verteilt wird, um die R/W-Köpfe in jedem der Platten laufwerke 32-0 bis 32-7, dem Paritätsplattenlaufwerk 34 und dem Ersatzplattenlaufwerk 36 an der Datenanfangsstelle in der Rekonstruktionsreihenfolge zu positionieren. Die Befehlsprozessoren in jedem der Vorrichtungscontroller 40 geben ihrerseits die geeigneten Instruktionen an die Plattenlaufwerke 32-0 bis 32-7, das Paritätsplattenlaufwerk 34 und das Ersatzplattenlaufwerk 36 aus, um zu bewirken, daß die R/W-Köpfe an der Anfangsstelle in der Rekonstruktionsreihenfolge positioniert werden.
- Sobald alle R/W-Köpfe in den Plattenlaufwerken 32-0 bis 32-7, dem Paritätsplattenlaufwerk 34 und dem Ersatzplattenlaufwerk 36 korrekt positioniert worden sind, gibt der Arraycontroller 38 in dem ACM 28 einen Befehlread an die Befehlsprozessoren in allen Vorrichtungscontrollern 40 aus, das ausgefallene Plattenlaufwerk und das Ersatzplattenlaufwerk, auf dem die Daten von dem ausgefallenen Plattenlaufwerk zu rekonstruieren sind, ausgenommen. Falls zum Beispiel das Plattenlaufwerk 32-7 das ausgefallene Plattenlaufwerk ist, gibt dann der Prozeßcontroller einen Befehl READ an die Vorrichtungscontroller für die Plattenlaufwerke 32-0 bis 32- 6 und das Paritätsplattenlaufwerk 34 aus. Der Befehlsprozessor in jedem der Vorrichtungscontroller, der einen Befehl READ empfängt, ergreift dann die notwendige Maßnahme, um zu bewirken, daß die Daten an der Datenanfangsstelle bei dem Rekonstruktionsprozeß gelesen werden.
- Nachdem die Daten von den betriebsfähigen Plattenlaufwerken und dem Paritätsplattenlaufwerk 34 gelesen worden sind, verwendet der ACM 28 diese Daten, um die Daten auf dem ausgefallenen Plattenlaufwerk zu rekonstruieren. Das obige Beispiel fortsetzend, werden die Nutzerdaten von den Plattenlaufwerken 32-0 bis 32-6 und dem Paritätsplattenlaufwerk 34 durch den ACM 28 verwendet, um die Daten auf dem ausgefallenen Plattenlaufwerk 32-7 zu rekonstruieren.
- Sobald die Daten auf dem ausgefallenen Plattenlaufwerk rekonstruiert worden sind, gibt der Arraycontroller 38 in dem ACM 28 einen Befehl WRITE an den Befehlsprozessor des Vorrichtungscontrollers 40 für das Ersatzplattenlaufwerk 36 aus, so daß die rekonstruierten Daten auf das Ersatzplattenlaufwerk 36 geschrieben werden können. Der Befehlsprozessor des Vorrichtungscontrollers 40 für das Ersatzplattenlaufwerk 36 ergreift dann die geeigneten Maßnahmen, um zu bewirken, daß die rekonstruierten Daten an die Stelle geschrieben werden, an der der R/W-Kopf in dem Ersatzplattenlaufwerk 36 positioniert ist, an die Anfangsstelle in der Rekonstruktionsreihenfolge. Der Prozeß zum Anordnen von konsekutiven Datenstellen in der Rekonstruktionsreihenfolge, zum Lesen der Nutzerdaten von den betriebsfähigen Plattenlaufwerken, zum Rekonstruieren der Daten auf dem ausgefallenen Plattenlaufwerk aus den Daten, die von den betriebsfähigen Plattenlaufwerken gelesen werden, und dann zum Schreiben der rekonstruierten Daten auf das Ersatzplattenlaufwerk 36 wird fortgesetzt, bis alle Daten auf dem ausgefallenen Plattenlaufwerk auf dem Ersatzplattenlaufwerk 36 rekonstruiert worden sind. Zu diesem Zeitpunkt meldet der ACM 28 dem Hostprozessor 22 über den OCM 26, daß die Rekonstruktion vollendet ist. Der Hostprozessor 22 kann nun normale Datenübertragungen mit dem Plattenlaufwerksarraysystem 24 durchführen, wobei das Ersatzplattenlaufwerk 36 den Platz des ausgefallenen Plattenlaufwerkes einnimmt.
- Im Anschluß an die Rekonstruktion wird das ausgefallene Plattenlaufwerk aus dem Plattenlaufwerksarray 30 entfernt und ausgetauscht. Typischerweise werden, nachdem das ausgefallene Plattenlaufwerk ausgetauscht ist, die Daten auf dem Ersatzplattenlaufwerk 36 dann auf dem Austauschplattenlaufwerk rekonstruiert. Das obige Beispiel fortsetzend, werden dann, sobald das Plattenlaufwerk 32-7 in dem Plattenlaufwerksarray 30 ausgetauscht worden ist, die Daten von dem Ersatzplattenlaufwerk 36 auf dem Plattenlaufwerk 32-7 rekonstruiert.
- Die Rekonstruktion ist zum großen Teil auf Grund der Anzahl von Datenübertragungsoperationen zwischen dem Plattenlaufwerksarray 30 und dem ACM 28, die erforderlich sind, um alle Daten auf einem ausgefallenen Plattenlaufwerk zu rekonstruieren, ein sehr zeitaufwendiger Prozeß. Da die Daten, die auf das Plattenlaufwerksarray 30 verteilt sind, verbunden sind, verhindert eine ununterbrochene Rekonstruktion aller Daten auf einem ausgefallenen Plattenlaufwerk effektiv, daß ein Hostprozessor irgendeine Art von Datenübertragungsoperation mit dem Plattenlaufwerksarraysystem während des Rekonstruktionsprozesses durchführen kann. Das Plattenlaufwerksarraysystem 24 wendet sich diesem Leistungsengpaß zu, indem dem Hostprozessor während des Rekonstruktionsprozesses Zugriff auf das Plattenlaufwerksarray 30 gewährt wird. Dies wird dadurch erreicht, indem die Anzahl von Blöcken von Daten vordefiniert wird, die der ACM 28 immer auf einmal rekonstruieren wird. Typischerweise wird diese Anzahl durch den Hostprozessor 22 definiert. Daher wird dem Hostprozessor 22 Zugriff auf das Plattenlaufwerksarray 30 während des Rekonstruktionsprozesses auf einer relativ regulären Basis gewährt. Praktisch ist das Plattenlaufwerksarraysystem 24 in der Lage, Datenübertragungsoperationen mit dem Rekonstruktionsprozeß zu verschachteln. Zum Beispiel wird angenommen, daß der Hostprozessor 22 dem ACM 28 meldet, daß zwei Blöcke zu rekonstruieren sind und dann dem Hostprozessor 22 die Möglichkeit des Zugriffs auf das Plattenlaufwerksarray 30 zu gewähren ist. In diesem Fall wird der ACM 28 den Rekonstruktionsprozeß so durchführen, daß zwei Wiederholungen der Folge LOCATE, READ und WRITE, die in Fig. 3 gezeigt ist, vorgenommen werden, eine für jeden Block, und dann dem Hostprozessor 22 gestatten, auf das Plattenlaufwerksarray 30 für eine Datenübertragungsoperation zuzugreifen.
- Ein besonderes Problem im Hinblick auf Datenübertragungsoperationen während der Rekonstruktion besteht darin, daß Schreibdatenübertragungsoperationen die Gesamtzeit, die zur Rekonstruktion erforderlich ist, nicht wesentlich beein flussen, relativ unkompliziert sind und keinen übermäßigen Aufwand zur Implementierung erfordern. Genauer gesagt, es wird gewünscht, daß es die Schreibdatenübertragungsoperat ion nicht erforderlich macht, daß der Rekonstruktionsprozeß von einer spezifizierten Rekonstruktionsfolge abweicht. In dieser Hinsicht implementiert der ACM 28 eine Schreibdatenübertragung, bei der Daten für das Plattenlaufwerksarray 30 an eine Stelle vor der Rekonstruktionsgrenze geschrieben werden, so daß die Daten, die auf das ausgefallene Plattenlaufwerk geschrieben worden wären, auf das Ersatzplattenlaufwerk 36 geschrieben werden. Fig. 4 zeigt die Art und Weise, auf die der ACM 28 eine Schreibdatenübertragungsoperation implementiert, wenn die verbundenen Daten an eine Stelle geschrieben werden, die vor der Rekonstruktionsgrenze liegt. In Fig. 4 ist das Plattenlaufwerk 32-7 ausgefallen, und die Daten, die in dem Plattenlaufwerk 32-7 enthalten sind, werden auf dem Ersatzplattenlaufwerk 36 rekonstruiert. Während der Rekonstruktion fordert der Hostprozessor 22 eine Schreibdatenübertragungsoperation an, die dazu führen würde, daß Daten für das Plattenlaufwerksarray 30 an eine Stelle vor der Rekonstruktionsgrenze geschrieben werden. Der ACM 28 implementiert die Schreibdatenübertragung, indem die Daten, die für das ausgefallene Plattenlaufwerk 32-7 bestimmt sind, auf das Ersatzplattenlaufwerk 36, die verbundenen Daten auf die Plattenlaufwerke 32-0 bis 32-6 und die Paritätsdaten auf das Paritätsplattenlaufwerk 34 geschrieben werden.
- Durch Schreiben der Nutzerdaten, die für das ausgefallene Plattenlaufwerk bestimmt sind, auf das Ersatzplattenlaufwerk 36, wird die Notwendigkeit vermieden, daß bei dem Rekonstruktionsprozeß die Spur von der Stelle beibehalten wird, an der die Schreiboperation erfolgte, und der Rekonstruktionsprozeß kann in seiner definierten Reihenfolge fortgesetzt werden. Dies wird am besten verstanden, wenn die Hypothese aufgestellt wird, was von dem Rekonstruktionsprozeß verlangt werden würde, falls die Daten, die für das ausgefallene Plattenlaufwerk 32-7 bestimmt sind, nicht auf das Ersatzplattenlaufwerk 36 geschrieben worden wären. In diesem Fall müßte der Rekonstruktionsprozeß die Rekonstruktion der Daten an der aktuellen Stelle der Rekonstruktionsgrenze unterbrechen, um die Daten, die für das ausgefallene Plattenlaufwerk 32-7 bestimmt sind, auf dem Ersatzplattenlaufwerk 36 zu rekonstruieren. Alternativ müßte der Rekonstruktionsprozeß die Spur von der Stelle der Schreiboperation beibehalten und, sobald die definierte Rekonstruktionsreihenfolge vollendet worden ist, an diese Stelle zurückkehren und die Daten, die für das ausgefallene Plattenlaufwerk 32-7 bestimmt sind, auf dem Plattenlaufwerk 36 rekonstruieren. Jede Alternative führt zu einer Erhöhung der Gesamtzeit, die für die Rekonstruktion erforderlich ist, ist relativ kompliziert oder erfordert einen übermäßigen Aufwand.
- Im Hinblick auf Schreibdatenübertragungsoperationen, bei denen dasausgefallene Plattenlaufwerk ein ausgefallenes/verwendbares Plattenlaufwerk ist und die Nutzerdaten an eine Stelle zu schreiben sind, die der aktuellen Rekonstruktionsgrenze in der Rekonstruktionsreihenfolge folgt, implementiert der ACM 28 die Schreibdatenübertragung so, daß die Daten, die für das ausgefallene/verwendbare Plattenlaufwerk bestimmt sind, noch auf das ausgefallene/verwendbare Plattenlaufwerk geschrieben werden. Durch Schreiben der Nutzerdaten auf das ausgefallene/verwendbare Plattenlaufwerk wird eine Fehlertoleranz erreicht. Genauer gesagt, die Fehlertoleranz wird für die Situation erreicht, bei der, wenn bei dem Rekonstruktionsprozeß versucht wird, die Daten in dem ausgefallenen/verwendbaren Plattenlaufwerk zu rekonstruieren, bei dem die Schreiboperation stattfand, eines der anderen Plattenlaufwerke, das vorher in einem betriebsfähigen Zustand war, aus irgendeinem Grund die erforderlichen Daten für die Rekonstruktion nicht liefern kann. Die Rekonstruktion für eine besondere Einheit von verbundenen Daten kann, wie vorher erörtert, nur erreicht werden, falls alle anderen Einheiten in der Gruppe von verbundenen Daten, aus denen die Paritätsdaten erzeugt wurden, verfügbar sind. Fig. 5A-5C zeigen die Fehlertoleranz, die durch den ACM 28 beim Implementieren einer Schreibdatenübertragung während der Rekonstruktion der Daten auf einem ausgefallenen/verwendbaren Plattenlaufwerk auf diese Weise erreicht wurde. Bei dem gezeigten Beispiel ist das Plattenlaufwerk 32-7 in einem ausgefallenen/verwendbaren Zustand, d. h., Schreibdatenübertragungen und Lesedatenübertragungen können bei dem ausgefallenen/verwendbaren Plattenlaufwerk vorgenommen werden, aber solche Übertragungen werden behindert. Der ACM 28 implementiert die Schreibdatenübertragung so, daß die Daten, die für das ausgefallene/verwendbare Plattenlaufwerk 32-7 bestimmt sind, noch auf das ausgefallene/verwendbare Plattenlaufwerk 32-7 geschrieben werden, wie in Fig. 5A gezeigt. In Fig. 5B ist der Rekonstruktionsprozeß im Vergleich zu dem in Fig. 5A gezeigten so weit fortgeschritten, daß die Daten, die durch die Schreiboperation in dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7 gebildet wurden, rekonstruiert werden. Falls das Plattenlaufwerk 32-6, wenn diese Daten rekonstruiert werden, die Daten, die zur Rekonstruktion erforderlich sind, nicht liefern kann, kann der Rekonstruktionsprozeß nicht fortgesetzt werden. Da jedoch eine gültige Kopie der Daten in dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7 existiert, die auf die Weise zurückzuführen ist, auf die der ACM 28 die Schreiboperation durchführte, können diese Daten von dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7 auf das Ersatzplattenlaufwerk 36 kopiert werden, wie in Fig. 5C gezeigt. Infolgedessen kann der Rekonstruktionsprozeß selbst bei Vorhandensein eines Fehlers fortgesetzt werden.
- Im Hinblick auf Schreibdatenübertragungsoperationen während der Rekonstruktion eines ausgefallenen/verwendbaren Plattenlaufwerkes wird die Notwendigkeit zum Überwachen dessen, ob die Schreibdatenübertragungsoperation vor der Rekonstruktionsgrenze oder nach der Rekonstruktionsgrenze erfolgt, vermieden, indem man den ACM 26 die Schreibdatenübertragungsoperation so durchführen läßt, daß Daten, die unter normalen Umständen für das ausgefallene/verwendbare Plattenlaufwerk bestimmt wären, sowohl auf das ausgefallene/verwendbare Plattenlaufwerk als auch auf das Ersatzplattenlaufwerk 36 geschrieben werden. Anders ausgedrückt, identische Daten werden sowohl auf das ausgefallene/verwendbare Plattenlaufwerk als auch auf das Ersatzplattenlaufwerk 36 geschrieben. Ein Beispiel für solch eine Schreiboperation ist in Fig. 6 gezeigt. Bei dem in Fig. 6 gezeigten Beispiel ist das Plattenlaufwerk 32-7 in einem ausgefallenen/verwendbaren Zustand, und seine Daten werden auf dem Ersatzplattenlaufwerk 36 rekonstruiert. Der ACM 28 führt Schreibdatenübertragungen während der Rekonstruktion des ausgefallenen/verwendbaren Plattenlaufwerkes 32-7 so aus, daß identische Daten sowohl auf das ausgefallene/verwendbare Plattenlaufwerk 32-7 als auch auf das Ersatzplattenlaufwerk 36 geschrieben werden, ungeachtet dessen, ob die Übertragung vor oder nach der Rekonstruktionsgrenze erfolgt. Bei einer Schreibdatenübertragung vor der Rekonstruktionsgrenze werden die Vorteile realisiert, die im Hinblick auf das in Fig. 4 gezeigte Beispiel erläutert wurden. Ähnlich werden bei Schreibdatenübertragungen an Stellen in dem Plattenlaufwerksarray 30 nach der Rekonstruktionsgrenze die Vorteile realisiert, die im Hinblick auf Fig. 5A-5C demonstriert wurden.
- Vorzugsweise werden während der Rekonstruktion von Daten auf dem ausgefallenen/verwendbaren Plattenlaufwerk die identischen Daten gleichzeitig auf das ausgefallene/verwendbare Plattenlaufwerk und das Ersatzplattenlaufwerk 36 geschrieben. Dadurch wird die Möglichkeit vermieden, daß Daten vor der Zeit, zu der die Stelle, an der das Schreiben zu erfolgen hat, dem Rekonstruktionsprozeß unterzogen wird, nicht auf das ausgefallene/verwendbare Plattenlaufwerk geschrieben worden sind und während der Rekonstruktion dieser Stelle eines der anderen Plattenlaufwerke beim Vorsehen der notwendigen Daten zur Rekonstruktion versagt. Falls dies eintreten würde, würden dann keine gültigen Daten in dem ausgefallenen/verwendbaren Plattenlaufwerk vorhanden sein, die auf das Ersatzplattenlaufwerk 36 zu kopieren sind.
- Eine andere Fehlerbedingung, die durch die Weise berücksichtigt wird, auf die der ACM 28 Schreibdatenübertragungsoperationen während der Rekonstruktion von Daten auf einem ausgefallenen/verwendbaren Plattenlaufwerk auf dem Ersatzplattenlaufwerk 36 ausführt, schließt einen Energieausfall ein. Während eines Energieausfalls gehen die Rekonstruktionsinformationen, die erforderlich sind, um die Rekonstruktion wieder aufzunehmen, wenn die Energie wiederhergestellt ist, typischerweise verloren. Daher muß, falls ein Energieausfall während der Rekonstruktion auftritt, der Rekonstruktionsprozeß von neuem beginnen, wenn die Energie wiederhergestellt ist. Da der Rekonstruktionsprozeß neu gestartet werden muß, werden darüber hinaus alle Daten auf dem Ersatzplattenlaufwerk 36, die zuvor rekonstruiert worden waren, nun als ungültig angesehen, da sie jetzt hinter der Rekonstruktionsgrenze liegen. Durch Ausführen von Schreibdatenübertragungen während des Anfangsversuches zur Rekonstruktion derart, daß das ausgefallene/verwendbare Plattenlaufwerk aktuelle Daten hat, ist die Rekonstruktion des ausgefallenen/verwendbaren Plattenlaufwerkes auf dem Ersatzplattenlaufwerk 36 noch möglich.
- Ein Beispiel für das Energieausfallszenario oder für die Fehlerbedingung ist in Fig. 7A-7C gezeigt. In Fig. 7A führt der ACM 28 eine Schreibdatenübertragungsoperation aus, bei der Daten vor der aktuellen Rekonstruktionsgrenze auf das Plattenlaufwerksarray geschrieben werden, so daß identische Daten im wesentlichen gleichzeitig auf das ausgefallene/verwendbare Plattenlaufwerk 32-7 und das Ersatzplatten laufwerk 36 geschrieben werden. Anschließend tritt ein Energieausfall auf, der dazu führt, daß der ACM 28 die Daten bezüglich des Rekonstruktionsprozesses verliert, und im besonderen die Stelle der aktuellen Rekonstruktionsgrenze. Wenn die Energie für das Plattenlaufwerksarraysystem 24 wiederkehrt, startet der Rekonstruktionsprozeß ab Beginn der definierten Rekonstruktionsreihenfolge, wie in Fig. 7B gezeigt. Als Resultat werden nun alle Daten, die während der abgebrochenen Rekonstruktionsoperation auf dem Ersatzplat tenlaufwerk 36 gebildet wurden, als ungültig angesehen, da sie der neuen Rekonstruktionsgrenze folgen. Infolgedessen ist die einzige aktuelle Kopie der Daten, die während der. abgebrochenen Rekonstruktionsoperation durch die in Fig. 7A gezeigte Schreibdatenübertragungsoperation hergestellt wurde, auf dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7 angeordnet. Wenn der Rekonstruktionsprozeß an dem Punkt anlangt, an dem die Daten in dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7, die durch die Schreibdatenübertragungsoperation während des Anfangsversuches zur Rekonstruktion hergestellt wurden/ zu rekonstruieren sind, stehen die Daten in dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7 zur Verfügung und können zum Fortsetzen des Rekonstruktionsprozesses im Fall einer Fehlerbedingung verwendet werden. Die Daten in dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7 werden, wie in Fig. 7C gezeigt, auf das Ersatzplattenlaufwerk 36 kopiert, falls eines der betriebsfähigen Plattenlaufwerke 32-0 bis 32-6 oder das Paritätsplattenlaufwerk 34 nicht die erforderlichen Daten vorsehen kann, so daß der Rekonstruktionsprozeß fortgesetzt werden kann.
- Der ACM 28 führt Lesedatenübertragungsoperationen während der Rekonstruktion der Daten auf einem ausgefallenen Plattenlaufwerk auf dem Ersatzplattenlaufwerk 36 verschieden aus, in Abhängigkeit davon, ob die Lesedatenübertragung vor oder nach der Rekonstruktionsgrenze erfolgt und ob die Platte, deren Daten rekonstruiert werden, in einem ausgefallenen oder einem ausgefallenen/verwendbaren Zustand ist. Bei Lesedatenübertragungen vor der Rekonstruktionsgrenze und einem Plattenlaufwerk, dessen Daten rekonstruiert werden, in einem ausgefallenen oder ausgefallenen/verwendbaren Zustand führt der ACM 28 die Lesedatenübertragung so aus, daß Daten von allen Plattenlaufwerken in dem Plattenlaufwerksarray 30 Übertragen werden, das ausgefallene oder ausgefallene/verwendbare Plattenlaufwerk ausgenommen. Genauer gesagt, Daten werden von den betriebsfähigen der Plattenlaufwerke 32-0 bis 32-7 und dem Paritätsplattenlaufwerk 34 und dem Ersatzplattenlaufwerk 36 gelesen. Da die Lesedatenübertragung an einer Stelle vor der Rekonstruktionsgrenze erfolgt, sind die Daten in dem Ersatzplattenlaufwerk an dieser Stelle rekonstruiert worden und mit jenen in dem ausgefallenen oder ausgefalle nen/verwendbaren Plattenlaufwerk identisch. Fig. 8A zeigt ein Beispiel für eine Lesedatenübertragung während der Rekonstruktion, wenn das ausgefallene Plattenlaufwerk das Plattenlaufwerk 32-7 ist. Wie aus Fig. 8A ersichtlich ist, führt der ACM 28 die Lesedatenübertragungsoperation so aus, daß die Nutzerdaten von den Plattenlaufwerken 32-0 bis 32-6, die in dem Ersatzplattenlaufwerk angeordneten Daten, die mit jenen auf dem ausgefallenen Plattenlaufwerk 32-7 identisch sind, und die Paritätsdaten, die auf dem Paritätsplattenlaufwerk 34 angeordnet sind, alle gelesen werden. Der ACM 28 führt Lesedatenübertragungsoperationen aus, bei denen Daten von einer Stelle nach der Rekonstruktionsgrenze gelesen werden und das Plattenlaufwerk, dessen Daten rekonstruiert werden, in einem ausgefallenen/verwendbaren Zustand ist, so daß Daten von den betriebsfähigen der Plattenlaufwerke 32-0 bis 32-7 und dem Paritätsplattenlaufwerk 34 und von dem ausgefallenen der Plattenlaufwerke 32-0 bis 32-7 und dem Paritätsplattenlaufwerk 34 gelesen werden. Ein Beispiel für eine Lesedatenübertragungsoperation von Daten, die nach der Rekonstruktionsgrenze angeordnet sind, während der Rekonstruktion eines ausgefallenen/verwendbaren Plattenlaufwerkes ist in Fig. 8B gezeigt. In Fig. 8B ist das Plattenlaufwerk 32-7 ein ausgefallenes/verwendbares Plattenlaufwerk, und die Lesedatenübertragungsoperation führt dazu, daß Daten nach der aktuellen Rekonstruktionsgrenze gelesen werden. In diesem Fall werden Daten von den betriebsfähigen Plattenlaufwerken 32-0 bis 32-6, dem ausgefallenen/verwendbaren Plattenlaufwerk 32-7 und dem Paritätsplattenlaufwerk 34 gelesen. Von dem Ersatzplattenlaufwerk 36 werden keine Daten gelesen, da die Stelle, von der Daten gelesen werden, hinter der Rekonstruktionsgrenze liegt, so daß die Daten, laut Definition, in dem Ersatzplattenlaufwerk an dieser besonderen Stelle ungültig sind.
- Nachdem die Rekonstruktion eines ausgefallenen Plattenlaufwerkes vollendet ist, wird das ausgefallene Plattenlaufwerk, wie zuvor erwähnt, ausgetauscht, und die Daten auf dem Ersatzplattenlaufwerk 36, d. h., die Daten von dem ausgefallenen oder ausgefallenen/verwendbaren Plattenlaufwerk, werden dann auf dem Austauschplattenlaufwerk rekonstruiert. Die Rekonstruktion der Daten von dem Ersatzplattenlaufwerk 36 auf dem Austauschplattenlaufwerk für das ausgefallene oder ausgefallene/verwendbare Plattenlaufwerk erfolgt auf dieselbe Weise wie in bezug auf das in Fig. 4, 5A-5C, 6, 7A- 7C und 8A-8B gezeigte Beispiel beschrieben. Mit anderen Worten, das Ersatzplattenlaufwerk 36 kann die Stelle des ausgefallenen oder ausgefallenen/verwendbaren Plattenlaufwerkes 32-7 einnehmen, und das Austauschplattenlaufwerk kann die Stelle des Ersatzplattenlaufwerkes 36 bei dem gezeigten Beispiel einnehmen. Infolgedessen erfolgt die Rekonstruktion von Daten von der Ersatzplatte 36 auf dem Austauschplattenlaufwerk für ein ausgefallenes oder ausgefallenes/verwendbares Plattenlaufwerk auf eine Art, die Datenübertragungen zwischen dem Plattenlaufwerksarraysystem 24 und dem Host 22 zuläßt. Darüber hinaus werden solche Datenübertragungen auf eine Weise durchgeführt, bei der die zuvor beschriebene Fehlertoleranz erreicht wird.
- Die obige Beschreibung der Erfindung ist für Demonstrations- und Beschreibungszwecke präsentiert worden. Ferner soll die Beschreibung die Erfindung nicht auf die hierin offenbarte Form begrenzen. Daher stehen Veränderungen und Abwandlungen im Einklang mit den obigen Ausführungen, und das Wissen oder die Kenntnisse auf dem Gebiet der relevanten Technik liegen im Schutzumfang der vorliegenden Erfindung. Die oben beschriebene bevorzugte Ausführungsform ist ferner darauf gerichtet, den besten Modus zu erläutern, der zum Praktizieren der Erfindung bekannt ist, und andere Fachleute dazu zu befähigen, die Erfindung in verschiedenen Ausführungsformen und mit den verschiedenen Abwandlungen zu nutzen, die durch ihre besonderen Anwendungen oder Verwendungszwecke der Erfindung erforderlich sind. Die beigefügten Ansprüche sollen so ausgelegt werden, daß sie in dem durch den Stand der Technik zulässigen Umfang alternierende Ausführungs formen enthalten
Claims (12)
1.
Speichervorrichtungsarraysystem (24), welches
Datenübertragungen mit einem Host (22) während der
Rekonstruktion durchführen kann, mit:
einer Vielzahl von Speichervorrichtungen (32-0 bis
32-7) zum Speichern von Gruppen von Daten, wobei jede Gruppe
Dateneinheiten hat, die über die Vielzahl von
Speichervorrichtungen verteilt sind, jede Gruppe von Daten redundant
codiert ist, so daß, bei Nichtvorhandensein eines Fehlers,
eine Teilmenge von der Vielzahl von Speichervorrichtungen
zum Übertragen der Gruppe von Daten zu dem Host (22)
ausreicht;
einer Ersatzspeichervorrichtung (36), zusätzlich zu der
Vielzahl von Speichervorrichtungen, zur Verwendung beim
Ersetzen einer ersten Speichervorrichtung (z. B. 32-7) von
der Vielzahl von Speichervorrichtungen (32-0 bis 32-7);
bei dem ein Speichervorrichtungsarray (30) die Vielzahl
von Speichervorrichtungen (32-0 bis 32-7) und die
Ersatzspeichervorrichtung (36) enthält, so daß von einer Vielzahl
der Datengruppen wenigstens erste und zweite Dateneinheiten,
die auf der ersten Speichervorrichtung (32-7) gespeichert
sind, bei einer Rekonstruktion auf der
Ersatzspeichervorrichtung (36) rekonstruiert werden, wenn die erste
Speichervorrichtung (32-7) in einem ausgefallenen aber verwendbaren
Zustand ist, bei dem Datenübertragungen, die wenigstens eine
Lesedatenübertragung zu dem Host umfassen, noch, aber nur
mit Schwierigkeit, möglich sind;
einem Mittel (28) zum Steuern von Datenübertragungen
zwischen dem Host (22) und dem Speichervorrichtungsarray
(30), das enthält:
(i) ein Mittel zum Bestimmen, wann die
Rekonstruktion auszuführen ist;
(ii) ein Datenrekonstruktionsmittel zum Ausführen
der Rekonstruktion, wobei die erste Dateneinheit vor der
zweiten Dateneinheit rekonstruiert wird und eine
Rekonstruktionsgrenze (RCB) als Speicherstelle in der ersten
Speichervorrichtung (32-7) definiert wird, vor der die
Rekonstruktion ausgeführt worden ist und nach der keine Rekonstruktion
ausgeführt worden ist;
(iii) ein Datenübertragungsdurchführmittel zum
Durchführen einer Datenübertragung zwischen dem Host (22)
und irgendeiner der Speichervorrichtungen (32-0 bis 32-6),
die nicht die erste Speichervorrichtung ist, welche
Datenübertragung zwischen der Rekonstruktion der ersten
Dateneinheit und der Rekonstruktion der zweiten Dateneinheit
erfolgt; und
einem Rekonstruktionsfortsetzungsmittel zum Fortfahren
mit der Rekonstruktion in dem Fall, wenn eine
Datenübertragung bezüglich einer Stelle durchgeführt wird, die der
Rekonstruktionsgrenze folgt, und wenn eine zweite
Speichervorrichtung (z. B. 32-6) von der Vielzahl von
Speichervorrichtungen keine erforderlichen Daten zur Rekonstruktion
vorsehen kann, indem Daten von der ersten
Speichervorrichtung (32-7) auf die Ersatzspeichervorrichtung (36) kopiert
werden.
2. Speichervorrichtungsarraysystem nach Anspruch 1,
bei dem das Datenübertragungsdurchführmittel (28) ein Mittel
zum Schreiben von Daten von dem Host (22) auf die
Ersatzspeichervorrichtung (36) vor die Rekonstruktionsgrenze (RCB)
enthält.
3. Speichervorrichtungsarraysystem nach Anspruch 1
oder 2, bei dem die erste Speichervorrichtung (32-7), wenn
sie in dem ausgefallenen aber verwendbaren Zustand ist,
Daten mit dem Hostsystem (22) während einer
Schreibdatenübertragung zwischen dem Hostsystem und dem
Speichervorrichtungsarraysystem (24) über das
Datenübertragungsdurchführmittel (28) überträgt, wobei die Daten der
Schreibdatenübertragung
in wenigstens eine Gruppe von Daten transformiert
werden, und bei dem das Datenübertragungsdurchführmittel die
Gruppe von Daten auf die Ersatzspeichervorrichtung (36) vor
die Rekonstruktionsgrenze und auf die erste
Speichervorrichtung (32-7) hinter die Rekonstruktionsgrenze schreibt.
4. Speichervorrichtungsarraysystem nach Anspruch 1
oder 2, bei dem die erste Speichervorrichtung (32-7), wenn
sie in dem ausgefallenen aber verwendbaren Zustand ist,
Daten mit dem Hostsystem (22) während einer
Lesedatenübertragung zwischen dem Speichervorrichtungsarraysystem und dem
Hostsystem überträgt, wobei das
Datenübertragungsdurchführmittel (28) zum Durchführen der Lesedatenübertragung mit dem
Hostsystem ein Lesemittel zum Lesen von Da£en aus der
Vielzahl von Speichervorrichtungen verwendet; bei dem das
Lesemittel ein Folgedatenlesemittel enthält, zum Lesen von
Daten, die der Rekonstruktionsgrenze (RCB) folgen, unter
Verwendung der ersten Speichervorrichtung (32-7) und
irgendeiner von der Vielzahl von Speichervorrichtungen (32-0 bis
32-6), die nicht die erste Speichervorrichtung ist.
5. Speichervorrichtungsarraysystem nach Anspruch 4,
bei dem das Lesemittel ein Vordatenlesemittel enthält, zum
Lesen von Daten vor der Rekonstruktionsgrenze (RCB) von der
Ersatzspeichervorrichtung (36) und irgendeiner von der
Vielzahl von Speichervorrichtungen (32-0 bis 32-6), die
nicht die erste Speichervorrichtung (32-7) ist.
6. Speichervorrichtungsarraysystem (24), welches
Datenübertragungen mit einem Host (22) während der
Rekonstruktion durchführen kann, mit:
einer Vielzahl von Speichervorrichtungen (32-0 bis
32-7) zum Speichern von Gruppen von Dateneinheiten, wobei
jede Gruppe Dateneinheiten hat, die über die Vielzahl von
Speichervorrichtungen verteilt sind, jede Gruppe von Daten
redundant codiert ist, so daß, bei Nichtvorhandensein eines
Fehlers, eine Teilmenge von der Vielzahl von
Speichervorrichtungen zum Übertragen der Gruppe von Daten zu dem Host
(22) ausreicht;
einer Ersatzspeichervorrichtung (36), zusätzlich zu der
Vielzahl von Speichervorrichtungen (32-0 bis 32-7), zur
Verwendung beim Ersetzen einer ersten Speichervorrichtung
(z. B. 32-7) von der Vielzahl von Speichervorrichtungen, bei
dem ein Speichervorrichtungsarray (30) die Vielzahl von
Speichervorrichtungen (32-0 bis 32-7) und die
Ersatzspeichervorrichtung (36) enthält;
einem Mittel zum Rekonstruieren einer Vielzahl von
Dateneinheiten von der ersten Speichervorrichtung (32-7) auf
der Ersatzspeichervorrichtung (36), wenn die erste
Speichervorrichtung (32-7) in einem ausgefallenen aber verwendbaren
Zustand ist, bei dem eine Lesedatenübertragung und eine
Schreibdatenübertragung mit dem Host (22) noch, aber nur mit
Schwierigkeit, möglich sind, welche Vielzahl von
Dateneinheiten in einer Vielzahl von Datengruppen enthalten ist;
einem Mittel (28) zum Zugreifen auf die Vielzahl von
Dateneinheiten auf der Ersatzspeichervorrichtung (36) nach
der Rekonstruktion durch das Rekonstruktionsmittel für eine
host-inituerte Datenübertragungsanforderung, die zum
Übertragen von Daten, die der Vielzahl von Datengruppen
entsprechen, zwischen dem Host (22) und der Menge aller
Speichervorrichtungen (32-0 bis 32-6, 36) führt, die die
Ersatzspeichervorrichtung einschließt, aber die erste
Speichervorrichtung (32-7) ausschließt, wobei diese Speichervorrichtungen
(32-0 bis 32-6, 36) angeordnet sind, um die Vielzahl von
Datengruppen im wesentlichen gleichzeitig zu lesen oder zu
schreiben, wenn die host-inituerte
Datenübertragungsanforderung erfüllt wird; und
einem Mittel zum Übertragen von Daten, die der Vielzahl
von Datengruppen entsprechen, zwischen dem Host und der
Menge von Speichervorrichtungen (32-0 bis 32-6, 36) während
der Rekonstruktion durch das Rekonstruktionsmittel, wobei
das Übertragungsmittel angeordnet ist, um auf eine
Datenstelle in jeder der ersten Speichervorrichtung (32-7) und
der Ersatzspeichervorrichtung (36) zuzugreifen, wenn eine
Schreibdatenübertragung von dem Host ausgeführt wird.
7. Verfahren zum Durchführen von Datenübertragungen
mit einem Host (22) während der Rekonstruktion in einem
Speichervorrichtungsarraysystem, mit den folgenden
Schritten:
Vorsehen einer Vielzahl von Speichervorrichtungen (32-0
bis 32-7) zum Speichern von Gruppen von Dateneinheiten,
wobei jede Gruppe Dateneinheiten hat, die über die Vielzahl
von Speichervorrichtungen verteilt werden, jede Gruppe von
Daten redundant codiert wird, so daß, bei Nichtvorhandensein
eines Fehlers, eine Teilmenge von der Vielzahl von
Speichervorrichtungen zum Übertragen der Gruppe von Daten zu dem
Host (22) ausreicht;
Vorsehen einer Ersatzspeichervorrichtung (36), zusätz
lich zu der Vielzahl von Speichervorrichtungen, zur
Verwendung beim Ersetzen einer ersten Speichervorrichtung (z. B.
32-7) von der Vielzahl von Speichervorrichtungen (32-0 bis
32-7), welche Ersatzspeichervorrichtung und welche Vielzahl
von Speichervorrichtungen in einem Speichervorrichtungsarray
(30) enthalten sind;
Ausführen einer Rekonstruktion, bei der von einer
Vielzahl der Datengruppen wenigstens erste und zweite
Dateneinheiten, die auf der ersten Speichervorrichtung (32-7)
gespeichert sind, auf der Ersatzspeichervorrichtung (36)
rekonstruiert werden, wenn die erste Speichervorrichtung
(32-7) in einem ausgefallenen aber verwendbaren Zustand ist,
bei dem eine Lesedatenübertragung und eine
Schreibdatenübertragung mit dem Host (22) noch, aber nur mit Schwierigkeit,
möglich sind;
Übertragen von Daten zwischen dem Host (22) und dem
Speichervorrichtungsarray (30) durch:
(i) Bestimmen, wann die Rekonstruktion auszuführen
ist;
(ii) Ausführen der Rekonstruktion, wobei die erste
Dateneinheit vor der zweiten Dateneinheit rekonstruiert wird
und eine Rekonstruktionsgrenze (RCB) als Speicherstelle in
der ersten Speichervorrichtung (32-7) definiert wird, vor
der die Rekonstruktion ausgeführt worden ist und nach der
keine Rekonstruktion ausgeführt worden ist; und
(iii) Durchführen einer Datenübertragung zwischen
dem Host (22) und irgendeiner der Speichervorrichtungen (32-
0 bis 32-6), die nicht die erste Speichervorrichtung (32-7)
ist, nach der Rekonstruktion der ersten Dateneinheit, aber
vor der Rekonstruktion der zweiten Dateneinheit; und
Fortsetzen der Rekonstruktion in dem Fall, wenn eine
Datenübertragung bezüglich einer Stelle durchgeführt wird,
die der Rekonstruktionsgrenze folgt, und wenn eine zweite
Speichervorrichtung (z. B. 32-6) von der Vielzahl von
Speichervorrichtungen keine erforderlichen Daten für die
Rekonstruktion vorsehen kann, indem Daten von der ersten
Speichervorrichtung (32-7) auf die Ersatzspeichervorrichtung
(36) kopiert werden.
8. Verfahren nach Anspruch 7, bei dem der
Datenübertragungsdurchführschritt das Schreiben von Daten von dem
Host (22) auf die Ersatzspeichervorrichtung (36) vor die
Rekonstruktionsgrenze (RCB) enthält.
9. Verfahren nach Anspruch 7 oder 8, bei dem:
die erste Speichervorrichtung (32-7), wenn sie in dem
ausgefallenen aber verwendbaren Zustand ist, Daten mit dem
Hostsystem (22) während einer Schreibdatenübertragung
zwischen dem Hostsystem und dem Speichervorrichtungsarraysystem
(24) überträgt, wobei der Datenübertragungsdurchführschritt
das Durchführen der Schreibdatenübertragung mit dem
Hostsystem enthält, indem Daten der Schreibdatenübertragung in
wenigstens eine Gruppe von Daten transformiert werden, und
das Schreiben der Gruppe von Daten auf die
Ersatzspeichervorrichtung (36) vor die Rekonstruktionsgrenze (RCB) und auf
die erste Speichervorrichtung (32-7) hinter die
Rekonstruktionsgrenze.
10. Verfahren nach Anspruch 7 oder 8, bei dem:
die erste Speichervorrichtung (32-7), wenn sie in dem
ausgefallenen aber verwendbaren Zustand ist, Daten mit dem
Hostsystem (22) während einer Lesedatenübertragung zwischen
dem Speichervorrichtungsarraysystem und dem Hostsystem
überträgt, wobei der Datenübertragungsdurchführschritt das
Durchführen der Lesedatenübertragung mit dem Hostsystem
enthält, indem Daten, die der Rekonstruktionsgrenze (RCB)
folgen, unter Verwendung der ersten Speichervorrichtung (32-
7) und irgendeiner von der Vielzahl von
Speichervorrichtungen (32-0 bis 32-6) gelesen werden, die nicht die erste
Speichervorrichtung ist.
11. Verfahren nach Anspruch 10, bei dem:
der Leseschritt das Lesen von Daten vor der
Rekonstruktionsgrenze (RCB) von der Ersatzspeichervorrichtung (36) und
irgendeiner von der Vielzahl von Speichervorrichtungen (32-0
bis 32-6) enthält, die nicht die erste Speichervorrichtung
(32-7) ist.
12. Verfahren zum Durchführen von Datenübertragungen
mit einem Host (22) während der Rekonstruktion in einem
Speichervorrichtungsarraysystem, mit den folgenden
Schritten:
Vorsehen einer Vielzahl von Speichervorrichtungen (32-0
bis 32-7) zum Speichern von Gruppen von Dateneinheiten,
wobei jede Gruppe Dateneinheiten hat, die über die Vielzahl
von Speichervorrichtungen verteilt werden, jede Gruppe von
Daten redundant codiert wird, so daß, bei Nichtvorhandensein
eines Fehlers, eine Teilmenge von der Vielzahl von
Speichervorrichtungen zum Übertragen der Gruppe von Daten zu dem
Host (22) ausreicht;
Vorsehen einer Ersatzspeichervorrichtung (36),
zusätzlich zu der Vielzahl von Speichervorrichtungen, zur
Verwendung beim Ersetzen einer ersten Speichervorrichtung (z. B.
32-7) von der Vielzahl von Speichervorrichtungen, bei dem
ein Speichervorrichtungsarray (30) die Vielzahl von
Speichervorrichtungen (32-0 bis 32-7) und die
Ersatzspeichervorrichtung (36) enthält;
Rekonstruieren einer Vielzahl von Dateneinheiten von
der ersten Speichervorrichtung (32-7) auf der
Ersatzspeichervorrichtung (36), wenn die erste Speichervorrichtung in
einem ausgefallenen aber verwendbaren Zustand ist, bei dem
eine Lesedatenübertragung und eine Schreibdatenübertragung
mit dem Host noch, aber nur mit Schwierigkeit, möglich sind,
welche Vielzahl von Dateneinheiten in einer Vielzahl von
Datengruppen enthalten ist;
Zugreifen auf die Vielzahl von Dateneinheiten auf der
Ersatzspeichervorrichtung (36) nach dem Schritt zum
Rekonstruieren für eine host-inituerte
Datenübertragungsanforderung, die zum Übertragen von Daten, die der Vielzahl von
Datengruppen entsprechen, zwischen dem Host und der Menge
aller Speichervorrichtungen (32-0 bis 32-6, 36) führt, die
die Ersatzspeichervorrichtung einschließt, aber die erste
Speichervorrichtung (32-7) ausschließt, wobei diese
Speichervorrichtungen die Vielzahl von Datengruppen im
wesentlichen gleichzeitig lesen oder schreiben, wenn die
host-initiierte Datenübertragungsanforderung erfüllt wird; und
Übertragen von Daten, die der Vielzahl von Datengruppen
entsprechen, zwischen dem Host (22) und der Menge von
Speichervorrichtungen (32-0 bis 32-6, 36) während des
Rekonstruktionsschrittes;
bei dem auf eine Datenstelle in jeder der ersten
Speichervorrichtung (32-7) und der Ersatzspeichervorrichtung
(36) zugegriffen wird, wenn der Schritt zum Übertragen ein
Schreiben von dem Host auf das Speichervorrichtungsarray
enthält.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/792,729 US5802264A (en) | 1991-11-15 | 1991-11-15 | Background data reconstruction in a storage device array system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69225296D1 DE69225296D1 (de) | 1998-06-04 |
DE69225296T2 true DE69225296T2 (de) | 1998-08-20 |
Family
ID=25157880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69225296T Expired - Fee Related DE69225296T2 (de) | 1991-11-15 | 1992-10-19 | Datenrekonstruktion in einem Speichergerätanordnungssystem |
Country Status (4)
Country | Link |
---|---|
US (1) | US5802264A (de) |
EP (1) | EP0541992B1 (de) |
JP (1) | JP2690436B2 (de) |
DE (1) | DE69225296T2 (de) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2923702B2 (ja) * | 1991-04-01 | 1999-07-26 | 株式会社日立製作所 | 記憶装置及びそのデータ修復方法 |
EP0660236B1 (de) * | 1993-11-30 | 1999-06-09 | Hitachi, Ltd. | Speicherplattenanordnung mit auf einer Vielzahl von Leiterplatten verteilten Speicherplatten, die bei einer Entfernung eines Teils der Leiterplatten zugänglich bleiben |
JP3561002B2 (ja) * | 1994-05-18 | 2004-09-02 | 富士通株式会社 | ディスク装置 |
US6016553A (en) * | 1997-09-05 | 2000-01-18 | Wild File, Inc. | Method, software and apparatus for saving, using and recovering data |
US6732293B1 (en) * | 1998-03-16 | 2004-05-04 | Symantec Corporation | Method, software and apparatus for recovering and recycling data in conjunction with an operating system |
US6363487B1 (en) | 1998-03-16 | 2002-03-26 | Roxio, Inc. | Apparatus and method of creating a firewall data protection |
US6289415B1 (en) | 1998-12-23 | 2001-09-11 | At&T Corporation | System and method for storage media group parity protection |
US7055055B1 (en) | 1999-04-23 | 2006-05-30 | Symantec Corporation | Write cache flushing method for reducing data corruption |
US7051055B1 (en) | 1999-07-09 | 2006-05-23 | Symantec Corporation | Optimized disk storage defragmentation with swapping capabilities |
AU6081200A (en) * | 1999-07-09 | 2001-01-30 | Eric D. Schneider | Optimized disk storage defragmentation with swapping capabilities |
AU1237701A (en) * | 1999-10-29 | 2001-05-14 | Wild File, Inc. | Apparatus and method of creating a firewall data protection |
US6704730B2 (en) | 2000-02-18 | 2004-03-09 | Avamar Technologies, Inc. | Hash file system and method for use in a commonality factoring system |
US7509420B2 (en) | 2000-02-18 | 2009-03-24 | Emc Corporation | System and method for intelligent, globally distributed network storage |
US6826711B2 (en) | 2000-02-18 | 2004-11-30 | Avamar Technologies, Inc. | System and method for data protection with multidimensional parity |
US7194504B2 (en) * | 2000-02-18 | 2007-03-20 | Avamar Technologies, Inc. | System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques |
US7062648B2 (en) * | 2000-02-18 | 2006-06-13 | Avamar Technologies, Inc. | System and method for redundant array network storage |
US6810398B2 (en) | 2000-11-06 | 2004-10-26 | Avamar Technologies, Inc. | System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences |
US7076686B2 (en) * | 2002-02-20 | 2006-07-11 | Hewlett-Packard Development Company, L.P. | Hot swapping memory method and system |
US7337351B2 (en) | 2002-09-18 | 2008-02-26 | Netezza Corporation | Disk mirror architecture for database appliance with locally balanced regeneration |
US7350101B1 (en) * | 2002-12-23 | 2008-03-25 | Storage Technology Corporation | Simultaneous writing and reconstruction of a redundant array of independent limited performance storage devices |
US7577806B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Systems and methods for time dependent data storage and recovery |
US7287133B2 (en) | 2004-08-24 | 2007-10-23 | Symantec Operating Corporation | Systems and methods for providing a modification history for a location within a data store |
US7725760B2 (en) | 2003-09-23 | 2010-05-25 | Symantec Operating Corporation | Data storage system |
US7904428B2 (en) | 2003-09-23 | 2011-03-08 | Symantec Corporation | Methods and apparatus for recording write requests directed to a data store |
US7239581B2 (en) | 2004-08-24 | 2007-07-03 | Symantec Operating Corporation | Systems and methods for synchronizing the internal clocks of a plurality of processor modules |
US7409587B2 (en) | 2004-08-24 | 2008-08-05 | Symantec Operating Corporation | Recovering from storage transaction failures using checkpoints |
US7730222B2 (en) | 2004-08-24 | 2010-06-01 | Symantec Operating System | Processing storage-related I/O requests using binary tree data structures |
US7991748B2 (en) | 2003-09-23 | 2011-08-02 | Symantec Corporation | Virtual data store creation and use |
US7827362B2 (en) | 2004-08-24 | 2010-11-02 | Symantec Corporation | Systems, apparatus, and methods for processing I/O requests |
US7296008B2 (en) | 2004-08-24 | 2007-11-13 | Symantec Operating Corporation | Generation and use of a time map for accessing a prior image of a storage device |
JP2005100259A (ja) * | 2003-09-26 | 2005-04-14 | Hitachi Ltd | ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法 |
US7249277B2 (en) | 2004-03-11 | 2007-07-24 | Hitachi, Ltd. | Disk array including plural exchangeable magnetic disk unit |
US7313721B2 (en) * | 2004-06-21 | 2007-12-25 | Dot Hill Systems Corporation | Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array |
US7949665B1 (en) | 2004-11-19 | 2011-05-24 | Symantec Corporation | Rapidly traversing disc volumes during file content examination |
JP4441929B2 (ja) * | 2005-01-19 | 2010-03-31 | 日本電気株式会社 | ディスク装置及びホットスワップ方法 |
JP4886209B2 (ja) * | 2005-04-15 | 2012-02-29 | 株式会社東芝 | アレイコントローラ、当該アレイコントローラを含む情報処理装置及びディスクアレイ制御方法 |
JP4817783B2 (ja) * | 2005-09-30 | 2011-11-16 | 富士通株式会社 | Raidシステム及びそのリビルド/コピーバック処理方法 |
US7536583B2 (en) | 2005-10-14 | 2009-05-19 | Symantec Operating Corporation | Technique for timeline compression in a data store |
JP2007233903A (ja) * | 2006-03-03 | 2007-09-13 | Hitachi Ltd | 記憶制御装置及び記憶制御装置のデータ回復方法 |
US8051043B2 (en) | 2006-05-05 | 2011-11-01 | Hybir Inc. | Group based complete and incremental computer file backup system, process and apparatus |
JP4399021B1 (ja) * | 2008-10-29 | 2010-01-13 | 株式会社東芝 | ディスクアレイ制御装置および記憶装置 |
JP5409159B2 (ja) * | 2009-07-23 | 2014-02-05 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US10360106B2 (en) * | 2011-12-12 | 2019-07-23 | International Business Machines Corporation | Throttled real-time writes |
US9588842B1 (en) * | 2014-12-11 | 2017-03-07 | Pure Storage, Inc. | Drive rebuild |
US10007432B2 (en) * | 2015-10-13 | 2018-06-26 | Dell Products, L.P. | System and method for replacing storage devices |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4899342A (en) * | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
JPH0264834A (ja) * | 1988-08-31 | 1990-03-05 | Midori Denshi Kk | 小型コンピュータシステムにおけるデータ転送装置 |
AU630635B2 (en) * | 1988-11-14 | 1992-11-05 | Emc Corporation | Arrayed disk drive system and method |
FR2643993B1 (fr) * | 1989-03-03 | 1991-05-17 | Bull Sa | Procede pour remplacer des modules memoire dans un systeme informatique et systeme informatique pour la mise en oeuvre du procede |
US5072378A (en) * | 1989-12-18 | 1991-12-10 | Storage Technology Corporation | Direct access storage device with independently stored parity |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
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 |
US5155845A (en) * | 1990-06-15 | 1992-10-13 | Storage Technology Corporation | Data storage system for providing redundant copies of data on different disk drives |
US5208813A (en) * | 1990-10-23 | 1993-05-04 | Array Technology Corporation | On-line reconstruction of a failed redundant array system |
JP2603757B2 (ja) * | 1990-11-30 | 1997-04-23 | 富士通株式会社 | アレ−ディスク装置の制御方法 |
-
1991
- 1991-11-15 US US07/792,729 patent/US5802264A/en not_active Expired - Lifetime
-
1992
- 1992-10-19 EP EP92117805A patent/EP0541992B1/de not_active Expired - Lifetime
- 1992-10-19 DE DE69225296T patent/DE69225296T2/de not_active Expired - Fee Related
- 1992-11-16 JP JP4304242A patent/JP2690436B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0541992A2 (de) | 1993-05-19 |
EP0541992A3 (en) | 1994-07-06 |
EP0541992B1 (de) | 1998-04-29 |
US5802264A (en) | 1998-09-01 |
JPH05204554A (ja) | 1993-08-13 |
JP2690436B2 (ja) | 1997-12-10 |
DE69225296D1 (de) | 1998-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69225296T2 (de) | Datenrekonstruktion in einem Speichergerätanordnungssystem | |
DE69224589T2 (de) | Speicherplattenanordnung und Verfahren zur Bestimmung des Vorhandenseins korrekter Speichervorrichtungen | |
DE69131551T2 (de) | Logische Aufteilung eines Speichersystems mit redundanter Matrix | |
DE3750790T2 (de) | Paritätsverteilung zum verbesserten Speicherzugriff. | |
DE69418984T2 (de) | Speicherplattenanordnung mit auf einer Vielzahl von Leiterplatten verteilten Speicherplatten, die bei einer Entfernung eines Teils der Leiterplatten zugänglich bleiben | |
DE69733076T2 (de) | Hochleistungsdatenweg mit sofortigem xor | |
DE69632424T2 (de) | Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe | |
DE60210211T2 (de) | Redundante Datensicherungsvorrichtung und -Verfahren | |
DE69220553T2 (de) | Fehleranzeige in einer Speichergerätsanordnung | |
DE69425222T2 (de) | Dynamisch ausbaubares Speichereinheitsmatrixsystem | |
DE69429320T2 (de) | Mehrkanaliges verteiltes Datenspeicherungs- und Wiederauffindungssystem mit gemeinsamem Pool | |
DE69127895T4 (de) | Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem | |
DE69831944T2 (de) | Vorrichtung und verfahren zur sicherung eines plattenspeichersystem | |
DE69123093T2 (de) | Kanal zur Datenregenerierung in einer fehlertoleranten Plattenlaufwerkanordnung und Verfahren zur Fehlerkorrektur darin | |
DE60038364T2 (de) | Computersystem und Speicherauszugsdatenverwaltungsverfahren | |
DE69021957T2 (de) | Verfahren und Anordnung zur Steuerung von Schattenspeichern. | |
DE69710578T2 (de) | Verfahren zum unabhängigen und gleichzeitigen zugriff auf eine gemeinsame datensammlung | |
DE69231204T2 (de) | Gerät und Verfahren zur Steuerung von Hintergrundverarbeitung in einer Speicherplattenanordnung | |
DE69330924T2 (de) | Plattennetzwerk programmierbares Steuerungsgerät | |
DE4422786A1 (de) | Speichersystem | |
DE69532703T2 (de) | Speicherplattenanordnungsuntersystem und Datenerzeugungsverfahren dazu | |
DE69224885T2 (de) | Prozessteuersystem zum Betreiben einer Speichereinrichtung | |
EP0350478B1 (de) | Verfahren zum betrieb einer multiprozessor-zentralsteuereinheit eines vermittlungssystemes | |
EP0350016B1 (de) | Verfahren und Einrichtung zum Duplizieren des Inhalts von Datenträgern | |
DE69927223T2 (de) | Ausfallsicherheit eines Mehrrechnersystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |