-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf Speichersysteme innerhalb von Computersystemen und im engeren Sinne auf ein hybrides Speicherteilsystem, das mehrere Typen von Einheiten beinhaltet, in denen Dateiinhalte auf die Einheitentypen verteilt sind.
-
HINTERGRUND
-
In Computerspeicher-Teilsystemen werden aufgrund unterschiedlicher Latenzzeiten in den Speichereinheiten selbst häufig mehrere Speicherhierarchieebenen bereitgestellt. Cachespeicher stellen einen schnellen Zugriff auf Daten für Prozessoren bereit, während ein Hauptsystemspeicher üblicherweise einen größeren Speicher mit längeren Latenzzeiten bereitstellt. Festplattenlaufwerk(HDD)-Systeme, die im Allgemeinen mithilfe von Magnetspeichertechnologien realisiert werden, stellen einen Zusatzspeicher für einen Hauptsystemspeicher bereit, der eine noch längere Latenzzeit und üblicherweise eine größere Kapazität aufweist. Dateizugriffe auf HDD-Laufwerksysteme werden jedoch an die HDD-Ebene gerichtet. Die HDD-Ebene kann über ihren eigenen Cachespeicher verfügen, der einen Abschnitt einer Datei zwischenspeichert, die gesamte Datei befindet sich jedoch auf dem HDD, und die gesamte Datei oder ein Abschnitt davon wird zwischengespeichert, wenn häufig auf sie zugegriffen wird, nachdem der erste Zugriff erfolgt ist.
-
In letzter Zeit haben aus nichtflüchtigen Halbleiterspeichern erstellte Halbleiterlaufwerke (solid-state drives, SSDs) Zuverlässigkeitsniveaus, Kapazitäten und Kosten erreicht, durch die ihre Verwendung als Ersatz für HDDs zweckmäßig wird. Es sind hybride SSD/HDD-Speichersysteme vorgeschlagen und realisiert worden, bei denen Dateien, auf die häufig zugegriffen wird, auf SSDs gespeichert werden, während Dateien, bei denen Zugriffsanforderungen weniger häufig sind, auf HDDs gespeichert werden. Eine solche Vorgehensweise berücksichtigt jedoch nicht den dynamischen Charakter der Zugriffshäufigkeit auf Dateisysteme aufgrund verschiedener Anwendungen und Betriebssysteme, die ein Speichersystem über einen bestimmten Zeitraum nutzen können.
-
Andere Techniken, die angewendet worden sind, beinhalten eine dynamische Migration von Platteninhalten auf der Grundlage eines LRU- (least-recently-used, am längsten ungenutzt) oder eines anderen Schemas, das die relative Zugriffshäufigkeit auf Dateien und Tabellen ermittelt, um weniger häufig verwendete Dateien in der Hierarchie nach unten zu migrieren, d.h. von dem SSD-Abschnitt der Platte/Anordnung zum HDD-Abschnitt. Ein solches Schema verbessert die Leistungsfähigkeit, jedoch kann viel Speicherplatz in dem SSD verschwendet werden, wenn nur auf einen kleinen Teil der Datei(en), die auf dem SSD verbleibt/verbleiben, tatsächlich häufig zugegriffen wird. Beispielsweise kann es sich bei einer großen Datenbankdatei um die Datei in einem System handeln, auf die am häufigsten zugegriffen wird, es ist jedoch möglich, dass über eine beträchtliche Zeitspanne hinweg nur auf einen kleinen Abschnitt der Datenbank tatsächlich zugegriffen wird.
-
Eine Technik, die das oben beschriebene Problem vermeiden könnte, besteht darin, den SSD-Abschnitt der Platte/Anordnung als Software-Cachespeicher zu nutzen. Eine solche Umsetzung führt jedoch zu weiterer Komplexität bei Betriebssystem-Software und zu einer weiteren Verlängerung der Zugriffslatenzzeit beim System.
-
Daher wäre es wünschenswert, ein Verwaltungsverfahren und ein hybrides Plattenspeichersystem bereitzustellen, dass eine kurze durchschnittliche Zugriffslatenzzeit bei geringer Komplexität bereitstellt.
-
Die US 2009 / 0 235 014 A1 offenbart ein Computersystem und ein Speichergerät. Die Speichervorrichtung enthält einen ersten Speicher mit einer ersten Speicherkapazität, einen zweiten Speicher mit einer zweiten Speicherkapazität, die größer als die erste Speicherkapazität ist, und eine Steuerung, um einen externen Host mit einem Adressraum zu versehen, der einer dritten Speicherkapazität entspricht, wobei die dritte Speicherkapazität kleiner als eine Summe der ersten Speicherkapazität und der zweiten Speicherkapazität ist, wobei die Steuerung, wenn von dem externen Host angeforderte Daten in dem ersten Speicher gespeichert sind, die angeforderten Daten von dem ersten Speicher an den externen Host überträgt, und wenn die angeforderten Daten nicht in dem ersten Speicher gespeichert sind, die angeforderten Daten von dem zweiten Speicher an den externen Host überträgt.
-
Die WO 2009 / 102 425 A1 offenbart eine hybride Medienspeicherarchitektur, die über ein protokollartig strukturiertes Dateisystem verfügt, das so konfiguriert ist, dass es eine Vielzahl verschiedener Speichermedien steuert, die als hybride Speichermedien organisiert sind und zusammenwirken, um einen Gesamtspeicherplatz eines Speichersystems bereitzustellen. Das protokollartig strukturierte Dateisystem ist so konfiguriert, dass es die anfängliche Platzierung und Migration von Daten sowie eine feinkörnige Schreibzuweisung der Daten zwischen den Speicherplatzpositionen der hybriden Speichermedien durchführt, um dadurch die Leistungsmerkmale der Medien zu verbessern. Durch die Definition und Implementierung von Heuristiken und Richtlinien, die z.B. auf Datentypen ausgerichtet sind, kann das Dateisystem zunächst Daten auf jedem der verschiedenen Medien platzieren und danach Daten zwischen den Medien in feiner Granularität und ohne die Notwendigkeit einer manuellen Durchführung migrieren.
-
KURZDARSTELLUNG
-
Die Erfindung wird in einem auf einem Computer ausgeführten Verfahren, Computerprogrammprodukt und Computersystem verkörpert, die ein hybrides Speicherteilsystem verwalten, das eine Blockspeichereinheit mit kürzerer Latenzzeit und eine Blockspeichereinheit mit längerer Latenzzeit beinhaltet. Bei dem Computersystem handelt es sich um ein Computersystem, das ein Programm zum Durchführen des Verfahrens ausführt, und bei dem Computerprogrammprodukt handelt es sich um ein Programm zum Durchführen des Verfahrens.
-
Das Verfahren führt getrennte Freilisten für die Speichereinheit mit kürzerer Latenzzeit und die Speichereinheit mit längerer Latenzzeit, und Blöcke von Dateien werden einmalig entweder in der Einheit mit kürzerer Latenzzeit oder in der Einheit mit längerer Latenzzeit gespeichert. Bei einem Lesezugriff auf das Teilsystem werden die Daten zurückgegeben, wenn sich die Daten in der Einheit mit kürzerer Latenzzeit befinden, wenn sich der Block jedoch in der Einheit mit längerer Latenzzeit befindet, wird er zu der Einheit mit kürzerer Latenzzeit migriert, und der Block in der Einheit mit längerer Latenzzeit wird an die Freiliste der Einheit mit längerer Latenzzeit zurückgegeben. Bei einem Schreibzugriff wird der Block überschrieben, wenn sich der Block entweder in der Einheit mit kürzerer Latenzzeit oder in der Einheit mit längerer Latenzzeit befindet, wenn sich der Block jedoch nicht in dem Teilsystem befindet, wird der Block in die Einheit mit längerer Latenzzeit geschrieben.
-
Ein Aspekt der Erfindung bezieht sich auf ein auf einem Computer ausgeführtes Verfahren zum Verwalten eines Speicherteilsystems, das eine Blockspeichereinheit mit kürzerer Latenzzeit und eine Blockspeichereinheit mit längerer Latenzzeit beinhaltet, wobei das Verfahren Folgendes umfasst:
- Empfangen einer Dateilesezugriffsvorgangs-Anforderung, die mehrere Blöcke einer Datei einbezieht, wobei, wenn sich die von der Dateilesezugriffsvorgangs-Anforderung einbezogene Datei in dem Speicherteilsystem befindet, eine erste Gruppe der mehreren Blöcke, die einem ersten Abschnitt der Datei entspricht, ausschließlich auf einer Blockspeichereinheit mit kürzerer Latenzzeit gespeichert wird und gleichzeitig mit der ersten Gruppe der mehreren Blöcke eine zweite Gruppe der mehreren Blöcke, die einem zweiten Abschnitt der Datei entspricht und den ersten Abschnitt der Datei ausschließt, ausschließlich auf einer Blockspeichereinheit mit längerer Latenzzeit gespeichert wird;
-
Benennen eines nächsten Blocks in der Datei, der durch die Anforderung einbezogen wird, als einen bestimmten Block;
Ermitteln, ob sich der bestimmte Block in der Blockspeichereinheit mit kürzerer Latenzzeit befindet;
in Reaktion auf das Ermitteln, dass sich der bestimmte Block in der Blockspeichereinheit mit kürzerer Latenzzeit befindet, Zugreifen auf den bestimmten Block in der Blockspeichereinheit mit kürzerer Latenzzeit;
in Reaktion auf das Ermitteln, dass sich der bestimmte Block nicht in der Blockspeichereinheit mit kürzerer Latenzzeit befindet, Zugreifen auf den bestimmten Block in der Blockspeichereinheit mit längerer Latenzzeit, um den bestimmten Block zu der Blockspeichereinheit mit kürzerer Latenzzeit zu kopieren, und Hinzufügen des Blocks in der Blockspeichereinheit mit längerer Latenzzeit zu einer Freiliste der Blockspeichereinheit mit längerer Latenzzeit sobald das Kopieren abgeschlossen ist; und
Wiederholen des Benennens, Ermittelns und Zugreifens für folgende Blöcke, die durch die Dateilesezugriffsvorgangs-Anforderung einbezogen werden, bis auf einen letzten Block, der durch die Dateilesezugriffsvorgangs-Anforderung einbezogen wird, zugegriffen worden ist.
-
Ein weiterer Aspekt der Erfindung bezieht sich auf ein Computersystem, das einen Prozessor zum Ausführen von Programmbefehlen und einen mit dem Prozessor verbundenen Speicher umfasst, wobei die Programmbefehle Programmbefehle beinhalten, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor das Computersystem dazu veranlassen, alle Schritte einer Ausführungsform des Verfahrens zum Verwalten eines Speicherteilsystems auszuführen.
-
Ein weiterer Aspekt der Erfindung bezieht sich auf ein Computerprogrammprodukt, das ein computerlesbares Speichermedium umfasst, das Programmbefehle zum Ausführen in einem Computersystem speichert, wobei die Programmbefehle Programmbefehle beinhalten, die, wenn sie durch das Computersystem ausgeführt werden, das Computersystem dazu veranlassen, alle Schritte einer Ausführungsform des Verfahrens zum Verwalten eines Speicherteilsystems ausführen.
-
Ein weiterer Aspekt der Erfindung bezieht sich auf eine Speichereinheit, die Folgendes umfasst:
- einen Speicherblock mit kürzerer Latenzzeit;
- einen Speicherblock mit längerer Latenzzeit;
- einen Prozessor zum Ausführen von Programmbefehlen;
- einen Speicher zum Speichern der Programmbefehle, und wobei die Programmbefehle Programmbefehle umfassen, die, wenn sie durch den Prozessor ausgeführt werden, die Speichereinheit dazu veranlassen, alle die durch den Prozessor ausführbar sind, um die Schritte einer Ausführungsform des Verfahrens zum Verwalten eines Speicherteilsystems auszuführen.
-
Figurenliste
-
Ausführungsformen der Erfindung werden nun lediglich als Beispiel mit Bezug auf die beigefügten Zeichnungen beschrieben, für die gilt:
- 1 ist ein Blockschaubild, das ein vernetztes Computersystem veranschaulicht, das ein Speicherteilsystem beinhaltet, in dem Techniken gemäß einer Ausführungsform der vorliegenden Erfindung angewendet werden.
- 2 ist ein Blockschaubild einer Speichereinheit gemäß einer Ausführungsform der vorliegenden Erfindung.
- 3 ist eine bildliche Darstellung, die eine Gestaltung von Datenstrukturen in einem Programm gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 4 ist ein Ablaufplan eines Schreibzugriffsvorgangs, wie er in einem Speicherteilsystem gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt wird.
- 5 ist ein Ablaufplan eines Lesezugriffsvorgangs, wie er in einem Speicherteilsystem gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt wird.
- 6 ist ein Ablaufplan eines Migrationsvorgangs, wie er in einem Speicherteilsystem gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt wird.
-
GENAUE BESCHREIBUNG
-
Die vorliegende Erfindung umfasst hybride Speicherteilsysteme und -einheiten, insbesondere Speicherteilsysteme, die aus mehreren Blockspeichereinheiten mit unterschiedlichen Latenzzeiten bestehen. Gemäß den hierin veranschaulichten Ausführungsformen der vorliegenden Erfindung wird insbesondere eine Blockspeichereinheit mit längerer Latenzzeit wie zum Beispiel ein Festplatten-Laufwerk (HDD) zusammen mit einer Blockspeichereinheit mit kürzerer Latenzzeit wie zum Beispiel einem Halbleiter-Laufwerk (SSD) verwendet, um ein hybrides Speicherteilsystem auszubilden. Die Blockspeichereinheit mit längerer Latenzzeit und die Blockspeichereinheit mit kürzerer Latenzzeit können in dasselbe Gehäuse eingebaut sein, um eine hybride Speichereinheit bereitzustellen, die die Vorteile der vorliegenden Erfindung aufweist.
-
Es wird nun auf 1 Bezug genommen, in der ein vernetztes Computersystem, in dem eine Ausführungsform der vorliegenden Erfindung ausgeführt wird, in einem Blockschaubild dargestellt wird. Ein Arbeitsplatz-Computersystem 10 beinhaltet einen Prozessor CPU, der mit einem Speicher MEM verbunden ist, der Programmbefehle für die Ausführung durch die CPU enthält und der einen Speichereinheitentreiber 11A beinhaltet, der Techniken gemäß der vorliegenden Erfindung beinhaltet und ferner eine allgemeine Speicherfunktionalität für ein lokales Betriebssystem bereitstellt, das durch die CPU ausgeführt wird. Der Arbeitsplatzcomputer 10 wird außerdem so dargestellt, dass er eine Grafikanzeige Anzeige und Eingabeeinheiten Eingabeeinheiten wie zum Beispiel Mäuse und Tastaturen zum Zusammenwirken mit Benutzeroberflächen beinhaltet, die Benutzeroberflächen für zusammenwirkende Anwendungen, die lokal auf dem Arbeitsplatz-Computersystem 10 ausgeführt werden, wie auch für Anwendungen, die durch andere mit dem Netzwerk verbundene Computer ausgeführt werden, beinhalten. Das Arbeitsplatz-Computersystem 10 beinhaltet außerdem eine Speichersteuereinheit STC 14, die den Prozessor CPU mit einer lokalen Festplatten-Laufwerk(HDD)-Speichereinheit 17A und einem Halbleiter-Laufwerk (SSD) SSD1 verbindet. Der Einheitentreiber 11A steuert die STC 14 an, um eine Plattenspeicherfunktionalität in dem Arbeitsplatz-Computersystem 10 bereitzustellen, und verwendet insbesondere das SSD SSD1 und das HDD 17A gemeinsam, um ein hybrides Speicherteilsystem gemäß einer Ausführungsform der vorliegenden Erfindung auszubilden. Der Einheitentreiber 11A beinhaltet in dem Speicher MEM gespeicherte Programmbefehle, die ein Computerprogrammprodukt gemäß einer Ausführungsform der Erfindung ausbilden. Das Arbeitsplatz-Computersystem 10 beinhaltet außerdem eine Netzwerk-Schnittstelle NWI, die das Arbeitsplatz-Computersystem 10 mit einem Netzwerk 15 verbindet, bei dem es sich um ein vollständig drahtloses, ein vollständig drahtgebundenes oder um ein hybrides Netzwerk beliebiger Art handeln kann. Auf einen Netzwerkspeicher kann über die Netzwerk-Schnittstelle NWI zugegriffen werden, und er wird durch eine Netzwerkplatten-Steuereinheit (NWDC) 18 bereitgestellt. Die NWDC 18 verbindet entfernt angeordnete Speicher wie zum Beispiel HDDs 17B und 17C und ein SSD SSD2 mit dem Netzwerk 15 und beinhaltet eine CPU CPU1, die mit einem Speicher MEM1 verbunden ist, der ein Computerprogrammprodukt gemäß einer Ausführungsform der vorliegenden Erfindung in Form von Programmbefehlen zum Durchführen der Techniken der vorliegenden Erfindung in Form eines Einheitentreibers 11C speichert. Der Einheitentreiber 11C realisiert Techniken gemäß einer Ausführungsform der vorliegenden Erfindung durch Ansteuern der HDDs 17B und 17C zusammen mit dem SSD SSD1, um ein weiteres hybrides Speicherteilsystem gemäß einer Ausführungsform der vorliegenden Erfindung auszubilden.
-
Ein Server-Rack-Computersystem 12, das zumindest einen Server-Speicher SMEM und einen Server-Prozessor SCPU aufweist, wird ebenfalls mit dem Netzwerk 15 verbunden dargestellt und kann auch auf die durch die NWDC 18 bereitgestellte hybride Speicheranordnung und in manchen Fällen auch auf das hybride Speicherteilsystem zugreifen, das in dem Arbeitsplatz-Computersystem 10 durch das SSD SSD1 und das HDD 17A bereitgestellt wird, wenn der/die Speicherdatenträger, der/die durch das hybride Speicherteilsystem durch den Einheitentreiber 11A realisiert wird/werden, im Netzwerk 15 freigegeben ist/sind. Eine Systemgestaltung, wie sie im Allgemeinen mit der vorliegenden Erfindung verwendet wird, kann eine große Anzahl von Arbeitsplatz-Computersystemen wie zum Beispiel den Arbeitsplatzcomputer 10 und eine große Zahl von Server-Racks wie zum Beispiel ein Server-Rack 12 beinhalten. Ein Speicher in einem solchen Computersystem kann außerdem im Allgemeinen große Anordnungen von Speichereinheiten beinhalten. Die Techniken der vorliegenden Erfindung sind jedoch nicht von der Größenordnung abhängig und können daher ebenso in kleineren Systemgestaltungen angewendet werden.
-
Das Netzwerk 15 kann drahtlose lokale Netzwerke (wireless local-area networks, WLANs), verdrahtete lokale Netzwerke (local-area networks, LANs), Weitverkehrsnetzwerke (wide-area networks, WANs) oder jede andere geeignete Verbindung beinhalten, die einen Datenaustausch zwischen dem Arbeitsplatz-Computersystem 10 und dem Server-Rack 12, den Speichereinheiten 17A bis 17C, den SSDs SSD1 und SSD2 zusammen mit anderen mit dem Netzwerk 15 verbundenen Systemen und Einheiten bereitstellt. Des Weiteren betrifft die vorliegende Erfindung eine Sicherungs- und Wiederherstellungsfunktionalität, die nicht auf ein bestimmtes Computersystem oder eine bestimmte Netzwerkgestaltung beschränkt ist. Schließlich bedeutet die Beschreibung des Arbeitsplatz-Computersystems 10, des Server-Racks 12, der NWDC 18 und des Standorts ihrer jeweiligen Speicher MEM, MEM1, SMEM und der Einheitentreiber 11A und 11C keine spezielle Client-Server-Beziehung oder hierarchische Gestaltung, da die Techniken der vorliegenden Erfindung in verteilten Systemen eingesetzt werden können, in denen keine bestimmte Maschine als Server gekennzeichnet ist, in denen jedoch zumindest eine der Maschinen eine Instanz und eine Funktionalität eines Programms oder Objekts wie zum Beispiel eines Einheitentreibers bereitstellt, der ein(e) hybride(s) Speicherteilsystem oder -einheit gemäß einer Ausführungsform der vorliegenden Erfindung realisiert.
-
Nun auf 2 Bezug nehmend, wird eine hybride Speichereinheit 20 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Die hybride Speichereinheit 20 beinhaltet die gesamte Funktionalität eines hybriden Speicherteilsystems gemäß der vorliegenden Erfindung und könnte daher in dem in 1 dargestellten System eingesetzt werden, ohne einen besonderen Einheitentreiber oder getrennte SSD- und HDD-Laufwerke zu benötigen. Eine Mikrosteuereinheit 24 führt in einem Speicher 26 gespeicherte Programmbefehle aus. Die Programmbefehle werden im Allgemeinen in einem nichtflüchtigen Abschnitt des Speichers 26 wie zum Beispiel einem FLASH-Speicher gespeichert. Eine Speicherschnittstelle 28 wie zum Beispiel eine Schnittstelle für kleine Computersysteme (small computer systems interface, SCSI) oder eine SATA- Schnittstelle (serial AT attachment) stellt eine Verbindung zu einer Speichersteuereinheit eines Computersystems wie der STC 14 des Arbeitsplatz-Computersystems 10 in 1 bereit. Die hybride Speichereinheit 20 beinhaltet eine Blockeinheit mit kürzerer Latenzzeit, z.B. eine SSD-Speicheranordnung 21, und eine Speichereinheit mit längerer Latenzzeit, z.B. einen Satz HDD-Platten/-Köpfe 23, die über eine HDD-Lese-/Schreibelektronik 22 verbunden sind. Die HDD-Lese-/Schreibelektronik 22 unterscheidet sich von HDDs wie beispielsweise den HDDs 17A bis 17C von 1 insofern, als die Speicherschnittstelle, die üblicherweise dazu verwendet wird, den internen Speicher der HDDs 17A bis 17C mit der STC 14 zu verbinden, zwischen der HDD-Lese-/Schreibelektronik 22 und der Mikrosteuereinheit 24 nicht benötigt wird, und daher wird die Speicherschnittstelle 28 von den HDD- und SSD-Abschnitten der hybriden Speichereinheit 20 gemeinsam genutzt. Des Weiteren werden die Algorithmen, die die Nachbildung der Speichereinheit bei einem typischen SSD realisieren, durch die Mikrosteuereinheit 24 realisiert, und daher stellt die SSD-Speicheranordnung 21 nur den für die SSD-Realisierung bereitgestellten Speicher dar und benötigt nicht die übrige(n) Logik und Steuereinheiten, die ein vollständig realisiertes, getrenntes SSD-Laufwerk enthalten würde.
-
Wie veranschaulicht, empfängt die Mikrosteuereinheit 24 unter Steuerung durch ein in dem Speicher 26 gespeichertes Computerprogrammprodukt gemäß einer Ausführungsform der vorliegenden Erfindung Zugriffsanforderungen und andere Befehle über die Speicherschnittstelle 28. Die Mikrosteuereinheit 24 greift auf Halbleiter-Speichereinheiten in der SSD-Speicheranordnung 21 oder den HDD-Platten/-Köpfen 23 über die HDD-Lese-/Schreibelektronik 22 zu, um die Funktionalität einer hybriden Plattenanordnung bereitzustellen, die über einen sehr hohen Durchsatz verfügt. Die Funktionsweise eines Hybridplatten-Steuerprogramms im Speicher 26, bei dem es sich im Wesentlichen um dieselben Methoden handelt, die durch die Einheitentreiber 11A und 11C von 1 eingesetzt werden, wird unten näher beschrieben.
-
Nun auf 3 Bezug nehmend, werden Datenstrukturen dargestellt, die durch die Hybridplatten-Steuerprogramme in dem System von 1 und die Speichereinheit von 2 verwendet werden. Es werden zwei Freilisten geführt: Eine HDD-Freiliste 30 und eine SSD-Freiliste 32. Einträge in den Freilisten 30, 32 enthalten zumindest eine Einheitenkennung wie zum Beispiel eine Plattenkennung (identifier, ID) oder eine Logikeinheitennummer (logical unit number, LUN) für die Einheit in dem Speicherteilsystem und einen Speicherort des Blocks, der durch den Eintrag in der Speichereinheit dargestellt wird, wie zum Beispiel eine logische Blockadresse (LBA). Die Platten-ID kann bei Realisierungen, in denen nur eine SSD- und eine HDD-Einheit vorhanden sind, weggelassen werden. Durch Einbeziehen getrennter Freilisten auf der Blockebene sowohl für die SSD- als auch für die HDD-Einheiten können Blöcke leicht zwischen den verschiedenen Einheitentypen migriert werden, und der Speicherort des Inhalts einer Datei kann über die verschiedenen Einheitentypen hinweg kombiniert sein, obwohl jeder Block einmalig auf einer der Einheiten gespeichert wird. Daher handelt es sich bei dem Speicherteilsystem der vorliegenden Erfindung nicht um eine einschließende Hierarchie, sondern eher um ein Teilsystem, das so verwaltet wird, dass es Daten, auf die häufiger zugegriffen wird, in einer Speichereinheit mit kürzerer Latenzzeit (und im Allgemeinen höheren Kosten) wie zum Beispiel einem SSD platziert, während es aus wirtschaftlichen Gründen im Allgemeinen mehr Speicherplatz in einer Speichereinheit mit längerer Latenzzeit wie zum Beispiel einem HDD bereitstellt. Es versteht sich, dass die oben beschriebenen Systeme und Schemata sich allgemein auf Speichereinheiten mit unterschiedlichen Latenzzeiten beziehen und dass die Verwendung von SSD- und HDD-Einheiten/-Speicheranordnungen, außer wenn auf eine bestimmte beanspruchte Ausführungsform hingewiesen wird, beispielhaft ist und so zu verstehen ist, dass sie andere hybride Speicherteilsysteme und -einheiten umfasst, die die Techniken der vorliegenden Erfindung, wie unten beschrieben, einsetzen. Eine LRU- (least-recently-used, am längsten ungenutzt) Liste 34 wird in der beispielhaften Ausführungsform dazu verwendet, eine Liste der zurzeit zugeordneten Blöcke in dem SSD zu speichern. Die Einträge werden nach ihrem letzten Zugriffszeitpunkt oder nach einem anderen Schema geordnet, wie es zum Realisieren eines Auslagerungsschemas wie zum Beispiel LRU üblich ist. Die Liste wird aktualisiert, wenn auf Blöcke zugegriffen wird, und wird verkürzt, wenn Datenblöcke aus dem SSD entfernt und in das HDD übertragen werden. Alternativ können die Positionen der Einträge in der Liste fest bleiben, und es kann ein in jedem Eintrag gespeicherter Wert zum Bereitstellen einer Angabe des LRU-Ranges des Eintrags verwendet werden. Andere Schemata wie zum Beispiel MRU (most-recently-used, zuletzt verwendet) können eingesetzt werden und werden als innerhalb des Umfangs der vorliegenden Erfindung liegend betrachtet.
-
Nun auf 4 Bezug nehmend, wird ein Lesezugriffsverfahren gemäß einer Ausführungsform der Erfindung in einem Ablaufplan dargestellt. Eine Plattenlesezugriffs-Anforderung wird empfangen (Schritt 40), und wenn sich der angeforderte Block in dem SSD befindet (Entscheidung 41), wird der Block in Reaktion auf die Lesezugriffsanforderung von dem SSD abgerufen und zurückgegeben (Schritt 42). Die SSD-LRU-Liste wird aktualisiert, um den Lesezugriff widerzuspiegeln (Schritt 47), und es werden keine weiteren Schritte eingeleitet. Wenn sich der angeforderte Block nicht in dem SSD befindet (Entscheidung 41), wird eine Prüfung durchgeführt, um zu ermitteln, ob sich der Block in dem HDD befindet (Entscheidung 43), und wenn dies nicht der Fall ist, schlägt der Lesezugriffsvorgang fehl (Schritt 48). Wenn sich der Block andererseits in dem HDD befindet (Entscheidung 43), wird der Block aus dem HDD abgerufen und in Reaktion auf die Lesezugriffsanforderung zurückgegeben (Schritt 44). Ein Block von der SSD-Freiliste wird zugeordnet, und der Block wird von dem HDD in das SDD kopiert (Schritt 45), und schließlich wird der HDD-Block der HDD-Freiliste hinzugefügt, nachdem die Kopie fertiggestellt ist (Schritt 46). Die SSD-LRU-Liste wird anschließend aktualisiert, um den Lesezugriff widerzuspiegeln (Schritt 47). Der oben beschriebene SSD-Zuordnungs- und -Kopiervorgang kann im Zusammenhang mit dem Leseanforderer durchgeführt werden, oder er kann angesetzt werden, nachdem der Block zurückgegeben worden ist. Da der Inhalt des Blocks während des Kopierens in das SDD übertragen wird, kann es im Besonderen wünschenswert sein, den Block von der SSD-Freiliste vorab zuzuordnen und die Daten des Blocks von dem HDD sowohl zu einem Schnittstellen-Ausgabezwischenspeicher oder zu einem DMA-Ziel (direct memory access, direkter Speicherzugriff) als auch zu der SSD-Speichereinheit gleichzeitig zu übertragen.
-
Nun auf 5 Bezug nehmend, wird ein Schreibzugriffsverfahren gemäß einer Ausführungsform der Erfindung in einem Ablaufplan dargestellt. Eine Plattenschreibzugriffs-Anforderung wird empfangen (Schritt 50), und wenn sich der angegebene Block in dem SSD befindet (Entscheidung 51), wird der Block in dem SSD durch Überschreiben des Inhalts des SSD-Blocks aktualisiert (Schritt 52), und es werden keine weiteren Schritte eingeleitet. Wenn sich der angegebene Block nicht in dem SSD befindet (Entscheidung 51), wird eine Prüfung durchgeführt, um zu ermitteln, ob sich der Block in dem HDD befindet (Entscheidung 53), und wenn dies nicht der Fall ist, wird ein HDD-Block aus der HDD-Freiliste zugeordnet (Schritt 55), und der Block wird in den neu zugeordneten Block in dem HDD kopiert (Schritt 56). Wenn sich der Block andererseits in dem HDD befindet (Entscheidung 53), wird der Block in dem HDD durch Überschreiben des Inhalts des HDD-Blocks aktualisiert (Schritt 54). Das oben beschriebene Verfahren unterscheidet sich von der Lesezugriffsmethodik insofern, als bei einem Schreibzugriff keine Migration eines Blocks von dem HDD zu dem SSD durchgeführt wird. Da SSD-Einheiten im Allgemeinen längere durchschnittliche Schreiblatenzzeiten als Leselatenzzeiten aufweisen, insbesondere beim Schreiben großer Datenmengen, verbessert die Durchführung von Schreibvorgängen auf das HDD die Leistung, wenn die Blöcke während desselben Zeitraums nicht auch gelesen werden.
-
Da das in 4 dargestellte Verfahren tendenziell dazu führt, dass das SSD mit zuletzt gelesenen Blöcken gefüllt wird, und da Lesezugriffe von dem HDD einen freien SSD-Block erfordern, um den Kopiervorgang in Schritt 45 durchzuführen, ist es wünschenswert, über einen Mechanismus zum Aufrechterhalten einer bestimmten Menge an freiem Speicherplatz auf dem SSD zu verfügen. Nun auf 6 Bezug nehmend, wird ein Verfahren zum Freigeben von Blöcken auf dem SSD in einem Ablaufplan gemäß einer Ausführungsform der Erfindung dargestellt. Wenn eine Anforderung zum Zuordnen eines Blocks von der SSD-Freiliste empfangen wird (Schritt 60), wie z.B. durch Schritt 44 von 4 ausgelöst, wird der Block zugeordnet und aus der Freiliste entfernt (Schritt 61), wie in Schritt 45 von 4. Wenn die Anzahl der Blöcke in der SSD-Freiliste geringer als ein kritischer Schwellenwert ist (Entscheidung 62), wird unverzüglich eine Migration von LRU-Blöcken von dem SSD zu dem HDD vorgenommen (Schritt 63). Bei dem kritischen Schwellenwert handelt es sich um die Mindestanzahl freier Blöcke, die das System unter allen Umständen in dem SSD aufrechtzuerhalten versucht. Wenn die Anzahl von Blöcken in der SSD-Freiliste größer als oder gleich dem kritischen Schwellenwert ist (Entscheidung 62), wird, wenn die Anzahl von Blöcken in der SSD-Freiliste größer als oder gleich einem regulären Schwellenwert ist (Entscheidung 64), keine Migration durchgeführt. Wenn die Anzahl von Blöcken in der HDD-Freiliste kleiner als der reguläre Schwellenwert ist (Entscheidung 64), wird die Migration von LRU-Blöcken von dem SSD im Hintergrund geplant.