DE112020000498T5 - Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool - Google Patents

Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool Download PDF

Info

Publication number
DE112020000498T5
DE112020000498T5 DE112020000498.8T DE112020000498T DE112020000498T5 DE 112020000498 T5 DE112020000498 T5 DE 112020000498T5 DE 112020000498 T DE112020000498 T DE 112020000498T DE 112020000498 T5 DE112020000498 T5 DE 112020000498T5
Authority
DE
Germany
Prior art keywords
rank
data
storage pool
extents
volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020000498.8T
Other languages
English (en)
Inventor
Hui Zhang
Clint Hardy
Karl Allen Nielsen
Matthew Kalos
Qiang Xie
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 DE112020000498T5 publication Critical patent/DE112020000498T5/de
Pending legal-status Critical Current

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/119Details of migration of file systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Das computerimplementierte Verfahren weist das Identifizieren einer Anforderung auf, Daten, die einem Volumen zugeordnet sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist, zu migrieren, das Erzeugen einer Entsprechung zwischen logischen Volumen-Extents des Volumens und physikalischen Offset-Positionen innerhalb von Rang-Extent des Quellspeicher-Pools, und Migrieren von Daten von einem oder mehreren Rängen des Quellspeicher-Pools zu einem oder mehreren Rängen des Zielspeicher-Pools unter Verwendung der Entsprechung zwischen den logischen Volume-Extents des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools.

Description

  • TECHNISCHER BEREICH
  • Die vorliegende Erfindung bezieht sich auf Datenmigration, genauer gesagt, auf die Migration von Daten aus einem ersten Extent-Pool in einen zweiten Extent-Pool mit einer kleineren Granularität als der erste Extent-Pool.
  • HINTERGRUND
  • Extent-Pools in Speicherprodukten können unterschiedliche Extent-Größen haben. Beispielsweise kann eine 1 GB-Extent-Größe für einen großen Extent-Pool und eine 16 MB-Extent-Größe für einen kleinen Extent-Pool implementiert sein. Einige Arbeitslasten können in einem kleinen Extent-Pool im Vergleich zu einem großen Extent-Pool besser funktionieren. Die aktuellen Verfahren zur Datenübertragung sind jedoch teuer und erfordern die Verwendung eines Hosts zum Kopieren der Daten oder die Implementierung einer Flash-Kopie. Daher besteht ein Bedarf an einer effizienten Migration von Speichereinheiten aus großen Extent-Pools in kleine Extent-Pools.
  • SUMMARY
  • Ein computerimplementiertes Verfahren gemäß einer Ausführungsform weist das Identifizieren einer Anforderung zum Migrieren von Daten auf, die einem Volume (Speichereinheit) zugeordnet sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist, Erzeugen einer Beziehung zwischen logischen Volume-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools, und Migrieren von Daten von einem oder mehreren Rängen des Quellspeicher-Pools zu einem oder mehreren Rängen des Zielspeicher-Pools unter Verwendung der Beziehung zwischen den logischen Volume-Extents des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools.
  • Auf diese Weise werden Daten von einem Quellspeicher-Pool zu einem Zielspeicher-Pool migriert, dessen Rang-Extent-Größe kleiner ist als die Rang-Extent-Größe des Quellspeicher-Pools, ohne dass ein Host zum Kopieren der Daten verwendet oder eine Flash-Kopie implementiert werden muss. Dies reduziert den Zeit- und Ressourcenaufwand eines oder mehrerer Systeme, die die Datenmigration durchführen, was die Leistung des einen oder die mehreren Systeme verbessert.
  • In einer optionalen Ausführungsform weist ein Erstellen einer Beziehung ein Identifizieren von VST-Einträgen (Volume-Segmenttabelle) innerhalb des Volumens, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die zu migrierenden Daten enthalten, und ein Erstellen einer kleinen VST für jeden identifizierten VST-Eintrag.
  • Gemäß einer anderen Ausführungsform weist ein Computerprogrammprodukt zum Migrieren von Daten von einem Pool mit großem Extent zu einem Pool mit kleinem Extent ein computerlesbares Speichermedium auf, das darin verkörperte Programmanweisungen aufweist, wobei das computerlesbare Speichermedium kein transitorisches Signal an sich ist und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das ein Identifizieren einer Anforderung, unter Verwendung des Prozessors, zum Migrieren von Daten, die mit einem Volume verbunden sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einem zweiten Rang-Extent, der kleiner als der erste Rang-Extent-Größe ist, Erzeugen, unter Verwendung des Prozessors, einer Beziehung zwischen logischen Volume-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools, und Migrieren, unter Verwendung des Prozessors, von Daten von einem oder mehreren Ränge des Quellspeicher-Pools zu einem oder mehreren Ränge des Zielspeicher-Pools, unter Verwendung der Beziehung zwischen den logischen Volume-Extents des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools.
  • Ein System gemäß einer anderen Ausführungsform weist einen Prozessor und Logik auf, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist oder in den Prozessor integriert und durch diesen ausführbar ist, wobei die Logik so konfiguriert ist, dass sie eine Anforderung zum Migrieren von Daten, die mit einem Volume verbunden sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist, identifiziert, eine Beziehung zwischen logischen Volume-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools erzeugt, und Daten von einem oder mehreren Ränge des Quellspeicher-Pools zu einem oder mehreren Ränge des Zielspeicher-Pools unter Verwendung der Beziehung zwischen den logischen Volume-Extents des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools migriert.
  • Ein computerimplementiertes Verfahren gemäß einer anderen Ausführungsform weist die folgenden Schritte auf: Identifizieren einer Anforderung zum Migrieren von Daten, die einem Volume zugeordnet sind, von einem Quellspeicher-Pool zu einem Zielspeicher-Pool, Identifizieren von Volume-Segment-Tabellen-(VST)-Einträgen, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die Daten enthalten, Zuweisen und Synchronisieren kleiner VSTs für die identifizierten VST-Einträge innerhalb des Volumens, Zuweisen eines oder mehrerer Rang-Extents innerhalb des Zielspeicher-Pools, Übertragen der mit dem Volume verbundenen Daten von den Rang-Extents innerhalb des Quellspeicher-Pools, die die Daten enthalten, zu dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Ränge des Zielspeicher-Pools, Aktualisieren der kleinen VSTs, um den übertragenen Daten in dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Ränge des Zielspeicher-Pools zu entsprechen, und Freigeben der Daten aus dem einen oder den mehreren Rang-Extents innerhalb des Quellspeicher-Pools.
  • Auf diese Weise werden Daten von einem Quellspeicher-Pool in einen Zielspeicher-Pool migriert, dessen Rang-Extent-Größe kleiner ist als die Rang-Extent-Größe des Quellspeicher-Pools. Dies kann die Leistung von Anwendungen verbessern, die auf die Daten im Zielspeicher-Pool zugreifen, da die Anwendungen bei der Verwendung kleinerer Rang-Extents besser funktionieren.
  • Gemäß einer anderen Ausführungsform weist ein Computerprogrammprodukt zum Migrieren von Daten von einem Pool mit großem Umfang zu einem Pool mit kleinem Umfang ein computerlesbares Speichermedium mit darin verkörperten Programmbefehlen auf, wobei das computerlesbare Speichermedium nicht per se ein transitorisches Signal ist, und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das aufweist: Identifizieren, unter Verwendung des Prozessors, einer Anforderung, Daten, die mit einem Volume verbunden sind, von einem Quellspeicher-Pool zu einem Zielspeicher-Pool zu migrieren, Identifizieren, unter Verwendung des Prozessors, von VST-Einträgen, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die Daten enthalten, Zuweisen und Synchronisieren, Verwenden des Prozessors, Zuweisen und Synchronisieren kleiner VSTs für jeden der identifizierten VST-Einträge innerhalb des Volumens, Zuweisen eines oder mehrerer Rang-Extents innerhalb des Zielspeicher-Pools unter Verwendung des Prozessors, Übertragen der dem Volumen zugeordneten Daten von den Rang-Extents innerhalb des Quellspeicher-Pools, die die Daten enthalten, zu dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Ränge des Zielspeicher-Pools unter Verwendung des Prozessors, Aktualisieren, unter Verwendung des Prozessors, der kleinen VSTs, um den übertragenen Daten in dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Ränge des Zielspeicher-Pools zu entsprechen, und Freigeben, unter Verwendung des Prozessors, der Daten aus dem einen oder den mehreren Rang-Extents innerhalb des Quellspeicher-Pools.
  • Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung ersichtlich, die in Verbindung mit den Zeichnungen die Prinzipien der Erfindung beispielhaft veranschaulichen.
  • Figurenliste
    • 1 veranschaulicht eine Netzwerkarchitektur in Übereinstimmung mit einer Ausführungsform.
    • 2 zeigt eine repräsentative Hardware-Umgebung, die mit den Servern und/oder Clients von 1 in Übereinstimmung mit einer Ausführungsform verbunden sein können.
    • 3 veranschaulicht ein mehrstufiges Datenspeichersystem gemäß einer Ausführungsform.
    • 4 veranschaulicht ein Verfahren zum Migrieren von Daten aus einem großen Extent-Pool in einen kleinen Extent-Pool, gemäß einer Ausführungsform.
    • 5 veranschaulicht ein Verfahren zum Migrieren von Daten aus einem Quellspeicher-Pool in einen Zielspeicher-Pool mit einer kleineren Ausdehnungsgranularität als der Quell-Pool gemäß einer Ausführungsform.
    • 6A zeigt eine beispielhafte Speicherumgebung vor einer Datenmigration gemäß einer Ausführungsform.
    • 6B veranschaulicht eine beispielhafte Speicherumgebung als Reaktion auf eine Migrationsanforderung gemäß einer Ausführungsform.
    • 6C veranschaulicht eine beispielhafte Speicherumgebung während einer Datenmigration von einem Quell-Pool zu einem Ziel-Pool, gemäß einer Ausführungsform.
    • 6D veranschaulicht eine beispielhafte Speicherumgebung nach einer Datenmigration von einem Quell-Pool zu einem Ziel-Pool, gemäß einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Migrieren von Daten von einem Pool mit großem Extent zu einem Pool mit kleinem Extent. Verschiedene Ausführungsformen bieten ein Verfahren zum Erstellen einer Beziehung zwischen logischen Volume-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools und zum Migrieren von Daten von einem oder mehrerer Ränge des Quellspeicher-Pools zu einem oder mehrerer Ränge des Zielspeicher-Pools unter Verwendung der Beziehung.
  • Die folgende Beschreibung dient der Veranschaulichung der allgemeinen Prinzipien der vorliegenden Erfindung und soll die hier beanspruchten erfinderischen Konzepte nicht einschränken. Ferner können bestimmte hier beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Permutationen verwendet werden.
  • Sofern hier nicht ausdrücklich anders definiert, sind alle Begriffe so weit wie möglich auszulegen, einschließlich der Bedeutungen, die sich aus der Beschreibung ergeben, sowie der Bedeutungen, die von Fachleuten verstanden werden und/oder die in Wörterbüchern, Abhandlungen usw. definiert sind.
  • Es muss auch beachtet werden, dass die in der Beschreibung und den angehängten Ansprüchen verwendeten Singularformen „ein“, „eine“ und „die“ Pluralreferenzen aufweisen, sofern nicht anders angegeben. Es wird weiterhin verstanden, dass die Begriffe „umfasst“ und/oder‟ aufweisen‟, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, aber das Vorhandensein oder Hinzufügen von einem oder mehreren anderen Merkmalen, Ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zur Migration von Daten aus einem großen Extent-Pool in einen kleinen Extent-Pool.
  • In einer allgemeinen Ausführungsform weist ein computerimplementiertes Verfahren Folgendes auf: ein Identifizieren einer Anforderung zum Migrieren von Daten, die mit einem Volume verbunden sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist, ein Erzeugen einer Beziehung zwischen logischen Volume-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools, und ein Migrieren von Daten von einem oder mehreren Ränge des Quellspeicher-Pools zu einem oder mehreren Ränge des Zielspeicher-Pools unter Verwendung der Beziehung zwischen den logischen Volume-Extents des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools.
  • Auf diese Weise werden Daten von einem Quellspeicher-Pool zu einem Zielspeicher-Pool migriert, dessen Rang-Extent-Größe kleiner ist als die Rang-Extent-Größe des Quellspeicher-Pools, ohne dass ein Host zum Kopieren der Daten verwendet oder eine Flash-Kopie implementiert werden muss. Dies reduziert den Zeit- und Ressourcenaufwand eines oder mehrerer Systeme, die die Datenmigration durchführen, was die Leistung des einen oder der mehreren Systeme verbessert.
  • In einer anderen allgemeinen Ausführungsform weist das Erstellen der Beziehung ein Identifizieren von VST-Einträgen innerhalb des Volumens auf, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die zu migrierenden Daten enthalten, und ein Erstellen einer kleinen VST für jeden identifizierten VST-Eintrag.
  • In einer anderen allgemeinen Ausführungsform weist ein Computerprogrammprodukt zum Migrieren von Daten von einem Pool mit großem Extent-Pool zu einem kleinem Extent-Pool ein computerlesbares Speichermedium auf, das darin verkörperte Programmanweisungen aufweist, wobei das computerlesbare Speichermedium kein transitorisches Signal an sich ist und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren durchzuführen, das unter Verwendung des Prozessors eine Anforderung zum Migrieren von Daten, die mit einem Volume verbunden sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist, identifiziert, eine Beziehung, unter Verwendung des Prozessors, zwischen logischen Volume-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools erzeugt, und Daten von einem oder mehreren Rängen des Quellspeicher-Pools, unter Verwendung des Prozessors, zu einem oder mehreren Ränge des Zielspeicher-Pools, unter Verwendung der Beziehung zwischen den logischen Volume-Extents des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools migriert.
  • In einer anderen allgemeinen Ausführungsform weist ein System einen Prozessor und eine Logik auf, die in den Prozessor integriert ist und von dem Prozessor ausführbar ist oder in den Prozessor integriert und von diesem ausführbar ist, wobei die Logik so konfiguriert ist, dass sie eine Anforderung zum Migrieren von Daten, die mit einem Volume verbunden sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist, identifiziert, eine Beziehung zwischen logischen Volumen-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools erzeugt, und Daten von einem oder mehreren Ränge des Quellspeicher-Pools zu einem oder mehreren Ränge des Zielspeicher-Pools unter Verwendung der Beziehung zwischen den logischen Volumen-Extensts des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools migriert.
  • In einer anderen allgemeinen Ausführungsform weist ein computerimplementiertes Verfahren die folgenden Schritte auf: Identifizieren einer Anforderung zum Migrieren von Daten, die einem Volume zugeordnet sind, von einem Quellspeicher-Pool zu einem Zielspeicher-Pool, Identifizieren von Volume-Segment-Tabellen-(VST)-Einträgen, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die Daten enthalten, Zuweisen und Synchronisieren kleiner VSTs für die identifizierten VST-Einträge innerhalb des Volumens, Zuweisen eines oder mehrerer Rang-Extents innerhalb des Zielspeicher-Pools, Übertragen der mit dem Volume verbundenen Daten von den Rang-Extents innerhalb des Quellspeicher-Pools, die die Daten enthalten, zu dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Ränge des Zielspeicher-Pools, Aktualisieren der kleinen VSTs, um den übertragenen Daten in dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Ränge des Zielspeicher-Pools zu entsprechen, und Freigeben der Daten aus dem einen oder den mehreren Rang-Extents innerhalb des Quellspeicher-Pools.
  • Auf diese Weise werden Daten von einem Quellspeicher-Pool in einen Zielspeicher-Pool migriert, dessen Rang-Extent-Größe kleiner ist als die Rang-Extent-Größe des Quellspeicher-Pools. Dies kann die Leistung von Anwendungen verbessern, die auf die Daten im Zielspeicher-Pool zugreifen, da die Anwendungen bei der Verwendung kleinerer Rang-Extents besser funktionieren.
  • In einer anderen allgemeinen Ausführungsform enthält ein Computerprogrammprodukt zum Migrieren von Daten von einem Groß-Extent-Pool zu einem Klein-Extent-Pool ein computerlesbares Speichermedium mit darin verkörperten Programmanweisungen, wobei das computerlesbare Speichermedium kein transitorisches Signal an sich ist und wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, folgendes Verfahren durchführt: ein Identifizieren, unter Verwendung des Prozessors, einer Anforderung zum Migrieren von Daten, die mit einem Volume verbunden sind, von einem Quellspeicher-Pool zu einem Zielspeicher-Pool, ein Identifizieren, unter Verwendung des Prozessors, von VST-Einträgen, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die Daten enthalten, Zuweisen und Synchronisieren, unter Verwendung des Prozessors, Zuweisen und Synchronisieren kleiner VSTs für jeden der identifizierten VST-Einträge innerhalb des Volumens, Zuweisen eines oder mehrerer Rang-Extents innerhalb des Zielspeicher-Pools, unter Verwendung des Prozessors, Übertragen, unter Verwendung des Prozessors, der dem Volumen zugeordneten Daten von den Rang-Extents innerhalb des die Daten enthaltenden Quellspeicher-Pools zu dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Rängen des Zielspeicher-Pools, Aktualisieren, unter Verwendung des Prozessors, der kleinen VSTs, um den übertragenen Daten in dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Rängen des Zielspeicher-Pools zu entsprechen, und Freigeben, unter Verwendung des Prozessors, der Daten aus dem einen oder den mehreren Rang-Extents innerhalb des Quellspeicher-Pools.
  • 1 illustriert eine Architektur 100 gemäß einer Ausführungsform. Wie in 1 dargestellt, ist eine Vielzahl von entfernten Netzwerken 102, einschließlich eines ersten entfernten Netzwerks 104 und eines zweiten entfernten Netzwerks 106, vorgesehen. Ein Gateway 101 kann zwischen den entfernten Netzwerken 102 und einem nahen Netzwerk 108 gekoppelt sein. Im Zusammenhang mit der vorliegenden Architektur 100 können die Netzwerke 104, 106 jeweils eine beliebige Form annehmen, einschließlich, aber nicht beschränkt auf ein LAN, ein WAN wie das Internet, ein öffentliches Telefonnetz (PSTN), ein internes Telefonnetz, usw.
  • Im Einsatz dient das Gateway 101 als Eingangspunkt von den entfernten Netzwerken 102 zum nahen Netzwerk 108. Als solches kann das Gateway 101 als Router fungieren, der in der Lage ist, ein bestimmtes Datenpaket, das am Gateway 101 ankommt, weiterzuleiten, und als Switch, der den tatsächlichen Pfad in und aus dem Gateway 101 für ein bestimmtes Paket bereitstellt.
  • Des Weiteren ist mindestens ein Datenserver 114 enthalten, der mit dem nahen Netzwerk 108 gekoppelt ist und von den entfernten Netzwerken 102 über das Gateway 101 zugänglich ist. Es sollte beachtet werden, dass der/die Datenserver 114 jede Art von Computergerät und/oder Groupware aufweisen kann. Mit jedem Datenserver 114 ist eine Vielzahl von Benutzergeräten 116 gekoppelt. Die Benutzergeräte 116 können auch direkt über eines der Netzwerke 104, 106, 108 angeschlossen sein. Solche Benutzergeräte 116 können ein Desktop-Computer, ein Laptop-Computer, ein Handheld-Computer, ein Drucker oder eine andere Art von Logik sein. Es ist zu beachten, dass ein Benutzergerät 111 in einer Ausführungsform auch direkt mit einem der Netzwerke verbunden sein kann.
  • Ein Peripheriegerät 120 oder eine Reihe von Peripheriegeräten 120, z.B. Faxgeräte, Drucker, vernetzte und/oder lokale Speichereinheiten oder -systeme usw., können mit einem oder mehreren der Netzwerke 104, 106, 108 verbunden werden. Es ist zu beachten, dass Datenbanken und/oder zusätzliche Komponenten mit jeder Art von Netzwerkelement, das mit den Netzwerken 104, 106, 108 gekoppelt ist, verwendet oder in diese integriert werden können. Im Zusammenhang mit der vorliegenden Beschreibung kann sich ein Netzwerkelement auf jede Komponente eines Netzwerks beziehen.
  • Gemäß einigen Ansätzen können die hier beschriebenen Methoden und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen implementiert werden, die ein oder mehrere andere Systeme emulieren, wie z.B. ein UNIX-System, das eine IBM z/OS-Umgebung emuliert, ein UNIX-System, das virtuell eine MICROSOFT WINDOWS-Umgebung hostet, ein MICROSOFT WINDOWS-System, das eine IBM z/OS-Umgebung emuliert, usw. Diese Virtualisierung und/oder Emulation kann in einigen Ausführungsformen durch den Einsatz von VMWARE-Software verbessert werden.
  • In weiteren Ansätzen können ein oder mehrere Netzwerke 104, 106, 108 ein Cluster von Systemen darstellen, die gemeinhin als „Cloud“ bezeichnet werden. Beim Cloud Computing werden gemeinsam genutzte Ressourcen, wie z.B. Rechenleistung, Peripheriegeräte, Software, Daten, Server usw., jedem System in der Cloud in einer On-Demand-Beziehung zur Verfügung gestellt, wodurch der Zugriff und die Verteilung von Diensten über viele Rechnersysteme hinweg ermöglicht wird. Cloud Computing erfordert typischerweise eine Internetverbindung zwischen den in der Cloud betriebenen Systemen; es können aber auch andere Techniken zur Verbindung der Systeme verwendet werden.
  • 2 zeigt gemäß einer Ausführungsform eine repräsentative Hardware-Umgebung, die mit einem Benutzergerät 116 und/oder einem Server 114 aus 1 verbunden ist. Eine solche Figur veranschaulicht eine typische Hardware-Konfiguration einer Workstation mit einer zentralen Verarbeitungseinheit 210, wie z.B. einem Mikroprozessor, und einer Reihe anderer Einheiten, die über einen Systembus 212 miteinander verbunden sind.
  • Die in 2 gezeigte Workstation weist einen Direktzugriffsspeicher (RAM) 214, einen Festwertspeicher (ROM) 216, einen I/O-Adapter 218 zum Anschluss von Peripheriegeräten wie Plattenspeichereinheiten 220 an dem Bus 212, einen Benutzerschnittstellenadapter 222 zum Anschluss einer Tastatur 224, einer Maus 226, eines Lautsprechers 228, eines Mikrofons 232 und/oder anderer Benutzerschnittstellengeräte wie eines Touchscreens und einer Digitalkamera (nicht gezeigt) an den Bus 212, einen Kommunikationsadapter 234 zum Anschluss der Workstation an ein Kommunikationsnetzwerk 235 (z.B., ein Datenverarbeitungsnetzwerk) und einen Anzeigeadapter 236 zum Anschluss des Busses 212 an ein Anzeigegerät 238.
  • Auf der Workstation kann ein Betriebssystem wie das Microsoft Windows® Betriebssystem (OS), ein MAC OS, ein UNIX OS, etc. installiert sein. Es wird deutlich, dass eine bevorzugte Ausführungsform auch auf anderen als den genannten Plattformen und Betriebssystemen implementiert werden kann. Eine bevorzugte Ausführungsform kann unter Verwendung der Sprachen XML, C und/oder C++ oder anderer Programmiersprachen zusammen mit einer objektorientierten Programmiermethodik geschrieben sein. Es kann auch objektorientierte Programmierung (OOP), die zunehmend zur Entwicklung komplexer Anwendungen eingesetzt wird, verwendet werden.
  • In 3 ist nun ein Speichersystem 300 gemäß einer Ausführungsform dargestellt. Zu beachten ist, dass einige der in 3 gezeigten Elemente gemäß verschiedenen Ausführungsformen als Hardware und/oder Software implementiert sein können. Das Speichersystem 300 kann einen Speichersystem-Manager 312 zur Kommunikation mit einer Vielzahl von Medien auf mindestens einer höheren Speicherebene 302 und mindestens einer niedrigeren Speicherebene 306 aufweisen. Die höhere(n) Speicherebene(n) 302 kann/können vorzugsweise ein oder mehrere Direktzugriffsmedium(e) 304 (random access oder direct access) aufweisen, wie z.B. Festplatten in Festplattenlaufwerken (HDDs), nichtflüchtige Speicher (NVM), Solid-State-Speicher in Solid-State-Laufwerken (SSDs), Flash-Speicher, SSD-Arrays, Flash-Speicher-Arrays usw. und/oder andere, die hierin erwähnt werden oder in der Technik bekannt sind. Die untere(n) Speicherebene(n) 306 kann/können vorzugsweise ein oder mehrere Speichermedien mit geringerer Leistung 308 aufweisen, einschließlich Medien mit sequentiellem Zugriff, wie z.B. Magnetbänder in Bandlaufwerken und/oder optische Medien, langsamer zugreifende Festplatten, langsamer zugreifende SSDs usw., und/oder andere hierin erwähnte oder in der Technik bekannte Medien. Eine oder mehrere zusätzliche Speicherebenen 316 können eine beliebige Kombination von Speichermedien enthalten, wie von einem Entwickler des Systems 300 gewünscht. Außerdem kann jede der höheren Speicherebenen 302 und/oder der unteren Speicherebenen 306 eine beliebige Kombination von Speichergeräten und/oder Speichermedien enthalten.
  • Der Speichersystem-Manager 312 kann mit den Speichermedien 304, 308 auf der/den höheren Speicherebene(n) 302 und der/den niedrigeren Speicherebene(n) 306 über ein Netzwerk 310 kommunizieren, wie z.B. ein Storage Area Network (SAN), wie in 3 gezeigt, oder einen anderen geeigneten Netzwerktyp. Der Speichersystem-Manager 312 kann auch mit einem oder mehreren Host-Systemen (nicht dargestellt) über eine Host-Schnittstelle 314 kommunizieren, die ein Teil des Speichersystem-Managers 312 sein kann oder nicht. Der Speichersystem-Manager 312 und/oder jede andere Komponente des Speichersystems 300 kann in Hardware und/oder Software implementiert sein und kann einen Prozessor (nicht dargestellt) zur Ausführung von Befehlen eines in der Technik bekannten Typs verwenden wie z.B. eine Zentraleinheit (CPU), ein Field Programmable Gate Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) usw. Natürlich kann jede beliebige Anordnung eines Speichersystems verwendet werden, wie es für den Fachmann beim Lesen der vorliegenden Beschreibung ersichtlich sein wird.
  • In weiteren Ausführungsformen kann das Speichersystem 300 eine beliebige Anzahl von Datenspeicherebenen enthalten und innerhalb jeder Speicherebene die gleichen oder unterschiedliche Speichermedien enthalten. Zum Beispiel kann jede Datenspeicherebene den gleichen Typ von Speichermedien enthalten, wie HDDs, SSDs, Medien mit sequenziellem Zugriff (Band in Bandlaufwerken, optische Platte in optischen Plattenlaufwerken usw.), Medien mit direktem Zugriff (CD-ROM, DVD-ROM, usw.) oder eine beliebige Kombination von Medienspeichertypen. In einer solchen Konfiguration kann eine höhere Speicherebene 302 eine Mehrheit von SSD-Speichermedien zum Speichern von Daten in einer Speicherumgebung mit höherer Leistung enthalten, und die verbleibenden Speicherebenen, einschließlich der unteren Speicherebene 306 und der zusätzlichen Speicherebenen 316, können eine beliebige Kombination von SSDs, HDDs, Bandlaufwerken usw. zum Speichern von Daten in einer Speicherumgebung mit geringerer Leistung enthalten. Auf diese Weise können Daten, auf die häufiger zugegriffen wird, Daten mit höherer Priorität, Daten, auf die schneller zugegriffen werden muss, usw., auf der höheren Speicherebene 302 gespeichert werden, während Daten, die keines dieser Attribute aufweisen, auf den zusätzlichen Speicherebenen 316, einschließlich der unteren Speicherebene 306, gespeichert werden. Natürlich kann ein Fachmann nach dem Lesen der vorliegenden Beschreibungen viele andere Kombinationen von Speichermedientypen entwerfen, um sie in verschiedene Speicherschemata gemäß den hier vorgestellten Ausführungsformen zu implementieren.
  • Gemäß einigen Ausführungsformen kann das Speichersystem (z.B. 300) eine Logik enthalten, die so konfiguriert ist, dass sie eine Anforderung zum Öffnen eines Datensatzes empfängt, eine Logik, die so konfiguriert ist, dass sie feststellt, ob der angeforderte Datensatz auf einer niedrigeren Speicherebene 306 eines gestaffelten (tiered) Datenspeichersystems 300 in mehreren zugehörigen Teilen gespeichert ist, eine Logik, die so konfiguriert ist, dass sie jeden zugehörigen Teil des angeforderten Datensatzes auf eine höhere Speicherebene 302 des gestaffelten Datenspeichersystems 300 verschiebt, und eine Logik, die so konfiguriert ist, dass sie den angeforderten Datensatz auf der höheren Speicherebene 302 des gestaffelten Datenspeichersystems 300 aus den zugehörigen Teilen zusammenstellt.
  • Natürlich kann diese Logik als Verfahren auf einem beliebigen Gerät und/oder System oder als Computerprogrammprodukt gemäß verschiedenen Ausführungsformen implementiert werden.
  • In 4 ist nun ein Flussdiagramm eines Verfahrens 400 gemäß einer Ausführungsform dargestellt. Das Verfahren 400 kann in Übereinstimmung mit der vorliegenden Erfindung in jeder der in den 1-3 und 6A-D dargestellten Umgebungen, unter anderem, in verschiedenen Ausführungsformen ausgeführt werden. Natürlich können mehr oder weniger Vorgänge als die speziell in 4 beschriebenen in das Verfahren 400 einbezogen werden, wie ein Fachmann beim Lesen der vorliegenden Beschreibungen verstehen würde.
  • Jeder der Schritte des Verfahrens 400 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. Zum Beispiel kann in verschiedenen Ausführungsformen das Verfahren 400 teilweise oder vollständig von einem oder mehreren Servern, Computern oder einem anderen Gerät mit einem oder mehreren Prozessoren darin ausgeführt werden. Der Prozessor, z.B. eine Verarbeitungsschaltung(en), ein Chip(s) und/oder ein/eine Modul(e), der/die in Hardware und/oder Software implementiert ist/sind und vorzugsweise mindestens eine Hardwarekomponente aufweist/aufweisen, kann in jedem Gerät verwendet werden, um einen oder mehrere Schritte des Verfahrens 400 durchzuführen. Illustrative Prozessoren umfassen, sind aber nicht beschränkt auf, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder jede andere geeignete, in der Technik bekannte Rechenvorrichtung.
  • Wie in 4 dargestellt, kann das Verfahren 400 mit dem Vorgang 402 beginnen, bei dem eine Anforderung empfangen wird, Daten, die einem Volume zugeordnet sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe zu migrieren, die kleiner als die erste Rang-Extent-Größe ist.
  • Zusätzlich kann das Verfahren 400 mit der Operation 404 fortfahren, bei der eine Beziehung zwischen logischen Volume-Extents des Volumens und physischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools erstellt wird. In einer Ausführungsform weist das Erstellen der Beziehung das Identifizieren von VST-Einträgen innerhalb des Volumens auf, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die zu migrierenden Daten enthalten. Zum Beispiel kann eine VST eine logische Darstellung von Daten speichern, die innerhalb des Volumens gespeichert sind, wobei die VST eine Vielzahl von Einträgen enthält. Eine Teilmenge dieser Einträge kann innerhalb der VST identifiziert werden, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die zu migrierenden Daten enthalten.
  • Weiterhin kann eine Ausführungsform das Erstellen der Beziehung das Erstellen einer kleinen VST für jeden identifizierten VST-Eintrag aufweisen. Zum Beispiel kann für jede identifizierte Teilmenge von VST-Einträgen eine kleine VST erstellt werden. In einem anderen Beispiel kann jede der kleinen VSTs verwendet werden, um alle logischen Volume-Extents innerhalb ihres entsprechenden VST-Eintrags mit einer höheren Granularität darzustellen.
  • Weiterhin kann in einer Ausführungsform ein Erstellen der Beziehung das Einstellen der logischen Volume-Extents innerhalb der kleinen VSTs aufweisen, um auf entsprechende Offset-Positionen innerhalb der Rang-Extents innerhalb des Quellspeicher-Pools zu zeigen, die die zu migrierenden Daten enthalten. Auf diese Weise kann eine direkte Beziehung zwischen den logischen Volume-Extents der kleinen VSTs des Volumes und den Offset-Positionen innerhalb der Rang-Extents innerhalb des Quellspeicher-Pools hergestellt werden, die die zu migrierenden Daten enthalten.
  • Weiterhin kann das Verfahren 400 mit der Operation 406 fortfahren, bei dem Daten von einem oder mehreren Rängen des Quellspeicher-Pools zu einem oder mehreren Rängen des Zielspeicher-Pools migriert werden, wobei die Entsprechung zwischen den logischen Volume-Extents des Volumens und den physischen Offsetpositionen innerhalb der Rang-Extents des Quellspeicher-Pools verwendet wird. In einer Ausführungsform kann das Migrieren der Daten das Auswählen einer Vielzahl von Rang-Extents innerhalb des Zielspeicher-Pools aufweisen, um die migrierten Daten aufzunehmen. Beispielsweise kann die Vielzahl der Rang-Extents zufällig oder nach einem oder mehreren Kriterien (z.B. einer Rangnummerierung, einer Datenabrufgeschwindigkeit eines entsprechenden Rangs, einer Datenmenge, die derzeit im entsprechenden Rang gespeichert ist, usw.) ausgewählt werden.
  • In einer Ausführungsform kann das Migrieren der Daten auch das Übertragen der die Volume zugeordneten Daten von einem oder mehreren Offset-Speicherorten innerhalb der Rang-Extents des Quellspeicher-Pools zu der ausgewählten Vielzahl von Rang-Extents innerhalb des Zielspeicher-Pools aufweisen.
  • Zusätzlich kann in einer Ausführungsform das Migrieren der Daten das Freigeben der Daten aus dem einen oder mehreren Rang-Extents innerhalb des Quellspeicher-Pools aufweisen. In einer anderen Ausführungsform kann das Migrieren der Daten das Anpassen der Volume-Extents innerhalb der kleinen VSTs zum Verweisen auf die entsprechenden Speicherorte der migrierten Daten innerhalb der ausgewählten Vielzahl von Rang-Extents des Zielspeicher-Pools, die die übertragenen Daten speichern, aufweisen.
  • Auf diese Weise werden Daten von einem Quellspeicher-Pool zu einem Zielspeicher-Pool migriert, dessen Rang-Extent-Größe kleiner ist als die Rang-Extent-Größe des Quellspeicher-Pools, ohne dass ein Host zum Kopieren der Daten verwendet oder eine Flash-Kopie implementiert werden muss. Dies reduziert den Zeit- und Ressourcenaufwand eines oder mehrerer Systeme, die die Datenmigration durchführen, was die Leistung des einen oder die mehreren Systeme verbessert.
  • Unter Bezugnahme auf 5 wird nun gemäß einer Ausführungsform ein Flussdiagramm eines Verfahrens 500 zum Migrieren von Daten aus einem Quellspeicher-Pool in einen Zielspeicher-Pool mit einer kleineren Ausdehnungsgranularität als der Quell-Pool gezeigt. Das Verfahren 500 kann gemäß der vorliegenden Erfindung in jeder der in 1-3 und 6A-D dargestellten Umgebungen, unter anderem, in verschiedenen Ausführungsformen durchgeführt werden. Natürlich können mehr oder weniger Vorgänge als die speziell in 5 beschriebenen in das Verfahren 500 einbezogen werden, wie ein Fachmann beim Lesen der vorliegenden Beschreibungen verstehen würde.
  • Jeder der Schritte des Verfahrens 500 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. Zum Beispiel kann in verschiedenen Ausführungsformen das Verfahren 500 teilweise oder vollständig von einem oder mehreren Servern, Computern oder einem anderen Gerät mit einem oder mehreren Prozessoren darin ausgeführt werden. Der Prozessor, z.B. eine Verarbeitungsschaltung(en), ein Chip(s) und/oder ein Modul(e), der/die in Hardware und/oder Software implementiert ist/sind und vorzugsweise mindestens eine Hardware-Komponente aufweist/aufweisen, kann in jedem Gerät verwendet werden, um einen oder mehrere Schritte des Verfahrens 500 durchzuführen. Dargestellte Prozessoren weisen auf, sind aber nicht beschränkt auf, eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder jede andere geeignete, in der Technik bekannte Rechenvorrichtung.
  • Wie in 5 dargestellt, kann das Verfahren 500 mit dem Vorgang 502 beginnen, bei dem eine Anforderung zur Migration von Daten, die einem Volume zugeordnet sind, von einem Quellspeicher-Pool zu einem Zielspeicher-Pool identifiziert wird. In einer Ausführungsform weist das Volume ein Speicher-Volume auf, dass eine logische Darstellung der Daten in einer zusammenhängenden Weise für einen oder mehrere Hosts organisiert und darstellt. In einer anderen Ausführungsform weist die Volume eine Vielzahl von Volume-Extents auf. Zum Beispiel kann jeder Volume-Extent einen logischen Extent enthalten.
  • Zusätzlich weist ein Speicher-Pool in einer Ausführungsform einen oder mehrerer Ränge auf. In einer anderen Ausführungsform enthält jeder Rang eine redundante Menge an Speicher (z.B. ein RAID-Speicher-Array, usw.). In einer weiteren Ausführungsform werden die logisch in den Volumen dargestellten Daten physisch in einem oder mehrerer Rängen eines Speicher-Pools gespeichert. In einer Ausführungsform enthält beispielsweise jeder Rang eine Vielzahl von Rang-Extents.
  • Ferner werden in einer Ausführungsform die Ausdehnungen innerhalb eines Rangs als Einträge in einer Rangsegmenttabelle (RST) für den Rang dargestellt, wobei jede Rangausdehnung entweder voll oder leer ist. Beispielsweise repräsentiert jeder Rangbereich einen physischen Bereich. In einem anderen Beispiel stellt jeder Rangerweiterung eine vorbestimmte Menge an Speicherplatz zum Speichern von Daten innerhalb des Speicher-Pools dar. In einem weiteren Beispiel enthalten volle Rang-Extents einen logischen Speicherort von Daten innerhalb des Volumens (z.B. eine Identifikation eines Volumens und eines Volume-Extents innerhalb dieses Volumens, in dem die Daten logisch gespeichert und einem oder mehreren Hosts präsentiert werden).
  • Weiterhin enthält der Quellspeicher-Pool in einer Ausführungsform einen oder mehrere Ränge, der anfänglich alle logisch in den Volumen dargestellten Daten speichert. In einer anderen Ausführungsform werden die logisch in den Volumen dargestellten Daten physisch in mehreren Rängen innerhalb des Quellspeicher-Pools gespeichert.
  • Außerdem hat in einer Ausführungsform der Quellspeicher-Pool eine erste Rang-Extent-Größe und der Zielspeicher-Pool eine zweite Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist. Beispielsweise kann der Quellspeicher-Pool Rang-Extents mit einer Größe von 1 GB aufweisen, und der zweite Erweiterungspool kann Rang-Extents mit einer Größe von 16 MB aufweisen.
  • Darüber hinaus kann das Verfahren 500 mit der Operation 504 fortfahren, bei der VST-Einträge identifiziert werden, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, der die Daten enthält. In einer Ausführungsform werden die Volumen-Extents in Einträgen einer Volumen-Segment-Tabelle (VST) gruppiert, wobei jedes Volumen-Extent entweder voll oder leer ist. In einer Ausführungsform weisen volle Volumen-Extents beispielsweise einen physischen Speicherort der Daten innerhalb des Quellspeicher-Pools auf (z.B. eine Identifikation eines Rangs und eines Rang-Extent innerhalb dieses Rangs, in dem die mit dem Volumen-Extent verbundenen Daten gespeichert sind). In einem anderen Beispiel weist jeder Eintrag einer VST eine vorbestimmte Anzahl von aufeinanderfolgenden Volumen-Extents auf. In einem weiteren Beispiel ordnet die VST die logischen Extents des Volumens (z.B. die Volumen-Extents) den physischen Extents eines oder mehrerer Ränge innerhalb eines Speicher-Pools zu (z.B. Rang-Extents).
  • Darüber hinaus kann das Verfahren 500 mit Operation 506 fortfahren, in der kleine VSTs für die identifizierten VST-Einträge innerhalb des Volumens zugewiesen und synchronisiert werden. In einer Ausführungsform repräsentieren und verwalten die kleinen VSTs die Einträge der VST mit einer höheren Granularität. Zum Beispiel weist jeder Eintrag der VST eine gruppierte Vielzahl von Volumen-Extents auf, die nur durch eine VST-Eintragsnummer identifiziert werden. In einem anderen Beispiel kann ein einzelner VST-Eintrag durch eine kleine VST dargestellt werden, die Einträge hat, die jeder der Vielzahl von Volumen-Extents entsprechen, die innerhalb des einzelnen VST-Eintrags gruppiert sind.
  • Weiterhin kann in einer Ausführungsform die Synchronisierung der kleinen VSTs aufweisen, dass die logischen Volumen-Extents innerhalb jeder der kleinen VSTs auf entsprechende Offset-Positionen innerhalb der Rang-Extents innerhalb des Quellspeicher-Pools verweisen, die die zu migrierenden Daten enthalten. Beispielsweise stellen die Offset-Positionen eines Rang-Extent eine logische Rang-Extent-Nummer innerhalb einer logischen Darstellung des Rang-Extent dar (z.B., die einen vorbestimmten Teil des Rang-Extent anzeigt). In einem anderen Beispiel kann ein Rang-Extent der Größe 1 GB eine Vielzahl von Offset-Speicherplätzen haben, die jeweils 16 MB große Teile des Rang-Extent darstellen (so dass ein einzelner Rang-Extent von 1 GB vierundsechzig 16-MB-Offset-Speicherplätze hätte usw.). Dies ermöglicht eine Darstellung eines Rang-Extent mit einer höheren Granularität.
  • In einer anderen Ausführungsform kann die Synchronisierung der kleinen VSTs ein Auffüllen der kleinen VSTs aufweisen, so dass sie Volumen-Extents aufweisen, die Offset-Positionen innerhalb eines entsprechenden Rang-Extents innerhalb des Quellspeicher-Pools enthalten. Auf diese Weise werden die Einträge in den kleinen VSTs so aufgefüllt, dass die Organisation (z.B. Reihenfolge, Nummerierung usw.) der Einträge in den kleinen VSTs mit der Organisation der Offset-Speicherplätze in den zugeordneten Rang-Extents übereinstimmt, die den kleinen VSTs entsprechen.
  • Außerdem kann das Verfahren 500 mit Vorgang 508 fortfahren, bei dem ein oder mehrere Rang-Extents innerhalb des Zielspeicher-Pools zugeordnet werden. In einer Ausführungsform entspricht die Anzahl der Rang-Extents, die im Zielspeicher-Pool zugeordnet werden, der Größe des Volumens. Zum Beispiel wird die Gesamtgröße der Daten, die logisch durch das Volumen repräsentiert werden, im Zielspeicher-Pool zugeordnet. In einem anderen Beispiel wird die Gesamtgröße der Daten, die logisch durch das Volumen repräsentiert werden, durch eine Rang-Extent-Größe des Zielspeicher-Pools geteilt, um eine Anzahl von Rang-Extents zu ermitteln, die innerhalb des Zielspeicher-Pools zugewiesen werden. In einer anderen Ausführungsform werden die ein oder mehreren Rang-Extents zufällig, seriell, nicht seriell, usw. zugeordnet.
  • Zusätzlich können in einer Ausführungsform der eine oder die mehreren Rang-Extents nach einem oder mehreren Kriterien zugeordnet werden. Beispielsweise können der eine oder die mehreren Rang-Extents auf der Grundlage einer Datenabrufgeschwindigkeit der Ränge innerhalb des Zielspeicher-Pools zugeordnet werden. Beispielsweise kann jeder der Ränge in der Reihenfolge abnehmender Datenabrufgeschwindigkeit aufgelistet werden, und die Extents können in Rängen gemäß der Liste zugeordnet werden (z.B. beginnend mit Rängen mit der schnellsten Datenabrufgeschwindigkeit, usw.).
  • In einem anderen Beispiel können die ein oder mehreren Rang-Extents auf der Grundlage einer Datenmenge von Daten zugeordnet werden, die derzeit in jedem der Ränge innerhalb des Zielspeicher-Pools gespeichert sind. Beispielsweise können die Ränge in der Reihenfolge einer abnehmenden Menge an aktuell verfügbarem Speicherplatz aufgelistet werden, und die Extents können in Rängen gemäß der Liste zugeordnet werden (z.B. beginnend mit Rängen mit den meisten aktuell verfügbaren Extents, usw.).
  • Darüber hinaus kann das Verfahren 500 mit Operation 510 fortfahren, bei der die dem Volumen zugeordneten Daten von den Rang-Extents innerhalb des Quellspeicher-Pools, der die Daten enthält, zu dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Rängen des Zielspeicher-Pools übertragen werden. In einer Ausführungsform weist das Übertragen der Daten ein Ermitteln einer Position aller Offset-Positionen innerhalb der Rang-Extents eines oder mehrerer RSTs des Quellspeicher-Pools auf, die allen zuvor zugeordneten Volume-Extents innerhalb des Volume entsprechen. In einer anderen Ausführungsform weist das Übertragen der Daten das Ermitteln aller zugeordneten Rang-Extents innerhalb des Zielspeicher-Pools auf.
  • In einer weiteren Ausführungsform weist das Übertragen der Daten ein Übertragen der in den Offsetpositionen der Rang-Extents innerhalb des Quellspeicher-Pools gespeicherten Daten zu den entsprechenden zugeordneten Rang-Extents innerhalb des Zielspeicher-Pools auf. Beispielsweise werden Daten, die in einem Offset-Speicherplatz eines Rang-Extent eines Rangs des Quellspeicher-Pools gespeichert sind, in einen zugeordneten Rang-Extent des Zielspeicher-Pools übertragen.
  • Außerdem kann das Verfahren 500 mit Vorgang 512 fortfahren, bei dem die kleinen VSTs aktualisiert werden, um den übertragenen Daten in dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Rängen des Zielspeicher-Pools zu entsprechen. Beispielsweise werden die Volumen-Extents innerhalb der kleinen VSTs des Volumens so angepasst, dass sie auf die entsprechenden Speicherplätze innerhalb des zugeordneten einen oder der mehreren Rang-Extents des Zielspeicher-Pools zeigen, in denen die übertragenen Daten gespeichert sind.
  • Zusätzlich kann das Verfahren 500 mit der Operation 514 fortfahren, bei der die Daten aus dem einen oder den mehreren Rang-Extents innerhalb des Quellspeicher-Pools freigegeben werden. In einer Ausführungsform kann das Freigeben der Daten ein Löschen der Daten aus dem einen oder den mehreren Rang-Extents innerhalb des Quellspeicher-Pools aufweisen.
  • Beispielsweise identifiziert ein Volumen-Extent innerhalb einer kleinen VST ursprünglich einen Offset-Speicherort innerhalb einer logischen Darstellung eines Rang-Extent im Quellspeicher-Pool, an dem die durch dieses Volumen-Extent logisch dargestellten Daten physisch gespeichert sind. In einem anderen Beispiel wird das Volumen-Extent innerhalb der kleinen VST aktualisiert, um den zugeordneten Rang-Extent des Zielspeicher-Pools zu identifizieren, in den die mit dem Volumen-Extent verbundenen Daten migriert wurden. In einem weiteren Beispiel werden die gespeicherten Daten vom Offset-Speicherort innerhalb der logischen Darstellung des Rang-Extent im Quellspeicher-Pool in einen zugeordneten Rang-Extent des Zielspeicher-Pools migriert.
  • Auf diese Weise stimmen die Volume-Extents innerhalb der kleinen VSTs des Volumens mit den zugeordneten Rang-Extents im Zielspeicher-Pool überein, in dem die mit diesen Volume-Extents verbundenen Daten gespeichert werden. Beispielsweise stimmt die Position eines Volume-Extent innerhalb einer kleinen VST des Volumens mit einem zugeordneten Rang-Extent überein, in dem die Daten für den Eintrag gespeichert sind. Dies vereinfacht und beschleunigt den Datenabruf innerhalb des Zielspeicher-Pools.
  • In einer Ausführungsform wird einer oder mehreren Anwendungen der Zugriff auf die Daten im Zielspeicher-Pool ermöglicht. Beispielsweise können eine oder mehrere Anwendungen, die auf einem oder mehreren Hosts laufen, eine oder mehrere Datenanforderungen an das Volume senden, und das Volume kann die Datenanforderungen an den Zielspeicher-Pool weiterleiten, um den Datenzugriff zu implementieren. In einer anderen Ausführungsform können die eine oder die mehreren Anwendungen effizienter laufen, wenn sie auf Daten mit der kleineren Rang-Extent-Granularität im Zielspeicher-Pool im Vergleich zur größeren Rang-Extent-Granularität im Quellspeicher-Pool zugreifen.
  • Auf diese Weise werden Daten aus einem Quellspeicher-Pool in einen Zielspeicher-Pool migriert, dessen Rang-Extent-Größe kleiner ist als die Rang-Extent-Größe des Quellspeicher-Pools. Dies kann die Leistung von Anwendungen verbessern, die auf die Daten im Zielspeicher-Pool zugreifen, da die Anwendungen bei Verwendung kleinerer Rang-Extents eine bessere Leistung erbringen können.
  • 6A zeigt eine beispielhafte Speicherumgebung 600 vor einer Datenmigration gemäß einer Ausführungsform. Wie dargestellt, speichert eine VST 602 eine logische Darstellung von Daten, die in einem Volumen 0 604 gespeichert sind. Zusätzlich speichern RSTs eine physische Darstellung der Daten, wie sie in einem Rang 3 624 eines Quell-Pools 0 626 gespeichert sind. Außerdem beträgt die Rang-Granularität des Quell-Pools 0 626 1 GB. Zum Beispiel hat jeder Rang-Extent innerhalb des Quell-Pools 0 626 eine Größe von 1 GB.
  • Des Weiteren beziehen sich die VST-Einträge 632 und 634 des vollen Volumen-Extent auf die Stellen 630A-B innerhalb der RSTs, an denen die Daten physisch innerhalb des Quell-Pools 0 626 gespeichert sind. Zum Beispiel weist Rang-Extent 0 630A von Rang 3 624 des Quell-Pools 0 626 eine Verknüpfung zum VST-Eintrag 0 632 innerhalb des Volumens 0 604 auf. Umgekehrt weist der VST-Eintrag 0 632 im Volumen 0 604 eine Verknüpfung zum Rang-Extent 0 630A des Rangs 3 624 des Quell-Pools 0 626 auf.
  • Ebenso weist der Rang-Extent 64 630B von Rang 3 624 des Quell-Pools 0 626 eine Verknüpfung zum VST-Eintrag 2 634 im Volumen 0 604 auf. Umgekehrt weist der VST-Eintrag 2 634 innerhalb des Volumens 0 604 eine Verknüpfung zum Rang-Extent 64 630B des Rangs 3 624 des Quell-Pools 0 626 auf.
  • Auf diese Weise wird eine Verbindung zwischen einer logischen Repräsentation von Daten im Volumen 0 604 und einer physischen Repräsentation von Daten im Quell-Pool 0 626 abgebildet.
  • 6B zeigt eine beispielhafte Speicherumgebung 600 als Reaktion auf eine Migrationsanforderung, gemäß einer Ausführungsform. Die Rang-Granularität eines Ziel-Pool Ziel-Pools 1 622 beträgt 16 MB. Zum Beispiel hat jeder Rang-Extent innerhalb des Ziel-Pool Ziel-Pools 1 622 eine Größe von 16MB. Da die Ranggranularität des Quell-Pools 0 626 1 GB beträgt, hat der Ziel-Pool Ziel-Pool 1 622 eine kleinere Ranggranularität als der Quell-Pool 0 626.
  • In einer Ausführungsform wird eine Anforderung empfangen, Daten vom Quell-Pool 0 626 zum Ziel-Pool 1 622 zu migrieren. In einer anderen Ausführungsform werden als Reaktion auf die Migrationsanforderung kleine VSTs 614 und 616 innerhalb des Volumens 0 604 erstellt. Beispielsweise werden die kleinen VSTs 614 und 616 verwendet, um die Volumen-Extents innerhalb des VST-Eintrags 0 632 bzw. des VST-Eintrags 2 634 darzustellen.
  • Zusätzlich werden in einer Ausführungsform die Extents 618A-E und 619A-E innerhalb der kleinen VSTs 614 und 616 aktualisiert, um Verknüpfungen zu den entsprechenden Offsetpositionen 640A-E und 641A-E der zugeordneten Rang-Extents 630A und 630B aufzuweisen. Die logischen Darstellungen 636 und 638 der Offsetpositionen 640A-E und 641A-E der zugeordneten Rang-Extents 630A und 630B werden dargestellt. Beispielsweise kann das Volumen-Extent 0 618A des kleinen VST 614 aktualisiert werden, um auf die Offset-Position 0 640A der logischen Darstellung 636 des zugeordneten Rang-Extent 0 630A zu zeigen, das Volumen-Extent 1 618B des kleinen VST 614 kann aktualisiert werden, um auf die Offset-Position 1 640B der logischen Darstellung 636 des zugeordneten Rang-Extent 0 630A zu zeigen, usw.
  • Auf diese Weise kann eine Korrelation zwischen den Extents 618A-E und 619A-E innerhalb der kleinen VSTs 614 und 616 und den Offsetpositionen 640A-E und 641A-E der zugeordneten Rang-Extents 630A und 630B hergestellt werden.
  • 6C zeigt gemäß einer Ausführungsform eine beispielhafte Speicherumgebung 600 während einer Datenmigration von einem Quell-Pool 0 626 zu einem Ziel-Pool 1 622. Wie gezeigt, werden Rang-Extents 620A-E und 621A-E innerhalb des Zielrangs 0 610 und des Zielrangs 1 612 im Ziel-Pool 1 622 zugeordnet. Es sollte beachtet werden, dass, obwohl die zugewiesenen Rang-Extents 620A-E und 621A-E seriell sind, die Zuweisung möglicherweise nicht seriell durchgeführt wird.
  • Zusätzlich können, obwohl Zielrang 0 610 und Zielrang 1 612 gezeigt sind, Rang-Extents von anderen Rängen innerhalb des Ziel-Pools 622 zugeordnet werden. Beispielsweise können Rang-Extents unter den Rängen innerhalb des Ziel-Pools 622 zufällig zugeordnet werden, entsprechend einer Datenabrufgeschwindigkeit der Ränge, entsprechend einer Datenmenge, die derzeit in den Rängen gespeichert ist, usw.
  • Des Weiteren wurden, wie gezeigt, Daten, die physikalisch in der Offsetposition 0 640A des Rangs 0 630A des Rangs 3 624 gespeichert sind, in den Rang-Extent 1 621B des Zielrangs 1 612 übertragen, und der Volumen-Extent 0 618A des kleinen VST 614 wird aktualisiert, um auf den Rang-Extent 1 621B zu verweisen. Umgekehrt wird der Rang-Extent 1 621B des Zielrangs 1 612 des Quell-Pools 1 622 aktualisiert, um eine Verknüpfung zum Volumen-Extent 0 618A innerhalb des Volumens 0 604 aufzuweisen. Dies führt zu veralteten Daten an der Offsetposition 0 640A.
  • In ähnlicher Weise wurden, wie gezeigt, Daten, die physikalisch im Offset-Speicherplatz 2 640C gespeichert sind, in den Rang-Extent 1 620B des Zielrangs 0 610 übertragen, und der Volumen-Extent 2 618C des kleinen VST 614 wird aktualisiert, um auf den Rang-Extent 1 620B zu zeigen. Umgekehrt wird der Rang-Extent 1 620B des Zielrangs 0 610 des Quell-Pools 1 622 aktualisiert, um eine Verknüpfung zum Volumen-Extent 2 618C innerhalb des Volumens 0 604 aufzuweisen. Dies führt zu veralteten Daten an der Offsetposition 2 640C.
  • Außerdem wurden, wie gezeigt, Daten, die physisch im Offset-Speicher 65 641 B gespeichert sind, in den Rang-Extent 0 621A des Zielrangs 1 612 übertragen, und der Volumen-Extent 129 619B des kleinen VST 616 wird aktualisiert, um auf den Rang-Extent 0 621A zu zeigen. Umgekehrt wird der Rang-Extent 0 621A des Zielrangs 1 612 des Quell-Pools 1 622 aktualisiert, um eine Verknüpfung zum Volumen-Extent 129 619B innerhalb des Volumens 0 604 aufzuweisen. Dies führt zu veralteten Daten an der Offsetposition 65 641B.
  • Außerdem wurden, wie gezeigt, Daten, die physikalisch im Offset-Speicher 127 641E gespeichert sind, in den Rang-Extent 2 620C des Zielrangs 0 610 übertragen, und der Volumen-Extent 191 619E des kleinen VST 616 wird aktualisiert, um auf den Rang-Extent 2 620C zu zeigen. Umgekehrt wird der Rang-Extent 2 620C des Zielrangs 0 610 des Quell-Pools 1 622 aktualisiert, um eine Verknüpfung zum Volumen-Extent 191 619E innerhalb des Volumens 0 604 aufzuweisen. Dies führt zu veralteten Daten an der Offsetposition 127 641 E.
  • 6D zeigt eine beispielhafte Speicherumgebung 600 nach einer Datenmigration von einem Quell-Pool 0 626 zu einem Ziel-Pool 1 622, gemäß einer Ausführungsform. Wie dargestellt, werden alle Daten, die physisch in den Rang-Extents 0 630A und 64 630B des Quell-Pools 0 626 gespeichert sind, in zugeordnete Rang-Extents innerhalb von Rang 0 610 und Rang 1 612 des Ziel-Pools 1 622 übertragen. Zusätzlich werden die entsprechenden Volumen-Extents in den kleinen VSTs 614 und 616 aktualisiert, um auf die entsprechenden Rang-Extents zu zeigen, die nun die migrierten Daten speichern.
  • Dies führt zu veralteten Daten in allen Offsetpositionen der Rang-Extents 0 630A und 64 630B, und die Daten in diesen Rang-Extents 0 630A und 64 630B werden daher freigegeben.
  • Auf diese Weise können Daten aus dem Quell-Pool 0 626 in den Ziel-Pool 1 622 migriert werden, und das Volumen 0 604 kann aktualisiert werden, um die Migration widerzuspiegeln.
  • Migration von Volumen aus einem Groß-Extent-Pool in einen Klein-Extent-Pool
  • Extent-Pools in Speicherprodukten können unterschiedliche Extent-Größen haben. DS8000 kann z.B. eine Extent-Größe von 1 GB für einen großen Pool und 16 MB für einen kleinen Pool verwenden. Einige Workloads funktionieren besser mit kleinen Pools, während andere besser in Groß-Extent-Pools funktionieren. Es besteht daher die Notwendigkeit, Volumina über unterschiedlich große Extent-Pools zu migrieren, wenn sich die Arbeitslast ändert.
  • Extent-Migration ist ein Baustein für Volume-Migration. Zu Beginn der Extent-Migration werden Rank-Extents in dem Ziel-Extent-Pool als Migrationsziel des Quell-Extent allokiert. Wenn die Extent-Größe von des Quell- und Ziel-Extent-Pool die gleiche ist, weist der Migrationsprozess ein Allokieren eines Extent in dem Ziel-Pool, eine Migration der Daten von der Quelle zum Ziel, ein Zurückhalten von Backend-I/O während der Migration (oder Nutzung von Spiegel-Schreibvorgängen) und eine Umschaltung des I/O zum Ziel, sobald die Migration abgeschlossen wurde.
  • Es wird ein Verfahren zur effizienten Migration von Daten aus einem Groß-Extent-Pool in einen Klein-Extent-Pool offengelegt, bei dem die Migration wieder aufgenommen werden kann, wenn sie (geplant oder ungeplant) unterbrochen wird.
  • In einer Ausführungsform ist eine Rang-Segment-Tabelle (RST) eine Abbildungstabelle für einen Rang (Array), die den Zustand der Rang-Extents und der logischen Volumen-Extents beschreibt, zu denen die physischen Rang-Extents gehören. Angenommen, Rang rO ist 1T und die Extent-Größe ist 1G, dann würde diese RST-Tabelle 1024 Einträge haben, wobei jeder Eintrag einen physischen Extent darstellt. Wenn Rang-Extent 0 dem logischen Extent 1 des Volumens 0x1010 zugeordnet ist, dann enthält der Eintrag in RST die Information, dass der physische Extent-Zustand zugeordnet ist, und er ist dem logischen Extent 1 des Volumens 0x1010 zugeordnet.
  • Zusätzlich ist in einer Ausführungsform eine Volume-Segment-Tabelle (VST) eine Abbildungstabelle für Volumen, die die logische Ausdehnung des Volumens auf die physische Ausdehnung des Rangs abbildet, so dass man die physische Position leicht identifizieren kann, wenn Host-E/A ankommt, die auf einer Volumen-LBA-Grenze liegt.
  • Des Weiteren ist in einer Ausführungsform eine Small-Volume-Segment-Tabelle (smVST) auch eine Abbildungstabelle für ein Volumen, die 64 Einträge enthält, wobei jeder Eintrag einen kleinen logischen Umfang (16 MB) auf den physischen Umfang des Rangs abbildet, so dass man einen physischen Speicherort leicht identifizieren kann, wenn eine Host-E/A ankommt, die auf einer Volumen-LBA-Grenze liegt.
  • Weiterhin ist in einer Ausführungsform nur ein RST auf den Festplatten persistent, und ein VST wird bei Bedarf auf der Grundlage des RST erstellt und in den Speicher geladen.
  • In einer Ausführungsform sorgen die folgenden Schritte für die Migration von einem Groß-Extent-Pool zu einem Klein-Extent-Pool:
    1. 1. Vorprüfung, um sicherzustellen, dass die Migrationsanforderung erfüllt werden kann.
    2. 2. Quiesce-Thin-Provisioning-Schreiben, wenn es sich um ein Thin-Provisioning-Volumen handelt.
    3. 3. Aktualisieren der Volume-Extent-Pool-ID auf den Ziel-Extent-Pool, Einschalten des Volume-Flag, um anzuzeigen, dass die Speicherplatzzuweisung läuft, und „härten“ die Volume-Struktur.
    4. 4. Ordnen zielgerichteter RST-Objekte für Kundendaten.
    5. 5. Wenn, wie bei Thin-Provisioning-Volumen, der große Quell-Extent bereits zugewiesen ist, Allokieren von 64 kleinen Extents im Ziel-Extent-Pool und Markieren als DSR_TGT. Wenn der Quell-Extent nicht zugewiesen ist, brauchen keine kleinen Extents im Ziel-Extent-Pool zugewiesen werden.
    6. 6. Zuordnen der Ziel-RST-Objekte für die Metadaten.
    7. 7. Fortsetzen des Thin-Provisioning-Schreibvorgangs, wenn es sich um ein Thin-Provisioning-Volumen handelt.
    8. 8. „Härtet“ der geänderte RST-Objekte durch Verwendung einer RST-Changed-Bitmap.
    9. 9. Beenden des Thin-Provisioning-Schreibvorgangs, wenn es sich um ein Thin-Provisioning-Volumen handelt.
    10. 10. Allokieren von smVST, wenn sich alle Einträge in einem nicht zugeordneten Zustand befinden.
    11. 11. Senden einer E-Mail an die Peer-LPAR, um smVST zu synchronisieren (dieser Schritt gilt nur für ESE-Volumen).
    12. 12. Fortsetzen von Thin-Provisioning-Schreiben, wenn es sich um ein Thin-Provisioning-Volumen handelt.
    13. 13. Ausschalten des Volume-Zuordnungsflag, Einschalten eines Volume-Migrationsflag und „härten“ der Volume-Struktur.
    14. 14. Fortfahren mit der Migration von Volume-Extents.
    15. 15. Suchen eines Small Extent im Status DSR_TGT im Ziel-Pool und Koppeln mit dem Small-Extent-Chunk der Quelle, um die Small-Extent-Migration zu starten; halten der I/Os in 16-MB-Einheiten.
    16. 16. Wechseln zu einer Metadaten-Aktualisierungsphase, sobald sich die 16 MB Kundendaten aus dem Quell-Extent im Ziel befinden.
    17. 17. Ändern und „härten“ des Zustands des Ziel-RST in den Zustand TGT_CMPLT.
    18. 18. Allokieren einer smVST, wenn noch keine smVST vorhanden ist.
    19. 19. Initialisieren von smVST-Einträgen, um auf die zugehörigen kleinen Chunks in einem Quell-Großbereich zu verweisen.
    20. 20. Aktualisieren der smVST, um auf den neuen kleinen Ziel-Extent auf allen verfügbaren Clustern zu verweisen.
    21. 21. Freigeben aller gehaltenen Stage & Destage I/Os.
    22. 22. CACHE SCAN, damit CACHE alle geänderten Spuren im Extent vernichtet.
    23. 23. Freigeben des Quell-Extentionsbereiches, wenn es sich um den letzten kleinen Chunk handelt, der zum Ziel migriert wird; andernfalls zurückgehen zu Schritt 15, um den nächsten kleinen Chunk zu behandeln.
    24. 24. Ändern und „härten“ des Zustands des Ziel-RST in einen ALLOCATED-Zustand.
  • Verfahren zum Zuordnen von Speicherplatz und Zeitplan für die Zuweisung/Aktualisierung der smVST-Abbildungstabelle
  • In einer Ausführungsform wird im Ziel-Extent-Pool vor Beginn der Migration Speicherplatz zugewiesen. 1GB Large Extent entspricht 64 16MB Small Extents. Wenn also das Quell-Groß-Extent zugeteilt ist, sind im Ziel-Pool 64 Small Extents vorreserviert. Wenn der Quell-Groß-Extent noch nicht allokiert wurde, muss auch im Ziel-Pool kein Speicherplatz bereitgestellt werden.
  • Ein smVST-Eintrag sollte für die 64 Small-Extent-Chunks allokiert werden, wenn die Quelle noch nicht zugeordnet ist; auf diese Weise können man, sobald I/O beim Schreiben auf einen der 64 Small-Extent-Chunks eintrifft, einen Small-Extent aus dem Small-Extent-Pool des Ziels allokieren und den smVST-Eintrag aktualisieren, damit er auf den Small-Extent des Ziels zeigt. Die smVST-Aktualisierung muss zwischen den Speicherknoten synchronisiert werden.
  • Wenn sich der Quell-Groß-Extent in einem allokierten Zustand befindet, kann man entweder den smVST noch vorher zuordnen und seine Einträge aktualisieren, um auf die zugehörigen kleinen Chunks im Groß-Extent zu verweisen, oder man verzögert die Zuordnung des smVST bis zu dem Zeitpunkt, an dem der erste 16 MB große kleine Chunk des Groß-Extent in den kleinen Ziel-Extent migriert wurde.
  • Methode zum Zurückhalten der Backend-E/A
  • In einer Ausführungsform wird der Backend-I/O in einer 16 MB großen Small-Extent-Einheit gehalten. Während der Migration des 16-MB-Small-Chunks vom Large-Extent zum zugehörigen Small-Extent im Target-Pool wird der Backend-I/O sowohl in die Quelle als auch in das Ziel geschrieben, da die Migration von der Quelle zum Target durchgeführt wird. Der Wechsel zu einer Metadaten-Aktualisierungsphase wird durchgeführt, sobald die Kundendaten aus dem Small Chunk der Quelle größtenteils im Ziel sind. Das Ändern des RST-Zustands des Ziels in einen TGT_CMPLT-Zustand zeigt an, dass die Kopie abgeschlossen ist, und der zugehörige smVST-Eintrag wird aktualisiert, um auf den Ziel-Extent zu verweisen, sodass der I/O anschließend auf das Ziel geleitet werden kann.
  • Verfahren zur Behandlung der Migrationsunterbrechung aufgrund eines geplanten/ungeplanten Neustarts
  • Wenn die Migration durch einen geplanten/ungeplanten Neustart unterbrochen wird, befindet sich ein Teil der 1-GB-Daten im Quell-Pool und die anderen Teile befinden sich im Ziel-Pool. Wie wählt man aus, welche Kopien verwendet werden? Wie baut man die VST so auf, dass sie auf die richtigen Rang-Segmente abgebildet wird? In einer Ausführungsform triumphiert immer der kleine Rang: Der Prozess kann ein Scannen von Rängen und ein Erstellen einer VST für jeden RST aufweisen, der sich entweder im Zustand TGT_CMPLT oder ALLOCATED befindet. Eine RST aus kleinen Rängen überschreibt immer eine RST aus großen Rängen. Das liegt daran, dass der I/O so umgeschaltet wurde, dass er auf einen kleinen Bereich abzielt, wenn sich der kleine Bereich bereits in einem TGT_CMPLT- oder ALLOCATED-Zustand befindet. Daher muss man den zugehörigen smVST überschreiben, damit er auf den kleinen Ziel-Extent verweist.
  • Die vorliegende Erfindung kann ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) aufweisen, auf dem sich computerlesbare Programmanweisungen befinden, die einen Prozessor veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Das computerlesbare Speichermedium kann eine greifbare Vorrichtung sein, die Befehle zur Verwendung durch eine Befehlsausführungsvorrichtung aufbewahren und speichern kann. Das computerlesbare Speichermedium kann zum Beispiel, ist aber nicht beschränkt auf, eine elektronische Speichervorrichtung, eine magnetische Speichervorrichtung, eine optische Speichervorrichtung, eine elektromagnetische Speichervorrichtung, eine Halbleiterspeichervorrichtung oder jede geeignete Kombination der vorgenannten sein. Eine nicht erschöpfende Liste spezifischerer Beispiele für das computerlesbare Speichermedium weist Folgendes auf: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Compact-Disc-Festwertspeicher (CD-ROM), eine Digital Versatile Disk (DVD), ein Memory-Stick, eine Diskette, eine mechanisch kodierte Vorrichtung, wie z.B. Lochkarten oder erhabene Strukturen in einer Nut mit darauf aufgezeichneten Befehlen und jede geeignete Kombination der vorgenannten. Ein computerlesbares Speichermedium, wie es hier verwendet wird, ist nicht so zu verstehen, dass es sich um transitorische Signale per se handelt, wie z.B. Radiowellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtimpulse, die durch ein Glasfaserkabel laufen), oder elektrische Signale, die durch einen Draht übertragen werden.
  • Hierin beschriebene computerlesbare Programmanweisungen können von einem computerlesbaren Speichermedium oder einem externen Computer oder externen Speichergerät über ein Netzwerk, z.B. das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk, auf entsprechende Rechen-/Verarbeitungsgeräte heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, optische Übertragungsfasern, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jedem Rechen-/Bearbeitungsgerät empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb des jeweiligen Rechen-/Bearbeitungsgeräts weiter.
  • Computerlesbare Programmanweisungen zur Ausführung von Operationen der vorliegenden Erfindung können Assembler-Befehle, ISA-Befehle (Instruction-Set-Architecture), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, zustandsabhängige Daten oder entweder Quellcode oder Objektcode sein, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben wurden, einschließlich einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, und konventionellen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernte (remote) Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (z.B. über das Internet unter Verwendung eines Internet Service Providers). In einigen Ausführungsformen können elektronische Schaltungen, die beispielsweise programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) aufweisen, die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen verwenden, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Flussdiagrammabbildungen und/oder Blockdiagramme von Verfahren, Geräten (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammabbildungen und/oder Blockdiagramme sowie Kombinationen von Blöcken in den Flussdiagrammabbildungen und/oder Blockdiagrammen durch computerlesbare Programmanweisungen implementiert werden können.
  • Diese computerlesbaren Programmanweisungen können einem Prozessor eines Allzweckcomputers, eines Spezialcomputers oder eines anderen programmierbaren Datenverarbeitungsgeräts zur Verfügung gestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder des anderen programmierbaren Datenverarbeitungsgeräts ausgeführt werden, Mittel zum Implementieren der im Flussdiagramm und/oder Blockdiagramm angegebenen Funktionen/Aktionen erzeugen. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, ein programmierbares Datenverarbeitungsgerät und/oder andere Vorrichtungen anweisen kann, in einer bestimmten Weise zu arbeiten, so dass das computerlesbare Speichermedium, in dem Anweisungen gespeichert sind, einen Herstellungsgegenstand aufweist, der Anweisungen aufweist, die Aspekte der in dem Flussdiagramm und/oder dem Blockdiagrammblock oder den Blöcken spezifizierten Funktion/Aktion implementieren.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, ein anderes programmierbares Datenverarbeitungsgerät oder ein anderes Gerät geladen werden, um eine Reihe von Betriebsschritten zu veranlassen, die auf dem Computer, einem anderen programmierbaren Gerät oder einem anderen Gerät ausgeführt werden, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einem anderen programmierbaren Gerät oder einem anderen Gerät ausgeführt werden, die im Flussdiagramm und/oder im Blockdiagrammblock oder in den Blöcken angegebenen Funktionen/Aktionen implementieren.
  • Die Flussdiagramme und Blockdiagramme in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block im Flussdiagramm oder in den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Implementierung der angegebenen logischen Funktion(en) aufweisen. In einigen alternativen Implementierungen können die im Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten. So können z.B. zwei nacheinander gezeigte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es wird auch darauf hingewiesen, dass jeder Block der Blockdiagramme und/oder der Flussdiagramm-Darstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der Flussdiagramm-Darstellung durch spezielle Hardware-basierte Systeme implementiert werden können, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von spezieller Hardware und Computeranweisungen ausführen.
  • Darüber hinaus kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine Logik aufweisen, die in den Prozessor integriert ist und/oder von diesem ausgeführt werden kann, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hier genannten Prozessschritte ausführt. Mit „integriert mit“ ist gemeint, dass der Prozessor eine in ihn eingebettete Logik als Hardware-Logik aufweist, wie z.B. einen anwendungsspezifischen integrierten Schaltkreis (ASIC), ein FPGA usw. Mit „vom Prozessor ausführbar“ ist gemeint, dass es sich bei der Logik um Hardware-Logik, Software-Logik wie Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw. oder um eine Kombination aus Hardware- und Software-Logik handelt, auf die der Prozessor zugreifen kann und die so konfiguriert ist, dass sie den Prozessor veranlasst, bei ihrer Ausführung durch den Prozessor eine bestimmte Funktionalität auszuführen. Die Softwarelogik kann in einem lokalen und/oder entfernten Speicher eines beliebigen Speichertyps gespeichert werden, wie er in der Technik bekannt ist. Es kann jeder in der Technik bekannte Prozessor verwendet werden, wie z.B. ein Software-Prozessor-Modul und/oder ein Hardware-Prozessor, wie z.B. ein ASIC, ein FPGA, eine Zentraleinheit (CPU), ein integrierter Schaltkreis (IC), eine Grafikverarbeitungseinheit (GPU), usw.
  • Es wird klar sein, dass die verschiedenen Merkmale der vorstehenden Systeme und/oder Methoden in beliebiger Weise kombiniert werden können, so dass eine Vielzahl von Kombinationen aus den oben dargestellten Beschreibungen entsteht.
  • Es wird weiter zu verstehen sein, dass Ausführungsformen der vorliegenden Erfindung in Form eines Dienstes bereitgestellt werden können, der im Auftrag eines Kunden eingesetzt wird, um einen Dienst auf Anforderung anzubieten.
  • Während verschiedene Ausführungsformen oben beschrieben wurden, sollte es verstanden werden, dass sie nur als Beispiel und nicht als Einschränkung dargestellt wurden. Daher sollte die Breite und der Umfang einer bevorzugten Ausführungsform nicht durch eine der oben beschriebenen beispielhaften Ausführungsformen begrenzt werden, sondern nur in Übereinstimmung mit den folgenden Ansprüchen und deren Äquivalenten definiert werden.

Claims (24)

  1. Ein computerimplementiertes Verfahren, das Folgendes aufweist: Identifizieren einer Anforderung zum Migrieren von Daten, die einem Volumen zugeordnet sind, von einem Quellspeicher-Pool mit einer ersten Rang-Extent-Größe zu einem Zielspeicher-Pool mit einer zweiten Rang-Extent-Größe, die kleiner als die erste Rang-Extent-Größe ist; Erzeugen einer Beziehung zwischen logischen Volumen-Extents des Volumens und physikalischen Offset-Positionen innerhalb von Rang-Extents des Quellspeicher-Pools; und migrieren von Daten von einem oder mehreren Rängen des Quellspeicher-Pools zu einem oder mehreren Rängen des Zielspeicher-Pools unter Verwendung der Entsprechung zwischen den logischen Volume-Extents des Volumens und den physischen Offset-Positionen innerhalb der Rang-Extents des Quellspeicher-Pools.
  2. Das computerimplementierte Verfahren nach Anspruch 1, wobei das Migrieren der Daten das Übertragen der dem Volumen zugeordneten Daten von einem oder mehreren Offset-Speicherorten innerhalb der Rang-Extents des Quellspeicher-Pools zu den Rang-Extents innerhalb des Zielspeicher-Pools aufweist.
  3. Das computerimplementierte Verfahren nach Anspruch 1, wobei das Migrieren der Daten das Freigeben der Daten aus den Rang-Extents innerhalb des Quellspeicher-Pools aufweist.
  4. Das computerimplementierte Verfahren nach Anspruch 1, wobei das Migrieren der Daten ein Anpassen der logischen Volumen-Extents aufweist, um auf einen entsprechenden Speicherort der migrierten Daten innerhalb der Rang-Extents des Zielspeicher-Pools zu verweisen.
  5. Das computerimplementierte Verfahren nach Anspruch 1, wobei das Erzeugen der Beziehung ein Identifizieren von Volumen-Segment-Tabelleneinträgen (VST) innerhalb des Volumens aufweist, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, die die zu migrierenden Daten aufweisen.
  6. Das computerimplementierte Verfahren nach Anspruch 5, wobei das Erstellen der Beziehung ein Erstellen einer kleinen VST für jeden identifizierten VST-Eintrag aufweist.
  7. Das computerimplementierte Verfahren nach Anspruch 6, wobei das Erzeugen der Beziehung ein Setzen der logischen Volumen-Extents innerhalb jeder kleinen VST aufweist, um auf entsprechende Offset-Positionen innerhalb der Rang-Extents innerhalb des Quellspeicher-Pools zu zeigen, die die zu migrierenden Daten enthalten.
  8. Das computerimplementierte Verfahren nach Anspruch 1, wobei das Migrieren der Daten ein Auswählen einer Vielzahl von Rang-Extents innerhalb des Zielspeicher-Pools aufweist, um migrierte Daten aufzunehmen.
  9. Das computerimplementierte Verfahren nach Anspruch 8, bei dem die Vielzahl der Rang-Extents zufällig ausgewählt wird.
  10. Das computerimplementierte Verfahren nach Anspruch 8, wobei die mehreren Rang-Extents entsprechend einer Datenabrufgeschwindigkeit eines entsprechenden Rangs ausgewählt werden.
  11. Das computerimplementierte Verfahren nach Anspruch 8, wobei die mehreren Rang-Extents entsprechend einer Datenmenge ausgewählt werden, die gerade in einem entsprechenden Rang gespeichert wird.
  12. Ein computerimplementiertes Verfahren, das Folgendes aufweist: Identifizieren einer Anforderung zum Migrieren von Daten, die einem Volumen zugeordnet sind, von einem Quellspeicher-Pool zu einem Zielspeicher-Pool; Identifizieren von Volumen-Segment-Tabellen-(VST)-Einträgen, die Rang-Extents innerhalb des Quellspeicher-Pools entsprechen, der die Daten enthält; Allokieren und Synchronisieren von kleinen VSTs für die identifizierten VST-Einträge innerhalb des Volumens; Allokieren von einem oder mehreren Rang-Extents innerhalb des Zielspeicher-Pools; Übertragen der mit dem Volumen verbundenen Daten von den Rang-Extents innerhalb des Quellspeicher-Pools, der die Daten enthält, zu dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Rängen des Zielspeicher-Pools; Aktualisieren der kleinen VSTs, um den übertragenen Daten in dem einen oder den mehreren Rang-Extents in dem einen oder den mehreren Rängen des Zielspeicher-Pools zu entsprechen; und Freigeben der Daten aus dem einen oder den mehreren Rang-Extents innerhalb des Quellspeicher-Pools.
  13. Das computerimplementierte Verfahren nach Anspruch 12, wobei das Volumen ein Speichervolumen aufweist, das eine logische Darstellung der Daten in einer zusammenhängenden Weise für einen oder mehrere Hosts organisiert und präsentiert.
  14. Das computerimplementierte Verfahren nach Anspruch 12, wobei die im Volumen logisch dargestellten Daten physikalisch in einem oder mehreren Ränge des Quellspeicher-Pools gespeichert sind.
  15. Das computerimplementierte Verfahren nach Anspruch 12, wobei der Quellspeicher-Pool eine erste Rang-Extent-Größe hat und der Zielspeicher-Pool eine zweite Rang-Extent-Größe hat, die kleiner ist als die erste Rang-Extent-Größe.
  16. Das computerimplementierte Verfahren nach Anspruch 12, wobei die kleinen VSTs die VST-Einträge mit einer höheren Granularität darstellen und verwalten.
  17. Das computerimplementierte Verfahren nach Anspruch 12, wobei das Synchronisieren der kleinen VSTs ein Setzen logischer Volumen-Extents innerhalb jeder der kleinen VSTs aufweist, um auf entsprechende Offset-Positionen innerhalb von Rang-Extents innerhalb des Quellspeicher-Pools zu verweisen, die die zu migrierenden Daten enthalten.
  18. Das computerimplementierte Verfahren nach Anspruch 12, wobei eine Anzahl von Rang-Extents, die innerhalb des Zielspeicher-Pools allokiert sind, einer Größe des Volumens entspricht.
  19. Das computerimplementierte Verfahren nach Anspruch 12, wobei eine Gesamtgröße der Daten, die logisch durch das Volumen repräsentiert werden, durch eine Rang-Extent-Größe des Zielspeicher-Pools geteilt wird, um eine Anzahl der Rang-Extents zu ermitteln, die innerhalb des Zielspeicher-Pools zugeordnet werden.
  20. Das computerimplementierte Verfahren nach Anspruch 12, wobei der eine oder die mehreren Rang-Extents auf der Grundlage einer Datenabrufgeschwindigkeit von Rängen innerhalb des Zielspeicher-Pools zugeordnet werden.
  21. Das computerimplementierte Verfahren nach Anspruch 12, wobei der eine oder die mehreren Rang-Extents auf der Grundlage einer Datenmenge von Daten zugeordnet werden, die derzeit in jedem einer Vielzahl von Rängen innerhalb des Zielspeicher-Pools gespeichert sind.
  22. Das computerimplementierte Verfahren nach Anspruch 12, wobei das Übertragen der Daten das Übertragen der in Offsetpositionen der Rang-Extents innerhalb des Quellspeicher-Pools gespeicherten Daten zu entsprechenden zugeordneten Rang-Extents innerhalb des Zielspeicher-Pools aufweist.
  23. Computerprogrammprodukt zum Migrieren von Daten von einem Groß-Extent-Pool zu einem Klein-Extent-Pool, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin verkörperten Programmanweisungen aufweist, wobei das computerlesbare Speichermedium kein transitorisches Signal an sich ist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren nach einem der vorhergehenden Ansprüche durchzuführen.
  24. Ein System, das Folgendes aufweist: einen Prozessor; und Logik, die mit dem Prozessor integriert ist, von dem Prozessor ausführbar ist oder mit dem Prozessor integriert und von ihm ausführbar ist, wobei die Logik so konfiguriert ist, dass sie das Verfahren nach einem der Ansprüche 1 bis 22 durchführt.
DE112020000498.8T 2019-01-25 2020-01-21 Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool Pending DE112020000498T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/258,211 2019-01-25
US16/258,211 US11016691B2 (en) 2019-01-25 2019-01-25 Migrating data from a large extent pool to a small extent pool
PCT/IB2020/050435 WO2020152576A1 (en) 2019-01-25 2020-01-21 Migrating data from a large extent pool to a small extent pool

Publications (1)

Publication Number Publication Date
DE112020000498T5 true DE112020000498T5 (de) 2021-11-18

Family

ID=71731908

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000498.8T Pending DE112020000498T5 (de) 2019-01-25 2020-01-21 Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool

Country Status (6)

Country Link
US (4) US11016691B2 (de)
JP (1) JP7386861B2 (de)
CN (1) CN113302602A (de)
DE (1) DE112020000498T5 (de)
GB (1) GB2594027B (de)
WO (1) WO2020152576A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990260B2 (en) * 2016-04-29 2018-06-05 Netapp Inc. Cross-platform replication
US10922268B2 (en) 2018-08-30 2021-02-16 International Business Machines Corporation Migrating data from a small extent pool to a large extent pool
US11016691B2 (en) 2019-01-25 2021-05-25 International Business Machines Corporation Migrating data from a large extent pool to a small extent pool

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920703A (en) 1997-02-19 1999-07-06 International Business Machines Corp. Systems and methods for managing the processing of relatively large data objects in a communications stack
US7124143B2 (en) 2004-05-10 2006-10-17 Hitachi, Ltd. Data migration in storage system
JP4975396B2 (ja) 2006-08-24 2012-07-11 株式会社日立製作所 記憶制御装置及び記憶制御方法
JP5320678B2 (ja) * 2007-02-20 2013-10-23 日本電気株式会社 データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム
JP4931660B2 (ja) 2007-03-23 2012-05-16 株式会社日立製作所 データ移行処理装置
US8019965B2 (en) 2007-05-31 2011-09-13 International Business Machines Corporation Data migration
US8407436B2 (en) 2009-02-11 2013-03-26 Hitachi, Ltd. Methods and apparatus for migrating thin provisioning volumes between storage systems
US8578092B2 (en) * 2010-01-25 2013-11-05 Hitachi, Ltd. Method and apparatus to support determining storage area unit size
US8578107B2 (en) 2010-02-16 2013-11-05 International Business Machines Corporation Extent migration scheduling for multi-tier storage architectures
US8578108B2 (en) 2010-08-03 2013-11-05 International Business Machines Corporation Dynamic look-ahead extent migration for tiered storage architectures
US9225791B2 (en) 2011-02-28 2015-12-29 Red Hat, Inc. Staged data migration between data sources and cloud-based storage network
US9344484B2 (en) 2011-05-27 2016-05-17 Red Hat, Inc. Determining consistencies in staged replication data to improve data migration efficiency in cloud based networks
WO2013042159A1 (en) * 2011-09-20 2013-03-28 Hitachi, Ltd. Storage apparatus, computer system, and data migration method
US9037791B2 (en) 2013-01-22 2015-05-19 International Business Machines Corporation Tiered caching and migration in differing granularities
US9996562B2 (en) 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US20150032961A1 (en) 2013-07-23 2015-01-29 Lexmark International Technologies S.A. System and Methods of Data Migration Between Storage Devices
WO2015068233A1 (ja) * 2013-11-07 2015-05-14 株式会社日立製作所 ストレージシステム
US9323471B2 (en) 2014-01-28 2016-04-26 International Business Machines Corporation Management of extent migration on tiered storage
US9632704B2 (en) 2015-02-09 2017-04-25 International Business Machines Corporation Management of physical extents for space efficient storage volumes
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
CN106570086B (zh) 2016-10-19 2020-08-14 上海携程商务有限公司 数据迁移系统及数据迁移方法
US10929359B2 (en) 2018-08-24 2021-02-23 Ca, Inc. Dynamically reorganizing a dataset using online migration while allowing concurrent user access to data in the dataset
US10922268B2 (en) 2018-08-30 2021-02-16 International Business Machines Corporation Migrating data from a small extent pool to a large extent pool
US11016691B2 (en) 2019-01-25 2021-05-25 International Business Machines Corporation Migrating data from a large extent pool to a small extent pool

Also Published As

Publication number Publication date
US20200241787A1 (en) 2020-07-30
GB202111577D0 (en) 2021-09-29
JP7386861B2 (ja) 2023-11-27
US20210191643A1 (en) 2021-06-24
WO2020152576A1 (en) 2020-07-30
GB2594027A (en) 2021-10-13
US20220350519A1 (en) 2022-11-03
JP2022517481A (ja) 2022-03-09
US11714567B2 (en) 2023-08-01
US20210109670A1 (en) 2021-04-15
US11531486B2 (en) 2022-12-20
CN113302602A (zh) 2021-08-24
US11442649B2 (en) 2022-09-13
GB2594027B (en) 2022-03-09
US11016691B2 (en) 2021-05-25

Similar Documents

Publication Publication Date Title
DE112020002526B4 (de) Blockmodusumschaltung in datenspeichersystem
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
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE112017002941T5 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112020000498T5 (de) Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE112011103026T5 (de) Bedarfsgesteuertes Streaming von Abbildern virtueller Maschinen
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE112014006156T5 (de) Datenmigrationsverfahren eines Speichersystems
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE112020004840B4 (de) Speicherbereinigung in datenspeichersystemen
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien
DE112013000650T5 (de) Datenzwischenspeicherungsbereich
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE112018005768T5 (de) Copy-source-to-target-verwaltung in einem datenspeichersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence