-
HINTERGRUND
-
Gebiet
-
Die Offenbarung bezieht sich auf ein Verfahren, System und Computerprogrammprodukt für die automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen.
-
Hintergrund
-
Viele in Speichersystemen bereitgestellte Merkmale zielen darauf ab, die Geschäftskosten zu senken. So kann beispielsweise die Datenreduzierung oder die Freigabe von freiem Speicherplatz dazu verwendet werden, den Bedarf an Speicherkapazität zu verringern. In bestimmten Situationen können solche Merkmale mittels schlanker Speicherzuweisung (Thin Provisioning), bei der freier Speicherplatz zurückgenommen wird, mittels Deduplizierung, bei der mehrere Verweise auf einen einzigen Datenstrom verwaltet werden können, oder mittels Datenkomprimierung bereitgestellt werden, bei der Daten reduziert werden, indem Komprimierungsmechanismen mit oder ohne Datenverlust angewendet werden.
-
Bei der schlanken Speicherzuweisung kann ein Speicherdatenträger definiert sein, wobei der Speicherplatz dem Speicherdatenträger jedoch nur dann zugeordnet werden kann, wenn Schreiboperationen auf dem Speicherdatenträger durchgeführt werden. Bei der Datenduplizierung kann nur eine einzige Kopie eines Satzes von doppelt vorhandenen Daten beibehalten werden, und es können Zeiger verwaltet werden, so dass die Orte ermittelbar sind, an denen die ursprünglichen doppelt vorhandenen Daten gespeichert waren. Bei der Datenkomprimierung kann eine Komprimierung mit Datenverlust zu einer größeren Verringerung des Speicherplatzbedarfs führen als eine Komprimierung ohne Datenverlust. Dabei sollte bedacht werden, dass der Speicherplatzbedarf mittels schlanker Speicherzuweisung, Datenduplizierung oder Datenkomprimierung verringert werden kann. Im Gegensatz zur schlanken Speicherzuweisung, Datenduplizierung und Datenkomprimierung, die den Speicherplatzbedarf senken, weist ein vollständig zugeordneter Speicherdatenträger unter Umständen keine schlanke Speicherzuweisung, Datenduplizierung oder Datenkomprimierung auf und ermöglicht somit keine Verringerung des Speicherplatzbedarfs.
-
KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Bereitgestellt werden ein Verfahren, ein System und ein Computerprogrammprodukt, wobei eine Vielzahl von Funktionen zum Konfigurieren einer Einheit eines Speicherdatenträgers verwaltet wird, wobei jede aus der Vielzahl von Funktionen als Reaktion darauf, dass sie auf die Einheit des Speicherdatenträgers angewendet wird, die Einheit des Speicherdatenträgers auf andere Art und Weise konfiguriert. Statistiken zu Datenwachstumsrate und Zugriffseigenschaften der in der Einheit des Speicherdatenträgers gespeicherten Daten werden berechnet. Auf der Grundlage der berechneten Statistiken wird ermittelt, welche aus der Vielzahl von Funktionen auf die Einheit des Speicherdatenträgers anzuwenden ist.
-
Bei bestimmten Ausführungsformen beinhaltet die Vielzahl von Funktionen die schlanke Speicherzuweisung, wobei die berechneten Statistiken beinhalten, eine Rate zu ermitteln, mit der Schreiboperationen auf der Einheit des Speicherdatenträgers durchgeführt werden, und eine verfügbare Menge von ungenutztem Platz auf der Einheit des Speicherdatenträgers. Als Reaktion auf das Ermitteln, dass die Rate, mit der Schreiboperationen auf der Einheit des Speicherdatenträgers durchgeführt werden, eine vorgegebene Rate von Schreiboperationen nicht übersteigt, und dass die verfügbare Menge an ungenutztem Platz auf der Einheit des Speicherdatenträgers einen vorgegebenen Schwellenwert übersteigt, wird die schlanke Speicherzuweisung auf die Einheit des Speicherdatenträgers angewendet.
-
Bei bestimmten zusätzlichen Ausführungsformen beinhaltet die Vielzahl von Funktionen die Datendeduplizierung, wobei die berechneten Statistiken beinhalten, dass ermittelt wird, wie viele doppelte Daten auf der Einheit des Speicherdatenträgers vorhanden sind. Als Reaktion auf das Ermitteln, dass auf der Einheit des Speicherdatenträgers vorhandene doppelte Daten einen vorgegebenen Schwellenwert übersteigen und dass die Zugriffszeitanforderung für die Einheit des Speicherdatenträgers größer als eine vorgegebene Zugriffszeitrate ist, wird die Datendeduplizierung auf die Einheit des Speicherdatenträgers angewendet.
-
Bei weiteren Ausführungsformen beinhaltet die Vielzahl von Funktionen die vollständige Zuordnung.
-
Als Reaktion auf das Ermitteln, dass die Zugriffszeitanforderung für die Einheit des Speicherdatenträgers größer als ein vorgegebener Schwellenwert für die Zeitdauer ist, wird die vollständige Zuordnung auf die Einheit des Speicherdatenträgers angewendet.
-
Bei weiteren Ausführungsformen beinhaltet die Vielzahl von Funktionen die Datenkomprimierung, wobei die berechneten Statistiken beinhalten, dass ermittelt wird, welcher Anteil der auf der Einheit des Speicherdatenträgers gespeicherten Daten komprimierbar ist. Als Reaktion auf das Ermitteln, dass die Zugriffszeitanforderung für die Daten im Anschluss an das Komprimieren der auf der Einheit des Speicherdatenträgers gespeicherten Daten eingehalten wird, werden die auf der Einheit des Speicherdatenträgers gespeicherten Daten komprimiert.
-
Bei zusätzlichen Ausführungsformen beinhaltet die Vielzahl von Funktionen die vollständige Zuordnung, die schlanke Speicherzuweisung, die Datenkomprimierung und die Datendeduplizierung, wobei dies mit Blick auf das Durchführen von Operationen auf der Einheit des Speicherdatenträgers in absteigender Reihenfolge der Leistung sowie mit Blick auf den Speicherbedarf in der Einheit des Speicherdatenträgers in aufsteigender Reihenfolge der Effizienz erfolgt.
-
Bei zusätzlichen Ausführungsformen ist die Einheit des Speicherdatenträgers eine Extent-Speichereinheit, die eine vorgegebene Anzahl von Kilobytes aufweist.
-
Bei weiteren Ausführungsformen wird eine ausgewählte Einheit eines ausgewählten Speicherdatenträgers mit Blick auf Zugriffszeit bzw. Speichereffizienz herauf- oder herabgestuft, indem auf Daten, die in der ausgewählten Einheit des ausgewählten Speicherdatenträgers gespeichert sind, eine andere Funktion angewendet wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Bezugnehmend auf die Zeichnungen, bei denen gleiche Bezugsziffern durchgehend gleiche Teile bezeichnen:
-
veranschaulicht 1 ein Blockschaubild einer Datenverarbeitungsumgebung, die gemäß bestimmten Ausführungsformen eine Speichersteuereinheit beinhaltet, welche mit einer Vielzahl von Speichereinheiten verbunden ist;
-
veranschaulicht 2 ein Blockschaubild, das zeigt, wie eine in der Speichersteuereinheit realisierte Statistikerfassungsanwendung gemäß bestimmten Ausführungsformen Statistiken zu Daten erfasst, die in Einheiten von Speicherdatenträgern gespeichert sind, welche der Vielzahl von Speichereinheiten entsprechen;
-
veranschaulicht 3 ein Blockschaubild, das zeigt, wie eine in der Speichersteuereinheit realisierte Funktionsermittlungsanwendung gemäß bestimmten Ausführungsformen ermittelt, welche Funktion auf Daten anzuwenden ist, die in Einheiten von Speicherdatenträgern gespeichert sind, welche der Vielzahl von Speichereinheiten entsprechen;
-
veranschaulicht 4 ein Blockschaubild, das zeigt, wie ein Satz von Funktionen gemäß bestimmten Ausführungsformen in eine Beziehung zur Verringerung von Speicherplatz und Zugriffszeit gesetzt werden kann;
-
veranschaulicht 5 einen Ablaufplan, der Operationen zeigt, die gemäß bestimmten Ausführungsformen von der Speichersteuereinheit durchgeführt werden;
-
veranschaulicht 6 eine Realisierung eines Knotens in einer Netzwerk-Datenverarbeitungsumgebung;
-
veranschaulicht 7 eine Ausführungsform einer Cloud-Datenverarbeitungsumgebung;
-
veranschaulicht 8 eine Ausführungsform von Abstraktionsmodellschichten einer Cloud-Datenverarbeitungsumgebung; und
-
veranschaulicht 9 ein Blockschaubild eines Datenverarbeitungssystems, das bestimmte Elemente zeigt, die gemäß bestimmten Ausführungsformen in der Speichersteuereinheit aus 1 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.
-
Anwendung von Merkmalen zum Verringern der erforderlichen Speicherkapazität
-
Verschiedene Systeme können eine von mehreren Arten von Merkmalen zur Verringerung der erforderlichen Speicherkapazität bereitstellen, wobei es jedoch Aufgabe des Benutzers sein kann, zu entscheiden, welche der Merkmale auf die jeweiligen Datenträger, die er bereitstellen möchte, anwendbar sind. Zusätzlich kann die Entscheidung über die anzuwendenden Merkmale beim Bereitstellen eines Datenträgers erfolgen, und um die Anwendung eines Merkmals zugunsten eines anderen zu ändern, können eine Benutzerintervention und in gewissem Umfang eine detaillierte Analyse der Vorteile notwendig sein, die jedes Merkmal bereitstellt.
-
Bestimmte Ausführungsformen gestatten eine dynamische Analyse des Verhaltens eines gegebenen Datenträgers und eine automatische Ermittlung, welches der verfügbaren Merkmale sich am besten für die Datenerzeugungs- und die darauffolgenden Zugriffseigenschaften des gegebenen Datenträgers eignet. Bestimmte Ausführungsformen gestatten die Migration eines Datenträgers, um auf der Grundlage der dynamischen Analyse der Erzeugungs- und Zugriffeigenschaften das beste Merkmal bereitzustellen. Derartige Ausführungsformen gestatten eine automatisierte Ermittlung derjenigen Merkmale, die am besten geeignet sind, um auf die auf einem Speicherdatenträger gespeicherten Daten angewendet zu werden. Endbenutzer müssen somit nicht manuell ermitteln, ob ein gegebenes Merkmal für einen ausgewählten Datenträger verfügbar ist.
-
Bei bestimmten Ausführungsformen werden Statistiken zu Datenwachstumsraten und Zugriffseigenschaften der Daten verwaltet (wobei dies für jeweils einen einzelnen Datenträger erfolgt). Die verwalteten Statistiken erlauben dem System zu entscheiden, welche Funktion für die Daten zu benutzen ist, die auf einigen vordefinierten Vorlagen beruhen, die die Nutzungseigenschaften jeder Funktion definieren (z. B. schlanke Speicherzuweisung, Deduplizierung, Komprimierung usw.).
-
Bei bestimmten Ausführungsformen wird ermittelt, ob ein Speicherdatenträger funktional herabgesetzt oder herabgestuft werden kann. Dabei bedeutet „funktional herabgesetzt”, dass die auf einen Speicherdatenträger angewendete Funktion so geändert wird, dass sich zwar eine Verringerung der Zugriffsgeschwindigkeit, jedoch eine Erhöhung der Speicherkapazität ergibt. So kann ein neuer Datenträger z. B. immer als ein vollständig zugeordneter Datenträger bereitgestellt werden, der keine schlanke Speicherzuweisung, Deduplizierung, Komprimierung usw. verwendet. Das System wird eine Zeit lang ausgeführt und erfasst einige Statistiken, die Wachstums- und Zugriffsmuster bereitstellen. Wenn sich die Daten auf diesem Datenträger innerhalb des Merkmalraums gut für eine Komprimierung eignen und wenn die Komprimierungsdurchsatzraten in der Lage sind, die Zugriffseigenschaften zu erfüllen, kann das System entscheiden, den Datenträger von „vollständig zugeordnet” zu „komprimiert” funktional herabzusetzen.
-
Beispielhafte Ausführungsformen
-
1 veranschaulicht ein Blockschaubild einer Datenverarbeitungsumgebung 100, die gemäß bestimmten Ausführungsformen eine Speichersteuereinheit 102 beinhaltet, welche mit einer Vielzahl von Speichereinheiten 104a ... 104n verbunden ist. Bei bestimmten Ausführungsformen kann die Datenverarbeitungsumgebung 100 Teil einer Cloud-Datenverarbeitungsumgebung sein. Die Speichersteuereinheit 102 kann eine beliebige geeignete Datenverarbeitungseinheit sein, einschließlich der zurzeit in der Technik bekannten Einheiten wie z. B. ein Personal Computer, eine Arbeitsstation, ein Server, ein Großrechner, ein Taschen-Computer, ein Palmtop Computer, eine Telefonie-Einheit, eine Netzwerkeinrichtung, ein Blade Computer usw. Die Vielzahl von Speichereinheiten 104a ... 104n kann beliebige geeignete Speichereinheiten wie z. B. Festplatten, Halbleiterplatten, optische Platten, Bänder usw. beinhalten.
-
Die Speichersteuereinheit 102 steuert die Vielzahl von Speichereinheiten 104a ... 104n und erzeugt eine Vielzahl von Speicherdatenträgern 106a ... 106m, die eine logische Repräsentation von Daten darstellen, welche in der Vielzahl von Speichereinheiten 104a ... 104n gespeichert sind. Jeder Speicherdatenträger kann eine Vielzahl von Einheiten aufweisen, z. B. Extent-Speichereinheiten, Blöcke usw. So weist in 1 der Speicherdatenträger 106a z. B. eine Vielzahl von Extent-Speichereinheiten 108a ... 108p auf.
-
Die Speichersteuereinheit 102 beinhaltet eine Statistikerzeugungsanwendung 110, eine Funktionsermittlungsanwendung 112, eine Deduplizierungsanwendung 114, eine Komprimierungsanwendung 116, eine Anwendung 118 für die schlanke Speicherzuweisung und eine Anwendung 120 für die vollständige Zuordnung. Die Speichersteuereinheit 102 verwaltet zudem eine Vielzahl von vorgegebenen Schwellenwerten 122 und anderen Daten, die in Zusammenhang mit der Leistung und den Eigenschaften der Deduplizierungsanwendung 114, der Komprimierungsanwendung 116, der Anwendung 118 für die schlanke Speicherzuweisung und der Anwendung 120 für die vollständige Zuordnung stehen.
-
Die Statistikerfassungsanwendung 110 erzeugt Statistiken, die Metadaten aufweisen, welche in Zusammenhang mit den Daten stehen, die auf der Vielzahl von Speicherdatenträgern 106a ... 106m gespeichert sind. Die Funktionsermittlungsanwendung 112 verwendet die von der Statistikerfassungsanwendung 110 erzeugten Statistiken und ermittelt auf der Grundlage von Berechnungen anhand der Schwellenwerte 122, ob die Deduplizierungsanwendung 114, die Komprimierungsanwendung 116, die Anwendung 118 für die schlanke Speicherzuweisung oder die Anwendung 120 für die vollständige Zuordnung auf die Daten angewendet werden soll, die in den Einheiten der Speicherdatenträger 106a ... 106m gespeichert sind.
-
2 veranschaulicht ein Blockschaubild 200, das zeigt, wie die in der Speichersteuereinheit 102 realisierte Statistikerfassungsanwendung 110 gemäß bestimmten Ausführungsformen Statistiken zu Daten erfasst, die in den Einheiten der Speicherdatenträger 106a ... 106m gespeichert sind, welche der Vielzahl von Speichereinheiten 104a ... 104n entsprechen.
-
Bei bestimmten Ausführungsformen erzeugt die Statistikerfassungsanwendung 110 Statistiken pro Speicherdatenträger oder pro Einheit (z. B. eine Extent-Speichereinheit). Die erfassten Statistiken können auch als Metadaten bezeichnet werden. Die erfassten Statistiken können sich auf eine Datenwachstumsrate 202 und auf Zugriffseigenschaften 204 beziehen. Darüber hinaus können auch andere Statistiken erzeugt werden.
-
Die Datenwachstumsrate 202 kann ein Maß dafür sein, wie schnell die genutzte Kapazität auf einem Speicherdatenträger oder einer Einheit anwächst. So kann die Datenwachstumsrate einer ausgewählten Einheit auf der Grundlage vergangener Datenwachstumsmuster in der ausgewählten Einheit z. B. mit 2 Kilobyte pro Tag veranschlagt werden, wobei das Datenwachstum mindestens durch Schreiboperationen verursacht werden kann.
-
Die Zugriffseigenschaften 204 können ein Maß für die Geschwindigkeit des Datenzugriffs bei Eingabe-/Ausgabeoperationen (E/A-Operationen) wie z. B. Lesen, Schreiben, Hinzufügen usw. beinhalten. Dabei können Leistung 206, Spitzendurchsatzraten (in Megabyte pro Sekunde, Eingabe-/Ausgabeoperationen pro Sekunde usw.) 208, Antwortzeit 210 usw. gemessen werden. Bei bestimmten Ausführungsformen können die Zugriffseigenschaften auch den Ort des Zugriffs bestimmen.
-
3 veranschaulicht ein Blockschaubild 300, das zeigt, wie die in der Speichersteuereinheit 102 realisierte Funktionsermittlungsanwendung 112 gemäß bestimmten Ausführungsformen ermittelt, welche Funktion auf Daten anzuwenden ist, die in den Einheiten der Speicherdatenträger 106a ... 106m gespeichert sind, welche der Vielzahl von Speichereinheiten 104a ... 104n entsprechen.
-
Die Funktionsermittlungsanwendung 112 analysiert die von der Statistikerfassungsanwendung 110 erfassten Statistiken 302 und verwendet die vorgegebenen Schwellenwerte 122, um zu ermitteln, ob Einheiten oder Speicherdatenträger dedupliziert 304, komprimiert 306, mit schlanker Speicherzuweisung versehen 308 oder vollständig zugeordnet 310 werden sollen. Wenn die Deduplizierung 304 gewünscht wird, wird die Deduplizierungsanwendung 114 auf Daten angewendet, die in Einheiten der Speicherdatenträger 106a ... 106m gespeichert sind. Wenn die Komprimierung 306 gewünscht wird, wird die Komprimierungsanwendung 116 auf Daten angewendet, die in Einheiten der Speicherdatenträger 106a ... 106m gespeichert sind. Wenn die schlanke Speicherzuweisung 308 gewünscht wird, wird die Anwendung 118 für die schlanke Speicherzuweisung auf Daten angewendet, die in Einheiten der Speicherdatenträger 106a ... 106m gespeichert sind. Wenn die vollständige Zuordnung 310 gewünscht wird, wird die Anwendung 120 für die vollständige Zuordnung auf Daten angewendet, die in Einheiten der Speicherdatenträger 106a ... 106m gespeichert sind.
-
4 veranschaulicht ein Blockschaubild 400, das zeigt, wie ein Satz von Funktionen gemäß bestimmten Ausführungsformen in eine Beziehung zur Verringerung von Speicherplatz und Zugriffszeit gesetzt werden kann.
-
Bei bestimmten Ausführungsformen wird für einen Datenträger oder eine Einheit eines Datenträgers ermittelt, ob dieser/diese komprimierbar, deduplizierbar oder für die schlanke Speicherzuweisung geeignet ist. Anhand dieser Daten kann eine Analyse erfolgen, für die dann Querverweise zu bekannten Einschränkungen einer jeden Funktion hergestellt werden.
-
Bei einer beispielhaften Ausführungsform kann die Funktionsermittlungsanwendung 112 anhand der Datenwachstumsstatistiken ermitteln, dass der Quelldatenträger nur zu 20% genutzt wird und mit nur 1% pro Monat wächst. In einer derartigen Situation kann es angemessen sein, die 80% ungenutzten Speicherplatz für andere Datenträger freizugeben, und die Anwendung 118 für die schlanke Speicherzuweisung kann angewendet werden, da nicht übermäßig viele Schreiboperationen stattfinden, die zu einem Wachstum des Datenträgers führen.
-
Letzten Endes führt dies dazu, dass das System im Laufe der Zeit die Datenträger automatisch migrieren kann, um das richtige Merkmale für den richtigen Datenträger zu verwenden, ohne dass ein wie auch immer gearteter Eingriff durch den Endbenutzer stattfindet. Bestimmte Ausführungsformen entkoppeln den Endbenutzer von der Komplexität des Speichersystems und seinen verfügbaren Merkmalen. Es ist außerdem möglich, die Anwendung von Funktionen auch auf der Grundlage von geänderten Zugriffsstatistiken zu ändern.
-
Dabei kann die Deduplizierung eine beschränkte Durchsatzfähigkeit aufweisen, da unter Umständen viele kleine Blocklesevorgänge benötigt werden, um einen Datenblock aus den deduplizierten Daten wiederherzustellen. Bei Schreibvorgängen muss die Deduplizierung unter Umständen Hash-Daten erzeugen und etwaige Doppeleinträge suchen, was zu einer zusätzlichen Prozessorauslastung führen kann. Als Folge hiervon kann die Deduplizierung bestimmte Eigenschaften bezüglich MB/s, E/A-Operationen und Antwortzeiten aufweisen.
-
Die Komprimierung wird sowohl bei Lese- als auch bei Schreibvorgängen überwiegend durch den Komprimierungsalgorithmus beschränkt und kann hinsichtlich der Zugriffszeit etwas schneller sein als die Deduplizierung.
-
Die schlanke Speicherzuweisung wirkt sich am stärksten auf Schreibvorgänge und hier insbesondere auf Schreibvorgänge in neue Plattenbereiche aus und kann somit schnellere Zugriffszeiten bereitstellen als die Komprimierung oder die Deduplizierung.
-
Dies ergibt einen Merkmalraum, wie er in 4 gezeigt wird, der von der vollständigen Zuordnung 402 über die schlanke Speicherzuweisung 404 und Komprimierung 406 bis zur Deduplizierung 408 und damit von der höchsten zur niedrigsten Leistung reicht, wie durch die Bezugsziffer 410 in 4 kenntlich gemacht ist. Allerdings ergibt sich die größte Speichereffizienz (wie durch die Bezugsziffer 412 kenntlich gemacht) in Situationen, in denen die Leistung am geringsten ist.
-
Anhand dieser Hintergrundinformationen zu den Beschränkungen eines jeden Merkmals kann ermittelt werden, ob der analysierte Datenträger funktional herabgesetzt werden kann. Wenn die Zugriffseigenschaften enthalten sein können, kann das System auf der Grundlage der momentanen, über den Durchsatz angegebenen Zugriffseigenschaften für einen kleinen Teilsatz der Datenträgerdaten einen Probeprozess für das funktionale Herabsetzen durchführen. Wenn die Komprimierung ausgewählt wird, kann z. B. vorübergehend ein Arbeitsdatenträger erzeugt werden, und die Komprimierungsanwendung 116 kann für den Teilsatz von Datenträgerdaten ausgeführt werden, um zu ermitteln, ob sich der Zusatzaufwand für die Komprimierung mit Blick auf Einsparungen bei der Plattenbelegung lohnt. Dasselbe gilt für die Deduplizierung. Auf der Grundlage derartiger Probedurchläufe kann entschieden werden, ob auf Kosten einer längeren Zugriffszeit eine höhere Speichereffizienz erzielt werden sollte.
-
Dabei ist zu beachten, dass bei bestimmten Ausführungsformen die Vielzahl von beispielhaften Funktionen wie z. B. die vollständige Zuordnung 402, die schlanke Speicherzuweisung 404, die Komprimierung 406 und die Deduplizierung in einer anderen Reihenfolge durchgeführt werden können, als dies in 4 gezeigt ist. Darüber hinaus kann bei bestimmten Ausführungsformen eine Vielzahl von beispielhaften Funktionen für dieselbe Extent-Speichereinheit, denselben Block usw. aktiv sein. So können bei bestimmten Ausführungsformen sowohl Deduplizierungs- als auch Komprimierungsfunktionen für ein und dieselbe Extent-Speichereinheit aktiv sein. Die in 4 gezeigten Funktionen 402, 404, 406, 408 dienen zur Veranschaulichung, und bei anderen Ausführungsformen können zusätzliche, in 4 nicht gezeigte Funktionen angewendet werden.
-
5 veranschaulicht einen Ablaufplan 500, der Operationen zeigt, die gemäß bestimmten Ausführungsformen von der Speichersteuereinheit 102 durchgeführt werden. Die in 5 gezeigten Operationen können von Anwendungen durchgeführt werden, die innerhalb der Speichersteuereinheit 102 ausgeführt werden.
-
Die Steuerung startet in Block 502, wo eine Vielzahl von Funktionen zum Konfigurieren einer Einheit eines Speicherdatenträgers verwaltet wird, wobei jede aus der Vielzahl von Funktionen als Reaktion darauf, dass sie auf die Einheit des Speicherdatenträgers angewendet wird, die Einheit des Speicherdatenträgers auf andere Art und Weise konfiguriert.
-
Die Steuerung fährt mit Block 504 fort, wo in der Einheit des Speicherdatenträgers Statistiken zur Datenwachstumsrate und zu Zugriffseigenschaften der Daten berechnet werden. Auf der Grundlage der berechneten Statistiken wird ermittelt (Block 506), welche aus der Vielzahl von Funktionen auf die Einheit des Speicherdatenträgers anzuwenden ist.
-
Bei zusätzlichen Ausführungsformen beinhaltet die Vielzahl von Funktionen die vollständige Zuordnung 120, die schlanke Speicherzuweisung 118, die Datenkomprimierung 116 und die Datendeduplizierung 114, wobei dies mit Blick auf das Durchführen von Operationen auf der Einheit des Speicherdatenträgers in absteigender Reihenfolge der Leistung 410 sowie mit Blick auf Speicheranforderungen in der Einheit des Speicherdatenträgers in aufsteigender Reihenfolge der Effizienz 412 erfolgt. Hinsichtlich Zugriffszeiten und Speichereffizienz können Datenträger herauf- oder herabgestuft werden, indem verschiedene Funktionen auf die Daten angewendet werden, die auf den Datenträgern gespeichert sind.
-
Bestimmte Ausführungsformen können „Teilbereiche” (d. h. Einheiten) eines jeden Datenträgers untersuchen und auf der Grundlage der Leistung ermitteln, ob der Teilbereich eine Ebene nach oben oder unten verschoben werden sollte. So kann z. B. ein Teilbereich mit einer sehr hohen Leistung auf einer Halbleiterplatte (Solid State Disk, SSD) gespeichert werden, während ein Teilbereich mit einer geringen Leistung auf seriell verbundenen Einheiten gespeichert wird, usw. Bei bestimmten Ausführungsformen könnte ermittelt werden, dass auf einen Teilbereich X nur sehr selten zugegriffen wird und der Teilbereich X daher komprimiert werden kann, während auf einen Teilbereich Y sehr häufig zugegriffen wird und dieser daher als ein vollständig zugeordneter Teilbereich bestehen bleiben muss. Dies kann bedeuten, dass ein Datenträger alle, einige oder auch keine der fortschrittlichen Merkmale für die Speicherplatzverringerung nutzt, wobei der Differenzierungsgrad der Ausführungsformen jedoch von einer Datenträger- zu einer Teilbereichsebene zunimmt.
-
Somit veranschaulichen die 1 bis 5 bestimmte Ausführungsformen, bei denen auf der Grundlage von Nutzungsstatistiken zur Zugriffszeit und zum Speicherbedarf ermittelt wird, welche aus einer Vielzahl von Funktionen zum Verringern des Datenspeicherbedarfs auf Daten angewendet werden sollte, die auf Speicherdatenträgern gespeichert sind.
-
Ausführungsformen für die Cloud-Datenverarbeitung
-
Die Datenverarbeitungsumgebung 100 aus 1 kann Teil eines Cloud-Datenverarbeitungsmodells einer Dienstbereitstellung sein, um einen komfortablen, bedarfsgesteuerten Netzwerkzugriff auf einen gemeinsam genutzten Vorrat von konfigurierbaren Datenverarbeitungsressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die mit möglichst geringem Verwaltungsaufwand und möglichst wenig Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Die Cloud-Datenverarbeitungsrealisierung wird mit Blick auf die 6 bis 8 beschrieben. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle beinhalten.
-
Die mindestens fünf Merkmale des Cloud-Modells lauten:
Bedarfsgesteuerte Selbstbedienung: Ein Cloud-Verbraucher kann einseitig und automatisch nach Bedarf Datenverarbeitungskapazitäten wie z. B. Server-Zeit und Netzwerkspeicher vorhalten, ohne dass hierfür eine menschliche Interaktion mit dem Anbieter des Dienstes notwendig ist.
-
Breiter Netzwerkzugriff: Kapazitäten werden über ein Netzwerk zur Verfügung gestellt, wobei der Zugriff über Standardmechanismen erfolgt, die eine Verwendung durch verschiedenartige Thin- oder Thick-Quell-Plattformen ermöglichen (z. B. Mobiltelefone, Laptops und PDAs).
-
Ressourcenbündelung: Die Datenverarbeitungsressourcen des Anbieters sind gebündelt, um unter Verwendung eines Multi-Tenant-Modells mehreren Verbrauchern bereitzustehen, wobei verschiedene physische und virtuelle Ressourcen dynamisch und nach Bedarf zugewiesen bzw. neu zugewiesen werden. Standortunabhängigkeit ist insofern gegeben, als der Verbraucher im Allgemeinen den genauen Standort der bereitgestellten Ressourcen weder kontrolliert noch kennt, jedoch unter Umständen in der Lage ist, auf einer höheren Abstraktionsebene (z. B. Land, Bundesland oder Rechenzentrum) einen Standort festzulegen.
-
Schnelle Anpassungsfähigkeit: Kapazitäten lassen sich schnell und elastisch (in einigen Fällen automatisch) bereitstellen, um eine rasche Skalierung nach oben zu ermöglichen, sowie – für eine rasche Skalierung nach unten – schnell wieder freigegeben zu werden. Für den Verbraucher scheinen die zur Bereitstellung verfügbaren Kapazitäten häufig unbegrenzt zu sein und können jederzeit in jeder beliebigen Menge erworben werden.
-
Dienstmessung: Cloud-Systeme kontrollieren und optimieren die Ressourcennutzung automatisch, indem sie in einer bestimmten, der Art des Dienstes angemessenen Abstraktionsschicht eine Messfunktion nutzen (z. B. Speicherung, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, kontrolliert und protokolliert werden, wodurch sowohl für den Anbieter als auch für den Verbraucher des genutzten Dienstes Transparenz bereitgestellt wird.
-
Die mindestens drei Dienstmodelle lauten:
Software as a Service (SaaS): Die dem Verbraucher bereitgestellte Kapazität besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Der Zugriff auf die Anwendungen kann über eine Thin-Quell-Schnittstelle wie z. B. einen Web-Browser (z. B. eine eMail-Nachricht auf der Grundlage des Webs) von verschiedenen Quell-Einheiten aus erfolgen. Mit Ausnahme beschränkter benutzerspezifischer Einstellungen der Anwendungskonfiguration wird die darunterliegende Cloud-Infrastruktur wie Netzwerk, Server, Betriebssysteme, Speicher oder auch einzelne Anwendungsfunktionen vom Verbraucher weder verwaltet noch kontrolliert.
-
Platform as a Service (PaaS): Die dem Verbraucher bereitgestellte Kapazität besteht darin, dass vom Benutzer erzeugte oder erworbene Anwendungen, die anhand von vom Anbieter bereitgestellten Programmiersprachen und Werkzeugen erstellt wurden, in der Cloud-Infrastruktur bereitzustellen. Die darunterliegende Infrastruktur wie Netzwerke, Server, Betriebssysteme oder Speicher wird vom Verbraucher weder verwaltet noch kontrolliert, er hat jedoch die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung für die Anwendungen.
-
Infrastructure as a Service (IaaS): Die dem Verbraucher bereitgestellte Kapazität besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Verbraucher in der Lage ist, frei wählbare Software wie z. B. Betriebssysteme und Anwendungen vorzuhalten und auszuführen. Die darunterliegende Cloud-Infrastruktur wird vom Verbraucher weder verwaltet noch kontrolliert, er hat jedoch die Kontrolle über Systeme und Einheiten (z. B. Betriebssysteme, Speicher, bereitgestellte Anwendungen usw.) und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z. B. Host-Firewalls).
-
Die mindestens drei Bereitstellungsmodelle lauten:
Private Cloud: Die Cloud-Infrastruktur wird für lediglich eine Organisation betrieben. Sie kann von der Organisation selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden.
-
Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezifische Gemeinschaft mit gemeinsamen Anliegen (z. B. Aufgabe, Sicherheitsanforderungen, Richtlinie und Einhaltung von Gesetzen und Richtlinien). Sie kann von den Organisationen selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden.
-
Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe bereitgestellt und ist Eigentum einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid-Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren (privaten, Gemeinschafts- oder öffentlichen) Clouds, die eigenständige Einheiten bleiben, aber durch eine standardisierte oder herstellerspezifische Technologie miteinander verbunden sind, die eine Portierbarkeit von Daten und Anwendungen ermöglicht (z. B. das Cloud Bursting für den Lastausgleich zwischen Clouds).
-
Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Kompatibilität liegt. Im Mittelpunkt einer Cloud-Datenverarbeitung steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
-
6 veranschaulicht eine Ausführungsform eines Cloud-Datenverarbeitungsknotens 600, der eine Realisierung der Komponenten der Speichersteuereinheit 102 und der Speichereinheiten 104a ... 104n aufweisen kann, wobei die Komponenten in einem oder mehreren der Knoten 600 realisiert sein können. Der Cloud-Datenverarbeitungsknoten 600 ist nur ein Beispiel für einen geeigneten Cloud-Datenverarbeitungsknoten und ist nicht als wie auch immer geartete Beschränkung von Verwendungsumfang oder Funktionalität von Ausführungsformen der hier beschriebenen Erfindung gedacht. Unabhängig davon kann der Cloud-Datenverarbeitungsknoten 600 mit jeder hier dargelegten Funktionalität realisiert sein und/oder diese durchführen.
-
In dem Cloud-Datenverarbeitungsknoten 600 gibt es ein Computersystem/einen Server 602, das bzw. der mit zahlreichen anderen Universal- oder Spezialsystemumgebungen oder -konfigurationen betrieben werden kann. Beispiele bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die für eine Verwendung mit einem Computersystem/Server 602 geeignet sein könnten, sind, ohne darauf beschränkt zu sein, Personal-Computersysteme, Server-Computersysteme, Thin-Quell-Einheiten, Thick-Quell-Einheiten, Handheld- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Mini-Computersysteme, Großrechner-Computersysteme sowie verteilte Cloud-Datenverarbeitungsumgebungen, die eine(s) der obigen Systeme oder Einheiten beinhalten, und dergleichen.
-
Das Computersystem/der Server 602 lässt sich im allgemeinen Zusammenhang von Befehlen beschreiben, die durch ein Computersystem ausführbar sind, wie z. B. Programmmodule, die von einem Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. beinhalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 602 kann in verteilten Cloud-Datenverarbeitungsumgebungen eingesetzt werden, wo Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Datenverarbeitungsumgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien wie beispielsweise Arbeitsspeichereinheiten befinden.
-
6 zeigt das Computersystem/den Server 602 in dem Cloud-Datenverarbeitungsknoten 600 als eine Universal-Datenverarbeitungseinheit. Die Komponenten des Computersystems/Servers 602 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 604, einen Systemarbeitsspeicher 606 und einen Bus 608 beinhalten, der verschiedene Systemkomponenten wie z. B. den Systemarbeitsspeicher 606 mit dem Prozessor 604 verbindet, ohne jedoch darauf beschränkt zu sein.
-
Der Bus 608 steht für mindestens eine von mehreren Arten von Busstrukturen wie z. B. ein Speicherbus oder eine Arbeitsspeicher-Steuereinheit, ein Peripheriebus, ein Accelerated Graphics Port (AGP) und ein Prozessor oder lokaler Bus, wobei eine beliebige aus einer Vielzahl von Busarchitekturen verwendet werden kann. Beispielhaft und nicht als Beschränkung zu verstehen, beinhalten derartige Architekturen den ISA-Bus (Industry Standard Architecture), den MCA-Bus (Micro Channel Architecture), den EISA-Bus (Enhanced ISA), den lokalen VESA-Bus (Video Electronics Standards Association) und den PCI-Bus (Peripheral Component Interconnects).
-
Das Computersystem/der Server 602 beinhaltet üblicherweise eine Vielzahl von computersystem-lesbaren Medien. Derartige Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 602 zugreifen kann, und beinhalten sowohl flüchtige als auch nicht flüchtige, entfernbare und nicht entfernbare Medien.
-
Der Systemarbeitsspeicher 606 kann ein computersystem-lesbares Medium in Form eines flüchtigen Arbeitsspeichers wie z. B. eines Direktzugriffsspeichers (RAM) 610 und/oder eines Cachespeichers 612 beinhalten. Das Computersystem/der Server 602 kann weiterhin andere entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computersystem-Speichermedien beinhalten. Lediglich beispielhaft kann ein Speichersystem 613 zum Lesen von und Schreiben auf ein nicht entfernbares, nicht flüchtiges Medium (das nicht abgebildet ist und bei dem es sich üblicherweise um ein Festplattenlaufwerk handelt) bereitgestellt werden. 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 608 verbunden sein. Wie weiter unten ausführlicher dargestellt und beschrieben, kann der Arbeitsspeicher 606 mindestens ein Programmprodukt mit einem Satz von (z. B. mindestens einem) Programmmodulen beinhalten, wobei diese so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung durchführen.
-
Ein Programm/Dienstprogramm 614 mit einem Satz von (mindestens einem) Programmmodulen 616 kann beispielsweise, und ohne als Beschränkung verstanden zu werden, im Arbeitsspeicher 606 gespeichert sein; gleiches gilt für ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, das ein oder die mehreren Anwendungsprogramme, die anderen Programmmodule und die Programmdaten oder eine Kombination hiervon können jeweils eine Realisierung einer Netzwerkumgebung beinhalten. Die Programmmodule 616 führen im Allgemeinen die Funktionen und/oder Methoden von Ausführungsformen der hier beschriebenen Erfindung aus.
-
Das Computersystem/der Server 602 kann zudem mit einer oder mehreren externen Einheiten 618 Daten austauschen, z. B. mit einer Tastatur, einer Zeigeeinheit, einer Anzeige 620 usw.; mit einer oder mehreren Einheiten, die einem Benutzer gestatten, mit dem Computersystem/Server 602 zu interagieren; und/oder mit beliebigen Einheiten (z. B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 602 ermöglichen, mit einem oder mehreren anderen Datenübertragungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe-/Ausgabeschnittstellen (E/A-Schnittstellen) 622 erfolgen. Des Weiteren kann das Computersystem/der Server 602 über einen Netzwerkadapter 624 mit einem oder mehreren Netzwerken Daten austauschen, z. B. einem Nahbereichsnetz (Local Area Network, LAN), einem Weitverkehrsnetz (Wide Area Network, WAN) und/oder einem öffentlichen Netz (z. B. dem Internet). Wie abgebildet, tauscht der Netzwerkadapter 624 über den Bus 608 Daten mit den anderen Komponenten des Computersystems/Servers 602 aus. Dabei sollte klar sein, dass – obwohl sie hier nicht abgebildet sind – auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 602 verwendet werden können. Beispiele hierfür sind, ohne darauf beschränkt zu sein: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerksstapel, RAID-Systeme, Bandlaufwerke und Datenarchivierungsspeichersysteme usw.
-
Mit Blick auf 7 ist eine veranschaulichende Cloud-Datenverarbeitungsumgebung 750 abgebildet. Wie gezeigt, weist die Cloud-Datenverarbeitungsumgebung 750 einen oder mehrere Cloud-Datenverarbeitungsknoten 600 auf, mit denen lokale Datenverarbeitungseinheiten wie z. B. ein persönlicher digitaler Assistent (Personal Digital Assistent, PDA) oder ein Mobiltelefon 754A, ein Desktop Computer 754B, ein Laptop Computer 754C und/oder ein Automobil-Computer-System 754N Daten austauschen können. Die Knoten 600 können untereinander Daten austauschen. Sie können in einem oder mehreren Netzwerken, z. B. in privaten, Gemeinschafts-, öffentlichen oder Hybrid-Clouds, wie sie hier weiter oben beschrieben sind, oder in einer Kombination hiervon, physisch oder virtuell zusammengefasst sein (nicht abgebildet). Auf diese Weise kann die Cloud-Datenverarbeitungsumgebung 750 Infrastruktur, Plattformen und/oder Software als Dienste anbieten, für die ein Cloud-Verbraucher keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Dabei sollte klar sein, dass die in 7 gezeigten Arten von Datenverarbeitungseinheiten 754A bis N lediglich zur Veranschaulichung gedacht sind und dass die Datenverarbeitungsknoten 600 und die Cloud-Datenverarbeitungsumgebung 750 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung (z. B. unter Verwendung eines Webbrowsers) Daten austauschen können.
-
7 zeigt darüber hinaus eine einzige Cloud. Bestimmte Cloud-Ausführungsformen können jedoch ein Realisierungsmodell bereitstellen, das zusätzlich zu der Cloud mit den Kunden-/Produktionsdaten eine separate „Backup”- oder „Datenschutz”-Cloud bereitstellt. Indem eine separate und klar getrennte zusätzliche Cloud als Datenschutz-Cloud bereitgestellt wird, um ein wie auch immer geartetes primäres Cloud-Modell (private, Community-, Hybrid-Cloud usw.) von der Datenschutz-Cloud zu trennen, wird ein kritischer Ausfallpunkt (Single Point Of Failure, SPOF) verhindert und in der separaten Backup-Cloud ein höheres Maß an Schutz für die Kundendaten bereitgestellt.
-
Mit Blick auf 8 wird ein Satz von funktionsbezogenen Abstraktionsschichten gezeigt, der von der Cloud-Datenverarbeitungsumgebung 750 (7) bereitgestellt wird. Dabei sollte von Anfang an klar sein, dass die in 8 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung gedacht und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet, werden die folgenden Schichten und zugehörigen Funktionen bereitgestellt:
Eine Hardware- und Software-Schicht 860 enthält Hardware- und Software-Komponenten. Beispiele für Hardware-Komponenten beinhalten Großrechner wie z. B. IBM® zSeries® Systeme; Server auf der Grundlage der RISC-Architektur (Reduced Instruction Set Computer) wie z. B. IBM pSeries® Systeme; IBM xSeries® Systeme; IBM BladeCenter® Systeme; Speichereinheiten; Netzwerke und Netzwerkkomponenten. Beispiele für Software-Komponenten beinhalten Software für Netzwerk-Anwendungs-Server wie z. B. IBM WebSphere® Anwendungs-Server-Software; sowie Datenbank-Software wie z. B. IBM DB2® Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Handelsmarken der International Business Machines Corporation, die in vielen Ländern weltweit eingetragen sind.)
-
Eine Virtualisierungsschicht 862 stellt eine Abstraktionsschicht bereit, welche die folgenden Beispiele für virtuelle Einheiten zur Verfügung stellen kann: virtuelle Server; virtuellen Speicher; virtuelle Netzwerke wie z. B. virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; sowie virtuelle Quellen.
-
In einem Beispiel kann eine Verwaltungsschicht 864 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung stellt eine dynamische Beschaffung von Datenverarbeitungs- und anderen Ressourcen bereit, mit denen Aufgaben innerhalb der Cloud-Datenverarbeitungsumgebung durchgeführt werden. Messungs- und Preisermittlungsfunktionen stellen eine Kostenerfassung bei der Nutzung von Ressourcen innerhalb der Cloud-Datenverarbeitungsumgebung sowie eine Fakturierung bzw. Abrechnung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungs-Software aufweisen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Verbraucher und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Eine Benutzerportalfunktion stellt Verbrauchern und Systemadministratoren einen Zugriff auf die Cloud-Datenverarbeitungsumgebung bereit. Eine Dienstgüteverwaltungsfunktion stellt eine Zuordnung und Verwaltung von Cloud-Datenverarbeitungsressourcen bereit, so dass erforderliche Dienstgütestufen erreicht werden. Eine Planungs- und Ausführungsfunktion von Dienstgütevereinbarungen (Service Level Agreement, SLA) stellt eine Vorabfestlegung und Beschaffung von Cloud-Datenverarbeitungsressourcen bereit, für die gemäß einer SLA eine künftige Anforderung erwartet wird.
-
Eine Auslastungsschicht 866 stellt Beispiele einer Funktionalität bereit, für welche die Cloud-Datenverarbeitungsumgebung genutzt werden kann. Beispiele für Auslastungen und Funktionen, die von dieser Schicht bereitgestellt werden können, lauten: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von virtuellen Schulungen; Datenanalyseverarbeitung; Transaktionsverarbeitung; sowie Dienste für die Statistikerfassung, die Funktionsermittlung, die Deduplizierung, die Komprimierung, die schlanke Speicherzuweisung und die vollständige Zuordnung, wie sie mit Blick auf die 1 bis 5 weiter oben beschrieben werden.
-
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 Programmier- und/oder Ingenieurtechniken 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. Zudem können Aspekte der Ausführungsformen in Gestalt eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, auf denen computerlesbarer Programmcode enthalten ist.
-
Dabei kann eine beliebige Kombination aus einem oder mehreren computerlesbaren Medien genutzt werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem bzw. eine entsprechende Vorrichtung oder Einheit oder aber eine beliebige geeignete Kombination der vorgenannten Elemente sein, ohne jedoch auf diese beschränkt zu sein. Konkretere Beispiele des computerlesbaren Speichermediums würden Folgendes aufweisen (wobei dies eine nicht vollständige Liste darstellt): eine elektrische Verbindung mit einem oder mehreren Leitern, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren, programmierbaren Nur-Lese-Speicher (EPROM- oder Flash-Speicher), einen Lichtwellenleiter, eine tragbare CD-ROM, eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination der vorgenannten Elemente. In Verbindung mit diesem Dokument kann ein computerlesbares Speichermedium ein beliebiges physisches Medium sein, das ein Programm enthalten oder speichern kann, welches von oder im Zusammenhang mit einem der Befehlsausführung dienenden System, einer Vorrichtung oder Einheit verwendet wird.
-
Ein computerlesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem computerlesbarem Programmcode enthalten, z. B. als Basisband oder als Teil einer Trägerwelle. Ein derartiges weitergeleitetes Signal kann eine beliebige Vielfalt von unterschiedlichen Formen annehmen, einschließlich, ohne auf diese beschränkt zu sein, eine elektromagnetische Form, eine optische Form oder auch jede geeignete Kombination derselben. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm übermitteln, weiterleiten oder übertragen kann, welches für die Nutzung durch oder in Verbindung mit einem/einer der Befehlsausführung dienenden System, Vorrichtung oder Einheit vorgesehen ist.
-
Auf einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, drahtlose, drahtgebundene, Lichtwellenleiterkabel-, Funk- und andere Medien oder eine beliebige Kombination derselben.
-
Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung können in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java*, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder aber vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über eine beliebige Art von Netzwerk, darunter ein Nahbereichsnetz (LAN) oder ein Weitverkehrsnetz (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann mit einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Im Folgenden werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Dabei dürfte klar sein, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle realisiert werden kann/können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, Spezialcomputers oder einer anderweitigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderweitigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, mit dem die Funktionen/Handlungen realisiert werden können, die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegeben sind.
-
Diese Computerprogrammbefehle können auch auf einem computerlesbaren Medium gespeichert werden, das einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem computerlesbaren Medium gespeicherten Befehle einen Gegenstand hervorbringen, der Befehle aufweist, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebene Funktion/Handlung realisiert wird. Die Computerprogrammbefehle können zudem in einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu veranlassen, dass eine Reihe von Betriebsschritten auf dem Computer, der anderweitigen programmierbaren Datenvorrichtung oder den anderen Einheiten ausgeführt wird, so dass die Befehle, die auf dem Computer oder der anderweitigen Datenverarbeitungsvorrichtung ausgeführt werden, Prozesse bereitstellen, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Handlungen realisiert werden.
-
9 veranschaulicht ein Blockschaubild, das bestimmte Elemente zeigt, die gemäß bestimmten Ausführungsformen in der Speichersteuereinheit 102 enthalten sein können. Das System 900 kann die Speichersteuereinheit 102 aufweisen und eine Schaltung 902 beinhalten, die in bestimmten Ausführungsformen mindestens einen Prozessor 904 beinhalten kann. Das System 900 kann zudem einen Arbeitsspeicher 906 (z. B. eine flüchtige Arbeitsspeichereinheit) und einen Speicher 908 beinhalten. Der Speicher 908 kann eine nicht flüchtige Speichereinheit (z. B. einen EEPROM, ROM, PROM, RAM, DRAM, SRAM oder Flash-Speicher, eine Firmware, eine programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. beinhalten. Der Speicher 908 kann eine interne Speichereinheit, eine verbundene Speichereinheit und/oder eine über ein Netzwerk zugängliche Speichereinheit aufweisen. Das System 900 kann eine Programmlogik 910 mit Code 912 aufweisen, der in den Arbeitsspeicher 906 geladen und durch den Prozessor 904 oder die Schaltung 902 ausgeführt werden kann. Bei bestimmten Ausführungsformen kann die Programmlogik 910 mit dem Code 912 in dem Speicher 908 gespeichert sein. Bei bestimmten anderen Ausführungsformen kann die Programmlogik 910 in der Schaltung 902 realisiert sein. Obwohl 9 die Programmlogik 910 getrennt von den anderen Elementen zeigt, kann die Programmlogik 910 auch in dem Arbeitsspeicher 906 und/oder der Schaltung 902 realisiert sein.
-
Bestimmte Ausführungsformen können sich auf ein Verfahren zum Bereitstellen eines Datenverarbeitungsbefehls durch eine Person oder eine automatisierte Verarbeitung beziehen, die computerlesbaren 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ßt/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 Einheiten können alternativ durch eine oder mehrere andere Einheiten realisiert sein, 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 Operationen 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 Operationen nacheinander stattfinden, oder bestimmte Operationen können parallel verarbeitet werden. Des Weiteren können Operationen 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 Anpassungen 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 obigen Angaben, 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, um vom inhaltlichen Umfang der Erfindung abzuweichen, wird die Erfindung durch die nachfolgend angehängten Ansprüche definiert.
* Java ist eine Handelsmarke oder eingetragene Handelsmarke von Oracle und/oder seinen Tochterunternehmen.
* IBM, zSeries, pSeries, xSeries; BladeCenter, WebSphere, DB2 sind Handelsmarken oder eingetragene Handelsmarken der IBM Corporation.