DE102013205571A1 - Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen - Google Patents

Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen Download PDF

Info

Publication number
DE102013205571A1
DE102013205571A1 DE102013205571A DE102013205571A DE102013205571A1 DE 102013205571 A1 DE102013205571 A1 DE 102013205571A1 DE 102013205571 A DE102013205571 A DE 102013205571A DE 102013205571 A DE102013205571 A DE 102013205571A DE 102013205571 A1 DE102013205571 A1 DE 102013205571A1
Authority
DE
Germany
Prior art keywords
area
data
copiers
migrate
swaps
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.)
Granted
Application number
DE102013205571A
Other languages
English (en)
Other versions
DE102013205571B4 (de
Inventor
Xue Dong Gao
Kurt Allen Lovrien
Richard Anthony Ripberger
Cheng-Chung Song
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 DE102013205571A1 publication Critical patent/DE102013205571A1/de
Application granted granted Critical
Publication of DE102013205571B4 publication Critical patent/DE102013205571B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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
    • G06F3/0649Lifecycle management
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es wird ein Verfahren zum Migrieren von Datenträgern in einem Speichersystem offenbart. Bei einer Ausführungsform beinhaltet ein derartiges Verfahren das Erkennen eines Datenbereichs (der zu einem Datenträger gehört), dessen Migration aus einem Quellbereich in einen Zielbereich erforderlich ist. Das Verfahren weist dem Datenbereich eine ausgewählte Anzahl von Kopierern zu, um den Datenbereich aus dem Quellbereich in den Zielbereich zu migrieren. Jeder Kopierer ist dafür konfiguriert, eine Dateneinheit zu kopieren, wobei eine Einheit ein kleinerer Teil des Datenbereichs ist. Das Verfahren überwacht Auslagerungen (d. h. Schreiboperationen) in den Quellbereich, während die Kopierer den Datenbereich aus dem Quellbereich in den Zielbereich migrieren. In dem Fall, dass die Auslagerungen schneller vonstattengehen, als die Kopierer Einheiten zu dem Zielbereich kopieren können, ordnet das Verfahren dem Datenbereich zusätzliche Kopierer zu, um das Migrieren des Datenbereichs zu unterstützen. Eine entsprechende Vorrichtung und ein entsprechendes Computerprogrammprodukt werden hier ebenfalls offenbart.

Description

  • HINTERGRUND
  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft Vorrichtungen und Verfahren zum Migrieren von Daten und insbesondere Vorrichtungen und Verfahren zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen.
  • HINTERGRUND DER ERFINDUNG
  • Der Kundenzuwachs kann im Lauf der Zeit unterschiedlich sein und ist häufig schwer vorhersagbar. Folglich ist es oft schwierig, Speicherressourcen zu entwickeln und zuzuordnen, die dem Kundenwachstum über einen bestimmten Zeitraum gerecht werden, und dabei gleichzeitig sicherzustellen, dass die Speicherressourcen auf effiziente Weise genutzt werden. Durch zugewiesenen, aber ungenutzten Speicherplatz steigen die Vorlaufkosten, der Bedarf an Hardware sowie der Energieverbrauch. Dies ist ein starker Anreiz dafür, sicherzustellen, dass Speicherressourcen auf effiziente Weise zugewiesen werden. Das beinhaltet ein sorgfältiges Ausbalancieren, um zu gewährleisten, dass genügend Speicherplatz für Wachstum zur Verfügung steht, ohne zu viel Speicherplatz zuzuordnen, was die Kosten unnötigerweise erhöhen würde.
  • Eine aktuelle Lösung für das oben genannte Problem besteht im Realisieren einer schlanken Speicherzuweisung. Schlanke Speicherzuweisung ermöglicht das Zuordnen von Speicherplatz beim Schreiben von Daten nach dem Motto „gerade ausreichend” und „gerade rechtzeitig”. Dies weicht von herkömmlichen Speicherzuordnungstechniken ab (auch als „fat provisioning” – sinngemäß: zu reichliche Speicherzuweisung – bezeichnet), mir deren Hilfe Speicherplatz im Voraus zugeordnet wird, was häufig zu viel ungenutztem Speicherplatz führt. Im Vergleich dazu wird durch schlanke Speicherzuweisung der größte Teil des freien Speicherplatzes auf Speicherdatenträgern beseitigt. Außerdem trägt schlanke Speicherzuweisung dazu bei, schlechte Speichernutzungsraten von oft nur zehn Prozent zu vermeiden, die beim Anwenden herkömmlicher Techniken mit zu reichlicher Speicherzuweisung auftreten. Bei richtiger Umsetzung kann mithilfe schlanker Speicherzuweisung der Zeitaufwand von Systemadministratoren für Speicherzuordnung und -verwaltung beträchtlich verringert werden.
  • Bei mehrschichtigen Speicherarchitekturen werden unterschiedliche Arten von Daten auf unterschiedlichen Arten von Speichermedien gespeichert, um die Gesamtspeicherkosten zu verringern. Auf welchen Medien Daten gespeichert werden, kann auf dem gewünschten Schutzniveau, den Leistungsanforderungen, der Nutzungshäufigkeit und anderen Erwägungen beruhen. Bei Änderungen der Datenmerkmale können die Daten zwischen den Schichten verschoben werden. Beispielsweise können Daten, auf die häufiger zugegriffen wird (d. h., sie sind „heißer”) zu schnelleren Speichermedien verschoben werden, um die Leistung zu verbessern. Ungünstigerweise unterstützen einige mehrschichtige Speicherarchitekturen das Migrieren von Datenträgern mit schlanker Speicherzuweisung von einer Speicherschicht zu einer anderen nicht. Dies kann ein Nachteil sein, da die Verbreitung sowohl von mehrschichtigen Speicherarchitekturen als auch von schlanker Speicherzuweisung zunimmt.
  • In Anbetracht des Vorangehenden werden Vorrichtungen und Verfahren zum Migrieren von Datenträgern mit schlanker Speicherzuweisung zwischen Schichten einer mehrschichtigen Speicherarchitektur benötigt. Idealerweise sollten derartige Vorrichtungen und Verfahren auch beim Migrieren von Standard-Datenträgern wirkungsvoll eingesetzt werden können. Des Weiteren werden Vorrichtungen und Verfahren benötigt, die das Umwandeln von Standard-Datenträgern in Datenträger mit schlanker Speicherzuweisung zum Zeitpunkt des Migrierens ermöglichen.
  • KURZDARSTELLUNG
  • Die Erfindung wurde als Reaktion auf den gegenwärtigen Stand der Technik entwickelt, insbesondere als Reaktion auf die Probleme und Erfordernisse im Hinblick auf den Stand der Technik, die bisher mithilfe der aktuell zur Verfügung stehenden Vorrichtungen und Verfahren noch nicht vollständig gelöst bzw. erfüllt wurden. Folglich wurde die Erfindung entwickelt, um Vorrichtungen und Verfahren zum Migrieren von Datenträgern in mehrschichtigen Speicherarchitekturen bereitzustellen. Die Merkmale und Vorteile der Erfindung gehen in umfassenderer Weise aus der folgenden Beschreibung und den angefügten Ansprüchen hervor oder können sich bei der praktischen Anwendung der nachfolgend dargelegten Erfindung herausstellen.
  • In Übereinstimmung mit dem Vorangehenden wird ein Verfahren zum Migrieren von Datenträgern in einem Speichersystem offenbart. Bei einer Ausführungsform beinhaltet ein derartiges Verfahren das Erkennen eines Datenbereichs (der zu einem Datenträger gehört), dessen Migration aus einem Quellbereich in einen Zielbereich erforderlich ist. Das Verfahren weist dem Datenbereich eine gewählte Anzahl von Kopierern zu, um den Datenbereich aus dem Quellbereich in den Zielbereich zu migrieren. Jeder Kopierer ist dafür konfiguriert, eine Dateneinheit zu kopieren, wobei eine Einheit ein kleinerer Teil des Datenbereichs ist. Das Verfahren überwacht Auslagerungen (d. h. Schreiboperationen) in den Quellbereich, während die Kopierer den Datenbereich aus dem Quellbereich in den Zielbereich migrieren. In dem Fall, dass die Auslagerungen schneller auftreten als die Kopierer Einheiten in den Zielbereich kopieren können, weist das Verfahren dem Datenbereich zusätzliche Kopierer zu, um das Migrieren des Datenbereichs zu unterstützen.
  • Eine entsprechende Vorrichtung und ein entsprechendes Computerprogrammprodukt werden hier ebenfalls offenbart und beansprucht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Damit die Vorteile der Erfindung ohne Weiteres zu verstehen sind, wird eine konkretere Beschreibung der vorstehend kurz beschriebenen Erfindung durch Bezugnahme auf spezifische Ausführungsformen gegeben, die in den angefügten Zeichnungen veranschaulicht sind. Da klar sein sollte, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung zeigen und daher nicht als deren Schutzumfang einschränkend anzusehen sind, werden die Ausführungsformen der Erfindung mit zusätzlicher Genauigkeit und zusätzlichen Einzelheiten durch Verwenden der begleitenden Zeichnungen beschrieben und erläutert, die Folgendes zeigen:
  • 1 ist ein Übersichts-Blockschaltbild, das ein Beispiel für eine Netzwerkumgebung zeigt, in der eine Vorrichtung und ein Verfahren gemäß der Erfindung realisiert sein können;
  • 2 ist ein Übersichts-Blockschaltbild, das ein Beispiel für ein Speichersystem zeigt, in dem eine Vorrichtung und ein Verfahren gemäß der Erfindung realisiert sein können;
  • 3 ist ein Übersichts-Blockschaubild, das ein Verschieben von Bereichen zwischen Schichten einer mehrschichtigen Speicherarchitektur zeigt;
  • 4 ist ein Übersichts-Blockschaubild, das zeigt, wie Daten und Metadaten bei einem Standard-Datenträger organisiert sein können;
  • 5 ist ein Übersichts-Blockschaubild, das zeigt, wie Daten und Metadaten bei einem Datenträger mit schlanker Speicherzuweisung organisiert sein können;
  • 6 ist ein Übersichts-Blockschaubild, das eine erfindungsgemäße Ausführungsform eines Migrationsmoduls zeigt;
  • 7 ist ein Übersichts-Blockschaubild, das ein Migrieren von Daten und/oder Metadaten aus einem Quellbereich in einen Zielbereich zeigt;
  • 8 ist eine Zustandsdarstellung, die Übergänge zwischen Zuständen beim Kopieren von Daten aus einem Quellbereich in einen Zielbereich zeigt, und
  • 9 ist eine Zustandsdarstellung, die Übergänge zwischen Zuständen beim Kopieren von Metadaten eines Datenträgers mit schlanker Speicherzuweisung aus einem Quellbereich in einen Zielbereich zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es ist leicht nachzuvollziehen, dass die Komponenten der vorliegenden Erfindung, wie sie hier allgemein beschrieben und in den Figuren dargestellt sind, in zahlreichen unterschiedlichen Konfigurationen angeordnet und gestaltet sein können. Die folgende ausführlichere Beschreibung der in den Figuren dargestellten Ausführungsformen der Erfindung soll daher den beanspruchten Schutzumfang der Erfindung nicht einschränken, sondern lediglich bestimmte Beispiele gegenwärtig in Betracht gezogener erfindungsgemäßer Ausführungsformen darstellen. Die aktuell beschriebenen Ausführungsformen sind am besten zu verstehen, wenn auf die Zeichnungen Bezug genommen wird, in denen gleiche Teile durchgehend durch dieselben Bezugszeichen bezeichnet sind.
  • Wie Fachleute verstehen werden, kann die vorliegende Erfindung als eine Vorrichtung, ein System, ein Verfahren oder ein Computerprogrammprodukt vorliegen. Zudem kann die vorliegende Erfindung die Form einer Hardware-Ausführungsform, einer Software-Ausführungsform (darunter Firmware, speicherresidente Software, Mikrocode usw.) annehmen, die für das Betreiben von Hardware konfiguriert ist, oder die einer Ausführungsform, bei der Software- und Hardwareaspekte kombiniert werden, die hier alle allgemein als ein „Modul” oder ein „System” bezeichnet sein können. Die vorliegende Erfindung kann außerdem die Form eines durch einen Computer verwendbaren Speichermediums annehmen, das in einem beliebigen physischen Ausdrucksmedium mit auf dem Medium gespeichertem durch einen Computer verwendbarem Programmcode verkörpert sein kann.
  • Zum Speichern des Computerprogrammprodukts kann eine beliebige Kombination von einem oder mehreren durch einen Computer verwendbaren oder computerlesbaren Speichermedien verwendet werden. Das durch einen Computer verwendbare oder computerlesbare Speichermedium kann beispielsweise, aber ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder eine derartige Einheit sein. Als konkretere Beispiele (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium könnten die folgenden aufgeführt werden: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein tragbarer Compact-Disc-Nur-Lese-Speicher (CDROM), eine optische Speichereinheit oder eine magnetische Speichereinheit. Im Zusammenhang dieses Dokuments kann ein durch einen Computer verwendbares oder computerlesbares Speichermedium ein beliebiges Medium sein, das das Programm für die Nutzung durch das Anweisungen ausführende System oder in Verbindung mit dem Anweisungen ausführenden System, der Anweisungen ausführenden Vorrichtung oder der Anweisungen ausführenden Einheit enthalten, speichern, oder transportieren kann.
  • Computerprogrammcode zum Ausführen der Operationen der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen sowie herkömmliche verfahrensorientierte Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen. Computerprogrammcode zum Realisieren der Erfindung kann auch in einer maschinennahen Programmiersprache wie beispielsweise Assembler-Sprache geschrieben sein.
  • Ausführungsformen der Erfindung können nachfolgend mit Bezug auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen, Systemen und Computerprogrammprodukten beschrieben sein. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogrammanweisungen oder Code realisiert werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zum Herstellen einer Maschine bereitgestellt werden, so dass die Anweisungen, die durch den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Ausführen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierten Funktionen/Handlungen erzeugen.
  • Die Computerprogrammanweisungen können auch auf einem computerlesbaren Speichermedium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung so steuern kann, dass sie auf eine bestimmte Weise funktioniert, so dass die auf dem computerlesbaren Speichermedium gespeicherten Anweisungen ein Produkt samt der Anweisungsmittel herstellen, die die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierte Funktion/Handlung realisieren. Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um eine Reihe von auf dem Computer oder der anderen programmierbaren Datenverarbeitungsvorrichtung durchzuführenden Betriebsschritten zu bewirken, um einen computerimplementierten Prozess herzustellen, so dass die Anweisungen, die auf dem Computer oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Prozesse für die Realisierung der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierten Funktionen/Handlungen zur Verfügung stellen.
  • 1 veranschaulicht ein Beispiel für eine Netzwerkarchitektur 100. Die Netzwerkarchitektur 100 wird als Beispiel für eine Umgebung gezeigt, in der verschiedene Ausführungsformen der Erfindung betrieben werden können. Die Netzwerkarchitektur 100 wird lediglich als nicht einschränkendes Beispiel gezeigt. Tatsächlich können die hier offenbarten Vorrichtungen und Verfahren neben der gezeigten Netzwerkarchitektur 100 auf eine Vielzahl verschiedener Netzwerkarchitekturen anwendbar sein.
  • Wie gezeigt, zählen zu der Netzwerkarchitektur 100 ein oder mehrere Computer 102, 106, die durch ein Netzwerk 104 miteinander verbunden sind. Zu dem Netzwerk 104 können beispielsweise ein lokales Netz (local-area-network, LAN) 104, ein Weitverkehrsnetz (wide-area-network, WAN) 104, das Internet 104, ein Intranet 104 oder dergleichen gehören. Bei bestimmten Ausführungsformen können zu den Computern 102, 106 sowohl Client-Computer 102 als auch Server-Computer 106 (hier auch als „Hosts” 106 oder „Host-Systeme” 106 bezeichnet) zählen. Im Allgemeinen leiten die Client-Computer 102 Datenübertragungssitzungen ein, während die Server-Computer 106 auf Anforderungen von den Client-Computern 102 warten. Bei bestimmten Ausführungsformen können die Computer 102 und/oder die Server 106 mit einem oder mehreren internen oder externen direkt angeschlossenen Speichersystemen 112 (z. B. Anordnungen von Festplattenlaufwerken, Solid-State-Laufwerken, Bandlaufwerken usw.) verbunden sein. Diese Computer 102, 106 und direkt angeschlossenen Speichersysteme 112 können mithilfe von Protokollen wie ATA, SATA, SCSI, SAS, Fibre Channel und dergleichen Daten austauschen.
  • Zu der Netzwerkarchitektur 100 kann bei bestimmten Ausführungsformen ein Speichernetzwerk 108 hinter den Servern 106 zählen wie beispielsweise ein Datenspeichernetzwerk (storage area network, SAN) 108 oder ein LAN 108 (z. B. beim Verwenden netzgebundenen Datenspeichers). Durch dieses Netzwerk 108 können die Server 106 mit einem oder mehreren Speichersystemen 110 wie beispielsweise Anordnungen 110a von Festplattenlaufwerken oder Solid-State-Laufwerken, Bandarchiven 110b, einzelnen Festplattenlaufwerken 110c oder Solid-State-Laufwerken 110c, Bandlaufwerken 110d, CD-ROM-Archiven oder dergleichen verbunden sein. Um auf ein Speichersystem 110 zuzugreifen, kann ein Host-System 106 von einem oder mehreren Anschlüssen des Hosts 106 über physische Verbindungen mit einem oder mehreren Anschlüssen des Speichersystems 110 Daten austauschen. Eine Verbindung kann durch einen Schalter, eine Fabric, eine direkte Verbindung oder dergleichen erfolgen. Bei bestimmten Ausführungsformen können die Server 106 und die Speichersysteme 110 mithilfe eines Netzwerkstandards wie beispielsweise Fibre Channel (FC) oder iSCSI Daten austauschen.
  • In 2 wird eine Ausführungsform eines Speichersystems 110a veranschaulicht, das eine Anordnung von Speicherlaufwerken 204 (z. B. Festplattenlaufwerke und/oder Solid-State-Laufwerke) enthält. Die internen Komponenten des Speichersystems 110a werden gezeigt, da die hier offenbarten Vorrichtungen und Verfahren bei bestimmten Ausführungsformen in einem derartigen Speichersystem 110a realisiert sein können, obwohl die Systeme und Verfahren auch auf andere Speichersysteme oder Gruppen von Speichersystemen anwendbar sein können. Wie gezeigt, zählen zu dem Speichersystem 110a ein Speicher-Controller 200, ein oder mehrere Schalter 202 sowie ein oder mehrere Speicherlaufwerke 204 wie beispielsweise Festplattenlaufwerke und/oder Solid-State-Laufwerke (beispielsweise Laufwerke auf der Grundlage von Flash-Speichern). Der Speicher-Controller 200 kann einen oder mehrere Hosts 106 (z. B. Open-System- und/oder Mainframe-Server 106) in die Lage versetzen, auf Daten auf dem Speicherlaufwerk bzw. den Speicherlaufwerken 204 zuzugreifen.
  • Bei ausgewählten Ausführungsformen zählen ein oder mehrere Server 206 zu dem Speicher-Controller 200. Zu dem Speicher-Controller 200 können außerdem Host-Adapter 208 und Einheiten-Adapter 210 gehören, um den Speicher-Controller 200 mit den Host-Einheiten 106 und den Speicherlaufwerken 204 zu verbinden. Mehrere Server 206a, 206b sorgen für Redundanz, um sicherzustellen, dass die Daten den angeschlossenen Hosts 106 ständig zur Verfügung stehen. Wenn daher ein Server 206a ausfällt, kann der andere Server 206b die E/A-Last des ausgefallenen Servers 206a übernehmen, um sicherzustellen, dass E/A zwischen den Hosts 106 und den Speicherlaufwerken 204 weiterhin möglich sind. Dieser Prozess kann als „Ausfallsicherung” bezeichnet werden.
  • Bei ausgewählten Ausführungsformen können zu jedem Server 206 ein oder mehrere Prozessoren 212 sowie der Arbeitsspeicher 214 gehören. Der Arbeitsspeicher 214 kann flüchtigen Speicher (z. B. RAM) wie auch nichtflüchtigen Speicher (z. B. ROM, EPROM, EEPROM, Flash-Speicher usw.) enthalten. In dem flüchtigen und dem nichtflüchtigen Speicher können bei bestimmten Ausführungsformen Software-Module gespeichert werden, die auf dem Prozessor bzw. den Prozessoren 212 ausgeführt und zum Zugriff auf Daten auf den Speicherlaufwerken 204 verwendet werden. Auf den Servern 206 kann mindestens eine Instanz dieser Software-Module beherbergt werden. Mithilfe dieser Software-Module können alle Lese- und Schreibanforderungen an logische Datenträger in den Speicherlaufwerken 204 verwaltet werden.
  • Bei ausgewählten Ausführungsformen enthält der Arbeitsspeicher 214 einen Cachespeicher 218 wie beispielsweise einen DRAM-Cachespeicher 218. Jedes Mal, wenn ein Host 106 (z. B. ein Open-System- oder Mainframe-Server 106) eine Leseoperation ausführt, kann der Server 206, der die Leseoperation ausführt, Daten von den Speicherlaufwerken 204 abrufen und sie für den Fall, dass sie erneut benötigt werden, in seinem Cachespeicher 218 speichern. Wenn die Daten erneut von einem Host 106 angefordert werden, kann der Server 206 die Daten anstatt von den Speicherlaufwerken 204 aus dem Cachespeicher 218 abrufen, was Zeit spart und die Ressourcen schont. In ähnlicher Weise kann, wenn ein Host 106 eine Schreiboperation ausführt, der Server 106, der die Schreibanforderung empfängt, die Schreiboperation in seinem Cachespeicher 218 speichern und die Schreiboperation zu einem späteren Zeitpunkt 204 zu den Speicherlaufwerken 204 auslagern. Wenn eine Schreiboperation in dem Cachespeicher 218 gespeichert wird, kann die Schreiboperation auch in dem nichtflüchtigen Speicher (NVS) 220 des Gegen-Servers 206 gespeichert werden, so dass die Schreiboperation in dem Fall des Versagens des ersten Servers 206 von dem Gegen-Server 206 wiederhergestellt werden kann.
  • Ein Beispiel für ein Speichersystem 110a mit einer ähnlichen Architektur wie der in 2 veranschaulichten ist das IBM DS8000TM Enterprise-Storage-System. Das DS8000 ist ein Hochleistungs-Speicher-Controller mit hoher Kapazität, der Platten- und Solid-State-Speicher bietet, der für das Unterstützen fortlaufender Operationen ausgelegt ist. Dennoch sind die hier offenbarten Vorrichtungen und Verfahren nicht auf das IBM DS8000TM Enterprise-Storage-System 110a beschränkt, sondern können in jedem vergleichbaren oder analogen Speichersystem oder jeder solchen Gruppe von Speichersystemen realisiert werden, unabhängig von dem Hersteller, dem Produktnamen oder den mit dem System verbunden Produkten oder Produktnahmen. Jedes Speichersystem, das von einer oder mehreren Ausführungsformen der Erfindung profitieren könnte, soll unter den Schutzumfang der Erfindung fallen. Das IBM DS8000TM wird daher lediglich als nicht einschränkendes Beispiel gezeigt.
  • Mit Bezug auf 3: Bei bestimmten Ausführungsformen kann ein Speichersystem 110a wie das in 2 veranschaulichte mit unterschiedlichen Speicherschichten 300 konfiguriert sein. Jede der Speicherschichten 300 kann verschiedene Arten von Speichermedien enthalten, deren Leistung und Kosten unterschiedlich sind. Teurere Speichermedien sind im Allgemeinen schneller, während preisgünstigere Speichermedien im Allgemeinen langsamer sind. Aufgrund ihrer geringeren Kosten kann die mehrschichtige Speicherarchitektur wesentlich mehr Speicherkapazität für preisgünstigere Speichermedien als für teurere Speichermedien enthalten. Speicherverwaltungssoftware und/oder Firmware, die von einer Host-Einheit 106 oder dem Speichersystem 110a ausgeführt werden, können Daten automatisch zwischen teureren und preisgünstigeren Speichermedien verschieben, um die Leistung zu optimieren. Beispielsweise werden „heißere” Daten (d. h. Daten, auf die häufiger zugegriffen wird) möglicherweise auf schnellere Speichermedien verschoben, während „kältere” Daten (d. h. Daten, auf die weniger häufig zugegriffen wird) möglicherweise auf langsamere Speichermedien verschoben werden. Bei Änderungen der „Wärme” und „Kälte” der Daten können die Daten zwischen den Speicherschichten verschoben werden.
  • Die zum Realisieren der Speicherschichten verwendeten Speichermedien 300 können unterschiedlich sein. Bei einem Beispiel enthält eine erste Speicherschicht 300a Hochgeschwindigkeitsspeicher wie beispielsweise den zuvor erwähnten DRAM-Cachespeicher 218, eine zweite Speicherschicht 300b enthält Solid-State-Laufwerke, und eine dritte Speicherschicht 300c enthält Festplattenlaufwerke. Bei diesem Beispiel verfügt aufgrund der Kosten der Speichermedien die zweite Speicherschicht 300b über eine höhere Speicherkapazität als die erste Speicherschicht 300a, und die dritte Speicherschicht 300c verfügt über eine höhere Speicherkapazität als die zweite Speicherschicht 300b.
  • Bei mehrschichtigen Speicherarchitekturen können Daten zwischen Speicherschichten 300 in gleich großen Partitionen oder Bereichszuordnungen verschoben werden, die als „Bereiche” bezeichnet werden. Bei herkömmlichen mehrschichtigen Speicherarchitekturen bleibt die Größe der Bereiche üblicherweise über die verschiedenen Speicherschichten 300a, 300b, 300c hinweg gleich. Bei einem Beispiel ist der gesamte Adressraum der Speicherschichten 300b, 300c in Bereiche von 1 GB (Gigabyte) unterteilt. Es können dann bei einer Änderung der „Wärme” oder „Kälte” der Daten ein GB große Datenbereiche zwischen den Speicherschichten 300 verschoben werden.
  • Bei bestimmten Ausführungsformen wird eine Kontrollstruktur unterhalten, um den Zustand der logischen Datenträger in dem Speichersystem 110a zu verfolgen. Jedem logischen Datenträger können ein oder mehrere logische Bereiche zugeordnet sein. Jeder logische Bereich kann auf einen physischen Bereich 302 auf dem Speichermedium 300 zeigen oder diesem zugeordnet sein. Beim Verschieben von Daten aus einem physischen Bereich 302 in einen anderen, beispielsweise aus einem physischen Bereich 302 in einer Speicherschicht 300c in einen physischen Bereich 302 in einer anderen Speicherschicht 300b, kann der dem logischen Bereich zugeordnete Zeiger so aktualisiert werden, dass er auf den neuen physischen Bereich 302 zeigt. Auf diese Weise kann die Kontrollstruktur den Zustand der logischen und physischen Bereiche verfolgen, die einem logischen Datenträger zugeordnet sind.
  • Mit Bezug auf die 4 und 5: Bei bestimmten Ausführungsformen sind die Daten und die Metadaten von Standard-Datenträgern und Datenträgern mit schlanker Speicherzuweisung auf unterschiedliche Weise organisiert. 4 zeigt an einem Beispiel, wie Daten und Metadaten bei einem Standard-Datenträger organisiert sein können. 5 zeigt an einem Beispiel, wie Daten und Metadaten bei einem Datenträger mit schlanker Speicherzuweisung organisiert sein können.
  • Wie in 4 gezeigt, können bei bestimmten Ausführungsformen die einem logischen Bereich eines Standard-Datenträgers 406 zugehörigen Daten 402 und Metadaten 404 derart miteinander verbunden sein, dass eine Kontrollstruktur nur einen einzigen Zeiger 400 benötigt, um den physischen Ort der Daten 402 und Metadaten 404 zu erkennen. Wenn die in einem Bereich enthaltenen Daten 402 und Metadaten 404 aus einem physischen Bereich 302 in einen anderen migriert werden, kann der Zeiger 400 so aktualisiert werden, dass er auf den neuen physischen Bereich zeigt.
  • Wie in 5 gezeigt, können demgegenüber bei bestimmten Ausführungsformen die Daten 402 und Metadaten 404 auf Datenträgern 500 mit schlanker Speicherzuweisung voneinander unabhängig sein. Das heißt, die Daten 402 und Metadaten 404 können sich in unterschiedlichen physischen Bereichen 302a, 302b befinden und unabhängig voneinander gehandhabt werden. Bei bestimmten Ausführungsformen enthält die Kontrollstruktur für jeden einem Datenträger 500 mit schlanker Speicherzuweisung zugehörigen logischen Bereich einen ersten Zeiger 400a, der auf einen physischen Bereich 302a zeigt, der die Daten 402 enthält, und einen zweiten Zeiger 400b, der auf einen physischen Bereich 302b zeigt, der die Metadaten 404 enthält. Bei bestimmten Ausführungsformen ist jeder Metadatenbereich 302b auf einem Datenträger mit schlanker Speicherzuweisung ein virtueller Bereich, der einem Datenbereich 302a zugeordnet ist.
  • Wie im Folgenden ausführlicher erklärt wird, kann es in bestimmten Fällen wünschenswert sein, Standard-Datenträger 406 in Datenträger 500 mit schlanker Speicherzuweisung umzuwandeln, um den Speicherplatz in einem Speichersystem 110a effizienter zu nutzen. Bei bestimmten Ausführungsformen kann diese Umwandlung beim Migrieren der Standard-Datenträger 406 ausgeführt werden. Das heißt, wenn ein Standard-Datenträger 406 in einem Speichersystem 110a migriert wird, beispielsweise zwischen den Speicherschichten 300, kann die Kontrollstruktur so abgeändert werden, dass sie anstelle eines einzigen Zeigers 400 über getrennte Zeiger 400a, 400b für die Daten 402 und die Metadaten 404 verfügt. In ähnlicher Weise können die Daten 402 und die Metadaten 404 anstatt in einem einzigen physischen Bereich in unterschiedlichen physischen Bereichen 302a, 302b gespeichert sein. Die Daten 402 und die Metadaten 404 können dann voneinander unabhängig migriert werden. Alle leeren (z. B. auf Nullwert gesetzten) Bereiche der Standard-Datenträger 406 können freigegeben werden, um freien Speicherplatz zu schaffen, wenn die Standard-Datenträger 406 in Datenträger 500 mit schlanker Speicherzuweisung umgewandelt werden. Wenn Datenbereiche 302a von einem Datenträger 500 mit schlanker Speicherzuweisung freigegeben werden, können die auf diese Bereiche 302a zeigenden Zeiger 400a so abgeändert werden, dass sie Nullwerte enthalten, um anzuzeigen, dass die Bereiche nicht länger zugewiesen sind.
  • Mit Bezug auf 6: Bei bestimmten Ausführungsformen ist ein erfindungsgemäßes Migrationsmodul 600 dafür konfiguriert, Standard-Datenträger und/oder Datenträger mit schlanker Speicherzuweisung in einer mehrschichtigen Speicherarchitektur zu migrieren. Das Migrationsmodul 600 kann in Hardware, Software oder einer Kombination von beiden realisiert sein. Das Migrationsmodul 600 kann verschiedene interne Module oder Komponenten enthalten, um verschiedene Merkmale oder Funktionen bereitzustellen, wie nachfolgend ausführlicher erläutert wird.
  • Beispielsweise enthält das Migrationsmodul 600 bei bestimmten Ausführungsformen ein Profilerstellungsmodul 602 zum Erstellen von Profilen von Datenträgern in dem Speichersystem 110a. Bei bestimmten Ausführungsformen erstellt das Profierstellungsmodul 602 Datenträgerprofile in Bereichs-Granularität. Die Bereichsprofile können analysiert werden, um Bereiche in der mehrschichtigen Speicherarchitektur optimal zu verschieben. Bei bestimmten Ausführungsformen verfolgt das Profilerstellungsmodul 602 beispielsweise im Lauf der Zeit erfolgende Zugriffe auf Bereiche. „Heißere” Daten (d. h. Daten, auf die häufiger zugegriffen wird) werden möglicherweise auf schnellere Speichermedien verschoben, während „kältere” Daten (d. h. Daten, auf die weniger häufig zugegriffen wird) möglicherweise auf langsamere Speichermedien verschoben werden. Bei Änderungen der „Wärme” und „Kälte” der Bereiche können die Bereiche dementsprechend zwischen den Speicherschichten verschoben werden.
  • Bei bestimmten Ausführungsformen kann die Migration eines Datenbereichs zwischen zwei physischen Bereichen in der mehrschichtigen Speicherarchitektur von einem Migrationsagenten 604 geregelt werden. Bei einem Standard-Datenträger können Daten und Metadaten zusammen migriert werden. Bei einem Datenträger mit schlanker Speicherzuweisung kann das Migrieren in zwei Teile unterteilt werden: das Migrieren der Daten und das Migrieren der Metadaten.
  • Bei bestimmten Ausführungsformen kann der Migrationsagent 604 in einem von mehreren unterschiedlichen Zuständen arbeiten: einem „freien Zustand” 608, einem „Normalzustand” 610, einem „Haltezustand” 612 und einem „Metadaten-Kopierzustand” 614. Das Verhalten des Migrationsagenten 604 kann zustandsabhängig unterschiedlich sein. In ähnlicher Weise können verschiedene Ereignisse oder Bedingungen bewirken, dass der Migrationsagent 604 zu einem anderen Zustand übergeht.
  • Nachfolgend wird neben 6 auch auf 7 Bezug genommen: Wenn sich ein Migrationsagent 604 in dem freien Zustand 608 befindet, kann dem Migrationsagenten 604 die Aufgabe zugewiesen werden, einen Bereich zu migrieren. Wenn der Migrationsagent 604 eine neue Aufgabe erhält, kann der Migrationsagent 604 zu dem Normalzustand 610 übergehen, und ein Kopierer-Zuordnungsmodul 616 in dem Migrationsagenten 604 kann mit dem Zuordnen von Kopierern anfangen, um mit dem Kopieren von Dateneinheiten 702 aus einem Quellbereich 700a in einen Zielbereich 700b zu beginnen. Im Rahmen dieser Offenbarung ist eine „Einheit” 702 ein Datenabschnitt oder -element in einem Bereich, beispielsweise ein Datenstreifen 702, wenn der Bereich 700a in einer redundanten Anordnung unabhängiger Festplatten (redundant array of independent disks, RAID) realisiert ist. Bei bestimmten Ausführungsformen enthält jede Einheit 702 kleinere Teilabschnitte (nicht gezeigt), die als „Spuren” bezeichnet werden.
  • Im Normalzustand 610 kann der Migrationsagent 604 eine minimale Anzahl (z. B. sechs) Kopierer zuordnen, um mit dem Kopieren von Einheiten 702 aus dem Quellbereich 700a in den Zielbereich 700b zu beginnen. Auslagerungen aus dem Cachespeicher 218 in den Quellbereich 700a während des Kopierens können zugelassen werden. Daher kann es im Normalzustand 610 zu einem „Wettlauf” zwischen Auslagerungen und den Kopierern kommen. Wenn die Auslagerungen die Kopierer übertreffen, versucht es das Kopierer-Zuordnungsmodul 616 möglicherweise mit dem Zuordnen zusätzlicher Kopierer, so dass Daten schneller in den Zielbereich 700b kopiert als Auslagerungen in den Quellbereich 700a vorgenommen werden.
  • Bei bestimmten Ausführungsformen versucht das Kopierer-Zuordnungsmodul 616, bis zu einer maximalen Anzahl (z. B. zwanzig) zusätzliche Kopierer zuzuordnen, um die Kopier-Bandbreite zu erhöhen. Wenn das Kopierer-Zuordnungsmodul 616 die maximale Anzahl von Kopierern erreicht und Auslagerungen schneller vorgenommen werden, als die Kopierer Einheiten in den Zielbereich 700b kopieren können, werden möglicherweise mithilfe eines Drosselmoduls 618 die Auslagerungen auf ein Niveau gedrosselt, auf dem sie die Kopierer nicht übertreffen. Bei bestimmten Ausführungsformen werden die Auslagerungen mithilfe des Drosselmoduls 618 gedrosselt, indem die Auslagerungen in einer Warteschlange 630 gehalten und die Auslagerungen anschließend aus der Warteschlange 630 mit einer Geschwindigkeit freigegeben werden, die geringer als die Kopiergeschwindigkeit der Kopierer ist. Bei einem Beispiel gibt das Drosselmodul 618 für jeweils vier von den Kopierern kopierte Einheiten drei Auslagerungen frei. Dadurch wird ermöglicht, dass Kopien in den Zielbereich 700b schneller vonstatten gehen als Auslagerungen in den Quellbereich 700a. Andere Verhältnisse von Kopien zu Auslagerungen sind ebenfalls möglich und in den Schutzumfang der Erfindung einbezogen.
  • Wenn eine Auslagerung in eine Einheit 702 vorgenommen wird, während die Einheit aus dem Quellbereich 700a in den Zielbereich 700b kopiert wird, kann die Kopie mithilfe eines Abbruchmoduls 620 abgebrochen werden. Sobald die Auslagerung abgeschlossen ist, kann die Einheit 702 in den Zielbereich 700b kopiert werden.
  • Da durch das Migrieren von Daten zusätzliche Belastungen der Speichereinheiten 300 entstehen und die Bandbreite der Kopierer die Reaktionszeiten für Host-Eingaben bzw. Ausgaben beeinträchtigt, gibt es einen Kompromiss zwischen der Geschwindigkeit der Daten-Migration und den Host-E/A-Reaktionszeiten. Bei bestimmten Ausführungsformen kann ein Benutzer in der Lage sein, das Kopierer-Zuordnungsmodul 616 so zu konfigurieren, dass es „aggressiver” wird, wodurch Migrationen eher abgeschlossen werden, oder „weniger aggressiv” wird, so dass die Auswirkungen auf Host-Eingaben bzw. Ausgaben verringert werden. Beispielsweise kann ein Benutzer bei bestimmten Ausführungsformen die Möglichkeit erhalten, die maximale Anzahl von einer Kopieraufgabe zugeordneten Kopierern zu erhöhen oder zu verringern. Bei anderen Ausführungsformen kann ein Benutzer die Möglichkeit erhalten, das Verhältnis von Kopien zu Auslagerungen zu ändern.
  • Wenn ein Schwellenwertmodul 622 erkennt, dass die Anzahl nichtkopierter Einheiten 702 unter einen bestimmten Schwellenwert gefallen ist (z. B. die Hälfte der Gesamtzahl der Kopierer), geht der Migrationsagent 604 in einen Haltezustand 612 über. In diesem Zustand 612 kann es der Migrationsagent 604 zulassen, dass die Kopierer das Kopieren der Einheiten 702 aus dem Quellbereich 700a in den Zielbereich 700b fertigstellen. Wenn der Bereich, der gerade migriert wird, einem Standard-Datenträger zugehörig ist, wartet außerdem ein Wartemodul 624 in dem Migrationsagenten 604 darauf, dass laufende Auslagerungen in die Metadaten 404 während des Haltezustands 612 abgeschlossen werden.
  • Während des Normal- und des Haltezustands 610, 612 können Auslagerungen in die Daten 402 mithilfe von „Beschäftigt-Bitmaps” und „Genutzt-Bitmaps” 626, 628 auf einer Spur-für-Spur-Basis verfolgt werden. Jedes Bit der Beschäftigt-Bitmap 626 kann anzeigen, wenn eine entsprechende Spur beschäftigt ist (z. B. durch eine Auslagerung überschrieben wird), während jedes Bit der Genutzt-Bitmap 628 anzeigen kann, wenn eine entsprechende Spur „genutzt” wurde (z. B. durch eine Auslagerung überschrieben wurde). Wenn ein Bit in der Genutzt-Bitmap 628 gesetzt ist, zeigt dies an, dass die entsprechende Spur genutzt wurde und in den Zielbereich 700b zu kopieren ist. Wenn eine Spur genutzt wird, nachdem sie in den Quellbereich 700a kopiert wurde, muss ein Kopierer die Spur erneut kopieren und das entsprechende Bit in der Genutzt-Bitmap neu 628 setzen. Zwischenspeicherungen in den Daten und, bei Standard-Datenträgern, Zwischenspeicherungen in den und Auslagerungen in die Metadaten, können anstatt auf einer Spur-für-Spur-Basis mithilfe einer Testkontrollblock-Aufgabe (test control block job, TCB-Aufgabe) verfolgt werden.
  • Wenn der Migrationsagent 604 sich im Haltezustand 612 befindet, werden nur Zwischenspeicherungen in den Daten zugelassen. Im Fall von Standard-Datenträgern werden auch Zwischenspeicherungen in den Metadaten 404 (die mit den Daten 402 verbunden sind) zugelassen. Wenn keine genutzten Spuren mehr zu kopieren und keine weiteren Auslagerungen in die Daten 402 (und Metadaten 404 im Fall von Standard-Datenträgern) mehr vorzunehmen sind, schaltet der Migrationsagent 604 auf den Metadaten-Kopierzustand 614 um.
  • Bei Standard-Datenträgern teilt der Migrationsagent 604 Kopierer zu, während er sich im Metadaten-Kopierzustand 614 befindet, um Metadaten 404 aus dem Quellbereich 700a in den Zielbereich 700b zu kopieren. Da die Menge von Metadaten 404 im Vergleich zu der Menge von Daten 402 relativ gering ist, werden möglicherweise alle Auslagerungen in die Metadaten 404 in der Warteschlange 630 gehalten, während die Metadaten 404 aus dem Quellbereich 700a in den Zielbereich 700b kopiert werden. Zwischenspeicherungen in den Metadaten 404 werden in diesem Zeitraum möglicherweise zugelassen.
  • Bei Datenträgern mit schlanker Speicherzuweisung befinden sich die Metadaten 404 in einem von den Daten 402 getrennten Bereich und werden daher von den Daten unabhängig migriert. Beim Migrieren der Metadaten 404 geht der Migrationsagent 604 direkt zum Haltezustand 612 über (d. h., der Normalzustand wird übersprungen). Der Migrationsagent 604 geht dann zum Metadaten-Kopierzustand 614 über. Wenn die Metadaten 404 vollständig in den Zielbereich 302b kopiert sind, aktualisiert der Migrationsagent 604 den Metadaten-Zeiger 400b, der den Metadaten 404 zugehörig ist (siehe 5), so dass dieser auf den Zielbereich 302b zeigt.
  • Wie in 6 gezeigt, enthält der Migrationsagent 604 ein Umwandlungsmodul 632. Wenn ein Standard-Datenträger migriert wird, kann das Umwandlungsmodul 632 den Standard-Datenträger optional in einen Datenträger mit schlanker Speicherzuweisung umwandeln. Insbesondere kann das Umwandlungsmodul 632 die Metadaten 404 des Standard-Datenträgers in Metadaten 404 umwandeln, die einem Datenträger mit schlanker Speicherzuweisung zugehörig sind, wie in den 4 und 5 gezeigt.
  • 8 zeigt eine Zustandsdarstellung des Migrationsagenten 604 beim Kopieren von Daten aus einem Quellbereich 700a in einen Zielbereich 700b. Wie gezeigt, beginnt der Migrationsagent 604 im freien Zustand 608 und geht anschließend zum Normalzustand 610 über, in dem er mit dem Kopieren von Daten aus dem Quellbereich 700a in den Zielbereich 700b beginnt. Wenn die meisten oder alle Daten kopiert sind, geht der Migrationsagent 604 zum Haltezustand 612 über. Im Haltezustand 612 stellt der Migrationsagent 604 das Kopieren der Daten fertig und wartet ab, bis laufende Auslagerungen abgeschlossen sind. Während des Haltezustands 612 werden Auslagerungen in die Daten oder die Metadaten in der Warteschlange 630 gehalten. Wenn die Daten in den Zielbereich 700b kopiert wurden und die Auslagerungen abgeschlossen sind, geht der Migrationsagent 604 zum Metadaten-Kopierzustand 614 über. Bei Standard-Datenträgern werden im Metadaten-Kopierzustand 614 Metadaten aus dem Quellbereich 700a in den Zielbereich 700b kopiert. Bei Datenträgern mit schlanker Speicherzuweisung werden keine Metadaten kopiert, da sich die Metadaten in einem separaten physischen Bereich befinden. Der Migrationsagent 604 aktualisiert dann den Zeiger (d. h. im Fall von Standard-Datenträgern den einzelnen Zeiger 400 oder im Fall von Datenträgern mit schlanker Speicherzuweisung den Zeiger 400a, der auf den Datenbereich zeigt), damit dieser auf den Zielbereich 700b zeigt.
  • 9 zeigt eine Zustandsdarstellung des Migrationsagenten 604 beim Kopieren von Metadaten 404 aus einem Quellbereich zu einem Zielbereich eines Datenträgers mit schlanker Speicherzuweisung. Wie gezeigt, beginnt der Migrationsagent 604 im freien Zustand 608 und geht anschließend direkt zum Haltezustand 612 über. Im Haltezustand 612 hält der Migrationsagent 604 Auslagerungen in den Quellbereich in der Warteschlange 630 zurück. Der Migrationsagent 604 geht dann zum Metadaten-Kopierzustand 614 über. Wenn die Metadaten 404 vollständig aus dem Quellbereich in den Zielbereich kopiert sind, aktualisiert der Migrationsagent 604 den Metadaten-Zeiger 400b des Datenträgers mit schlanker Speicherzuweisung, so dass dieser auf den Zielbereich zeigt.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Realisierungen von Vorrichtungen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Beziehung kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, Segment oder einen Codeabschnitt darstellen, das/der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion(en) aufweist. Es sollte auch beachtet werden, dass bei einigen alternativen Realisierungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren angegeben auftreten können. Zum Beispiel können zwei aufeinander folgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können in Abhängigkeit von der betreffenden Funktionalität manchmal in der umgekehrten Reihenfolge ausgeführt werden. Bei anderen Realisierungen sind möglicherweise nicht alle der offenbarten Schritte erforderlich, um die gewünschte Funktionalität zu erzielen. Es ist ebenfalls zu beachten, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Blockkombinationen in den Blockschaubildern und/oder den Ablaufplänen durch hardwarebasierte Spezialsysteme, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von Spezialhardware und Computeranweisungen realisiert werden können.

Claims (10)

  1. Verfahren zum Migrieren von Datenträgern in einem Speichersystem, wobei das Verfahren aufweist: Erkennen eines Datenbereichs, dessen Migration aus einem Quellbereich in einen Zielbereich erforderlich ist; Zuordnen einer ausgewählten Anzahl von Kopierern zu dem Datenbereich, um den Bereich zu migrieren, wobei jeder Kopierer dafür konfiguriert ist, eine Dateneinheit zu kopieren, wobei der Datenbereich eine Vielzahl von Einheiten aufweist; Überwachen von Auslagerungen in den Quellbereich, während die Kopierer den Datenbereich aus dem Quellbereich in den Zielbereich migrieren, und in dem Fall, dass die Auslagerungen in den Quellbereich schneller auftreten als die Kopierer Einheiten in den Zielbereich kopieren können, Zuordnen zusätzlicher Kopierer zu dem Datenbereich, um das Migrieren des Datenbereichs zu unterstützen.
  2. Verfahren nach Anspruch 1, das außerdem ein Begrenzen der Anzahl von Kopierern, deren Zuordnung möglich ist, auf eine maximale Anzahl aufweist.
  3. Verfahren nach Anspruch 2, das außerdem in dem Fall, dass die Auslagerungen in den Quellbereich schneller auftreten, als die maximale Anzahl von Kopierern Einheiten in den Zielbereich kopiert, ein Drosseln der Auslagerungen aufweist.
  4. Verfahren nach Anspruch 3, wobei das Drosseln der Auslagerungen ein Halten der Auslagerungen in einer Warteschlange aufweist.
  5. Verfahren nach Anspruch 4, wobei das Drosseln der Auslagerungen ein Freigeben der Auslagerungen aus der Warteschlange mit einer Geschwindigkeit aufweist, die geringer als die Geschwindigkeit ist, mit der die Kopierer Einheiten in den Zielbereich kopieren.
  6. Verfahren nach Anspruch 4, das außerdem in dem Fall, dass eine Anzahl von noch aus dem Quellbereich in den Zielbereich zu kopierenden Einheiten unter einen festgelegten Schwellenwert fällt, ein Einstellen der Auslagerungen in den Quellbereich aufweist.
  7. Verfahren nach Anspruch 1, das außerdem ein Unterbrechen der Auslagerungen in den Quellbereich und Kopieren von Metadaten aus dem Quellbereich in den Zielbereich aufweist, während die Auslagerungen unterbrochen sind.
  8. Verfahren nach Anspruch 7, wobei das Kopieren der Metadaten außerdem ein Umwandeln der Metadaten aus Standard-Metadaten in für schlanke Speicherzuweisung geeignete Metadaten aufweist.
  9. Computerprogrammprodukt zum Migrieren von Datenträgern in einem Speichersystem, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium mit darauf enthaltenem computerverwendbarem Programmcode aufweist, wobei der computerverwendbare Programmcode aufweist: durch einen Computer verwendbaren Programmcode zum Erkennen eines Datenbereichs, dessen Migration aus einem Quellbereich in einen Zielbereich erforderlich ist; durch einen Computer verwendbaren Programmcode zum Zuordnen einer ausgewählten Anzahl von Kopierern zu dem Datenbereich, um den Bereich zu migrieren, wobei jeder Kopierer dafür konfiguriert ist, eine Dateneinheit zu kopieren; durch einen Computer verwendbaren Programmcode zum Überwachen von Auslagerungen in den Quellbereich, während die Kopierer den Datenbereich aus dem Quellbereich in den Zielbereich migrieren, und durch einen Computer verwendbaren Programmcode zum Zuordnen zusätzlicher Kopierer zu dem Datenbereich, um das Migrieren des Datenbereichs zu unterstützen, in dem Fall, dass die Auslagerungen in den Quellbereich schneller vonstattengehen, als die Kopierer Einheiten in den Zielbereich kopieren können.
  10. Vorrichtung zum Migrieren von Datenträgern in einem Speichersystem, wobei die Vorrichtung aufweist: mindestens einen Prozessor; mindestens eine Arbeitsspeichereinheit, die mit dem mindestens einen Prozessor verbunden ist und in der Computeranweisungen zum Ausführen auf dem mindestens einen Prozessor gespeichert sind, wobei die Computeranweisungen den mindestens einen Prozessor veranlassen zum: Erkennen eines Datenbereichs, dessen Migration aus einem Quellbereich in einen Zielbereich erforderlich ist; Zuordnen einer ausgewählten Anzahl von Kopierern zu dem Datenbereich, um den Bereich zu migrieren, wobei jeder Kopierer dafür konfiguriert ist, eine Dateneinheit zu kopieren; Überwachen von Auslagerungen in den Quellbereich, während die Kopierer den Datenbereich aus dem Quellbereich in den Zielbereich migrieren, und in dem Fall, dass die Auslagerungen in den Quellbereich schneller vonstattengehen, als die Kopierer Einheiten in den Zielbereich kopieren können, Zuordnen zusätzlicher Kopierer zu dem Datenbereich, um das Migrieren des Datenbereichs zu unterstützen.
DE102013205571.4A 2012-04-13 2013-03-28 Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen Active DE102013205571B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/447,120 US9047015B2 (en) 2012-04-13 2012-04-13 Migrating thin-provisioned volumes in tiered storage architectures
US13/447,120 2012-04-13

Publications (2)

Publication Number Publication Date
DE102013205571A1 true DE102013205571A1 (de) 2013-10-17
DE102013205571B4 DE102013205571B4 (de) 2021-01-28

Family

ID=49232350

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013205571.4A Active DE102013205571B4 (de) 2012-04-13 2013-03-28 Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen

Country Status (2)

Country Link
US (1) US9047015B2 (de)
DE (1) DE102013205571B4 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699334B (zh) * 2012-09-27 2018-04-24 伊姆西公司 用于管理虚拟机磁盘的方法和系统
US9817766B1 (en) * 2012-12-28 2017-11-14 EMC IP Holding Company LLC Managing relocation of slices in storage systems
US9936013B2 (en) * 2014-10-29 2018-04-03 Netapp, Inc. Techniques for controlling client traffic on a clustered system
US20170039142A1 (en) * 2015-08-03 2017-02-09 Sandisk Technologies Llc Persistent Memory Manager
US10565125B2 (en) 2018-02-27 2020-02-18 Hewlett Packard Enterprise Development Lp Virtual block addresses
US10564881B2 (en) * 2018-05-31 2020-02-18 International Business Machines Corporation Data management in a multitier storage system
CN110874344B (zh) * 2018-08-10 2023-05-09 阿里巴巴集团控股有限公司 数据迁移方法、装置及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162600B2 (en) 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
US7171516B2 (en) * 2003-09-29 2007-01-30 International Business Machines Corporation Increasing through-put of a storage controller by autonomically adjusting host delay
JP4700459B2 (ja) 2005-09-27 2011-06-15 株式会社日立製作所 データ処理システム及びデータ管理方法並びにストレージシステム
JP2007280089A (ja) 2006-04-07 2007-10-25 Hitachi Ltd 容量拡張ボリュームの移行方法
US7783839B2 (en) * 2007-01-08 2010-08-24 International Business Machines Corporation Using different algorithms to destage different types of data from cache
US9519540B2 (en) * 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8224782B2 (en) 2008-09-29 2012-07-17 Hitachi, Ltd. System and method for chunk based tiered storage volume migration
US8407436B2 (en) 2009-02-11 2013-03-26 Hitachi, Ltd. Methods and apparatus for migrating thin provisioning volumes between storage systems
US8578087B2 (en) * 2010-02-02 2013-11-05 International Business Machines Corporation On demand conversion of standard logical volumes to thin-provisioned logical volumes
US8285762B2 (en) * 2010-05-11 2012-10-09 International Business Machines Corporation Migration of metadata and storage management of data in a first storage environment to a second storage environment
US8577934B2 (en) * 2011-03-24 2013-11-05 Spectra Logic Corporation System and method for a storage system response with data migration

Also Published As

Publication number Publication date
US20130275694A1 (en) 2013-10-17
DE102013205571B4 (de) 2021-01-28
US9047015B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE112011104419B4 (de) Bereichsmigration für gepaarte Speicherung
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
DE112013004250B4 (de) Vorrichtung, Verfahren und Computerprogrammprodukt für adaptive Persistenz
DE102008022831B4 (de) Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens
DE112012000953T5 (de) Dynamisches Beseitigen von Leistungsungleichgewicht zur Laufzeit
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE112012004571B4 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
DE112014006156B4 (de) Speichersystem und Datenmigrationsverfahren
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112013006305T5 (de) Speichersystem und Verfahren zum Zuweisen von Ressourcen
DE112013001421T5 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE112021003061T5 (de) Ausgleichen von resilienz und leistung durch selektive verwendung von verschlechterten schreibvorgängen und freier kapazität in speichersystemen
DE112011103290T5 (de) Intelligente Schreibcacheoperation für sequenzielle Datenspuren
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE112013002355T5 (de) Steigern von Datenzwischenspeicherungsleistung
DE112011101317T5 (de) Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrössen-Granularität
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112010003794T5 (de) Datenspeicherung unter Verwendung von Bitmaps
DE102008015185A1 (de) Hierarchisches Speichersystem mit vorausschauender Datenübertragung
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G06F0013120000

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