-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich allgemein auf Computer und insbesondere auf Ausführungsformen für eine Vorrichtung, ein Verfahren und ein Computerprogrammprodukt für die Reservierung von Speicherplatz in einem Deduplizierungssystem, das in einer Computerspeicherumgebung betrieben werden kann.
-
Beschreibung des Stands der Technik
-
Deduplizierungssysteme können verschiedene logische Datenspeicherentitäten wie beispielsweise Dateien, Datenobjekte, Sicherungsimages, Datenmomentaufnahmen oder virtuelle Bandkassetten auslagern. Oft müssen solche Datenspeicherentitäten von ihrem Ursprungsort an entfernten Standorten repliziert werden. Replizierte Datenentitäten verbessern die Fehlertoleranzfähigkeiten und die Verfügbarkeit von Daten. Eine solche Fehlertoleranz und weitgehende Verfügbarkeit werden in zunehmendem Maße gefordert. Es gibt zwar mehrere Ansätze, die zur Durchführung einer Datenreplikation und insbesondere einer Replikation von deduplizierten Datenentitäten verwendet werden können, diese Ansätze gehen jedoch mit Einschränkungen einher, die die Replikationsfähigkeit, Systemleistung und Datenkonsistenz beeinträchtigen, die zusätzlichen Aufwand benötigen oder sich durch eine Kombination von beidem auszeichnen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Datendeduplizierung bezieht sich auf die Verringerung und/oder die Entfernung von redundanten Daten. Bei einem Datendeduplizierungsverfahren werden duplizierte Kopien von Daten verringert oder entfernt, wobei eine Mindestanzahl an redundanten Kopien bzw. eine einzelne Kopie der Daten übrig bleibt. Durch die Anwendung von Deduplizierungsverfahren ergeben sich vielfältige Vorteile wie beispielsweise eine Verringerung der benötigten Speicherkapazität und eine größere Netzwerkbandbreite. Aufgrund dieser und anderer Vorteile hat sich die Deduplizierung in den vergangenen Jahren zu einem äußerst wichtigen technologischen Gebiet im Bereich Computerspeichersysteme entwickelt. Zu den Problemen im Zusammenhang mit der Bereitstellung der Deduplizierungsfunktionalität zählen Aspekte wie beispielsweise das wirksame Auffinden duplizierter Datenmuster in typischerweise großen Speicher-Repositories sowie das Speichern der Datenmuster in einer deduplizierten speichereffizienten Form.
-
Bei aktuellen Replikationslösungen für die Duplizierung im Rahmen einer Konfiguration, bei der beispielsweise viele Replikationssender Daten mit einem Empfänger austauschen, der auch als Sicherungsziel fungiert, stellt sich das Problem, was höhere Priorität erhalten soll, die Sicherungsfunktionalität oder die eingehende Replikation. Dieses Problem kann derzeit zu Konkurrenzsituationen in Bezug auf den verfügbaren Speicherplatz führen, wie unten noch näher beschrieben wird. In Anbetracht des gegenwärtigen Stands der Technik besteht der Bedarf nach einem Mechanismus zum Replizieren deduplizierter Daten, der alle Anforderungen an ein leistungsfähiges Replikationsverfahren erfüllt und gleichzeitig die oben beschriebenen Beschränkungen der bestehenden Methodologien bei bestimmten Konfigurationen umgeht, um somit die bestehenden Ansätze zum Replizieren deduplizierter Daten zu verbessern.
-
Daher werden verschiedene Ausführungsformen zum Verbessern der Funktionalität für die Reservierung von Speicherplatz in einem Deduplizierungssystem bereitgestellt, das in einer Computerspeicherumgebung betrieben werden kann. Bei einer solchen Ausführungsform wird lediglich beispielhaft ein berechnetes Faktorisierungsverhältnis als ein gewichtetes Verhältnis von aktuellen nominalen Daten zu physischen Daten auf der Grundlage von mindestens einem Schwellenwert der Speicherkapazität und einem verwendeten Speicherplatz ermittelt, der aktuell von Sicherungs- oder Replikationsdaten physisch gebraucht wird. Ein geschätzter maximaler nominaler Speicherplatz in der Computerspeicherumgebung wird berechnet. Ein verbleibender Speicherplatz, der als der geschätzte maximale nominale Speicherplatz abzüglich eines aktuellen nominalen Speicherplatzes in der Computerspeicherumgebung definiert ist, wird berechnet. Wenn der verbleibende Speicherplatz gleich wie oder kleiner als ein vom Benutzer konfigurierter Reservierungsspeicherplatz für Sicherungsoperationen ist, werden Datenreplikationsoperationen angenommen und in der Computerrechenumgebung gespeichert.
-
Neben der oben aufgeführten beispielhaften Ausführungsform eines Verfahrens werden noch andere beispielhafte Ausführungsformen für ein System und ein Computerprodukt bereitgestellt, die damit verbundene Vorteile bieten.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Um die Vorteile der Erfindung besser zu verstehen, wird eine genauere Beschreibung der oben kurz dargelegten Erfindung mit Bezug auf spezielle Ausführungsformen vorgestellt, die in den beigefügten Zeichnungen veranschaulicht sind. Vor dem Hintergrund, dass diese Zeichnungen Ausführungsformen der Erfindung darstellen und daher nicht als Beschränkung des Geltungsbereichs zu betrachten sind, wird die Erfindung mit größerer Genauigkeit und im Detail durch die Verwendung der beigefügten Zeichnungen beschrieben und erklärt, in denen:
-
1 eine beispielhafte Datenverarbeitungsumgebung veranschaulicht, in der Aspekte der vorliegenden Erfindung umgesetzt werden können;
-
2 eine beispielhafte Datenreplikations- und Sicherungskonfiguration veranschaulicht;
-
3 eine Reihe von Definitionen veranschaulicht, die in den folgenden Beschreibungen und dem beanspruchten Gegenstand verwendet werden;
-
4 ein beispielhaftes Verfahren zum Bereitstellen einer Funktionalität für die Reservierung von Speicherplatz in Deduplizierungssystemen veranschaulicht;
-
5 ein beispielhaftes Verfahren zum Berechnen eines berechneten Faktorisierungsverhältnisses nach dem in 4 oben gezeigten beispielhaften Verfahren veranschaulicht;
-
6 ein beispielhaftes Verfahren für einen Verfahrensfluss einer Funktionalität für die Reservierung von Speicherplatz nach dem in 4 oben gezeigten beispielhaften Verfahren veranschaulicht; und
-
7 eine beispielhafte Datenverarbeitungseinheit mit einer Prozessoreinheit in einer Datenverarbeitungsumgebung wie beispielweise der in 1 dargestellten Datenverarbeitungsumgebung veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
-
Mit Bezug nunmehr auf 1 ist eine beispielhafte Architektur 10 von Datenspeichersystemen (z. B. virtuellen Bandsystemen) in einer Datenverarbeitungsumgebung dargestellt. Die Architektur 10 stellt wie dargestellt den lokalen Hosts 18 und 20 Speicherdienste sowie entfernten Datenspeichersystemen Replikatdaten bereit. Ein lokaler Speichersystem-Server 12, der Daten mit einer Speichereinheit 14 austauscht, ist über ein Netzwerk, das Komponenten wie beispielsweise einen Fibre-Channel-Schalter (fibre channel switch) 16 umfasst, mit den lokalen Hosts 18 und 20 verbunden. Der Fibre-Channel-Schalter 16 kann zum Beispiel Befehle (wie beispielsweise Befehle des Small Computer System Interface, SCSI) für Bandeinheiten ausführen. Dem Fachmann ist ersichtlich, dass die Architektur 10 eine Vielfalt von Speicherkomponenten umfassen kann. Die Speichereinheiten 14 können zum Beispiel herkömmliche Festplattenlaufwerkeinheiten oder Festkörperlaufwerkeinheiten (solid state drive devices) umfassen.
-
Der lokale Speichersystem-Server 12 ist über das Netzwerk 22 mit einem entfernten Speichersystem-Server 24 verbunden. Der entfernte Server 24 tauscht mit einer lokal verbundenen Plattenspeichereinheit 26 und mit den lokal verbundenen Hosts 30 und 32 über ein anderes Netzwerk und eine Netzwerkkomponente 28 wie beispielsweise den Fibre-Channel-Schalter 28 Daten aus. Das Netzwerk 22 kann eine Vielfalt von Netzwerktopologien umfassen, beispielsweise ein Weitverkehrsnetz (wide area network, WAN), ein lokales Netz (local area network, LAN), ein Speicherbereichsnetz (storage area network, SAN) und andere Konfigurationen. Die Schalter 16 und 28 können ebenso andere Arten von Netzwerkeinheiten umfassen.
-
Die Architektur 10 stellt wie oben beschrieben den lokalen Hosts lokale Speicherdienste bereit und stellt den entfernten Datenspeichersystemen Replikatdaten bereit (durch die mit dem Pfeil 34 gekennzeichnete Datenreplikationsfunktionalität). Verschiedene Ausführungsformen der vorliegenden Erfindung und der beanspruchte Gegenstand können bei Architekturen wie beispielsweise der Architektur 10 umgesetzt werden, wie beschrieben werden wird. Bei einer Ausführungsform kann die Plattenspeichereinheit 14 zum Beispiel Teil eines deduplizierten Speichersystems sein, das deduplizierte Datenentitäten speichert. Die deduplizierten Datenentitäten können anschließend einem Datenreplikationsverfahren 34 unterzogen werden, bei dem die deduplizierten Datenentitäten auf der entfernten Plattenspeichereinheit 26 repliziert werden. Diese Verfahren werden nachfolgend im Einzelnen beschriebenen.
-
Solche Verfahren zum Replizieren einer in einer deduplizierten Form in einem deduplizierten Speichersystem abgelegten Datenentität auf ein entferntes Deduplizierungsspeichersystem sollte in Bezug auf Verarbeitungszeit und Speicheranforderungen sowohl bei den Quell- als auch den Zielsystemen leistungsstark sein und sollte nach Möglichkeit die Eigenschaften der Deduplizierungsspeichersysteme nutzen, um diese Leistungsfähigkeiten zu verbessern.
-
Die Replikation mehrerer Systeme auf ein einzelnes System für die Wiederherstellung nach einem Absturz (disaster recovery system) ist bei Organisationen mit Datenspeicherungsanforderungen üblich, zum Beispiel bei Organisationen, die bestimmte Datenspeicherungsgesetze einhalten müssen, oder Organisationen, die Datenentitätsreplikate mit unterschiedlichen Speicherungszeiten von vielen kleinen bis mittleren Standorten aufbewahren müssen. Wie oben jedoch bereits angedeutet, kann sich ein potenzielles Problem ergeben, wenn eine Vielfalt von Sendern, die Daten mit einem Empfänger austauschen, konfiguriert werden. Ein oder zwei Replikationssender sind noch leicht zu steuern, und der Empfänger kann seine Kapazität entsprechend planen, viele Replikationssender können jedoch zu Chaos am Empfängerstandort führen, wenn Replikationsoperationen gleichzeitig ausgeführt werden. Dieses Problem wird noch größer, wenn der Empfänger auch als Sicherungsziel konfiguriert ist.
-
Wie oben bereits erwähnt, stellt sich dann die Frage, was höhere Priorität hat, Sicherung oder eingehende Replikation. Diese Frage nach der Priorisierung spielt in herkömmlichen Replikationsausführungen allgemein keine Rolle. Die Anwendung herkömmlicher Lösungen kann daher zu Konkurrenzsituationen im Zusammenhang mit dem verfügbaren Speicherplatz führen. In diesem Szenario haben weder Replikation noch Sicherung Priorität, und beide würden Speicherplatz je nach der entsprechenden Eingabe/Ausgabe (E/A) des Durchsatzes benötigen, den jeder Sender (einschließlich Sicherungshost) erzeugen kann.
-
Mit Bezug auf 2 ist eine beispielhafte Viele-zu-eins-Replikationsumgebung 50 veranschaulicht. Hier tauscht eine Vielzahl von Sendern 52 Daten mit einem Empfänger 54 aus, der als ein Sicherungsziel von einem Sicherungshost 58 konfiguriert ist. Der Empfänger 54 tauscht auch Daten mit dem Speicher 56 aus (der, wie dem Fachmann ersichtlich ist, eine oder mehrere Speichereinheiten in einer beliebigen Anzahl von Ausführungen umfassen kann). Da der Empfänger dem Sicherungshost 58 eine Sicherungsfunktionalität bereitstellen muss, jedoch auch die Datenreplikation bis zum Speicher 56 ermöglichen muss, wenn keine Durchsetzungsmaßnahme in Bezug auf die Speicherkapazität für den Speicher 56 durchgeführt wird, befördert die Umgebung 50 die Konkurrenzsituation zwischen Replikation und Sicherung und bewirkt, dass der Speicher 56 keiner besonderen Funktion, weder der Sicherung noch der Replikation, den Vorzug gibt, so dass, sobald der Speicherplatz im Speicher 56 vollständig durch die Replikation belegt ist, die vom Empfänger 54 ermöglichten Sicherungsoperationen für den Sicherungshost 56 nicht ausgeführt werden können und fehlschlagen würden.
-
Um das oben beschriebene Szenario zu lösen, stellen die veranschaulichten Ausführungsformen Mechanismen zum Priorisieren der Sicherung vor der Replikation in Deduplizierungssystemen bereit, wobei dieser Aspekt der Kapazitätsverwaltung während der Ausführung von Replikation und Sicherung dynamisch durchgesetzt wird. Jedes System kann seine eigenen Speicherentitäten (z. B. Kassetten) haben, die lokale Eigner sind, sowie replizierte Entitäten, die fremde Eigner sind. Die vom lokalen System erzeugten lokalen Entitäten können sowohl für die Sicherung als auch für die Replikation auf einen entfernten Standort verwendet werden. Replizierte Entitäten am entfernten Standort, die durch die Replikation von Replikationssendersystemen erzeugt wurden, können für Replikations- und Wiederherstellungsoperationen verwendet werden.
-
Ein Benutzer, beispielsweise ein Systemadministrator, kann nominalen Speicherplatz für Sicherungsoperationen reservieren. Bei einer beispielhaften Ausführungsform kann der Benutzer nominalen Speicherplatz für den Sicherungshost reservieren (z. B. 200 MB Sicherungshostdaten (nominal)/10 (Deduplizierungsverhältnis) = 20 MB physischer Speicherplatz). Diese Operation kann online und jederzeit durchgeführt werden, nachdem das System während der Ausführung konfiguriert wurde. Die Standardeinstellung kann so konfiguriert werden, dass kein Speicherplatz für die Sicherung reserviert wird.
-
Somit können beide Verbraucher (Sicherung und Replikation) verfügbaren Speicherplatz im Speicher verwenden. Wenn ein Benutzer reservierten Speicherplatz definiert (in nominaler Hinsicht), kann das System auf der Grundlage der aktuell verwendeten Speicherkapazität so angepasst werden, dass es bis zu einem konfigurierten Umfang (z. B. X Speicherplatz) Speicherplatz für Sicherungsoperationen reserviert. Bei einer Ausführungsform kann das System fünf nominale Werte anbieten, wenn der Benutzer den reservierten Speicherplatz ändern will. Zu diesen Werten können zum Beispiel (i) die maximale Speicherkapazität, (ii) der für die Replikation verwendete Speicherplatz, (iii) der für die Sicherung verwendete Speicherplatz, (iv) freier Speicherplatz im Speicher und (v) die aktuelle Reservierung für die Sicherung gehören.
-
Unabhängig vom Status des Speichers kann der Benutzer den Wert der Reservierung in einen von ihm gewählten Wert ändern, auch wenn der Wert zu diesem Zeitpunkt von dem für die Sicherung verwendeten Speicherplatz überschritten wird. Wenn der neue Wert größer als die maximale Speicherkapazität ist, kann der Benutzer benachrichtigt werden und/oder die Änderung ist möglicherweise nicht erlaubt. Auf diese Weise fördern die Mechanismen der vorliegenden Erfindung die Fähigkeit, eine Priorisierung von Sicherungsoperationen vor Replikationsmaßnahmen bereitzustellen, wenn Sicherungs- und Replikationsoperationen gleichzeitig durchgeführt werden.
-
In Anbetracht des Obengenannten stellt die nachfolgende Beschreibung beispielhafte Mechanismen zum Durchsetzen der Priorisierung von Sicherung vor Replikation bei der Kapazitätsverwaltung vor. Das System kann im Vorfeld als Teil der ursprünglichen Speicherplanung am Standort der Wiederherstellung nach einem Absturz konfiguriert werden, um Sicherungsoperationen Priorität vor der Replikation zu geben (da Replikationsoperationen zum Beispiel Teil der Sicherungsoperationen insgesamt sind und daher als solche nicht so wichtig sind). Der Benutzer kann eine solche Konfiguration bereitstellen. In einem folgenden Schritt kann der Benutzer einen Reservierungsspeicherplatz für die Sicherung definieren, der seine Sicherungsanforderungen erfüllt. Sobald die Konfigurationen abgeschlossen sind und das System arbeitet, kann der Benutzer diese Konfigurationen dann überwachen.
-
Mit Bezug nunmehr auf 3 ist eine Reihe von beispielhafter Terminologie, die hier beschrieben wird und im nachfolgend beanspruchten Gegenstand aufgeführt ist, in Tabellenform unterteilt nach Begriff und Beschreibung dargestellt. Zuerst sollen sich ”nominale Daten” auf Daten beziehen, die von einem Sicherungshost geschrieben wurden. Der Begriff ”physische Daten” soll sich auf Daten nach Deduplizierungs- und Komprimierungsoperationen beziehen. Der Begriff ”konfiguriertes Faktorisierungsverhältnis” soll sich auf ein vom Benutzer definiertes Systemattribut für ein erwartetes Verhältnis von nominalen zu physischen Daten beziehen, wie im Folgenden noch beschrieben wird. Der Begriff ”aktuelles Faktorisierungsverhältnis” soll sich auf ein tatsächliches Verhältnis von nominalen zu physischen Daten beziehen.
-
Im weiteren Verlauf der dargestellten Terminologie soll sich der Begriff ”berechnetes Faktorisierungsverhältnis” auf eine Berechnung beziehen, die das System durchführt, das Gewichtungen für das erwartete und das aktuelle Verhältnis von nominalen zu physischen Daten bereitstellt, die dynamisch auf Kapazitätsschwellenwerten und verwendetem Speicherplatz beruhen. ”Niedriger Kapazitätsschwellenwert” soll sich auf einen Wert beziehen, unter dem das berechnete Faktorisierungsverhältnis definitionsgemäß dem konfigurierten Faktorisierungsverhältnis entspricht. ”Hoher Kapazitätsschwellenwert” soll sich auf einen Wert beziehen, über dem das berechnete Faktorisierungsverhältnis definitionsgemäß dem konfigurierten Faktorisierungsverhältnis entspricht. ”Verwendeter Speicherplatz” soll sich auf einen tatsächlichen Umfang eines aktuell von Sicherungs- oder Replikationsdaten physisch verwendeten Speicherplatzes in dem Speicher beziehen. Zuletzt soll sich ”verwendeter Speicherplatz von replizierten Kassetten” auf einen tatsächlichen Umfang eines Speicherplatzes beziehen, der aktuell von Replikation stammenden Datenentitäten (Kassetten in diesem Fall) verwendet wird.
-
Die folgenden 4, 5 und 6 veranschaulichen eine beispielhafte Funktionalität zum Bereitstellen einer Speicherplatzreservierung in einem Deduplizierungssystem. 4 veranschaulicht ein beispielhaftes Gesamtverfahren für eine Speicherplatzreservierung, während die folgende 5 ein beispielhaftes Verfahren zum Berechnen eines berechneten Faktorisierungsverhältnisses veranschaulicht und die nachfolgende 6 einen Verfahrensfluss für die Konfiguration und den Betrieb des Deduplizierungssystems veranschaulicht, das die in den 4 und 5 zuvor gezeigten beispielhaften Funktionalitäten umfasst.
-
Zuerst mit Bezug auf 4 beginnt ein Verfahren 100 (Schritt 102) mit der Ermittlung eines berechneten Faktorisierungsverhältnisses als ein gewichtetes Verhältnis von aktuellen nominalen Daten zu physischen Daten (Schritt 104). Ein geschätzter maximaler nominaler Speicherplatz wird anschließend berechnet (Schritt 106), und ein verbleibender Speicherplatz wird berechnet (Schritt 108), der als die Menge an Speicherplatz definiert ist, die nach Abzug des für die Replikation verwendeten nominalen Speicherplatzes von dem in Schritt 106 berechneten geschätzten maximalen nominalen Speicherplatz übrig bleibt.
-
Wenn festgestellt wird, dass der verbleibende Speicherplatz kleiner als oder gleich wie der vom Benutzer für Sicherungsoperationen konfigurierte und reservierte Speicherplatz (Schritt 110) ist, wird die Replikation angenommen und gespeichert (Schritt 114). Wenn dagegen kein verbleibender Speicherplatz vorhanden ist, wird eine Meldung an den Benutzer gesendet (Schritt 112) und die Replikation wird abgelehnt. Das Verfahren 100 endet damit (Schritt 116).
-
Mit Bezug auf 5 als nächstes beginnt das Verfahren 150 (Schritt 152), indem ein aktuelles Faktorisierungsverhältnis als ein tatsächliches Verhältnis von nominalen zu physischen Daten (Schritt 154) berechnet wird. Bei einer Ausführungsform kann das aktuelle Faktorisierungsverhältnis als die verwendeten nominalen Daten, geteilt durch den verwendeten Speicherplatz, definiert werden. In einem nächsten Schritt wird ein Prozentwert der verwendeten Kapazität ermittelt (Schritt 156). Der Prozentsatz der verwendeten Kapazität kann bei einer Ausführungsform als der verwendete Speicherplatz, geteilt durch den konfigurierten physischen Speicherplatz, oder der Prozentsatz der physischen Daten im Speicher von der konfigurierten Speichergröße definiert werden.
-
Wenn in Schritt 158 ermittelt wird, dass der Prozentsatz der verwendeten Kapazität kleiner als oder gleich wie der niedrige Kapazitätsschwellenwert ist, wird das konfigurierte (vom Benutzer definierte) Faktorisierungsverhältnis als das berechnete Faktorisierungsverhältnis verwendet (Schritt 160). Wenn der Prozentsatz der verwendeten Kapazität größer als oder gleich wie der hohe Kapazitätsschwellenwert ist (Schritt 162), wird das aktuelle Faktorisierungsverhältnis (erneut das tatsächliche Verhältnis von nominalen zu physischen Daten) als das berechnete Faktorisierungsverhältnis verwendet (Schritt 164).
-
Wenn der Prozentsatz der verwendeten Kapazität nicht kleiner als oder gleich wie der niedrige Kapazitätsschwellenwert oder größer als oder gleich wie der hohe Kapazitätsschwellenwert ist, wird eine aktuelle Verhältnisgewichtung für das aktuelle Faktorisierungsverhältnis berechnet. Bei einer Ausführungsform kann diese aktuelle Verhältnisgewichtung als der Prozentsatz der verwendeten Kapazität abzüglich des niedrigen Kapazitätsschwellenwerts, geteilt durch (1 – niedriger Kapazitätsschwellenwert), definiert werden. Diese aktuelle Verhältnisgewichtung wird anschließend verwendet, um das in Schritt 168 berechnete Faktorisierungsverhältnis zu berechnen, das bei einer Ausführungsform definiert ist als Fberechnet = (Cprozentsatz·WVerhältnis) + ((Fkonfiguriert·(1-WVerhältnis), wobei Fberechnet das berechnete Faktorisierungsverhältnis, CProzentsatz der Prozentsatz der verwendeten Kapazität, WVerhältnis die aktuelle Verhältnisgewichtung und Fkonfiguriert ein konfiguriertes Faktorisierungsverhältnis ist, das als das vom Benutzer konfigurierte Systemattribut für das erwartete Verhältnis von nominalen Daten zu physischen Daten definiert ist. Das Verfahren 150 endet damit (Schritt 170).
-
Mit Bezug nunmehr auf 6 beginnt das Verfahren 180 (Schritt 182) damit, dass der Benutzer versucht, den vom Benutzer konfigurierten Reservierungsspeicherplatz für Sicherungsoperationen zu ändern (z. B. 20 TB physischer Speicherplatz) (Schritt 184). Wenn das System feststellt, dass genügend Speicherplatz zur Verfügung steht (Schritt 186), wird die Änderung erfolgreich durchgeführt (Schritt 188). Wenn dies jedoch nicht der Fall ist, sondern der Benutzer weniger Speicherplatz anfordert, und das System bereits mehr Platz für die Sicherung als der angeforderte Reservierungsspeicherplatz verwendet hat (Schritt 190), wird die Änderung erfolgreich durchgeführt, der für die Sicherung reservierte Speicherplatz ist allerdings bereits aufgebraucht (Schritt 192). Wenn alternativ zu den Schritten 186 und 190 kein Speicherplatz zur Verfügung steht, wird die Änderung nicht durchgeführt und der Benutzer erhält eine oder mehrere Benachrichtigungen (Schritt 194). Der Benutzer überwacht anschließend die vorgenommene Konfiguration (Schritt 196). Das Verfahren 180 endet damit (Schritt 198).
-
6 stellt in der Folge ein Beispiel eines Teils der in 1 dargestellten Computerumgebung 10 bereit, bei der die Mechanismen der vorstehenden Ausführungsformen umgesetzt werden können. Es sei jedoch darauf hingewiesen, dass 6 nur ein Beispiel ist und keine Beschränkung der bestimmten Architekturen darstellen oder nahelegen soll, bei denen die beispielhaften Aspekte der verschiedenen Ausführungsformen umgesetzt werden können. Viele Änderungen der in 6 dargestellten Architektur können vorgenommen werden, ohne vom Geltungsbereich und Gedanken der folgenden Beschreibung und des beanspruchten Gegenstands abzuweichen.
-
6 veranschaulicht einen Teil 200 einer beispielhaften Computerumgebung, die verwendet werden kann, um Ausführungsformen der vorliegenden Erfindung umzusetzen. Ein Computer 202 umfasst einen Prozessor 204 und einen Speicher 206, beispielsweise einen Schreib-Lese-Speicher (RAM). Bei einer Ausführungsform kann der Speichersystem-Server 12 (1) Komponenten umfassen, die denen im Computer 202 gezeigten ähneln. Der Computer 202 ist funktionsmäßig mit einer Anzeige 219 verbunden, die dem Benutzer Bilder, beispielsweise Fenster, auf einer grafischen Benutzerschnittstelle 218 anzeigt. Der Computer 202 kann mit anderen Einheiten verbunden sein, beispielsweise einer Tastatur 216, einer Mauseinheit 220, einem Drucker 228 usw. Fachleuten ist selbstverständlich klar, dass eine beliebige Kombination der oben genannten Komponenten oder eine beliebige Anzahl unterschiedlicher Komponenten, Peripheriegeräte und anderer Einheiten in Verbindung mit dem Computer 202 verwendet werden kann. Der Computer 202 arbeitet allgemein unter der Kontrolle eines Betriebssystems 208 (z. B. z/OS, OS/2, LINUX, UNIX, WINDOWS, MAC OS), das im Speicher 206 gespeichert ist, und bildet eine Benutzerschnittstelle, um Eingaben und Befehle anzunehmen sowie Ergebnisse vorzulegen, beispielsweise durch ein grafisches Benutzerschnittstellenmodul 232. Bei einer Ausführungsform der vorliegenden Erfindung ermöglicht das Betriebssystem 208 die Sicherungsmechanismen. Obgleich das grafische Benutzerschnittstellenmodul 232 als ein getrenntes Modul dargestellt ist, können die Befehle, die die Funktionen der grafischen Benutzerstelle ausführen, speicherresident sein oder im Betriebssystem 208 und dem Anwendungsprogramm 210 verteilt sein oder mit einem Spezialspeicher und Prozessoren umgesetzt werden. Das Betriebssystem 208 umfasst ein Replikationsmodul 240, das zum Ausführen verschiedener Prozesse und Mechanismen (beispielsweise wie die zuvor genannte Reservierung von physischem Speicherplatz für Sicherungsoperationen) in den zuvor beschriebenen beispielhaften Ausführungsformen geeignet sein kann. Das Replikationsmodul 240 kann in Hardware, Firmware oder einer Kombination aus Hardware und Firmware umgesetzt werden. Bei einer Ausführungsform kann das Replikationsmodul 240 als eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit, ASIC) ausgeführt werden. Für den Fachmann ist ersichtlich, dass die Funktionalität in Verbindung mit dem Replikationsmodul 240 zusammen mit der Funktionalität in Verbindung mit dem Prozessor 204, dem Speicher 206 und anderen Komponenten des Computers 202 in einer speziellen ASIC, die als System-on-Chip (SoC) bekannt ist, ausgeführt werden kann. Die Funktionalität in Verbindung mit dem Replikationsmodul (oder wiederum mit anderen Komponenten des Computers 202) kann als eine im Feld programmierbare Gatteranordnung (field programmable gate array, FPGA) umgesetzt werden.
-
Wie in 6 dargestellt, umfasst der Computer 202 einen Compiler 212, der es ermöglicht, dass ein in einer Programmiersprache wie beispielsweise COBOL, PL/1, C, C++, JAVA, ADA, BASIC, VISUAL BASIC oder einer anderen Programmiersprache geschriebenes Anwendungsprogramm 210 in Code übersetzt wird, der vom Prozessor 204 gelesen werden kann. Im Anschluss daran greift das Computerprogramm 210 auf die im Speicher 206 des Computers 202 gespeicherten Daten zu und manipuliert diese unter Verwendung der Beziehungen und der Logik, die bei der Verwendung des Compilers 212 erzeugt wurden. Der Computer 202 umfasst optional ebenfalls eine externe Datenübertragungseinheit 230 wie beispielsweise ein Modem, eine Satellitenverbindung, eine Ethernet-Karte, eine drahtlose Verbindung oder eine andere Einheit für die Datenübertragung mit anderen Computern, z. B. über das Internet oder ein anderes Netzwerk.
-
Die Datenspeichereinheit 222 ist eine Direktzugriffsspeichereinheit (direct access storage device, DASD) 222, die einen oder mehrere Primärdatenträger mit einer Reihe von Datensätzen umfasst. Die DASD 222 kann eine Reihe von Speichermedien umfassen, wie beispielsweise Festplattenlaufwerke, Bänder und ähnliches. Die Datenspeichereinheit 236 kann ebenfalls eine Reihe von ähnlichen Speichermedien wie die Einheit 222 umfassen. Die Einheit 236 kann als eine Sicherungseinheit 236 zum Speichern von Sicherungsversionen der Reihe von Datensätzen bestimmt werden, die primär in der Einheit 222 gespeichert sind. Für einen Fachmann ist ersichtlich, dass sich die Einheiten 222 und 236 nicht in derselben Maschine befinden müssen. Die Einheiten 222 können sich in unterschiedlichen geografischen Regionen befinden und über eine Netzwerkverbindung wie beispielsweise Ethernet verbunden sein. Die Einheiten 222 und 236 können einen oder mehrere Datenträger mit entsprechenden Datenträgerinhaltsverzeichnissen (volume table of contents, VTOC) für jeden Datenträger umfassen.
-
Bei einer Ausführungsform sind die Befehle, die das Betriebssystem 208, das Computerprogramm 210 und der Compiler 212 umsetzen, physisch in einem computerlesbaren Medium enthalten, z. B. der Datenspeichereinheit 220, die eine oder mehrere feste oder entfernbare Datenspeichereinheiten 224 umfassen kann, beispielsweise ein ZIP-Laufwerk, eine Diskette, ein Festplattenlaufwerk, eine DVD/CD-ROM, ein digitales Band, eine Flash-Speicherkarte, ein Festkörperlaufwerk usw., die allgemein als die Speichereinheit 224 dargestellt werden. Das Betriebssystem 208 und das Computerprogramm 210 umfassen des Weiteren Befehle, die, wenn sie vom Computer 202 gelesen und ausgeführt werden, den Computer 202 veranlassen, die notwendigen Schritte durchzuführen, um die vorliegende Erfindung umzusetzen und/oder zu verwenden. Das Computerprogramm 210 kann zum Beispiel Befehle zum Umsetzen des oben beschriebenen Grid-Set-Managers, Grid-Managers und Repository-Managers enthalten. Die Befehle des Computerprogramms 210 und/oder des Betriebssystems 208 können ebenfalls physisch im Speicher 206 enthalten sein und/oder über die Datenübertragungseinheit 230 übertragen werden oder die Einheit kann auf die Befehle zugreifen. Die Begriffe ”Herstellungsartikel”, ”Programmspeichereinheit” und ”Computerprogrammprodukt”, wie sie hier als solche verwendet werden können, sollen ein Computerprogramm beinhalten, auf das von einer beliebigen computerlesbaren Einheit oder einem solchen Medium zugegriffen werden kann und/oder das von einer solchen Einheit oder einem solchen Medium betrieben werden kann.
-
Ausführungsformen der vorliegenden Erfindung können ein oder mehrere dazugehörige Anwendungsprogramme 210 umfassen, die zum Beispiel Funktionen zum Verwalten eines verteilten Computersystems enthalten, das ein Netzwerk von Datenverarbeitungseinheiten, beispielsweise ein Speicherbereichsnetz (SAN), umfasst. Der Prozessor 204 kann daher einen Speicherverwaltungsprozessor umfassen. Das Programm 210 kann mit einem einzelnen Computer 202 oder als Teil eines verteilten Computersystems betrieben werden, das ein Netzwerk von Datenverarbeitungseinheiten umfasst. Das Netzwerk kann einen oder mehrere Computer umfassen, die über ein lokales Netzwerk und/oder eine Internet-Verbindung (die öffentlich oder sicher sein kann, z. B. über eine virtuelle private Netzwerkverbindung) oder über ein Fibre-Channel-SAN oder andere bekannte Netzwerkarten verbunden sein können, wie für den Fachmann ersichtlich ist. (Ein Fibre-Channel-SAN wird typischerweise nur für Computer verwendet, um Daten mit Speichersystemen und nicht untereinander auszutauschen.)
-
Für den Fachmann ist ersichtlich, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Aspekte der vorliegenden Erfindung können daher die Form einer kompletten Hardware-Ausführung, einer kompletten Software-Ausführung (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform haben, bei der Hardware- und Software-Aspekte kombiniert sind, die allgemein hier als ”Schaltung”, ”Modul” oder ”System” bezeichnet werden können. Aspekte der vorliegenden Erfindung können des Weiteren die Form eines Computerprogrammprodukts haben, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, die über einen darin enthaltenen computerlesbaren Programmcode verfügen.
-
Eine beliebige Kombination von einem computerlesbaren Medium oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel unter anderem um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder eine geeignete Kombination davon handeln. Zu genaueren Beispielen (einer nicht vollständigen Liste) für das computerlesbare Speichermedium gehören wie folgt: eine elektrische Verbindung mit einer oder mehreren Leitungen, ein tragbarer Computer-Diskettenspeicher, eine Festplatte, ein Schreib-Lese-Speicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Kompaktdisketten-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann ein computerlesbares Speichermedium ein physisches Medium sein, das ein Programm enthalten oder speichern kann, welches von oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen verwendet wird.
-
In einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines geeigneten Mediums übermittelt werden, das unter anderem drahtlos, drahtgebunden, ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination davon sein kann. Der Computerprogrammcode zum Ausführen der Operationen in Verbindung mit Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben werden, zu denen eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie beispielsweise die ”C”-Programmiersprache oder ähnliche Programmiersprachen gehören. Der Programmcode kann ganz 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 entfernten Computer oder ganz auf dem entfernten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernte Computer über ein beliebiges Netz mit dem Computer des Benutzers verbunden sein, zum Beispiel über ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder es kann die Verbindung zu einem externen Computer hergestellt werden (beispielsweise über das Internet durch einen Internetdienstanbieter).
-
Aspekte der vorliegenden Erfindung werden unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalrechners, Spezialrechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Maßnahmen umzusetzen.
-
Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten steuern kann, um auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsartikel einschließlich der Befehle erzeugen, die die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegte Funktion/Maßnahme umsetzen. Die Computerprogrammbefehle können ferner in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Betriebsschritten auszulösen, die auf dem Computer, in der anderen programmierbaren Vorrichtung oder den anderen Einheiten durchgeführt werden, um einen computerimplementierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse bereitstellen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Maßnahmen umzusetzen.
-
Der Ablaufplan und die Blockschaubilder in den Figuren oben zeigen die Architektur, Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, Segment oder einen Teil eines Codes darstellen, das/der einen oder mehrere ausführbare Befehle zur Umsetzung der festgelegten Logikfunktion(en) umfasst. Es ist ferner darauf hinzuweisen, dass die im Block angegebenen Funktionen bei einigen alternativen Ausführungen in einer anderen Reihenfolge als in den Figuren dargestellt ablaufen können. Zwei aufeinanderfolgend dargestellte Blöcke können zum Beispiel tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach entsprechender Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Des Weiteren ist darauf hinzuweisen, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellung sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, die die angegebenen Funktionen oder Maßnahmen bzw. Kombinationen von speziellen Hardware- und Computerbefehlen durchführen.
-
Eine oder mehrere Ausführungsformen der vorliegenden Erfindung wurden zwar ausführlich veranschaulicht, dem Fachmann ist jedoch ersichtlich, dass Änderungen und Anpassungen an diesen Ausführungsformen vorgenommen werden können, die innerhalb des Umfangs der vorliegenden Erfindung liegen, wie sie in den beigefügten Ansprüchen festgelegt ist.