DE112018004370T5 - Verfahren zum wiederherstellen einer ausgefallenen speichervorrichtung - Google Patents

Verfahren zum wiederherstellen einer ausgefallenen speichervorrichtung Download PDF

Info

Publication number
DE112018004370T5
DE112018004370T5 DE112018004370.3T DE112018004370T DE112018004370T5 DE 112018004370 T5 DE112018004370 T5 DE 112018004370T5 DE 112018004370 T DE112018004370 T DE 112018004370T DE 112018004370 T5 DE112018004370 T5 DE 112018004370T5
Authority
DE
Germany
Prior art keywords
garbage collection
storage
data
array
storage device
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.)
Pending
Application number
DE112018004370.3T
Other languages
English (en)
Inventor
Vladislav Bolkhovitin
Siva Munnangi
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE112018004370T5 publication Critical patent/DE112018004370T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren und System zum Wiederherstellen einer ausgefallenen Speichervorrichtung in einem Datenspeichersystem. Zum Beispiel ein Verfahren, das Folgendes einschließt: Identifizieren einer ersten Speicherbereinigungsgruppe (engl. „garbage collection group“, kurz: „GCG“) in einem Speicherarray zur Speicherbereinigung; Extrahieren von gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden Speichervorrichtungen im Speicherarray, die der ersten GCG zugeordnet sind; Rekonstruieren von Daten der ausgefallenen Speichervorrichtung, die der ersten GCG zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus den funktionierenden Speichervorrichtungen, die der ersten GCG zugeordnet sind; Konsolidieren der extrahierten, gültigen Daten aus den funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Schreiben der konsolidierten, extrahierten, gültigen Daten aus den funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten GCG zugeordnet sind, in eine zweite GCG im Speicherarray; und Wiedererlangen der ersten GCG, die für die Speicherbereinigung identifiziert wurde.

Description

  • STAND DER TECHNIK
  • Die vorliegende Offenbarung bezieht sich auf Datenspeichersysteme. In einem spezielleren Beispiel betrifft die vorliegende Offenbarung Verfahren und Systeme zum Wiederherstellen einer ausgefallenen Speichervorrichtung in einem Datenspeichersystem.
  • Datenspeichersysteme, wie ein redundantes Array von unabhängigen Festplatten (RAID - Redundant Array of Independent Disks) oder neuere Löschcodierungsarchitekturen weisen typischerweise einen Mechanismus zur Speichervorrichtungswiederherstellung zum Wiederherstellen von einer oder mehreren ausgefallenen Speichervorrichtungen innerhalb des Speichersystems auf. Beispielweise beinhaltet in einem herkömmlichen RAID-5- oder RAID-6-Speichersystem, bei dem die Daten verteilt werden (d. h. die Daten werden in Segmente geteilt und nacheinander über mehrere Speichervorrichtungen hinweg innerhalb des Speicherarrays gespeichert), die Wiederherstellung einer ausgefallenen Speichervorrichtung im Array das Lesen der Datensegmente von allen Speichervorrichtungen im Array, die nicht ausgefallen sind, das Rekonstruieren der verlorenen Daten aus der ausgefallenen Speichervorrichtung und das anschließende Schreiben der rekonstruierten Daten auf die Ersatzspeichervorrichtung. Dieser Prozess ist oft zeitraubend und rechenintensiv, da ganze Datensätze, die Hunderte von Terabyte (TB) erreichen können, von den verbleibenden Speichervorrichtungen im Array abgerufen werden müssen, um die ausgefallene Speichervorrichtung wiederherzustellen. Der Wiederherstellungsprozess der Speichervorrichtung wirkt sich negativ auf den normalen Host-Verkehr aus, was zu einem 2-fachen Leistungsverlust und zu einer erheblichen Erhöhung der Host-Lese-/Schreib-Latenzzeit führt.
  • KURZDARSTELLUNG
  • Die vorliegende Offenbarung bezieht sich auf Verfahren und Systeme zum Wiederherstellen einer ausgefallenen Speichervorrichtung in einem Datenspeichersystem. Wie vorstehend erörtert, kann der Wiederherstellungsprozess der Speichervorrichtung erhebliche Auswirkungen auf die Leistung des Datenspeichersystems haben. Um die Auswirkungen des Wiederherstellungsprozesses der Speichervorrichtung auf den normalen Host-Verkehr zu minimieren, kann die Aktivität des Wiederherstellungsprozesses auf etwa 20 % des normalen Wiederherstellungsniveaus gedrosselt werden. Dies kann zwar die Auswirkungen des Wiederherstellungsprozesses auf die Gesamtleistung des Systems leicht verringern, hat aber den Nachteil, dass die Wiederherstellungszeit erheblich verlängert wird (in diesem Fall um den Faktor 5). Während dieser Wiederherstellungszeit erfährt das Datenspeichersystem einen eingeschränkten Betriebsmodus, in dem zum Beispiel die Daten zunächst wiederhergestellt werden müssen, bevor Speicheranforderungen für die ausgefallene Speichervorrichtung bedient werden können, und in der weitere Operationen erforderlich sind, um Fehlerkorrekturblöcke zu berechnen.
  • In Anbetracht der vorstehenden Ausführungen besteht ein Bedarf für ein Verfahren und System, das zum Beispiel eine ausgefallene Speichervorrichtung in einem Datenspeichersystem wiederherstellt und gleichzeitig Leistungsverluste, wie Latenzerhöhungen während des Wiederherstellungsprozesses der Speichervorrichtung, abmildert.
  • Verschiedene Ausführungsformen der vorliegenden Offenbarung, wie sie hier offenbart werden, können eine Wiederherstellung einer ausgefallenen Speichervorrichtung durchführen, einschließlich einer oder mehrerer Speicherbereinigungsoperationen. Zumindest in einigen Ausführungsformen kann die Wiederherstellung der Speichervorrichtung innerhalb des Ablaufs laufender Speicherbereinigungsoperationen (Garbage Collection Operations) erfolgen, die in periodischer und inkrementeller Weise als Teil des normalen Wartungsprozesses für Speichervorrichtungen, wie Solid-State-(Festkörper)-Laufwerke, durchgeführt werden. Als Folge davon können eine oder mehrere Ausführungsformen der vorliegenden Offenbarung eine Reihe von technischen Funktionen und Vorteilen bieten, einschließlich, aber nicht beschränkt auf:
    1. 1) Eine Reduzierung der Verarbeitungslast und des Datenverkehrs des Host- und Datenspeichersystems, da kein völlig getrennter Wiederherstellungsprozess der ausgefallenen Speichervorrichtung durchgeführt werden muss. Dies kann die Gesamtleistung des Host- und/oder Datenspeichersystems verbessern und auch den physischen Verschleiß der Speichervorrichtungen im System verringern.
    2. 2) Eine zeitliche Verteilung der Verarbeitungslast und des Datenverkehrs infolge der Durchführung der Wiederherstellung der Speichervorrichtung innerhalb des Ablaufs der laufenden Speicherbereinigungsoperationen im Datenspeichersystem. Dies kann die vom Host- und/oder Datenspeichersystem bereitgestellte Dienstqualität verbessern.
  • Die vorliegende Offenbarung schließt mindestens die folgenden Aspekte ein, ist aber nicht darauf beschränkt:
  • Nach einem innovativen Aspekt ein Verfahren, das Folgendes einschließt: Identifizieren einer ersten Speicherbereinigungsgruppe (engl. „garbage collection group“, kurz: „GCG“) im Speicherarray zur Speicherbereinigung; Extrahieren von gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden Speichervorrichtungen im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Rekonstruieren von Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Konsolidieren der extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Schreiben der konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, in eine zweite Speicherbereinigungsgruppe im Speicherarray; und Wiedererlangen der ersten Speicherbereinigungsgruppe, die für die Speicherbereinigung identifiziert wurde.
  • Nach einem weiteren innovativen Aspekt ein Datenspeichersystem, einschließlich eines Speicherarrays mit einer Vielzahl von Speichervorrichtungen, einem oder mehreren Prozessoren und einer von dem einen oder den mehreren Prozessoren ausführbaren Logik zum Durchführen von Operationen umfassend: Identifizieren einer ersten Speicherbereinigungsgruppe im Speicherarray zur Speicherbereinigung; Extrahieren von gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Rekonstruieren von Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Konsolidieren der extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Schreiben der konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, in eine zweite Speicherbereinigungsgruppe im Speicherarray; und Zurückgewinnen der ersten Speicherbereinigungsgruppe, die für die Speicherbereinigung identifiziert wurde.
  • Nach noch einem weiteren innovativen Aspekt ein Datenspeichersystem, einschließlich eines Speicherarrays mit einer Vielzahl von Speichervorrichtungen; Mittel zum Identifizieren einer ersten Speicherbereinigungsgruppe im Speicherarray zur Speicherbereinigung; Mittel zum Extrahieren von gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Mittel zum Rekonstruieren von Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Mittel zum Konsolidieren der extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Mittel zum Schreiben der konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, in eine zweite Speicherbereinigungsgruppe im Speicherarray; und Mittel zum Wiedererlangen der ersten Speicherbereinigungsgruppe, die für die Speicherbereinigung identifiziert wurde.
  • Diese und andere Implementierungen können jeweils optional eine oder mehrere der folgenden Funktionen enthalten: dass das eine oder die mehreren des Identifizierens, Extrahierens, Rekonstruierens, Konsolidierens und Schreibens in einer periodischen und inkrementellen Weise durchgeführt werden; dass bestimmt wird, dass eine vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde, und als Reaktion auf das Bestimmen, dass die vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde, eine manuelle Wiederherstellung von gültigen Daten der ausgefallenen Speichervorrichtung, die noch nicht rekonstruiert wurden, durchgeführt wird; dass die vorgegebene Bedingung bezüglich des Wiederherstellens der ausgefallenen Speichervorrichtung aus einer Gruppe ausgewählt wird, die Folgendes umfasst: (1) ein Wiederherstellungs-Zeitüberschreitungsschwellenwert für die ausgefallene Speichervorrichtung wurde überschritten und (2) in eine oder mehrere Speicherbereinigungsgruppen im Speicherarray wurde nicht innerhalb einer vorgegebenen Zeitspanne geschrieben; dass das Speicherarray ein oder mehrere Solid-State-Laufwerke umfasst; dass das Speicherarray als RAID-Array konfiguriert ist; dass das Speicherarray zum Unterstützen eines Löschcodierungsschemas konfiguriert ist; und dass das Speicherarray Reservekapazität einschließt, die als Reservespeicherplatz konfiguriert ist, um rekonstruierte Daten der ausgefallenen Speichervorrichtung während des Wiederherstellens der ausgefallenen Speichervorrichtung vorübergehend zu speichern.
  • Andere Implementierungen eines oder mehrerer dieser Aspekte schließen entsprechende Systeme, Ausrüstungen und Computerprogramme ein, die zum Durchführen der Aktionen der Verfahren konfiguriert sind, die auf Computerspeichervorrichtungen codiert sind. Es versteht sich, dass die in der vorliegenden Offenbarung verwendeten sprachlichen Formulierungen in erster Linie aus Gründen der Lesbarkeit und zu Lehrzwecken gewählt wurden und nicht, um den Umfang des hierin offenbarten Gegenstands einzuschränken.
  • Figurenliste
  • Die hierin eingeführten Techniken sind beispielhaft und nicht einschränkend in den Figuren der beiliegenden Zeichnungen veranschaulicht, in denen gleiche Bezugszahlen zum Bezeichnen ähnlicher Elemente verwendet werden.
    • 1 ist ein Blockdiagramm eines beispielhaften Computersystems, das ein Datenspeichersystem gemäß einer Ausführungsform einschließt.
    • 2 ist ein Blockdiagramm eines beispielhaften Speicherarrays des Datenspeichersystems von 1 gemäß einer Ausführungsform.
    • 3 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Durchführen einer Wiederherstellung einer ausgefallenen Speichervorrichtung für das Speicherarray von 2.
    • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Durchführen einer manuellen Wiederherstellung der ausgefallenen Speichervorrichtung.
    • 5A-5F sind Blockdiagramme eines beispielhaften RAID-5-Speicherarrays 530, die ein Verfahren zum Durchführen einer Wiederherstellung einer ausgefallenen Speichervorrichtung gemäß einer Ausführungsform veranschaulichen.
    • 5A veranschaulicht das RAI D-5-Speicherarray zu einem Zeitpunkt t1, während dem das Speicherarray normal funktioniert.
    • 5B veranschaulicht das beispielhafte RAID-5-Speicherarray zu einem Zeitpunkt t2, nachdem eine SSD im Array ausgefallen ist.
    • 5C veranschaulicht das beispielhafte RAID-5-Speicherarray zu einem Zeitpunkt t3, einschließlich eines Ersatzes für die ausgefallene SSD, und zeigt eine Speicherbereinigungsoperation für eine erste GCG.
    • 5D veranschaulicht das beispielhafte RAID-5-Speicherarray zu einem Zeitpunkt t4 und zeigt einen Wiedererlangungsprozess der Speicherbereinigungsoperation für die erste GCG.
    • 5E veranschaulicht das beispielhafte RAID-5-Speicherarray zu einem Zeitpunkt t5 und zeigt eine zweite Speicherbereinigungsoperation für eine zweite GCG.
    • 5F veranschaulicht das beispielhafte RAID-5-Speicherarray zu einem Zeitpunkt t6, nachdem der Wiederherstellungsprozess der ausgefallenen Speichervorrichtung abgeschlossen wurde.
    • 6 ist ein Blockdiagramm einer beispielhaften Steuerung, die in das Datenspeichersystem von 1 gemäß einer Ausführungsform eingeschlossen ist.
  • DETAILLIERTE BESCHREIBUNG
  • Es wird eine neuartige Datenverarbeitungstechnologie, wie z. B., aber nicht beschränkt auf, Systeme, Vorrichtungen und Verfahren zum Wiederherstellen einer ausgefallenen Speichervorrichtung in einem Datenspeichersystem offenbart. Obwohl diese Technologie nachstehend im Zusammenhang mit einer bestimmten Systemarchitektur in verschiedenen Fällen beschrieben wird, versteht es sich, dass die Systeme und Verfahren auch auf andere Hardware-Architekturen und -Organisationen angewendet werden können. Insbesondere ist zu beachten, dass die folgende Beschreibung zwar auf bestimmte Ausführungsformen Bezug nimmt, die vorliegende Offenbarung jedoch für jedes Datenspeichersystem gelten kann, das Datenredundanz implementiert und eine bekannte oder in Betracht gezogene Speicherbereinigung durchführt.
  • 1 ist ein High-Level-Blockdiagramm, das ein beispielhaftes Computersystem 100 mit einem Host 101 veranschaulicht, der kommunikativ mit einem Datenspeichersystem 110 gekoppelt ist. Der Host 101 kann eines oder mehrere von geeigneten Computervorrichtungen oder -systemen sein, wie z. B. ein Server-Computer, ein Desktop-Computer, ein Laptop-Computer, ein Tablet-Computer, ein Mobiltelefon, eine tragbare Spielekonsole oder eine andere elektronische Vorrichtung, die Anforderungen an das Datenspeichersystem 110 stellen kann. In einigen Ausführungsformen kann der Host 101 einen oder mehrere Prozessoren, eine oder mehrere Speichervorrichtungen und beliebige andere geeignete Komponenten einschließen, um die Funktionalität des Hosts 101 zu erweitern. Obwohl das Beispiel von 1 einen einzelnen Host 101 zeigt, versteht es sich, dass eine beliebige Anzahl von Hosts 101 kommunikativ mit dem Datenspeichersystem 110 des Computersystems 100 gekoppelt sein kann.
  • Obwohl dies nicht dargestellt ist, kann das Computersystem 100 auch ein Netzwerk zur kommunikativen Kopplung des Hosts 101 mit dem Datenspeichersystem 110 einschließen. Das Netzwerk kann ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN), ein Switched-Fabric-Netzwerk, ein drahtgebundenes oder drahtloses Netzwerk, ein privates oder öffentliches Netzwerk usw. einschließen.
  • Der Host 101 kann eine oder mehrere Anwendungen ausführen, die Speicheranforderungen (z. B. Lesen, Schreiben usw.) an das Datenspeichersystem 110 stellen. In einigen Ausführungsformen können die eine oder die mehreren Anwendungen dedizierte Softwareanwendungen sein, die auf dem Host 101 laufen, oder sie können sich alternativ auf anderen geeigneten Computervorrichtungen befinden und vom Host 101 aus der Ferne ausgeführt werden.
  • Das Datenspeichersystem 110 kann eine Steuerung 120 und ein Speicherarray 130 mit einer oder mehreren Speichervorrichtungen 140a, 140b, 140c, ... und 140n umfassen. Wie unter Bezugnahme auf 6 nachstehend näher beschrieben, kann die Steuerung 120 eine oder mehrere Computervorrichtungen und Software umfassen, die zum Verwalten des Betriebs von und Bereitstellen einer externen Schnittstelle zum Speicherarray 130 konfiguriert sind (z. B. für die Kommunikation mit dem Host 101). Zum Beispiel kann die Steuerung 120, wie nachstehend detaillierter erörtert wird, verschiedene Operationen auf den Speichervorrichtungen 140a, 140b, 140c, ... und 140n des Speicherarrays 130 koordinieren und ausführen, einschließlich Datenredundanz und/oder -wiederherstellung, Wiederherstellung der Speichervorrichtung und/oder Speicherbereinigung. Zusätzlich kann die Steuerung 120 in einigen Ausführungsformen die Kommunikation zwischen dem Host 101 und dem Speicherarray 130 koordinieren, einschließlich des Weiterleitens von Lese- oder Schreibanforderungen vom Host 101 an die entsprechende Speichervorrichtung 140 und des Abrufens von Daten aus den Speichervorrichtungen 140 auf eine logische Weise (z. B. es werden Blöcke zu einem Streifen zusammengesetzt), bevor sie an den Host 101 zurückgegeben werden. Die Steuerung 120 kann einen oder mehrere Prozessoren, eine oder mehrere Speichervorrichtungen und Software und/oder Logik zum Ausführen dieser Funktionen umfassen.
  • Das Speicherarray 130 kann eine oder mehrere Speichervorrichtungen 140a, 140b, 140c, ... und 140n umfassen, die an die Steuerung 120 gekoppelt sind. Jede der Speichervorrichtungen 140a, 140b, 140c, ... und 140n kann ein(e) nichtflüchtige(s), computernutzbare(s) (z. B. lesbare(s), beschreibbare(s) usw.) Medium oder Vorrichtung sein, das/die computerlesbare Informationen in jeglicher Form (z. B. Daten, Programme, Anweisungen usw.) enthalten, speichern, kommunizieren, verbreiten oder transportieren kann. Obwohl die Speichervorrichtungen 140 in verschiedenen Ausführungsformen Solid-State-Laufwerke (SSDs) sein können, die nichtflüchtige Solid-State-Vorrichtungen wie Flash-Speicher enthalten, versteht es sich, dass die Speichervorrichtungen 140 in einigen Ausführungsformen auch andere flüchtige oder nichtflüchtige Speichervorrichtungen mit geeigneten Merkmalen einschließen können, wie persistente Speicher (engl. „persistent memory“, kurz: „PM“), geschichtete magnetische Aufzeichnungsplatten (engl. Shingled Magnetic Recording (SMR) Disks), hybride Speichervorrichtungen usw.
  • Wie nachstehend detaillierter erörtert wird, kann das Speicherarray 130 unter Verwendung eines beliebigen geeigneten Redundanzschemas, wie z. B. RAID 5, RAID 6 oder Löschcodierung, so konfiguriert sein, dass bei Ausfall einer Speichervorrichtung 140 ein Wiederherstellungsprozess der Speichervorrichtung unter Verwendung einer globalen Speicherbereinigungsoperation durchgeführt werden kann, um die Daten von einer ausgefallenen Speichervorrichtung 140 im Speicherarray 130 wiederherzustellen.
  • 2 ist ein Blockdiagramm eines beispielhaften Speicherarrays 130 des Datenspeichersystems 110 von 1 gemäß einer Ausführungsform. Das Speicherarray 130 schließt eine Vielzahl von Speichervorrichtungen 140a, 140b, ..., 140n, wie z. B. SSDs, ein. Jede der Speichervorrichtungen 140 kann eine Vielzahl von Blöcken 210a, 210b, ..., 210n einschließen, wobei jeder Block Daten, Redundanzinformationen und/oder andere Formen computerlesbarer Informationen enthält. Jeder der Blöcke 210a, 210b, ..., 210n kann wiederum in eine Vielzahl von Seiten 220a, 220b, ..., 220n unterteilt werden.
  • In einigen Ausführungsformen (z. B. sind die Speichervorrichtungen 140 SSDs) können die Seiten 220a, 220b, ..., 220n die kleinste programmierbare (z. B. beschreibbare) Einheit der Speichervorrichtung sein und sind typischerweise 2 kB bis 8 kB groß, während die Blöcke 210a, 210b, ..., 220n die kleinste löschbare Einheit sind und typischerweise 128 kB bis 1 MB groß sind. In diesen Ausführungsformen kann jede Seite 220 einen von drei Zuständen annehmen: 1) einen gültigen Zustand, in dem Daten (z. B. „gültige Daten“) auf die Seite geschrieben wurden und für Leseoperationen zur Verfügung stehen; 2) einen ungültigen Zustand, in dem Daten (z. B. „ungültige Daten“) auf die Seite geschrieben wurden, aber aktualisiert wurden und somit veraltet sind; und 3) einen freien Zustand, in dem keine Daten auf die Seite geschrieben wurden.
  • Das Speicherarray 130 umfasst eine Vielzahl von Streifen 235a, 235b, ..., 235n, wobei jeder Streifen 235 entsprechende Blöcke 210 einschließen kann, die in der Vielzahl der Speichervorrichtungen 140a, 140b, ..., 140n enthalten sind, wie in der Figur veranschaulicht. In einigen Ausführungsformen kann jeder Streifen 235 in als „Chunks“ bezeichnete Stücke unterteilt werden, die aus einem oder mehreren Blöcken 210 zusammengesetzt sind, die sich auf derselben Speichervorrichtung 140 befinden.
  • In einigen Ausführungsformen kann jeder der Streifen 235a, 235b, ..., 235n Redundanzinformationen einschließen, die in den Blöcken 210 oder Seiten 220 enthalten sind (je nachdem, ob Parität auf Blockebene oder Seitenebene verwendet wird), um einen solchen Grad an Redundanz bereitzustellen, dass eine ausgefallene Speichervorrichtung 140i im Speicherarray 130 wiederhergestellt werden kann. Wie unter Bezugnahme auf 5A-5F erläutert wird, enthält jeder Streifen 235 in Ausführungsformen, die RAID 5 bzw. RAID 6 implementieren, einen (oder zwei) Paritätsblöcke/-seiten, die die Wiedererlangung nach einem Ausfall von einer (oder zwei) Speichervorrichtung(en) 140 im Speicherarray 130 unterstützen. In Ausführungsformen, die ein Löschcodierungsredundanzschema implementieren, können Daten im Speicherarray 130 in Fragmente zerlegt werden, die mit redundanten Datenstücken erweitert und codiert (z. B. unter Verwendung von Reed-Solomon-Codes) und über einen Satz von verschiedenen Orten gespeichert werden.
  • Das Speicherarray 130 kann ferner als eine Vielzahl von Speicherbereinigungsgruppen (GCGs) 245a, 245b, ..., 245n angeordnet sein, die einem Speicherbereinigungsprozess zugeordnet sind. Jede GCG 245 kann die Vielzahl von Blöcken 210 in den Speichervorrichtungen 140a, 140b, ..., 140n umfassen, die im Streifen 235 enthalten sind. Speicherbereinigung ist ein Prozess der Speicherverwaltung, der Abschnitte des Speicherarrays 130 wiedererlangt, die keine gültigen Daten mehr enthalten. Wie unter Bezugnahme auf 3 und 5A-5F näher erläutert wird, beinhaltet der Speicherbereinigungsprozess das Verdichten und Löschen von Blöcken 210 in den Speichervorrichtungen 140a, 140b, ..., 140n in GCG 245, um kontinuierlich nutzbaren Platz in der GCG für zukünftige Schreibvorgänge freizugeben.
  • 3 ist ein Flussdiagramm eines beispielhaften Verfahrens 300 zum Durchführen einer Wiederherstellung einer ausgefallenen Speichervorrichtung für das Speicherarray 130 von 2. Das Verfahren 300 kann in periodischer und inkrementeller Weise als Teil eines laufenden Speicherbereinigungsprozesses durchgeführt werden, der während des normalen Betriebs des Datenspeichersystems 110 auftritt. Das Verfahren 300 kann „periodisch und inkrementell“ in dem Sinne sein, dass der Wiederherstellungsprozess iterativ von einer GCG 245 zu einer anderen innerhalb des Speicherarrays 130 über einen Zeitraum hinweg fortschreiten kann, was wie folgt beschrieben wird. In einigen Ausführungsformen kann eine Iteration der Speicherbereinigungsoperation für eine GCG 245 durch eine Speicheranforderung (z. B. Lesen, Schreiben usw.) vom Host 101 an das Speicherarray 130 ausgelöst werden.
  • In Block 310 kann die Steuerung 120 eine erste GCG 245 (z. B. GCG 245a) im Speicherarray 130 für die Speicherbereinigung identifizieren. Die erste GCG 245 kann eine beliebige aus der Vielzahl von GCGs 245 im Speicherarray 130 sein, die bei einer vorausgehenden Iteration des Speicherreinigungsprozesses nicht wiedererlangt wurden. In einer Ausführungsform kann die Steuerung 120 die erste GCG 245 basierend auf der Bestimmung identifizieren, dass die Anzahl der verfügbaren Seiten 220 (d. h. Seiten in einem freien Zustand) innerhalb der ersten GCG abgenommen hat und dass die erste GCG eine Schwelle für die Speicherbereinigung erreicht hat und wiedererlangt werden muss.
  • In Block 320 kann die Steuerung 120 gültige Daten und Redundanzinformationen aus der einen oder den mehreren nicht ausgefallenen Speichervorrichtungen 140 im Speicherarray 130 (z. B. „funktionierende“ Speichervorrichtungen 140), die der ersten GCG 245 zugeordnet sind, extrahieren (z. B. lesen). Wie vorstehend unter Bezugnahme auf 2 aufgeführt, können die Redundanzinformationen in einigen Ausführungsformen Paritätsblöcke oder Paritätsseiten umfassen, die in den Streifen 235 innerhalb der ersten GCG enthalten sind. In einigen Ausführungsformen kann die Steuerung 120 die extrahierten, gültigen Daten und Redundanzinformationen vorübergehend in einem Speicher in der Steuerung 120 speichern.
  • In Block 330 kann die Steuerung 120 die Daten einer ausgefallenen Speichervorrichtung 140i, die der ersten GCG 245 zugeordnet ist, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen 140 im Speicherarray 130, die der ersten GCG 245 zugeordnet sind, rekonstruieren. In einigen Ausführungsformen können die Daten der ausgefallenen Speichervorrichtung rekonstruiert werden, indem eine exklusive OR-Operation (XOR-Operation) an den extrahierten, gültigen Daten und Redundanzinformationen durchgeführt wird.
  • In Block 337 kann die Steuerung 120 die extrahierten, gültigen Daten aus den funktionierenden Speichervorrichtungen und die rekonstruierten Daten aus der ausgefallenen Speichervorrichtung, die der ersten GCG 245 zugeordnet sind, konsolidieren. Diese Konsolidierung kann die optimale Strukturierung der Kombination aus den extrahierten, gültigen Daten und den rekonstruierten Daten für eine effiziente Speicherung auf einem verfügbaren Streifen innerhalb des Speicherarrays 130 umfassen. In einigen Ausführungsformen kann die Konsolidierungsoperation die Kombination der extrahierten, gültigen Daten und der rekonstruierten Daten aus der ersten GCG 245 mit gültigen Daten und/oder rekonstruierten Daten aus einem teilweise gefüllten Streifen 235 zu einem verfügbaren Streifen umfassen.
  • In Block 340 kann die Steuerung 120 die konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen 140 im Speicherarray 130 und die rekonstruierten Daten der ausgefallenen Speichervorrichtung 140i, die der ersten GCG 245 zugeordnet sind, in eine zweite GCG 245 (z. B. GCG 245b) im Speicherarray 130 schreiben. Die zweite GCG 245 kann eine beliebige der Vielzahl von verfügbaren GCGs 245 in dem Speicherarray 130 sein. Wie unter Bezugnahme auf 5A-5F näher erläutert wird, kann die zweite GCG 245 eine Ersatzspeichervorrichtung (nicht dargestellt) einschließen, die als Ersatz für die ausgefallene Speichervorrichtung 140i dient.
  • In Block 350 kann die Steuerung 120 die erste GCG 245 im Speicherarray 130, die für die Speicherbereinigung identifiziert wurde, wiedererlangen. Wie unter Bezugnahme auf die 5A-5F näher erläutert werden wird, kann die Speichersteuerung 120 in einer Ausführungsform die erste GCG 245 wiedererlangen, indem sie alle Blöcke 210 innerhalb der ersten GCG 245 löscht und so Platz in der ersten GCG für die zukünftige Datenspeicherung frei gibt.
  • Beim Verfahren 300 kann die Steuerung 120 für jede der verbleibenden GCGs 245 im Speicherarray 130 Block 310 bis Block 350 iterativ ausführen, bis der Inhalt der ausgefallenen Speichervorrichtung 140i wiederhergestellt ist. Sobald die ausgefallene Speichervorrichtung 140i wiederhergestellt ist, kann das Speicherarray 130 wieder sein ursprüngliches Maß an Redundanz wiedererlangen, das es vor dem Ausfall der ausgefallenen Speichervorrichtung 140i hatte, und es arbeitet nicht mehr in einem eingeschränkten Modus.
  • In einigen Ausführungsformen kann die Steuerung 120 bestimmen, ob eine oder mehrere vorgegebene Bedingung(en) bezüglich des Wiederherstellens der ausgefallenen Speichervorrichtung 140i erfüllt wurde/wurden, und wenn dies der Fall ist, eine manuelle Wiederherstellung der ausgefallenen Speichervorrichtung durchführen. Die manuelle Wiederherstellung kann durchgeführt werden, um die Zeitdauer zu reduzieren, in der das Speicherarray 130 im eingeschränkten Modus arbeiten muss. In einigen Ausführungsformen kann/können die vorgegebene Bedingung(en) bezüglich des Wiederherstellens der ausgefallenen Speichervorrichtung Folgendes einschließen: (1) ob ein Wiederherstellungs-Zeitüberschreitungsschwellenwert für die ausgefallene Speichervorrichtung überschritten wurde und (2) ob in eine oder mehrere GCGs 245 in der Vielzahl von Speichervorrichtungen nicht innerhalb einer vorgegebenen Zeitspanne geschrieben wurde, oder (3) die Verfügbarkeit von Redundanzinformationen (z. B. Parität) ausreicht, um die ausgefallene Speichervorrichtung wiederherzustellen. Der manuelle Wiederherstellungsprozess wird nachstehend unter Bezugnahme auf 4 näher beschrieben.
  • Unter Rückverweis auf 2 kann in einigen Ausführungsformen Reservekapazität innerhalb des Speicherarrays 130 während des Wiederherstellungsprozesses der Speichervorrichtung vorübergehend als freier Speicherplatz eingesetzt werden. In diesen Ausführungsformen kann das Speicherarray 130 den Vorteil aufweisen, dass der volle Datenredundanzschutz erhalten bleibt, während die ausgefallene Speichervorrichtung 140i wiederhergestellt wird.
  • Reservekapazität ist die Speicherkapazität (z. B. ein oder mehrere Blöcke 210 in Speichervorrichtungen 140) innerhalb des Speicherarrays 130, die von der Steuerung 120 für Vorrichtungsverwaltungszwecke wie Speicherbereinigung reserviert werden kann. Die Reservekapazität kann während des Wiederherstellungsprozesses der Speichervorrichtung als Reservespeicherplatz zugewiesen werden, um die wiederhergestellten Daten der ausgefallenen Speichervorrichtung 140i vorübergehend zu speichern. Die Daten der ausgefallenen Speichervorrichtung 140i können unter Verwendung eines Wiederherstellungsprozesses der Speichervorrichtung, wie dem vorstehend unter Bezugnahme auf 3 und/oder 4 beschriebenen, wiederhergestellt werden. Sobald der Wiederherstellungsprozess unter Verwendung des Reservespeicherplatzes abgeschlossen ist, kann das Speicherarray 130 auf das ursprüngliche Maß von Datenredundanzschutz vor dem Ausfall der Speichervorrichtung 140i zurückgesetzt werden.
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens 400 zum Durchführen einer manuellen Wiederherstellung der ausgefallenen Speichervorrichtung 140i. Wie unter Bezugnahme auf 3 erwähnt, kann der manuelle Wiederherstellungsprozess durchgeführt werden, wenn eine oder mehrere der vorstehend genannten vorgegebenen Bedingung(en) erfüllt wurden, um den Wiederherstellungsprozess für die ausgefallene Speichervorrichtung 140i abzuschließen.
  • Der manuelle Wiederherstellungsprozess beginnt in Block 410, in dem die Steuerung 120 einen Streifen 235 im Speicherarray 130 identifiziert, der wiederhergestellt werden soll. In einigen Ausführungsformen kann der identifizierte Streifen 235 ein Streifen in einer GCG 245 im Speicherarray 130 sein, der noch nicht die vorstehend unter Bezugnahme auf 3 beschriebene Speicherbereinigungsoperation durchlaufen hat.
  • In Block 420 kann die Steuerung 120 gültige Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen 140 im Speicherarray 130, die dem identifizierten Streifen 235 zugeordnet sind, extrahieren (z. B. lesen).
  • In Block 430 kann die Steuerung 120 die Daten der ausgefallenen Speichervorrichtung 140i, die dem identifizierten Streifen 235 zugeordnet ist, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen 140 im Speicherarray 130, die dem identifizierten Streifen zugeordnet sind, rekonstruieren. In einigen Ausführungsformen können die Daten der ausgefallenen Speichervorrichtung rekonstruiert werden, indem eine XOR-Operation an den extrahierten, gültigen Daten und Redundanzinformationen durchgeführt wird.
  • In Block 440 kann die Steuerung 120 die rekonstruierten Daten der ausgefallenen Speichervorrichtung 140i auf den identifizierten Streifen 235 schreiben.
  • In Block 450 kann die Steuerung 120 bestimmen, ob alle Streifen 235 im Speicherarray 130 wiederhergestellt wurden. Wenn dies der Fall ist, kann der manuelle Wiederherstellungsprozess beendet werden. Ist dies jedoch nicht der Fall, kann die Steuerung 120 zum Block 410 zurückgehen, wie gezeigt, um die Blöcke 410 bis 440 iterativ zu wiederholen, wie gerade für die restlichen Streifen 235 beschrieben, bis der Wiederherstellungsprozess der Speichervorrichtung abgeschlossen ist.
  • Die 5A-5F sind Blockdiagramme eines beispielhaften RAID-5-Speicherarrays 530, die ein Verfahren zum Durchführen einer Wiederherstellung einer ausgefallenen Speichervorrichtung gemäß einer Ausführungsform veranschaulichen. Die 5A-5F zeigen das Speicherarray 530 zu verschiedenen Zeiträumen t1-t6, die während des Wiederherstellungsprozesses der Speichervorrichtung auftreten. Es ist zu beachten, dass die Reihenfolge, in der die verschiedenen in diesen Figuren veranschaulichten Aktionen durchgeführt werden, nicht auf die beschriebenen beschränkt ist, sondern je nach Ausführungsform variieren kann. Ferner ist zu beachten, dass die folgende Beschreibung zwar ein Speicherarray 530 betrifft, das RAID 5 implementiert, jedoch dass die vorliegende Offenbarung für jedes Datenspeichersystem gelten kann, das Datenredundanz implementiert und bekannte oder in Betracht gezogene Speicherbereinigung durchführt.
  • Wie in 5A dargestellt, ist das Speicherarray 530 eine Ausführungsform des Speicherarrays 130 von 2, einschließlich fünf SSDs 540a-540e in einer 4+1-RAID-5-Konfiguration. Jede SSD 540 kann eine Vielzahl von Blöcken 510a, 510b, ..., 510n einschließen, von denen jeder in eine Vielzahl von Seiten unterteilt werden kann (z. B. Seite 542 für gültige Daten, Seite 543 für ungültige Daten und Paritätsseite 544, die jeweils gültige Daten D0, ungültige Daten D1 und Paritätsinformationen P0 speichern). Zusätzlich können sich einige der Seiten innerhalb der Blöcke 510 in einem „freien“ Zustand befinden, in dem keine Daten in sie geschrieben wurden. Der Einfachheit halber werden nur ausgewählte Abschnitte des Speicherarrays 530 mit gespeicherten Daten dargestellt.
  • Das Speicherarray 530 schließt eine Vielzahl von Streifen 535a, 535b, ..., 535n ein, bei denen jeder Streifen 535 entsprechende Blöcke 510, die in der Vielzahl von SSDs 540a- 540e enthalten sind, einschließen kann, wie in der Figur dargestellt. Jeder Streifen 535 schließt eine Paritätsseite 544 ein, die die Wiedererlangung nach einem Ausfall einer einzelnen SSD 540 im Speicherarray 530 unterstützt, wie unter Bezugnahme auf 5C nachstehend erläutert wird. Es ist zu beachten, dass das Speicherarray 530 zwar die Parität auf Seitenebene implementiert, in anderen Ausführungsformen jedoch Parität auf Blockebene verwendet werden kann, bei der ein Paritätsblock (nicht dargestellt) anstelle der Paritätsseite 544 die Paritätsinformationen für den jeweiligen Streifen 535 speichert.
  • In einigen Ausführungsformen kann der Host 101 Daten in das Speicherarray 530 unter Verwendung einer Datenstrukturierungsmethode wie Log-Strukturierung schreiben. In einer log-strukturierten Datenorganisation können zufällige Schreibvorgänge von Daten gruppiert und sequentiell in das Speicherarray 530 geschrieben werden. In einigen Ausführungsformen kann dieser Prozess mit Software durchgeführt werden, die auf dem Host 101 läuft. 5A zeigt beispielsweise die Datenseiten D0, D1, D2 usw., die innerhalb des Speicherarrays 530 in einer log-strukturierten Weise sequentiell gespeichert sind, wobei die Paritätsseiten P0, P1, P2 usw. gemäß der Organisation eines RAID-5-Arrays diagonal zwischen den Datenseiten im Array verschachtelt sind.
  • Das Speicherarray 530 kann ferner als eine Vielzahl von Speicherbereinigungsgruppen (GCGs) 545a, 545b, ..., 545n angeordnet sein, die einem Speicherbereinigungsprozess zugeordnet sind. Jede GCG 545 kann eine Vielzahl von Blöcken 510 in den SSDs 540a-540e umfassen, die im Streifen 535 enthalten sind. Wie unter Bezugnahme auf 5C näher erläutert wird, beinhaltet der Speicherbereinigungsprozess das Verdichten und Löschen der Blöcke 510 in den SSDs 540a-540e in GCG 545, um kontinuierlich nutzbaren Platz in der GCG für zukünftige Schreibvorgänge freizugeben.
  • 5A veranschaulicht das RAID-5-Speicherarray 530 zu einem Zeitpunkt t1, während dem das Speicherarray 530 normal funktioniert. Zu diesem Zeitpunkt sind alle fünf SSDs 540a-540e betriebsbereit und können Speicheranforderungen (z. B. Lesen, Schreiben usw.) vom Host 101 bedienen, wie unter Bezugnahme auf 1 erörtert. Als Teil des normalen Betriebs kann die Steuerung 120 Speicherbereinigungsoperationen auf dem Speicherarray 530 durchführen, indem sie periodisch und inkrementell Daten innerhalb einer oder mehrerer Seiten 542 mit gültigen Daten im Speicherarray 530 extrahiert und konsolidiert. Wie nachstehend unter Bezugnahme auf 5C erläutert werden wird, versteht es sich, dass diese Speicherbereinigungsoperationen während des gesamten Betriebs des Speicherarrays 530 weiter von der Steuerung 120 durchgeführt werden können, auch nach dem Ausfall einer Speichervorrichtung innerhalb des Arrays.
  • 5B veranschaulicht das RAID-5-Speicherarray 530 zu einem Zeitpunkt t2, nachdem die SSD 540c ausgefallen ist. Mögliche Ursachen für den Ausfall von SSD 540c sind u.a. Speicherzellenverschleiß durch längeren Gebrauch, fehlende Redundanzinformationen, Stromstöße, Virenangriffe und/oder eine unbeabsichtigte Rekonfiguration des Redundanzschemas. Es versteht sich, dass auch andere SSDs im Storage-Array 530 außer SSD 540c aus einem oder mehreren der Gründe ausfallen können, aus denen SSD 540c ausfallen kann.
  • 5C veranschaulicht das Beispiel eines RAID-5-Speicherarrays 530 zu einem Zeitpunkt t3 einschließlich einer Ersatz-SSD 540r und zeigt eine Speicherbereinigungsoperation GCo für eine GCG 545a, die als Teil des Wiederherstellungsprozesses der Speichervorrichtung für die ausgefallene SSD 540c durchgeführt wird. Es ist zu beachten, dass die folgende Beschreibung für die 5C-5F dem vorstehend unter Bezugnahme auf 3 beschriebenen Wiederherstellungsprozess der Speichervorrichtung entspricht, jedoch speziell angewandt auf das Speicherarray 530.
  • Die Ersatz-SSD 540r ist eine Speichervorrichtung, die als Ersatz für die ausgefallene SSD 530c dient und nach dem Ausfall der SSD 530c im Speicherarray 530 installiert oder aktiviert werden kann. Die Ersatz-SSD 540r schließt eine oder mehrere verfügbare Seiten in einem „freien“ Zustand ein. Es ist zu beachten, dass, obwohl die folgende Beschreibung des Wiederherstellungsprozesses des Speichers die Ersatz-SSD 540r einschließt, der Wiederherstellungsprozess in einigen Ausführungsformen auch ohne die Ersatz-SSD 540r durchgeführt werden kann.
  • Bezug nehmend auf 5C kann die Steuerung 120 zum Zeitpunkt t3 eine erste GCG 545 im Speicherarray 530 für die Speicherbereinigung identifizieren. Die erste GCG 545 kann eine beliebige aus der Vielzahl von GCGs 545 im Speicherarray 530 sein, die bei einer vorausgehenden Iteration des Speicherreinigungsprozesses nicht wiedererlangt wurden. Angenommen, die identifizierte erste GCG ist beispielsweise GCG 545a, so zeigt sich unter Bezugnahme auf 5A oben, dass die GCG 545a eine Vielzahl von Seiten 542 mit gültigen Daten (z. B. Seiten, die D0, D2, D3, D6, D9, D12, D13 und D14 enthalten) und eine Vielzahl von Seiten 543 mit ungültigen Daten (z. B. Seiten, die D1, D4, D5, D7, D8, D10, D11 und D15 enthalten), und eine Vielzahl von Paritätsseiten 544 (z. B. Seiten, die P0, P1, P2 und P3 enthalten) einschließt, wobei die Daten D2, D6 und D13 und die Parität P2 von der ausgefallenen SSD 540c stammen.
  • Nachdem die erste GCG 545a für die Speicherbereinigung identifiziert wurde, kann die Steuerung 120 die eine oder mehreren Seiten mit gültigen Daten und Paritätsseiten aus den SSDs 540a, 540b, 540d und 540e im Speicherarray 530 extrahieren, die nicht ausgefallen sind (z. B. „funktionierende“ SSDs 540), die der ersten GCG zugeordnet sind. In der abgebildeten Ausführungsform kann die Steuerung 120 die Seiten mit gültigen Daten, die die Daten D0, D3, D9, D12 und D14 enthalten, sowie Paritätsseiten, die die Paritätsinformationen P0, P1 und P3 enthalten, aus GCG 545a extrahieren und die Daten und die Parität vorübergehend im Speicher der Steuerung 120 speichern.
  • Nach dem Extrahieren der Seiten mit gültigen Daten, die der ersten GCG 545a zugeordnet sind, kann die Steuerung 120 dann die der ersten GCG 545a zugeordneten Seiten mit gültigen Daten der ausgefallenen SSD 540c basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden SSDs 540 im Speicherarray 530, die der ersten GCG 545 zugeordnet sind, rekonstruieren. In der abgebildeten Ausführungsform können die Daten D2 aus der ausgefallenen SSD 540c rekonstruiert werden, indem eine XOR-Operation an den extrahierten Seiten mit gültigen Daten mit D0 und D3 und der Paritätsseite, die die Paritätsinformation P0 aus dem Streifen 535a enthält, durchgeführt wird. Analog können die Daten D13 rekonstruiert werden, indem eine XOR-Operation der extrahierten Seiten mit gültigen Daten, die D12 und D14 enthalten, und der Paritätsseite, die die Paritätsinformation P3 enthält, durchgeführt wird.
  • Nach dem Rekonstruieren der Seiten mit gültigen Daten, die der ersten GCG 545a zugeordnet sind, kann die Steuerung 120 dann die entsprechenden Paritätsseiten P8 und P9, die den extrahierten Seiten mit gültigen Daten aus den funktionierenden SSDs 540 und den rekonstruierten Datenseiten der ausgefallenen SSD 540c zugeordnet sind, berechnen. In einer Ausführungsform kann jede der Paritätsseiten P8 und P9 berechnet werden, indem eine XOR-Operation an den extrahierten, gültigen Daten aus den funktionierenden SSDs 540a, 540b, 540d und 540e und den rekonstruierten Daten aus der ausgefallenen SSD 540c durchgeführt wird. Beispielsweise können P8 und P9 mit den XOR(D0, D2, D3, D6)-bzw. XOR(D9, D12, D13, D14)-Operationen erzeugt werden.
  • Nach der Berechnung der entsprechenden Paritätsseiten, die der ersten GCG 545a zugeordnet sind, kann die Steuerung 120 dann die extrahierten, gültigen Daten aus den funktionierenden SSDs 540a, 540b, 540d und 540e, die rekonstruierten Daten aus der ausgefallenen SSD 540c und die berechneten Paritätsseiten, die der ersten GCG 545 zugeordnet sind, konsolidieren. Diese Konsolidierung kann das optimale Strukturieren der Kombination aus den extrahierten, gültigen Daten, den rekonstruierten Daten und den Redundanzinformationen zur effizienten Speicherung auf einem oder mehreren verfügbaren Streifen(s) 535 innerhalb des Speicherarrays 530 umfassen. Eine beispielhafte optimale Strukturierung der konsolidierten Daten basierend auf der in 5C dargestellten Ausführungsform kann (D0, D2, D3, D6, P8) und (D9, D12, D13, P9, D14) sein.
  • Nach dem Konsolidieren der der ersten GCG 545a zugeordneten, extrahierten, gültigen Daten kann die Steuerung 120 dann die konsolidierten, extrahierten, gültigen Daten, die rekonstruierten Daten der ausgefallenen SSD 540c und die berechneten Paritätsseiten in eine zweite GCG 545av im Speicherarray 530 schreiben. Die zweite GCG 545av kann eine beliebige aus der Vielzahl von verfügbaren GCG 545 im Speicherarray 530 sein. Die zweite GCG 545av kann die Ersatz-SSD 540r einschließen, die als Ersatz für die ausgefallene SSD 540c dient. In dem soeben erwähnten Beispiel können die konsolidierten Daten und die Parität (D0, D2, D3, D6, P8) nacheinander in die erste Zeile von GCG 545av geschrieben werden, während (D9, D12, D13, P9, D14) nacheinander in die zweite Zeile von GCG 545av geschrieben werden können, wie in der Figur dargestellt.
  • 5D veranschaulicht das beispielhafte RAID-5-Speicherarray 530 zu einem Zeitpunkt t4 und zeigt einen Wiedererlangungsprozess der Speicherbereinigungsoperation für die GCG 545a. Bei der Ausführung dieser Operation kann die Steuerung 120 alle Blöcke 510 innerhalb der GCG 545a löschen, um in der GCG Platz für die zukünftige Datenspeicherung freizugeben.
  • 5E veranschaulicht das beispielhafte RAID-5-Speicherarray zu einem Zeitpunkt t5 und zeigt eine zweite Speicherbereinigungsoperation für eine zweite GCG 545b. Wie dargestellt, kann die Steuerung 120 die zweite Speicherbereinigung GC1 durchführen, indem sie ähnliche Operationen wie die in Bezug auf die erste Speicherbereinigungsoperation GCo erörterten verwendet. Die extrahierten, konsolidierten, gültigen Daten aus der GCG 545b können in derselben verfügbaren GCG (z. B. GCG 545av), die für die erste Speicherbereinigungsoperation GCo (wie abgebildet) verwendet wurde, oder in einigen Ausführungsformen in einer anderen verfügbaren GCG geschrieben werden. Die Steuerung 120 kann dann eine Wiedererlangungsoperation für die Blöcke innerhalb von GCG 545b in ähnlicher Weise durchführen, wie derjenigen für die Blöcke innerhalb von GCG 545a, wie vorstehend unter Bezugnahme auf die Speicherbereinigungsoperation GCo beschrieben.
  • Die Speicherbereinigungsoperation, wie sie gerade unter Bezugnahme auf die 5C-5E beschrieben wurde, kann für die verbleibenden GCGs 545 im Speicherarray 530 iterativ wiederholt werden, bis der Inhalt der ausgefallenen SSD 540c wiederhergestellt ist.
  • 5F veranschaulicht das beispielhafte RAID-5-Speicherarray 530 zu einem Zeitpunkt t6, nachdem der Wiederherstellungsprozess der ausgefallenen Speichervorrichtung abgeschlossen wurde. Nachdem der Inhalt der Ersatz-SSD 540r wiederhergestellt wurde, erlangt das Speicherarray 530 wieder das ursprüngliche Maß an Redundanz zurück, das es vor dem Ausfall der ausgefallenen SSD 540c hatte, und es arbeitet nicht mehr in einem eingeschränkten Modus.
  • Systeme und Verfahren zum Wiederherstellen einer ausgefallenen Speichervorrichtung in einem Datenspeichersystem sind vorstehend beschrieben. In der vorstehenden Beschreibung wurden zu Zwecken der Erklärung zahlreiche spezifische Details aufgeführt. Es wird jedoch offensichtlich sein, dass die offenbarten Technologien ohne eine gegebene Untermenge dieser spezifischen Details praktiziert werden können. In anderen Fällen werden Strukturen und Vorrichtungen in Blockdiagrammform dargestellt. Die offenbarten Technologien werden zum Beispiel in einigen Implementierungen vorstehend unter Bezugnahme auf Benutzerschnittstellen und bestimmte Hardware beschrieben.
  • 6 ist ein Blockdiagramm einer beispielhaften Steuerung 120, die in dem Datenspeichersystem 110 von 1 gemäß einer Ausführungsform enthalten ist. Wie dargestellt, kann die Steuerung 120 neben anderen Komponenten eine oder mehrere Schnittstelle(n) 605, einen Prozessor 610, einen Speicher 620, der eine Speicherbereinigungs-Engine 625 enthält, und in einigen Ausführungsformen ein oder mehrere Hardware-Logikmodul(e) 630 umfassen. Es versteht sich, dass die Steuerung 120 je nach Konfiguration alternative, zusätzliche und/oder weniger Komponenten einschließen kann, wie Konfigurationen, die Elemente kombinieren oder Elemente in Hardware gegenüber Software implementieren usw. Zur kommunikativen Kopplung der Komponenten der Steuerung 120 kann ein Bus 650 verwendet werden.
  • Die eine oder mehreren Schnittstelle(n) 605 kann (können) die Steuerung 120 mit dem Host 101 und/oder dem Speicherarray 130 kommunikativ koppeln. Die eine oder mehreren Schnittstelle(n) 605 kann (können) eine Ein-/Ausgabe-Schnittstellenschaltung (E/A-Schnittstellenschaltung) einschließen (ohne darauf beschränkt zu sein), die (ein) geeignete(s) Kommunikationsprotokoll(e) für die Kommunikation mit dem Host 101 und/oder dem Speicherarray 130 verwendet.
  • Der Prozessor 610, der eine oder mehrere Verarbeitungseinheiten einschließen kann, kann zum Ausführen der Anweisungen von verschiedenen Softwareprogrammen verwendet werden, die im Speicher 620 enthalten sind. Der Prozessor 610 kann eine oder mehrere Verarbeitungseinheiten und/oder Kerne, programmierbare integrierte Schaltungen, wie anwendungsspezifische integrierte Schaltungen (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs) oder eine Kombination davon, enthalten. Der Prozessor 610 kann auf verschiedenen Rechnerarchitekturen basieren, einschließlich einer CISC-Architektur (Complex Instruction Set Computer), einer RISC-Architektur (Reduced Instruction Set Computer) oder einer Architektur, die eine Kombination von Befehlssätzen implementiert. Es versteht sich, dass andere Konfigurationen des Prozessors 610 möglich sind.
  • Der Speicher 620, der eine oder mehrere nichtflüchtige Speichervorrichtungen einschließen kann, kann Softwareprogramme, Firmware und/oder Daten speichern, die vom Prozessor 610 ausgeführt oder anderweitig verarbeitet werden. Der Speicher 620 kann zum Beispiel einen flüchtigen Speicher, wie dynamische Direktzugriffsspeichervorrichtung(en) (DRAM - Dynamic Random Access Memory), statische Direktzugriffsspeichervorrichtung(en) (SRAM - Static Random Access Memory), einen nichtflüchtigen Speicher, wie elektrisch löschbare programmierbare Nur-Lese- (EEPROM)- oder Flash-Speichervorrichtungen, eine Kombination aus den vorgenannten und/oder einen anderen geeigneten Datenspeichermedientyp umfassen.
  • Die im Speicher 620 gespeicherte Software und/oder Firmware kann eine Speicherbereinigungs-Engine 625 einschließen, die Routinen und/oder Anweisungen einschließen kann, die, wenn sie vom Prozessor 610 ausgeführt werden, eine oder mehrere der verschiedenen Speicherbereinigungs- und/oder Wiederherstellungsoperationen der Speichervorrichtung für das Speicherarray 130 durchführen können, wie vorstehend unter Bezugnahme auf die 3, 4 und 5A-5F beschrieben. In einigen Ausführungsformen können ein oder mehrere Hardware-Logikmodul(e) 630, wie ASICs, FPGAs usw., anstelle von Software und/oder Firmware im Speicher 620 eingesetzt werden, um eine oder mehrere der vorstehend genannten Speicherbereinigungs- und/oder Wiederherstellungsoperationen der Speichervorrichtung durchzuführen.
  • Eine Bezugnahme in dieser Spezifikation auf „eine einzelne Ausführungsform“ oder „eine beliebige Ausführungsform“ bedeutet, dass eine im Zusammenhang mit der Ausführungsform beschriebene Funktion, Struktur oder Eigenschaft in mindestens einer Ausführungsform oder Implementierung der offenbarten Technologien enthalten ist. Das Aufkommen der Ausdrücke „in einer einzelnen Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen in der Spezifikation bezieht sich nicht notwendigerweise auf dieselbe Ausführungsform oder Implementierung.
  • Einige Abschnitte der vorstehenden, detaillierten Beschreibungen können in Form von Prozessen und symbolischen Darstellungen von Operationen auf Datenbits innerhalb eines Computerspeichers dargestellt werden. Ein Prozess kann im Allgemeinen als eine in sich konsistente Abfolge von Operationen betrachtet werden, die zu einem Ergebnis führt. Die Operationen können physische Manipulationen von physischen Mengen beinhalten. Diese Größen nehmen die Form von elektrischen oder magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Diese Signale können in Form von Bits, Werten, Elementen, Symbolen, Zeichen, Begriffen, Zahlen oder dergleichen vorliegend bezeichnet werden.
  • Diese und ähnliche Begriffe können den entsprechenden physikalischen Größen zugeordnet werden und sie können als auf diese Größen angewandte Kennzeichnungen betrachtet werden. Sofern nicht ausdrücklich angegeben, wie aus der vorstehenden Erörterung offensichtlich, versteht es sich, dass sich in der gesamten Beschreibung Erörterungen, bei denen Begriffe wie zum Beispiel „Verarbeiten“ oder „Rechnen“ oder „Berechnen“ oder „Bestimmen“ oder „Anzeigen“ oder dergleichen verwendet werden, auf die Aktion und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung beziehen können, die Daten, die als physische (elektronische) Größen in den Registern und/oder Speichern des Computersystem dargestellt sind, in andere Daten, die ähnlich als physische Größen in den Registern und/oder Speichern des Computersystems oder anderen solchen Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen dargestellt sind, bearbeiten und umwandeln.
  • Die offenbarten Technologien können sich auch auf eine Vorrichtung zum Durchführen der hierin beschriebenen Operationen beziehen. Diese Vorrichtung kann speziell für die erforderlichen Zwecke konstruiert sein, oder sie kann einen Allzweckcomputer einschließen, der durch ein im Computer gespeichertes Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann auf einem computerlesbaren Speichermedium gespeichert werden, zum Beispiel, ohne darauf beschränkt zu sein, auf jeder Art von Platten, einschließlich Disketten, optischen Platten, CD-ROMs und Magnetplatten, Nur-Lese-Speichern (ROMs), Schreib-Lese-Speichern (RAMs), löschbaren programmierbaren Nur-Lese-Speichern (EPROMs), elektrisch löschbaren programmierbaren Nur-Lese-Speichern (EEPROMs), magnetischen oder optischen Karten, Flash-Speichern einschließlich USB-Sticks mit nichtflüchtigem Speicher oder jeder Art von Medien, die sich zum Speichern elektronischer Anweisungen eignen, wobei jedes jeweils an einen Computersystembus gekoppelt ist.
  • Die offenbarten Technologien können die Form einer vollständigen Hardware-Implementierung, einer vollständigen Software-Implementierung oder einer Implementierung, die sowohl Hardware- als auch Software-Elemente enthält, annehmen. In einigen Implementierungen wird die Technologie in Software implementiert, die unter anderem Firmware, Resident Software, Mikrocode usw. einschließt.
  • Darüber hinaus können die offenbarten Technologien die Form eines Computerprogrammprodukts annehmen, auf das von einem nichtflüchtigen computernutzbaren oder computerlesbaren Medium zugegriffen werden kann, das Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem beliebigen Anweisungsausführungssystem bereitstellt. Für die Zwecke dieser Beschreibung kann ein computernutzbares oder computerlesbares Medium eine beliebige Vorrichtung sein, die das Programm zur Verwendung durch oder in Verbindung mit dem Anweisungsausführungssystem, der Ausrüstung oder dem Gerät enthalten, speichern, kommunizieren, verbreiten oder transportieren kann.
  • Ein Computer- oder Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, schließt mindestens einen Prozessor (z. B. einen Hardware-Prozessor) ein, der über einen Systembus direkt oder indirekt an Speicherelemente gekoppelt ist. Die Speicherelemente können lokalen Speicher, der während der eigentlichen Ausführung des Programmcodes verwendet wird, Massenspeicher und Cache-Speicher einschließen, die eine temporäre Speicherung zumindest eines Teils des Programmcodes ermöglichen, um die Anzahl von Malen zu reduzieren, die der Code während der Ausführung aus dem Massenspeicher abgerufen werden muss.
  • Ein-/Ausgabe- oder E/A-Vorrichtungen (einschließlich, aber nicht beschränkt auf Tastaturen, Displays, Zeigevorrichtungen usw.) können entweder direkt oder über zwischengeschaltete E/A-Steuerungen an das System gekoppelt sein.
  • Netzwerkadapter können auch an das System gekoppelt sein, damit das Datenverarbeitungssystem über zwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernten Druckern oder Speichervorrichtungen gekoppelt werden kann. Modems, Kabelmodems und Ethernet-Karten sind nur einige der derzeit verfügbaren Arten von Netzwerkadaptern.
  • Die Begriffe Speichermedien, Speichervorrichtung und Datenblöcke werden in der gesamten vorliegenden Offenbarung austauschbar verwendet, um die physischen Medien zu bezeichnen, auf denen die Daten gespeichert sind.
  • Schließlich sind die hierin vorgestellten Prozesse und Darstellungen möglicherweise nicht zwangsläufig mit einem bestimmten Computer oder einer anderen Ausrüstung verbunden. Verschiedene Allzwecksysteme können mit Programmen gemäß den hierin enthaltenen Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, spezialisiertere Vorrichtungen zu konstruieren, um die erforderlichen Verfahrensoperationen durchzuführen. Die erforderliche Struktur für eine Vielzahl dieser Systeme ergibt sich aus der vorstehenden Beschreibung. Darüber hinaus wurden die offenbarten Technologien nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es versteht sich, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die Lehren der hierin beschriebenen Technologien umzusetzen.
  • Die vorangehende Beschreibung der Implementierungen der vorliegenden Techniken und Technologien dient der Veranschaulichung und Erläuterung. Sie soll nicht erschöpfend sein oder die vorliegenden Techniken und Technologien auf die konkret offenbarte Form beschränken. Zahlreiche Änderungen und Varianten sind angesichts der vorstehenden Lehre möglich. Es ist beabsichtigt, dass der Umfang der vorliegenden Techniken und Technologien nicht durch diese detaillierte Beschreibung eingeschränkt wird. Die vorliegenden Techniken und Technologien können in anderen spezifischen Formen umgesetzt werden, ohne von deren Geist oder wesentlichen Eigenschaften abzuweichen. Ebenso sind die besondere Benennung und Unterteilung der Module, Routinen, Funktionen, Attribute, Methodiken und anderer Aspekte nicht obligatorisch oder signifikant, und die Mechanismen, die die vorliegenden Techniken und Technologien oder ihre Funktionen implementieren, können unterschiedliche Namen, Unterteilungen und/oder Formate aufweisen. Darüber hinaus können die Module, Routinen, Funktionen, Attribute, Methodiken und anderen Aspekte der vorliegenden Technologie als Software, Hardware, Firmware oder in jeder beliebigen Kombination der drei implementiert werden. Überall, wo eine Komponente, zum Beispiel ein Modul, als Software implementiert wird, kann die Komponente auch als eigenständiges Programm, als Teil eines größeren Programms, als eine Vielzahl separater Programme, als statisch oder dynamisch verlinkte Bibliothek, als ein vom Kernel ladbares Modul, als Gerätetreiber und/oder auf jede und jede beliebige andere Art und Weise implementiert werden, die heute oder in Zukunft in der Computerprogrammierung bekannt ist. Darüber hinaus sind die vorliegenden Techniken und Technologien in keiner Weise auf die Implementierung in einer bestimmten Programmiersprache oder für ein bestimmtes Betriebssystem oder eine bestimmte Umgebung beschränkt. Dementsprechend soll die Offenbarung der vorliegenden Techniken und Technologien veranschaulichend, aber nicht einschränkend sein.

Claims (20)

  1. Computerimplementiertes Verfahren zum Wiederherstellen einer ausgefallenen Speichervorrichtung in einem Speicherarray, wobei das Verfahren umfasst: Identifizieren einer ersten Speicherbereinigungsgruppe in einem Speicherarray zur Speicherbereinigung; Extrahieren von gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden Speichervorrichtungen im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Rekonstruieren von Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Konsolidieren der extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Schreiben der konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, in eine zweite Speicherbereinigungsgruppe im Speicherarray; und Wiedererlangen der ersten Speicherbereinigungsgruppe, die für die Speicherbereinigung identifiziert wurde.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei eines oder mehrere vom Identifizieren, Extrahieren, Rekonstruieren, Konsolidieren und Schreiben in periodischer und inkrementeller Weise durchgeführt werden.
  3. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, dass eine vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde; und als Reaktion auf das Bestimmen, dass die vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde, Durchführen einer manuellen Wiederherstellung von gültigen Daten der ausgefallenen Speichervorrichtung, die noch nicht rekonstruiert wurden.
  4. Computerimplementiertes Verfahren nach Anspruch 3, wobei die vorgegebene Bedingung bezüglich des Wiederherstellens der ausgefallenen Speichervorrichtung ausgewählt wird aus einer Gruppe, die Folgendes umfasst: (1) ein Wiederherstellungs-Zeitüberschreitungsschwellenwert für die ausgefallene Speichervorrichtung wurde überschritten und (2) in eine oder mehrere Speicherbereinigungsgruppen im Speicherarray wurde nicht innerhalb einer vorgegebenen Zeitspanne geschrieben.
  5. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Speicherarray ein oder mehrere Solid-State-Laufwerke umfasst.
  6. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Speicherarray als RAID-Array konfiguriert ist.
  7. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Speicherarray zum Unterstützen eines Löschcodierungsschemas konfiguriert ist.
  8. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Speicherarray Reservekapazität einschließt, die als Reservespeicherplatz konfiguriert ist, um rekonstruierte Daten der ausgefallenen Speichervorrichtung vorübergehend zu speichern.
  9. Datenspeichersystem, umfassend: ein Speicherarray mit einer Vielzahl von Speichervorrichtungen; einen oder mehrere Prozessoren; und eine von dem einen oder den mehreren Prozessoren ausführbare Logik zum Durchführen von Operationen, umfassend: Identifizieren einer ersten Speicherbereinigungsgruppe in dem Speicherarray zur Speicherbereinigung; Extrahieren von gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden Speichervorrichtungen im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Rekonstruieren von Daten einer ausgefallenen Speichervorrichtung im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Konsolidieren der extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Schreiben der konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, in eine zweite Speicherbereinigungsgruppe im Speicherarray; und Wiedererlangen der ersten Speicherbereinigungsgruppe, die für die Speicherbereinigung identifiziert wurde.
  10. Datenspeichersystem nach Anspruch 9, wobei eines oder mehrere vom Identifizieren, Extrahieren, Rekonstruieren, Konsolidieren und Schreiben in periodischer und inkrementeller Weise durchgeführt werden.
  11. Datenspeichersystem nach Anspruch 9, wobei die Operationen ferner umfassen: Bestimmen, dass eine vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde; und als Reaktion auf das Bestimmen, dass die vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde, Durchführen einer manuellen Wiederherstellung von gültigen Daten der ausgefallenen Speichervorrichtung, die noch nicht rekonstruiert wurden.
  12. Datenspeichersystem nach Anspruch 11, wobei die vorgegebene Bedingung bezüglich des Wiederherstellens der ausgefallenen Speichervorrichtung ausgewählt wird aus einer Gruppe, die Folgendes umfasst: (1) ein Wiederherstellungs-Zeitüberschreitungsschwellenwert für die ausgefallene Speichervorrichtung wurde überschritten und (2) in eine oder mehrere Speicherbereinigungsgruppen im Speicherarray wurde nicht innerhalb einer vorgegebenen Zeitspanne geschrieben.
  13. Datenspeichersystem nach Anspruch 9, wobei das Speicherarray ein oder mehrere Solid-State-Laufwerke umfasst.
  14. Datenspeichersystem nach Anspruch 9, wobei das Speicherarray als RAID-Array konfiguriert ist.
  15. Datenspeichersystem nach Anspruch 9, wobei das Speicherarray zum Unterstützen eines Löschcodierungsschemas konfiguriert ist.
  16. Datenspeichersystem nach Anspruch 9, wobei das Speicherarray Reservekapazität einschließt, die als Reservespeicherplatz konfiguriert ist, um rekonstruierte Daten der ausgefallenen Speichervorrichtung vorübergehend zu speichern.
  17. Datenspeichersystem, umfassend: ein Speicherarray mit einer Vielzahl von Speichervorrichtungen; Mittel zum Identifizieren einer ersten Speicherbereinigungsgruppe in dem Speicherarray zur Speicherbereinigung; Mittel zum Extrahieren von gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden Speichervorrichtungen im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Mittel zum Rekonstruieren von Daten einer ausgefallenen Speichervorrichtung im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Mittel zum Konsolidieren der extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Mittel zum Schreiben der konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, in eine zweite Speicherbereinigungsgruppe im Speicherarray; und Mittel zum Wiedererlangen der ersten Speicherbereinigungsgruppe, die für die Speicherbereinigung identifiziert wurde.
  18. Datenspeichersystem nach Anspruch 17, wobei eines oder mehrere der Mittel zum Identifizieren, Mittel zum Extrahieren, Mittel zum Rekonstruieren, Mittel zum Konsolidieren und Mittel zum Schreiben zum Durchführen ihrer jeweiligen Aktionen in periodischer und inkrementeller Weise konfiguriert sind.
  19. Datenspeichersystem nach Anspruch 17, ferner umfassend: Mittel zum Bestimmen, dass eine vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde; und Mittel zum Durchführen einer manuellen Wiederherstellung von gültigen Daten der ausgefallenen Speichervorrichtung, die noch nicht rekonstruiert wurden, wobei die manuelle Wiederherstellung als Reaktion auf das Bestimmen, dass die vorgegebene Bedingung bezüglich des Speicherarrays erfüllt wurde, stattfindet.
  20. Ausrüstung umfassend: einen oder mehrere Prozessoren; und eine von dem einen oder den mehreren Prozessoren ausführbare Logik zum Durchführen von Operationen, umfassend: Identifizieren einer ersten Speicherbereinigungsgruppe in einem Speicherarray zur Speicherbereinigung; Extrahieren von gültigen Daten und Redundanzinformationen aus einer oder mehreren funktionierenden Speichervorrichtungen im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Rekonstruieren von Daten einer ausgefallenen Speichervorrichtung im Speicherarray, die der ersten Speicherbereinigungsgruppe zugeordnet sind, basierend auf den extrahierten, gültigen Daten und Redundanzinformationen aus der einen oder den mehreren funktionierenden Speichervorrichtungen, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Konsolidieren der extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind; Schreiben der konsolidierten, extrahierten, gültigen Daten aus der einen oder den mehreren funktionierenden Speichervorrichtungen und der rekonstruierten Daten der ausgefallenen Speichervorrichtung, die der ersten Speicherbereinigungsgruppe zugeordnet sind, in eine zweite Speicherbereinigungsgruppe im Speicherarray; und Wiedererlangen der ersten Speicherbereinigungsgruppe, die für die Speicherbereinigung identifiziert wurde.
DE112018004370.3T 2018-03-06 2018-11-26 Verfahren zum wiederherstellen einer ausgefallenen speichervorrichtung Pending DE112018004370T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/913,910 US10740181B2 (en) 2018-03-06 2018-03-06 Failed storage device rebuild method
US15/913,910 2018-03-06
PCT/US2018/062498 WO2019172973A1 (en) 2018-03-06 2018-11-26 Failed storage device rebuild method

Publications (1)

Publication Number Publication Date
DE112018004370T5 true DE112018004370T5 (de) 2020-10-01

Family

ID=67842623

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018004370.3T Pending DE112018004370T5 (de) 2018-03-06 2018-11-26 Verfahren zum wiederherstellen einer ausgefallenen speichervorrichtung

Country Status (4)

Country Link
US (2) US10740181B2 (de)
CN (1) CN111164576B (de)
DE (1) DE112018004370T5 (de)
WO (1) WO2019172973A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017200883A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
US10699779B2 (en) 2017-11-29 2020-06-30 Silicon Storage Technology, Inc. Neural network classifier using array of two-gate non-volatile memory cells
CN110737393B (zh) 2018-07-20 2023-08-11 伊姆西Ip控股有限责任公司 数据读取方法、设备和计算机程序产品
US11500442B2 (en) * 2019-01-18 2022-11-15 Silicon Storage Technology, Inc. System for converting neuron current into neuron current-based time pulses in an analog neural memory in a deep learning artificial neural network
US11023559B2 (en) 2019-01-25 2021-06-01 Microsemi Soc Corp. Apparatus and method for combining analog neural net with FPGA routing in a monolithic integrated circuit
US10720217B1 (en) 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use
US11423979B2 (en) 2019-04-29 2022-08-23 Silicon Storage Technology, Inc. Decoding system and physical layout for analog neural memory in deep learning artificial neural network
US11347404B2 (en) * 2019-08-01 2022-05-31 EMC IP Holding Company, LLC System and method for sharing spare storage capacity between a log structured file system and RAID
CN111694764B (zh) * 2020-05-29 2023-03-14 四川效率源信息安全技术股份有限公司 一种故障固态硬盘的数据读取方法
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
US11792134B2 (en) 2020-09-28 2023-10-17 Vmware, Inc. Configuring PNIC to perform flow processing offload using virtual port identifiers
US11636053B2 (en) 2020-09-28 2023-04-25 Vmware, Inc. Emulating a local storage by accessing an external storage through a shared port of a NIC
US11593278B2 (en) 2020-09-28 2023-02-28 Vmware, Inc. Using machine executing on a NIC to access a third party storage not supported by a NIC or host
US11875172B2 (en) 2020-09-28 2024-01-16 VMware LLC Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC
US11736565B2 (en) 2020-09-28 2023-08-22 Vmware, Inc. Accessing an external storage through a NIC
US11907068B2 (en) * 2021-02-16 2024-02-20 Nyriad, Inc. Read request response for reconstructed data in a degraded drive
US20230082636A1 (en) * 2021-09-16 2023-03-16 Micron Technology, Inc. Parity data modification for partial stripe data update
US11863376B2 (en) 2021-12-22 2024-01-02 Vmware, Inc. Smart NIC leader election
US11995024B2 (en) 2021-12-22 2024-05-28 VMware LLC State sharing between smart NICs
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928367B2 (en) 2022-06-21 2024-03-12 VMware LLC Logical memory addressing for network devices
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2388083A (en) 1941-04-05 1945-10-30 Standard Oil Dev Co Lubricant
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US6092215A (en) 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7139931B2 (en) * 2002-08-19 2006-11-21 Aristos Logic Corporation Method of controlling the system performance and reliability impact of hard disk drive rebuild
US7103739B2 (en) 2003-10-09 2006-09-05 International Business Machines Corporation Method and apparatus for providing hardware aware logical volume mirrors
US7596570B1 (en) 2003-11-04 2009-09-29 Emigh Aaron T Data sharing
US7428691B2 (en) 2003-11-12 2008-09-23 Norman Ken Ouchi Data recovery from multiple failed data blocks and storage units
US7293133B1 (en) 2003-12-31 2007-11-06 Veritas Operating Corporation Performing operations without requiring split mirrors in a multi-class file system
US7913148B2 (en) 2004-03-12 2011-03-22 Nvidia Corporation Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
US7426655B2 (en) 2004-12-13 2008-09-16 Dell Products L.P. System and method of enhancing storage array read performance using a spare storage array
US8938591B2 (en) 2005-09-30 2015-01-20 Cleversafe, Inc. Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system
US7783600B1 (en) 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US8364891B2 (en) 2006-04-04 2013-01-29 Permabit Technology Corporation Storage assignment technique for scalable and fault tolerant storage system
US20080104445A1 (en) 2006-10-31 2008-05-01 Hewlett-Packard Development Company, L.P. Raid array
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US7992072B2 (en) * 2007-02-26 2011-08-02 International Business Machines Corporation Management of redundancy in data arrays
US8049980B1 (en) 2008-04-18 2011-11-01 Network Appliance, Inc. Partial disk failures and improved storage resiliency
US20100030960A1 (en) 2008-07-31 2010-02-04 Hariharan Kamalavannan Raid across virtual drives
US9037541B2 (en) 2009-04-30 2015-05-19 Microsoft Technology Licensing, Llc Metadata for data storage array
US8706980B2 (en) 2009-07-30 2014-04-22 Cleversafe, Inc. Method and apparatus for slice partial rebuilding in a dispersed storage network
US8977894B2 (en) * 2009-08-21 2015-03-10 International Business Machines Corporation Operating a data storage system
TWI497293B (zh) * 2009-12-17 2015-08-21 Ibm 固態儲存裝置內之資料管理
CN103080917B (zh) 2010-06-18 2014-08-20 Lsi公司 可扩展存储装置
US20120011200A1 (en) 2010-07-06 2012-01-12 Roxbeam Media Network Corporation Method and apparatus for data storage in a peer-to-peer network
US8713268B2 (en) 2010-08-05 2014-04-29 Ut-Battelle, Llc Coordinated garbage collection for raid array of solid state disks
US8726070B2 (en) 2010-09-27 2014-05-13 Dell Products L.P. System and method for information handling system redundant storage rebuild
US9292205B2 (en) 2012-06-14 2016-03-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and systems for adaptive queue depth management
US9262278B2 (en) 2012-07-30 2016-02-16 Ebay Inc. Allocation of replica-sets in a storage cluster
US9135096B2 (en) * 2012-12-06 2015-09-15 Compellent Technologies RAID surveyor
US9378135B2 (en) 2013-01-08 2016-06-28 Violin Memory Inc. Method and system for data storage
US9349476B2 (en) 2013-02-21 2016-05-24 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify
GB2513377A (en) * 2013-04-25 2014-10-29 Ibm Controlling data storage in an array of storage devices
KR102072829B1 (ko) 2013-06-14 2020-02-03 삼성전자주식회사 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법
JP2016530637A (ja) 2013-08-27 2016-09-29 エージェンシー フォー サイエンス,テクノロジー アンド リサーチ Raidパリティストライプ再構成
US9921783B2 (en) 2013-09-25 2018-03-20 Lenovo (Singapore) Pte Ltd. Dynamically allocating temporary replacement storage for a drive in a raid array
US9454434B2 (en) 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique
WO2015116197A1 (en) 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Storing data based on a write allocation policy
WO2015142338A1 (en) 2014-03-20 2015-09-24 Hewlett-Packard Development Company, L.P. Solid state drive operations
US9564212B2 (en) * 2014-05-06 2017-02-07 Western Digital Technologies, Inc. Solid-state memory corruption mitigation
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9405928B2 (en) 2014-09-17 2016-08-02 Commvault Systems, Inc. Deriving encryption rules based on file content
US10409769B1 (en) 2014-09-29 2019-09-10 EMC IP Holding Company LLC Data archiving in data storage system environments
US9658923B2 (en) * 2014-09-30 2017-05-23 International Business Machines Corporation Optimization of rebuilding in solid state drives
US10289507B1 (en) 2015-10-27 2019-05-14 Pavilion Data Systems, Inc. Distributed rebuild of failed storage device
US20170123915A1 (en) 2015-10-29 2017-05-04 Nimble Storage, Inc. Methods and systems for repurposing system-level over provisioned space into a temporary hot spare
US20170242785A1 (en) 2016-02-23 2017-08-24 Sandisk Technologies Llc Efficient Implementation of Optimized Host-Based Garbage Collection Strategies Using Xcopy and Arrays of Flash Devices
US9875052B2 (en) 2016-03-15 2018-01-23 International Business Machines Corporation Storage capacity allocation using distributed spare space
CN107220148B (zh) 2016-03-21 2020-12-04 伊姆西Ip控股有限责任公司 针对独立磁盘冗余阵列的重建方法和设备
US10042721B2 (en) 2016-03-30 2018-08-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Peer-to-peer redundant array of independent disks (RAID) lacking a RAID controller
TWI604455B (zh) 2016-05-13 2017-11-01 Silicon Motion Inc 資料儲存裝置、記憶體控制器及其資料管理方法與資料區塊管理方法
US10241722B1 (en) * 2016-05-27 2019-03-26 Pavilion Data Systems, Inc. Proactive scheduling of background operations for solid state drives

Also Published As

Publication number Publication date
US20200356440A1 (en) 2020-11-12
CN111164576A (zh) 2020-05-15
US11210170B2 (en) 2021-12-28
WO2019172973A1 (en) 2019-09-12
US20190278675A1 (en) 2019-09-12
CN111164576B (zh) 2023-03-10
US10740181B2 (en) 2020-08-11

Similar Documents

Publication Publication Date Title
DE112018004370T5 (de) Verfahren zum wiederherstellen einer ausgefallenen speichervorrichtung
DE112010003887B4 (de) Datenverwaltung in Halbleiter-Speichereinheiten
DE112011103295B4 (de) Decodieren in Solid-State-Speichereinheiten
DE102017120840B4 (de) Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE112010003662B4 (de) Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen
DE19983218B4 (de) Verfahren zum Codieren von Datensignalen zur Speicherung
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE112018004275T5 (de) Raid-array-wiederherstellungsunterstützung anhand einer externen array-kopie
DE112010004863B4 (de) Datenverwaltung in Festkörperspeichersystemen
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE69534527T2 (de) Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem
DE112019000194T5 (de) Verwenden einer ausgefallenen Speichervorrichtung in einem Peer-to-Peer-Speichersystem zum durchführen einer speicherzentrischen Aufgabe
DE112008000180T5 (de) Verfahren und System für die Umsetzung eines Fast-Wakeup eines Flashspeichersystems
DE112019000201T5 (de) Speichersysteme mit peer-datenbereinigung
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
DE112013006504T5 (de) Speichersystem und Datenverwaltungsverfahren
DE112017005637T5 (de) Verfahren und System zur Schreibverstärkungsanalyse
DE102009048179A1 (de) Prozess und Verfahren für eine Löschstrategie in Festkörperplatten
DE102019116546A1 (de) Verfahren für schnelles boot-lesen
DE102017128994A1 (de) Weiche Dekodierungs-Planung
DE112018004252T5 (de) Redundanzcodierstreifen auf der basis eines koordinierten internen adressschemas über mehrere vorrichtungen
DE102015117500A1 (de) Verfahren zur Verbesserung des gemischten Random-Verhaltens bei Arbeitslasten mit niedriger Queue-Tiefe
DE112013001108B4 (de) Ein verfahren, eine vorrichtung, ein controller, ein computerprogramm und ein computerprogrammprodukt zum schreiben von neuen daten einer ersten blockgrösse in eine zweite blockgrösse, wobei ein write-write-modus verwendet wird

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE