DE112011100618B4 - Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird - Google Patents
Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird Download PDFInfo
- Publication number
- DE112011100618B4 DE112011100618B4 DE112011100618.7T DE112011100618T DE112011100618B4 DE 112011100618 B4 DE112011100618 B4 DE 112011100618B4 DE 112011100618 T DE112011100618 T DE 112011100618T DE 112011100618 B4 DE112011100618 B4 DE 112011100618B4
- Authority
- DE
- Germany
- Prior art keywords
- memory
- checksum
- track
- active
- address
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Verfahren zum Verwalten von Daten in einem ersten Speicher und einem zweiten Speicher, wobei das Verfahren die folgenden Schritte umfasst:- Durchführen eines Arbeitsschritts zum Verlagern eines Speicherbereichs von Spuren von dem zweiten Speicher zu dem ersten Speicher;- Ermitteln, ob für den zu verlagernden Speicherbereich ein Speicherbereichsobjekt vorhanden ist, wobei das Speicherbereichsobjekt vorhanden ist, wenn der Speicherbereich zu einem früheren Zeitpunkt bereits von dem ersten Speicher zu dem zweiten Speicher verlagert wurde, und wobei das Speicherbereichsobjekt für jede Spur eine Änderungsanzeige umfasst, die anzeigt, ob die Spur seit dem Zeitpunkt, als der Speicherbereich zuvor zu dem zweiten Speicher verlagert wurde, in dem zweiten Speicher aktualisiert wurde; und- als Reaktion auf das Ermitteln, dass das Speicherbereichsobjekt vorhanden ist, Durchführen der folgenden Schritte:- Ermitteln der Spuren in dem Speicherbereich, bei denen die Änderungsanzeige anzeigt, dass die Spur seit dem früheren Zeitpunkt in dem zweiten Speicher aktualisiert wurde;- Kopieren der Daten für die ermittelten Spuren von dem zweiten Speicher auf freie Speicherplätze in dem ersten Speicher; und- für jede ermittelte Spur Aktualisieren des Eintrags der ermittelten Spur in dem Speicherbereichsobjekt, um den freien Speicherplatz, auf den die Daten für die Spur kopiert wurden, als aktive Adresse für die Spur anzuzeigen, unter der die neueste Version der Spur in dem ersten Speicher zu finden ist.
Description
- Technisches Gebiet
- Die vorliegende Erfindung betrifft ein Verfahren, ein System und ein Computerprogrammprodukt zum Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird.
- Hintergrund der Erfindung
- In einer hierarchischen Speicherumgebung können Speicherbereiche von Spuren in Abhängigkeit von den Eigenschaften der Speichereinheiten, der Zugriffshäufigkeit und der Priorität der Daten zwischen verschiedenen Ebenen von Speichereinheiten wie beispielsweise Festplattenlaufwerken, Halbleiterdatenträgern usw. verlagert werden. Zum Beispiel können häufiger aufgerufene Speicherbereiche und/oder Speicherbereiche mit höherer Priorität von einer Ebene mit langsamerem Zugriff zu einer Ebene mit schnellerem Zugriff und seltener aufgerufene Speicherbereiche und/oder Speicherbereiche mit niedrigerer Priorität zu einer Ebene mit schnellerem Zugriff verlagert werden.
- Bei gegenwärtigen hierarchischen Speicherumgebungen werden Speicherbereiche zwischen oberen Ebenen/Pools und unteren Ebenen/Pools innerhalb eines bestimmten Zeitraums hin und her verlagert. Unter diesen Bedingungen stuft eine untere Ebene einen bestimmten Speicherbereich hoch, ohne zu berücksichtigen, dass dieser Speicherbereich entweder ganz oder teilweise immer noch unverändert auf der oberen Ebene liegt. Wenn Speicherbereiche verlagert werden, können alle Daten von dem Speicherbereich von einer Speichereinheit zur anderen hinüberkopiert werden. Eine solche Verlagerung nimmt viel Zeit in Anspruch.
- Bei gegenwärtigen mehrschichtigen Speicherarchitekturen können obere Ebenen ältere, unveränderte (redundante) Spuren von Speicherbereichen enthalten, die zuvor auf untere Speicherbereiche herabgestuft wurden und zur Zwischenspeicherung der zweiten Ebene verwendet werden können. Den größten Nachteil aktueller Lösungen stellt die geringe Leistungsfähigkeit dar, da die Leseleistung von Halbleiterdatenträgern (solid state device, SSD) wesentlich höher ist als die von Festplattenlaufwerken.
- Durch überflüssiges Lesen von Daten von Festplatten, die heruntergefahren wurden, wird auch:
- • die Lebensdauer der Festplatten verringert
- • der elektrische Wirkungsgrad verringert
- • die Zugriffszeit für Datenanforderungen verlängert, da die Laufwerke zuerst hochgefahren werden müssen
- Aus
US 2009 / 0 265 506 A1 - Ausgehend von diesem Stand der Technik stellt sich die Erfindung die Aufgabe, das Verlagern von Speicherbereichen von Spuren zwischen Speichereinheiten zu verbessern.
- Diese Aufgabe wird erfindungsgemäß gelöst durch das Verfahren zum Verwalten von Daten in einem ersten Speicher und einem zweiten Speicher nach Anspruch 1, das System, das Daten mit einem ersten Speicher und einem zweiten Speicher austauscht, nach Anspruch 12 und das Computerprogrammprodukt zum Verwalten von Daten in einem ersten Speicher und einem zweiten Speicher nach Anspruch 18. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
- Es werden ein Computerprogramm, ein Computerprogrammprodukt, ein System und ein Verfahren zum Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren bereitgestellt, der zwischen Speichereinheiten verlagert wurde. Eine Operation dient zum Verlagern eines Speicherbereichs von Spuren von dem zweiten Speicher zu dem ersten Speicher. Es wird ermittelt, ob für den zu verlagernden Speicherbereich ein Speicherbereichsobjekt vorhanden ist. Das Speicherbereichsobjekt ist vorhanden, wenn der Speicherbereich zuvor zu einem vorhergehenden Zeitpunkt von dem ersten Speicher zu dem zweiten Speicher verlagert wurde. Das Speicherbereichsobjekt umfasst für jede Spur eine Schreibanzeige, die anzeigt, ob die Spur seit dem vorhergehenden Zeitpunkt, als der Speicherbereich zuvor zu dem zweiten Speicher verlagert wurde, in dem zweiten Speicher aktualisiert wurde. Als Reaktion auf das Feststellen, dass das Speicherbereichsobjekt vorhanden ist, wird ermittelt, ob die Spuren in dem Speicherbereich die Schreibanzeige aufweisen, die anzeigt, dass die Spur seit dem früheren Zeitpunkt in dem zweiten Speicher aktualisiert wurde. Die Daten für die ermittelten Spuren werden von dem zweiten Speicher auf freie Speicherplätze in dem ersten Speicher kopiert. Für jede ermittelte Spur wird der Eintrag für die ermittelte Spur in dem Speicherbereichsobjekt aktualisiert, um den freien Speicherplatz als aktive Adresse für die Spur anzuzeigen, auf den die Daten für die Spur kopiert wurden.
- Figurenliste
- Im Folgenden wird nunmehr die vorliegende Erfindung anhand eines Beispiels unter Bezug auf bevorzugte Ausführungsformen beschrieben, die in den folgenden Figuren veranschaulicht sind:
-
1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung nach dem Stand der Technik, in der eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; -
2 veranschaulicht eine Ausführungsform eines Eintrags in einem Speicherbereichsobjekt gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; -
3 veranschaulicht eine Ausführungsform eines Speicherbereichsobjekts als Speicherbereichstabelle gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; -
4 veranschaulicht eine Ausführungsform von Arbeitsschritten zum Verlagern eines Speicherbereichs von einem zweiten Speicher zu einem ersten Speicher gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; -
5 veranschaulicht eine Ausführungsform von Arbeitsschritten zum Bearbeiten einer Schreibanforderung auf eine Spur in einem Speicherbereich, der in dem ersten Speicher vorhanden ist, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; und -
6 veranschaulicht eine Ausführungsform von Arbeitsschritten zum Verarbeiten einer Schreibanforderung auf eine Spur in einem Speicherbereich, der in dem zweiten Speicher vorhanden ist, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. - DETAILLIERTE BESCHREIBUNG
-
1 veranschaulicht eine Ausführungsform eines Servers2 , der Datenspuren in einem ersten Speicher4 und einem zweiten Speicher6 speichert. Der Server2 umfasst einen Prozessor8 , der eine oder mehrere Prozessoreinheiten und einen Speicher10 umfasst, in den ein Betriebssystem12 geladen wird, um durch den Prozessor8 ausgeführt zu werden. Das Betriebssystem12 umfasst einen Speicherbereichs-Verlagerungscode14 , um die Verlagerung eines durch ein Speicherbereichsobjekt16 repräsentierten Speicherbereichs von Spuren zwischen dem ersten Speicher4 und dem zweiten Speicher6 abzuwickeln. Der Speicherbereich von Spuren kann in dem ersten Speicher4 oder in dem zweiten Speicher6 aktiv sein und zwischen dem ersten Speicher4 und dem zweiten Speicher6 verlagert werden. - Der Server
2 kann Daten mit dem ersten Speicher4 und dem zweiten Speicher6 über ein Netz, über getrennte Leitungen durch eine Speicherschnittstelle, in einer Ringarchitektur usw. austauschen. Der erste Speicher4 und der zweite Speicher6 können verschiedene Arten von Speichereinheiten umfassen, zum Beispiel einen aus Halbleiterelektronik bestehenden Halbleiterdatenträger (SSD) wie beispielsweise einen EEPROM (elektrisch löschbarer Nur-Lese-Speicher), einen Flash-Speicher, Flash-Platten, einen Arbeitsspeicher (RAM), einen Speicherklassen-Speicher (SCM) usw., magnetische Speicherplatten, optische Platten, Magnetband usw. Der Speicher8 kann eine oder mehrere flüchtige oder permanente Speichereinheiten umfassen. Der Speicherbereichs-Verlagerungscode14 kann alternativ als Anwendungscode außerhalb des Betriebssystems12 oder durch Hardwarelogik implementiert werden, beispielsweise als anwendungsspezifischer integrierter Schaltkreis (Application Specific Integrated Circuit, ASIC) oder als programmierbarer Prozessor, der einen Code in einem computerlesbaren Speichermedium ausführt. - Gemäß einer Ausführungsform können der erste Speicher
4 und der zweite Speicher6 Speicherebenen in einer hierarchischen Anordnung von Speichereinheiten umfassen, wobei durch Ebenen ein Speicher anhand seiner Eigenschaften wie beispielsweise Eingabe/Ausgabe-Zugriffsprofil, Redundanz usw. definiert wird. Zum Beispiel kann der erste Speicher4 einen Hochgeschwindigkeitsspeicher wie beispielsweise einen SSD oder ein RAM-Laufwerk und der zweite Speicher6 einen Speicher mit langsamerem Zugriff wie beispielsweise eine Festplatte oder ein Magnetbandmedium umfassen. Das Betriebssystem12 kann den Speicherbereichs-Verlagerungscode14 aufrufen, um Speicherbereiche, auf die selten zugegriffen wird und/oder die nur niedrige Priorität haben, von dem ersten Speicher4 zu dem zweiten Speicher6 zu verlagern und Speicherbereiche von Spuren, auf die häufiger zugegriffen wird und/oder die höhere Priorität haben, unter Verwendung der in der Technik bekannten hierarchischen Speicherverwaltungstechniken von dem zweiten Speicher6 zu dem ersten Speicher4 zu verlagern. Zur Einschätzung, ob Speicherbereiche zwischen höheren und niedrigeren Speichereinheiten in der Speicherhierarchie verlagert werden müssen, können außer der Häufigkeit der Datenzugriffe und der Datenpriorität auch andere oder zusätzliche Dateneigenschaften verwendet werden. - Gemäß bestimmten Ausführungsformen ermittelt das Speicherbereichsobjekt
16 Spuren, die in dem zweiten Speicher6 durchgehend gespeichert sind, was bei Ausführungsformen von Vorteil ist, bei denen der zweite Speicher6 eine Speichereinheit umfasst, die über verbesserte E/A-Zugriffsmöglichkeiten für Spuren verfügt, die in dem Medium durchgehend gespeichert sind, beispielsweise ein Festplattenlaufwerk oder ein Magnetbandlaufwerk. Die Daten für die Spuren in dem Speicherbereich müssen jedoch nicht unbedingt in dem ersten Speicher durchgehend gespeichert sein, der eine Speichereinheit umfassen kann, die nicht über verbesserte Zugriffsmöglichkeiten für durchgehend gespeicherte Spuren verfügt, zum Beispiel ein Halbleiterdatenträger (SSD) oder ein Arbeitsspeicher (RAM) . - Das Speicherbereichsobjekt
16 umfasst Einträge für jede in einem Speicherbereich verwaltete Spur. Jede Spur kann eine einzige gleich große Dateneinheit umfassen. Der Server2 kann für jeden einzelnen Speicherbereich, den der Server2 in dem ersten Speicher4 und in dem zweiten Speicher6 verwaltet, mehrere Speicherbereichsobjekte16 verwalten. Ferner können weitere Speichereinheiten vorhanden sein, sodass der Server die Verlagerung eines Speicherbereichs von Spuren zwischen mehr als zwei Speichern verwalten kann, wobei die verschiedenen Speicher unterschiedliche E/A-Zugriffsprofile aufweisen können. -
2 veranschaulicht eine Ausführungsform eines Eintrags50 in dem Speicherbereichsobjekt16 , der Informationen auf einer Spur in einem Speicherbereich enthält. Eine Spurkennung (ID)52 kennzeichnet eine Spur in dem Speicherbereich. Eine Änderungsanzeige54 zeigt an, ob die Spur in dem zweiten Speicher6 seit einem früheren Zeitpunkt aktualisiert wurde, an dem der Speicherbereich und die Spur zuvor von dem ersten Speicher4 zu dem zweiten Speicher6 verlagert wurden, und zeigt somit an, ob der erste Speicher4 die neueste Version der Spur aufweist, während die Spur und der Speicherbereich auf dem zweiten Speicher6 vorhanden sind. Eine aktive Adresse56 zeigt eine Adresse in dem ersten Speicher4 an, auf der eine neueste Version der Spur in dem ersten Speicher6 zu finden ist. Eine aktive Prüfsumme58 umfasst einen Prüfsummenwert, der aus den Daten der aktiven Adresse56 berechnet wurde. Der Prüfsummenwert kann unter Verwendung der Prüfsumme oder in der Technik bekannter Hash-Algorithmen berechnet werden, um eine eindeutige oder wahrscheinlich eindeutige Darstellung der Daten zu ermitteln. Wenn die Änderungsanzeige52 anzeigt, dass die Spur in dem zweiten Speicher6 aktualisiert wurde und dass der erste Speicher4 nicht die neueste Version der Daten aufweist, können die durch die aktive Adresse56 gekennzeichneten Daten keine aktive, sondern aufgrund der vor kürzerer Zeit erfolgten Aktualisierung in dem zweiten Speicher6 nur eine frühere Version umfassen. - Gemäß bestimmten Ausführungsformen können Datenaktualisierungen auf einen neuen, freien Speicherplatz in dem ersten Speicher
4 geschrieben werden. In einem solchen Fall würde der Speicherbereichseintrag50 für die Spur für jede frühere Version a....n der in dem ersten Speicher4 gespeicherten Spur eine frühere Versionsadresse601 ....60n und eine aus der früheren Version der Spur berechnete Prüfsumme621 ....62n der früheren Version beinhalten. Die Reihenfolge der früheren Versionsadressen601 ... 60n in der Speicherbereichstabelle80 kann auf das Alter der früheren Versionen hinweisen, wobei die neueste frühere Versionsadresse601 an erster und die älteste frühere Versionsadresse60n an letzter Stelle steht. Der Server2 kann die Anzahl der Versionen der in dem ersten Speicher4 gespeicherten Daten anhand verschiedener Faktoren beschränken, beispielsweise anhand des verfügbaren Speichervolumens, eines vorgegebenen Grenzwertes für die Anzahl der Versionen, eines zur Speicherung früherer Versionen vorgegebenen verfügbaren Speichervolumens usw. - Bei Ausführungsformen, bei denen der erste Speicher
4 einen SSD umfasst, werden neu geschriebene Daten auf einen neuen physischen Speicherplatz in dem ersten Speicher4 als Teil eines Prozesses geschrieben, der als Ausgleich nachlassender Funktionsfähigkeit (wear-levelling) bezeichnet wird, um die Schreiboperationen über die Speichereinheit zu verteilen, wenn eine logische Adresse, auf die häufig zugegriffen wird, aktualisiert wird, und so die Lebensdauer einer Halbleiterspeichereinheit zu verlängern. Durch ständiges Schreiben auf ein und denselben physischen Speicherplatz einer Halbleiterspeichereinheit können die Speicherblöcke in dem Halbleiterdatenträger beeinträchtigt werden. -
3 veranschaulicht ein Beispiel eines Speicherbereichsobjekts, das als Speicherbereichstabelle80 implementiert ist, die eine Zeile für jede Spur und Spalten mit den Informationen für das Speicherbereichsobjekt aufweist. -
4 veranschaulicht eine Ausführungsform von Arbeitsschritten, die in dem Speicherbereichs-Verlagerungscode16 implementiert ist, um einen Speicherbereich von dem zweiten Speicher6 zu dem ersten Speicher4 zu verlagern oder hochzustufen. Nach dem Verarbeiten der Anforderung zum Verlagern des Speicherbereichs (Schritt100 ) wird ermittelt (Schritt102 ), ob für den zu verlagernden Speicherbereich oder die Spuren ein Speicherbereichsobjekt16 vorhanden ist. Wenn dies nicht der Fall ist, fährt der Speicherbereichs-Verlagerungscode14 mit Schritt104 fort, um für den Speicherbereich ein neues Speicherbereichsobjekt16 zu erzeugen und die Änderungsanzeige54 für jeden Speicherbereichseintrag50 (2 ) zu löschen, um anzuzeigen, dass die Daten in dem zweiten Speicher2 nicht geändert worden sind. Für jede Spur in dem Speicherbereich16 durchläuft der Speicherbereichs-Verlagerungscode14 in dem Speicherbereich eine Schleife von Arbeitsschritten (Schritt106 bis114 ). Jede Spur wird (in Schritt108 ) von dem zweiten Speicher6 auf einen freien Speicherplatz in dem ersten Speicher4 kopiert. Der Speicherbereichs-Verlagerungscode14 berechnet (in Schritt110 ) eine Prüfsumme für die kopierte Spur und setzt (in Schritt112 ) die aktive Adresse56 für die Spur gleich dem freien Speicherplatz in dem ersten Speicher4 , auf den die Spur kopiert wurde, und setzt die aktive Prüfsumme58 gleich dem berechneten Prüfsummenwert. Die Arbeitsschritte104 bis114 können ausgeführt, wenn der Speicherbereich das erste Mal zu dem ersten Speicher4 hochgestuft oder verlagert wird. - Wenn (in Schritt
102 ) für den hochzustufenden Speicherbereich bereits ein Speicherbereichsobjekt16 vorhanden ist, war der Speicherbereich zuvor bereits von dem ersten Speicher4 zu dem zweiten Speicher6 verlagert worden, und für jede Spur in dem von dem zweiten Speicher6 zu dem ersten Speicher4 zu verlagernden oder hochzustufenden Speicherbereich wird eine Schleife der Arbeitsschritte116 bis128 durchlaufen. Wenn (in Schritt118 ) die Änderungsanzeige54 für die betreffende Spur anzeigt, dass die Spur nicht aktualisiert wurde, während sie sich auf dem zweiten Speicher6 befand, bleibt die Spur unbearbeitet, und die Daten werden nicht hinüberkopiert, da die Daten nicht geändert worden sind. Wenn (in Schritt118 ) die Änderungsanzeige54 für die Spur anzeigt, dass die Spur geändert wurde, werden die Daten für die Spur (in Schritt120 ) von dem zweiten Speicher6 auf einen freien Speicherplatz in dem ersten Speicher4 kopiert. Eine neue Adresse der früheren Version für die Spur wird gleich der aktuellen aktiven Adresse56 gesetzt, wodurch die aktuellen Daten für die Spur zu einer früheren Version werden, und eine neue Prüfsumme der früheren Version für die Spur wird gleich der aktuellen aktiven Prüfsumme58 gesetzt. Dann wird die aktive Adresse56 (in Schritt124 ) gleich der Adresse des freien Speicherplatzes gesetzt, auf den die Daten kopiert wurden, und die aktive Prüfsumme58 wird (in Schritt126 ) gleich einem Prüfsummenwert gesetzt, der aus den auf den freien Speicherplatz kopierten Daten berechnet wurde. Die Paare früherer Versionen, die früheren Versionsadressen601 ....60n und die Prüfsummen62a ....62n der früheren Versionen werden dann (in Schritt127 ) aufgezeichnet, sodass die Information der früheren Versionen nach Alter oder Versionsnummer der früheren Version geordnet sind. - Gemäß einer Ausführungsform, bei der das Speicherbereichsobjekt
16 eine Speicherbereichstabelle80 umfasst (3 ), um in Schritt127 eine Neuordnungsoperation auszuführen und aus den aktuellen aktiven Daten und der Prüfsumme eine frühere Version zu machen, kann der Speicherbereichs-Verlagerungscode14 die Spalten für die aktuellen früheren Versionen601 ....60n und62a. ...62n zu den beiden rechten Spalten verschieben, um Spalten für die früheren Versionen2 ....n+1 zu überschreiben und zu belegen und dann die aktuelle aktive Adresse56 und die aktuelle aktive Prüfsumme58 zu einer neuen aktuellsten früheren Versionsadresse601 und621 zu kopieren. Auf diese Weise werden die aktuelle Versionsadresse56 und die Prüfsumme58 zur neuesten früheren Version, um in den aktuellen Feldern56 und58 Platz zu schaffen für die auf den freien Speicherplatz kopierten aktualisierten Daten. Gemäß alternativen Ausführungsformen kann die Reihenfolge durch Zeiger oder andere Informationen angezeigt werden, die eine Reihenfolge der früheren Versionen anzeigen. - Mit den Arbeitsschritten von
4 werden nur Spuren, die seit dem Verlagern oder Hochstufen des Speicherbereichs von dem ersten Speicher4 zu dem zweiten Speicher6 geändert wurden, zu dem ersten Speicher4 hinüberkopiert, wenn der Speicherbereich von dem zweiten Speicher6 zu dem ersten Speicher4 verlagert oder hochgestuft wird. Gemäß Ausführungsformen, bei denen der erste Speicher4 einen SSD umfasst, führen diese Arbeitsschritte zu einem Ausgleich nachlassender Funktionsfähigkeit, da neue Daten auf einen neuen Speicherplatz geschrieben und unnötige Schreiboperationen auf den ersten Speicher4 vermieden werden, der seit der vorhergehenden Verlagerung zu dem ersten Speicher4 in dem zweiten Speicher6 nicht geändert worden sind. -
5 veranschaulicht durch das Betriebssystem12 ausgeführte Arbeitsschritte zur Abwicklung einer Schreiboperation auf eine Spur in einem Speicherbereich, der sich in dem ersten Speicher4 befindet. Nach dem Empfangen der Schreibanforderung berechnet das Betriebssystem12 (oder ein anderer Code) (in Schritt152 ) eine temporäre Prüfsumme für die Schreibanforderung für Zielspuren. Wenn (in Schritt154 ) die temporäre Prüfsumme mit der aktiven Prüfsumme58 für die Spur übereinstimmt, wird eine Beendigungsanzeige an die Schreibanforderung zurückgegeben, da die Daten auf der aktiven Adresse56 mit den zu schreibenden Daten identisch sind. In einem solchen Fall brauchen die Daten nicht auf den ersten Speicher4 geschrieben zu werden, wodurch der Ausgleich nachlassender Funktionsfähigkeit bei Ausführungsformen verringert wird, bei denen der erste Speicher einen SSD oder eine andere Einheit umfasst, deren Lebensdauer durch ständiges Beschreiben ein und desselben Speicherplatzes verringert wird. Wenn (in Schritt154 ) die temporäre Prüfsumme nicht mit der aktiven Prüfsumme58 übereinstimmt, ermittelt das Betriebssystem12 (in Schritt158 ), ob die temporäre Prüfsumme mit einer Prüfsumme621 ....62n der früheren Versionen übereinstimmt. Es kann Adressen und Prüfsummen von null oder mehreren früheren Versionen geben. Wenn eine Übereinstimmung gefunden wird, führt das Betriebssystem12 die Arbeitsschritte160 bis166 aus, um Daten für eine frühere Version unter den Adressen601 ...60n einer der früheren Versionen zu verwenden, da die Daten für eine frühere Version mit den zu schreibenden Daten übereinstimmen. In Schritt160 setzt das Betriebssystem12 (Schritt160 ) eine neue Adresse der früheren Versionen und eine neue Prüfsumme der früheren Versionen gleich den Werten für die aktive Adresse und die aktive Prüfsumme. Diese neue Adresse der früheren Versionen und die neue Prüfsumme der früheren Versionen werden damit zur aktuellsten Adresse601 der früheren Versionen und zur neuesten Prüfsumme621 . Das Betriebssystem12 schreibt (in Schritt162 ) die Schreibdaten für die Spur auf einen freien Speicherplatz in dem ersten Speicher und setzt (in Schritt164 ) die aktive Adresse56 gleich der Adresse des freien Speicherplatzes, auf den die Daten kopiert wurden, und setzt (in Schritt166 ) die aktive Prüfsumme58 gleich dem Prüfsummenwert, der aus den Daten in dem freien Speicherplatz berechnet wurde. Die Paare der früheren Versionen, die Adressen der früheren Versionen601 ....60n und die früheren Prüfsummen62a ....62n , werden dann (in Schritt167 ) neu geordnet, sodass die Informationen der früheren Versionen nach dem Alter oder der Versionsnummer der früheren Version geordnet sind. - Gemäß Ausführungsformen, bei denen das Speicherbereichsobjekt
16 eine Speicherbereichstabelle80 umfasst (3 ), kann das Betriebssystem12 nach dem Erzeugen der neuen Adresse der früheren Version und der neuen Prüfsumme der früheren Version zum Ausführen der Neuordnungsoperation von Schritt167 alle aktuellen Adressen601 ...60n früherer Versionen und Prüfsummen621 ...62n in der Tabelle um zwei Spalten nach rechts verschieben, um die Spaltendaten zu überschreiben und aus ihnen die Adressen602 ...60n+1 Prüfsummen622 ...62n+1 der früheren Versionen zu machen und dann die erzeugte neue Adresse und Prüfsumme der früheren Version zur Adresse601 und Prüfsumme621 der früheren Version zu machen. Gemäß alternativen Ausführungsformen kann die Reihenfolge durch Zeiger oder andere Informationen angezeigt werden, die eine Reihenfolge der früheren Versionen anzeigen. - Wenn (in Schritt
158 ) die temporäre Prüfsumme mit einer ermittelten Prüfsumme621 ....62n der früheren Versionen übereinstimmt, puffert das Betriebssystem12 (in Schritt168 ) die ermittelte frühere Adresse und die frühere Prüfsumme für die übereinstimmende frühere Prüfsumme. Das Betriebssystem12 setzt (in Schritt170 ) eine neue Adresse der früheren Version und eine neue Prüfsumme der früheren vorliegenden Erfindung gleich den Werten für die aktuelle aktive Adresse56 und der aktiven Prüfsumme58 , um aus der aktuellen aktiven Adresse und der Prüfsumme die aktuellste frühere Version zu erstellen. Nach dem Ausführen des Schrittes170 setzt das Betriebssystem12 dann (in Schritt172 ) die aktive Adresse56 und die aktive Prüfsumme58 gleich der gepufferten Adresse der früheren Version bzw. der Prüfsumme der früheren Version. Gemäß Ausführungsformen, bei denen das Speicherbereichsobjekt16 eine Speicherbereichstabelle80 umfasst (3 ), kann das Betriebssystem12 dann nach dem Erstellen der aktuell aktiven Versionen56 und58 in Schritt168 bis172 aus einer Adresse der früheren Version, z.B.60i , und einer Prüfsumme der früheren Version, z.B.62i , alle Spalten der Adressen60i +1 ... 60n früherer Versionen und der Prüfsummen62i +1 ...62n früherer Versionen im Gefolge der übereinstimmenden Adresse60i und Prüfsumme62i der früheren Version um zwei Spalten in der Tabelle 80 nach links verschieben, um die Spalten zu überschreiben, welche durch die übereinstimmende gepufferte Adresse60i und Prüfsumme62i der früheren Version belegt war, die auf die aktiven Felder56 und58 kopiert wurden. - Bei den beschriebenen Ausführungsformen von
5 versucht das Betriebssystem12 , die aktuelle aktive Adresse56 und58 oder eine Adresse601 ...60n und eine Prüfsumme621 ...62n der früheren Versionen für die neue aktive Adresse56 und die Prüfsumme58 zu verwenden, um die Daten nicht auf den ersten Speicher4 schreiben zu müssen. Auf diese Weise verwendet das Betriebssystem12 die in dem ersten Speicher4 bereits vorhandenen Daten erneut für die neuen Schreibdaten. Bei Ausführungsformen, bei denen der erste Speicher4 einen SSD umfasst, wird durch die Wiederverwendung der aktiven Daten oder Daten früherer Versionen zum Vermeiden von Schreiboperationen eine nachlassende Funktionsfähigkeit vermieden und eine längere Lebensdauer des SSD erzielt. -
6 veranschaulicht eine Ausführungsform von Arbeitsschritten, die im Code (oder einer anderen Komponente) des Betriebssystems12 implementiert sind, um eine Schreibanforderung zu bearbeiten, die an eine Zielspur in einem Speicherbereich gerichtet ist, der sich in dem zweiten Speicher6 befindet. Das Speicherbereichsobjekt16 soll schon erzeugt worden sein, wenn die Arbeitsschritte von6 gestartet werden. Als Reaktion auf das Empfangen der Schreibanforderung (in Schritt200 ) berechnet das Betriebssystem12 (in Schritt202 ) eine temporäre Prüfsumme für die Zielspur. Wenn (in Schritt204 ) die temporäre Prüfsumme mit der aktiven Prüfsumme58 für die Spur übereinstimmt und wenn (in Schritt205 ) die Änderungsanzeige54 so eingestellt ist, dass sie anzeigt, dass die Spur in dem zweiten Speicher6 zuvor so geändert wurde, dass sich die Änderung nicht auf das Speicherbereichsobjekt16 auswirkt, wird die Änderungsanzeige54 (in Schritt206 ) gelöscht, da die Spur des ersten Speichers4 die in dem zweiten Speicher6 geänderte Spur aufweist. Die Schreibdaten werden (in Schritt208 ) auf die Spur in dem zweiten Speicher geschrieben, und (in Schritt210 ) wird eine Beendigungsanzeige an die Schreibanforderung zurückgesendet. In einem solchen Fall braucht das Speicherbereichsobjekt16 nicht aktualisiert zu werden, da die Daten auf der aktiven Adresse56 für die Spur in dem ersten Speicher4 mit den auf den zweiten Speicher6 geschriebenen Daten identisch sind. Wenn (in Schritt205 ) die Änderungsanzeige54 nicht eingestellt ist, kehrt der Prozess zurück zu Schritt210 , damit nichts geschrieben wird, da die aktiven und die vor kurzem sowohl in den ersten Speicher4 als auch in den zweiten Speicher6 geschriebenen Daten bereits mit den zu schreibenden Daten übereinstimmen. - Wenn (in Schritt
204 ) die temporäre Prüfsumme nicht mit der aktiven Prüfsumme58 übereinstimmt, ermittelt das Betriebssystem12 (in Schritt212 ), ob die temporäre Prüfsumme mit einer Prüfsumme621 ....62n der früheren Versionen übereinstimmt. - Es kann Adressen und Prüfsummen von null oder mehreren früheren Versionen geben. Wenn (in Schritt
212 ) eine Übereinstimmung gefunden wurde, führt das Betriebssystem12 die Arbeitsschritte214 bis218 aus, um eine Spur für eine frühere Version auf einer der Adressen601 ...60n früherer Versionen zu verwenden, da die Spur für eine ermittelte frühere Version in dem ersten Speicher6 mit den auf die Spur zu schreibenden Daten in dem zweiten Speicher6 übereinstimmt. Das Betriebssystem12 puffert (in Schritt214 ) die ermittelte Adresse der früheren Version, z.B.60i , und die Prüfsumme der früheren Version, z.B.62i , für die übereinstimmende Prüfsumme62i der früheren Version. Das Betriebssystem12 setzt (in Schritt216 ) eine neue Adresse der früheren Version und eine neue Prüfsumme der früheren Version gleich den Werten für die aktuelle aktive Adresse56 und die aktive Prüfsumme58 . Nach dem Ausführen von Schritt216 setzt das Betriebssystem12 (in Schritt218 ) die aktive Adresse56 und die aktive Prüfsumme58 gleich der gepufferten Adresse60i der früheren Version bzw. der Prüfsumme62i der früheren Version. Das Betriebssystem12 löscht (in Schritt206 ) die Änderungsanzeige54 , um anzuzeigen, dass die Spur unverändert ist, da der erste Speicher4 die in dem zweiten Speicher6 geänderten Daten aufweist. Dann geht der Prozess zu Schritt206 und weiter zu Schritt208 , um die Schreiboperation in den zweiten Speicher6 auszuführen. - Gemäß Ausführungsformen, bei denen das Speicherbereichsobjekt
16 eine Speicherbereichstabelle80 umfasst (3 ), kann das Betriebssystem12 nach dem Erzeugen einer Adresse der früheren Version, z.B.60i , und einer Prüfsumme der früheren Version, z.B.62i , der aktuellen aktiven Versionen56 und58 , in Schritt212 bis216 , alle Spalten der Adressen60i +1 der früheren Versionen und der Prüfsummen62i +1 der früheren Versionen im Anschluss an die gepufferte übereinstimmende Adresse der früheren Version, z.B.60i , und die Prüfsumme der früheren Version, z.B.62i , um zwei Spalten in der Tabelle 80 nach links verschieben, um die Spalten zu überschreiben, die durch die gepufferte übereinstimmende Adresse60i der früheren Version und die Prüfsumme62i belegt waren. - Wenn (in Schritt
212 ) die temporäre Prüfsumme nicht mit einer Prüfsumme vorhergehender Versionen übereinstimmt, wird die Änderungsanzeige42 (in Schritt222 ) so eingestellt, dass sie anzeigt, dass die Daten in dem zweiten Speicher6 geändert wurden, worauf der Prozess mit Schritt208 fortgesetzt wird, um die Schreiboperation auf den zweiten Speicher6 zu beenden. Durch das Einstellen der Änderungsanzeige54 wird angezeigt, dass der erste Speicher6 die auf den zweiten Speicher6 geschriebenen Daten nicht aufweisen kann. In einem solchen Fall handelt es sich bei den Daten in dem ersten Speicher6 auf der aktiven Adresse56 um „nichtaktive Daten“, da die Daten für die Spur seither in dem zweiten Speicher6 geändert worden sind und die Spurdaten auf der aktiven Adresse58 als aktuellste frühere Version gelten können. Wenn die Änderungsanzeige54 eingestellt ist, können somit die aktive Adresse56 und die aktive Prüfsumme56 nicht wirklich als aktive Daten für die Spur gelten. - Gemäß den in
6 beschriebenen Ausführungsformen versucht das Betriebssystem12 , die aktuelle aktive Adresse56 und58 oder eine Adresse601 ... 60n und Prüfsumme621 ...62n der früheren Versionen für die neue aktive Adresse56 und die aktive Prüfsumme58 in dem ersten Speicher4 zu verwenden, wenn die auf der Spur in dem ersten Speicher4 bereits vorhandenen Daten mit den auf den zweiten Speicher6 zu schreibenden Daten übereinstimmen. Durch Aktualisieren des Speicherbereichsobjekts16 , um anzuzeigen, dass der erste Speicher4 die auf den zweiten Speicher6 geschriebenen Daten aufweist, braucht der erste Speicher4 anschließend nicht durch die Schreibdaten auf der Spur in dem zweiten Speicher6 aktualisiert zu werden, wenn der Speicherbereich mit der geänderten Spur von dem zweiten Speicher6 zurück zu dem ersten Speicher4 verlagert wird, da die Änderungsanzeige54 gelöscht ist. Gemäß Ausführungsformen, bei denen der erste Speicher4 einen SSD umfasst, wird durch das Verwenden der aktiven oder früheren Version der Spur in dem ersten Speicher4 für die Schreiboperation auf den zweiten Speicher6 vermieden, dass der erste Speicher während einer späteren Verlagerung von dem zweiten Speicher6 zu dem ersten Speicher4 beschrieben wird. Durch das Vermeiden der Schreiboperationen auf den ersten Speicher4 werden eine nachlassende Funktionsfähigkeit des SSD verringert und seine Lebensdauer verlängert. - Wenn es für die in den ersten Speicher
4 oder den zweiten Speicher6 geschriebene Spur kein Speicherbereichsobjekt gibt, kann gemäß den Ausführungsformen von5 und6 die Schreiboperation ohne weitere Schritte zugelassen werden. Wenn für eine Schreiboperation mehrere zu beschreibende Spuren zur Verfügung stehen, werden die Arbeitsschritte von5 und6 für jede zu beschreibende Spur ausgeführt. - Gemäß bestimmten Ausführungsformen kann der Server von
1 als Teil einer Cloud in einer Cloud-Datenverarbeitungsumgebung implementiert werden. In der Cloud-Datenverarbeitungsumgebung kann die Systemarchitektur der in die Bereitstellung der Cloud-Datenverarbeitungsumgebung einbezogenen Hardware- und Softwarekomponenten eine Vielzahl von Cloud-Komponenten umfassen, die über ein Netz wie beispielsweise das Internet Daten untereinander austauschen können. Gemäß bestimmten Ausführungsformen kann der Server von1 zum Beispiel Clients und andere Server und Software- und/oder Hardwarekomponenten in der vernetzten Cloud mit Speicherungs- und Datenverarbeitungsdiensten bereitstellen. Der Server2 kann zuverlässige Speicherungsdienste und den Zugriff auf die Speicher4 und6 bereitstellen, um die Anforderungen an die Servicequalität für die Kunden in der Cloud zu erfüllen, darunter Clients mit Speicherbedarf und andere Server, die Speicherungsdienste für die Clients bereitstellen. Der Server2 kann Daten mit den Clients austauschen, um Speicherungsdienste für die Speicher4 und6 über eine Webschnittstelle oder eine andere anwenderprogrammierbare Schnittstelle bereitzustellen.
Claims (18)
- Verfahren zum Verwalten von Daten in einem ersten Speicher und einem zweiten Speicher, wobei das Verfahren die folgenden Schritte umfasst: - Durchführen eines Arbeitsschritts zum Verlagern eines Speicherbereichs von Spuren von dem zweiten Speicher zu dem ersten Speicher; - Ermitteln, ob für den zu verlagernden Speicherbereich ein Speicherbereichsobjekt vorhanden ist, wobei das Speicherbereichsobjekt vorhanden ist, wenn der Speicherbereich zu einem früheren Zeitpunkt bereits von dem ersten Speicher zu dem zweiten Speicher verlagert wurde, und wobei das Speicherbereichsobjekt für jede Spur eine Änderungsanzeige umfasst, die anzeigt, ob die Spur seit dem Zeitpunkt, als der Speicherbereich zuvor zu dem zweiten Speicher verlagert wurde, in dem zweiten Speicher aktualisiert wurde; und - als Reaktion auf das Ermitteln, dass das Speicherbereichsobjekt vorhanden ist, Durchführen der folgenden Schritte: - Ermitteln der Spuren in dem Speicherbereich, bei denen die Änderungsanzeige anzeigt, dass die Spur seit dem früheren Zeitpunkt in dem zweiten Speicher aktualisiert wurde; - Kopieren der Daten für die ermittelten Spuren von dem zweiten Speicher auf freie Speicherplätze in dem ersten Speicher; und - für jede ermittelte Spur Aktualisieren des Eintrags der ermittelten Spur in dem Speicherbereichsobjekt, um den freien Speicherplatz, auf den die Daten für die Spur kopiert wurden, als aktive Adresse für die Spur anzuzeigen, unter der die neueste Version der Spur in dem ersten Speicher zu finden ist.
- Verfahren nach
Anspruch 1 , wobei das Speicherbereichsobjekt Informationen für frühere Versionen der Daten für die Spur in dem ersten Speicher verwaltet, wobei es für jede Spur mindestens eine frühere Version gibt und der Eintrag für die Spur für jede frühere Version eine Adresse der früheren Version umfasst, die einen Speicherplatz der Daten für die frühere Version der Spur in dem ersten Speicher anzeigt, und wobei das Verfahren ferner den folgenden Schritt umfasst: - für jede ermittelte Spur Setzen einer neuen Adresse der früheren Version gleich der aktiven Adresse für die Spur vor dem Aktualisieren der aktiven Adresse, um den freien Speicherplatz anzuzeigen, auf den die Daten von dem zweiten Speicher kopiert wurden. - Verfahren entweder nach
Anspruch 1 oder2 , wobei das Verfahren des Weiteren Folgendes umfasst: - Bereitstellen des ersten Speichers, der einen Halbleiterdatenträger umfasst; und - Bereitstellen des zweiten Speichers, der eine Speichereinheit mit einem langsameren Eingabe/Ausgabe-Zugriffsprofil als das Halbleiterdatenträgers aufweist. - Verfahren nach einem der vorhergehenden Ansprüche, wobei der zweite Speicher die Spuren in dem Speicherbereich zusammenhängend speichert und wobei das Verfahren ferner das Kopieren geänderter Spuren in dem zweiten Speicher auf nicht zusammenhängende Speicherplätze in dem ersten Speicher in Bezug auf nichtgeänderte Spuren in dem Speicherbereich umfasst.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei jeder Eintrag den Wert einer aktiven Prüfsumme, der aus den in der aktiven Adresse ermittelten Spurdaten für die mindestens eine in dem ersten Speicher verwaltete frühere Version berechnet wurde, die Adresse einer früheren Version der Spur in dem ersten Speicher und den Wert der Prüfsumme einer früheren Version umfasst, der aus den in der Adresse der früheren Version ermittelten Spurdaten ermittelt wurde, wobei das Verfahren ferner die folgenden Schritte umfasst: - Empfangen einer Schreiboperation auf eine Zielspur in dem im ersten Speicher vorhandenen Speicherbereich; - Berechnen einer temporären Prüfsumme aus der Schreiboperation für die Zielspur; - Ermitteln, ob die temporäre Prüfsumme mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen in dem Eintrag des Speicherbereichsobjekts für die Zielspur übereinstimmt; - Verwenden der aktiven Adresse oder der Adresse der früheren Version und der entsprechenden aktiven Prüfsumme oder der Prüfsumme der früheren Version, die mit der temporären Prüfsumme für die aktive Adresse und der aktiven Prüfsumme für den Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt; und - Ausführen der Schreiboperation auf die Zielspur auf einem freien Speicherplatz in dem ersten Speicher als Reaktion auf das Ermitteln, dass die temporäre Prüfsumme nicht mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen übereinstimmt.
- Verfahren nach
Anspruch 5 , wobei beim Ausführen der Schreiboperation auf die Zielspur die Daten als Reaktion auf die Feststellung, dass die temporäre Prüfsumme mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen übereinstimmt, nicht auf den ersten Speicher geschrieben werden. - Verfahren entweder nach
Anspruch 5 oder6 , wobei der Schritt des Verwendens der aktiven Adresse oder der Adresse der früheren Version und der entsprechenden Prüfsumme, die mit der temporären Prüfsumme übereinstimmt, Folgendes umfasst: - Zurückgeben einer Beendigungsanzeige an die Schreiboperation als Reaktion auf das Feststellen, dass die temporäre Prüfsumme mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen übereinstimmt; und - als Reaktion auf das Feststellen, dass die temporäre Prüfsumme mit einer der mindestens einen Prüfsummen früherer Versionen übereinstimmt, Ausführen des Folgenden: - Puffern der Adresse der früheren Version und der Prüfsumme der früheren Version für die übereinstimmende Prüfsumme der früheren Version; - Setzen einer neuen Adresse der früheren Version und einer neuen Prüfsumme der früheren Version gleich den Werten für die aktive Adresse und die aktive Prüfsumme; und - Setzen der aktiven Adresse und der aktiven Prüfsumme gleich der gepufferten Adresse der früheren Version bzw. der Prüfsumme der früheren Version nach dem Setzen der neuen Adresse der früheren Version und der neuen Prüfsumme der früheren Version. - Verfahren nach einem der vorhergehenden Ansprüche, wobei jeder Eintrag eine aktive Prüfsumme, die aus den in der aktiven Adresse erkannten Spurdaten für mindestens eine in dem ersten Speicher verwaltete frühere Version der Spur berechnet wurde, eine Adresse der früheren Version der Spur in dem ersten Speicher und eine Prüfsumme der früheren Version umfasst, die aus den in der Adresse der früheren Version erkannten Spurdaten berechnet wurde, wobei das Verfahren ferner die folgenden Schritte umfasst: - Empfangen einer Schreiboperation auf eine Zielspur in dem Speicherbereich, der in dem zweiten Speicher vorhanden ist; - Berechnen einer temporären Prüfsumme aus der Schreiboperation für die Zielspur; - Ermitteln, ob die temporäre Prüfsumme mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen in dem Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt; und - Verwenden der aktiven Adresse oder der Adresse der früheren Version und der entsprechenden aktiven Prüfsumme oder der Prüfsumme der früheren Version, die mit der temporären Prüfsumme für die aktive Adresse und die aktive Prüfsumme für den Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt, als Reaktion auf das Feststellen der Übereinstimmung.
- Verfahren nach
Anspruch 8 , wobei das Verfahren ferner den folgenden Schritt umfasst: - Setzen der Anzeige in dem Eintrag für die Zielspur in dem Speicherbereichsobjekt, um anzuzeigen, dass die Spur in dem zweiten Speicher aktualisiert wurde, als Reaktion auf das Feststellen, dass die temporäre Prüfsumme nicht mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen übereinstimmt, wobei die Anzeige anzeigt, dass die Daten für die Zielspur auf der aktiven Adresse in dem ersten Speicher keine aktuellste Version der Daten für die in dem zweiten Speicher verwaltete Spur darstellen. - Verfahren entweder nach
Anspruch 8 oder9 , wobei das Verfahren ferner die folgenden Schritte umfasst: - als Reaktion auf das Feststellen, dass die temporäre Prüfsumme mit einer der mindestens einen Prüfsummen früherer Versionen übereinstimmt, Ausführen des Folgenden: - Puffern der Adresse der früheren Version und der Prüfsumme der früheren Version für die übereinstimmende Prüfsumme der früheren Version; - Setzen der neuen Adresse der früheren Version und der neuen Prüfsumme der früheren Version gleich dem Wert der aktiven Adresse bzw. dem Wert der aktiven Prüfsumme; und - Setzen der aktiven Adresse und der aktiven Prüfsumme gleich der gepufferten Adresse der früheren Version bzw. der gepufferten Prüfsumme der früheren Version nach dem Setzen der neuen Adresse der früheren Version und der neuen Prüfsumme der früheren Version. - Verfahren nach einem der vorhergehenden Ansprüche, wobei jeder Eintrag aus einer Vielzahl von Spalten, die einen aktiven Wert der Prüfsumme in einer Spalte für aktive Prüfsummen enthalten, der aus den in der aktiven Adresse in einer Spalte für aktive Prüfsummen erkannten Spurdaten für mindestens eine frühere Version der in dem ersten Speicher verwalteten Spur berechnet wurde, einer Spalte für Adressen früherer Versionen mit einer Adresse der früheren Version der Spur in dem ersten Speicher und einer Spalte für Prüfsummen früherer Versionen mit einem Wert der Prüfsumme besteht, der aus den Spurdaten auf der Adresse der früheren Version berechnet wurde, wobei das Verfahren ferner die folgenden Schritte umfasst: - Empfangen einer Schreiboperation auf eine Zielspur in dem Speicherbereich, der in dem ersten Speicher oder dem zweiten Speicher vorhanden ist; - Berechnen einer temporären Prüfsumme aus der Schreiboperation für die Zielspur; - Ermitteln, ob die temporäre Prüfsumme mit einer der mindestens einen Prüfsummen früherer Versionen in dem Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt; - Schreiben der Adresse der früheren Version und der entsprechenden Prüfsumme der früheren Version, die mit der temporären Prüfsumme übereinstimmt, in die Spalte für aktive Adressen und in die Spalte aktiver Prüfsummen für den Eintrag in dem Speicherbereichsobjekt für die Zielspur; und - Verschieben aller Spalten früherer Adressen und aller Spalten früherer Prüfsummen mit einer älteren Version als eine Version der Adresse und Prüfsumme früherer Versionen, die in die Spalte aktiver Adressen und die Spalte aktiver Prüfsummen geschrieben wurden, um die Spalte früherer Adressen und die Spalte früherer Prüfsummen zu überschreiben, welche die Adressen der früheren Version und die entsprechende Prüfsumme der früheren Version enthalten, die in die Spalte aktiver Adressen und die Spalte aktiver Prüfsummen geschrieben wurden.
- System, das Daten mit einem ersten Speicher und einem zweiten Speicher austauscht, wobei das System Folgendes umfasst: - einen Prozessor; - einen Speicher, der einen Code enthält, der durch den Prozessor zum Ausführen von Operationen ausgeführt wird, wobei das System Folgendes umfasst: - ein Verarbeitungsmittel zum Verarbeiten einer Operation zum Verlagern eines Speicherbereichs von Spuren von dem zweiten Speicher zu dem ersten Speicher; - ein Ermittlungsmittel zum Ermitteln, ob für den zu verlagernden Speicherbereich ein Speicherbereichsobjekt vorhanden ist, wobei das Speicherbereichsobjekt vorhanden ist, wenn der Speicherbereich bereits zu einem früheren Zeitpunkt von dem ersten Speicher zu dem zweiten Speicher verlagert wurde und wobei das Speicherbereichsobjekt für jede Spur eine Änderungsanzeige umfasst, die anzeigt, ob die Spur seit dem früheren Zeitpunkt in dem zweiten Speicher aktualisiert wurde, wenn der Speicherbereich zuvor zu dem zweiten Speicher verlagert wurde; und - als Reaktion auf das Ermitteln, dass das Speicherbereichsobjekt vorhanden ist: - das Ermittlungsmittel ferner die Spuren in dem Speicherbereich ermittelt, deren Änderungsanzeige anzeigt, dass die Spur seit dem früheren Zeitpunkt in dem zweiten Speicher aktualisiert wurde; - ein Kopiermittel Daten für die ermittelten Spuren von dem zweiten Speicher auf freie Speicherplätze in dem ersten Speicher kopiert; und - für jede ermittelte Spur ein Aktualisierungsmittel zum Aktualisieren des Eintrags für die ermittelte Spur in dem Speicherbereichsobjekt, um den freien Speicherplatz anzuzeigen, auf den die Daten für die Spur als aktive Adresse für die Spur kopiert wurden unter der die neueste Version der Spur in dem ersten Speicher zu finden ist.
- System nach
Anspruch 12 , wobei das Speicherbereichsobjekt Informationen über frühere Versionen der Daten für die Spur in dem ersten Speicher verwaltet, wobei für jede Spur mit mindestens einer früheren Version der Eintrag für die Spur eine Adresse für jede frühere Version umfasst, die in dem ersten Speicher einen Speicherplatz der Daten für die frühere Version der Spur anzeigt, wobei das System ferner Folgendes umfasst: - für jede ermittelte Spur ein Einstellmittel zum Setzen einer neuen Adresse der früheren Version gleich der aktiven Adresse für die Spur vor dem Aktualisieren der aktiven Adresse, um den freien Speicherplatz anzuzeigen, auf den die Daten von dem zweiten Speicher kopiert wurden. - System entweder nach
Anspruch 12 oder13 , wobei der erste Speicher eine Halbleiterspeichereinheit umfasst und der zweite Speicher eine Speichereinheit von einem Typ mit einem langsameren Eingabe/Ausgabe-Zugriffsprofil als die Halbleiterspeichereinheit umfasst. - System nach einem der
Ansprüche 12 bis14 , wobei jeder Eintrag einen Wert der aktiven Prüfsumme, der aus den in der aktiven Adresse erkannten Spurdaten für mindestens eine frühere Version der in dem ersten Speicher verwalteten Spur berechnet wurde, eine Adresse der früheren Version der Spur in dem ersten Speicher und einen Wert der Prüfsumme der früheren Version umfasst, der aus den in der Adresse der früheren Version erkannten Spurdaten berechnet wurde, wobei das System ferner Folgendes umfasst: - ein Empfangsmittel zum Empfangen einer Schreiboperation auf eine Zielspur in dem Speicherbereich in dem ersten Speicher; - ein Berechnungsmittel zum Berechnen einer temporären Prüfsumme aus der Schreiboperation für die Zielspur; - ein Ermittlungsmittel, das ferner ermittelt, ob die temporäre Prüfsumme mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen in dem Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt; - ein Verwendungsmittel zum Verwenden der aktiven Adresse oder der Adresse einer früheren Version und der entsprechenden aktiven Prüfsumme oder der Prüfsumme einer früheren Version, die mit der temporären Prüfsumme für die aktive Adresse und der aktiven Prüfsumme für den Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt; und - ein Schreibmittel zum Schreiben der Schreibdaten auf die Zielspur auf einen freien Speicherplatz in dem ersten Speicher als Reaktion auf das Ermitteln, dass die temporäre Prüfsumme nicht mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen übereinstimmt. - System nach einem der
Ansprüche 12 bis14 , wobei jeder Eintrag den Wert einer aktiven Prüfsumme, der aus den in der aktiven Adresse für mindestens eine frühere Version der in dem ersten Speicher verwalteten Spur erkannten Spurdaten berechnet wurde, eine Adresse der früheren Version der Spur in dem ersten Speicher und eine Prüfsumme der früheren Version umfasst, die aus den in der Adresse der früheren Version erkannten Spurdaten berechnet wurde, wobei das System ferner Folgendes umfasst: - ein Empfangsmittel zum Empfangen einer Schreiboperation auf eine Zielspur in dem Speicherbereich in dem zweiten Speicher; - ein Berechnungsmittel zum Berechnen einer temporären Prüfsumme aus der Schreiboperation für die Zielspur; - ein Ermittlungsmittel, das ferner ermittelt, ob die temporäre Prüfsumme mit der aktiven Prüfsumme oder einer der mindestens einen Prüfsummen früherer Versionen in dem Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt; - ein Verwendungsmittel zum Verwenden der aktiven Adresse oder der Adresse der früheren Version und der entsprechenden aktiven Prüfsumme oder der Prüfsumme der früheren Version, die mit der temporären Prüfsumme für die aktive Adresse und der aktiven Prüfsumme für den Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt, als Reaktion auf das Ermitteln der Übereinstimmung. - System nach einem der
Ansprüche 12 bis14 , wobei jeder Eintrag aus einer Vielzahl von Spalten besteht, die einen Wert einer aktiven Prüfsumme in einer Spalte aktiver Prüfsummen umfasst, der aus den Spurdaten, die in der aktiven Adresse in einer Spalte aktiver Adressen erkannt wurden, und für mindestens eine frühere Version der in dem ersten Speicher verwalteten Spur berechnet werden kann, wobei eine Spalte der Adressen früherer Versionen mit einer Adresse der früheren Version der Spur in dem ersten Speicher und eine Spalte der Prüfsummen früherer Versionen mit einem Wert der Prüfsumme umfasst, der aus den Spurdaten auf der Adresse der früheren Version berechnet werden kann, wobei das System ferner Folgendes umfasst: - ein Empfangsmittel zum Empfangen von Schreibdaten auf einer Zielspur in dem Speicherbereich, der in dem ersten Speicher oder in dem zweiten Speicher vorhanden ist; - ein Berechnungsmittel zum Berechnen einer temporären Prüfsumme aus den Schreibdaten für die Zielspur; - ein Ermittlungsmittel zum Ermitteln, ob die temporäre Prüfsumme mit einer der mindestens einen Prüfsummen früherer Versionen in dem Eintrag in dem Speicherbereichsobjekt für die Zielspur übereinstimmt; - ein Schreibmittel zum Schreiben der Adresse der früheren Version und der entsprechenden Prüfsumme der früheren Version, die mit der temporären Version übereinstimmt, in die Spalte der aktiven Adresse und die Spalte der aktiven Prüfsumme für den Eintrag in dem Speicherbereichsobjekt für die Zielspur; und - ein Verschiebungsmittel zum Verschieben aller Spalten früherer Adressen und aller Spalten früherer Prüfsummen mit einer älteren Version als eine Version der Adresse und der Prüfsumme der früheren Version, die in die Spalte aktiver Adressen und die Spalte aktiver Prüfsummen geschrieben wurde, um die Spalte der früheren Adressen und die Spalte der früheren Prüfsummen zu überschreiben, die die Adresse der früheren Version und die entsprechende Prüfsumme der früheren Version enthalten, die in die Spalte der aktiven Adressen und die Spalte der aktiven Prüfsummen geschrieben wurden. - Computerprogrammprodukt zum Verwalten von Daten in einem ersten Speicher und einem zweiten Speicher, wobei das Computerprogrammprodukt Folgendes umfasst: - ein nichtflüchtiges computerlesbares Speichermedium, auf dem Anweisungen zum Ausführen durch den Verarbeitungsschaltkreis des Verfahrens nach einem der
Ansprüche 1 bis11 gespeichert sind.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/784,427 | 2010-05-20 | ||
US12/784,427 US8380949B2 (en) | 2010-05-20 | 2010-05-20 | Managing write operations to an extent of tracks migrated between storage devices |
PCT/EP2011/057398 WO2011144477A1 (en) | 2010-05-20 | 2011-05-09 | Managing write operations to an extent of tracks migrated between storage devices |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112011100618T5 DE112011100618T5 (de) | 2013-03-07 |
DE112011100618B4 true DE112011100618B4 (de) | 2021-03-04 |
Family
ID=44169025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112011100618.7T Active DE112011100618B4 (de) | 2010-05-20 | 2011-05-09 | Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird |
Country Status (7)
Country | Link |
---|---|
US (3) | US8380949B2 (de) |
JP (1) | JP5802263B2 (de) |
CN (1) | CN102884502B (de) |
DE (1) | DE112011100618B4 (de) |
GB (1) | GB2493679B (de) |
TW (1) | TW201211879A (de) |
WO (1) | WO2011144477A1 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
US8380949B2 (en) | 2010-05-20 | 2013-02-19 | International Business Machines Corporation | Managing write operations to an extent of tracks migrated between storage devices |
WO2012004837A1 (en) * | 2010-07-09 | 2012-01-12 | Hitachi, Ltd. | Storage apparatus and storage management method |
US9280550B1 (en) | 2010-12-31 | 2016-03-08 | Emc Corporation | Efficient storage tiering |
US8886901B1 (en) * | 2010-12-31 | 2014-11-11 | Emc Corporation | Policy based storage tiering |
US8868869B2 (en) | 2011-08-08 | 2014-10-21 | International Business Machines Corporation | Enhanced copy-on-write operation for solid state drives |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9710397B2 (en) * | 2012-02-16 | 2017-07-18 | Apple Inc. | Data migration for composite non-volatile storage device |
US10817202B2 (en) * | 2012-05-29 | 2020-10-27 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10831727B2 (en) * | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10831728B2 (en) * | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
SG11201704871QA (en) * | 2014-12-22 | 2017-07-28 | Atotech Deutschland Gmbh | Method for electromagnetic shielding and thermal management of active components |
US10216966B2 (en) * | 2015-02-25 | 2019-02-26 | Netapp, Inc. | Perturb key technique |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US10248352B2 (en) | 2016-09-15 | 2019-04-02 | International Business Machines Corporation | Management of object location in hierarchical storage |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
DE102017212181A1 (de) | 2017-07-17 | 2019-01-17 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor |
JP7007565B2 (ja) * | 2017-11-20 | 2022-01-24 | 富士通株式会社 | 情報処理装置および情報処理プログラム |
US10684947B2 (en) * | 2018-04-20 | 2020-06-16 | International Business Machines Corporation | Increasing high performance data storage utilization by reducing write operations |
CN109271098B (zh) * | 2018-07-18 | 2021-03-23 | 成都华为技术有限公司 | 一种数据迁移方法及装置 |
US11100132B2 (en) * | 2018-10-11 | 2021-08-24 | International Business Machines Corporation | Intelligent space release in asynchronous mirror journal volumes |
US11614868B2 (en) * | 2019-09-30 | 2023-03-28 | International Business Machines Corporation | Data set overlay protection |
CN113467722B (zh) * | 2021-07-26 | 2024-04-30 | 浙江大华技术股份有限公司 | 一种分布式存储系统的数据迁移方法及装置 |
US11809731B2 (en) * | 2021-09-28 | 2023-11-07 | International Business Machines Corporation | Appending data to a tape cartridge during recall operations |
CN115174771B (zh) * | 2022-06-23 | 2023-08-15 | 桂林医学院 | 一种儿童dr摄影辅助车及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265506A1 (en) * | 2008-04-17 | 2009-10-22 | Keun Soo Yim | Storage device |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5337275A (en) | 1992-10-30 | 1994-08-09 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data |
US5459850A (en) | 1993-02-19 | 1995-10-17 | Conner Peripherals, Inc. | Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks |
US5720029A (en) * | 1995-07-25 | 1998-02-17 | International Business Machines Corporation | Asynchronously shadowing record updates in a remote copy session using track arrays |
JP3604466B2 (ja) | 1995-09-13 | 2004-12-22 | 株式会社ルネサステクノロジ | フラッシュディスクカード |
US6968350B2 (en) | 2001-04-07 | 2005-11-22 | Microsoft Corporation | Method for establishing a virtual hard drive for an emulated computer system running on a host computer system |
US7356641B2 (en) | 2001-08-28 | 2008-04-08 | International Business Machines Corporation | Data management in flash memory |
EP1679585A3 (de) | 2005-01-10 | 2009-08-05 | Microsoft Corporation | System und Verfahren für eine Deckplatte und Cachespeicher mit tragbarem Flash-Speicher |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
JP2007066192A (ja) * | 2005-09-01 | 2007-03-15 | Hitachi Ltd | ストレージシステム及びその制御方法並びにコンピュータプログラム |
US7734603B1 (en) * | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
US8412682B2 (en) | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US8315984B2 (en) * | 2007-05-22 | 2012-11-20 | Netapp, Inc. | System and method for on-the-fly elimination of redundant data |
US7669023B2 (en) * | 2007-07-10 | 2010-02-23 | Hitachi, Ltd. | Power efficient storage with data de-duplication |
US7694105B2 (en) | 2007-08-22 | 2010-04-06 | Hitachi Global Storage Technologies Netherlands, B.V. | Data storage systems that implement sector sets |
CN102203717A (zh) | 2007-10-05 | 2011-09-28 | 帝斯科匹尔公司 | 固态驱动器优化器 |
US8880483B2 (en) | 2007-12-21 | 2014-11-04 | Sandisk Technologies Inc. | System and method for implementing extensions to intelligently manage resources of a mass storage system |
CA2714745A1 (en) | 2008-02-12 | 2009-08-20 | Netapp, Inc. | Hybrid media storage system architecture |
US8554983B2 (en) | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
KR101517761B1 (ko) * | 2008-07-30 | 2015-05-06 | 시게이트 테크놀로지 엘엘씨 | 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템 |
US8224782B2 (en) * | 2008-09-29 | 2012-07-17 | Hitachi, Ltd. | System and method for chunk based tiered storage volume migration |
JP2010102492A (ja) * | 2008-10-23 | 2010-05-06 | Hitachi Ltd | データアーカイブシステム |
US8380949B2 (en) | 2010-05-20 | 2013-02-19 | International Business Machines Corporation | Managing write operations to an extent of tracks migrated between storage devices |
-
2010
- 2010-05-20 US US12/784,427 patent/US8380949B2/en not_active Expired - Fee Related
-
2011
- 2011-05-09 CN CN201180022683.5A patent/CN102884502B/zh active Active
- 2011-05-09 WO PCT/EP2011/057398 patent/WO2011144477A1/en active Application Filing
- 2011-05-09 JP JP2013510561A patent/JP5802263B2/ja active Active
- 2011-05-09 GB GB1221295.7A patent/GB2493679B/en active Active
- 2011-05-09 DE DE112011100618.7T patent/DE112011100618B4/de active Active
- 2011-05-20 TW TW100117860A patent/TW201211879A/zh unknown
-
2012
- 2012-04-25 US US13/455,433 patent/US8656122B2/en not_active Expired - Fee Related
-
2014
- 2014-01-30 US US14/169,150 patent/US9218141B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265506A1 (en) * | 2008-04-17 | 2009-10-22 | Keun Soo Yim | Storage device |
Also Published As
Publication number | Publication date |
---|---|
CN102884502B (zh) | 2015-01-14 |
GB2493679A (en) | 2013-02-13 |
GB2493679B (en) | 2018-06-06 |
US20120272026A1 (en) | 2012-10-25 |
US20110286123A1 (en) | 2011-11-24 |
GB201221295D0 (en) | 2013-01-09 |
US20140149700A1 (en) | 2014-05-29 |
JP2013533991A (ja) | 2013-08-29 |
DE112011100618T5 (de) | 2013-03-07 |
US9218141B2 (en) | 2015-12-22 |
TW201211879A (en) | 2012-03-16 |
JP5802263B2 (ja) | 2015-10-28 |
US8380949B2 (en) | 2013-02-19 |
WO2011144477A1 (en) | 2011-11-24 |
CN102884502A (zh) | 2013-01-16 |
US8656122B2 (en) | 2014-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112011100618B4 (de) | Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird | |
DE102016103359B4 (de) | Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme | |
DE112014000254B4 (de) | Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten | |
DE112018002951B4 (de) | Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten | |
DE102012208141B4 (de) | Ausgleich nachlassender Funktionsfähigkeit | |
DE102013200032B4 (de) | Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher | |
DE112017002941T5 (de) | Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken | |
DE112012004571B4 (de) | Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern | |
DE102016103769A1 (de) | Inkrementelle Replikation eines Quellen-Datasets | |
DE112017005868T5 (de) | Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem | |
DE112019001480B4 (de) | Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung | |
DE112010004573T5 (de) | System und verfahren zur optimierten wiedernutzbarmachungsverarbeitung in einem virtuellen bandbibliotheksystem | |
DE102006005877A1 (de) | Adresszuordnungstabelle und Verfahren zum Erzeugen einer Adresszuordnungstabelle | |
CN106339324B (zh) | 一种选择垃圾回收块的方法及装置 | |
DE102013206744A1 (de) | Deduplizierende speicherung mit verbesserter erkennung von häufigen blöcken | |
DE112012002615T5 (de) | Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren | |
DE102014116031A1 (de) | SWAT-Befehl und API für atomare Auslagerung und Trimmen von LBAs | |
DE602004007925T2 (de) | Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen | |
DE112012004209T5 (de) | Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers | |
DE102016010277A1 (de) | Verfahren und systeme zum verbessern von speicher-journaling | |
DE102012219098A1 (de) | Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher | |
DE102016001591A1 (de) | System und Verfahren für Copy-On-Write auf einer SSD | |
DE112011103290T5 (de) | Intelligente Schreibcacheoperation für sequenzielle Datenspuren | |
DE102016001035A1 (de) | Verfahren und Vorrichtung zum Aufbau einer Online-Aktualisierung von grossen Audio-Fingerabdruck-Datenbanken in Echtzeit | |
DE102016001066A1 (de) | Zuordnung der logischen Blockadresse für Festplattenlaufwerke |
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 |