-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich im Allgemeinen auf eine hierarchische Speicherverwaltung und im Besonderen auf eine Datenmigrationsverwaltung in einem hierarchischen Speicherverwaltungssystem.
-
Die hierarchische Speicherverwaltung (Hierarchical Storage Management, HSM) ist eine Datenspeichermethode, die eine effiziente und kosteneffektive Datenverwaltung bereitstellt, indem schnelle, kostenaufwändige Speichermedien, beispielsweise als primärer Speicher, zusätzlich zu langsamen, kostengünstigen Speichermedien, beispielsweise als sekundärer Speicher, verwendet werden. Der primäre und sekundäre Speicher kann zum Beispiel abgestuft, mehrschichtig oder anderweitig hierarchisch angeordnet sein, z.B. in Form einer oberen Schicht mit hoher Zugriffsgeschwindigkeit und einer unteren Schicht mit niedrigerer Zugriffsgeschwindigkeit, um einen Datenabruf, eine Lese/Schreib-Operation und dergleichen zu ermöglichen. So können zum Beispiel das IBM® TS7700-Speichersystem und das IBM® Spectrum Archive Enterprise Edition HSM-System SSD- oder HDD-Datenspeichereinheiten als primären Speicher und Bandspeichereinheiten als sekundären Speicher nutzen. Bestimmte HSM-Systeme verwenden Cloud-Technologien wie z.B. das Bandvirtualisierungsprodukt der IBM® TS7700-Serie, um eine Verwendung von Cloud-Datenspeicher als sekundären Speicher zu ermöglichen.
-
Eine herkömmliche HSM-Methode kann ein HSM-Schema bereitstellen, mit dem Daten, auf die häufig zugegriffen wird, zum Beispiel in einer primären Plattenspeichereinheit gespeichert werden können, die in einer oberen Schicht eines HSM-Systems angeordnet ist, um ein hohes Maß an Verfügbarkeit der Daten und Zugriff auf die Daten zu ermöglichen. Die Daten, auf die häufig zugegriffen wird, können in der oberen Schicht verbleiben, bis zum Beispiel eine Zugriffsanforderungshäufigkeit der Daten unter einen vorbestimmten Schwellenwert abfällt. Wenn die Zugriffsanforderungshäufigkeit der Daten unter den vorbestimmten Schwellenwert abfällt, kann zum Beispiel eine Vormigrationsoperation durchgeführt werden, mit der die Daten kopiert werden können, und daraufhin kann eine Migrationsoperation durchgeführt werden, mit der die Daten entfernt werden können, um für eine Speicherung an eine untere Schicht übertragen zu werden. Zusammen mit anderen in der unteren Schicht gespeicherten Daten, auf die selten zugegriffen wird, können die Daten anhand einer Rückrufoperation an die obere Schicht übertragen werden. Entsprechend können Vormigrations-, Migrations- und Rückrufoperationen realisiert werden, um für Benutzer des HSM-Systems einen effizienten und sehr schnellen Datenzugriff bereitzustellen.
-
KU RZDARSTELLU NG
-
Bei einer Ausführungsform wird ein Verfahren zum Durchführen von Kopieroperationen für eine oder mehreren Dateneinheiten in einem hierarchischen Speicherverwaltungssystem bereitgestellt. Das hierarchische Speicherverwaltungssystem kann eine obere und eine untere Schicht enthalten. Die obere Schicht enthält mehrere Speicherknoten, die eine Grid-Konfiguration aufweisen. Das Verfahren weist ein Einplanen von Kopieroperationen mehrerer Dateneinheiten auf, von denen jede in mindestens einem der mehreren Speicherknoten gespeichert wird, so dass Lasten für die Kopieroperationen auf die mehreren Speicherknoten verteilt werden, in denen die mehreren Dateneinheiten gespeichert werden. Das Verfahren weist des Weiteren auf, die Kopieroperationen der mehreren Dateneinheiten in die untere Schicht gemäß dem Einplanen durchzuführen. Vorteilhafterweise ermöglicht dies eine optimierte Durchführung und einen optimierten Durchsatz des hierarchischen Speicherverwaltungssystems auf Systemebene, indem eine angewendete Arbeitslast in Bezug auf jeden der Speicherknoten verwaltet und einzelne Speicherknotenoperationen koordiniert werden.
-
Bei einer Ausführungsform wird ein mit einem hierarchischen Speicherverwaltungssystem verbindbarer Speicher-Controller bereitgestellt. Das hierarchische Speicherverwaltungssystem kann eine obere und eine untere Schicht enthalten. Die obere Schicht kann mehrere Speicherknoten enthalten, die eine Grid-Konfiguration aufweisen. Der Controller weist einen Arbeitsspeicher und einen Prozessor auf, der mit dem Arbeitsspeicher kommunikativ gekoppelt ist. Der Arbeitsspeicher weist Anweisungen auf, die bei Ausführung durch den Prozessor den Prozessor veranlassen: Kopieroperationen mehrerer Dateneinheiten einzuplanen, von denen jede in mindestens einem der mehreren Speicherknoten gespeichert wird, so dass Lasten für die Kopieroperationen auf die mehreren Speicherknoten verteilt werden, in denen die mehreren Dateneinheiten gespeichert werden; und die mehreren Dateneinheiten gemäß dem Einplanen in die untere Schicht zu kopieren. Vorteilhafterweise ermöglicht dies eine optimierte Durchführung und einen optimierten Durchsatz des hierarchischen Speicherverwaltungssystems auf Systemebene, indem eine angewendete Arbeitslast in Bezug auf jeden der Speicherknoten verwaltet und einzelne Speicherknotenoperationen koordiniert werden.
-
Bei einer Ausführungsform wird ein Computerprogrammprodukt zur Verwendung in einem hierarchischen Speicherverwaltungssystem bereitgestellt. Das Computerprogrammprodukt kann eine oder mehrere durch einen Computer lesbare Speichereinheiten sowie Programmanweisungen enthalten, die zur Ausführung durch mindestens einen oder mehrere Computerprozessoren eines Computersystems auf mindestens einer der einen oder der mehreren durch einen Computer lesbaren Speichereinheiten gespeichert werden. Die Programmanweisungen können durch den mindestens einen oder die mehreren Computerprozessoren des Computersystems ausgeführt werden, um das offenbarte Verfahren durchzuführen.
-
Bei einer Ausführungsform kann das bereitgestellte Verfahren des Weiteren ein Empfangen einer Schreibanforderung, die einer Dateneinheit entspricht, wobei die Dateneinheit eine zugehörige Kopierrichtlinie aufweist, von einer mit dem Verwaltungssystem verbundenen Datenverarbeitungseinheit; und ein Ausführen der Anforderung zur Durchführung einer Schreiboperation, die der Dateneinheit entspricht, aufweisen, wobei die Anforderung gemäß der Kopierrichtlinie und in Bezug auf einen oder mehrere der Speicherknoten ausgeführt wird. Vorteilhafterweise ermöglicht die Kopierrichtlinie eine datenspezifische Kontrolle der Speicherredundanz entsprechender Dateneinheiten in dem Verwaltungssystem.
-
Bei einer Ausführungsform kann das bereitgestellte Verfahren des Weiteren ein Auswählen eines oder mehrerer der Speicherknoten in der Domäne zur Durchführung der Kopieroperationen in Bezug auf eine entsprechende zu kopierende Dateneinheit durch einen Speicherknoten in der Domäne aufweisen, wobei die Speicherknoten ausgewählt werden auf Grundlage: einer Ermittlung, dass eine Kopie der zu kopierenden Dateneinheit in einem oder mehreren der Speicherknoten gespeichert wird, wobei für eine Zeitspanne, die über einem vorbestimmten Schwellenwert liegt, keine Kopieroperation für die Dateneinheit durchgeführt wurde; oder einer Ermittlung, dass der Speicherknoten selbst die Kopie der zu kopierenden Dateneinheit speichert, wobei eine Anzahl von Kopien der Dateneinheit kleiner als diejenige Anzahl ist, die in einem beliebigen der anderen Speicherknoten in der Domäne gespeichert wird. Vorteilhafterweise stellt dies ein „Sicherheitsnetz“ für Situationen bereit, in denen zum Beispiel ein weiterer Cluster eine Kopie des identifizierten Datenträgers aufweist und aus einem wie auch immer gearteten Grund nicht in der Lage ist, den Datenträger zu migrieren.
-
Die oben erwähnten Aspekte der vorliegenden Erfindung sollen nicht alle erforderlichen Merkmale der vorliegenden Erfindung aufzählen und sind so zu verstehen, dass die vorliegende Erfindung alle Kombinationen und Teilkombinationen dieser Bestandteile enthält..
-
Figurenliste
-
- 1 veranschaulicht ein HSM-System gemäß einer Ausführungsform der vorliegenden Erfindung.
- 2 veranschaulicht ein Blockschaubild eines Speicher-Clusters 120, der das primäre Speicher-Grid des HSM-Systems bildet, gemäß einer Ausführungsform der vorliegenden Erfindung.
- 3 veranschaulicht einen Ablaufplan, der die Operationen zum Festlegen einer Kopierrichtlinie für einen Datenträger, der in dem HSM-System gespeichert werden soll, gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
- 4 veranschaulicht einen Ablaufplan, der die Operationen eines Speicherns und Kopierens des Datenträgers in der primären Speicherstufe als Reaktion auf ein Empfangen einer Schreibanforderung von dem Host-Computer 115, der mit dem HSM-System verbunden ist, gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
- 5 veranschaulicht einen Ablaufplan, der die Kopieroperationen für die Datei, die in der Mehrzahl von Clustern in der primären Speicherschicht gespeichert wird, in den Cloud-Speicher des HSM-Systems gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
- Die 6A und 6B veranschaulichen eine Darstellung, welche die Operationen eines Speicherns und Kopierens des Datenträgers in der primären Speicherstufe als Reaktion auf ein Empfangen einer Schreibanforderung von dem Host-Computer, der mit dem HSM-System verbunden ist, gemäß einer Ausführungsform der vorliegenden Erfindung beschreibt.
- 7 veranschaulicht eine Darstellung, welche die Kopieroperationen für die Datei, die in der Mehrzahl von Clustern in der primären Speicherschicht gespeichert wird, in den Cloud-Speicher des HSM-Systems gemäß einer Ausführungsform der vorliegenden Erfindung beschreibt.
- 8 veranschaulicht gemäß einer Ausführungsform der vorliegenden Erfindung eine Darstellung, die ein Beispiel für eine bevorzugte Hardware-Konfiguration einer Datenverarbeitungseinheit zeigt, wie sie durch den Host-Computer, den Speicher-Cluster und/oder eine Datenverarbeitungsplattform verkörpert werden kann.
- 9 veranschaulicht eine Cloud-Computing-Umgebung gemäß Ausführungsformen der vorliegenden Erfindung.
- 10 veranschaulicht Cloud-Abstraktionsmodellschichten gemäß Ausführungsformen der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführliche Ausführungsformen der vorliegenden Erfindung werden hier offenbart, um beanspruchte Strukturen und Verfahren, die in verschiedenen Formen enthalten sein können, zu beschreiben und zu veranschaulichen, und sind nicht als in irgendeiner Weise vollständig oder auf die offenbarten Ausführungsformen beschränkt zu verstehen. Für den Fachmann dürfte offensichtlich sein, dass zahlreiche Änderungen und Abwandlungen möglich sind, ohne von Umfang und Geist der offenbarten Ausführungsformen abzuweichen, wie sie durch die beigefügten Ansprüche und ihre Äquivalente definiert werden. Die hier verwendete Begrifflichkeit wurde gewählt, um die Grundsätze der einen oder der mehreren Ausführungsformen, praktischen Anwendungen oder technischen Verbesserungen gegenüber herkömmlichen Technologien bestmöglich zu erläutern bzw. den Fachleuten das Verständnis der hier offenbarten Ausführungsformen zu ermöglichen. Wie beschrieben, können Einzelheiten von hinlänglich bekannten Merkmalen und Methoden verallgemeinert oder weggelassen werden, um die Beschreibung zu vereinfachen oder zu verhindern, dass die Ausführungsformen der vorliegenden Erfindung unnötigerweise unklar gemacht werden.
-
Sofern hier nicht ausdrücklich oder anderweitig definiert, sind sämtliche Begriffe in ihrer größtmöglichen Auslegung zu verstehen, einschließlich implizierter Bedeutungen, durch einen Fachmann verstandener Bedeutungen oder in Wörterbüchern, Abhandlungen und dergleichen definierter Bedeutungen. Im hier verwendeten Sinne enthalten die Singularformen von „ein/e/r“ und „der/die/das“ und dergleichen auch die Pluralformen hiervon, wie anwendbar oder anderweitig festgelegt. Des Weiteren geben die Begriffe „weist auf“ und/oder „aufweisend“ im hier verwendeten Sinne das Vorhandensein der genannten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten an und schließen das Vorhandensein oder die Hinzufügung von einem/einer oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen hiervon nicht aus.
-
Wenn in dieser Beschreibung „eine einzige Ausführungsform“, „eine Ausführungsform“, eine „Beispielausführungsform“ oder Ähnliches erwähnt werden, gibt dies an, dass die beschriebene Ausführungsform ein/eine oder mehrere bestimmte Merkmale, Strukturen oder Eigenschaften enthalten kann, wobei jedoch klar sein sollte, dass solche bestimmten Merkmale, Strukturen oder Eigenschaften hier jeder einzelnen offenbarten Ausführungsform der vorliegenden Erfindung gemein sein können, ohne dass dies jedoch der Fall sein muss. Darüber hinaus beziehen sich solche Formulierungen nicht notwendigerweise auf eine bestimmte Ausführungsform an sich. Wenn in Verbindung mit einer Ausführungsform ein/eine oder mehrere bestimmte Merkmale, Strukturen oder Eigenschaften beschrieben werden, wird somit davon ausgegangen, dass der Fachmann weiß, wie sich ein/eine oder mehrere solcher Merkmale, Strukturen oder Eigenschaften in Verbindung mit anderen Ausführungsformen bewerkstelligen lassen, unabhängig davon, ob sie explizit beschrieben werden.
-
Verschiedene Speichersysteme können HSM realisieren, um dadurch Kosten zu senken und eine Leistung zu verbessern, z.B. in Bezug auf Datenintegrität, Redundanz und dergleichen. Die obere Schicht solcher Systeme kann teure Speichermedien z.B. in Form von Halbleiterlaufwerken (Solid State Drives, SSDs), Festplattenlaufwerken (Hard Disk Drives, HDDs) und dergleichen enthalten, um eine hohe Datenabrufgeschwindigkeit und Verfügbarkeit bereitzustellen. Die untere Schicht kann kostengünstige Speichermedien z.B. in Form von Bandlaufwerken und dergleichen enthalten, um Kosten zu senken.
-
Wie in der nachfolgenden Beschreibung dargelegt, kann die obere Schicht als „primärer Speicher“, „primäre Speicherstufe“ oder Ähnliches bezeichnet werden. Des Weiteren kann die untere Schicht als „sekundärer Speicher“, „sekundäre Speicherstufe“ oder Ähnliches bezeichnet werden. Dabei sollte klar sein, dass eine solche Bezugnahme auch andere Arten von Einheiten gemäß Ausführungsformen der vorliegenden Erfindung enthält, wie für den Fachmann offensichtlich sein dürfte. Des Weiteren sollte klar sein, dass in verschiedenen Ausführungsformen der vorliegenden Erfindung mehr als zwei Speicherstufen enthalten sein können und dass solche Ausführungsformen einzeln oder in verschiedenen Kombinationen auf eine oder mehrere der verschiedenen Speicherstufen anwendbar sein können.
-
Bei verschiedenen Ausführungsformen der vorliegenden Erfindung kann die primäre Speicherstufe eine „Grid“-Konfiguration von Speichereinheiten und Datenverarbeitungsplattformen enthalten, die durch einen oder mehrere Knoten gemultiplext und unterstützt werden können. Wie in der Beschreibung im Folgenden dargelegt, kann jeder Knoten als ein „Cluster“ bezeichnet werden. Des Weiteren kann eine Gruppe von Clustern, die in einer Grid-Konfiguration angeordnet ist, als eine „Domäne“ bezeichnet werden.
-
Bei verschiedenen Ausführungsformen der vorliegenden Erfindung kann der sekundäre Speicher ein Cloud-Datenspeicher (im Folgenden „Cloud-Speicher“) sein, einen solchen enthalten oder anderweitig realisieren. Der Cloud-Speicher kann generell eine Cloud-Computing-Umgebung enthalten, durch die eine Datenspeicherfunktionalität bereitgestellt werden kann. Die Cloud-Computing-Umgebung kann zum Beispiel virtuelle oder logische Datenverarbeitungsressourcen enthalten, die durch eine Cloud-Schicht abstrahiert werden können, so dass heterogene Datenverarbeitungseinheiten als ein einziger, nahtloser Pool von Ressourcen erscheinen, z.B. ein einziger Arbeitsspeicher-Pool, Verarbeitungs-Pool oder dergleichen. Die Ressourcen können zum Beispiel verschiedene Arten von physischen oder logischen Verarbeitungsressourcen, Daten- oder Arbeitsspeicherressourcen, Server, Netzwerke oder Speichereinheiten gemäß Ausführungsformen der vorliegenden Erfindung enthalten. Anders ausgedrückt kann der Cloud-Speicher als ein einziges Ziel, Objekt oder eine einzige Entität, als zum Beispiel durch eine verbundene Benutzer-Datenverarbeitungsplattform beobachtbar oder anderweitig wahrnehmbar oder als dergleichen mehr erscheinen.
-
Bei einer Ausführungsform der vorliegenden Erfindung kann eine Datenverarbeitungsplattform oder -einheit wie z.B. eine mit dem HSM-System verbundene Host-Datenverarbeitungsplattform eine Anforderung stellen, verschicken oder anderweitig übertragen, Daten in mindestens einen der Cluster der primären Speicherstufe zu schreiben. Die Anforderung kann eine oder mehrere Anweisungen zum Schreiben von Daten enthalten. Bei der Ausführungsform kann die Anforderung einen gespeicherten Datenträger, eine gespeicherte Dateneinheit oder Ähnliches enthalten. Bei der Ausführungsform kann der gespeicherte Datenträger für eine Speicherung in mindestens einem der Cluster in der Domäne der primären Speicherstufe gemäß einer oder mehreren vordefinierten Kopierrichtlinien kopiert werden. Wie hier beschrieben, soll der Host die Daten mit Blick oder in Bezug auf einen Datenträger schreiben; allerdings sind Ausführungsformen der vorliegenden Erfindung nicht auf eine wie auch immer geartete bestimmte Einheit oder Art von Datenmaß oder -messung beschränkt. Entsprechend können Ausführungsformen der vorliegenden Erfindung jede Art von Dateneinheit oder -maß realisieren, z.B. eine Dateneinheit von fester Größe, eine Dateneinheit von variabler Größe, einen Datenträger, eine Datei, einen Block, ein Objekt, ein Segment, einen Datensatz oder Ähnliches.
-
Bei einer Ausführungsform der vorliegenden Erfindung kann eine Kopierrichtlinie durch einen Benutzer vordefiniert werden. Bei der Ausführungsform kann die Kopierrichtlinie einen bestimmten Cluster des HSM-Systems, der eine oder mehrere Kopien eines Datenträgers speichern kann, definieren, identifizieren, bezeichnen, berechtigen oder anderweitig angeben. Des Weiteren kann die Kopierrichtlinie eine bestimmte Zeitspanne wie z.B. in Zusammenhang mit einer entsprechenden Bedingung oder einem entsprechenden Ereignis angeben, während deren Dauer der bestimmte Cluster die Kopien speichern kann. Die Kopie des Datenträgers kann dem Benutzer zugehörig sein. Vorteilhafterweise ermöglicht dies anhand der Kopierrichtlinie die Kontrolle über eine Anzahl von Kopien des Datenträgers, die in der Domäne des primären Speichers gespeichert werden können, was wiederum die Kontrolle über einen Grad von Redundanz hinsichtlich der Speicherung der Kopien in dem HSM-System ermöglicht. In einem Beispiel kann ein Datenträger wie z.B. Datenträger-A in Cluster-2, Cluster-4 und Cluster-6 gespeichert werden, ein Datenträger wie z.B. Datenträger-B kann in Cluster-2 und Cluster-4 gespeichert werden, und ein Datenträger wie z.B. Datenträger-C kann ausschließlich in Cluster-2 gespeichert werden, wie dies gemäß jeder jeweils zugehörigen Kopierrichtlinie festgelegt wird.
-
Bei verschiedenen Ausführungsformen der vorliegenden Erfindung kann ein Datenträger gemäß einem vordefinierten Migrationsalgorithmus in den Cloud-Speicher in dem HSM-System migriert werden. Bei den verschiedenen Ausführungsformen kann ein in dem primären Speicher gespeicherter Ziel-Datenträger in den sekundären Speicher kopiert (d.h. vormigriert) werden und kann später aus dem primären Speicher entfernt (d.h. migriert) werden, wenn zum Beispiel eine Anzahl von Zugriffen auf den Ziel-Datenträger, z.B. durch einen Host-Computer, für eine bestimmte Zeitspanne unter einen vorbestimmten Schwellenwert abfällt.
-
Bei den verschiedenen Ausführungsformen kann der Ziel-Datenträger alternativ verzögert und entfernt werden, wenn dies zum Beispiel notwendig ist, um freien Plattenspeicherplatz in der primären Speicherstufe für neue Schreibanforderungen sicherzustellen. Nach Abschluss von Migrationsoperationen für entsprechende Datenträger können die Datenträger ausschließlich in dem sekundären Speicher gespeichert werden. In dem HSM-System können gemäß Ausführungsformen der vorliegenden Erfindung verschiedene Migrationsalgorithmen verwendet werden.
-
Wenn in dem oben beschriebenen Beispiel Cluster-2 der Reihe nach Migrationsoperationen für Datenträger-A, Datenträger-B bzw. Datenträger-C durchführt, um sie in den Cloud-Speicher zu übertragen, können Cluster-4 und Cluster-6 keine Kopieroperationen für die Datenträger durchführen. In dem Beispiel würde die Durchführung der Kopieroperationen für jeden Datenträger durch Cluster-2 zu einer gehäuften Last (d.h. Arbeitslast) für diesen Cluster führen, wodurch ein Abschluss längere Zeit in Anspruch nehmen würde. Entsprechend besteht eine Notwendigkeit für eine optimierte Durchführung solcher Aufgaben, wie sie in Bezug auf die Migration von Daten in derartigen Situationen auftreten.
-
Zu diesem Zweck kann jeder Cluster des HSM-Systems gemäß Ausführungsformen der vorliegenden Erfindung einen hierarchischen Speicher-Controller verwenden, um Kopieroperationen (d.h. Vormigrationsoperationen) in Bezug auf Datenträger einzuplanen, wobei jeder Datenträger in einem oder mehreren Clustern gespeichert werden kann. Die Verwendung des Controllers ermöglicht eine Verteilung von Lasten, die aus der Durchführung der Kopieroperationen resultieren, auf die Cluster in der Domäne. Entsprechend können gemäß dem Einplanen durch die Cluster der ersten Speicherstufe die Kopieroperationen in den Cloud-Speicher der zweiten Speicherstufe durchgeführt werden. In dem oben beschriebenen Beispiel ermöglicht dies eine Migration von Datenträger-A aus Cluster-6, Datenträger-B aus Cluster-4 und Datenträger-C aus Cluster-2 in den Cloud-Speicher. Wie oben beschrieben, kann später jeder in dem primären Speicher gespeicherte Datenträger entfernt werden. Somit wird durch eine effiziente Verteilung von Lasten, die sich aus einer Durchführung der Kopieroperationen sowie aus anderen damit zusammenhängenden Operationen ergeben, die bei der Migration von Daten durchgeführt werden, eine optimierte Durchführung erzielt.
-
Ausführungsformen der vorliegenden Erfindung werden nun in Bezug auf die beigefügten Figuren beschrieben.
-
1 veranschaulicht ein HSM-System gemäß einer Ausführungsform der vorliegenden Erfindung. Bei der Ausführungsform werden die Host-Computer 115 über ein Netzwerk 125 mit dem HSM-System 100 verbunden. Das Netzwerk 125 kann eine beliebige Art von Datennetzwerk sein, das für einen Datenaustausch oder eine Datenübertragung geeignet ist, z.B. ein lokales Netzwerk (Local Area Network, LAN) oder ein Weitverkehrsnetzwerk (Wide Area Network, WAN), SCSI (Small Computer System Interface), Fiber Channel, ESCON (Enterprise System Connection), FICON (Fibre Connection) oder USB (Universal Serial Bus). Das HSM-System kann zum Beispiel über einen FICON-Datenübertragungskanal mit einem Host-Computer verbunden werden. Wie in 1 dargestellt, können Host-Computer wie z.B. Host-Computer 115a und 115b über Netzwerke 125a bzw. 125b mit dem HSM-System verbunden werden. Jeder Host-Computer 115 kann eine einzelne und klar unterscheidbare Datenverarbeitungseinheit sein, z.B. ein Mainframe Computer, ein Server Computer, ein Laptop Computer, ein Tablet Computer, ein Notebook Computer, ein Personal Computer (PC), ein Desktop Computer, ein persönlicher digitaler Assistent (Personal Digital Assistant, PDA), ein Smartphone, ein Thin Client oder eine beliebige andere programmierbare elektronische Einheit, die über ein Netzwerk 125 mit dem HSM-System 100 Daten austauschen kann. Jeder Host-Computer 115 kann Anforderungen, Daten in das HSM-System 100 zu schreiben und aus diesem zu lesen, übertragen, um verschiedene Datenverarbeitungsaufgaben durchzuführen. Wie oben beschrieben, kann jeder Host-Computer 115 Anforderungen übertragen, die Daten in Bezug auf einen Datenträger zu schreiben und zu lesen. Wie abgebildet und mit Blick auf 8 ausführlich beschrieben, kann ein Host-Computer 115 interne und externe Hardware-Komponenten enthalten.
-
Bei einer Ausführungsform der vorliegenden Erfindung kann das HSM-System 100 eine primäre Speicherstufe 105 und eine zweite Speicherstufe 110 enthalten. Die zweite Speicherstufe 110 kann in der vorliegenden Offenbarung alternativ als sekundärer Speicher 110 und Cloud-Speicher 110 bezeichnet werden. Bei der Ausführungsform können die primäre Speicherstufe 105 und die zweite Speicherstufe 110 zum Beispiel für eine obere Schicht bzw. eine untere Schicht des HSM-Systems 100 stehen. Bei der Ausführungsform kann die primäre Speicherstufe 105 eine Grid-Konfiguration enthalten, in der Speichereinheiten und Server durch einen oder mehrere Speicherknoten oder Cluster gemultiplext werden können. Eine Domäne des HSM-Systems 100 kann Datenverarbeitungseinheiten wie z.B. dem Host-Computer 115 als ein einziger Knoten erscheinen. Bei der Ausführungsform kann die Domäne sechs Speicher-Cluster 120a bis 120f verwenden, die jeweils durch ein Grid-Netzwerk 5 miteinander verbunden werden. Bei der Ausführungsform kann jeder Cluster zum Beispiel durch ein virtuelles IBM® TS7700-Bandspeichersystem realisiert werden.
-
Bei einer Ausführungsform der vorliegenden Erfindung können einer oder mehrere der Cluster 120a bis 120f über das Netzwerk 125 mit dem Host-Computer 115 verbunden werden, um z.B. in Bezug auf entsprechende Datenträger Lese/SchreibAnforderungen zu übertragen. Zum Beispiel können die Cluster 120a (Cluster-1) und 120f (Cluster-6) über das Netzwerk 125a mit dem Host 115a verbunden werden, während die Cluster 120c (Cluster-3) und 120d (Cluster-4) über das Netzwerk 125b mit dem Host 115b verbunden werden können, wie in 1 dargestellt wird. Das Weiteren können die Cluster 120a bis 120f für eine Datenübertragung in einer Grid-Konfiguration über ein Grid-Netzwerk 130 verbunden werden.
-
Für eine Datenübertragung, Vormigration, Migration und/oder einen Rückruf von Datenträgern können die Cluster 120a bis 120f über ein Netzwerk 135 mit einer zweiten Speicherstufe 110 verbunden werden. Die zweite Speicherstufe 110 kann zum Beispiel ein Cloud-Speichersystem sein oder auf andere Weise enthalten. Ähnlich wie dies für die Domäne des HSM-Systems 100 der Fall ist, kann die zweite Speicherstufe Datenverarbeitungseinheiten wie z.B. dem Host-Computer 115 als ein einziger Knoten erscheinen. Die zweite Speicherstufe 110 kann zum Beispiel Speicherteilsysteme, eine Zwischenverbindungsstruktur (Fiber Channel, InfiniBand, Ethernet usw.), Speicherknoten, Schnittstellenknoten, ein Dateisystem und dergleichen enthalten. Die zweite Speicherstufe 110 kann zum Bereitstellen von Speicherressourcen als Teil eines Cloud-Speicherdienstes verwendet werden. Das HSM-System 100 kann alternativ andere Komponenten und Konfigurationen gemäß Ausführungsformen der vorliegenden Erfindung enthalten.
-
2 veranschaulicht ein Blockschaubild eines Speicher-Clusters 120, der das primäre Speicher-Grid des HSM-Systems bildet, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Unter Bezugnahme auf 2 kann der Speicher-Cluster 120 einen Virtualisierungsknoten 205 und einen Plattenspeicher 220 zur Emulation eines Bandlaufwerks, einer Bandbibliothek oder Ähnlichem enthalten. Jeder Cluster 120 kann einen hierarchischen Speicher-Controller 225 enthalten, um eine Datenverschiebung oder -übertragung zwischen dem Plattenspeicher 220 und dem sekundären Speicher 110 zu verwalten, sowie um Daten zwischen dem Plattenspeicher 220 und einem Plattenspeicher eines entfernt angeordneten Speicher-Clusters zu verschieben oder zu kopieren. Der Plattenspeicher des entfernt angeordneten Speicher-Clusters kann zum Beispiel ein oder mehrere Plattenlaufwerke wie z.B. eine redundante Anordnung von unabhängigen Festplatten (Redundant Array of Independent Disks, RAID), JBOD (Just a Bunch of Disks), Halbleiterlaufwerke (SSDs) und Ähnliches enthalten.
-
Bei einer Ausführungsform der vorliegenden Erfindung kann der Plattenspeicher 220 dazu dienen, einen virtuellen Datenträger-Cache bereitzustellen, der logische Datenträger enthält, die auf Grundlage von herkömmlichen Banddatenträgern emuliert werden können. Der Plattenspeicher 220 kann die logischen Datenträger für einen lokalen und Fernzugriff speichern. Bei der Ausführungsform kann der Virtualisierungsknoten 205 Banddämonen wie beispielsweise Banddämonen 210 und 215 für eine Verarbeitung von Dateien auf dem virtuellen Datenträger enthalten, wie sie z.B. in dem Plattenspeicher 220 oder in einem entfernt angeordneten Cache-Plattenspeicher enthalten sein können. Der Plattenspeicher 220 kann zum Beispiel ein lokaler Cache-Plattenspeicher sein. Der Virtualisierungsknoten 205 kann alternativ eine beliebige Anzahl von Banddämonen zum parallelen Verwalten von virtuellen Bandeinheiten enthalten, wie dies z.B. in dem IBM® TS7700-System der Fall ist, das Instanzen von bis zu 496 Banddämonen gleichzeitig unterstützen kann.
-
Wie in 2 dargestellt, kann der hierarchische Speicher-Controller 225 eine Grid-Verwaltungseinheit 230, einen Server 235 für den Datei-Fernzugriff, eine Datenverschiebungseinheit 240, eine Plattenspeicher-Verwaltungseinheit 245, eine Rückruf-Verwaltungseinheit 250, eine Datenbank 255 und eine Verwaltungsschnittstelle 260 enthalten.
-
Die Grid-Verwaltungseinheit 230 kann dazu dienen, Operationen zwischen den Clustern 120 auf Grundlage von Daten zu koordinieren, die in der Datenbank 255 eines jeden Clusters 120 gespeichert werden, um zu ermitteln, welcher Cluster 120 zu einem bestimmten Zeitpunkt eine aktuelle Kopie aller Datenträger in der Domäne speichert, enthält oder anderweitig besitzt. Die Grid-Verwaltungseinheit 230 kann des Weiteren dazu dienen, ein Kopieren von Daten zwischen Clustern gemäß einer oder mehreren Kopierrichtlinien zu koordinieren, die zum Beispiel in der Datenbank 255 eines jeden Clusters gespeichert werden können. Der Server 235 für den Datei-Fernzugriff kann dazu dienen, eine Verbindung zu einem Cache eines Plattenspeichers 220 wie z.B. eines entfernt angeordneten Clusters bereitzustellen. Die Datenverschiebungseinheit 240 kann dazu dienen, Datenübertragungsoperationen für Kopien, die zwischen den Clustern 120 durchgeführt werden, sowie Übertragungen von Datenträgern zwischen dem Plattenspeicher 220 und dem sekundären Speicher 110 zu steuern.
-
Die Plattenspeicher-Verwaltungseinheit 245 kann dazu dienen, ein Kopieren von Datenträgern zwischen dem Plattenspeicher 220 und dem sekundären Speicher 110 zu steuern und kann des Weiteren eine darauffolgende Entfernung einer redundanten Kopie von Daten in dem Plattenspeicher 220 steuern. Die Plattenspeicher-Verwaltungseinheit 245 kann des Weiteren dazu dienen, Steuersignale für einen Lastausgleich und Datenfluss zwischen dem Plattenspeicher 220 und anderen Komponenten der Datenbank 255 zu übertragen. Die Rückruf-Verwaltungseinheit 250 kann dazu dienen, einen Rückruf von Daten in Bezug auf den Plattenspeicher 220 und den sekundären Speicher 110 für den Virtualisierungsknoten 205 und die Grid-Verwaltungseinheit 230 in eine Warteschlange zu stellen und zu steuern.
-
Die Datenbank 255 kann dazu dienen, Daten, die zum Identifizieren eines oder mehrerer Cluster verwendet werden, die eine oder mehrere Kopien eines Datenträgers speichern, in Bezug auf alle Datenträger in der Domäne der primären Speicherstufe 105 zu speichern. Die Datenbank 255 kann des Weiteren dazu dienen, Daten zu speichern, die zum Identifizieren eines oder mehrerer Cluster verwendet werden, die Kopierrichtlinien speichern, welche einem jeden der Datenträger entsprechen. Jede Kopierrichtlinie kann einem eindeutigen Bezeichner zugehörig sein. Die Verwaltungsschnittstelle 260 kann dazu dienen, Informationen zu jedem Speicher-Cluster 120 bereitzustellen, um eine Benutzersteuerung und -konfiguration desselben zu ermöglichen.
-
Der Speicher-Cluster 120 kann zum Beispiel das IBM® TS7700-System sein, das realisiert werden kann, um in verschiedenen Arten von HSM-Systemen eine virtuelle Bandspeicherfunktionalität bereitzustellen. Auch andere Arten von Speichersystemen können gemäß Ausführungsformen der vorliegenden Erfindung realisiert werden.
-
3 veranschaulicht einen Ablaufplan 300, der die Operationen zum Festlegen einer Kopierrichtlinie für einen Datenträger, der in dem HSM-System gespeichert werden soll, gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
In Schritt S305 beginnt der Prozess.
-
In Schritt S310 kann in einem Host-Computer wie z.B. einem der Host-Computer 115 ein neuer Datenträger erstellt werden.
-
In Schritt S315 können dem Datenträger Kopierrichtlinien-Daten beigefügt werden. Bei einer Ausführungsform der vorliegenden Erfindung können die Kopierrichtlinien-Daten ein Bezeichner sein, der einer Kopierrichtlinie zugehörig ist, wie sie z.B. in der Datenbank 255 eines Speicher-Clusters 120 gespeichert werden kann, oder diesen anderweitig enthalten. Eine Beifügung der Kopierrichtlinien-Daten kann ein Durchführen von zugehörigen Archivierungsoperationen z.B. durch ein Computerprogramm enthalten, das ermitteln kann, ob der Datenträger eine vordefinierte Bedingung in Bezug auf die zugehörige Kopierrichtlinie erfüllt. Die Archivierungsoperationen können alternativ durch einen Benutzer durchgeführt werden. Die vordefinierte Bedingung kann sich auf ein oder mehrere Attribute beziehen, die einzelnen Datenträgern zugehörig sind, und kann zum Beispiel einen Typ von Datei des Datenträgers (z.B. Spielfilmdatei, Bilddatei, Textdatei, Anwendungsdatei usw.), eine dem Datenträger beigefügte Kennzeichnung, z.B. in Bezug auf eine Einstufung oder einen Grad an Wichtigkeit, eine Größe, einen Verfasser/Ersteller, ein Sicherheitsniveau, einen Datenträgernamen, einen Inhalt, Metakennungen, einen beigefügten Kommentar, eine Version, eine Erstellungszeit, eine Änderungszeit und dergleichen mehr enthalten.
-
In Schritt S320 kann der Host-Computer 115 dann eine Schreibanforderung, die dem erstellten Datenträger entspricht, sowie den eigentlichen Datenträger über das Netzwerk 125 an das HSM-System 100 senden.
-
In Schritt S325 wird der Prozess durch einen oder mehrere der Speicher-Cluster 120 des HSM-Systems 100 fortgesetzt.
-
Bei einer Ausführungsform der vorliegenden Erfindung kann der Host-Computer 115a eine Schreibanforderung in Zusammenhang mit Datenträger-A an Cluster-6 (120f) senden, wie in 6A dargestellt wird. 6A veranschaulicht eine Darstellung, welche die Operation eines Speicherns des Datenträgers in der primären Speicherstufe als Reaktion auf ein Empfangen einer Schreibanforderung von dem Host-Computer, der mit dem HSM-System verbunden ist, gemäß Ausführungsformen der vorliegenden Erfindung beschreibt.
-
4 veranschaulicht einen Ablaufplan, der die zugehörigen Operationen eines Speicherns und Kopierens des Datenträgers in der primären Speicherstufe als Reaktion auf ein Empfangen einer Schreibanforderung von dem Host-Computer 115 gemäß Ausführungsformen der vorliegenden Erfindung darstellt.
-
In Schritt S405 beginnt der Prozess 400. In Schritt S410 empfängt einer der Speicher-Cluster 120 in der Domäne 115 die Schreibanforderung mit dem entsprechenden Datenträger, wie sie von dem Host-Computer 115 gesendet wurde. Die Schreibanforderung kann durch einen Speicher-Cluster wie z.B. den Cluster-6 120f empfangen werden, wie in 6A dargestellt wird. In Schritt S415 überprüft der Speicher-Cluster 120 eine Kopierrichtlinie, die sich auf den Datenträger bezieht, welcher der empfangenen Schreibanforderung entspricht. Die Kopierrichtlinie wird aus in der Datenbank 255 gespeicherten Kopierrichtlinien identifiziert, indem ein Kopierrichtlinien-Bezeichner verwendet wird, der dem Datenträger beigefügt wird. Wenn eine der Schreibanforderung entsprechende Kopierrichtlinie identifiziert wird, wird in Schritt S420 ermittelt, ob der Datenträger in diesen Cluster geschrieben werden soll. Wenn eine entsprechende Kopierrichtlinie identifiziert wird, fährt der Prozess mit Schritt S425 fort. Wenn keine entsprechende Kopierrichtlinie identifiziert wird, fährt der Prozess mit Schritt S435 fort. In Schritt S425 wird der Datenträger gemäß der identifizierten Kopierrichtlinie in dem lokalen Plattenspeicher 220 des Speicher-Clusters gespeichert. In Schritt S430 werden Informationen, die angeben, dass der Datenträger in den Speicher-Cluster geschrieben wurde, in dem lokalen Plattenspeicher 220 gespeichert und in der lokalen Datenbank 255 protokolliert. Die Informationen werden auch an alle anderen Speicher-Cluster 120 in der Domäne der primären Speicherstufe 105 gesendet oder übertragen, um Datenbanken eines jeden der Cluster entsprechend zu aktualisieren. In Schritt 435 wird ermittelt, ob der Datenträger in einen oder mehrere der anderen Cluster in der Domäne der primären Speicherstufe 105 geschrieben werden soll. Bei einer Ausführungsform der vorliegenden Erfindung kann die Ermittlung auf Grundlage der in Schritt S415 identifizierten und auf den Datenträger anwendbaren Kopierrichtlinie sowie auf Grundlage von Informationen erfolgen, die angeben, welcher Cluster in der Domäne der primären Speicherstufe 105 momentan eine Kopie des Datenträgers speichert, die in der Datenbank 255 eines jeden Clusters gespeichert werden kann. In Schritt S445 wird die Schreibanforderung entsprechend der Ermittlungen in Schritt S435 weitergeleitet. In Schritt S450 endet der Prozess.
-
Bei einer Ausführungsform der vorliegenden Erfindung kann eine Kopierrichtlinie aus Anweisungen bestehen, die für ein umgehendes Kopieren, ein verzögertes Kopieren, ein zeitverzögertes Kopieren oder ein synchrones Kopieren stehen, bzw. diese anderweitig enthalten. Wenn die Kopierrichtlinie ein umgehendes Kopieren vorsieht, wird festgestellt, dass der Datenträger in einen bzw. mehrere andere Speicher-Cluster geschrieben werden soll, wenn der Datenträger in dem aktuellen Speicher-Cluster, der die Schreibanforderung empfangen hat, geschlossen wird. Wenn die Kopierrichtlinie ein verzögertes Kopieren vorsieht, wird festgestellt, dass der Datenträger in einen bzw. mehrere andere Speicher-Cluster geschrieben werden soll, wenn eine bestimmte Zeitspanne verstrichen ist, nachdem der Datenträger in dem aktuellen Speicher-Cluster geschlossen wird. Wenn die Kopierrichtlinie ein zeitverzögertes Kopieren vorsieht, wird festgestellt, dass der Datenträger in einen bzw. mehrere andere Speicher-Cluster geschrieben werden soll, wenn der automatisch durch ein Programm oder durch einen Benutzer angegebene Zeitpunkt erreicht wird. Wenn die Kopierrichtlinie ein synchrones Kopieren vorsieht, wird festgestellt, dass der Datenträger in einen bzw. mehrere andere Speicher-Cluster geschrieben werden soll, bevor der Datenträger in dem aktuellen Speicher-Cluster geschlossen wird, so dass der Datenträger gleichzeitig in den aktuellen Speicher-Cluster und in den bzw. die anderen Speicher-Cluster geschrieben wird.
-
Bei einer Ausführungsform der vorliegenden Erfindung wird der in Cluster-6 (120f) gespeicherte Datenträger-A gemäß der identifizierten Kopierrichtlinie in Cluster-2 (120b) und Cluster-4 (120d) kopiert, wie in 6B gezeigt wird. 6B veranschaulicht eine Darstellung, welche die Operation eines Kopierens des Datenträgers in der primären Speicherstufe als Reaktion auf ein Empfangen einer Schreibanforderung von dem Host-Computer, der mit dem HSM-System verbunden ist, gemäß Ausführungsformen der vorliegenden Erfindung beschreibt.
-
5 veranschaulicht einen Ablaufplan, der die Migrationsoperationen für die Datei, die in der Mehrzahl von Clustern in der primären Speicherschicht gespeichert wird, in den Cloud-Speicher des HSM-Systems gemäß Ausführungsformen der vorliegenden Erfindung darstellt. Die Migrationsoperationen können als Teil eines Datenträger-Migrationsprozesses 500 durchgeführt werden.
-
In Schritt S505 beginnt der Datenträger-Migrationsprozess 500. Bei verschiedenen Ausführungsformen der vorliegenden Erfindung kann der Prozess 500 in regelmäßigen Intervallen oder als Reaktion auf ein Eintreten eines bestimmten Ereignisses oder einer bestimmten Bedingung ausgelöst werden. Zum Beispiel kann der Prozess 500 ausgelöst werden, wenn die Menge an freiem Platz eines Plattenspeichers von einem der Speicher-Cluster 120 unter einen vordefinierten Schwellenwert abfällt.
-
In Schritt S510 sortiert daraufhin jeder entsprechende Speicher-Cluster lokal gespeicherte Datenträger gemäß der Erstellungszeit, dem Zeitpunkt des letzten Zugriffs oder einem bzw. mehreren anderen Attributen, die einem jeden Datenträger zugehörig sein können. Die Datenträger können zum Zeitpunkt eines Sortierens in dem lokalen Plattenspeicher 220 eines jeden entsprechenden Speicher-Clusters gespeichert werden und können diejenigen Datenträger enthalten, von denen festgestellt wurde, dass sie in den sekundären Speicher 110 migriert werden sollen. Von einem Datenträger kann festgestellt werden, dass er in den Cloud-Speicher 110 migriert werden soll, wenn er für eine bestimmte Zeitspanne nicht verwendet wird bzw. für eine bestimmte Zeitspanne nicht auf ihn zugegriffen wird.
-
In Schritt S515 zählt jeder Cluster die kleinste Anzahl („N“) von Kopien in der Domäne der primären Speicherstufe 105 für jeden Datenträger, der in dem entsprechenden Cluster gespeichert wird. Jeder Cluster kann die Anzahl von Kopien auf Grundlage der übertragenen Daten zählen, um zu ermitteln, welcher Cluster eine aktuelle Kopie eines jeden entsprechenden Datenträgers in der Domäne der primären Speicherstufe 105 besitzt bzw. speichert, wie weiter oben beschrieben wurde.
-
In Schritt S520 identifiziert jeder Cluster einen oder mehrere der Datenträger in der Domäne, die noch nicht verarbeitet wurden (S520).
-
In Schritt S525 ermittelt jeder Cluster für jeden in Schritt S520 identifizierten Datenträger, ob der Datenträger älter als ein vorbestimmter Schwellenwert ist. Wenn bei einer Ausführungsform der vorliegenden Erfindung die Ermittlung in Schritt S525 ein wahres bzw. ein Ergebnis „JA“ ergibt, fährt der Prozess mit Schritt S535 fort, in dem der identifizierte Datenträger zu einer Migrationswarteschlange des sekundären Speichers 110 hinzugefügt werden kann. Vorteilhafterweise dienen die Schritte S525 und S535 als ein „Sicherheitsnetz“ für Situationen, in denen zum Beispiel ein weiterer Cluster, der eine Kopie des identifizierten Datenträgers speichert, aufgrund eines örtlich begrenzten Fehlers, der den weiteren Cluster betrifft, nicht in der Lage ist, den Datenträger zu migrieren. Wenn bei der Ausführungsform die Ermittlung in Schritt S525 ein falsches bzw. ein Ergebnis „NEIN“ ergibt, fährt der Prozess stattdessen mit Schritt S530 fort, in dem der Speicher-Cluster 120 ermittelt, ob die Anzahl von Kopien des identifizierten Datenträgers gleich „N“ ist. Wenn die Ermittlung in Schritt S530 ein wahres bzw. ein Ergebnis „JA“ ergibt, kann der Datenträger zu der Migrationswarteschlange des sekundären Speichers 110 hinzugefügt werden, um eine zugehörige Migrationsoperation einzuplanen. Wenn die Ermittlung in Schritt S530 ein falsches bzw. ein Ergebnis „NEIN“ ergibt, kehrt der Prozess zu Schritt S520 zurück, um den Prozess für einen weiteren unverarbeiteten Datenträger zu wiederholen.
-
In Schritt S540 wird durch jeden Speicher-Cluster jeweils ermittelt, ob noch ein bzw. mehrere unverarbeitete Datenträger verblieben sind. Wenn bei einer Ausführungsform der vorliegenden Erfindung die Ermittlung eines wahres bzw. ein Ergebnis „JA“ ergibt, kehrt der Prozess zu Schritt S510 zurück, um den bzw. die unverarbeiteten Datenträger entsprechend zu verarbeiten. Wenn die Ermittlung ein falsches bzw. ein Ergebnis „NEIN“ ergibt, endet der Prozess in Schritt S545. Es wird darauf verwiesen, dass die während des Prozesses 500 kopierten Datenträger aus dem primären Speicher zu entfernen sind, wenn ein mit dem HSM-System verbundener Host-Computer sie innerhalb einer bestimmten Zeitspanne nach den Kopieroperationen nicht verwendet (in 5 nicht gezeigt).
-
Eine Beispiel-Kopieroperation gemäß einer Ausführungsform der vorliegenden Erfindung wird nun mit Blick auf die 7 beschrieben. 7 veranschaulicht eine Darstellung, welche die Migrationsoperationen für die in der Mehrzahl von Clustern in der primären Speicherschicht oder -stufe gespeicherten Datenträger in den Cloud-Speicher des HSM-Systems gemäß einer Ausführungsform der vorliegenden Erfindung beschreibt.
-
Zu beachten ist, dass das Beispiel auf Grundlage eines früheren Beispiels der vorliegenden Offenbarung gegeben wird, in dem es sechs (6) Speicher-Cluster 120a bis 120f in der Domäne der primären Speicherstufe 105 gibt und Cluster-2 (120b) Datenträger-A, Datenträger-B und Datenträger-C speichert, Cluster-4 Datenträger-A und Datenträger-B speichert und Cluster-6 Datenträger-A speichert und in dem des Weiteren die Datenträger für eine Migration in den Cloud-Speicher 110 ermittelt und ausgewählt werden, weil z.B. während einer bestimmten Zeitspanne kein von einem Benutzer angeforderter Zugriff auf jeden der betreffenden Datenträger erfolgt. Zusätzlich wird in dem folgenden Beispiel auch davon ausgegangen, dass Datenträger-A eine am wenigsten alte (d.h. neueste) Erstellungszeit aufweist, dass Datenträger-B eine zweitälteste Erstellungszeit aufweist und dass Datenträger-C bezogen auf die Erstellungszeit von Datenträger-A und Datenträger-B eine älteste Erstellungszeit aufweist. Somit sortiert in diesem Beispiel Cluster-6 (120f) Datenträger-C, Datenträger-B und dann Datenträger-A, während Cluster-4 (120d) Datenträger-B und Datenträger-A sortiert, wobei jeder Satz von Datenträgern durch jeden betreffenden Cluster in der oben genannten Reihenfolge sortiert wird, wie z.B. in Schritt S510. Cluster-2 führt keine solche Sortieroperation durch, da er lediglich Datenträger-A aufweist.
-
In dem Beispiel führt dies zu drei Kopien von Datenträger-A, zwei Kopien von Datenträger-B und einer Kopie von Datenträger-C in der Domäne der primären Speicherstufe 105. Somit stellt Speicher-Cluster 2 in Schritt S515 fest, dass die kleinste Anzahl „N“ der in Cluster-2 gespeicherten Kopien der Datenträger eins beträgt, da in diesem Cluster „N“ für Datenträger-A „3“, „N“ für Datenträger-B „2“ und „N“ für Datenträger-C „1“ ist. Entsprechend stellt Speicher-Cluster-4 in Schritt S515 fest, dass die kleinste Anzahl „N“ der Kopien der Datenträger zwei beträgt, und Cluster-6 stellt fest, dass die kleinste Anzahl „N“ der Kopien der Datenträger eins beträgt.
-
In dem Beispiel fügt Cluster-2 in den Schritten S520 bis S535 den Datenträger-C zu seiner Migrationswarteschlange hinzu, da die Anzahl von Kopien von Datenträger-C in der Domäne der primären Speicherstufe 105 gleich der kleinsten Anzahl ist, die durch Cluster-2 festgestellt wird (d.h. eins (1)). Cluster-4 fügt Datenträger-B zu seiner Migrationswarteschlange hinzu, da die Anzahl von Kopien von Datenträger-B in der Domäne der primären Speicherstufe 105 gleich der kleinsten Anzahl ist, die durch Cluster-4 festgestellt wird (d.h. zwei (2)). Schließlich fügt Cluster-6 Datenträger-A zu seiner Migrationswarteschlange hinzu, da die Anzahl von Kopien von Datenträger-A in der Domäne der primären Speicherstufe 105 gleich der kleinsten Anzahl ist, die durch Cluster-6 festgestellt wird (d.h. drei (3)).
-
In dem Beispiel wird Datenträger-A aus Cluster-6, Datenträger-B aus Cluster-4 und Datenträger-C aus Cluster-2 in den sekundären Speicher 110 (d.h. den Cloud-Speicher) kopiert. Als ein Ergebnis einer Realisierung der Ausführungsformen der vorliegenden Erfindung werden die aus Migrationsoperationen resultierenden Lasten effizient auf die Speicher-Cluster in der Domäne verteilt, und die Migrationsleistung wird maximiert. Auch hier wird darauf verwiesen, dass bei einer Ausführungsform Datenträger-A, B und C aus dem primären Speicher zu entfernen sind, wenn ein mit dem HSM-System verbundener Host-Computer sie innerhalb einer bestimmten Zeitspanne nach den Kopieroperationen nicht verwendet.
-
Bei verschiedenen Ausführungsformen der vorliegenden Erfindung kann, wie oben beschrieben, davon ausgegangen werden, dass der sekundäre Speicher ein Einzel-Ziel in der Cloud ist. Bei anderen Ausführungsformen der vorliegenden Erfindung kann der sekundäre Speicher einen Cloud-Dienst mit zwei oder mehr Cloud-Speicherknoten bereitstellen, die jeweils ein Einzel-Ziel mit einem eindeutigen einheitlichen Ressourcenanzeiger (Uniform Resource Locator, URL) sein können. Bei solchen Ausführungsformen können die Cloud-Speicherknoten zum Beispiel in Japan bzw. in den USA bereitgestellt werden, und ein Anbieter des Cloud-Dienstes kann für eine Replikation der Daten innerhalb der Cloud-Speicherknoten verantwortlich sein. Sobald ein Datenträger in einen der Cloud-Speicherknoten geschrieben wird, kann in einem solchen Szenario mit mehreren Cloud-Speicherknoten der Cloud-Dienst den Datenträger in die anderen Cloud-Speicherknoten des Cloud-Dienstes kopieren. Wenn der sekundäre Speicher mehrere Cloud-Dienste enthält, können die Speicher-Cluster des primären Speichers die zu migrierenden Datenträger in den sekundären Speicher eines jeden Cloud-Dienstes kopieren.
-
8 veranschaulicht gemäß einer Ausführungsform der vorliegenden Erfindung eine Darstellung, die ein Beispiel für eine bevorzugte Hardware-Konfiguration einer Datenverarbeitungseinheit 10 zeigt, wie sie durch den Host-Computer 115, den Speicher-Cluster 120 und/oder eine Datenverarbeitungsplattform wie z.B. die zweite Speicherstufe 110 verkörpert werden kann. Die Datenverarbeitungseinheit 10 kann zum Beispiel eine Datenverarbeitungsplattform wie beispielsweise eine Universal-Datenverarbeitungseinheit, ein Server oder jede beliebige andere Art von Datenübertragungsplattform sein, wie sie in Bezug auf 1 beschrieben wird. Wie in 8 gezeigt, kann die Datenverarbeitungseinheit 10 zum Beispiel ein Computersystem/einen Server 12 enthalten oder anderweitig durch dieses/diesen unterstützt werden. Die Komponenten des Computersystems/Servers 12 können zum Beispiel eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemarbeitsspeicher 28 und einen Bus 18 enthalten, um verschiedene Systemkomponenten wie z.B. den Systemarbeitsspeicher 28 mit dem Prozessor 16 zu verbinden.
-
Der Bus 18 steht für jede Art von Busstruktur oder -einheit, z.B. ein Speicherbus, ein Arbeitsspeicher-Controller, ein Peripheriebus, ein Accelerated Graphics Port (AGP), ein Prozessor -oder lokaler Bus, wobei eine beliebige aus einer Vielfalt von Busarchitekturen verwendet werden kann, oder Ähnliches. Die Busstruktur kann zum Beispiel einen ISA-Bus (Industry Standard Architecture), einen MCA-Bus (Micro Channel Architecture), einen EISA-Bus (Enhanced ISA), einen lokalen VESA-Bus (Video Electronics Standards Association) und einen PCI-Bus (Peripheral Component Interconnect) oder Ähnliches enthalten.
-
Das Computersystem/der Server 12 kann üblicherweise zum Beispiel eine Vielfalt von Medien enthalten, die durch ein Computersystem lesbar sind. Derartige Medien können ein beliebiger Typ von Medien sein, auf die das Computersystem/der Server 12 zugreifen kann, und können zum Beispiel flüchtige und nicht flüchtige ebenso wie entfernbare und nicht entfernbare Medien enthalten.
-
Der Systemarbeitsspeicher 28 kann ein durch ein flüchtiges Computersystem lesbares Medium wie z.B. einen Direktzugriffsspeicher (Random Access Memory, RAM) 30 und/oder einen Cache-Arbeitsspeicher 32 enthalten. Das Computersystem/der Server 12 kann des Weiteren andere entfernbare/nicht entfernbare und flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur um ein Beispiel zu geben, kann ein Speichersystem 34 zum Lesen von und Schreiben auf ein nicht entfernbares, nicht flüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise als eine „Festplatte“ bezeichnet wird). Obwohl hier nicht abgebildet, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine entfernbare, nicht flüchtige Magnetplatte (z.B. eine Diskette) sowie ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine entfernbare, nicht flüchtige optische Platte wie z.B. ein CD-ROM, ein DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In diesen Fällen kann jedes Laufwerk über eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden werden. Wie weiter unten ausführlicher dargestellt und beschrieben, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz (d.h. mindestens einem Satz) von Programmmodulen oder Anweisungen zur Ausführung enthalten, wobei diese so konfiguriert sein können, dass sie verschiedene Funktionen der vorliegenden Erfindung wie hier beschrieben durchführen.
-
Das durch einen Computer lesbare Medium kann ein durch einen Computer lesbares Signalmedium oder ein durch einen Computer lesbares Speichermedium sein. Das durch einen Computer lesbare Speichermedium kann zum Beispiel ein elektronisches, magnetisches, elektromagnetisches, optisches, Infrarot- oder Halbleitersystem bzw. eine entsprechende Vorrichtung oder Einheit oder aber eine beliebige geeignete Kombination hiervon sein. Zum Beispiel kann das durch einen Computer lesbare Speichermedium eine elektrische Verbindung mit einem oder mehreren Leitern, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (Read-Only Memory, ROM), einen löschbaren, programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-Only Memory (EPROM) oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren Compact-Disc-Festwertspeicher (Compact Disc Read-Only Memory, CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination hiervon sein oder enthalten. Im Kontext der vorliegenden Erfindung kann das durch einen Computer lesbare Speichermedium ein beliebiges gegenständliches Medium sein, das ein Programm enthalten oder speichern kann, welches durch ein oder in Verbindung mit einem System, einer Vorrichtung oder Einheit für die Anweisungsausführung verwendet wird
-
Ein durch einen Computer lesbares Signalmedium kann ein weitergegebenes Datensignal mit darin enthaltenem, durch einen Computer lesbaren Programmcode enthalten (z.B. als ein Basisband oder als Teil einer Trägerwelle). Ein derartiges weitergegebenes Signal kann in verschiedenen Formen vorliegen, z.B. elektromagnetisch, optisch, mit einer beliebigen geeigneten Kombination hiervon oder Ähnliches. Ein durch einen Computer lesbares Signalmedium kann ein beliebiges durch einen Computer lesbares Medium sein, das kein durch einen Computer lesbares Speichermedium ist, das dazu verwendet werden kann, ein Programm oder Programmanweisungen zur Verwendung oder Ausführung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zur Anweisungsausführung zu übertragen, weiterzugeben oder zu übermitteln.
-
Programmcode, der auf einem durch einen Computer lesbaren Medium enthalten ist, kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, zum Beispiel ein drahtloses, drahtgebundenes, Lichtwellenleiterkabel-, Hochfrequenz(HF)-Medium usw. oder eine beliebige Kombination hiervon.
-
Ein Programm/Dienstprogramm 40 mit einem Satz (d.h. mindestens einem Satz) von Programmmodulen 42 kann in dem Arbeitsspeicher 28 gespeichert werden, zum Beispiel in Form eines Betriebssystems, eines oder mehrerer Anwendungsprogramme, Programmmodule oder einer beliebigen anderen Form von Programmdaten, und kann entweder einzeln oder in verschiedenen Kombinationen bei einer Realisierung einer Netzwerkumgebung verwendet werden. Die Programmmodule 42 können generell zum Ausführen der verschiedenen Funktionen und Methodiken der vorliegenden Erfindung wie hier beschrieben verwendet werden.
-
Das Computersystem/der Server 12 kann mit einer Anzeige 24 und/oder einer oder mehreren externen Einheiten 14 wie z.B. einer Tastatur, einer Zeigeeinheit und/oder jeder beliebigen anderen Art von Benutzerschnittstelle oder Eingabe/Ausgabe(E/A)-Einheit Daten austauschen. Die Anzeige 24 kann zum Beispiel verwendet werden, um eine Schnittstelle oder einen Mechanismus zum Anzeigen von Daten oder Informationen für einen Benutzer bereitzustellen, und kann zum Beispiel eine Anzeige, ein Bildschirm, ein Fernsehbildschirm oder Ähnliches sein.
-
Generell kann das Computersystem/der Server 12 mit jeder Art von Einheit Daten austauschen, die dazu verwendet wird, eine Benutzerinteraktion mit ihm zu ermöglichen. Des Weiteren kann das Computersystem/der Server 12 mit jeder Art von Einheit wie z.B. einer Netzwerkkarte, einem Modem oder dergleichen Daten austauschen, die dazu verwendet werden kann, eine Datenübertragung zwischen dem Computersystem/Server 12 und einer oder mehreren anderen Datenverarbeitungseinheiten oder Plattformen zu ermöglichen. Eine solche Datenübertragung kann zum Beispiel anhand von einer bzw. mehreren E/A-Schnittstellen 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 z.B. über einen Netzwerkadapter 20 mit einem oder mehreren Netzwerken Daten austauschen, z.B. mit einem lokalen Netzwerk (LAN), einem Weitverkehrsnetzwerk (WAN) einem öffentlichen Netzwerk (z.B. das Internet) oder Ähnlichem. Wie in 8 dargestellt, kann der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 anhand des Busses 18 Daten austauschen. Obwohl sie hier nicht abgebildet sind, sollte dabei klar sein, dass auch andere Hardware- und/oder Software-Komponenten durch das bzw. den oder in Verbindung mit dem Computersystem/Server 12 verwendet werden können. Solche Hardware- und/oder Software-Komponenten können zum Beispiel einen oder mehrere Microcodes, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerksstapel, RAID-Systeme, Bandlaufwerke, Datenarchivierungsspeichersysteme und Ähnliches enthalten.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen möglichen Grad an technischer Integration handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit darauf durch einen Computer lesbaren Programmanweisungen enthalten, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit enthalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein RAM, ein ROM, ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD (Digital Versatile Disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandseinstellende Daten, Konfigurationsdaten für eine integrierte Schaltung oder sowohl um Quellcode als auch um Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Diensteanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA) oder programmierbare Logikanordnungen (PLA, Programmable Logic Arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken der Ablaufpläne und/oder Blockschaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
-
Bei den Eigenschaften handelt es sich um die Folgenden: On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
-
Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
-
Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
-
Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (Scale-out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
-
Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Bei den Dienstmodellen handelt es sich um die Folgenden:
- Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten nutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
-
Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speichern, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Bei den Einsatzmodellen handelt es sich um die Folgenden:
- Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
-
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Zielsetzung, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
-
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
-
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Mittelpunkt des Cloud-Computing steht eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten enthält.
-
Unter Bezugnahme auf 9 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 12, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA) oder das Mobiltelefon 54A, der Desktop Computer 54B, der Laptop Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 12 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 9 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 12 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
Unter Bezugnahme auf 10 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (9) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 10 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC(Reduced Instruction Set Computer)-Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen enthalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann eine Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Eine Sicherheit stellt die Identitäts- überprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einer SLA bereit.
-
Eine Arbeitslastenschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und hierarchische Speicherverwaltung 96. Die hierarchische Speicherverwaltung 96 kann eine Funktionalität enthalten, die ermöglicht, dass die Cloud-Computing-Umgebung bei der Datenmigrationsverwaltung in einem hierarchischen Speicherverwaltungssystem gemäß Ausführungsformen der vorliegenden Erfindung verwendet wird.
-
Obwohl die Erfindung in Bezug auf bestimmte beispielhafte Ausführungsformen hiervon gezeigt und beschrieben wurde, sollte dem Fachmann klar sein, dass verschiedene Änderungen an Form und Einzelheiten daran vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen, wie er von den beigefügten Ansprüchen und ihren Äquivalenten definiert wird. Die vorliegende Erfindung wurde somit lediglich beispielhaft zum Zwecke der Veranschaulichung und nicht als Beschränkung offenbart.