-
GEBIET DER AUSFÜHRUNGSFORMEN
-
Ausführungsformen der Erfindung können sich allgemein auf Datenspeichersysteme und insbesondere auf Ansätze zum Prognostizieren und In-situ-Reparieren von Datenspeichervorrichtungen beziehen.
-
HINTERGRUND
-
Es besteht eine kommerzielle Nachfrage nach digitalen Datenspeichersystemen mit hoher Kapazität, bei denen mehrere Datenspeichervorrichtungen (DSDs) in einem gemeinsamen Gehäuse untergebracht sind. Datenspeichersysteme schließen häufig große Gehäuse ein, in denen mehrere Regale untergebracht sind, in denen Reihen von DSDs montiert sind. Ein typischer Ansatz bei Datenspeichersystemen besteht darin, DSDs, die vor Ort ein Fehlverhalten zeigen oder ausfallen, außer Betrieb zu setzen oder ihre Verwendung einzustellen. Solche DSDs werden dann häufig von Technikern im internen Labor oder am Kundenimplementierungsort gegen Ersatz-DSDs ausgetauscht. Ausgefallene Laufwerke werden entweder vom Kunden zerstört oder zur Ausfallanalyse an den Hersteller zurückgegeben.
-
Alle in diesem Abschnitt beschriebenen Ansätze sind Ansätze, die verfolgt werden könnten, aber nicht notwendigerweise Ansätze, die zuvor konzipiert oder verfolgt wurden. Daher sollte, sofern nicht anders angegeben, nicht angenommen werden, dass jeder der in diesem Abschnitt beschriebenen Ansätze lediglich aufgrund seiner Aufnahme in diesen Abschnitt als Stand der Technik qualifiziert ist.
-
Figurenliste
-
Ausführungsformen werden beispielhaft und nicht einschränkend in den Figuren der beigefügten Zeichnungen, in denen gleiche Bezugszeichen verwendet werden, um auf ähnliche Elemente Bezug zu nehmen, veranschaulicht:
- 1A ist eine Draufsicht, die ein Festplattenlaufwerk (HDD) gemäß einer Ausführungsform veranschaulicht;
- 1B ist ein Blockdiagramm, das ein Festkörperlaufwerk (SSD) gemäß einer Ausführungsform veranschaulicht;
- 2 ist eine perspektivische Ansicht, die ein Datenspeichersystem gemäß einer Ausführungsform veranschaulicht;
- 3 ist ein Blockdiagramm, das eine Datenspeichersystemarchitektur gemäß einer Ausführungsform veranschaulicht; und
- 4 ist ein Flussdiagramm, das ein Verfahren zum Identifizieren von problematischen Festplattenlaufwerken gemäß einer Ausführungsform veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Es werden Ansätze zum Prognostizieren und In-situ-Reparieren von Datenspeichervorrichtungen beschrieben. In der folgenden Beschreibung werden zu Zwecken der Erklärung zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der Ausführungsformen der hierin beschriebenen Erfindung bereitzustellen. Es wird jedoch ersichtlich sein, dass die Ausführungsformen der hierin beschriebenen Erfindung ohne diese spezifischen Details praktiziert werden können. In anderen Fällen sind hinlänglich bekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, um zu vermeiden, dass die Ausführungsformen der hierin beschriebenen Erfindung unnötig unklar werden.
-
PHYSISCHE BESCHREIBUNG EINES DATENSPEICHERSYSTEMS IN EINEM VERANSCHAULICHENDEN BETRIEBSKONTEXT
-
Es besteht eine kommerzielle Nachfrage nach digitalen Datenspeichersystemen mit hoher Kapazität, bei denen mehrere Datenspeichervorrichtungen (DSDs), wie Festplattenlaufwerke (HDDs) und/oder Festkörperlaufwerke (SSDs), in einem gemeinsamen Gehäuse untergebracht sind. Datenspeichersysteme schließen häufig große Gehäuse ein, in denen mehrere Regale untergebracht sind, in denen Reihen von DSDs montiert sind. 2 ist eine perspektivische Ansicht, die ein beispielhaftes Datenspeichersystem gemäß Ausführungsformen veranschaulicht. Ein Datenspeichersystem 200 kann ein Systemgehäuse 202 (oder ein „Rack 202“) aufweisen, in dem mehrere Datenspeichersystemregale 204 untergebracht sind. Jedes Regal 204 kann zum Beispiel in einen entsprechenden Einschub innerhalb des Racks 202 platziert oder eingeschoben werden. Das Rack 202 bringt weiterhin eine Systemsteuerung unter und kann weiterhin Switches, (einen) Speicherserver, (einen) Anwendungsserver, eine Stromversorgung, Lüfter usw. unterbringen.
-
3 ist ein Blockdiagramm, das eine Datenspeichersystemarchitektur gemäß einer Ausführungsform veranschaulicht. Die beispielhafte Architektur 300 veranschaulicht ein Datenspeichersystem 200, das mehrere Festplattenlaufwerke (HDDs) 304a (HDD1), 304b (HDD2) und 304n (HDDn) aufweist, wobei n eine beliebige Anzahl von HDDs (und/oder SSDs) darstellt, die von Implementierung zu Implementierung variieren kann. Jedes HDD 304a-304n kommuniziert gemäß einem entsprechenden Kommunikationsprotokoll 323 über eine Kommunikationsschnittstelle 322 mit einer Datenspeichersystemsteuerung 312 und wird von dieser gesteuert. Jedes HDD 304a-304n schließt entsprechenden nichtflüchtigen Speicher (NVM) 306 (z. B. im Fall von HDDs üblicherweise in der Form von sich drehenden Magnetplattenmedien) ein, der durch eine jeweilige HDD-Steuerung 308 gesteuert wird, die ein Protokollmodul 310 einschließt. Jedes Protokollmodul 310 (das zum Beispiel Bestandteil eines entsprechenden System-on-Chip (SoC) sein kann, wie ein Teil der Datenkanalschaltlogik oder der Festplattensteuerschaltlogik, wie dargestellt, im Zusammenhang mit einem HDD) ist in der Lage, Aktionen zu protokollieren, die durch die HDD-Steuerung 308 ausgeführt werden, wie Protokollieren von Lese-, Schreib- und Suchfehlern, zugehörigen Wiederherstellungsaktionen und anderen kurzfristigen und langfristigen HDD-Statusinformationen. Die Systemsteuerung 312 des Datenspeichersystems 200 schließt Speicher 313, einen Prozessor 315 und eine Zuverlässigkeitsengine 314 und ein zugehöriges FRPH-Modul (Full Recoveries Per Hour-Modul) 316 ein, die zusammen eine prozedurale Funktionalität darstellen, die das Prognostizieren und In-situ-Reparieren der HDDs 304a-304n beinhaltet, wie an anderer Stelle hierin ausführlicher beschrieben.
-
Verarbeitung, Funktionen, Prozeduren, Aktionen, Verfahrensschritte und dergleichen, die hierin als von der Systemsteuerung 312 oder von einer HDD 304a-304n durchgeführt oder durchführbar beschrieben werden, können die Umsetzung durch Ausführung einer oder mehrerer Folgen von Anweisungen einschließen, die in einer oder mehreren Speichereinheiten gespeichert sind und die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, eine solche Durchführung bewirken. Die Systemsteuerung 312 kann in jeder beliebigen Form und/oder Kombination von Software, Hardware und Firmware ausgeführt sein. Zum Beispiel und gemäß einer Ausführungsform weist die Systemsteuerung 312 eine anwendungsspezifische integrierte Schaltung (ASIC) auf, die mindestens eine Speichereinheit zum Speichern solcher Anweisungen (wie Firmware, als nicht einschränkendes Beispiel) und mindestens einen Prozessor zum Ausführen solcher Anweisungen aufweist, was ein Prognostizieren im Hinblick auf potenziell problematische HDDs (z. B. „stille“ ausfallende Laufwerke, die möglicherweise intern Mühe haben, Datentransaktionen abzuschließen, aber noch nicht öffentlich ausgefallen sind) der Vielzahl von HDDs 304a-304n und Verwalten, Steuern, Erleichtern von In-situ-Reparaturmaßnahmen, die ausgefallenen und ausfallenden HDDs entsprechen, ermöglicht.
-
Das Datenspeichersystem 200 kann kommunikativ mit einem Host 350 gekoppelt sein, der als Hardwaremaschine, auf der ausführbarer Code ausgeführt wird (als nicht einschränkende Beispiele ein Computer oder Hardwareserver und dergleichen), oder als Softwareanweisungen, die durch einen oder mehrere Prozessoren (als nicht einschränkende Beispiele einen Softwareserver wie einen Datenbankserver, einen Anwendungsserver, einen Medienserver und dergleichen) ausführbar sind, ausgeführt sein kann. Der Host 350 stellt im Allgemeinen einen Client des Datenspeichersystems 200 dar und weist die Fähigkeit auf, Lese- und Schreibanforderungen (Eingabe/Ausgabe oder „E/A“) an das Datenspeichersystem 200 vorzunehmen. Es ist zu beachten, dass die Systemsteuerung 312 auch als „Host“ bezeichnet werden kann, da der Begriff häufig allgemein in Bezug auf jegliche Vorrichtung verwendet wird, die E/A-Aufrufe an eine Datenspeichervorrichtung oder ein Array von Vorrichtungen, wie HDDs 304a-304n, vornimmt.
-
EINLEITUNG
-
Wenn hierin der Begriff „im Wesentlichen“ verwendet wird, versteht man darunter ein Merkmal, das weitgehend oder nahezu strukturiert, eingerichtet, dimensioniert usw. ist, bei dem aber Fertigungstoleranzen und dergleichen in der Praxis zu einer Situation führen können, in der die Struktur, Konfiguration, Abmessung usw. nicht immer oder notwendigerweise genau wie angegeben ist. Zum Beispiel würde die Beschreibung einer Struktur als „im Wesentlichen vertikal“ diesem Begriff seine klare Bedeutung zuweisen, sodass die Seitenwand für alle praktischen Zwecke vertikal ist, aber möglicherweise nicht genau 90 Grad aufweist.
-
Auch wenn Begriffe, wie „optimal“, „optimieren“, „minimal“, „minimieren“ und dergleichen möglicherweise nicht mit bestimmten Werten verbunden sind, wird bei Verwendung solcher Begriffe hierin doch beabsichtigt, dass Fachleute solche Begriffe so verstehen würden, dass sie einen Wert, einen Parameter, eine Metrik und dergleichen auch in einer vorteilhaften Richtung betreffen, die mit der Gesamtheit dieser Offenlegung übereinstimmt. Zum Beispiel erfordert das Beschreiben eines Werts von etwas als „minimal“ nicht, dass der Wert tatsächlich gleich einem theoretischen Minimum (z. B. Null) ist, sondern sollte in praktischem Sinne so verstanden werden, dass ein entsprechendes Ziel darin bestünde, den Wert in eine vorteilhafte Richtung zu einem theoretischen Minimum hin zu bewegen.
-
Einige Datenspeichersysteme implementieren Diagnose- und In-situ-Reparaturprozeduren (z. B. „lokal“ oder „an Ort und Stelle“). Dies bedeutet, dass System-HDDs, die während des Betriebs vor Ort ausgefallen sind, soweit möglich vor Ort diagnostiziert und repariert werden und, falls sie nicht repariert werden können, an Ort und Stelle außer Betrieb genommen statt ersetzt werden. Vorzugsweise beinhalten In-situ-Reparaturen automatisierte oder halbautomatisierte Prozeduren, während das fragliche HDD im Systemgehäuse verbleibt. Viele HDD-Reparaturen führen zu keinem Kapazitäts- oder Leistungsverlust. Ein HDD kann auf eine Weise repariert werden, die dennoch eine fortgesetzte Verwendung durch Systemsoftware ermöglicht, wenn auch mit verringerter Kapazität oder Leistung. Ein HDD, das nicht repariert werden kann, kann an Ort und Stelle innerhalb des Systems ausfallen gelassen werden, wie in Szenarien, in denen das System mit übermäßig bereitgestellter Speicherkapazität ausgeliefert wurde, die eine Verfügbarkeit der vollen, spezifizierten Speicherkapazität trotz einer Anzahl von Laufwerksausfällen erlaubt. Die In-situ-Reparatur kann die Kosten für die Planung von Servicetechnikern zum Ersetzen von Laufwerken, die vor Ort ausfallen, sowie die Kosten dieser Ersatzlaufwerke eliminieren. Außerdem kann die In-situ-Reparatur die AFR (jährliche Ausfallrate) von Speichervorrichtungen reduzieren und wird wahrscheinlich die ARR (jährliche Rücklaufrate) eliminieren, wenn für zukünftige Produktreleases ein „Fail-in-Place“-Modell übernommen wird.
-
Implementierungen von In-situ-Reparatur in HDDs können die Menge an Überbereitstellung minimieren, die in einem Datenspeichersystem erforderlich ist, um eine Hardwaregarantie über die Lebensdauer anbieten zu können. Wie erwähnt, können einige Speichersysteme (und/oder Speichersystem-Betriebssystemsoftware) in der Lage sein, viele HDDs nach ihrem Ausfall weiterhin zu verwenden. Eine Analyse ausgefallener Laufwerke zeigt, dass viele HDDs, die vor Ort ausfallen, mit relativ unkomplizierten Techniken zur vollständigen oder teilweisen Nutzung wiederhergestellt werden können.
-
ZUVERLÄSSIGKEITSENGINE
-
Unter Bezugnahme auf 3 ist gemäß einer Ausführungsform eine Softwarekomponente, die als die Zuverlässigkeitsengine 314 bezeichnet wird, für das Durchführen oder Verwalten von HDD-Diagnose-, -Prognostizierungs- und -Reparaturoperationen verantwortlich. Wenn das System (z. B. die Systemsteuerung 312 des Datenspeichersystems 200) in Bezug auf die Diagnose ein Problem mit einer HDD 304a-304n des Datenspeichersystems 200 erkennt, ruft das System die Zuverlässigkeitsengine 314 auf und übergibt Informationen, die beschreiben, welches Problem das System mit dem HDD hatte. Üblicherweise kann die Zuverlässigkeitsengine 314 in einen Diagnosezustand in Bezug auf dieses HDD wechseln und das HDD analysieren, um die Grundursache des Problems zu identifizieren. In Bezug auf eine Reparatur benachrichtigt die Zuverlässigkeitsengine 314, sobald die Grundursache des Problems identifiziert worden ist, die Logik der Systemsteuerung 312 über die empfohlene Reparaturmaßnahme, die die Systemsteuerung 312 gemäß dem Dringlichkeitsgrad basierend auf Systemereignissen (z. B. Code-Upload, bevorstehendes Herunterfahren/Neustarten) und dem Grad der Festplattenredundanz innerhalb des Systems planen kann. Sobald die Systemsteuerung 312 eine Reparatur anfordert, wird das HDD in der Regel offline genommen, und die Zuverlässigkeitsengine 314 führt die Reparatur durch (was einige Sekunden bis einige Tage dauern kann). Am Ende der Reparatur und der Diagnose nach der Reparatur kann das HDD entweder zur vollständigen Verwendung wiederhergestellt werden, zur Verwendung mit verringerter Kapazität und/oder Leistung wiederhergestellt werden, oder das HDD kann aus dem System genommen werden.
-
Gemäß Ausführungsformen überwacht die Zuverlässigkeitsengine 314 im Hinblick auf das Prognostizieren auch periodisch die Integrität jedes HDD, während es online ist und von dem System verwendet wird. Dies kann durch Lesen und Analysieren einer zeitlich begrenzten Teilmenge des internen E6-Protokolls oder der internen E6-Protokolle 317 des HDD erfolgen, wie in Verbindung mit dem oder mit Unterstützung durch das FRPH-Modul 316, wie an anderer Stelle hierin ausführlicher beschrieben. Somit kann die Zuverlässigkeitsengine 314 proaktiv zum Beispiel ein Latenzproblem oder ein Fehlerratenproblem in einem HDD erkennen, das sich auf die auf dem Host sichtbare Leistung auswirkt, aber nicht gravierend genug ist, als dass das System das HDD ausfallen lässt. Zum Beispiel weist ein HDD, das konsistent hohe DRP-Niveaus (Data Recovery Procedure-Niveaus) erreicht, wenn es auf einen bestimmten Kopf oder eine bestimmte Medienregion zugreift, oft eine höhere E/A-Abschlusslatenz als seine Peers auf. In dem Erasure-Coding- oder RAIDbasierten System mancher Speichersysteme ist die auf dem Host sichtbare Latenz oft durch die Leistung des langsamsten HDD in dem Datensatz begrenzt. Die Zuverlässigkeitsengine 314 kann die Logik der Systemsteuerung 312 asynchron über eine empfohlene Reparaturoperation für dieses HDD benachrichtigen. Sobald das System es der Zuverlässigkeitsengine 314 erlaubt, eine Reparatur anzugehen, um den Kopf/die Oberfläche mit hoher Latenz zu entfernen, wird die Verschlechterung der auf dem Host sichtbaren Latenz behoben.
-
PROGNOSEWERKZEUG FÜR FESTPLATTENLAUFWERKE: VOLLSTÄNDIGE WIEDERHERSTELLUNGEN PRO STUNDE
-
4 ist ein Flussdiagramm, das ein Verfahren zum Identifizieren von problematischen Festplattenlaufwerken gemäß einer Ausführungsform veranschaulicht. Der Prozess oder die Prozedur von 4 kann zur Ausführung als eine oder mehrere Folgen von Anweisungen implementiert werden, die in einer oder mehreren Speichereinheiten gespeichert sind und die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, die Durchführung des Prozesses bewirken. Zum Beispiel die Folgen von Anweisungen (z. B. Zuverlässigkeitsengine 314, die in Firmware der Systemsteuerung 312 von 3 ausgeführt ist), die in einer oder mehreren Speichereinheiten (z. B. Firmware-inhärentem ROM) gespeichert sind und die, wenn sie von einem oder mehreren Prozessoren (z. B. dem Prozessor 315 der Systemsteuerung 312 von 1) ausgeführt werden, die Durchführung des in 4 veranschaulichten Prozesses bewirken.
-
Weiterhin wird ein vergleichbares Verfahren zum Identifizieren problematischer Festkörperlaufwerke (SSDs), die angesichts der unterschiedlichen Technologien, die einem Festplattenlaufwerk und einem Festkörperlaufwerk zugrunde liegen, geeignet modifiziert sind, in Betracht gezogen. Zum Beispiel liegt bei einem HDD ein Hauptgrund dafür, dass DRP-Schritte auf dem Host sichtbare Latenz hinzufügen, darin, dass die Rotationslatenz auf zusätzliche Umdrehungen der Medien warten muss, um die Operation erneut zu versuchen. Im Gegensatz dazu gibt es im Zusammenhang mit einem SSD keine Rotationslatenz, daher sind ein wesentlicher Faktor, der zu auf dem Host sichtbarer Latenz beiträgt, Szenarien, in denen Host-E/A auf andere vom SSD ausgeführte Aktivitäten warten muss, wie Host-E/A-Anforderungen, die mit Hintergrundaufgaben kollidieren (z. B. Speicherbereinigung, Zellenaktualisierung, Lesestörung usw.), Host-E/A-Anforderungen, die mit anderen Host-E/A-Anforderungen kollidieren, und erhöhte Latenz, die durch nichtflüchtige Speicherkomponenten verursacht wird, die länger brauchen, um Operationen zu programmieren/löschen, da sie aufgrund von Alter und/oder Verschleiß eine Verschlechterung aufweisen. Somit kann eine funktional äquivalente Metrik zu FRPH, aber für SSDs, verwendet werden, um die Variabilität der Latenz (und ebenso Variabilität der QoS (Dienstgüte)) in Speichersystem-SSDs zu quantifizieren.
-
Bei Block 402 wird ein entsprechendes Wiederherstellungsprotokoll von jedem einer Vielzahl von Festplattenlaufwerken abgerufen. Zum Beispiel wird von der Systemsteuerung 312 (3) des Datenspeichersystems 200 (2, 3) ein E6-Protokoll 317 (3) von dem Protokollmodul 310 (3) eines oder mehrerer der Vielzahl von HDDs 304a-304n (3) abgerufen. Ein E6-Protokoll 317 bezieht sich auf eine Implementierung einer binären Datei, die zum Erstellen eines Snapshots des Zustands eines HDD verwendet wird. Ein E6-Protokoll 317 enthält eine große Anzahl (Dutzende) von Unterabschnitten, einschließlich eines Medienfehlerprotokolls, und liegt üblicherweise im Größenbereich (Größenordnung) von 10 MB bis 100 MB, je nachdem, welche „Modi“ (Gruppen von Abschnitten) abgerufen werden. Es gibt auch eine Funktion für ein inkrementelles E6-Protokoll, die nur den „neuen“ Zustand abruft, d. h. seit dem letzten vollständigen oder inkrementellen Abruf. Inkrementelle E6-Protokolle können nur einige MB klein sein, könnten aber bis zur Größe eines vollständigen E6-Protokolls 317 sein. Die Abschnitte eines E6-Protokolls 317 weisen verschiedene Themen/Zwecke auf, einige sind von globaler fester Größe für den Zustand über die „Laufwerkslebensdauer“ und einige wachsen mit der Zeit, wenn sich mehr Laufwerksaktivitäten ansammeln. Einige der Datenelemente des Abschnitts werden für die Lebensdauer des Laufwerks beibehalten und einige werden gewrappt, wobei das HDD autonom ältere Zustände löscht, um zu vermeiden, dass eine Obergrenze für die Größenbegrenzung überschritten wird. Gemäß einer Ausführungsform wird der Medienfehlerprotokoll-Abschnitt des E6-Protokolls 317 nachstehend in diesem Verfahren verwendet, um die folgende FRPH-Metrik (Full Recoveries Per Hour-Metrik) zu berechnen, und wird hierin funktionell als ein „Wiederherstellungsprotokoll“ bezeichnet, da dieser bestimmte Abschnitt des E6-Protokolls 317 die Datenwiederherstellungsschritte (z. B. Suchwiederherstellung, Lesewiederherstellung, Schreibwiederherstellung) aufzeichnet, die von jedem Lese-Schreib-Kopf innerhalb eines entsprechenden HDD durchgeführt werden.
-
Bei Block 404 wird basierend auf jedem jeweiligen Wiederherstellungsprotokoll ein Wert für die als FRPH bezeichnete Metrik für jeden jeweiligen Lese-Schreib-Kopf jedes jeweiligen HDD der Vielzahl von HDDs bestimmt. Zum Beispiel wird der FRPH-Wert wie nachstehend beschrieben für jeden Lese-Schreib-Kopf (z. B. Lese-Schreib-Kopf 110a von 1) jedes des einen oder der mehreren Vielzahl von HDDs 304a-304n basierend auf den bei Block 402 abgerufenen Wiederherstellungsprotokollen berechnet. Ein DRP- oder Wiederherstellungs-„Schritt“ ist eine Aktion, die das HDD dynamisch aufruft, um Daten aus einem Sektor oder Sektoren wiederherzustellen, die nach der Ausführung vorheriger Schritte nicht lesbar waren. Zum Beispiel können Hunderte von möglichen DRP-Schritten für ein HDD/einen Kopf verfügbar sein, die allgemeiner in eine von einer Kategorie für Lese-, Schreib- und Suchwiederherstellungsschritte klassifiziert werden können, wobei höhere Schrittzahlen mehr beteiligte Wiederherstellungsalgorithmen darstellen und daher länger zum Ausführen benötigen als niedrigere DRP-Schrittzahlen.
-
Gemäß einer Ausführungsform ist eine „vollständige Wiederherstellung“ die Ausführung aller möglichen DRP-Schritte. Wenn eine vollständige Wiederherstellung nicht erfolgreich ist, empfängt der Host einen harten Fehler, der angibt, dass die Daten nicht übertragen werden konnten.
-
Bei Block 404a wird die Zeitdauer, die der Kopf mit allen Wiederherstellungsschritten verbringt, die von dem Kopf durchgeführt werden, über eine bestimmte Zeitdauer, d. h. den Bewertungszeitraum, summiert. Zum Beispiel wird das relevante Wiederherstellungsprotokoll analysiert, und der Schweregrad (mit jedem „Typ“ oder jeder „Ebene“ des Wiederherstellungsschritts verbrachte Zeit) aller Wiederherstellungsschritte, die von jedem HDD-Kopf durchgeführt werden (z. B. aus dem HDD-Medienfehlerprotokoll-Abschnitt des E6-Protokolls 317), wird als ein nicht einschränkendes Beispiel über die letzten 300 Stunden Betriebszeit summiert. Gemäß einer Ausführungsform ist der Bewertungszeitraum ein einrichtbarer Parameter, der ein beliebiges Zeitfenster erlaubt, über das die Wiederherstellungsschritte analysiert werden können. Konzeptionell bedeutet eine vollständige Wiederherstellung, dass alle Wiederherstellungsschritte für ein Wiederherstellungsereignis ausgeführt worden sind, wobei eine höhere Anzahl erforderlicher Wiederherstellungsschritte angibt, dass ein Problem relativ schwerer ist und die Datenwiederherstellung umso mehr Zeit dauern würde. Gemäß einer Ausführungsform ist jedoch zu algorithmischen Zwecken eine „vollständige Wiederherstellung“ als einer vorbestimmten Zeitdauer entsprechend, die der Kopf mit einem oder mehreren Wiederherstellungsschritten verbringt, charakterisiert. Gemäß einer Ausführungsform wird eine vollständige Wiederherstellung als etwa 2,5 Sekunden Echtzeit festgelegt, die von einem Kopf mit einem oder mehreren Wiederherstellungsschritten verbracht wird. Wie jedoch eine vollständige Wiederherstellung zu algorithmischen Zwecken charakterisiert ist, kann von Implementierung zu Implementierung variieren. Somit wird für jede vorbestimmte Zeitdauer (z. B. 2,5 Sekunden Echtzeit), die der Kopf mit Wiederherstellungsschritten verbringt, eine „vollständige Wiederherstellung“ gezählt. Bezüglich des Schweregrads der Wiederherstellungsschritte gibt es, wie in Bezug auf ein beispielhaftes System erörtert, Hunderte von möglichen DRP-Wiederherstellungsschritten, wobei höhere Schrittzahlen mehr beteiligte, komplexe Wiederherstellungsalgorithmen darstellen, die daher länger zum Ausführen benötigen als niedrigere DRP-Schrittzahlen. Weiterhin werden die Wiederherstellungsschritte in Gruppen von ähnlicher Komplexität und somit ähnlicher Ausführungszeit klassifiziert. Zum Beispiel können eintausend „Schritt 4“-Wiederherstellungsschritte zeitlich einhundert „Schritt 8“-Wiederherstellungsschritten entsprechen.
-
Deshalb wird bei Block 404b eine äquivalente Anzahl von vollständigen Wiederherstellungen über die bestimmte Zeitdauer bestimmt. Unter Bezugnahme auf die vorstehenden Beispiele legt die Anzahl von 2,5-Sekunden-Zeiteinheiten, die ein Kopf mit Wiederherstellungsschritten über einen Bewertungszeitraum von 300 Stunden verbringt, die Anzahl von vollständigen Wiederherstellungen für diesen Kopf fest. Dann wird bei Block 404c basierend auf der Anzahl der angefallenen vollständigen Wiederherstellungen und der bestimmten bewerteten Zeitdauer der FRPH-Wert für den Kopf bestimmt, der darstellt, wie viel DRP-Wiederherstellungszeit (z. B. in Einheiten der Zeit, die eine vollständige Wiederherstellung maximaler Länge benötigt) jeder Kopf pro Stunde durchschnittlich, zum Beispiel gemittelt über die letzten 300 Stunden, verbracht hat. Somit werden bei Block 404 die Blöcke 404a-404c für jeden Kopf von jedem zu bewertenden HDD 304a-304n iteriert. Weiterhin wird FRPH berechnet, indem das Wiederherstellungsprotokoll untersucht wird, um jeden E/A zu identifizieren, der etwaige Wiederherstellungsschritte erforderte, und dann eine Schätzung der Gesamtzeit zum Durchführen aller für diesen E/A verwendeten Wiederherstellungsschritte aufsummiert wird, und die FRPH-Metrik wird für jeden der Köpfe in dem HDD separat berechnet.
-
Die Berechnung der FRPH-Metrikwerte bei Block 404 kann implementiert werden, indem das Wiederherstellungsprotokoll über den Bewertungszeitraum analysiert wird, wobei die Gesamtzahl der Male summiert wird, die jeder Kopf in jedem der Hunderten von DRP-Wiederherstellungsschritten verbracht hat, was effektiv ein Histogramm ergeben würde, das die Anzahl der Aufrufe jedes Wiederherstellungsschritts/jeder Wiederherstellungsebene pro Kopf aufzeichnet. Für jeden Wiederherstellungsschritt kann ein konstanter Zeitwert, der schätzt, wie lange das Durchführen dieses bestimmten Wiederherstellungsschritts dauert, mit den jeweiligen Aufrufen für diesen Wiederherstellungsschritt multipliziert werden, was die gesamte in einem beliebigen Wiederherstellungsschritt verbrachte Zeitdauer pro Kopf ergeben würde. Die gesamte in allen Wiederherstellungsschritten verbrachte Zeitdauer kann durch den Bewertungszeitraum (z. B. 300 Stunden) dividiert werden, was die durchschnittliche Zeit pro Stunde, die in einem beliebigen Wiederherstellungsschritt verbracht wurde, pro Kopf ergeben würde. Die durchschnittliche Zeit pro Stunde, die in allen Wiederherstellungsschritten verbracht wurde, kann normalisiert werden, indem die Zeit, die für eine vollständige Wiederherstellung festgelegt wird (z. B. das Äquivalent einer „vollständigen Wiederherstellung“ von 2,5 Sekunden), dividiert wird, was den FRPH-Wert, normalisiert auf den Bewertungszeitraum, ergeben würde, wobei ein FRPH-Wert von eins bedeuten würde, dass im Durchschnitt jede Stunde (z. B. über den letzten 300-Stunden-Bewertungszeitraum) der Kopf die Zeit verbrachte, die zum Durchführen einer vollständigen Wiederherstellung in einem Wiederherstellungsbetriebsmodus benötigt wird.
-
Bei Block 406 wird als Reaktion darauf, dass ein bestimmter Kopf-FRPH einen vorbestimmten FRPH-Schwellenwert erreicht, eine In-Situ-Reparatur für das HDD, in dem der bestimmte Kopf arbeitet, bestimmt. Zum Beispiel und gemäß einer Ausführungsform wird ein HDD mit einem oder mehreren Köpfen mit einem FRPH-Wert von eins (z. B. dem Schwellenwert) oder höher über die bestimmte Zeitdauer (z. B. den 300-Stunden-Bewertungszeitraum) als ein problematisches HDD, d. h. wahrscheinlich „still“ ausfallend, identifiziert. Außerdem kann die FRPH-Metrik Clients für Abfragen verfügbar gemacht werden, wie über eine RESTful-API (Representational State Transfer Application Program Interface), wobei der Client entscheiden würde, ob der FRPH-Wert eine Eindämmungsaktion rechtfertigt und falls ja, selbst eine solche Aktion einleiten müsste.
-
Gemäß einer Ausführungsform wird, wenn ein HDD 304a-304n einen oder mehrere Köpfe mit einem FRPH größer oder gleich eins aufweist, der Kopf mit dem höchsten FRPH in diesem problematischen HDD identifiziert, und ein „Head Depop“ (Kopfdepopulation) wird an diesem Kopf durchgeführt, d. h. der Kopf wird (z. B. für die Systemsteuerung 312 und/oder für die HDD-Steuerung 308) als ungeeignet für die Verwendung in weiteren E/A-Operationen klassifiziert, für eine weitere Verwendung/einen weiteren Betrieb effektiv deaktiviert. Alternativ kann gemäß einer Ausführungsform ein ansonsten störendes HDD auf seine aktuelle Kapazität umformatiert werden. Zum Beispiel kann in einem Szenario, in dem ein oder mehrere Köpfe bereits in einer vorherigen Reparaturoperation depopuliert wurden und die Entscheidung getroffen wurde, einen anderen Kopf zu diesem Zeitpunkt nicht zu depopulieren, das HDD unter Berücksichtigung der reduzierten Kapazität entsprechend den zuvor depopulierten Köpfen auf seine aktuelle Kapazität umformatiert werden. Weiterhin und gemäß einer Ausführungsform, da aus dem Medienfehlerprotokoll ermittelt werden kann, wie viele und welche problematischen Medienregionen zu dem FRPH-Wert beigetragen haben, beinhaltet eine andere Reparaturoption das zwangsweise Aussparen der störenden Medienregion(en) (z. B. Markieren der Region(en), die für weitere E/As nicht verfügbar sind), anstatt eine längere und komplexere Umformatierung oder Depop-Reparatur vorzunehmen.
-
INTELLIGENTE ZUVERLÄSSIGKEITSSCHEMATA AUF SYSTEMEBENE
-
Historische Speichersysteme können Speichervorrichtungen aufweisen, die autonome, unabhängig entworfene Diagnose- und Vorrichtungszuverlässigkeitsschemata aufweisen, was zu verringerter Effizienz und Effektivität im gesamten Speichersystem führen kann. Im Gegensatz dazu kann eine erweiterte ganzheitliche Sicht der operativen Funktionalität auf und zwischen unterschiedlichen Speichervorrichtungen, die in einem gesamten Speichersystem verteilt sind, zu einem effizienteren und zuverlässigeren Gesamtsystem führen.
-
Die Datenspeichervorrichtungen, wie die HDDs 304a-304n (3), die Bestandteil eines Datenspeichersystems 200 (2 und 3) sind, können als empfindliche Sensoren für Faktoren angesehen werden, welche die mit jeder DSD verbundene Datenintegrität und Zuverlässigkeit beeinflussen können, wie Temperatur, Luftstrom, Vibration und dergleichen im Zusammenhang mit HDDs sowie Alter, Speicherzyklen und dergleichen im Zusammenhang mit SSDs. Weiterhin können die HDDs 304a-304n Informationsquellen im Hinblick auf Positionsfehlersignale (PES) und die dazu beitragenden Faktoren, DRP-Wiederherstellungsoperationen und dergleichen sein, die einem bestimmten Kopf oder einer bestimmten Medienregion entsprechen. Daher können Datenintegritäts- und -wiederherstellungsinformationen, die jedem DSD intern bekannt sein können, und Kombinationen davon, wenn sie an eine Systemsteuerung, wie die Steuerung 312 (3), weitergegeben werden, eine kostengünstige, aber wertvolle erweiterte Sicht auf die Symptome der Datenverschlechterung auf Vorrichtungsebene zur Verwendung als fundierter und effizienter Diagnose-, Prognose- und Reparatur-Kontrollpunkt auf Systemebene bereitstellen. Möglicherweise sind auch zusätzliche Informationen über die DSDs auf Systemebene verfügbar, z. B. für die Systemsteuerung 312 verfügbar, die zu einer intelligenten, prädiktiven Entscheidungsfindung auf Systemebene beitragen können und/oder kombiniert werden können, um hierzu beizutragen. Zum Beispiel können der Systemsteuerung im Zusammenhang mit HDDs Informationen, wie der Formfaktor der Speichervorrichtung, die Anzahl der Festplatten (und/oder Aktuatoren), die Drehzahl (Umdrehung pro Minute) der Festplatten und andere übliche Variationen zwischen HDD-Modellen und möglicherweise auch die Position jeder Speichervorrichtung innerhalb eines bestimmten Regals und innerhalb des System-Racks (z. B. des Racks 202 von 2), relative Nähe zu Lüftern, Lüfterdrehzahl, relative Nähe zu Wärmequellen und andere Faktoren außerhalb jeder Vorrichtung bekannt gemacht werden. Es ist zu beachten, dass die HDDs 304a-304n sowie die Systemsteuerung 312 so programmiert sein können, dass sie im Laufe der Zeit „lernen“. Daher sind Faktoren, welche die mit jedem HDD verbundene Datenzuverlässigkeit beeinflussen können, unter Umständen nicht statisch, d. h., solche Faktoren (und darauf basierende Reparaturentscheidungen) können im Laufe der Zeit dynamisch sein.
-
Die hierin beschriebene HDD-Überwachung-Diagnose/Prognose-Reparatur ist ihrer Regelkreis-Natur nach in der Lage, kontinuierlich HDD-Protokolle zu überwachen, Metriken zu berechnen, die das Verhalten dieses einen HDD zeigen, und dann die Metriken jedes HDD mit denen seiner Peers zu vergleichen, um eine „Bestanden/Nicht bestanden“-Bestimmung zu treffen. Es ist zu beachten, dass Ereignisprotokolle jedes HDD verwendet werden, um die Metriken jedes HDD zu berechnen, wobei jedes HDD nur Kenntnis von sich selbst hat. Hier kann das System viele HDDs, die Metriken wert sind, sehen und die Metriken eines HDD mit den Metriken der Peers des HDD vergleichen, wobei die Definition von Peer variabel sein kann, z. B. nach ähnlichem Modelltyp, Firmware-Revision und sogar nach dem Anwendungsfall für das HDD innerhalb des Racks. In ähnlicher Weise wird bei der Berechnung jeder FRPH-Metrik nur die Integrität der Köpfe auf einem Laufwerk bewertet. Der Diagnose-Host kann jedoch den Schwellenwert dafür festlegen, welcher Wert der FRPH-Metrik ein Bestanden oder ein Nicht bestanden darstellt, indem berücksichtigt wird, wie außergewöhnlich die FRPH-Metrikbewertung jedes Laufwerks im Hinblick auf das größere Ökosystem ist, das für den Diagnose-Host sichtbar ist. Zum Beispiel und gemäß einer Ausführungsform kann der Schwellenwert für Bestanden/Nicht bestanden (d. h. der FRPH-Schwellenwert) auf einen Wert festgelegt werden, der gleich zwei oder drei Standardabweichungen über dem durchschnittlichen (oder mittleren) FRPH-Wert des Rests der Implementierung ist.
-
KONFIGURATION DES FESTPLATTENLAUFWERKS
-
Wie erörtert, können Ausführungsformen im Zusammenhang mit einem Datenspeichersystem verwendet werden, in dem mehrere Datenspeichervorrichtungen (DSDs), wie HDDs, eingesetzt werden. Somit ist gemäß einer Ausführungsform eine Draufsicht, die ein HDD 100 veranschaulicht, in 1A gezeigt, um beispielhafte Betriebskomponenten zu veranschaulichen.
-
1A veranschaulicht die funktionale Anordnung von Komponenten des HDD 100, einschließlich eines Gleiters 110b, der einen magnetischen Lese-Schreib-Kopf 110a einschließt. Zusammenfassend können der Gleiter 110b und der Kopf 110a als Kopfgleiter bezeichnet werden. Das HDD 100 schließt mindestens eine Kopf-Kardan-Anordnung (HGA) 110 ein, die den Kopfgleiter, eine an dem Kopfgleiter üblicherweise über eine Biegung befestigte Führungsaufhängung 110c und einen Lastbalken 110d, der an der Führungsaufhängung 110c befestigt ist, einschließt. Das HDD 100 schließt auch mindestens ein Aufzeichnungsmedium 120, das drehbar an einer Spindel 124 montiert ist, und einen Antriebsmotor (nicht sichtbar), der an der Spindel 124 befestigt ist, um das Medium 120 zu drehen, ein. Der Lese-Schreib-Kopf 110a, der auch als ein Wandler bezeichnet werden kann, schließt ein Schreibelement und ein Leseelement zum jeweiligen Schreiben und Lesen von Informationen ein, die auf dem Medium 120 des HDD 100 gespeichert sind. Das Medium 120 oder eine Vielzahl von Plattenmedien kann mit einer Plattenklemme 128 an der Spindel 124 befestigt werden.
-
Das HDD 100 schließt weiterhin einen Arm 132, der an der HGA 110 befestigt ist, einen Schlitten 134, einen Schwingspulenmotor (VCM), der einen Anker 136 einschließlich einer Schwingspule 140, die an dem Schlitten 134 befestigt ist, einschließt, und einen Stator 144 einschließlich eines Schwingspulenmagneten (nicht sichtbar) ein. Der Anker 136 des VCM ist an dem Schlitten 134 befestigt und so eingerichtet, dass er den Arm 132 und die HGA 110 bewegt, um auf Abschnitte des Mediums 120 zuzugreifen, die alle gemeinsam auf einem Drehzapfen 148 mit einer dazwischen angeordneten Drehlageranordnung 152 montiert sind. Im Fall eines HDD mit mehreren Festplatten kann der Schlitten 134 als „E-Block“ oder Kamm bezeichnet werden, da der Schlitten so angeordnet ist, dass er eine verbundene Reihe von Armen trägt, die ihm das Aussehen eines Kamms verleihen.
-
Eine Anordnung, umfassend eine Kopf-Kardan-Anordnung (z. B. die HGA 110) einschließlich einer Biegung, mit welcher der Kopfgleiter gekoppelt ist, einen Betätigungsarm (z. B. den Arm 132) und/oder Lastbalken, mit dem die Biegung gekoppelt ist, und einen Aktuator (z. B. den VCM), mit dem der Betätigungsarm gekoppelt ist, kann zusammenfassend als Kopfstapelanordnung (HSA) bezeichnet werden. Eine HSA kann jedoch mehr oder weniger Komponenten als die beschriebenen einschließen. Zum Beispiel kann sich eine HSA auf eine Anordnung beziehen, die weiterhin elektrische Verbindungskomponenten einschließt. Im Allgemeinen ist eine HSA die zum Bewegen des Kopfgleiters eingerichtete Anordnung, um auf Teile des Mediums 120 für Lese- und Schreibvorgänge zuzugreifen.
-
Mit weiterer Bezugnahme auf 1 werden elektrische Signale (z. B. Strom zu der Schwingspule 140 des VCM), die ein Schreibsignal zum und ein Lesesignal vom Kopf 110a aufweisen, über eine flexible Kabelanordnung (FCA) 156 (oder „flexibles Kabel“) übertragen. Die Verbindung zwischen dem flexiblen Kabel 156 und dem Kopf 110a kann ein Arm-Elektronik-Modul (AE-Modul) 160 einschließen, das einen integrierten Vorverstärker für das Lesesignal sowie andere elektronische Komponenten des Lesekanals und Schreibkanals aufweisen kann. Das AE-Modul 160 kann wie gezeigt an dem Schlitten 134 befestigt sein. Das flexible Kabel 156 kann mit einem elektrischen Verbinderblock 164 gekoppelt sein, der in einigen Konfigurationen eine elektrische Verbindung durch eine elektrische Durchführung bereitstellt, die durch ein HDD-Gehäuse 168 bereitgestellt wird. Das HDD-Gehäuse 168 (oder „Gehäusebasis“ oder „Basisplatte“ oder einfach „Basis“) in Verbindung mit einer HDD-Abdeckung stellt ein halb abgedichtetes (oder in einigen Konfigurationen hermetisch abgedichtetes) Schutzgehäuse für die Informationsspeicherkomponenten des HDD 100 bereit.
-
Andere elektronische Komponenten, einschließlich einer Festplattensteuerung und Servoelektronik mit einem digitalen Signalprozessor (DSP), stellen elektrische Signale an den Antriebsmotor, die Schwingspule 140 des VCM und den Kopf 110a der HGA 110 bereit. Das dem Antriebsmotor bereitgestellte elektrische Signal ermöglicht es dem Antriebsmotor, sich zu drehen und ein Drehmoment für die Spindel 124 bereitzustellen, das wiederum auf das Medium 120 übertragen wird, das an der Spindel 124 befestigt ist. Dadurch dreht sich das Medium 120 in eine Richtung 172. Das sich drehende Medium 120 erzeugt ein Luftpolster, das als Luftlager wirkt, auf dem die Luftlagerfläche (ABS) des Gleiters 110b läuft, sodass der Gleiter 110b über der Oberfläche des Mediums 120 fliegt, ohne mit einer dünnen Magnetaufzeichnungsschicht in Kontakt zu kommen, in der Informationen aufgezeichnet werden. In ähnlicher Weise erzeugt bei einem HDD, bei dem ein leichteres Gas als Luft genutzt wird, wie Helium als ein nicht einschränkendes Beispiel, das sich drehende Medium 120 ein Gaskissen, das als Gas- oder Fluidlager wirkt, auf dem der Gleiter 110b läuft.
-
Das elektrische Signal, das an die Schwingspule 140 des VCM bereitgestellt wird, ermöglicht es dem Kopf 110a der HGA 110, auf eine Spur 176 zuzugreifen, auf der Informationen aufgezeichnet werden. Somit schwingt der Anker 136 des VCM durch einen Bogen 180, wodurch der Kopf 110a der HGA 110 auf verschiedene Spuren auf dem Medium 120 zugreifen kann. Informationen werden auf das Medium 120 in einer Vielzahl von radial ineinander geschachtelten Spuren in Sektoren auf dem Medium 120, wie Sektor 184, gespeichert. Entsprechend besteht jede Spur aus einer Vielzahl von sektorierten Spurabschnitten (oder „Spursektor“), wie einem sektorierten Spurabschnitt 188. Jeder sektorierte Spurabschnitt 188 kann aufgezeichnete Informationen und einen Header mit Fehlerkorrekturcode-Informationen und ein Servo-Burst-Signalmuster, wie ein ABCD-Servo-Burst-Signalmuster, das Informationen sind, welche die Spur 176 identifizieren, einschließen. Beim Zugreifen auf die Spur 176 liest das Leseelement des Kopfs 110a der HGA 110 das Servo-Burst-Signalmuster, das der Servoelektronik ein Positions-Fehlersignal (PES) bereitstellt, welches das der Schwingspule 140 des VCM bereitgestellte elektrische Signal steuert und somit dem Kopf 110a ermöglicht, der Spur 176 zu folgen. Nach dem Finden der Spur 176 und dem Identifizieren eines bestimmten sektorierten Spurabschnitts 188 liest der Kopf 110a entweder Informationen aus der Spur 176 oder schreibt Informationen auf die Spur 176 in Abhängigkeit von Anweisungen, welche die Plattensteuerung von einem externen Agenten, zum Beispiel einem Mikroprozessor eines Computersystems, empfängt.
-
Die elektronische Architektur eines HDD weist zahlreiche elektronische Komponenten zur Durchführung ihrer jeweiligen Funktionen zum Betrieb eines HDD auf, wie eine Festplattensteuerung („HDC“), eine Schnittstellensteuerung, ein Arm-Elektronik-Modul, einen Datenkanal, einen Motortreiber, einen Servoprozessor, Pufferspeicher usw. Zwei oder mehr solcher Komponenten können auf einer einzigen integrierten Leiterplatte kombiniert werden, die als „System-on-a-Chip“ („SOC“) bezeichnet wird. Einige, wenn nicht alle, solcher elektronischer Komponenten sind üblicherweise auf einer gedruckten Leiterplatte angeordnet, die mit der Unterseite eines HDD, wie mit dem HDD-Gehäuse 168, gekoppelt ist.
-
Bezugnahmen hierin auf ein Festplattenlaufwerk, wie das HDD 100, das unter Bezugnahme auf 1 veranschaulicht und beschrieben ist, können eine Informationsspeichervorrichtung umfassen, die manchmal als „Hybridantrieb“ bezeichnet wird. Ein Hybridantrieb bezieht sich allgemein auf eine Speichervorrichtung mit der Funktionalität von sowohl einem herkömmlichen HDD (siehe z. B. die HDD 100) kombiniert mit einer Festkörperspeichervorrichtung (SSD) unter Verwendung eines nichtflüchtigen Speichers, wie eines Flash-Speichers oder eines anderen Festkörperspeichers (z. B. integrierte Schaltungen), der elektrisch löschbar und programmierbar ist. Da sich Betrieb, Verwaltung und Steuerung der verschiedenen Arten von Speichermedien in der Regel unterscheiden, kann der Festkörperabschnitt eines Hybridantriebs seine eigene entsprechende Steuerungsfunktionalität einschließen, die zusammen mit der HDD-Funktionalität in eine einzige Steuerung integriert werden kann. Ein Hybridantrieb kann so konzipiert und eingerichtet sein, dass er den Festkörperabschnitt auf verschiedene Weise betreibt und nutzt, z. B. als nicht einschränkende Beispiele, indem er den Festkörperspeicher als Cache-Speicher, zum Speichern häufig abgerufener Daten, zum Speichern E/A-intensiver Daten und dergleichen verwendet. Weiterhin kann ein Hybridlaufwerk im Wesentlichen als zwei Speichervorrichtungen in einem einzigen Gehäuse konzipiert und eingerichtet sein, d. h. ein traditionelles HDD und ein SSD, mit entweder einer oder mehreren Schnittstellen für die Hostverbindung.
-
KONFIGURATION DES FESTKÖRPERLAUFWERKS
-
Wie erörtert, können Ausführungsformen im Zusammenhang mit einem Datenspeichersystem verwendet werden, in dem mehrere Datenspeichervorrichtungen (DSDs), wie SSDs, eingesetzt werden. Somit ist 1B ein Blockdiagramm, das einen beispielhaften Betriebskontext veranschaulicht, mit dem Ausführungsformen der Erfindung implementiert werden können. 1B veranschaulicht eine generische SSD-Architektur 150 mit einem SSD 152, der über eine primäre Kommunikationsschnittstelle 156 kommunikativ mit einem Host 154 gekoppelt ist. Ausführungsformen sind nicht auf eine Konfiguration beschränkt, wie sie in 1B dargestellt ist, vielmehr können Ausführungsformen mit anderen SSD-Konfigurationen als den in 1B veranschaulichten implementiert werden. Zum Beispiel können Ausführungsformen implementiert werden, um in anderen Umgebungen zu arbeiten, die sich zum Schreiben und Lesen von Daten auf nichtflüchtige Speicherkomponenten stützen.
-
Der Host 154 stellt grob jede Art von Computerhardware, -software oder -firmware (oder eine beliebige Kombination der Vorstehenden) dar, die unter anderem Daten-E/A-Anforderungen oder -Aufrufe an eine oder mehrere Speichervorrichtungen vornimmt. Zum Beispiel kann der Host 154 ein Betriebssystem sein, das auf einem Computer, einem Tablet, einem Mobiltelefon oder allgemein einem beliebigen Typ von Rechenvorrichtung ausgeführt wird, die Speicher enthält oder mit einem solchen zusammenwirkt, wie dem Host 350 (3). Die primäre Schnittstelle 156, die den Host 154 mit der SSD 152 koppelt, kann zum Beispiel der interne Bus eines Speichersystems oder ein Kommunikationskabel oder eine drahtlose Kommunikationsverbindung oder dergleichen sein.
-
Das in 1B veranschaulichte beispielhafte SSD 152 schließt eine Schnittstelle 160, eine Steuerung 162 (z. B. eine Steuerung mit darin enthaltener Firmware-Logik), einen Funktionsblock zur Adressierung 164, einen Datenpuffer-Cache 166 und eine oder mehrere nichtflüchtige Speicherkomponenten 170a, 170b-170n ein.
-
Die Schnittstelle 160 ist in diesem Zusammenhang ein Interaktionspunkt zwischen Komponenten, nämlich dem SSD 152 und dem Host 154, und ist sowohl auf Hardware- als auch auf Softwareebene anwendbar. Dies ermöglicht einer Komponente die Kommunikation mit anderen Komponenten über ein Eingabe-/Ausgabe-System (E/A-System) und ein zugehöriges Protokoll. Eine Hardwareschnittstelle wird in der Regel durch die mechanischen, elektrischen und logischen Signale an der Schnittstelle und das Protokoll zu deren Sequenzierung beschrieben. Einige nicht einschränkende Beispiele für übliche und standardmäßige Schnittstellen schließen SCSI (Small Computer System Interface), SAS (Serial Attached SCSI) und SATA (Serial ATA) ein.
-
Ein SSD 152 schließt eine Steuerung 162 ein, welche die Elektronik enthält, welche die nichtflüchtigen Speicherkomponenten (z. B. NAND-Flash) zum Host, wie den nichtflüchtigen Speicher 170a, 170b, 170n zu dem Host 154, überbrückt. Die Steuerung ist üblicherweise ein eingebetteter Prozessor, der Code auf Firmware-Ebene ausführt, und ist ein wichtiger Faktor für die SSD-Leistung.
-
Die Steuerung 162 ist über einen Funktionsblock zur Adressierung 164 mit dem nichtflüchtigen Speicher 170a, 170b, 170n über eine Schnittstelle verbunden. Die Funktion zur Adressierung 164 wird zum Beispiel betrieben, um Zuordnungen zwischen logischen Blockadressen (LBAs) von dem Host 154 zu einer entsprechenden physischen Blockadresse auf dem SSD 152, nämlich auf dem nichtflüchtigen Speicher 170a, 170b, 170n des SSD 152, zu verwalten. Da die nichtflüchtige Speicherseite und die Hostsektoren unterschiedlich groß sind, muss ein SSD eine Datenstruktur aufbauen und verwalten, die es ihm ermöglicht, zwischen dem Host, der Daten in einen Sektor schreibt oder Daten aus einem Sektor liest, und der physischen nichtflüchtigen Speicherseite, auf der diese Daten tatsächlich platziert sind, zu übersetzen. Diese Tabellenstruktur oder „Zuordnung“ kann für eine Sitzung in dem flüchtigen Speicher 172 des SSD, wie DRAM oder eine andere lokale flüchtige Speicherkomponente, auf welche die Steuerung 162 und die Adressierung 164 zugreifen können, erstellt und verwaltet werden. Alternativ kann die Tabellenstruktur über Sitzungen im nichtflüchtigen Speicher des SSD, wie dem nichtflüchtigen Speicher 170a, 170b-170n, dauerhafter beibehalten werden.
-
Die Adressierung 164 interagiert zusätzlich zum nichtflüchtigen Speicher 170a, 170b-170n mit dem Datenpuffer-Cache 166. Der Datenpuffer-Cache 166 eines SSD 152 verwendet in der Regel DRAM als Cache, ähnlich dem Cache in Festplattenlaufwerken. Der Datenpuffer-Cache 166 dient als Puffer oder Staging-Bereich für die Übertragung von Daten zu und von den nichtflüchtigen Speicherkomponenten sowie als Cache zum Beschleunigen zukünftiger Anforderungen für die zwischengespeicherten Daten. Der Datenpuffer-Cache 166 wird in der Regel mit einem flüchtigen Speicher implementiert, sodass die darin gespeicherten Daten nicht dauerhaft im Cache gespeichert sind, d. h. die Daten sind nicht persistent.
-
Schließlich enthält der SSD 152 eine oder mehrere nichtflüchtige Speicherkomponenten 170a, 170b-170n. Als ein nicht einschränkendes Beispiel können die nichtflüchtigen Speicherkomponenten 170a, 170b-170n als Flash-Speicher (z. B. NAND- oder NOR-Flash) oder andere Typen von Festkörperspeicher implementiert werden, die gegenwärtig oder in der Zukunft verfügbar sind. Die nichtflüchtigen Speicherkomponenten 170a, 170b-170n sind die tatsächlichen elektronischen Speicherkomponenten, auf denen Daten persistent gespeichert sind. Die nichtflüchtigen Speicherkomponenten 170a, 170b-170n des SSD 152 können als analog zu den Festplatten in Festplattenlaufwerkspeichervorrichtungen (HDD-Speichervorrichtungen) angesehen werden.
-
Weiterhin können hierin enthaltene Bezugnahmen auf eine Datenspeichervorrichtung eine Multimedium-Speichervorrichtung (oder eine „Multimedium-Vorrichtung“, die manchmal als „Multi-Tier-Vorrichtung“ oder „Hybrid-Laufwerk“ bezeichnet werden kann) umfassen. Eine Multimedium-Speichervorrichtung bezieht sich allgemein auf eine Speichervorrichtung mit der Funktionalität von sowohl einem herkömmlichen HDD (siehe z. B. den HDD 100) kombiniert mit einem SSD (siehe z. B. den SSD 150) unter Verwendung eines nichtflüchtigen Speichers, wie eines Flash-Speichers oder eines anderen Festkörperspeichers (z. B. integrierte Schaltungen), der elektrisch löschbar und programmierbar ist. Da sich Betrieb, Verwaltung und Steuerung der verschiedenen Arten von Speichermedien in der Regel unterscheiden, kann der Festkörperabschnitt eines Hybridantriebs seine eigene entsprechende Steuerungsfunktionalität einschließen, die zusammen mit der HDD-Funktionalität in eine einzige Steuerung integriert werden kann. Eine Multimedium-Speichervorrichtung kann so konzipiert und eingerichtet sein, dass sie den Festkörperabschnitt auf verschiedene Weise betreibt und nutzt, wie als nicht einschränkende Beispiele, indem sie den Festkörperspeicher als Cache-Speicher, zum Speichern häufig abgerufener Daten, zum Speichern E/A-intensiver Daten, zum Speichern von Metadaten, die Nutzlastdaten entsprechen (z. B. zur Unterstützung beim Decodieren der Nutzlastdaten) und dergleichen verwendet. Weiterhin kann eine Multimedium-Speichervorrichtung im Wesentlichen als zwei Speichervorrichtungen in einem einzigen Gehäuse konzipiert und eingerichtet sein, d. h. ein traditionelles HDD und ein SSD, mit entweder einer oder mehreren Schnittstellen für die Hostverbindung.
-
ERWEITERUNGEN UND ALTERNATIVEN
-
In der vorangehenden Beschreibung wurden Ausführungsformen der Erfindung unter Bezugnahme auf zahlreiche spezifische Details beschrieben, die von Implementierung zu Implementierung variieren können. Daher können verschiedene Modifikationen und Änderungen daran vorgenommen werden, ohne von dem breiteren Geist und Schutzumfang der Ausführungsformen abzuweichen. Somit ist der einzige und ausschließliche Indikator für das, was die Erfindung ist und von dem Anmelder bzw. den Anmeldern als Erfindung bezeichnet wird, die Reihe von Ansprüchen, die aus dieser Anmeldung hervorgehen, in der spezifischen Form, in der diese Ansprüche hervorgehen, einschließlich einer späteren Korrektur. Alle hierin ausdrücklich dargelegten Definitionen für Begriffe, die in solchen Ansprüchen enthalten sind, regeln die Bedeutung dieser in den Ansprüchen verwendeten Begriffe. Daher sollte keine Einschränkung, kein Element, keine Eigenschaft, kein Merkmal, kein Vorteil oder Attribut, das nicht ausdrücklich in einem Anspruch angegeben wird, den Schutzumfang eines solchen Anspruchs in irgendeiner Weise einschränken. Die Beschreibung und die Zeichnungen sind demgemäß in einem veranschaulichenden und nicht in einem einschränkenden Sinn zu betrachten.
-
Außerdem können in dieser Beschreibung bestimmte Prozessschritte in einer bestimmten Reihenfolge dargelegt sein, und alphabetische und alphanumerische Bezugszeichen können verwendet werden, um bestimmte Schritte zu identifizieren. Sofern in der Beschreibung nicht ausdrücklich angegeben, sind Ausführungsformen nicht unbedingt auf eine bestimmte Reihenfolge der Ausführung solcher Schritte beschränkt. Insbesondere dienen die Bezugszeichen lediglich der bequemen Identifizierung von Schritten und sind nicht dazu bestimmt, eine bestimmte Reihenfolge der Ausführung solcher Schritte anzugeben oder zu erfordern.