DE112010004969B4 - Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen - Google Patents

Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen Download PDF

Info

Publication number
DE112010004969B4
DE112010004969B4 DE112010004969.6T DE112010004969T DE112010004969B4 DE 112010004969 B4 DE112010004969 B4 DE 112010004969B4 DE 112010004969 T DE112010004969 T DE 112010004969T DE 112010004969 B4 DE112010004969 B4 DE 112010004969B4
Authority
DE
Germany
Prior art keywords
block
storage unit
file
latency
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112010004969.6T
Other languages
English (en)
Other versions
DE112010004969T5 (de
Inventor
Men-Chow Chiang
Hong Lam Hua
Robert Bell jun.
Mysore Sathyanarayana Srinivas
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010004969T5 publication Critical patent/DE112010004969T5/de
Application granted granted Critical
Publication of DE112010004969B4 publication Critical patent/DE112010004969B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0647Migration mechanisms
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Abstract

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 (40) 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 (41), 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 (42) 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 (44) 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 (46) des Blocks in der Blockspeichereinheit mit längerer Latenzzeit zu einer Freiliste der Blockspeichereinheit mit längerer Latenzzeit sobald das Kopieren (45) abgeschlossen ist; undWiederholen 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.

Description

  • 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.

Claims (8)

  1. 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 (40) 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 (41), 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 (42) 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 (44) 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 (46) des Blocks in der Blockspeichereinheit mit längerer Latenzzeit zu einer Freiliste der Blockspeichereinheit mit längerer Latenzzeit sobald das Kopieren (45) 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.
  2. Auf einem Computer ausgeführtes Verfahren nach Anspruch 1, wobei es sich bei der Blockspeichereinheit mit kürzerer Latenzzeit um ein Halbleiter-Plattenlaufwerk (21) handelt und wobei es sich bei der Blockspeichereinheit mit längerer Latenzzeit um ein Festplatten-Laufwerk (23) handelt.
  3. Verfahren nach Anspruch 2, wobei das Verfahren des Weiteren Folgendes umfasst: in Reaktion auf das Ermitteln, dass sich der bestimmte Block nicht in dem Halbleiter-Laufwerk befindet, für jeden bestimmten Block ein Ermitteln, ob sich der bestimmte Block in dem Festplatten-Laufwerk befindet oder nicht; und Zurückgeben des Inhalts des bestimmten Blocks in Reaktion auf den Lesevorgang; und wobei das Zugreifen (44) auf den bestimmten Block in der Blockspeichereinheit mit längerer Latenzzeit, um den Block zu der Blockspeichereinheit mit kürzerer Latenzzeit zu kopieren, einen Zuordnungs-und-Kopierschritt (45) aufweist, wobei der Zuordnungs-und-Kopierschritt (45) umfasst: Zuordnen eines Blocks in dem Halbleiter-Laufwerk von einer Freiliste (32) des Halbleiter-Laufwerks; und Kopieren des Inhalts des bestimmten Blocks von dem Festplatten-Laufwerk auf das Halbleiter-Laufwerk.
  4. Verfahren nach Anspruch 3, das des Weiteren in Reaktion auf das Ermitteln, dass sich der bestimmte Block in dem Halbleiter-Laufwerk befindet oder sich in dem Festplatten-Laufwerk befindet, ein Aktualisieren (47) einer Amlängsten-ungenutzt(least-recently-used)-Liste des Halbleiter-Laufwerks umfasst.
  5. Verfahren nach Anspruch 2, wobei das Verfahren des Weiteren Folgendes umfasst: Empfangen eines Dateischreibzugriffsvorgangs, der mehrere Blöcke einbezieht, wobei einzelne der mehreren Blöcke entweder in dem Halbleiter-Plattenlaufwerk (21) oder in dem Festplatten-Laufwerk (23) gespeichert sind; in Reaktion auf das Ermitteln, dass sich der bestimmte Block nicht in dem Halbleiter-Laufwerk (21) befindet, für jeden bestimmten von dem Dateischreibzugriffsvorgang einbezogenen Block ein Ermitteln, ob sich der Block in dem Festplatten-Laufwerk (23) befindet oder nicht; in Reaktion auf das Ermitteln, dass sich der bestimmte Block in dem Festplatten-Laufwerk (23) befindet, Schreiben von mit dem Schreibvorgang bereitgestellten Daten in den bestimmten Block; und in Reaktion auf das Ermitteln, dass sich der bestimmte Block nicht in dem Festplatten-Laufwerk (23) befindet, Zuordnen eines neuen Blocks in dem Festplatten-Laufwerk (23) von einer Freiliste (30) des Festplatten-Laufwerks; und des Weiteren in Reaktion auf das Ermitteln, dass sich der bestimmte Block nicht in dem Festplatten-Laufwerk (23) befindet, Schreiben der mit dem Schreibvorgang bereitgestellten Daten in den neuen Block.
  6. Computersystem, das einen Prozessor (CPU) zum Ausführen von Programmbefehlen und einen mit dem Prozessor (CPU) verbundenen Speicher (MEM) umfasst, wobei die Programmbefehle Programmbefehle beinhalten, die, wenn sie durch den Prozessor (CPU) ausgeführt werden, das Computersystem dazu veranlassen, alle Schritte eines der Ansprüche 1 bis 5 auszuführen.
  7. 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 eines der Ansprüche 1 bis 5 ausführen.
  8. Speichereinheit (20), die Folgendes umfasst: einen Speicherblock mit kürzerer Latenzzeit; einen Speicherblock mit längerer Latenzzeit; einen Prozessor (24) zum Ausführen von Programmbefehlen; einen Speicher (26) zum Speichern der Programmbefehle, und wobei die Programmbefehle Programmbefehle umfassen, die, wenn sie durch den Prozessor (24) ausgeführt werden, die Speichereinheit (20) dazu veranlassen, alle Schritte eines der Ansprüche 1 bis 5 auszuführen.
DE112010004969.6T 2009-12-22 2010-12-08 Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen Active DE112010004969B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/644,721 2009-12-22
US12/644,721 US8438334B2 (en) 2009-12-22 2009-12-22 Hybrid storage subsystem with mixed placement of file contents
PCT/EP2010/069140 WO2011076565A1 (en) 2009-12-22 2010-12-08 Hybrid storage subsystem

Publications (2)

Publication Number Publication Date
DE112010004969T5 DE112010004969T5 (de) 2013-01-17
DE112010004969B4 true DE112010004969B4 (de) 2021-06-02

Family

ID=43530850

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010004969.6T Active DE112010004969B4 (de) 2009-12-22 2010-12-08 Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen

Country Status (5)

Country Link
US (2) US8438334B2 (de)
CN (1) CN102667704B (de)
DE (1) DE112010004969B4 (de)
GB (1) GB2489343B (de)
WO (1) WO2011076565A1 (de)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700949B2 (en) 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
US9471240B2 (en) * 2010-06-24 2016-10-18 International Business Machines Corporation Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk
US8560759B1 (en) * 2010-10-25 2013-10-15 Western Digital Technologies, Inc. Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
WO2012103367A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage
WO2012103253A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Multilevel conversion table cache for translating guest instructions to native instructions
CN103620547B (zh) 2011-01-27 2018-07-10 英特尔公司 使用处理器的转换后备缓冲器的基于客户指令到本机指令范围的映射
WO2012103245A2 (en) 2011-01-27 2012-08-02 Soft Machines Inc. Guest instruction block with near branching and far branching sequence construction to native instruction block
WO2012103359A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Hardware acceleration components for translating guest instructions to native instructions
US11099982B2 (en) 2011-03-31 2021-08-24 Oracle International Corporation NUMA-aware garbage collection
US10140208B2 (en) * 2011-03-31 2018-11-27 Oracle International Corporation NUMA-aware garbage collection
US9792218B2 (en) * 2011-05-20 2017-10-17 Arris Enterprises Llc Data storage methods and apparatuses for reducing the number of writes to flash-based storage
WO2012161933A1 (en) * 2011-05-24 2012-11-29 Marvell World Trade Ltd. Method for storage devices to achieve low write amplification with low over provision
US9639792B2 (en) * 2011-07-18 2017-05-02 Ricoh Company, Ltd. Resolution of out of memory conditions for shared memory in a print controller
WO2013038442A1 (en) * 2011-09-13 2013-03-21 Hitachi, Ltd. Storage system comprising flash memory, and storage control method
US8977799B2 (en) * 2011-09-26 2015-03-10 Lsi Corporation Storage caching/tiering acceleration through staggered asymmetric caching
CN102541466A (zh) * 2011-10-27 2012-07-04 忆正存储技术(武汉)有限公司 一种混合存储控制系统和方法
KR20130064521A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
US9710397B2 (en) * 2012-02-16 2017-07-18 Apple Inc. Data migration for composite non-volatile storage device
US20130242425A1 (en) * 2012-03-16 2013-09-19 Toshiba America Electronics Components, Inc. Write reordering in a hybrid disk drive
US8984267B2 (en) * 2012-09-30 2015-03-17 Apple Inc. Pinning boot data for faster boot
CN103049349B (zh) * 2012-11-29 2016-02-24 记忆科技(深圳)有限公司 基于分层存储的快照方法及系统
US10073851B2 (en) * 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
WO2014151652A1 (en) 2013-03-15 2014-09-25 Soft Machines Inc Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor
WO2014151691A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. Method and apparatus for guest return address stack emulation supporting speculation
US10467010B2 (en) 2013-03-15 2019-11-05 Intel Corporation Method and apparatus for nearest potential store tagging
US9606935B2 (en) * 2013-03-15 2017-03-28 Intel Corporation Method and apparatus for preventing non-temporal entries from polluting small structures using a transient buffer
US10152327B2 (en) 2013-03-15 2018-12-11 Intel Corporation Apparatus for gating a load operation based on entries of a prediction table
CN103150128A (zh) * 2013-03-25 2013-06-12 中国人民解放军国防科学技术大学 基于ssd和磁盘的可靠混合存储系统实现方法
JP5362145B1 (ja) * 2013-03-29 2013-12-11 株式会社東芝 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法
JP2014235677A (ja) * 2013-06-05 2014-12-15 株式会社東芝 データ記憶装置およびデータ記憶制御方法
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
CN103455390A (zh) * 2013-08-29 2013-12-18 上海铁路通信有限公司 适用于车辆使用环境的双介质冗余存储系统及其应用
WO2015072925A1 (en) * 2013-11-14 2015-05-21 Agency For Science, Technology And Research Method for hot i/o selective placement and metadata replacement for non-volatile memory cache on hybrid drive or system
CN103942159A (zh) * 2014-03-19 2014-07-23 华中科技大学 一种基于混合存储设备的数据读写方法与装置
JP6196383B2 (ja) * 2014-07-31 2017-09-13 株式会社東芝 階層化ストレージシステム
CN104216988A (zh) * 2014-09-04 2014-12-17 天津大学 分布式大数据的ssd磁盘和hdd磁盘混合存储方法
CN104391807A (zh) * 2014-10-23 2015-03-04 浪潮电子信息产业股份有限公司 一种提升存储服务器性能的方法及系统
CN104363175A (zh) * 2014-11-21 2015-02-18 迈普通信技术股份有限公司 一种资源表构建方法和装置
EP3062210B1 (de) * 2015-02-24 2019-11-06 Alcatel-Lucent España, S.A. Verfahren und server zur speicherung von multimedia-inhalten und deren bereitstellung in adaptiven streaming-systemen
US9965181B2 (en) * 2015-04-08 2018-05-08 Kabushiki Kaisha Toshiba Hybrid-HDD with multiple caching modes
US9703485B2 (en) 2015-07-15 2017-07-11 Western Digital Technologies, Inc. Storage management in hybrid drives
CN106933494B (zh) * 2015-12-31 2019-10-18 伊姆西公司 混合存储设备的操作方法和装置
TW201725476A (zh) * 2016-01-12 2017-07-16 智微科技股份有限公司 依據電源狀態決定其混合存儲單元運作模式的電子系統以及用於電子系統之操作的方法
CN107340970A (zh) * 2016-01-19 2017-11-10 联芸科技(杭州)有限公司 依据电源状态决定其混合存储单元运作模式的电子系统以及用于电子系统的操作的方法
US9583182B1 (en) * 2016-03-22 2017-02-28 Intel Corporation Multi-level memory management
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
CN106681665B (zh) * 2016-12-29 2020-04-24 北京奇虎科技有限公司 缓存数据的持久化存储方法及装置
US10474397B2 (en) 2017-06-13 2019-11-12 Western Digital Technologies, Inc Unified indirection in a multi-device hybrid storage unit
US10572407B2 (en) * 2017-08-11 2020-02-25 Western Digital Technologies, Inc. Hybrid data storage array
WO2019083389A1 (en) * 2017-10-26 2019-05-02 EMC IP Holding Company LLC MANAGING A FILE SYSTEM IN MULTIPLE LOGIC UNIT NUMBERS (LUN)
US11204705B2 (en) 2019-03-05 2021-12-21 Western Digital Technologies, Inc. Retention-aware data tiering algorithm for hybrid storage arrays
US11789632B1 (en) * 2020-07-12 2023-10-17 Lightbits Labs Ltd. System and method for data placement in multiple tier storage systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009102425A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
US20090235014A1 (en) * 2008-03-12 2009-09-17 Keun Soo Yim Storage device and computing system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US7814128B2 (en) * 2003-05-30 2010-10-12 Symantec Operating Corporation Multi-volume file support
KR100699893B1 (ko) * 2006-01-23 2007-03-28 삼성전자주식회사 하이브리드 디스크 드라이브 및 하이브리드 디스크드라이브의 데이터 제어방법
KR100675010B1 (ko) * 2006-02-03 2007-01-29 삼성전자주식회사 하이브리드 하드디스크 드라이브의 캐시 제어 방법, 이에적합한 기록 매체 그리고 이에 적합한 장치
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US7899987B2 (en) * 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
US20090043831A1 (en) * 2007-08-11 2009-02-12 Mcm Portfolio Llc Smart Solid State Drive And Method For Handling Critical Files
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US7792882B2 (en) * 2007-09-27 2010-09-07 Oracle America, Inc. Method and system for block allocation for hybrid drives
KR20090034087A (ko) * 2007-10-02 2009-04-07 삼성전자주식회사 비휘발성 저장매체를 이용한 미디어 컨텐츠 재생 방법 및그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009102425A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
US20090235014A1 (en) * 2008-03-12 2009-09-17 Keun Soo Yim Storage device and computing system

Also Published As

Publication number Publication date
US8438334B2 (en) 2013-05-07
WO2011076565A1 (en) 2011-06-30
US20110153931A1 (en) 2011-06-23
GB201209219D0 (en) 2012-07-04
CN102667704A (zh) 2012-09-12
DE112010004969T5 (de) 2013-01-17
GB2489343B (en) 2016-08-31
CN102667704B (zh) 2016-01-06
GB2489343A (en) 2012-09-26
US8959286B2 (en) 2015-02-17
US20130218892A1 (en) 2013-08-22

Similar Documents

Publication Publication Date Title
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112012001302B4 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112016004527T5 (de) Implementieren eines Hardware-Beschleunigers für das Management eines Speicher-Schreibcachespeichers
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
DE112012004571B4 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
JP4813843B2 (ja) ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
DE102008057219B4 (de) Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem
DE102013200032B4 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE102012216034B4 (de) Direkte Speicheradressierung für Solid-State-Laufwerke
DE112011103290B4 (de) Intelligente Schreibcacheoperationen für sequenzielle Datenspuren
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE112012001808B4 (de) Cache-Management von Spuren in einem ersten Cachespeicher und einem zweiten Cachespeicher für einen Speicher
DE202010017665U1 (de) Datenverteilung bei einer Datenspeichervorrichtung mit Flash-Speicherchips
DE112013006565T5 (de) Speichervorrichtung
DE112015003536T5 (de) Host-Verwalter nicht flüchtiger Speicher
DE102015007709A1 (de) Invalidationsdatenbereich für einen Cache
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final