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