-
GEBIET DER ERFINDUNG
-
Ausführungsformen der vorliegenden Erfindung beziehen sich auf Systeme, Vorrichtungen und Verfahren zum Replizieren von Daten in die Cloud und zum Wiederherstellen von Daten. Insbesondere beziehen sich Ausführungsformen der Erfindung auf Systeme und Verfahren, um eine beliebige Zeitpunktreplikation an eine Speicherstelle wie die Cloud oder ein Datenzentrum durchzuführen. Ausführungsformen der Erfindung beziehen sich ferner auf die kontinuierliche Replikation, ohne ein Replikatsvolumen in der Cloud halten zu müssen.
-
HINTERGRUND
-
Datenschutz ist der Prozess, mit welchem eine Einheit ihre Daten schützt. Daten werden oftmals z.B. durch Erzeugung von Backups geschützt. Indem eine Backup-Operation zur Erzeugung eines Backups durchgeführt wird, kann die Einheit ihre Produktionsdaten von einer Backup-Kopie im Fall von Verlust wiederherstellen.
-
Datenschutzsysteme sind oftmals mit einer Recovery Point Objective (RPO) geschützt. Die RPO kann auf viele Weisen ausgedrückt werden, bezieht sich im Allgemeinen aber auf den Zeitpunkt, zu welchem die Daten wiederhergestellt werden können. So bedeutet z.B. eine RPO von einer Stunde, dass, wenn etwas mit den Produktionsdaten passiert, die Einheit wahrscheinlich Daten im Wert von einer Stunde verloren hat.
-
Anstelle davon, für Daten ein lokales Backup zu machen, kann es sein, dass sich manche Einheiten dafür entscheiden, ihre Daten in die Cloud zu replizieren. Dies wird oftmals unter Verwendung von Verfahren auf der Grundlage von Snapshots durchgeführt. Die RPO von auf Snapshot basierenden Systemen ist aber oftmals nicht zufriedenstellend. Genauer gesagt ist die RPO in Snap-basierten Anwendungen begrenzt. Wiederherstellungen können oftmals nur am jüngsten Snapshot durchgeführt werden, was einige wenige Minuten oder Stunden in der Vergangenheit sein kann.
-
Zusätzlich dazu erfordert das herkömmliche Spiegeln, wie es bei der Stufe 1-Replikation erfolgt, Computerressourcen an der entfernten Stelle, um die Daten zu verarbeiten und das Replikat oder das gespiegelte Volumen zu halten.
-
Figurenliste
-
Um die Art und Weise zu beschrieben, in welcher zumindest einige Aspekte dieser Offenbarung erhalten werden können, wird eine genauere Beschreibung durch den Verweis auf spezifische Ausführungsformen davon gegeben, die in den angehängten Zeichnungen veranschaulicht sind. Unter Berücksichtigung, dass diese Zeichnungen nur beispielhafte Ausführungsformen der Erfindung darstellen und deshalb nicht als deren Umfang einschränkend zu interpretieren sind, werden Ausführungsformen der Erfindung mit zusätzlicher Spezifität und Detail durch die Verwendung der begleitenden Zeichnungen beschrieben und erklärt, in welchen:
- 1 ein Beispiel für Systeme, Vorrichtungen und Verfahren zum Replizieren von Daten in der Cloud veranschaulicht;
- 2 ein Beispiel für Systeme, Vorrichtungen und Verfahren zum Replizieren von Daten in der Cloud durch Speichern von Objekten in einem Datensammler und durch Halten eines Metadatenstroms für die Objekte veranschaulicht;
- 3 ein Beispiel für eine Beziehung zwischen einem Metadatenstrom und einem Produktionsvolumen und/oder den in der Cloud gespeicherten Objekten veranschaulicht;
- 4 ein Beispiel für ein Verfahren zum Replizieren von Produktionsdaten veranschaulicht;
- 5 ein Beispiel für Systeme, Vorrichtungen und Verfahren zum Rehydrieren von Daten aus einem Datensammler an ein Replikatproduktionsvolumen veranschaulicht;
- 6 ein Beispiel für ein Verfahren zum Rehydrieren eines Produktionsvolumens unter Verwendung des Metadatenstroms und des Datensammlers veranschaulicht; und
- 7 ein Beispiel für das Konsolidieren von Daten in einem Replikationssystem veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG EINIGER BEISPIELHAFTER AUSFÜHRUNGSFORMEN
-
Ausführungsformen der Erfindung beziehen sich auf Systeme, Vorrichtungen und Verfahren zum Schützen von Daten. Genauer gesagt beziehen sich die Ausführungsformen der Erfindung auf Datenschutzoperationen, die wie folgt umfassen können, aber nicht darauf beschränkt sind: Backup-Operationen, Replikationsoperationen, Wiederherstellungsoperationen, Rehydrationsoperationen, Deduplikationsoperationen, Metadatenoperationen oder dergleichen oder eine Kombination davon.
-
Ausführungsformen der Erfindung beziehen sich auf Datenschutzsysteme, Vorrichtungen und Verfahren, die ermöglichen, dass Daten in der Cloud (z.B. in einem Datenzentrum) geschützt werden, während eine RPO von Sekunden und mit einer beliebigen Zeitpunktgranularität erzielt wird. Ausführungsformen der Erfindung können auch im Kontext von lokalen Backups angewendet werden. Um eine beliebige Zeitpunktgranularität und eine RPO von Sekunden oder weniger zu erzielen, replizieren Ausführungsformen der Erfindung Produktionsdaten in einen Objektspeicher (die Cloud) und generieren einen Metadatenstrom. Der Metadatenstrom speichert Beziehungen zwischen den replizierten Daten und dem Produktionsvolumen.
-
Indem der Metadatenstrom auf die Cloud-Daten angewendet wird, können die Produktionsdaten zu jedem beliebigen Zeitpunkt wiederhergestellt werden. In einem Beispiel ermöglichen durch eine kontinuierliche Replikation der Daten und durch Bereitstellung des Metadatenstroms Ausführungsformen der Erfindung (für ein kontinuierliches Replikationssystem), dass die Cloud-Daten in einem anderen Speicher als dem Stufe 1-Speicher gespeichert werden. Ferner können in einer Ausführungsform Computerressourcen nur erforderlich sein, wenn eine Wiederherstellung benötigt wird. Anders gesagt, es kann nur notwendig sein, Daten in die Cloud zu schreiben, wenn die Daten in einer kontinuierlichen Weise geschützt werden. Die Speicheranforderungen können auch reduziert werden, indem Deduplizierungsoperationen durchgeführt werden.
-
In Ausführungsformen der Erfindung umfasst die kontinuierliche Replikation das Spiegeln oder Replizieren jeder EA (Eingabe/Ausgabe) auf Produktionsdaten (einem Produktionsvolumen) an eine entfernte Stelle. Die replizierten oder gespiegelten Daten können als Objekte in einem Datensammler gespeichert werden. Das Replizieren von Daten an eine entfernte Stelle kann eine RPO von nahe null erzielen.
-
Der Nachteil des herkömmlichen Spiegelns ist, dass oftmals Stufe 1-Speicherung erforderlich ist. Zusätzlich dazu ist Berechnungszeit an der entfernten Stelle erforderlich, um die Daten zu verarbeiten und das Replikatsvolumen zu halten. Ausführungsformen der Erfindung können Daten replizieren, kontinuierlich in einem Beispiel, und eine RPO nahe null erreichen, ohne ein Replikatsvolumen halten zu müssen. Vielmehr kann eine Berechnungszeit nur während der Wiederherstellungs- oder Rehydrationsoperation erforderlich sein.
-
Daten können in einem Datenzentrum auf verschiedene Weise gespeichert werden, einschließlich dabei Objektspeicherung, Datei speicherung und Blockspeicherung. Hierin wird der Begriff Daten oder Objekt verwendet, und die Offenbarung kann auch mit Dateien oder Blöcken oder einer anderen Datenspeicherkonfiguration durchgeführt werden. Im Kontext der objektbasierten Speicherung kann jedes Objekt beispielsweise Daten, eine variable Menge an Metadaten und/oder einen global eindeutigen Identifikator beinhalten.
-
Ausführungsformen der Erfindung stellen eine kontinuierliche Replikation von Produktionsdaten an einer entfernten Stelle wie einem Datenzentrum oder einem Cloud-Speicher (der hierin auch als ein Datensammler bezeichnet wird, in welchem Daten abgelegt werden) bereit.
-
Kontinuierliche Replikation unter Verwendung eines Metadatenstroms
-
1 veranschaulicht ein Beispiel für eine Computing-Umgebung, in welcher Datenschutzoperationen durchgeführt werden. 1 veranschaulicht einen Client 102, der mit Produktionsdaten 106 assoziiert ist (z.B. ein Produktionsvolumen). Der Client 102 kann eine virtuelle Maschine, eine Rechenvorrichtung wie ein Computer, Laptop, Smartphone, Servercomputer oder dergleichen sein. Die Produktionsdaten 106 können auf einer Speichervorrichtung (einer Speicherbaugruppe oder einer anderen Speicheranordnung) vorliegen. Die Produktionsdaten 106 können für den Client 102 lokal (z.B. in demselben Netzwerk) oder vom Client 102 entfernt sein. Die Produktionsdaten 106 können auch ein cloudbasierter Speicher sein.
-
Der Client 102 interagiert mit den Produktionsdaten 106 und kann Daten schreiben oder Daten lesen oder eine andere Aktion durchführen. Eingabe/Ausgabe (EA) im Kontext von Datenschutz oder Datenreplikation, können sich EAs auf Aktionen oder Befehle beziehen, die in Änderungen an den Produktionsdaten 106 resultieren. Wann immer Daten in die Produktionsdaten 106 geschrieben (gelöscht, bewegt, modifiziert, kopiert etc.) werden, repliziert die Replikations-Engine 104 die Daten. Insbesondere kann die Replikations-Engine 104 die Aktion replizieren. Die Replikations-Engine 104 kann in die Produktionsdaten 106 aufgenommen sein, sie kann ein Server oder eine andere Vorrichtung sein, oder eine Software-Schicht, die dazu ausgelegt ist, gewisse Befehle zu detektieren, einschließlich Schreibvorgänge, und die Daten dementsprechend zu replizieren.
-
In diesem Beispiel repliziert oder schreibt somit die Replikations-Engine 104 die Daten an den entfernten Speicher 108, der ein Datenzentrum, ein Cloud-Speicher oder dergleichen sein kann. Die Replikations-Engine kann auch einen Metadatenstrom generieren und den Metadatenstrom an einen entfernten Metadatenstromspeicher 110 schreiben. Der Datenstromspeicher 110 kann sich an derselben Stelle (z.B. in demselben Speichersystem, in demselben Datenzentrum) wie der entfernte Speicher 108 befinden. Der Datenstromspeicher 110 und der entfernte Speicher 108 können auch separate Speicher sein.
-
2 veranschaulicht ferner die in 1 gezeigte Replikation. In einem Beispiel kann die Replikations-Engine 202 (ein Beispiel für die Replikations-Engine) eine EA 210 detektieren, die an das Produktionsvolumen 208 geschrieben wird, welches die Produktionsdaten 106 speichern kann. Die Replikations-Engine 202 kann bestimmen, dass die EA 210 Daten A beinhaltet und an eine Stelle geschrieben wird, die als Versatz X identifiziert ist. Der Versatz X ist der Platzhalter der Stelle der Daten A im Produktionsvolumen 208 oder in den Produktionsdaten 106. Der Versatz X kann in anderer Hinsicht spezifiziert werden, die von der Konfiguration des Produktionsvolumens 208 abhängen kann.
-
Die Replikations-Engine repliziert dann die EA 210 an den Datensammler 204, der ein Beispiel für den entfernten Speicher 108 ist. In einem Beispiel ist der Datensammler 204 ein Speicher vom Schlüsselwerttyp. Somit kann die Replikations-Engine 202 den Datensammler 204 mit Daten A und einem Schlüssel wie dem Identifikator 10 versorgen, und die EA 210 wird in dem Datensammler 204 gespeichert. Um die Daten A abzurufen, wird der Datensammler mit dem Identifikator 10 versehen. Unter Verwendung des Identifikators 10 kann der Datensammler 204 die Daten A abrufen und wieder retoumieren.
-
Während der Replikation der EA 210 oder der Daten A an den Datensammler 204, kann die Replikations-Engine 202 auch einen Metadatenstrom 206 (oder einen Eintrag im Strom für jede EA) generieren, der, wenn er übertragen wird, im Datenstromspeicher 110 gespeichert wird. Der Metadatenstrom 206 beinhaltet typischerweise mit jeder EA wie der EA 210 assoziierte Metadaten. In diesem Beispiel beinhaltet der Eintrag 212 im Metadatenstrom 206 für die EA 210 den Versatz X und den Identifikator 10. Der im Metadatenstrom 206 beinhaltete Versatz X bezieht sich auf den Versatz im Produktionsvolumen 208. Diese Information ermöglicht, dass das Produktionsvolumen, falls erforderlich, wiederhergestellt werden kann, wie dies nachfolgend ausführlicher beschrieben ist.
-
Zusätzlich dazu ermöglicht das Replizieren der EAs des Rechensystems auf diese Weise, dass eine RPO nahe null erzielt werden kann, ohne dass ein Replikatsvolumen in der Cloud gehalten werden muss, wodurch Computerressourcen gespart werden. Auch ermöglichen Ausführungsformen der Erfindung eine Zeitpunktwiederherstellung. In einem Beispiel ist die Zeitpunktwiederherstellung typischerweise mit einer bestimmten EA verbunden, zum Teil weil der Metadatenstrom 206 mit den EAs zusammenhängt, die am Produktionsvolumen 208 auftreten. Durch die Identifizierung einer Zeit oder einer EA ermöglichen Ausführungsformen der Erfindung, dass das Produktionsvolumen bis zu diesem Zeitpunkt oder bis zu dieser spezifischen EA wiederhergestellt wird.
-
In einem Beispiel sind die mit jeder EA assoziierten Daten auf dem Produktionsvolumen 208 als ein Objekt im Datensammler 204 gespeichert. So kann die EA 210 z.B. in 8 KB-Chunks unterteilt sein. Ausführungsformen der Erfindung sehen variabel dimensionierte Blöcke vor. Objekte mit fester Größe bedingen aber weniger Verarbeitungsaufwand, einschließlich einer inhärenten Handhabung der EA-Überlappung. Die tatsächliche Größe des Chunk oder Objekts ist typischerweise eine kleine Zahl (z.B. 4 KB, 8 KB). Selbst wenn ein größeres Objekt weniger Uploads benötigt, kann ein Objekt mit einer größeren Größe auch die Vervollständigung des Objekts oder Blocks erfordern, wenn nur ein Abschnitt des Objekts oder Blocks geschrieben wurde. Auch erhöht das Tracking der Bereiche, die in Blöcke oder Objekte mit größerer Größe geschrieben werden, die Komplexität.
-
Somit veranschaulicht 2, dass während der Replikation, einschließlich der kontinuierlichen Replikation, die Daten A als ein Objekt A gespeichert werden können. Insbesondere können die Daten A tatsächlich in Chunks A1, A2 etc. unterteilt werden. Somit werden die Objekte A1, A2 etc. im Datensammler 204 gespeichert, und jeder Chuck besitzt seinen eigenen Identifikator. Der Metadatenstrom 206 speichert Beziehungen zwischen den Identifikatoren (die ermöglichen, dass die entsprechenden Objekte im Datensammler 204 identifiziert und abgerufen werden können) und dem Versatz im Produktionsvolumen. Während einer Wiederherstellung ermöglichen Versätze und Identifikatoren im Metadatenstrom, dass die Objekte abgerufen und in den passenden Versatz im Produktionsvolumen geschrieben werden können, wodurch das Produktionsvolumen wiederhergestellt wird.
-
Weil die Daten vor dem Speichern im Speichersammler in Chunks unterteilt werden, stellt die Fähigkeit, die Objekte basierend auf Versätzen wiederherzustellen, effektiv die Daten wieder her, sobald alle Chunks wiederhergestellt worden sind.
-
3 veranschaulicht genauer ein Beispiel für eine Beziehung zwischen einem Metadatenstrom und einem Produktionsvolumen. 3 veranschaulicht einen Metadatenstrom 304, der mit einem Produktionsvolumen 302 assoziiert ist. Der Metadatenstrom 304 ist in einem Beispiel eine Sequenz von EA-Metadaten oder eine Sequenz von Einträgen, wobei jeder Eintrag einer EA entspricht. Die Einträge in dem Metadatenstrom 304 hängen mit Daten zusammen, die im Produktionsvolumen 302 gespeichert sind. Jeder Eintrag speichert einen Versatz im Produktionsvolumen und einen Identifikator. Die Einträge im Metadatenstrom beziehen sich auf die Daten, nachdem die Daten in Chunks unterteilt wurden. Somit entsprechen der Versatz 0 und der Identifikator 10 den Daten A (oder dem Objekt A) im Produktionsvolumen 302. Somit befinden sich die Daten A in einem Versatz von 0 im Produktionsvolumen 302. Ebenso befinden sich die Objekte B, C, D, E und F jeweils an Versätzen 1, 2, 3, 4 und 5 und weisen Identifikatoren 20, 30, 40, 50 und 60 auf. Die Identifikatoren können jegliche Daten sein, die die entsprechenden Daten darstellen. Typischerweise identifiziert der Identifikator die Daten eindeutig. So kann der Identifikator z.B. ein Hash der entsprechenden Daten (Objekt, Block etc.) sein. Der Identifikator kann auch dazu verwendet werden, die Daten zu deduplizieren.
-
4 veranschaulicht ein Beispiel für ein Verfahren zum Durchführen einer Datenschutzanwendung wie einer Datenreplikation. In einem Beispiel kann das Verfahren durch eine Replikationsvorrichtung oder einen anderen Server oder eine andere Vorrichtung durchgeführt werden. In der 4 wird ein EA-Strom erfasst 402. Der EA-Strom wird kontinuierlich erfasst und ist ein Beispiel für eine kontinuierliche Replikation. Wenn z.B. Daten zum Produktionsvolumen geschrieben werden, wird die EA erfasst.
-
Als Nächstes werden die EAs repliziert 404. Eine Replikationsvorrichtung oder eine Replikations-Engine kann die mit den EAs assoziierten Daten in Chunks unterteilen. Wie zuvor angeführt wurde, können diese Chunks eine vorbestimmte Größe aufweisen. In einem Beispiel werden die EAs in 8 KB-Chunks unterteilt. Die Replikationsvorrichtung lädt daraufhin die Chunks in den Datensammler als Objekte hinauf. Die Objekte werden dann in dem Datensammler gespeichert. In einem Beispiel werden die Objekte in dem Datensammler unter Verwendung einer Schlüsselwertanordnung gespeichert.
-
Als Nächstes (oder im Wesentlichen gleichzeitig) werden die mit den Objekten oder EAs assoziierten Metadaten aggregiert 406 und in einem Metadatenstrom gespeichert. Somit ist der Metadatenstrom in einem Beispiel eine sequenzielle Liste von EAs, die in Bezug auf das Produktionsvolumen erfasst wurden. In einem Beispiel wird der Metadatenstrom zum Metadatenspeicher basierend auf der Größe des Metadatenstroms, basierend auf der erwünschten RPO und/oder basierend auf einem anderen Schwellenwert übertragen. Wenn z.B. die Größe des Metadatenstroms eine Schwellenwertgröße erreicht (z.B. 8 KB), wird der Metadatenstrom übertragen und im Metadatenspeicher gespeichert. Somit kann der Metadatenstrom auch als ein Objekt gespeichert werden. Alternativ wird der Metadatenstrom übertragen, sobald ein Viertel (oder ein anderer Schwellenwert) der RPO verstrichen ist.
-
4 veranschaulicht die Fähigkeit, ein Produktionsvolumen durch Replikation der Daten (oder Objekte) in einen Datensammler und durch Generierung und Speicherung eines Metadatenstroms, der mit den in den Datensammler geschriebenen Objekten assoziiert ist, kontinuierlich zu replizieren. Dies ermöglicht ferner eine kontinuierliche Replikation, ohne Cloud-Computing-Ressourcen halten oder verbrauchen zu müssen, um ein Replikatsvolumen in der Cloud zu halten. Vielmehr können die Cloud-Computing-Ressourcen nur erforderlich sein, wenn das Produktionsvolumen aus den Backups (die Objekte, die im Datensammler gespeichert sind, und der Metadatenstrom) wiederhergestellt oder rehydriert werden muss.
-
Produktion von Datenrehydration
-
Ein Produktionsvolumen (oder Produktionsdaten) kann (können) unter Verwendung der im entfernten Speicher (oder Datensammler) gespeicherten Objekte und des im Datenstromspeicher gespeicherten Metadatenstroms rehydriert werden. Im Allgemeinen wird ein Produktionsvolumen rehydriert oder wiederhergestellt, indem ein Rohmetadatenvolumen erzeugt wird. Sobald das Metadatenvolumen erzeugt ist, wird der Metadatendatenstrom dazu verwendet, das Metadatenvolumen zum erforderlichen Zeitpunkt zu rollen, indem die Identifikatoren zu Versätzen im Metadatenvolumen geschrieben werden. Dies wird dadurch erreicht, indem vom Ende des Metadatenstroms nach vorne bewegt wird und indem das Metadatenvolumen entsprechend jedem Schreibvorgang, auf den getroffen wird, aktualisiert wird.
-
Jeder Eintrag im Metadatenvolumen zeigt auf eine EA in den gespeicherten Daten hin. Somit beinhaltet das Metadatenvolumen Einträge, die in einem Beispiel jeweils zu einem Objekt im Objektspeicher zeigen. In einem Beispiel wird nur die erste Instanz jeder EA, auf die man trifft, im Metadatenvolumen aktualisiert. Genauer gesagt wird das Metadatenvolumen mit jeder EA, auf die getroffen wird, wie dies zuvor ausgeführt wurde, aktualisiert. Dies erlaubt, die tatsächlichen EA-Daten in das zu vermeidende wiederhergestellte Volumen zu kopieren, wenn dieser spezifische Versatz überschrieben wird, bevor der erforderliche Zeitpunkt erreicht ist. In einem Beispiel wird als ein Resultat davon, dass man den Metadatenstrom vom erforderlichen Zeitpunkt zum Ende hin betrachtet, nur eine EA für jeden Versatz kopiert.
-
Sobald der passende Zeitpunkt im Metadatenstrom erreicht wurde und alle notwendigen Einträge im Metadatenstrom in das Metadatenvolumen geschrieben wurden, wird das Metadatenvolumen organisiert. Die tatsächlichen Daten wurden an diesem Punkt weder bewegt noch kopiert. Ausführungsformen der Erfindung sehen aber das Kopieren von Daten während der Organisation des Metadatenvolumens vor.
-
Sobald das Metadatenvolumen vorbereitet wurde, können das Metadatenvolumen und der Datensammler verwendet werden, um das Produktionsvolumen zu rehydrieren. Das rehydrierte Produktionsvolumen ist eine Kopie des ursprünglichen Produktionsvolumens (z.B. eine virtuelle Maschinen-Disk) zum angeforderten Zeitpunkt. In einem Beispiel ist nur das tatsächliche Generieren des Replikat-Produktionsvolumens erforderlich, wenn das resultierende Replikatsvolumen wie ein reguläres Volumen beurteilt wird. Ist ein Mediator vorhanden, können das Metadatenvolumen und der Datensammler nach Bedarf verwendet werden, ohne dass der Benutzer erneut die Daten kopieren muss. In einem Beispiel ermöglicht oder verhindert das Metadatenvolumen nicht notwendige Lesevorgänge in Bezug auf die Daten, die wie zuvor beschrieben überschrieben werden.
-
5 veranschaulicht ein Beispiel für das Rehydrieren eines Produktionsvolumens. 5 veranschaulicht den Prozess des Rehydrierens eines Produktionsvolumens 506 aus dem Metadatenstrom 502 und dem Datensammler 510, die Beispiele für zuvor beschriebene Metadatenströme und Datensammler sind.
-
In 5 wird das Metadatenvolumen 504 in einem Beispiel erst aus einem Rohmetadatenvolumen generiert. In diesem Beispiel wird das hintere Ende 512 des Metadatenstroms 502 gelesen. Das hintere Ende 512 entspricht einem Eintrag im Metadatenstrom 502. In einem Beispiel ist der Eintrag am hinteren Ende der älteste Eintrag im Metadatenstrom 502. In diesem Beispiel werden neue Einträge zum Kopf des Metadatenstroms gedrückt. Der Metadatenstrom kann aber auch in einer anderen Weise angeordnet sein, so dass der älteste Eintrag sich am Kopf des Metadatenstroms befindet. Indem der Metadatenstrom 502 ausgehend von dem ältesten Eintrag und dann zeitlich zurück gelesen wird, kann das Metadatenvolumen 504 mit Objekt- oder Datenidentifikatoren an Versätzen befüllt werden, die den Versätzen im Produktionsvolumen entsprechen.
-
In einem Beispiel kann ein initialisiertes Produktionsvolumen verfügbar sein. Dieses Produktionsvolumen kann einem Zeitpunkt unmittelbar vor dem ältesten Eintrag im Metadatenstrom entsprechen. Unter Verwendung des Metadatenvolumens, das mit Informationen aus dem Metadatenstrom beladen wurde, kann das anfängliche Produktionsvolumen nach vorne zum gewählten Zeitpunkt gerollt werden. In einem Beispiel kann das Produktionsvolumen direkt aus dem Metadatenstrom erzeugt werden.
-
In diesem Beispiel wird der Identifikator 10 an eine Stelle kopiert, die dem Versatz 0 entspricht. Ist es an der Zeit, das Produktionsvolumen 504 vorzubereiten, wird der Identifikator im Metadatenvolumen 504, das am Versatz 504 gespeichert ist, dazu verwendet, ein Objekt aus dem Datensammler 510 abzurufen, und das aus dem Datensammler 510 abgerufene Objekt wird dann an die Stelle geschrieben, die dem Versatz 0 im Produktionsvolumen 506 entspricht, das ein Replikatsvolumen sein kann.
-
Genauer gesagt wird der Metadatenstrom 502 ausgelesen, bis der Zeitpunkt 514 erreicht ist, und jeder Eintrag wird, falls erforderlich, in das Metadatenvolumen geschrieben. Der Zeitpunkt 514 ist der Zeitpunkt, an welchem eine Wiederherstellung erwünscht ist. In diesem Beispiel sind sechs Einträge in das Metadatenvolumen 504 zu schreiben. Somit werden die Identifikatoren 10, 20, 30, 40, 50 und 60 an die entsprechenden Stellen oder Versätze geschrieben, die im Metadatenvolumen 504 gespeichert sind. Dies resultiert im Metadatenvolumen 504, das die Identifikatoren 10, 20, 30, 40, 50 und 60 beinhaltet und jeweils an den Versätzen 0, 1, 2, 3, 4, und 5 geschrieben ist.
-
In diesem Stadium wurden keine Daten aus dem Datensammler 510 in das Produktionsvolumen 506 kopiert. Es ist aber möglich, das Produktionsvolumen wiederherzustellen oder zu rehydrieren, wenn das Metadatenvolumen 504 generiert wird.
-
Sobald das Metadatenvolumen 504 für den Zeitpunkt 514 erzeugt ist, kann das Produktionsvolumen 506 mit den Daten aus dem Datensammler 501 befüllt werden. Weil das Metadatenvolumen 504 Identifikatoren oder Schlüssel speichert, können diese Identifikatoren dazu verwendet werden, auf den Datensammler 510 zuzugreifen, um die entsprechende Objekte abzurufen, die in denselben oder einen entsprechenden Versatz im Produktionsvolumen 506 geschrieben werden. Somit wird der Identifikator 10 im Metadatenvolumen 504 verwendet, um ein Objekt A abzurufen. Das Objekt A wird dann in den Versatz 0 im Metadatenvolumen geschrieben. Sobald dieser Prozess abgeschlossen ist, kann das Produktionsvolumen 506 verwendet und, falls erforderlich, montiert werden. Das Metadatenvolumen 504 kann für eine Zeit gehalten oder gelöscht werden.
-
Alternativ kann das rehydrierte Volumen oder Replikatsvolumen nicht erforderlich sein, wenn ein Mediator vorhanden ist. So kann z.B. eine Anfrage für die Daten am Versatz 1 angefordert sein. Der Mediator kann auf das Metadatenvolumen zugreifen, um den Identifikator am Versatz 1 zu bestimmen und dann auf den Datensammler 510 zuzugreifen, um die dem abgerufenen Identifikator entsprechenden Daten abzurufen. Die abgerufenen Daten werden dann zum Requestor zurückgeführt.
-
6 veranschaulicht ein Beispiel für ein Verfahren zum Rehydrieren eines Produktionsvolumens. Sobald die Rehydrationsoperation begonnen wurde, wird ein Rohmetadatenvolumen 602 erzeugt 602. Das Metadatenvolumen wird dann befüllt 604, indem die Metadaten zum erforderlichen Zeitpunkt gerollt werden. Dies kann durchgeführt werden, indem das Metadatenvolumen ausgehend mit dem hinteren Ende des Metadatenstroms befüllt und das Metadatenvolumen entsprechend den Schreibvorgängen im Metadatenstrom aktualisiert wird. Dies erlaubt, dass die Metadaten im Metadatenvolumen organisiert werden.
-
Als Nächstes werden das Metadatenvolumen und der Datensammler verwendet, um das Produktionsvolumen zu rehydrieren 606. In einem Beispiel kann das Produktionsvolumen, das hydriert wird, einen anfänglichen darauf gespeicherten Datensatz aufweisen. Die Einträge im Metadatenvolumen ermöglichen, dass Objekte aus dem Datensammler abgerufen und in einen spezifischen Versatz im Produktionsvolumen geschrieben werden. Dies erlaubt, dass das Produktionsvolumen nach vor zum gewählten oder identifizierten Zeitpunkt gerollt werden kann.
-
In einem Beispiel kann eine Initialisierungsphase erforderlich sein, um einen ersten konsistenten Zeitpunkt zu erhalten. Dies kann durch Lesen und Senden des gesamten Produktionsvolumens als AE durchgeführt werden. Sobald das im Metadatenstrom und im Datensammler erreicht wurde, kann die hierin erläuterte kontinuierliche Replikation durchgeführt werden. Somit ist der erste Zeitpunkt, auf den das System zurückrollen kann, der erste konsistente Zeitpunkt, der mit dem Initialisierungsprozess assoziiert ist. Dies ist ein Beispiel für das ReplikatProduktionsvolumen, auf welches das Metadatenvolumen angewendet wird. In einem anderen Beispiel kann das initialisierte Produktionsvolumen periodisch aktualisiert werden.
-
Um Platz zu sparen, können die im Datensammler gespeicherten Daten konsolidiert werden. Dies kann die Granularität der Zeitpunkte in der Vergangenheit reduzieren, kann aber Platz sparen. Ein Konsolidierungsfenster kann definiert werden, und es können Daten innerhalb dieses Fensters konsolidiert werden.
-
7 veranschaulicht ein Beispiel für Konsolidierung. 7 veranschaulicht ein Konsolidierungsintervall 702 oder -fenster, in welchem Daten konsolidiert werden. In der 7 befindet sich das jüngste Ende des Konsolidierungsintervalls 702 auf der linken Seite. Während der Konsolidierung kann ein Bitmap erzeugt werden. Jedes Bit im Bitmap kann einem Versatz im Produktionsvolumen entsprechen. Geht man zeitlich bezogen, durch das Konsolidierungsintervall 702, zurück, so ist ein Bit für alle EA-Metadaten festgelegt, auf die man trifft, wenn das Bit nicht festgelegt ist. Ist das Bit bereits festgelegt, dann kann die entsprechende EA gelöscht werden. Insbesondere kann der EA-Metadateneintrag aus dem Metadatenstrom gelöscht werden, und die Daten können aus dem Datensammler gelöscht werden.
-
Das in 7 gezeigte Konsolidierungsintervall beinhaltet 5 Einträge. Das Konsolidierungsintervall 702 kann Größen und Umfang aufweisen, die in der Größe variieren. Ferner kann das Konsolidierungsintervall 702 mit verschiedenen Zeitspannen assoziiert sein. So kann z.B. das Konsolidierungsintervall 702 auf Einträge angewendet werden, die einen Monat alt sind oder dergleichen.
-
In diesem Beispiel werden die Einträge ausgehend vom jüngsten evaluiert. Der jüngste Eintrag 706 im Konsolidierungsintervall 702 bezieht sich auf den Versatz 5. Somit ist das entsprechende Bit im Bitmap 704 festgelegt. Bewegt man sich von der AE A zur AE C im Konsolidierungsintervall 702, dann werden die Bits für die Versätze 5, 4 und 3 festgelegt. Trifft man auf den Eintrag 708, so werden der Eintrag 708 (und die entsprechenden Daten) gelöscht, weil das Bit für den Versatz 4 bereits festgelegt ist, wenn man auf den Eintrag 710 trifft. Die Einträge 712 und 714 liegen außerhalb des Konsolidierungsintervalls 702 und werden aus diesem Grund gehalten.
-
In einem Beispiel kann das Begrenzen der Geschichte auf ein vorbestimmtes Schutzfenster die Größe etwaiger Replikats-Disks unter einer erforderlichen Grenze halten, wenn dies notwendig ist. Bei einer kontinuierlichen Replikation ist das Schutzfenster oftmals in Hinblick auf die Zeit definiert. Somit kann das Konsolidierungsfenster auf das hintere Ende des Metadatenstroms angewendet werden. Die Daten können periodisch konsolidiert werden.
-
In einem anderen Beispiel können die Daten im Datensammler dedupliziert werden. So kann z.B. eine Karte von Hashes der Objekte gehalten werden, so dass Chunks oder Objekte wenn möglich nur einmal gespeichert werden können. Neue EA-Metadaten im Metadatenstrom zeigen auf ein existierendes Objekt oder ein solches Chunk, das bereits im Datensammler vorhanden ist. Zusätzlich dazu kann periodisch eine Müllsammlung durchgeführt werden, um Chunks zu entfernen, die nicht von EAs oder Einträgen im Metadatenstrom verwendet werden.
-
Das Deduplizieren auf diese Art und Weise reduziert nicht nur die Verwendung des Datensammlers sondern reduziert auch den Kommunikationsaufwand. Deduplizierte Daten werden nicht übertragen. Dies reduziert die Bandbreitenanforderungen und verbessert die RPO.
-
Unter Verwendung von kontinuierlicher Replikation zur Cloud, wie bereits hierin ausgeführt, kann eine RPO von einigen wenigen Sekunden (oder weniger) erzielt werden. Ferner befindet sich die Granularität auf EA-Ebene. Somit kann ein Produktionsvolumen auf jeden beliebigen Zeitpunkt wiederhergestellt werden. Ferner ermöglicht die Tatsache, dass die Daten und die Metadaten als Objekte gehalten werden, dass ein günstigerer Speicher verwendet wird. Ein teurerer Speicher wie ein Stufe 1-Speicher kann nur erforderlich sein, wenn eine Wiederherstellung benötigt wird.
-
Es versteht sich, dass die vorliegende Erfindung auf zahlreiche Weisen implementiert werden kann, einschließlich dabei als ein Prozess, ein Gerät, ein System, eine Vorrichtung, ein Verfahren oder ein computerlesbares Medium wie ein computerlesbares Speichermedium oder ein Computernetzwerk, wobei Computerprogramminstruktionen über optische oder elektronische Kommunikationsverbindungen gesendet werden. Anwendungen können die Form von Software annehmen, die auf einem Universalcomputer ausgeführt wird oder in Hardware festverdrahtet oder festprogrammiert ist. In dieser Beschreibung können diese Implementierungen oder eine etwaige andere Form, die die Erfindung annehmen kann, als Techniken bezeichnet werden. Im Allgemeinen kann die Reihenfolge der Schritte der geoffenbarten Prozesse innerhalb des Umfangs der Erfindung geändert werden.
-
Die hierin geoffenbarten Ausführungsformen können die Verwendung eines Universal- oder Spezialcomputers beinhalten, einschließlich verschiedener Computerhardware- oder -softwaremodule, wie dies nachfolgend ausführlicher erörtert ist. Ein Computer kann einen Prozessor und ein Computerspeichermedium beinhalten, das Instruktionen trägt, die, wenn sie von dem Prozessor ausgeführt werden und/oder dazu gebracht werden, von dem Prozessor ausgeführt zu werden, ein beliebiges oder mehrere der hierin geoffenbarten Verfahren ausführen können.
-
Wie oben angegeben ist, beinhalten Ausführungsformen innerhalb des Umfangs der vorliegenden Erfindung auch Computerspeichermedien, die physische Medien sind, um vom Computer ausführbare Instruktionen oder darauf gespeicherte Datenstruktur zu tragen oder aufzuweisen. Solche Computerspeichermedien können jegliche verfügbare physische Medien sein, auf die ein Universal- oder Spezialcomputer zugreifen kann.
-
Beispielhaft und nicht einschränkend kann ein solches Computerspeichermedium Hardware wie Solid-State-Disk (SSD), RAM, ROM, EEPROM, CD-ROM, Flash Memory, Phase-Change Memory („PCM“), oder andere optische Diskspeicher-, magnetische Diskspeicher- oder andere magnetische Speichervorrichtungen oder beliebige andere Hardware-Speichervorrichtungen umfassen, die dazu verwendet werden können, Programmcode in der Form von Instruktionen, die vom Computer ausgeführt werden, oder Datenstrukturen zu speichern, auf die von einem Universal- oder Spezialcomputer zugegriffen und die von diesen ausgeführt werden können, um die geoffenbarte Funktionalität der Erfindung zu implementieren. Kombinationen des Obigen sollten ebenfalls im Umfang von Computerspeichermedien beinhaltet sein. Solche Medien sind auch Beispiele für nicht-flüchtige Speichermedien, und ein nicht-flüchtiges Speichermedium umfasst auch cloudbasierte Speichersysteme und Strukturen, wenngleich der Umfang der Erfindung nicht auf diese Beispiele für nicht-flüchtige Speichermedien beschränkt ist.
-
Vom Computer ausführbare Instruktionen umfassen z.B. Instruktionen und Daten, die einen Universalcomputer, einen Spezialcomputer oder eine Spezialverarbeitungsvorrichtung dazu veranlassen, eine gewisse Funktion oder eine Gruppe von Funktionen durchzuführen. Obwohl der Gegenstand in einer Sprache beschrieben wurde, die für die strukturellen Merkmale und/oder methodologischen Vorgänge spezifisch ist, ist zu verstehen, dass der in den angehängten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die spezifischen Merkmale oder Vorgänge beschränkt ist, die oben beschrieben sind. Vielmehr sind die geoffenbarten spezifischen Merkmale und Vorgänge als beispielhafte Formen der Implementierung der Ansprüche geoffenbart.
-
Wie hierin verwendet, kann sich der Begriff „Modul“ oder „Komponente“ auf Softwareobjekte oder -routinen beziehen, die auf dem Rechensystem laufen. Die verschiedenen Komponenten, Module, Engines und Dienste, die hierin beschrieben sind, können als Objekte oder Prozesse implementiert werden, die auf dem Rechensystem laufen, z.B. als separate Threads. Während das System und die Verfahren, die hierin beschrieben sind, in Software implementiert werden können, sind auch Implementierungen in Hardware oder einer Kombination aus Software und Hardware ebenfalls möglich und vorgesehen. In der vorliegenden Offenbarung kann eine „Recheneinheit“ ein beliebiges Rechensystem sein, wie es zuvor definiert wurde, oder ein beliebiges Modul oder eine Kombination aus Modulen, die auf einem Rechensystem laufen.
-
Zumindest in einigen Instanzen ist ein Hardwareprozessor bereitgestellt, der bedient werden kann, um ausführbare Instruktionen auszuführen, um ein Verfahren oder einen Prozess wie das hierin geoffenbarte Verfahren oder den hierin geoffenbarten Prozess durchzuführen. Der Hardwareprozessor kann ein Element einer anderen Hardware, so etwa die Rechenvorrichtungen und Systeme, die hierin geoffenbart sind, umfassen oder auch nicht.
-
In Hinblick auf Rechenumgebungen können Ausführungsformen der Erfindung in Client-Server-umgebungen, ob nun Netzwerk- oder lokalen Umgebungen, oder in einer beliebigen anderen Umgebung durchgeführt werden. Geeignete Betriebsumgebungen für zumindest einige Ausführungsformen der Erfindung beinhalten Cloud-Computing-Umgebungen, wo ein oder mehrere eines Client, Server oder einer virtuellen Target-Maschine vorhanden sein können und in einer Cloud-Umgebung arbeiten können.
-
Die vorliegende Erfindung kann in anderen spezifischen Formen ausgeführt werden, ohne von ihrem Umfang oder ihren wesentlichen Charakteristiken abzuweichen. Die beschriebenen Ausführungsformen sind in jeder Hinsicht als nur veranschaulichend und nicht einschränkend anzusehen. Der Umfang der Erfindung ist deshalb durch die angehängten Ansprüche und nicht durch die vorstehende Beschreibung angegeben. Alle Änderungen, die innerhalb der Bedeutung und des Äquivalenzbereichs der Ansprüche liegen, sind innerhalb ihres Umfangs aufzunehmen.