-
HINTERGRUND
-
GEBIET DER TECHNIK
-
Ausführungsformen beziehen sich auf zeitpunktgesteuerte Sicherungen über einen Speicher-Controller in eine Objektspeicher-Cloud.
-
HINTERGRUND
-
Ein Cloud-Speicher ist ein Modell eines Datenspeichers, bei dem digitale Daten in logischen Pools gespeichert werden und bei dem der physische Speicher eine Mehrzahl von Servern umfasst. Die physische Speicherumgebung kann einem Hosting-Unternehmen gehören und von diesem verwaltet werden. Dieser Cloud-Speicheranbieter kann dafür verantwortlich sein, die Daten verfügbar und zugänglich zu halten sowie die physische Umgebung sachgemäß geschützt und gewartet zu halten. Personen und Organisationen können Speicherkapazität von den Cloud-Speicheranbietern kaufen oder mieten, um Nutzer-, Organisations- oder Anwendungsdaten zu speichern.
-
Bei bestimmten Datenverarbeitungsumgebungen ermöglicht ein Speicher-Controller den Host-Datenverarbeitungssystemen, Eingabe/Ausgabe-Operationen (E/A-Operationen) mit einer Mehrzahl von Speichereinheiten durchzuführen, die durch den Speicher-Controller gesteuert werden. Eine Speicherverwaltungsanwendung, die in dem Speicher-Controller ausgeführt wird, kann die Mehrzahl von Speichereinheiten wie z.B. Plattenlaufwerke, Bandlaufwerke, Flash-Laufwerke, Direktzugriffsspeicher (Direct Access Storage Device, DASD) usw. verwalten, die mit dem Speicher-Controller verbunden sind. Eine Host-Anwendung, die in einem Host-Datenverarbeitungssystem ausgeführt wird, kann E/A-Befehle an den Speicher-Controller übertragen, und der Speicher-Controller kann die E/A-Befehle ausführen, um Daten aus den Speichereinheiten zu lesen oder in die Speichereinheiten zu schreiben.
-
Eine zeitpunktgesteuerte Kopie ist eine vollständig nutzbare Kopie einer definierten Zusammenstellung von Daten, die ein Abbild der Daten zu einem konkreten Zeitpunkt beinhaltet. Auch wenn davon ausgegangen wird, dass die zeitpunktgesteuerte Kopie zu dem konkreten Zeitpunkt logisch stattgefunden hat, können bestimmte Mechanismen die Kopie ganz oder teilweise zu anderen Zeitpunkten durchführen, solange das Ergebnis eine konsistente Kopie der Daten zu dem betreffenden Zeitpunkt ist. Um eine konsistente Kopie der Daten zu erstellen, musste vor der Verwendung von zeitpunktgesteuerten Kopieroperationen eine Host-Anwendung gestoppt werden, während die Daten physisch kopiert wurden. Bei großen Datensätzen verursachte dies Unterbrechungen von mehreren Stunden und machte den Vorgang des Erstellens von Kopien großer Datensätze für die Nutzer sehr unkomfortabel. Durch zeitpunktgesteuerte Kopieroperationen kann eine Kopie fast ohne negative Auswirkung auf die Host-Anwendung erstellt werden. Die Host-Anwendung kann ununterbrochen ausgeführt werden, mit Ausnahme einer kurzen Zeitspanne von wenigen Millisekunden oder Sekunden, während der die zeitpunktgesteuerte Kopie erstellt wird. So ist zum Beispiel das von der International Business Machines (IBM) unterstützte FlashCopy (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sowie FlashCopy sind Marken der International Business Machines Corporation, die in vielen Rechtsräumen weltweit eingetragen sind) ein zeitpunktgesteuerter Kopiermechanismus, der es möglich macht, nahezu verzögerungsfrei zeitpunktgesteuerte Momentaufnahmekopien von vollständigen logischen Datenträgern oder Datensätzen zu erstellen.
-
KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Bereitgestellt werden ein Verfahren, System und Computerprogrammprodukt, bei denen ein Speicher-Controller von einer Host-Anwendung einen Befehl empfängt, um eine zeitpunktgesteuerte Sicherung eines Quelldatensatzes in eine Speicher-Cloud durchzuführen. Der Speicher-Controller erzeugt über eine zeitpunktgesteuerte Kopie des Quelldatensatzes einen Zieldatensatz sowie eine Abbildung, die eine Entsprechung zwischen Speicherpositionen des Quelldatensatzes und Speicherpositionen des Zieldatensatzes angibt. Der Speicher-Controller kopiert den Zieldatensatz in die Speicher-Cloud, um einen Sicherungsdatensatz zu erzeugen, der die zeitpunktgesteuerte Sicherung des Quelldatensatzes ist, wobei der Zugriff auf den Sicherungsdatensatz über einen Verweis auf die Speicherpositionen des Quelldatensatzes möglich ist. Als Ergebnis führt anstelle eines Hosts der Speicher-Controller die zeitpunktgesteuerte Sicherung des Quelldatensatzes in die Speicher-Cloud durch.
-
Bei weiteren Ausführungsformen wird die Host-Anwendung in einer Host-Datenverarbeitungseinheit ausgeführt, die mit dem Speicher-Controller verbunden ist, wobei Operationen zum Durchführen der zeitpunktgesteuerten Sicherung des Quelldatensatzes in die Speicher-Cloud aus der Host-Datenverarbeitungseinheit an den Speicher-Controller ausgelagert werden. Der Speicher-Controller kopiert den Zieldatensatz in die Speicher-Cloud, ohne Bereiche, Spuren oder andere Speicherentitäten des Zieldatensatzes an die Host-Datenverarbeitungseinheit zu übertragen. Als Ergebnis werden Operationen zum Erstellen der zeitpunktgesteuerten Sicherung an den Speicher-Controller ausgelagert.
-
Bei bestimmten Ausführungsformen wird die zeitpunktgesteuerte Sicherung des Quelldatensatzes in die Speicher-Cloud durch eine virtuelle, gleichzeitige Kopiersitzung durchgeführt, wobei als Reaktion auf die Beendigung der virtuellen, gleichzeitigen Kopiersitzung Ressourcen freigegeben werden, die der Abbildung zugeordnet sind, welche die Entsprechungen zwischen Speicherpositionen des Quelldatensatzes und Speicherpositionen des Zieldatensatzes angibt. Als Ergebnis werden Ressourcen, die durch den Speicher-Controller nicht benötigt werden, freigegeben.
-
Bei zusätzlichen Ausführungsformen empfängt der Speicher-Controller eine E/A-Anforderung von einer Host-Datenverarbeitungseinheit. Als Reaktion auf ein Ermitteln, dass eine der E/A-Anforderung entsprechende Spur in dem Zieldatensatz aktualisiert wurde, sendet der Speicher-Controller die E/A-Anforderung für die Spur an Zieldatensatzbereiche. Als Ergebnis wird die E/A-Anforderung durch den Zieldatensatz erfüllt.
-
Bei weiteren zusätzlichen Ausführungsformen empfängt der Speicher-Controller eine E/A-Anforderung von einer Host-Datenverarbeitungseinheit. Als Reaktion auf ein Ermitteln, dass eine der E/A-Anforderung entsprechende Spur in dem Zieldatensatz nicht aktualisiert wurde, sendet der Speicher-Controller die E/A-Anforderung für die Spur an Quelldatensatzbereiche. Als Ergebnis wird die E/A-Anforderung durch den Quelldatensatz erfüllt.
-
Bei bestimmten Ausführungsformen ordnet die Abbildung, die eine Entsprechung zwischen den Speicherpositionen des Quelldatensatzes und den Speicherpositionen des Zieldatensatzes angibt, einzelne Bereiche oder Bereichsabschnitte oder Datenträger und zugehörige Zylinderabschnitte über Eins-zu-Eins-, Viele-zu-Eins- und Eins-zu-Viele-Entsprechungen zu. Als Ergebnis kann die Abbildung für verschiedene Arten der Speicherdarstellung verwendet werden.
-
Bereitgestellt wird zudem ein Cloud-Computing-System, aufweisend eine Speicher-Cloud, einen mit der Speicher-Cloud verbundenen Speicher-Controller und einen mit dem Speicher-Controller verbundenen Host. In dem Cloud-Computing-System empfängt ein Speicher-Controller einen Befehl von einer Host-Anwendung, um eine zeitpunktgesteuerte Sicherung eines Quelldatensatzes in eine Speicher-Cloud durchzuführen. Der Speicher-Controller erzeugt über eine zeitpunktgesteuerte Kopie des Quelldatensatzes einen Zieldatensatz sowie eine Abbildung, die eine Entsprechung zwischen Speicherpositionen des Quelldatensatzes und Speicherpositionen des Zieldatensatzes angibt. Der Speicher-Controller kopiert den Zieldatensatz in die Speicher-Cloud, um einen Sicherungsdatensatz zu erzeugen, der die zeitpunktgesteuerte Sicherung des Quelldatensatzes ist, wobei der Zugriff auf den Sicherungsdatensatz über einen Verweis auf die Speicherpositionen des Quelldatensatzes möglich ist. Als Ergebnis wird die virtuelle, gleichzeitige Kopie in einem Cloud-Computing-System durchgeführt.
-
Bereitgestellt wird darüber hinaus eine Host-Datenverarbeitungseinheit, aufweisend einen Arbeitsspeicher und einen mit dem Arbeitsspeicher verbundenen Prozessor, wobei der Prozessor einen Befehl von einer Host-Anwendung an einen Speicher-Controller überträgt, um eine zeitpunktgesteuerte Sicherung eines Quelldatensatzes in eine Speicher-Cloud durchzuführen, und wobei der Speicher-Controller über eine zeitpunktgesteuerte Kopie des Quelldatensatzes einen Zieldatensatz sowie eine Abbildung erzeugt, die eine Entsprechung zwischen Speicherpositionen des Quelldatensatzes und Speicherpositionen des Zieldatensatzes angibt, und den Zieldatensatz in die Speicher-Cloud kopiert, um einen Sicherungsdatensatz zu erzeugen, der die zeitpunktgesteuerte Sicherung des Quelldatensatzes ist. Die Host-Anwendung greift über einen Verweis auf die Speicherpositionen des Quelldatensatzes auf den Sicherungsdatensatz zu. Als Ergebnis lagert die Host-Datenverarbeitungseinheit das Durchführen einer virtuellen, gleichzeitigen Kopie an einen Speicher-Controller aus.
-
Figurenliste
-
Unter Bezugnahme auf die Zeichnungen, bei denen gleiche Bezugsziffern durchgehend gleiche Teile bezeichnen:
- veranschaulicht 1 ein Blockschaubild einer Datenverarbeitungsumgebung, die gemäß bestimmten Ausführungsformen einen Speicher-Controller aufweist, der mit einem oder mehreren Hosts und einer Speicher-Cloud verbunden ist;
- veranschaulicht 2 ein Blockschaubild, das die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes über eine Abbildung von einzelnen Bereichen gemäß bestimmten Ausführungsformen zeigt;
- veranschaulicht 3 ein Blockschaubild, das die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes über eine Abbildung von Bereichsabschnitten gemäß bestimmten Ausführungsformen zeigt;
- veranschaulicht 4 ein Blockschaubild, das die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes über eine Zuordnung von Datenträgern und Zylindern gemäß bestimmten Ausführungsformen zeigt;
- veranschaulicht 5 einen ersten Ablaufplan, der die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes gemäß bestimmten Ausführungsformen zeigt;
- veranschaulicht 6 einen zweiten Ablaufplan, der die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes gemäß bestimmten Ausführungsformen zeigt;
- veranschaulicht 7 einen dritten Ablaufplan, der die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes gemäß bestimmten Ausführungsformen zeigt;
- veranschaulicht 8 ein Blockschaubild einer Cloud-Computing-Umgebung gemäß bestimmten Ausführungsformen;
- veranschaulicht 9 ein Blockschaubild mit weiteren Einzelheiten der Cloud-Computing-Umgebung aus 8 gemäß bestimmten Ausführungsformen; und
- veranschaulicht 10 ein Blockschaubild eines Datenverarbeitungssystems, das bestimmte Elemente zeigt, die gemäß bestimmten Ausführungsformen in dem Speicher-Controller, dem/den Host/s und/oder der Speicher-Cloud, der/die in den 1 bis 9 beschrieben werden, enthalten sein können.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Bestandteil hiervon bilden und mehrere Ausführungsformen veranschaulichen. Dabei sollte klar sein, dass andere Ausführungsformen verwendet und strukturelle sowie betriebliche Änderungen vorgenommen werden können.
-
Sicherungs- und Archivierungslösungen können eine Objektspeicher-Cloud als eine Offline-Stufe beinhalten. Bestimmte Lösungen zielen auf inaktive Daten ab, die aus der Online-Speicherstufe in die Offline-Speicherstufe verschoben werden können. Dies wird als Archivierung bezeichnet, und die Daten werden in die Offline-Cloud-Stufe verschoben und aus den primären DASDs gelöscht. Da die Daten inaktiv sind, haben seit einiger Zeit keine Nutzer oder Anwendungen darauf zugegriffen, so dass das Sperren des Datensatzes für die Zeitspanne, die für die Archivierung notwendig ist, keine Operationen unterbricht.
-
Eine Sicherung unterscheidet sich von einem Archiv insofern, als nach dem Verschieben eines Datensatzes in eine Offline-Cloud-Stufe der Datensatz auch in der Online-DASD-Stufe beibehalten wird, damit Nutzer und Anwendungen auf den Datensatz zugreifen können. Für eine Sicherung sollte der Datensatz nur für eine möglichst kurze Zeitspanne gesperrt und für Nutzer und Anwendungen nicht zugänglich sein. Bestimmte Ausführungsformen stellen Mechanismen bereit, um Datensätze mit minimaler Unterbrechung für Nutzer und Anwendungen, die auf den Datensatz zugreifen, in eine Objektspeicher-Cloud zu sichern.
-
Eine gleichzeitige Kopie bezieht sich auf einen Mechanismus, der einem Nutzer erlaubt, eine Kopie der Daten zu erstellen, während Anwendungen die Daten aktualisieren. Virtuelle, gleichzeitige Kopiermechanismen erweitern die gleichzeitigen Kopiermechanismen, und bei virtuellen, gleichzeitigen Kopiermechanismen wird eine zeitpunktgesteuerte Kopie der Daten von einer Quellspeicherposition in eine Zwischenspeicherposition erstellt, und die Daten werden anhand von Standard-E/A-Verfahren nach und nach von der Zwischenspeicherposition in die Zielspeicherposition kopiert. Die virtuelle, gleichzeitige Kopieroperation ist logisch abgeschlossen, nachdem die Quelldaten verzögerungsfrei (d.h. über zeitpunktgesteuerte Kopiermechanismen) in die Zwischenspeicherposition kopiert wurden, und sie ist physisch abgeschlossen, nachdem die Daten in das Zielmedium der Zielspeicherposition verschoben wurden. Bestimmte Ausführungsformen stellen Mechanismen für eine zeitpunktgesteuerte Sicherung in eine Objektspeicher-Cloud unter Verwendung eines abgewandelten virtuellen, gleichzeitigen Kopiermechanismus bereit. Eine Sicherung in eine Offline-Cloud-Stufe wird als ein zwei Schritte umfassender Prozess durchgeführt. Der erste Schritt erfasst die Bereiche des Quelldatensatzes und erstellt eine zeitpunktgesteuerte Kopiersitzung der Spuren dieser Bereiche. Der zweite Schritt gibt einen Befehl an den Speicher-Controller aus, um die Spuren aus dem Ziel der zeitpunktgesteuerten Kopie in die Offline-Cloud-Stufe auszulagern. Bei bestimmten Ausführungsformen werden die abgewandelten virtuellen, gleichzeitigen Kopieroptionen zum Erstellen einer zeitpunktgesteuerten Sicherung in eine Speicher-Cloud durch einen Speicher-Controller durchgeführt. Der Host lagert die Zuständigkeit für ein Erstellen der zeitpunktgesteuerten Sicherung an den Speicher-Controller aus.
-
BEISPIELHAFTE AUSFÜHRUNGSFORMEN
-
1 veranschaulicht ein Blockschaubild einer Datenverarbeitungsumgebung 100, die gemäß bestimmten Ausführungsformen einen Speicher-Controller 102 aufweist, der mit einem oder mehreren Hosts 104 und einer Speicher-Cloud 106 verbunden ist.
-
Der Speicher-Controller 102 und der Host 104 können jede geeignete Datenverarbeitungseinheit aufweisen, darunter die nach dem gegenwärtigen Stand der Technik bekannten Einheiten wie einen Personal Computer, eine Arbeitsstation, einen Server, einen Mainframe, einen Handheld Computer, einen Palmtop Computer, eine Telefonie-Einheit, eine Netzwerkeinrichtung, einen Blade Computer, eine Verarbeitungseinheit, einen Controller usw. Die Speicher-Cloud 106 kann eine Mehrzahl von (nicht gezeigten) Speichereinheiten aufweisen, z.B. Speicherplatten, Bandlaufwerke, Halbleiterplatten usw., sowie eine (nicht gezeigte) Datenverarbeitungseinheit, die den Zugriff auf die Mehrzahl von Speichereinheiten der Speicher-Cloud 106 steuert.
-
Der Speicher-Controller 102, der Host 104 und die Speicher-Cloud 106 können Elemente in jedem geeigneten Netzwerk sein, z.B. einem Speicherbereichsnetzwerk, einem Weitverkehrsnetzwerk, dem Internet, einem Intranet usw. Bei bestimmten Ausführungsformen können der Speicher-Controller 102, der Host 104 und die Speicher-Cloud 106 Elemente in einer Cloud-Computing-Umgebung sein.
-
Eine Speicherverwaltungsanwendung 108, die in dem Speicher-Controller 102 ausgeführt wird, empfängt E/A-Befehle von einer oder mehreren Host-Anwendungen 110, die in dem Host 104 ausgeführt werden, und reagiert auf die E/A-Befehle, indem sie Daten in Bezug auf Speicherdatenträger liest oder schreibt, die in der Speicher-Cloud 106 oder in Speichereinheiten 112, 114 gespeichert werden, die mit dem Speicher-Controller 102 verbunden sind, wobei die Speichereinheiten 112, 114 Festplatten, Halbleiterplatten oder andere Speichereinheiten aufweisen können. Bei bestimmten Ausführungsformen können die Speicherverwaltungsanwendung 108 und die Host-Anwendung 110 in Software, Hardware, Firmware oder jeder Kombination hiervon realisiert sein.
-
Bei bestimmten Ausführungsformen sendet die in dem Host 104 ausgeführte Host-Anwendung 110 eine Anforderung an den Speicher-Controller 102, um eine zeitpunktgesteuerte Sicherung eines Quelldatensatzes 116 durchzuführen, dessen logische Speicherdatenträger durch den Speicher-Controller 102 gesteuert werden und auf die die Host-Anwendung 110 über den Speicher-Controller 102 zugreift. Der Quelldatensatz 116 kann eine Zusammenstellung von Datensätzen aufweisen, die in Bereichen, Spuren, Blöcken oder in einer beliebigen anderen Art von Einheiten gespeichert werden können, in denen der Speicher vorliegt. Bei bestimmten Ausführungsformen erstellt die Speicherverwaltungsanwendung 108 des Speicher-Controllers 102 über zeitpunktgesteuerte Kopieroperationen 118 eine zeitpunktgesteuerte Kopie des Quelldatensatzes 116, wobei die zeitpunktgesteuerte Kopie in einem Zieldatensatz 120 gespeichert wird. Gleichzeitig mit den zeitpunktgesteuerten Kopieroperationen 118 kopiert die Speicherverwaltungsanwendung 108 Spuren (oder andere Einheiten wie Blöcke, Bereiche usw.) des Zieldatensatzes 120 in die Speicher-Cloud 106, um einen Sicherungsdatensatz 124 in der Speicher-Cloud zu erzeugen. Die Objekte 126 des Sicherungsdatensatzes 124 können gemäß dem Quelldatensatz 116 benannt werden, obwohl sie aus dem Zieldatensatz 120 kopiert wurden, wobei die Benennung gemäß dem Zieldatensatz 116 durchgeführt wird, indem eine Quelle-Ziel-Bereichslisten-Zuordnung 128 verwendet wird, die während der zeitpunktgesteuerten Kopieroperationen 118 erzeugt wird.
-
Somit veranschaulicht 1 bestimmte Ausführungsformen, bei denen durch den Speicher-Controller 102 eine zeitpunktgesteuerte Sicherungskopie eines Quelldatensatzes 116 in eine Speicher-Cloud 106 durchgeführt wird. Nach dem Stand der Technik wurde das Kopieren der Spuren des Zieldatensatzes 120 in den Sicherungsdatensatz 124 durch den Host 104 durchgeführt, indem die in den Spuren des Zieldatensatzes 120 gespeicherten Daten von dem Speicher-Controller 102 empfangen und die empfangenen Daten dann in den Sicherungsdatensatz 124 gespeichert wurden. Zusätzlich gab es nach dem Stand der Technik keine Vorkehrungen für ein Verwalten der Quelle-Ziel-Bereichslisten-Zuordnung 128.
-
2 veranschaulicht ein Blockschaubild 200, das die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes über eine Zuordnung von einzelnen Bereichen gemäß bestimmten Ausführungsformen zeigt.
-
In 2 werden vier Quelldatensatzobjekte, die als Bereiche A1, A2, A3, A4 204, 206, 208, 210 des Quelldatensatzes 116 gezeigt werden, über zeitpunktgesteuerte Kopieroperationen in vier entsprechende Datensatzobjekte kopiert, die als Bereiche B1, B2, B3, B4 212, 214, 216, 218 des Zieldatensatzes 120 gezeigt werden. Die als Bereiche B1, B2, B3, B4 212, 214, 216, 218 des Zieldatensatzes 120 gezeigten Datensatzobjekte werden gleichzeitig in den Sicherungsdatensatz 124 kopiert, dabei jedoch in Bereiche A1, A2, A3, A4 220, 222, 224, 226 umbenannt, indem die Quelle-Ziel-Bereichslisten-Zuordnung 128 verwendet wird, welche die Entsprechungen 130 zwischen den Namen der Quellbereiche und der Zielbereiche zeigt.
-
Zusätzlich zeigt 2 auch, dass ein großer Bereich A5 228 des Quelldatensatzes 116 über zeitpunktgesteuerte Kopieroperationen in zwei kleinere Bereiche B5, B6 230, 232 des Zieldatensatzes 120 kopiert werden kann. Die als Bereiche B5, B6 230, 232 des Zieldatensatzes 120 gezeigten Datensatzobjekte werden gleichzeitig in den Sicherungsdatensatz 124 kopiert, dabei jedoch in Bereich A5 234 umbenannt, indem die Quelle-Ziel-Bereichslisten-Zuordnung 128 verwendet wird, welche die Entsprechungen 130 zwischen den Namen der Quellbereiche und der Zielbereiche angibt.
-
Des Weiteren zeigt 2 auch, dass zwei kleine Bereiche A6, A7 236, 238 des Quelldatensatzes 116 über zeitpunktgesteuerte Kopieroperationen in einen großen Bereich B7 240 des Zieldatensatzes 120 kopiert werden können. Das als Bereich B7 240 des Zieldatensatzes 120 gezeigte Datensatzobjekt wird gleichzeitig in den Sicherungsdatensatz 124 kopiert, dabei jedoch in Bereiche A6, A7 242, 244 umbenannt, indem die Quelle-Ziel-Bereichslisten-Zuordnung 128 verwendet wird, welche die Entsprechungen 130 zwischen den Namen der Quellbereiche und der Zielbereiche angibt.
-
Als Ergebnis haben die Objekte des Sicherungsdatensatzes 124 dieselben Namen wie die Objekte des Quelldatensatzes 116 und nicht die Namen der Objekte des Zieldatensatzes 120. Als Ergebnis kann auf den Sicherungsdatensatz 124 mit denselben Objektnamen zugegriffen werden wie auf den Quelldatensatz 116. Dabei ist zu beachten, dass es sich bei den Entsprechungen 130 zwischen den Namen der Quellbereiche und der Zielbereiche um Eins-zu-eins-, Eins-zu-viele- oder Viele-zu-eins-Entsprechungen handeln kann.
-
3 veranschaulicht ein Blockschaubild 300, das die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes über eine Zuordnung von Bereichsabschnitten gemäß bestimmten Ausführungsformen zeigt.
-
In 3 befinden sich die in dem Quelldatensatz 116 gespeicherten Datensätze in einem (anhand des Bezugszeichens 302 gezeigten) Bereichsabschnitt 100 bis 200 und werden über zeitpunktgesteuerte Kopieroperationen in den Zieldatensatz 120 in Datensätze gespeichert, die sich in dem (anhand des Bezugszeichens 304 gezeigten) Bereichsabschnitt 500 bis 600 befinden. Wenn jedoch der Zieldatensatz 120 gleichzeitig in den Sicherungsdatensatz 124 kopiert wird, wird der Bereichsabschnitt 500 bis 600 als im (anhand des Bezugszeichens 306 gezeigten) Bereichsabschnitt 100 bis 200 liegend angegeben, indem die Quelle-Ziel-Bereichslisten-Zuordnung 128 verwendet wird, welche die Zuordnung 330 aufweist, die angibt, dass der Bereichsabschnitt 100 bis 200 des Quelldatensatzes 116 dem Bereichsabschnitt 500 bis 600 des Zieldatensatzes 120 zugeordnet wurde. Als Ergebnis kann auf den Sicherungsdatensatz 124 mit denselben Bereichsabschnitten zugegriffen werden wie auf den Quelldatensatz 116.
-
4 veranschaulicht ein Blockschaubild 400, das die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes über eine Zuordnung von Datenträgern und Zylindern gemäß bestimmten Ausführungsformen zeigt.
-
Die Steuerung beginnt in Block 402, in dem der Speicher-Controller 102 von dem Host 104 einen Befehl empfängt, um Datenträger 1, Zylinder 201 bis 300 zu sichern, wo Spuren des Quelldatensatzes 116 gespeichert werden. Als Ergebnis der zeitpunktgesteuerten Kopieroperationen 118 werden die zeitpunktgesteuerten Kopierdaten auf Datenträger 2, Zylinder 601 bis 700 gespeichert, wo die Spuren des Zieldatensatzes 120 gespeichert werden (wie anhand des Bezugszeichens 404 gezeigt wird). Der Speicher-Controller 102 wird (in Block 406) angewiesen, Datenträger 2, Zylinder 601 bis 700, wo die Spuren des Zieldatensatzes 120 gespeichert werden, in die Speicher-Cloud 106 zu kopieren, wobei in der Speicher-Cloud 106 jedoch angegeben wird, dass die Daten als Sicherungsdatensatz auf Datenträger 1, Zylinder 201 bis 300, gespeichert werden. Die Angabe kann unter Verwendung der Zuordnung 128 oder über andere Mechanismen erfolgen. Als Ergebnis kann auf den Sicherungsdatensatz 124 mit demselben Datenträgernamen und Zylinderabschnitt zugegriffen werden wie auf den Quelldatensatz 116.
-
5 veranschaulicht einen ersten Ablaufplan 500, der die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes gemäß bestimmten Ausführungsformen zeigt. Die in 5 gezeigten Operationen können durch den Speicher-Controller 102 durchgeführt werden.
-
Die Steuerung beginnt in Block 502, in dem der Speicher-Controller 102 Daten des Quelldatensatzes 116 erfasst und eine zeitpunktgesteuerte Kopie der Spuren des Quelldatensatzes 116 in den Zieldatensatz 120 erstellt. Die Steuerung fährt mit Block 504 fort, in dem der Speicher-Controller 102 die Spuren aus dem Zieldatensatz 120 in die Speicher-Cloud 106 kopiert, ohne die Spuren des Zieldatensatzes 120 an den Host 104 zu senden.
-
6 veranschaulicht einen zweiten Ablaufplan 600, der die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes gemäß bestimmten Ausführungsformen zeigt. Die in 6 gezeigten Operationen können durch den Speicher-Controller 102 durchgeführt werden.
-
Die Steuerung beginnt in Block 602, in dem der Speicher-Controller 102 eine Bereichsliste des Quelldatensatzes 116 erstellt und (in Block 604) eine virtuelle, gleichzeitige Kopiersitzung erstellt. Der Speicher-Controller 102 erzeugt (in Block 606) die Quelle-Ziel-Bereichslisten-Zuordnung 128 und erzeugt (in Block 608) eine Anforderung, Zielspuren an den Cloud-Speicher auszulagern.
-
Von Block 608 fährt die Steuerung mit Block 610 fort, in dem der Speicher-Controller 102 Zielspuren an den Cloud-Speicher 106 sendet (anstelle wie beim Stand der Technik Spuren über den Host 104 zu senden).
-
Nach einer bestimmten Zeitspanne werden als Reaktion auf die Beendigung der virtuellen, gleichzeitigen Kopiersitzung Ressourcen, die für die Quelle-Ziel-Bereichslisten-Zuordnung 128 zugeordnet wurden, (in Block 612) freigegeben, da für sie keine Verwendung mehr besteht, und als Ergebnis hiervon wird Arbeitsspeicher freigegeben.
-
Parallel zu den in den Blöcken 606, 608, 610 durchgeführten Operationen (anhand des Bezugszeichens 614 gezeigt) kann die Steuerung mit Block 616 fortfahren. In Block 616 wird durch den Speicher-Controller 102 eine E/A-Anforderung von dem Host 104 empfangen. Es wird ermittelt (in Block 618), ob in dem Zieldatensatz 120 Spuren, die der E/A-Anforderung entsprechen, aktualisiert wurden. Wenn dies der Fall ist (Verzweigung „Ja“ 620) fährt die Steuerung mit Block 622 fort, in dem der Speicher-Controller 102 die E/A-Anforderung von Spuren, die in dem Zieldatensatz 120 aktualisiert wurden, an die Zieldatensatzbereiche sendet.
-
Wenn in Block 618 ermittelt wird, dass in dem Zieldatensatz 120 Spuren, die der E/A-Anforderung entsprechen, nicht aktualisiert wurden (Verzweigung „Nein“ 624), fährt die Steuerung mit Block 626 fort, in dem der Speicher-Controller 102 E/A-Anforderungen von Spuren, die in dem Zieldatensatz 120 nicht aktualisiert wurden, an die Quelldatensatzbereiche umleitet.
-
Somit veranschaulicht 6 bestimmte Ausführungsformen, bei denen unter der Steuerung durch einen Speicher-Controller 102 über eine Kombination aus zeitpunktgesteuerter Kopie des Quelldatensatzes 116 in den Zieldatensatz 120 und einer gleichzeitigen Kopie aus dem Zieldatensatz 120 in den Sicherungsdatensatz 126 ein Sicherungsdatensatz 124 erzeugt wird, wobei der Prozess als eine virtuelle, gleichzeitige Kopie unter der Steuerung durch den Speicher-Controller bezeichnet wird.
-
7 veranschaulicht einen dritten Ablaufplan 700, der die Erzeugung eines zeitpunktgesteuerten Sicherungsdatensatzes gemäß bestimmten Ausführungsformen zeigt. Die in 7 gezeigten Operationen können durch den Speicher-Controller 102 durchgeführt werden.
-
Die Steuerung beginnt in Block 702, in dem ein Speicher-Controller 102 von einer Host-Anwendung 110 einen Befehl empfängt, um eine zeitpunktgesteuerte Sicherung eines Quelldatensatzes 116 in eine Speicher-Cloud 106 durchzuführen. Der Speicher-Controller 102 erzeugt (in Block 704) über eine zeitpunktgesteuerte Kopie des Quelldatensatzes 116 einen Zieldatensatz 120 sowie eine Zuordnung 128, die eine Entsprechung zwischen Speicherpositionen des Quelldatensatzes und Speicherpositionen des Zieldatensatzes angibt.
-
Von Block 704 fährt die Steuerung mit Block 706 fort, in dem der Speicher-Controller 102 den Zieldatensatz 120 in die Speicher-Cloud 106 kopiert, um einen Sicherungsdatensatz 124 zu erzeugen, der die zeitpunktgesteuerte Sicherung des Quelldatensatzes 116 ist, wobei der Zugriff auf den Sicherungsdatensatz 124 über einen Verweis auf die Speicherpositionen des Quelldatensatzes möglich ist.
-
Von Block 704 kann die Steuerung auch mit Block 708 fortfahren, in dem der Speicher-Controller 102 eine E/A-Anforderung von einer Host-Datenverarbeitungseinheit 104 empfängt. Von Block 708 kann die Steuerung parallel mit Block 710 und Block 712 fortfahren.
-
In Block 710 sendet der Speicher-Controller 102 als Reaktion auf ein Ermitteln, dass eine der E/A-Anforderung entsprechende Spur in dem Zieldatensatz 120 aktualisiert wurde, die E/A-Anforderung für die Spur an Zieldatensatzbereiche, und die E/A-Anforderung wird durch den Zieldatensatz 120 erfüllt.
-
In Block 712 sendet der Speicher-Controller 102 als Reaktion auf ein Ermitteln, dass eine der E/A-Anforderung entsprechende Spur in dem Zieldatensatz 120 nicht aktualisiert wurde, die E/A-Anforderung für die Spur an Quelldatensatzbereiche, und die E/A-Anforderung wird durch den Quelldatensatz 116 erfüllt.
-
Somit werden in den 1 bis 7 die Operationen zum Durchführen der zeitpunktgesteuerten Sicherung des Quelldatensatzes 116 in die Speicher-Cloud 106 von der Host-Datenverarbeitungseinheit 104 an den Speicher-Controller 102 ausgelagert. Der Speicher-Controller 102 kopiert den Zieldatensatz 120 in die Speicher-Cloud 106, ohne Bereiche, Spuren oder andere Speicherentitäten des Zieldatensatzes 120 an die Host-Datenverarbeitungseinheit 104 zu übertragen. Bei bestimmten Ausführungsformen gibt eine Zuordnung 128 eine Entsprechung zwischen den Speicherpositionen des Quelldatensatzes und den Speicherpositionen des Zieldatensatzes an, wobei die Zuordnung einzelne Bereiche oder Bereichsabschnitte oder Datenträger und zugehörige Zylinderabschnitte zuordnet. Die Zuordnung 128 dient dazu, den Sicherungsdatensatz 124 so zu benennen, dass er Speicherpositionen des Quelldatensatzes 116 widerspiegelt, und als Ergebnis erfolgt der Zugriff auf den Sicherungsdatensatz 124 analog zu demjenigen auf den Quelldatensatz 116.
-
CLOUD-COMPUTING-UMGEBUNG
-
Cloud-Computing ist ein Modell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können.
-
Unter Bezugnahme auf 8 ist eine veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, Personal Digital Assistant) 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 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie Private, Community, Public oder Hybrid 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 8 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 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 9 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (8) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 9 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind.
-
Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Mainframe Computer wie beispielsweise IBM zSeries(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sowie FlashCopy sind Marken der International Business Machines Corporation, die in vielen Rechtsräumen weltweit eingetragen sind)- Systeme; Server auf Grundlage der RISC-Architektur (Reduced Instruction Set Computer) wie beispielsweise IBM pSeries(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sowie FlashCopy sind Marken der International Business Machines Corporation, die in vielen Rechtsräumen weltweit eingetragen sind) -Systeme; IBM xSeries (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sowie FlashCopy sind Marken der International Business Machines Corporation, die in vielen Rechtsräumen weltweit eingetragen sind) -Systeme; IBM BladeCenter(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sowie FlashCopy sind Marken der International Business Machines Corporation, die in vielen Rechtsräumen weltweit eingetragen sind) -Systeme; Speichereinheiten; Netzwerke und Netzwerkkomponenten. Zu Beispielen für Software-Komponenten gehören Software für Netzwerk-Anwendungsserver wie beispielsweise IBM WebSphere(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sowie FlashCopy sind Marken der International Business Machines Corporation, die in vielen Rechtsräumen weltweit eingetragen sind)-Anwendungsserver-Software; sowie Datenbank-Software, zum Beispiel IBM DB2(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sowie FlashCopy sind Marken der International Business Machines Corporation, die in vielen Rechtsräumen weltweit eingetragen sind)-Datenbank-Software.
-
Eine Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server, virtueller Speicher, virtuelle Netzwerke, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
-
In einem Beispiel kann eine Verwaltungsschicht 64 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 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 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. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 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) stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
-
Eine Arbeitslastschicht 66 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; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von Ausbildung in virtuellen Klassenzimmern; Datenanalyseverarbeitung; Transaktionsverarbeitung; und zeitpunktgesteuerte Sicherung in die Speicher-Cloud 68, wie in den 1 bis 8 gezeigt.
-
ZUSÄTZLICHE EINZELHEITEN ZU DEN AUSFÜHRUNGSFORMEN
-
Die beschriebenen Operationen können als ein Verfahren, eine Vorrichtung oder ein Computerprogrammprodukt realisiert sein, das/die standardmäßige Programmierungsund/oder Ingenieurstechniken verwendet, um Software, Firmware, Hardware oder eine beliebige Kombination hiervon hervorzubringen. Entsprechend können Aspekte der Ausführungsformen in Gestalt einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (z.B. Firmware, residente Software, Mikrocode usw.) oder in Gestalt einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte vereint, welche zusammenfassend als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Des Weiteren können Aspekte der Ausführungsformen in Gestalt eines Computerprogrammprodukts vorliegen. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Ausführungsformen auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Befehle zur Verwendung durch eine Befehlsausführungseinheit behalten 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 Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Compact-Disc-Nur-Lese-Speicher (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 Weitverkehrsnetz 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, zustandssetzende Daten oder entweder Quellcode oder 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 fernen Computer oder vollständig auf dem fernen 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 LAN oder ein WAN, oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, Field Programmable Gate Arrays) 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 Ausführungsformen durchzuführen.
-
Aspekte der vorliegenden Ausführungsformen sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder 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 Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch Programmanweisungen, die durch einen Computer lesbar sind, 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 Blockschaltbilder bzw. Schaubilder 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 des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder 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 auf einem Computer ausgeführten 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 der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder 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 Blockschaltbildern bzw. Schaubildern 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 Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern 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.
-
10 veranschaulicht ein Blockschaubild, das bestimmte Elemente zeigt, die gemäß bestimmten Ausführungsformen in dem Speicher-Controller 102, den Hosts 104 oder anderen Datenverarbeitungseinheiten enthalten sein können. Das System 1000 kann eine Schaltung 1002 beinhalten, die bei bestimmten Ausführungsformen mindestens einen Prozessor 1004 beinhalten kann. Das System 1000 kann außerdem einen Arbeitsspeicher 1006 (z.B. eine flüchtige Arbeitsspeichereinheit) und einen Speicher 1008 beinhalten. Der Speicher 1008 kann eine nichtflüchtige Arbeitsspeichereinheit (z.B. einen EEPROM, ROM, PROM, einen Flash-Speicher, eine Firmware, eine programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. beinhalten. Der Speicher 1008 kann eine interne Speichereinheit, eine verbundene Speichereinheit und/oder eine Speichereinheit aufweisen, auf die über ein Netzwerk zugegriffen werden kann. Das System 1000 kann eine Programmlogik 1010 mit Code 1012 beinhalten, der in den Arbeitsspeicher 1006 geladen und durch den Prozessor 1004 oder die Schaltung 1002 ausgeführt werden kann. Bei bestimmten Ausführungsformen kann die Programmlogik 1010 mit dem Code 1012 in dem Speicher 1008 gespeichert werden. Bei bestimmten anderen Ausführungsformen kann die Programmlogik 1010 in der Schaltung 1002 realisiert werden. Eine oder mehrere der Komponenten in dem System 1000 können über einen Bus oder über eine andere Kopplung oder Verbindung 1014 Daten austauschen. Obwohl 10 die Programmlogik 1010 als getrennt von den übrigen Elementen zeigt, kann die Programmlogik 1010 somit auch in dem Arbeitsspeicher 1006 und/oder der Schaltung 1002 realisiert werden.
-
Bestimmte Ausführungsformen können sich auf ein Verfahren zum Bereitstellen eines Datenverarbeitungsbefehls durch eine Person oder eine automatisierte Verarbeitung beziehen, die durch einen Computer lesbaren Code in ein Datenverarbeitungssystem einbindet, wobei der Code in Verbindung mit dem Datenverarbeitungssystem in der Lage ist, die Operationen der beschriebenen Ausführungsformen durchzuführen.
-
Sofern nicht ausdrücklich anderweitig angegeben, bedeuten die Begriffe „eine Ausführungsform“, „Ausführungsform“, „Ausführungsformen“, „die Ausführungsform“, „die Ausführungsformen“, „eine oder mehrere Ausführungsformen“, „manche Ausführungsformen“ und „eine einzige Ausführungsform“ „eine oder mehrere (aber nicht alle) Ausführungsformen der vorliegenden Erfindung(en)“.
-
Sofern nicht ausdrücklich anderweitig angegeben, bedeuten die Begriffe „beinhalten“, „aufweisen“, „haben“ und Abwandlungen hiervon „darunter, ohne darauf beschränkt zu sein“.
-
Sofern nicht ausdrücklich anderweitig angegeben, bedeutet die nummerierte Auflistung von Elementen nicht, dass sich eines oder alle dieser Elemente wechselseitig ausschließen.
-
Sofern nicht ausdrücklich anderweitig angegeben, bedeuten die Begriffe „ein/eine/eines“ und „der/die/das“ „ein oder mehrere“.
-
Sofern nicht ausdrücklich anderweitig angegeben, müssen Einheiten, die untereinander Daten austauschen, nicht in ununterbrochenem Datenaustausch stehen. Zudem können Einheiten, die untereinander Daten austauschen, direkt oder indirekt über ein oder mehrere zwischengeschaltete Elemente Daten austauschen.
-
Eine Beschreibung einer Ausführungsform mit mehreren Komponenten, die untereinander Daten austauschen, bedeutet nicht, dass alle derartigen Komponenten notwendig sind. Vielmehr wird eine Vielzahl von optionalen Komponenten beschrieben, um die breite Palette von möglichen Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
-
Obwohl Prozessschritte, Verfahrensschritte, Algorithmen oder Ähnliches in einer sequenziellen Abfolge beschrieben werden, können derartige Prozesse, Verfahren und Algorithmen auch so konfiguriert sein, dass sie in anderen Reihenfolgen funktionieren. Anders ausgedrückt bedeutet eine beliebige Abfolge oder Reihenfolge von Schritten nicht notwendigerweise, dass die Schritte in dieser Reihenfolge durchgeführt werden müssen. Die hier beschriebenen Prozessschritte können in jeder beliebigen praktikablen Reihenfolge durchgeführt werden. Des Weiteren können manche Schritte gleichzeitig erfolgen.
-
Wenn hier eine einzige Einheit oder ein einziger Gegenstand beschrieben werden, sollte offensichtlich sein, dass anstelle einer einzigen Einheit/eines einzigen Gegenstands auch mehrere Einheiten/Gegenstände verwendet werden können (unabhängig davon, ob diese zusammenwirken). Wenn hier mehrere Einheiten oder Gegenstände beschrieben werden (unabhängig davon, ob sie zusammenwirken), sollte des Weiteren offensichtlich sein, dass anstelle der mehreren Einheiten oder Gegenstände eine einzige Einheit/ein einziger Gegenstand verwendet werden kann bzw. dass anstelle der gezeigten Anzahl von Einheiten oder Programmen eine andere Anzahl von Einheiten/Gegenständen verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ durch eine oder mehrere andere Einheiten realisiert werden, die nicht ausdrücklich als mit einer solchen Funktionalität/einem solchen Merkmal ausgestattet beschrieben werden. Somit müssen andere Ausführungsformen der vorliegenden Erfindung die Einheit selbst nicht beinhalten.
-
Zumindest einige der Operationen, die möglicherweise in den Figuren veranschaulicht wurden, zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. Bei alternativen Ausführungsformen können bestimmte Vorgänge in einer anderen Reihenfolge durchgeführt, abgeändert oder entfernt werden. Darüber hinaus können Schritte zu der oben beschriebenen Logik hinzugefügt werden und dennoch weiterhin den beschriebenen Ausführungsformen entsprechen. Des Weiteren können hier beschriebene Vorgänge nacheinander stattfinden, oder bestimmte Vorgänge können parallel verarbeitet werden. Des Weiteren können Vorgänge durch eine einzige Verarbeitungseinheit oder durch verteilte Verarbeitungseinheiten durchgeführt werden.
-
Die obige Beschreibung der verschiedenen Ausführungsformen der Erfindung dient zur Veranschaulichung und Beschreibung. Sie erhebt nicht den Anspruch, vollständig zu sein oder die Erfindung auf die präzise Form, wie sie hier offenbart wird, zu beschränken. In Zusammenhang mit den obigen Ausführungen sind zahlreiche Änderungen und Abwandlungen möglich. Der inhaltliche Umfang der Erfindung soll nicht durch diese ausführliche Beschreibung, sondern vielmehr durch die hier beigefügten Ansprüche beschränkt sein. Die obige Ausführungen, Beispiele und Daten stellen eine umfassende Beschreibung der Herstellung und Verwendung der Gesamtheit der Erfindung bereit. Da viele Ausführungsformen der Erfindung möglich sind, ohne vom gedanklichen Wesensgehalt und inhaltlichen Umfang der Erfindung abzuweichen, wird die Erfindung durch die nachfolgend angehängten Ansprüche definiert.