DE102005012448B4 - System und Verfahren zur Wiederherstellung eines Laufwerks nach einem Ausfall eines Laufwerks - Google Patents

System und Verfahren zur Wiederherstellung eines Laufwerks nach einem Ausfall eines Laufwerks Download PDF

Info

Publication number
DE102005012448B4
DE102005012448B4 DE200510012448 DE102005012448A DE102005012448B4 DE 102005012448 B4 DE102005012448 B4 DE 102005012448B4 DE 200510012448 DE200510012448 DE 200510012448 DE 102005012448 A DE102005012448 A DE 102005012448A DE 102005012448 B4 DE102005012448 B4 DE 102005012448B4
Authority
DE
Germany
Prior art keywords
drive
memory
cache
controller
data
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.)
Active
Application number
DE200510012448
Other languages
English (en)
Other versions
DE102005012448A1 (de
Inventor
Kevin T. Marks
Ahmad A. J. Ali
Robert Clausen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dell Products LP
Original Assignee
Dell Products LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dell Products LP filed Critical Dell Products LP
Publication of DE102005012448A1 publication Critical patent/DE102005012448A1/de
Application granted granted Critical
Publication of DE102005012448B4 publication Critical patent/DE102005012448B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65DCONTAINERS FOR STORAGE OR TRANSPORT OF ARTICLES OR MATERIALS, e.g. BAGS, BARRELS, BOTTLES, BOXES, CANS, CARTONS, CRATES, DRUMS, JARS, TANKS, HOPPERS, FORWARDING CONTAINERS; ACCESSORIES, CLOSURES, OR FITTINGS THEREFOR; PACKAGING ELEMENTS; PACKAGES
    • B65D83/00Containers or packages with special means for dispensing contents
    • B65D83/08Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession
    • B65D83/0805Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession through an aperture in a wall
    • B65D83/0811Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession through an aperture in a wall with means for assisting dispensing
    • B65D83/0841Containers or packages with special means for dispensing contents for dispensing thin flat articles in succession through an aperture in a wall with means for assisting dispensing and for cutting interconnected articles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H35/00Delivering articles from cutting or line-perforating machines; Article or web delivery apparatus incorporating cutting or line-perforating devices, e.g. adhesive tape dispensers
    • B65H35/0006Article or web delivery apparatus incorporating cutting or line-perforating devices
    • B65H35/002Hand-held or table apparatus
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H35/00Delivering articles from cutting or line-perforating machines; Article or web delivery apparatus incorporating cutting or line-perforating devices, e.g. adhesive tape dispensers
    • B65H35/0006Article or web delivery apparatus incorporating cutting or line-perforating devices
    • B65H35/0073Details
    • B65H35/008Arrangements or adaptations of cutting devices
    • B65H35/0086Arrangements or adaptations of cutting devices using movable cutting elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/50Auxiliary process performed during handling process
    • B65H2301/51Modifying a characteristic of handled material
    • B65H2301/515Cutting handled material
    • B65H2301/5151Cutting handled material transversally to feeding direction
    • B65H2301/51512Cutting handled material transversally to feeding direction using a cutting member moving linearly in a plane parallel to the surface of the web and along a direction crossing the handled material
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/50Auxiliary process performed during handling process
    • B65H2301/51Modifying a characteristic of handled material
    • B65H2301/515Cutting handled material
    • B65H2301/5153Details of cutting means
    • B65H2301/51532Blade cutter, e.g. single blade cutter
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/50Auxiliary process performed during handling process
    • B65H2301/51Modifying a characteristic of handled material
    • B65H2301/515Cutting handled material
    • B65H2301/5154Cutting handled material from hand-held or table dispenser
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2701/00Handled material; Storage means
    • B65H2701/10Handled articles or webs
    • B65H2701/19Specific article or web
    • B65H2701/1944Wrapping or packing material
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Abstract

Verfahren zum Verwalten der Wiederherstellungsbefehle, die von einem Laufwerkscontroller (22) an ein Laufwerk (20) gerichtet sind, wobei das Laufwerk (20) ein Speichermedium (26) und einen Zwischenspeicher (27) umfasst und wobei der Laufwerkscontroller (22) einen Speicher (28, 29) umfasst, wobei das Verfahren die folgenden Schritte umfasst: Aktivieren des Zwischenspeichers (27) des Laufwerks (20); Speichern jedes Wiederherstellungsbefehls, der an das Laufwerk (20) gerichtet ist, in dem Speicher (28, 29) des Laufwerkscontrollers (22); und periodisches Veranlassen, dass das Laufwerk (20) seinen Zwischenspeicher (27) leert, um zu veranlassen, dass die Daten, die in dem Zwischenspeicher (27) des Laufwerks (20) zwischengespeichert sind und den Wiederherstellungsbefehlen zugeordnet sind, an das Speichermedium (26) des Laufwerks (20) übertragen werden, wobei; eine Zählung der Anzahl der Befehle, die in dem Speicher (28, 29) des Laufwerkscontrollers (22) gespeichert ist, in dem Laufwerkscontroller (22) beibehalten wird, und veranlasst wird, dass das Laufwerk (20) seinen Zwischenspeicher (27) leert, wenn die Zählung der Anzahl der Befehle, die in dem Speicher (28, 29) des Laufwerkscontrollers (22) gespeichert sind, eine vorbestimmte Schwelle erreicht, wobei die vorbestimmte Schwelle geringer als die maximale Anzahl der Befehle ist, die in dem Speicher (28, 29) des Laufwerkscontrollers (22) gespeichert werden kann; wobei jeder Befehl, der an das Laufwerk (20) gerichtet wird, zumindest temporär in dem Speicher (28, 29) während der Periode gespeichert wird, in der der Zwischenspeicher (27) des Laufwerks (20) aktiviert ist.

Description

  • Technischer Bereich
  • Die vorliegende Offenbarung betrifft im Allgemeinen den Bereich von Datenspeichersystemen und insbesondere ein System und ein Verfahren zur Wiederherstellung eines Laufwerks mit einem aktivierten Zwischenspeicher.
  • Hintergrund
  • In dem Maße, wie der Wert und die Verwendung von Information weiter zunimmt, suchen Einzelpersonen und Unternehmen nach zusätzlichen Wegen, Information zu verarbeiten und zu speichern. Eine den Anwendern zur Verfügung stehende Möglichkeit sind informationsverarbeitende Systeme. Ein informationsverarbeitendes System verarbeitet im Allgemeinen, kompiliert und speichert und/oder kommuniziert Information oder Daten für Unternehmenszwecke, persönliche oder andere Zwecke und ermöglicht dadurch Anwendern, aus dem Wert der Information einen Vorteil zu ziehen. Da die Bedürfnisse und Anforderungen an die Technologie und die Informationsverarbeitung sich zwischen verschiedenen Anwendern oder Anwendungen unterscheiden, können informationsverarbeitende Systeme ebenfalls variieren im Hinblick darauf, welche Information verarbeitet wird, wie die Information verarbeitet wird, und wie viel Information verarbeitet, gespeichert oder kommuniziert wird, und wie schnell und effektiv die Information verarbeitet, gespeichert, oder kommuniziert werden kann. Die Unterschiede in den informationsverarbeitenden Systemen ermöglichen, dass informationsverarbeitende Systeme allgemein konfiguriert sind oder für einen speziellen Anwender oder eine spezielle Anwendung konfiguriert werden, beispielsweise die Verarbeitung von Finanztransaktionen, die Reservierungen von einer Fluggesellschaft, die Speicherung von Unternehmensdaten oder globale Kommunikation. Zusätzlich können informationsverarbeitende Systeme eine Vielzahl von Hardware- und Software-Komponenten umfassen, die konfiguriert werden können, um Information zu verarbeiten, zu speichern und zu kommunizieren, und kann ein oder mehrere Computersysteme, Datenspeichersysteme und Netzwerksysteme umfassen, beispielsweise Computer, Arbeitsstationen eines Personalcomputers, tragbare Computer, Computerserver, Druckerserver, Netzwerkrouter, Netzwerkhubs, Netzwerkswitches, Laufwerksfelder für ein Speicherbereichsnetzwerk, ein System mit einem redundanten Feld von unabhängigen Laufwerken (redundant array of independent disks, RAID) und einen Switch für die Telekommunikation.
  • Informationsverarbeitende Systeme umfassen häufig ein oder mehrere Laufwerke, die in Laufwerkfeldern gruppiert werden. Viele Laufwerke umfassen einen zugeordneten Schreibzwischenspeicher (Write Cache), der selektiv aktiviert oder deaktiviert werden kann. In Bezug auf Laufwerke, die einen aktivierten Schreibzwischenspeicher umfassen, gibt es manchmal eine Verzögerung zwischen dem Zeitpunkt, an dem das Laufwerk dem Laufwerkscontroller mitteilt, dass ein Schreibvorgang erfolgreich war, und dem Zeitpunkt, an dem die Daten auf das Speichermedium des Laufwerks geschrieben werden. Ein Laufwerk mit einem aktivierten Schreibzwischenspeicher wird häufig zu schreibende Daten an den Schreibzwischenspeicher des Laufwerks richten oder dort speichern. Sobald die zu schreibenden Daten erfolgreich an den Zwischenspeicher transferiert worden sind, wird das Laufwerk eine Mitteilung an den Laufwerkscontroller übertragen, um anzuzeigen, dass der Schreibvorgang erfolgreich ausgeführt worden ist. Diese Mitteilung wird von dem Laufwerk an den Laufwerkscontroller übertragen, selbst wenn die Daten des Schreibbefehls noch nicht auf das permanente und nichtflüchtige Medium des Laufwerks geschrieben worden sind. Die Anordnung der Daten des Schreibbefehls in dem Schreibzwischenspeicher ermöglicht den Steuerschaltkreisen des Schreibcontrollers die Reihenfolge zu optimieren, in der Information auf das Medium in dem Laufwerk geschrieben wird.
  • Diese Vorgehensweise ist jedoch für den Fall problematisch, in dem ein Schreibbefehl erfolgreich in den Zwischenspeicher des Laufwerks geschrieben worden ist, aber nicht erfolgreich auf das nichtflüchtige Medium des Laufwerks geschrieben worden ist. In diesem Fall hat das Laufwerk dem Laufwerkscontroller mitgeteilt, dass der Schreibbefehl erfolgreich war. Wenn das Laufwerk ausfällt (beispielsweise, wenn in dem Laufwerk der Strom ausfällt oder das Laufwerk zurückgesetzt wird oder der Schreibzwischenspeicher beschädigt wird), können unter Umständen die in dem Schreibzwischenspeicher gespeicherten Daten verloren gehen und niemals auf das Laufwerk geschrieben werden. Der Laufwerkscontroller nimmt diesen Datenverlust jedoch nicht wahr, da die Steuerschaltkreise des Laufwerks angezeigt haben, dass der Schreibbefehl ausgeführt worden ist. Der Laufwerkscontroller und das Laufwerk sind nicht synchronisiert und die Daten in dem Schreibzwischenspeicher, die nicht auf das Laufwerk geschrieben worden sind, sind verloren. Um zu verhindern, dass dieses Ausfallereignis auftritt, werden die Schreibzwischenspeicher von Laufwerken in einem RAID-System häufig deaktiviert. Wenn der Schreibzwischenspeicher eines Laufwerks deaktiviert worden ist, kann das Laufwerk nicht für einen bestimmten Zeitraum zu schreibende Daten in einem Zwischenspeicher speichern, wodurch das Laufwerk gezwungen wird, die Daten direkt auf das nichtflüchtige Speichermedium des Laufwerks zu schreiben. In diesem Szenario teilt das Laufwerk dem Laufwerkscontroller ein erfolgreiches Schreiben erst dann mit, wenn das Laufwerk die zu schreibenden Daten auf sein nichtflüchtiges Speichermedium geschrieben hat. Wenn der Schreibzwischenspeicher eines Laufwerks deaktiviert ist, kann seine Leistungsfähigkeit jedoch nachhaltig beeinflusst werden, da die Steuerschaltkreise des Laufwerks den Transfer von Daten von dem Zwischenspeicher an das permanente Medium des Laufwerks nicht optimieren können.
  • RAID-Speicherfelder zeichnen sich durch die Fähigkeit aus, Information auf einem Laufwerk nach einem Ausfall wieder herzustellen oder erneut aufzubauen. Beispielsweise wird in einem RAID-5-Array Paritätsinformation auf den Laufwerken in dem Array gespeichert. Wenn eines der Laufwerke ausfällt, wird es erneut aufgebaut, basierend auf der Paritätsinformation, die auf den anderen Laufwerken in dem Array gespeichert ist. In dem Maße, wie die Kapazität der Medien in den Laufwerken zunimmt, dauert die Wiederherstellung eines Laufwerks länger aufgrund der zunehmenden Menge an Information, die wiederhergestellt werden muss. Wiederherstellungszeiten in Stunden oder sogar einigen Tagen sind für Laufwerke mit Medien, die in der Lage sind, zig oder hunderte von Gigabytes an Daten zu speichern, nicht ungewöhnlich. Wenn ein Laufwerk in dem Array erneut aufgebaut wird, laufen viele RAID-Arrays in einem verschlechterten Mode. In dem verschlechterten Mode kann die Leistungsfähigkeit des Arrays verschlechtert sein, da die Leistungsfähigkeit für die Ressourcen für die Wiederherstellung des Laufwerks verwendet werden. Wenn der Zwischenspeicher des gerade wiederhergestellten Laufwerks während der Wiederherstellungszeit deaktiviert ist, kann zusätzlich die Zeit, die für das Wiederherstellen des Laufwerks benötigt wird, länger sein als die Zeit, die benötigt wird, um ein Laufwerk wiederherzustellen, das einen aktivierten Zwischenspeicher aufweist. Zusätzlich wird bei vielen RAID-Levels das Array verloren gehen, wenn ein zweites Laufwerk ausfällt, während das Array sich in dem verschlechterten Mode befindet.
  • US 6 549 977 B1 offenbart eine Technologie zum Verringern einer Wiederherstellungszeit einer RAID Anordnung nach einer Ausfall der elektrischen Leistung. Unterbrechungen von Schreibausführungen werden aneinandergereiht bis eine Leerung eines Schreibzwischenspeichers durchgeführt worden ist und werden dann an ein Host-System geschickt. Zustande von Bereichen von Speicheradressen werden in den Bereichen zugeordneten nichtflüchtigen Speicherelementen gespeichert. Die Zustände ermöglichen verringerte Wiederherstellungszeiten nach Ausfall der elektrischen Leistung oder dem Ausfall von Laufwerken.
  • US 5 572 660 stellt eine fehlertolerante Festplatten-Anordnung zu einem dezentralen Bus eines Computersystems dar, die eine Mehrzahl von Daten-Laufwerken zum Speichern von eigentlichen Daten und ein Paritäts-Laufwerk zum Speichern von redundanten Daten aufweist. Jedes Daten-Laufwerk weist eine zugeordnete dedizierte durchschreibende (write-through) Zwischenspeichereinheit auf. Da ein nichtflüchtiger Speicher zum Speichern der Adressen von sogenannter „dirty parity” Information innerhalb des Zurückschreib-Zwischenspeichers bereitgestellt wird, kann die Paritätsinformation im Falle eines Ausfalls der elektrischen Leistung wiederhergestellt werden.
  • Zusammenfassung der Erfindung
  • Gemäß der vorliegenden Offenbarung wird ein System und ein Verfahren zum Wiederherstellen eines Laufwerks in einem Laufwerksarray offenbart. Der Zwischenspeicher des wiederhergestellten Laufwerks ist aktiviert. Während des Wiederherstellungsprozesses werden Befehle an das Laufwerk ebenfalls in einem Speicher, welcher dem Laufwerkscontroller zugeordnet ist, aufgenommen. Ein Synchronisierungsbefehl wird periodisch an das Laufwerk gesandt. In Antwort auf den Synchronisierungsbefehl schreibt das Laufwerk alle Daten in dem Zwischenspeicher, die noch nicht auf das nichtflüchtige Medium geschrieben worden sind, auf das Medium. Nach der Synchronisation wird der Speicher gelöscht, da die Schreibbefehle auf dem nichtflüchtigen Speicher des Laufwerksarrays ausgeführt worden sind.
  • Ein Vorteil des offenbarten Systems und Verfahrens sind kürzere Wiederherstellungszeiten für ausgefallene Laufwerke. Die Aktivierung des Zwischenspeichers für das wiederherzustellende Laufwerk ermöglicht der Steuerlogik des Laufwerks die Reihenfolge zu optimieren, in der Befehle auf das Medium geschrieben werden. Das Aktivieren des Zwischenspeichers für das Laufwerk, das gerade wiederhergestellt wird, ermöglicht ferner, dass mehrere Schreibbefehle an das Laufwerk gesandt werden, bevor die zugeordneten Daten mit den Schreibbefehlen auf das Medium in dem Laufwerk geschrieben werden. Da der Zwischenspeicher aktiviert ist, kann das Laufwerk schneller wiederhergestellt werden, als ein Laufwerk, dessen Zwischenspeicher während des Wiederherstellungsprozesses deaktiviert worden ist.
  • Ein weiterer Vorteil des offenbarten Systems und Verfahrens besteht darin, dass die erläuterten Techniken für die Möglichkeit ausgelegt sind, dass ein Laufwerk, das gerade wiederhergestellt wird, einen Systemausfall erleidet, während der Zwischenspeicher aktiviert ist, und während des Wiederherstellungsprozesses. Um diese Möglichkeit zu berücksichtigen werden Befehle in einen Speicher geschrieben und periodisch mit dem Laufwerk synchronisiert. Der Synchronisationsvorgang bringt es zwingend mit sich, dass alle Daten in dem Zwischenspeicher, die Schreibbefehlen zugeordnet sind, auf das Speichermedium des Laufwerks geschrieben werden. Das Speichern einer Untermenge von möglicherweise nicht synchronisierten Befehlen in dem Speicher des Laufwerks-Controllers schließt die Möglichkeit aus, dass der Wiederherstellungsprozess von Beginn an neu gestartet werden muss. Stattdessen kann der Wiederherstellungsprozess erneut gestartet werden, ausgehend von denjenigen Befehlen, die in dem Speicher gespeichert werden bei einem Ausfalls während des Wiederherstellungsprozesses (beispielsweise eines Stromausfalls). Im Ergebnis umfasst der hier erläuterte Wiederherstellungsprozess einen Sicherheitsmechanismus, der vor einem nachfolgenden Ausfall schützt, ohne die Leistungsfähigkeit des Wiederherstellungsprozesses negativ zu beeinflussen. Weitere technische Vorteile erkennt der Fachmann bei Betrachtung der nachfolgenden Beschreibung, der Ansprüche und der Zeichnungen.
  • Kurze Beschreibung der Zeichnungen
  • Ein vollständiges Verständnis der vorliegenden Offenbarung und ihrer Vorteile erhält man durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen, in denen übereinstimmende Bezugszeichen ähnliche Merkmale bezeichnen und wobei:
  • 1 ist ein Diagramm eines redundanten Speicherarrays;
  • 2 ist ein Laufwerk eines Speicherarrays und eines zugeordneten Laufwerkscontrollers; und
  • 3 ist ein Flussdiagramm eines Verfahrens zur Wiederherstellung eines Laufwerks eines Laufwerksarrays.
  • Detaillierte Beschreibung
  • Für die Zwecke dieser Offenbarung kann ein informationsverarbeitendes System irgendeine Vorrichtung oder eine Ansammlung von Vorrichtungen umfassen, die in der Lage sind, zu berechnen, zu klassifizieren, zu verarbeiten, zu übertragen, zu empfangen, abzurufen, zu erzeugen, zu schalten, zu speichern, anzuzeigen, darzustellen, zu detektieren, zu speichern, wiederherzustellen, zu verarbeiten oder irgendeine Art von Information, Intelligenz oder Daten für Unternehmenszwecke, wissenschaftliche Zwecke, Steuerfunktionen oder andere Zwecke zu verwenden.
  • Beispielsweise kann ein informationsverarbeitendes System ein Personalcomputer sein, ein Netzwerkspeichergerät oder irgendein anderes geeignetes Gerät und kann in Größe, Form, Leistungsfähigkeit, Funktionalität und Preis variieren. Das informationsverarbeitende System kann einen Direktzugriffsspeicher (RAM), eine oder mehrere Verarbeitungsressourcen, wie z. B. eine zentrale Verarbeitungseinheit (CPU) oder Hardware- oder Software-Steuerlogik (ROM) und/oder andere Arten von nicht-flüchtigem Speicher umfassen. Zusätzliche Komponenten des informationsverarbeitenden Systems können eine oder mehrere Laufwerke umfassen, einen oder mehrere Netzwerkports zur Kommunikation mit externen Geräten, ebenso wie zahlreiche Eingabe- und Ausgabegeräte (I/O), wie z. B. eine Tastatur, eine Maus und eine Graphikanzeige. Das informationsverarbeitende System kann ferner einen oder mehrere Busse umfassen, die in der Lage sind, Kommunikationen zwischen den verschiedenen Hardware-Komponenten zu übertragen.
  • 1 ist ein Diagramm eines Level-5-RAID-Speicherarrays, das im Allgemeinen mit dem Bezugszeichen 10 bezeichnet wird. Das Speicherarray 10 umfasst fünf Laufwerke, auf die manchmal als Laufwerke oder Volumina Bezug genommen wird. Jedes der vier Laufwerke in dem Beispiel aus 1 umfasst acht Streifen oder Reihen von Daten, die als Streifen 0 bis Streifen 7 bezeichnet sind. Man erkennt, dass die Konfiguration des RAID-Arrays aus 1 einfach eine Darstellung eines RAID-Array ist und dass ein RAID-Array mit mehr oder weniger Laufwerken mit mehr oder weniger Streifen oder Reihen konfiguriert werden kann. Unter Bezugnahme auf den Streifen 0 werden Daten im Laufwerk A, im Laufwerk B und im Laufwerk C gespeichert. Die Paritätsbits im Streifen 0, die das Ergebnis eines exclusive-OR-Vorgangs sind, der auf dem Inhalt des Streifens 0 im Laufwerk A, im Laufwerk B und im Laufwerk C durchgeführt worden ist, werden im Laufwerk D gespeichert und mit dem Buchstaben P0 bezeichnet. Als ein zweites Beispiel der Datenstruktur des RAID-Arrays 10 werden unter Bezugnahme auf den Streifen 7 Daten im Laufwerk B, Laufwerk C und im Laufwerk D gespeichert. Die Paritätsbits für den Streifen 7, die das Ergebnis eines exclusive-OR-Vorgangs sind, der auf dem Inhalt des Streifens 7 im Laufwerk B, im Laufwerk C und im Laufwerk D durchgeführt worden ist, werden im Laufwerk A gespeichert und mit dem Buchstaben P7 bezeichnet. Wenn beispielsweise das Laufwerk C ausfallen sollte oder ansonsten als ein verschlechtertes Laufwerk identifiziert werden sollte, werden die Daten in jedem Streifen des Laufwerks C wiederhergestellt mit den Daten in den anderen drei Laufwerken des RAID-Arrays 10. Wie in 1 gezeigt, ist jedes der Laufwerke in dem Speicherarray mit einem Host verbunden. Das RAID-5-Array 10 ist ein Beispiel eines fehlertoleranten RAID-Levels, wobei ein einziger Laufwerksausfall kompensiert werden kann und wobei das ausgefallene Laufwerk wiederhergestellt wird. Andere fehlertolerante RAID-Levels umfassen 1, 4, 5, 6, 10 und 0 + 1.
  • Jedes Laufwerk eines Speicherarrays kommuniziert mit und wird gesteuert durch einen Laufwerkscontroller. 2 ist ein Diagramm eines Laufwerks 20 und eines Laufwerkcontrollers 22. Das Laufwerk 20 und der Laufwerkscontroller 22 werden miteinander über einen Kanal 24 verbunden. Der Kanal 24 kann gemäß irgendeinem einer Anzahl von Kommunikationsprotokollen funktionieren, einschließlich einem parallelen oder seriellen SCSI-Kommunikationsbus oder -Verbindung, oder einem parallelen oder seriellen ATA-Kommunikationsbus oder -Verbindung, einer Faserkanalkommunikationsverbindung oder einer drahtlosen Kommunikationsverbindung. Das Laufwerk 20 umfasst ein Speichermedium 26, Steuerlogik 21 und einen Zwischenspeicher 27. Das Speichermedium 26 kann sämtliche Medien umfassen, die geeignet sind zum Speichern von Information, einschließlich magnetischer Medien oder optischer Medien. In ähnlicher Weise kann der Zwischenspeicher 27 jeglichen üblichen Speichermechanismus zum Speichern von Information umfassen. Der Zwischenspeicher 27 ist üblicherweise ein flüchtiger Speicher und in der Lage, einen schnelleren Zugriff auf seinen Inhalt zu ermöglichen, verglichen mit dem Speichermedium 26, das typischerweise nicht-flüchtig ist.
  • Die Steuerlogik 21 des Laufwerks 20 antwortet auf und verarbeitet Befehle vom Laufwerkscontroller 22 einschließlich von Befehlen zum Lesen von Daten oder zum Schreiben von Daten auf das Laufwerk 20 zum Aktivieren oder zum Deaktivieren des Zwischenspeichers 27 und zum Erzwingen, dass alle Information im Zwischenspeicher 27 auf das Speichermedium 26 geschrieben wird. Die Steuerlogik 21 überträgt ferner Daten und Benachrichtigungsinformation an den Laufwerkscontroller 22. Zusätzlich steuert die Steuerlogik 21 das Speichermedium 26 und den Zwischenspeicher 27. Der Laufwerkscontroller 22 umfasst eine Steuerlogik 23, das mit einem Speicher 28 kommuniziert und es anweist und einem Speicher 29 des Laufwerkscontrollers. Beispiele des Laufwerkscontrollers 22 gemäß der vorliegenden Offenbarung umfassen einen RAID-Controller, einen Lower-Level-ATA/SATA-Controller oder einen SCSCI-Controller oder beides.
  • Der Speicher 28 ist ein Informationsspeicherort, der erfolgte Schreibbefehle, die an das Laufwerk 20 gerichtet sind, speichert. Der Inhalt des Speichers 28 kann durch eine Steuerlogik 23 gesteuert werden. Die Steuerlogik 23 kann einen Befehl ausgeben, um zu verursachen, dass der Speicher 28 seine Inhalte löscht. Der Speicher 28 ist vorzugsweise nichtflüchtiger Natur, so dass die Inhalte des Speichers 28 bei einem plötzlichen Stromausfall am Laufwerk oder dem umgebenden Netzwerk erhalten bleiben. Der Inhalt des Speichers 28 ist eine Auflistung der jüngsten Befehle, die an das Laufwerk 20 gesandt worden sind, zusammen mit einer Befehlszählung, die jedem der aufgelisteten Befehle zugeordnet ist. Der Speicher 29 kann irgendein Speicherort sein, auf den die Steuerlogik 23 zugreifen kann. Eine fortlaufende Befehlszählung ist in dem Speicher 29 gespeichert. Der Wert der Befehlszählung entspricht dem jüngsten Schreibbefehl, der an das Laufwerk 20 gesandt worden ist. Die Befehlszählung in dem Speicher 29 kann durch die Steuerlogik 23 manipuliert werden. Insbesondere kann die Steuerlogik 23 eine neue Befehlszählung im Speicher 29 speichern, die gespeicherte Befehlszählung abrufen oder die Befehlszählung löschen oder zurücksetzen. Der Speicher 29 kann nichtflüchtigen Speicher umfassen, so dass die Befehlszählung bei einem Stromausfall am Laufwerk oder dem Netzwerk erhalten bleiben wird.
  • 3 ist ein Flussdiagramm eines Verfahrens zum Wiederherstellen eines Laufwerks eines Laufwerksarrays. Die Schritte aus 3 werden durchgeführt, wenn ein Laufwerk des Laufwerksarrays wiederhergestellt werden muss. Die Notwendigkeit zur Wiederherstellung eines Laufwerks kann aus einer Vielzahl von Gründen entstehen. Die Daten auf dem Laufwerk können beschädigt sein oder das Laufwerk kann ein Laufwerk sein, das zu dem Laufwerksarray hinzugefügt worden ist. Das Laufwerk kann wiederhergestellt werden gemäß einer automatisierten Wiederherstellung, die Bedingungen identifiziert, die nach einer Wiederherstellung des Laufwerks verlangen. Alternativ kann ein Laufwerk wiederhergestellt werden nach der manuellen Anweisung des Systemadministrators. Im Schritt 30 wird der Zwischenspeicher des Laufwerks aktiviert, wodurch ermöglicht wird, dass das Laufwerk seinen Zwischenspeicher verwendet, um bei der Optimierung der Schreibvorgänge auf dem Medium des Laufwerks zu unterstützen. Der Zwischenspeicher des Laufwerks 20 wird typischerweise durch einen Befehl aktiviert, der vom Laufwerkscontroller 22 an das Laufwerk 20 versandt wird. Wenn beispielsweise das Laufwerk 20 ein SCSI-Laufwerk ist, überträgt der Laufwerkscontroller einen MODE-SELECT-Befehl an eine Zwischenspeichermodesseite (bzw. Cache-Mode-Page) in der Steuerlogik 21 des Laufwerks 22 und setzt das Zwischenspeicheraktivierungsbit in dem Laufwerk auf 1. In einer ATA- oder SATA-Umgebung sendet der Laufwerkscontroller einen Befehl zum Setzen von Merkmalen bzw. einen SET FEATURES-Befehl mit einem Unterbefehlscode um den Zwischenspeicher zu aktivieren. Im Schritt 32 werden die an das Laufwerk gerichteten Befehle beim Laufwerkscontroller 22 empfangen. Diese Befehle umfassen die Schreibbefehle, die für das Wiederherstellen des Laufwerks erforderlich sind. Wenn Bereiche des Laufwerks wiederhergestellt werden, können die Befehle aktive Ladebefehle umfassen, um neue Daten auf die wiederhergestellten Bereiche des Laufwerks zu schreiben. Im Schritt 32 wird der empfangene Befehl im Speicher 28 gespeichert. In dem Maße wie jeder Befehl empfangen wird, wird eine fortlaufende Liste von Schreibbefehlen in dem Speicher 28 aufgenommen. Nach dem Speichern des Befehls im Speicher 28 wird die Befehlszählung im Speicher 29 erhöht. Im Schritt 38 werden die empfangenen Befehle an das Laufwerk übertragen. Wie man an der Reihenfolge der Schritte 32 bis 38 erkennen kann, wird der Befehl bei dem Speicher gespeichert, bevor der Befehl an das Laufwerk übertragen worden ist. Auf diese Art und Weise wird ein Speichereintrag von jedem Befehl erzeugt, bevor der Befehl an das Laufwerk übertragen wird. Wenn der Befehl beim Laufwerk empfangen worden ist, können der Befehl und seine Inhalte in dem Zwischenspeicher gespeichert werden oder auf dem Speichermedium des Laufwerks gespeichert werden. Da der Zwischenspeicher auf dem Laufwerk aktiviert ist, kann das Laufwerk ein Verfahren auswählen zum Verarbeiten des Befehls, das den Zwischenspeicher des Laufwerks in der effizientesten Weise verwendet. Sobald das Laufwerk den Befehle erfolgreich verarbeitet hat, sei es durch die Anordnung des Befehls im Zwischenspeicher oder auf seinem Speichermedium wird das Laufwerk einen Benachrichtigungsbefehl an den Controller ausgeben, um anzuzeigen, dass der Befehl von dem Laufwerk erfolgreich bearbeitet worden ist. Nach der Übertragung durch das Laufwerk und der Benachrichtigung, um einen erfolgreichen Empfang des Befehls anzuzeigen, wird im Schritt 40 festgestellt, ob der Wiederherstellungsvorgang abgeschlossen ist. Wenn der Wiederherstellungsvorgang für das Laufwerk nicht abgeschlossen ist, wird im Schritt 42 festgestellt, ob die Befehlszählung einen vorbestimmten Maximalwert erreicht hat. Sobald die Befehlszählung den vorbestimmten Maximalwert erreicht hat, d. h. sobald eine vorbestimmte Maximalanzahl an Befehlen in dem Speicher gespeichert worden ist, wird eine Serie von Schritten unternommen, um den Speicher mit dem Inhalt der Speichermedien auf dem Laufwerk zu synchronisieren. Der vorbestimmte Maximalwert kann irgendeine Anzahl sein, die nicht größer ist, als die Anzahl von Befehlen, die in dem Speicher gespeichert werden können. Der vorbestimmte Maximalwert sollte nicht so niedrig gesetzt werden, dass der Speicher und das Speichermedium so oft synchronisiert werden, dass die Synchronisationsschritte mit dem effizienten Abschluss des Wiederherstellungsprozess interferieren. Der vorbestimmte Wert sollte nicht so hoch gesetzt werden, dass eine zu große Anzahl von Befehlen in dem Speicher gespeichert wird. Eine zu große Anzahl von Befehlen in dem Speicher widerspricht dem Ziel eine begrenzte Anzahl von Befehlen nachzuverfolgen zur erneuten Ausführung für den Fall eines Ausfalls des Laufwerks, das gerade wiederhergestellt wird. Wenn der vorbestimmte Wert der Befehlszählung nicht erreicht worden ist, fährt das Flussdiagramm beim Schritt 32 fort mit dem Empfang des nächsten Befehls beim Laufwerkscontroller. Wenn im Schritt 42 festgestellt wird, dass der vorbestimmte Befehlszählungswert erreicht worden ist, werden die in dem Speicher gespeicherten Befehle mit dem Inhalt des Speichermediums des Laufwerks synchronisiert. Der Laufwerkscontroller gibt bei Schritt 44 einen Befehl aus, um zu erzwingen, dass alle Daten, die in dem Zwischenspeicher gespeichert sind, die den Schreibbefehlen zugeordnet sind, auf das Medium geschrieben werden. Der Befehl wird ein Befehl sein, der von der Steuerlogik des Laufwerks erkannt wird. In einer SCSI-Umgebung gibt der Laufwerkscontroller einen Befehl SYNCHRONIZE aus. In einer ATA- oder SATA-Umgebung gibt der Laufwerkscontroller einen Befehl „FLUSH” aus. Dieser Befehl verursacht, dass alle Daten, die den Schreibbefehlen in dem Zwischenspeicher zugeordnet sind, an das Speichermedium im Laufwerk übertragen werden. Nach diesem Schritt enthält der Zwischenspeicher des Laufwerks keine Schreibbefehle, die nicht auf das Speichermedium des Laufwerks geschrieben worden sind. Im Schritt 46 wird, nachdem der Schritt 44 erfolgreich ausgeführt worden ist, der Speicher gelöscht und die Befehlszählung wird auf 0 gesetzt. Das Flussdiagramm fährt beim Schritt 32 fort, indem beim Laufwerkscontroller weitere Befehle, die an das Laufwerk gerichtet sind, empfangen werden.
  • Wenn im Schritt 40 festgestellt wird, dass die Wiederherstellung vollständig ist, fährt das Flussdiagramm beim Schritt 48 fort, mit der Ausgabe eines Befehls, um zu erzwingen, dass alle Schreibbefehle von dem Zwischenspeicher im Hinblick auf das Speichermedium des Laufwerks ausgeführt werden können. Es versteht sich, dass der Schritt 48 identisch zum Schritt 44 ist. Beim Schritt 50, der einem erfolgreichen Abschluss des Schrittes 48 folgt, wird der Speicher gelöscht und die Befehlszählung wird auf 0 gesetzt. Es versteht sich, dass der Schritt 50 identisch zum Schritt 46 ist. Im Schritt 52 wird der Zwischenspeicher des Laufwerks deaktiviert. In einer SCSI-Umgebung sendet der Laufwerkscontroller einen MODE-SELECT-Befehl an die Cache-Mode-Page in der Steuerlogik 21 des Laufwerks 22 und setzt das Zwischenspeicheraktivierungsbit in dem Laufwerk auf 0. In einer ATA- oder SATA-Umgebung sendet der Laufwerkscontroller einen Befehl SET FEATURES mit einem Unterbefehlscode, um den Zwischenspeicher zu deaktivieren. Das Deaktivieren des Zwischenspeichers bringt das Laufwerk in einen Zustand, in dem Schreibbefehle, die an das Speicherlaufwerk gerichtet sind, in dem Speicherlaufwerk nicht zwischengespeichert werden können, wodurch sichergestellt wird, dass alle Schreibvorgänge für das Laufwerk auf das nichtflüchtige Speichermedium geschrieben werden.
  • Das offenbarte System und Verfahren ermöglicht die optimierte Wiederherstellung eines Laufwerks mit einem aktivierten Zwischenspeicher und schützt gleichzeitig gegen einen nachfolgenden Ausfall des Laufwerks während des Wiederherstellungsvorgangs. Das Speichern des Schreibbefehls in dem Speicher stellt eine Quelle zum Auflisten der jüngst ausgegebenen Schreibbefehle bereit. Wenn während einer Wiederherstellung des Laufwerks der Strom für den Zwischenspeicher eines Laufwerks ausfällt, wird der Speicher eine Liste derjenigen Befehle umfassen, die möglicherweise noch nicht auf den nicht-flüchtigen Speicher des Laufwerks geschrieben worden sind. Daher können die Inhalte des Speichers als eine Quelle verwendet werden, um die Notwendigkeit des erneuten Startens des Wiederherstellungsprozesses zu verhindern für den Fall eines Stromausfalls an dem Zwischenspeicher des Laufwerks, das gerade wiederhergestellt wird.
  • Es versteht sich, dass das hier offenbarte System und Verfahren nicht auf die genaue Architektur, wie sie in den Figuren der vorliegenden Offenbarung gezeigt ist, begrenzt ist. Stattdessen könnte das System und das Verfahren der vorliegenden Offenbarung in jeder geeigneten Computersystemarchitektur verwendet werden, die die Verwendung von redundanter Stromversorgung mit sich bringt. Es versteht sich ferner, dass das hier offenbarte System und Verfahren in seiner Anwendung nicht auf einen speziellen Prozessor oder eine Prozessorfamilie oder auf die Anwendung eines spezifischen Befehls an den Prozessor begrenzt ist. Stattdessen kann das hier offenbarte System und Verfahren mit irgendeinem Prozessor verwendet werden, der in der Lage ist, seine Stromversorgung über die Modulation von einer oder mehrerer interner Taktgeneratoren zu modulieren. Obwohl die vorliegende Offenbarung im Detail beschrieben worden ist, versteht es sich, dass zahlreiche Veränderungen, Ersetzungen und Abweichungen daran durchgeführt werden können, ohne den Geist und den Bereich der Erfindung zu verlassen, so wie sie in den nachfolgenden Ansprüchen definiert ist.

Claims (15)

  1. Verfahren zum Verwalten der Wiederherstellungsbefehle, die von einem Laufwerkscontroller (22) an ein Laufwerk (20) gerichtet sind, wobei das Laufwerk (20) ein Speichermedium (26) und einen Zwischenspeicher (27) umfasst und wobei der Laufwerkscontroller (22) einen Speicher (28, 29) umfasst, wobei das Verfahren die folgenden Schritte umfasst: Aktivieren des Zwischenspeichers (27) des Laufwerks (20); Speichern jedes Wiederherstellungsbefehls, der an das Laufwerk (20) gerichtet ist, in dem Speicher (28, 29) des Laufwerkscontrollers (22); und periodisches Veranlassen, dass das Laufwerk (20) seinen Zwischenspeicher (27) leert, um zu veranlassen, dass die Daten, die in dem Zwischenspeicher (27) des Laufwerks (20) zwischengespeichert sind und den Wiederherstellungsbefehlen zugeordnet sind, an das Speichermedium (26) des Laufwerks (20) übertragen werden, wobei; eine Zählung der Anzahl der Befehle, die in dem Speicher (28, 29) des Laufwerkscontrollers (22) gespeichert ist, in dem Laufwerkscontroller (22) beibehalten wird, und veranlasst wird, dass das Laufwerk (20) seinen Zwischenspeicher (27) leert, wenn die Zählung der Anzahl der Befehle, die in dem Speicher (28, 29) des Laufwerkscontrollers (22) gespeichert sind, eine vorbestimmte Schwelle erreicht, wobei die vorbestimmte Schwelle geringer als die maximale Anzahl der Befehle ist, die in dem Speicher (28, 29) des Laufwerkscontrollers (22) gespeichert werden kann; wobei jeder Befehl, der an das Laufwerk (20) gerichtet wird, zumindest temporär in dem Speicher (28, 29) während der Periode gespeichert wird, in der der Zwischenspeicher (27) des Laufwerks (20) aktiviert ist.
  2. Verfahren zum Verwalten von Wiederherstellungsbefehlen, die an ein Laufwerk (20) gerichtet sind, nach Anspruch 1, aufweisend den Schritt des Deaktivierens des Zwischenspeichers (27) des Laufwerks (20) nach der erfolgreichen Wiederherstellung des Laufwerks (20).
  3. Verfahren zum Verwalten von Wiederherstellungsbefehlen, die an ein Laufwerk (20) gerichtet sind, nach Anspruch 1, ferner aufweisend den Schritt des Löschens des Speichers (28, 29) und der Zählung nach der erfolgreichen Leerung des Zwischenspeichers (27) in das Speichermedium (26).
  4. Ein Speicherarray, aufweisend. mehrere Laufwerke (20), wobei jedes Laufwerk (20) umfasst: ein Speichermedium (26) zum Speichern von Daten; und einen Zwischenspeicher (27) zum Zwischenspeichern von Daten, die den Schreibbefehlen zugeordnet sind, die von dem Laufwerk (20) empfangen worden sind, und Laufwerkscontroller (22), wobei jeder Laufwerkscontroller (22) einem Laufwerk (20) des Speicherarrays zugeordnet ist und mit ihm verbunden ist, wobei jeder Laufwerkscontroller (22) einen ersten Speicher (28) umfasst, wobei der erste Speicher (28) in der Lage ist, eine Historie der Schreibbefehle, die von jedem Laufwerkscontroller (22) an sein zugeordnetes Laufwerk (20) übertragen worden sind, zu speichern; und wobei jeder Laufwerkscontroller (22) in der Lage ist, die Wiederherstellung seines zugeordneten Laufwerks (20) zu verwalten durch: Aktivieren des Zwischenspeichers (27) für das Laufwerk (20); Speichern von jedem Schreibbefehl, der an das Laufwerk (20) gesandt wird, in dem ersten Speicher (28); periodisches Veranlassen, dass das Laufwerk (20) die Daten in dem Zwischenspeicher (27) des Laufwerks (20) leert; und Deaktivieren des Zwischenspeichers (27) für das Laufwerk (20) nach erfolgreichem Abschluss der Wiederherstellung des Laufwerks (20); wobei jeder Laufwerkscontroller (22) einen zweiten Speicher (29) zum Speichern der Anzahl der Befehle umfasst, die in dem ersten Speicher (28) gespeichert sind, und wobei jeder Laufwerkscontroller (22) in der Lage ist sein zugeordnetes Laufwerk (20) zu veranlassen, die Daten in dem Zwischenspeicher (27) zu leeren, wenn die Zahl der Befehle, die in dem ersten Speicher (28) gespeichert sind eine vorbestimmte Schwelle erreicht, und wobei die vorbestimmte Schwelle geringer als die maximale Anzahl von Befehlen ist, die in dem ersten Speicher (28) gespeichert werden können.
  5. Speicherarray nach Anspruch 4, wobei jeder Laufwerkscontroller (22) in der Lage ist, seinen ersten Speicher (28) zu löschen nach der Anzeige der erfolgreichen Leerung der Daten in dem Zwischenspeicher (27) des zugeordneten Laufwerks (20).
  6. Speicherarray nach einem der Ansprüche 4 oder 5, wobei der erste Speicher (28) nichtflüchtig ist.
  7. Verfahren zum Wiederherstellen des Speichermediums (26) eines Laufwerks (20), wobei das Laufwerk (20) in Kommunikation mit einem Zwischenspeicher (27) ist, der selektiv aktiviert werden kann, wobei das Verfahren umfasst: Aktivieren des Zwischenspeichers (27) für das Laufwerk (20); Übertragen eines oder mehrerer Befehle an das Laufwerk (20); Schreiben eines oder mehrerer Befehle in einen Speicher (28), der in dem Laufwerkscontroller (22) angeordnet ist; Bereitstellen einer Zählung der Befehle, die an das Laufwerk (20) gesendet wird, wobei die Zählung in dem Laufwerkscontroller (22) angeordnet ist; Erzwingen, dass das Laufwerk (20) die Daten in dem Zwischenspeicher (27) in das Speichermedium (26) leert; und wobei der Schritt des Erzwingens des Laufwerks (20) die Daten in dem Zwischenspeicher (27) zu leeren, durchgeführt wird, sobald die Anzahl der Befehle, die an das Laufwerk (20) gesendet worden ist, einen vorbestimmten Wert erreicht, und wobei der vorbestimmte Wert geringer als die maximale Anzahl von Befehlen ist, die in den Speicher (28) geschrieben werden können.
  8. Verfahren zum Wiederherstellen des Speichermediums (26) eines Laufwerks (20) nach Anspruch 7, ferner aufweisend den Schritt des Löschens des Speichers (28).
  9. Verfahren zum Wiederherstellen des Speichermediums (26) eines Laufwerks (20) nach Anspruch 8, ferner aufweisend den Schritt des Deaktivierens des Zwischenspeichers (27) für das Laufwerk (20) nach der erfolgreichen Wiederherstellung des Speichermediums (26) des Laufwerks (20).
  10. Verfahren nach Anspruch 7, ferner aufweisend den Schritt des Löschens des Speichers (28) nach dem erfolgreichen Übertragen der Daten in den Zwischenspeicher (27).
  11. Verfahren nach Anspruch 7, ferner aufweisend den Schritt des Löschens des Speichers (28), nachdem das Laufwerk (20) alle Daten in dem Zwischenspeicher (27) geleert hat und des Übertragens einer Nachricht, dass die zwischengespeicherten Daten auf das Speichermedium (26) geschrieben worden sind.
  12. Verfahren nach Anspruch 7, wobei der Speicher (28) einen nichtflüchtigen Speicher umfasst, der einem Laufwerkscontroller (22) zugeordnet ist.
  13. Ein Laufwerkscontroller (22), der in der Lage ist, mit einem Laufwerk (20) über Kommunikationskanäle zu kommunizieren, aufweisend: einen ersten Speicher (28) zum Speichern von Befehlen, die von dem Laufwerkscontroller (22) an das Laufwerk (20) während der Periode übertragen werden, in der das Laufwerk (20) wiederhergestellt wird; einen zweiten Speicher (29) zum Speichern einer Zählung von Befehlen, die in dem ersten Speicher (28) gespeichert sind; wobei während der Periode, während der das Laufwerk (20) wiederhergestellt wird, der Laufwerkscontroller (22) in der Lage ist, den Zwischenspeicher (27) des Laufwerks (20) zu aktivieren und zu veranlassen, dass das Laufwerk (20) die Daten in dem Zwischenspeicher (27) des Laufwerks (20) leert, wenn die Zählung der Befehle eine vorbestimmte Schwelle erreicht, und wobei die vorbestimmte Schwelle geringer ist als die maximale Anzahl der Befehle, die in dem ersten Speicher (28) gespeichert werden kann.
  14. Laufwerkscontroller (22) nach Anspruch 13, wobei der Laufwerkscontroller (22) in der Lage ist, den Zwischenspeicher (27) des Laufwerks (20) nach einer erfolgreichen Wiederherstellung des Laufwerks (20) zu deaktivieren.
  15. Laufwerkscontroller (22) nach Anspruch 14, wobei der erste Speicher (28) einen nichtflüchtigen Speicher umfasst.
DE200510012448 2004-03-22 2005-03-17 System und Verfahren zur Wiederherstellung eines Laufwerks nach einem Ausfall eines Laufwerks Active DE102005012448B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/805,811 US20050210318A1 (en) 2004-03-22 2004-03-22 System and method for drive recovery following a drive failure
US10/805,811 2004-03-22

Publications (2)

Publication Number Publication Date
DE102005012448A1 DE102005012448A1 (de) 2005-11-03
DE102005012448B4 true DE102005012448B4 (de) 2015-05-07

Family

ID=34552926

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510012448 Active DE102005012448B4 (de) 2004-03-22 2005-03-17 System und Verfahren zur Wiederherstellung eines Laufwerks nach einem Ausfall eines Laufwerks

Country Status (10)

Country Link
US (1) US20050210318A1 (de)
JP (1) JP2005276196A (de)
KR (1) KR20060043873A (de)
CN (2) CN101324864A (de)
DE (1) DE102005012448B4 (de)
FR (1) FR2870367B1 (de)
GB (1) GB2412482B (de)
MY (1) MY139233A (de)
SG (2) SG115830A1 (de)
TW (1) TWI366097B (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523272B2 (en) * 2004-07-12 2009-04-21 Dell Products L.P. System and method for identifying a storage drive in a storage network
US7143308B2 (en) * 2005-01-14 2006-11-28 Charlie Tseng Apparatus, system, and method for differential rebuilding of a reactivated offline RAID member disk
JP4754852B2 (ja) * 2005-03-15 2011-08-24 富士通株式会社 ストレージ制御装置および方法
JP2007004343A (ja) * 2005-06-22 2007-01-11 Fujitsu Ltd 書き込み制御方法及び記憶装置
US7721143B2 (en) * 2005-12-06 2010-05-18 Lsi Corporation Method for reducing rebuild time on a RAID device
US20070180292A1 (en) * 2006-01-31 2007-08-02 Bhugra Kern S Differential rebuild in a storage environment
US7500070B2 (en) * 2006-08-23 2009-03-03 Lsi Corporation Methods and apparatus for improved RAID 1 mirror re-synchronization
US8127099B2 (en) * 2006-12-26 2012-02-28 International Business Machines Corporation Resource recovery using borrowed blocks of memory
US7814361B2 (en) * 2007-10-12 2010-10-12 Dell Products L.P. System and method for synchronizing redundant data in a storage array
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
US8909983B2 (en) * 2012-03-08 2014-12-09 Synology Incorporated Method of operating a storage device
US9483352B2 (en) * 2013-09-27 2016-11-01 Fisher-Rosemont Systems, Inc. Process control systems and methods
CN104750622B (zh) * 2013-12-30 2018-02-02 光宝科技股份有限公司 储存装置及其资料传输控制方法
CN111104046B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
US11531470B2 (en) * 2020-10-21 2022-12-20 EMC IP Holding Company LLC Offload of storage system data recovery to storage devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
US6549977B1 (en) * 2001-05-23 2003-04-15 3Ware, Inc. Use of deferred write completion interrupts to increase the performance of disk operations

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3180063B2 (ja) * 1997-08-26 2001-06-25 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ディスク・ドライブ装置及びこれの制御方法
GB2343265A (en) * 1998-10-28 2000-05-03 Ibm Data storage array rebuild
JP3984789B2 (ja) * 1999-04-23 2007-10-03 シマンテック・コーポレーション データのセーブ、使用、回復におけるデータの汚染および共用ディスクを扱うための方法、ならびにコンピュータ読み取り可能な記録媒体
US6671705B1 (en) * 1999-08-17 2003-12-30 Emc Corporation Remote mirroring system, device, and method
US6901481B2 (en) * 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US20020029354A1 (en) * 2000-08-23 2002-03-07 Seagate Technology Llc Non-volatile write cache, in a disc drive, using an alternate power source
US6658533B1 (en) * 2000-09-21 2003-12-02 Intel Corporation Method and apparatus for write cache flush and fill mechanisms
US6567892B1 (en) * 2001-05-23 2003-05-20 3Ware, Inc. Use of activity bins to increase the performance of disk arrays
US6957302B2 (en) * 2001-09-20 2005-10-18 Hewlett-Packard Development Company, L.P. System and method for performing write operations in a disk drive using a write stack drive
US20030120869A1 (en) * 2001-12-26 2003-06-26 Lee Edward K. Write-back disk cache management
US6917967B2 (en) * 2002-12-13 2005-07-12 Sun Microsystems, Inc. System and method for implementing shared memory regions in distributed shared memory systems
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
US6549977B1 (en) * 2001-05-23 2003-04-15 3Ware, Inc. Use of deferred write completion interrupts to increase the performance of disk operations

Also Published As

Publication number Publication date
FR2870367A1 (fr) 2005-11-18
JP2005276196A (ja) 2005-10-06
US20050210318A1 (en) 2005-09-22
SG135206A1 (en) 2007-09-28
TWI366097B (en) 2012-06-11
GB0505767D0 (en) 2005-04-27
DE102005012448A1 (de) 2005-11-03
CN1690979A (zh) 2005-11-02
KR20060043873A (ko) 2006-05-15
GB2412482B (en) 2007-12-27
SG115830A1 (en) 2005-10-28
TW200540623A (en) 2005-12-16
FR2870367B1 (fr) 2007-10-12
GB2412482A (en) 2005-09-28
CN100418069C (zh) 2008-09-10
MY139233A (en) 2009-09-30
IE20050081A1 (en) 2005-10-19
CN101324864A (zh) 2008-12-17

Similar Documents

Publication Publication Date Title
DE102005012448B4 (de) System und Verfahren zur Wiederherstellung eines Laufwerks nach einem Ausfall eines Laufwerks
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE60210211T2 (de) Redundante Datensicherungsvorrichtung und -Verfahren
CN101131675B (zh) 预防存储控制器的分区高速缓存中写饥饿的装置和方法
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE602004011181T2 (de) Speicherplattenanordnungsgerät
CN103136074B (zh) 多个磁盘阵列系统的数据储存方法及数据储存系统
CN102012789B (zh) 集中管理式备份容灾系统
DE69727083T2 (de) Überprüfungssystem um die integrität der parität einer speicherplattenmatrix aufrechtzuerhalten
DE60318687T2 (de) Herstellen einer gespiegelten kopie unter verwendung inkrementeller divergenz
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE112012000953B4 (de) Dynamisches Beseitigen von Leistungsungleichgewicht zur Laufzeit
CN101667181B (zh) 一种数据容灾的方法、装置及系统
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE60036539T2 (de) Verwendung von ungenutzter Speicherkapazität bei vernetzten Computern
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE112013007279T5 (de) Ereignisausgelöstes speichern von Daten in einem nicht flüchtigen Speicher
CN101515296A (zh) 数据更新方法和装置
DE69913375T2 (de) Anzeige eines fehlers in einem transaktionsverarbeitungssystem
DE102013101863A1 (de) Hochverfügbares Hauptspeicher-Datenbanksystem, Arbeitsverfahren und deren Verwendungen
DE102013210642A1 (de) Vorrichtung zum Wiederherstellen von Redundanz
CN101567211A (zh) 一种提高磁盘可用性的方法和磁盘阵列控制器
DE102009031125A1 (de) Nand-Fehlerbehandlung
DE112012000282B4 (de) Anwendungswiederherstellung in einem Dateisystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final